Linux命令指南


系统

# uname -a               # 查看内核/操作系统/CPU信息
# uname -r               # 查看内核
# head -n 1 /etc/issue   # 查看操作系统版本
# cat /proc/cpuinfo      # 查看CPU信息
# hostname               # 查看计算机名
# lspci -tv              # 列出所有PCI设备
# lsusb -tv              # 列出所有USB设备
# lsmod                  # 列出加载的内核模块
# env                    # 查看环境变量
# chmod 600 id_rsa       # 设置权限
# chattr +i .user.ini    # 加锁

资源

# free -m                       # 查看内存使用量和交换区使用量
# df -h                         # 查看各分区使用情况
# du -sh <path>                 # 查看指定目录的大小
# grep MemTotal /proc/meminfo   # 查看内存总量
# grep MemFree /proc/meminfo    # 查看空闲内存量
# uptime                        # 查看系统运行时间、用户数、负载
# cat /proc/loadavg             # 查看系统负载 (解释详见:http://blog.haohtml.com/index.php/archives/6860)

磁盘和分区

# mount | column -t      # 查看挂接的分区状态
# fdisk -l               # 查看所有分区
# mount device dir       # 挂载磁盘到目录
# swapon -s              # 查看所有交换分区
# hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE       # 查看启动时IDE设备检测状况

网络

# ifconfig               # 查看所有网络接口的属性
# iptables -L            # 查看防火墙设置
# ifstat                 # 查看网卡流量使用
# route -n               # 查看路由表
# netstat -lntp          # 查看所有监听端口
# netstat -antp          # 查看所有已经建立的连接
# netstat -s             # 查看网络统计信息
# mtr                    # 路由/丢包检测
# traceroute             # 路由跟踪
# tcping                 # tcp端口检测
# ping                   # icmp检测
# dig                    # 域名解析
# nslookup               # 域名解析
# route                  # 查看路由表
# nmcli                  # 网络管理
# nmcli c reload         # 重启网卡

进程

# ps -ef                 # 查看所有进程
# top                    # 实时显示进程状态
# htop                   # 实时显示进程状态(高级)

用户

# w                         # 查看活动用户
# id <name>                 # 查看指定用户信息
# last                      # 查看用户登录日志
# cut -d: -f1 /etc/passwd   # 查看系统所有用户
# cut -d: -f1 /etc/group    # 查看系统所有组
# crontab -l                # 查看当前用户的计划任务

服务

# chkconfig --list              # 列出所有系统服务
# chkconfig --list | grep on    # 列出所有启动的系统服务

程序

# rpm -qa                       # 查看所有安装的软件包

请求

# curl -x 127.0.0.1:80 http://www.haxx.com/                                  # 指定IP请求http
# curl --resolve 'www.abc.com:443:180.101.49.11' https://www.abc.com/ -vvv   # 指定IP请求https
# curl http://www.haxx.com/[1-100].jpg                                       # 批量下载资源
# wget https://curl.haxx.se/download/curl-7.51.0.tar.gz                      # 下载某个文件

文件

# cat                                              # 获取文本内容
# cat filename | awk '{print $1}'                  # 获取第一列
# sed -i 's/a/b/g' filename                        # 全局替换
# find . -name "upgrade.sh" -print                 # 在当前目录查找文件名
# scp a.gz root@39.106.210.153:/home               # 复制文件到远程机器
# scp root@[ip]:/root/1.log ./1.log                # 从远程机器下载到本地
# seq 5 | tr "\n" "|"                              # 输出序号“1|2|3|4|5|”
# cat access.log| tr "." "-"                       # 输出文本时把A换成B
# grep -v "abc" filename                           # 输出没有abc的行
# cut -d ' ' -f 9 access.log                       # Nginx日志中只列出状态码,类似awk
# wc -l access.log                                 # 查看文件共有多少行
# tree                                             # 列出该目录下所有子文件
# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3  # 设置软链A到B
# md5sum filename                                  # 获取文件的md5值

压缩解压命令

# zip newzip.zip *                                 # 打包当前目录的所有文件为newzip.zip
# unzip filename.zip                               # 解压filename.zip到当前目录
# tar -czvf new.tar.gz *                           # 打包当前目录的所有文件为new.tar.gz
# tar -zxvf new.tar.gz                             # 解压new.tar.gz到当前目录
# bzip2 -z fileName                                # bz2压缩
# bunzip2 fileName                                 # bz2解压

工具

# screen -S lnmp                                   # 创建名为lnmp的session
# screen -r lnmp                                   # 恢复进入名为lnmp的session
# screen -ls                                       # 查看session列表
# nohup python run.py &                            # 运行程序到守护进程
# ssh root@ip "uptime"                             # 远程执行命令

文件位置

/etc/hosts                                  # 域名指向
/etc/resolve.conf                           # DNS的地址
/etc/hostname                               # 主机名称
/etc/sysconfig/network-scripts/ifcfg-eth0   # IP配置文件
/etc/profile                                # 环境变量,重载生效`source ~/.bash_profile`

软件安装(CentOS)

yum install -y bind-utils                   # 安装dig命令
yum install -y net-tools                    # 安装ifconfig命令