-
系统状态
- 内存状态
- free:显示系统内存状态,包括物理内存、虚拟内存(SWAP)
- -m:以MB为单位
- -h:自动选择可读性强的单位
- 显示为如下几列:total总物理内存、used使用物理内存、free空闲内存、shared共享内存、buff/cache缓存和缓冲使用量、available可用内存。
- cat proc/meminfo:通过虚拟文件查看系统内存状态
- 主要关注如下几个数据:MemTotal总内存、MemFree空闲内存、MemAvailabel可用内存、Buffers缓冲、Cached缓存、SwapTotal交换总内内存、SwapFree交换空闲内存。
- vmstat -s:通过vmstat的-s参数可以查看系统内存状态
- top -o %MEM:查看各进程内存情况,参数-o %MEM表示按内存使用率进行排序,顶部也显示了系统的内存状态
- free:显示系统内存状态,包括物理内存、虚拟内存(SWAP)
- CPU状态
- top -o %CPU:查看各进程CPU情况,参数-o %CPU表示按CPU使用率进行排序,可以使用键1显示详细的CPU核心状态。
- mpstat:显示各个CPU核心在各种任务(用户态、系统态)的使用率。各列含义:
- CPU:显示 CPU 核心的编号。
- %usr:用户空间占用 CPU 时间的百分比。
- %nice:优先级较高的进程占用 CPU 时间的百分比。
- %sys:内核空间占用 CPU 时间的百分比。
- %iowait:CPU 空闲等待 I/O 操作的时间的百分比。
- %irq:处理硬件中断请求的时间的百分比。
- %soft:处理软中断的时间的百分比。
- %steal:被其他虚拟机“偷走”的 CPU 时间的百分比(对于虚拟化环境)。
- %guest:运行虚拟 CPU 上执行客户操作系统代码的时间的百分比。
- %gnice:运行虚拟 CPU 上执行虚拟化服务代码的时间的百分比。
- %idle:CPU 空闲的时间百分比。
- vmstat:和CPU有关的列:
- us(User):用户空间占用 CPU 时间的百分比。
- sy(System):内核空间占用 CPU 时间的百分比。
- id(Idle):CPU 空闲时间的百分比。
- wa(Wait):CPU 等待 I/O 完成的时间的百分比。
- st(Steal):被其他虚拟机"偷走"的 CPU 时间的百分比。
- 磁盘状态
- df:显示已挂载的文件系统的相关信息,包括总容量、可用容量等,-h参数自动选择可读性强的单位。
- du:估算文件或文件夹的磁盘使用空间,一般使用-sh参数,表示显示总计大小并自动选择可读性强的单位,如du -sh mydir。
- lsblk:显示系统中可用的所有块设备信息,一般使用-l参数表示以列表形式显示,-f参数表示显示文件系统信息。
- 网络状态
- ifconfig:查看当前生效的网卡信息,如:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.22.67.148 netmask 255.255.240.0 broadcast 172.22.79.255 inet6 fe80::216:3eff:fe01:3b3e prefixlen 64 scopeid 0x20<link> ether 00:16:3e:01:3b:3e txqueuelen 1000 (Ethernet) RX packets 28174293 bytes 9710695521 (9.0 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 173191319 bytes 32312934503 (30.0 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0为网卡名称,inet/inet6为IP地址,netmask为子网掩码,mtu 1500表示最大传输单位;RX表示接收,TX表示发送,errors表示错误的数据包数,dropped表示丢弃的数据包数,overruns表示由于buffer溢出而丢弃的数据包数。可以使用ifconfig eth0 up/down来开启或禁用网卡。
- netstat:用于监控TCP/IP网络,可以显示本机各端口上的网络连接状态信息。如:
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 1 iZj6ci2t10v8to90k:43608 cpe-110-148-250-17:8000 SYN_SENT tcp 0 1 iZj6ci2t10v8to90k:43366 cpe-110-148-250-16:8000 SYN_SENT tcp 0 1 iZj6ci2t10v8to90k:47406 29.128.4.154:ssh SYN_SENT tcp 0 1 iZj6ci2t10v8to90k:52770 29.128.4.124:ssh SYN_SENT tcp 0 1 iZj6ci2t10v8to90k:45732 29.128.4.64:ssh SYN_SENT tcp 0 0 localhost:54158 localhost:3002 CLOSE_WAIT tcp 0 0 localhost:39122 localhost:3002 CLOSE_WAIT
Proto表示协议类型,Recv-Q和Send-Q表示接收队列和发送队列中的记录数,一般为0,如果不为0说明队列正在堆积。Local Address和Foreign Address表示该连接的本机地址和外部地址,其中包括端口号,State表示协议状态。
- netstat -a 显示所有套接字(包括断开状态,默认情况下只显示connected)
- netstat -t/-u 只显示TCP/UDP套接字
- netstat -lt 只显示监听TCP套接字
- netstat -lu 只显示监听UDP套接字
- netstat -s 统计套接字信息
- 可以在上述命令中增加-n参数,表示不解析名称,只需显示原始的IP地址和端口
- route:显示当前路由,如:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default _gateway 0.0.0.0 UG 100 0 0 eth0 100.100.2.136 _gateway 255.255.255.255 UGH 100 0 0 eth0 100.100.2.138 _gateway 255.255.255.255 UGH 100 0 0 eth0 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 172.22.64.0 0.0.0.0 255.255.240.0 U 100 0 0 eth0 _gateway 0.0.0.0 255.255.255.255 UH 100 0 0 eth0
Destination表示目的IP,Gateway表示网关,Iface表示网卡名称,而Flags表示标记:U路开启、!路由关闭、H主机路由、G默认路由、R动态路由。
- nslookup:查询DNS,可以查询域名对应的IP。
- ifconfig:查看当前生效的网卡信息,如:
- 内存状态
-
关机与重启
- sync:缓存同步写入磁盘,关机前执行
- shutdown:用于关机或重启,需要root权限
- -r:关闭系统的服务并重启
- -h:关闭系统的服务并关机
- -c:取消现有的关机计划
- shutdown -h now 立即关机
- shutdown -h +10 十分钟后关机
- shutdown -h 20:25 在时间为20:25的时候关机
- reboot:重启
- halt:关机
- poweroff:关机
- systemctl
- systemctl reboot 重启
- systemctl poweroff 关机
-
文件与目录
- chgrp:修改文件所属用户组
- -R:递归
- chgrp test a.txt
- chown:修改文件拥有者
- -R:递归
- chown test a.txt
- chown test:testg a.txt
- chmod:修改文件权限
- -R:递归
- 可以通过数字表示权限(000-777)或者通过{u,g,o}{+,-,=}{r,w,x}来表示。
- chmod 777 a.txt
- chmod -R 755 dir
- chmod u=rwx,go=rx a.txt
- chmod a-x a.txt
- cd:切换工作目录
- cd .. 切换到上级目录
- cd - 切换到上一次的工作目录
- cd ~/cd 切换到用户目录
- cd ~user 切换到user的用户目录
- pwd:显示当前目录
- -P:显示真正的路径,而非链接路径
- mkdir:新建目录
- -m:设置文件权限
- -p:递归创建
- mkdir -m 711 dir
- mkdir -p dir/dir
- rmdir:删除空目录
- -p:递归删除空目录
- ls:查看当前目录下的文件和目录
- -a:显示全部文件,包括隐藏文件
- -A:与-a相同,但不包括.和..
- -d:仅列出当前目录
- -l:列出详细信息
- -R:递归列出
- --time=ctime:显示状态最后修改时间,atime为最后访问时间
- --full-time:显示完整时间
- ls -al ~
- ls -al --full-time
- cp:复制文件或目录
- -a:相当于-dr --preserve=all,即完全复制
- -d:复制链接文件,而不是文件本身
- -i:覆盖前询问
- -p:复制文件属性,而不是使用默认属性
- -r:递归复制
- -u:源比目标更新时才复制
- -l:复制为硬链接
- -s:复制为符号链接
- rm:删除文件或目录
- -r:递归删除
- -i:删除前询问
- mv:移动文件或目录
- -f:强制覆盖
- -i:覆盖前询问
- -u:源比目标更新时才移动
- cat:由第一行开始显示文件内容
- -A:显示所有非打印字符
- -n:显示行号
- tac:从最后一行开始显示文件内容
- nl:显示行号打印
- -n ln:行号左对齐
- -n rn:行号右对齐
- -n rz:行号右对齐且左补零
- more:翻页查看文件
- q:退出
- b/up:上一页
- space/enter/down:下一页
- less:翻页查看文件
- q:退出
- b/up:上一页
- space/enter/down:下一页
- /{}:向下查找
- ?{}:向上查找
- n:重复前一次查找
- head:取出文件开始几行
- -n:行数
- head -n 10 a.txt 显示前面十行
- head -n -10 a.txt 除了最后十行都显示
- tail:取出文件最后几行
- -n:行数
- tail -n 10 a.txt 显示最后十行
- tail -n +10 a.txt 除了开始十行都显示
- od:显示二进制文件
- -d:十进制模式
- -x:十六进制模式
- touch:修改文件时间或创建空文件
- -a:仅修改atime
- -m:仅修改mtime
- -c:仅修改时间,如果文件不存在则不创建空文件
- touch a.txt 修改atime、mtime、ctime为当前时间,不存在则创建空文件
- touch -a a.txt 修改atime、ctime为当前时间,不存在则创建空文件
- umask:显示或修改默认权限掩码
- umask 显示当前默认权限掩码
- umask 002 修改默认权限掩码为002
- file:检测文件类型
- which:在PATH环境变量查找文件
- -a 显示所有查找结果
- which -a ls 查找PATH中所有的ls路径
- whereis:在一些特定目录下查找文件
- -l:列出特定目录
- locate:在/var/lib/mlocate数据库查找文件
- -i:忽略大小写
- -l:仅输出多少个结果,如-l
- updatedb:更新/var/lib/mlocate数据库
- find:按条件递归查找文件
- -name:名称条件
- -mtime、-atime、-ctime:时间条件
- -user、-group、-uid、-gid、-nouser、-nogroup:所属条件
- -size:大小条件
- -perm:权限条件
- -type:类型条件(f=一般文件,d=目录,l=链接文件)
- find ./ -mtime 4 查找最后修改时间距现在4-5天内的文件
- find ./ -mtime -4 查找最后修改时间距现在<4天内的文件
- find ./ -mtime +4 查找最后修改时间距现在>5天内的文件
- find ./ -user test 查找拥有者为test的文件
- find ./ -type d 查找所有目录
- find ./ -perm 755 查找权限为755的文件
- find ./ -perm -755 查找权限包括755的文件
- chgrp:修改文件所属用户组