05 Linux常用命令

  一、系统基本管理  

  1.1 关机重启退出操作  

  关机重启操作 shutdown  

  语法格式:

shutdown [选项] [时间/数字/now]

  描述:常用于关机重启操作,并且在关机或重启的同时,已登录用户全都可以看到提示信息。需要由超级管理员root或具有管理员权限的用户来执行。

  shutdown命令的常用选项:

image

  示例:

# 立即关机
$ sudo shutdown -h now

# 计划在晚上11点关机
$ sudo shutdown -h 23:00

# 10分钟后重启
$ sudo shutdown -r +10

# 取消已计划的关机或重启操作
$ sudo shutdown -c

   重启操作 reboot   

  语法格式:

reboot [选项]

  描述:用来对正在运行的Linux操作系统执行重启操作。一般在企业中执行这条命令不用加任何选项。需要由超级管理员root或具有管理员权限的用户来执行。

  reboot命令的常用选项:

image

 示例:

# 正常重启系统
$ sudo reboot

# 强制重启系统 (谨慎使用)
$ sudo reboot -f

# 执行一次模拟重启,测试日志记录是否正常
$ sudo reboot -w

# 重启前先关闭所有网络接口
$ sudo reboot -i

  关机操作 poweroff   

  语法格式:

poweroff [选项]

  描述:关闭Linux操作系统,关闭记录会被写入/var/log/wtmp日志文件中。使用该命令后会立即关闭系统,不给一点反应时间,因此一般很少用这个命令来进行关机操作。需要由超级管理员root或具有管理员权限的用户来执行。

  poweroff命令的常用选项:

image

  注销操作 logout   

  语法格式:

logout

  描述:退出当前登录的Shell,等效于Windows中的注销命令。

  退出操作 exit   

  语法格式:

exit [状态值]

  描述:以指定的状态退出当前Shell或在Shell脚本中终止当前脚本的执行。

  1.2 显示系统信息  

  打印系统信息uname  

  语法格式:

uname [选项]

  描述:打印系统信息。

  uname命令的常用选项:

image

  示例:

# 显示全部信息
$ uname -a
# 输出示例:Linux myserver 5.4.0-91-generic #102-Ubuntu SMP x86_64 GNU/Linux

# 显示处理器架构
$ uname -m
# 输出示例:x86_64

# 显示主机名称
$ uname -n
# 输出示例:myserver

# 显示操作系统发行编号
$ uname -r
# 输出示例:5.4.0-91-generic

  打印cpu信息 lscpu  

  语法格式:

lscpu [选项]

  描述:显示有关CPU架构的信息。

  lscpu命令的常用选项:

image

   示例:

# 打印在线和离线 CPU 的详细信息
$ lscpu -a
# 输出示例:
# Architecture:          x86_64
# CPU op-mode(s):        32-bit, 64-bit
# Byte Order:            Little Endian
# CPU(s):                8
# On-line CPU(s) list:   0-7
# Off-line CPU(s) list:  -
# ...

# 以人类易读的方式显示 CPU 信息
$ lscpu -c
# 输出示例:
# 架构:           x86_64
# CPU 运行模式:   32-bit, 64-bit
# 字节序:         Little Endian
# CPU:             8
# 在线 CPU 列表:  0-7
# 离线 CPU 列表:  无
# ...

  打印内存信息 free  

  语法格式:

free [选项]

  描述:显示内存的使用情况。

  free命令的常用选项:

image

  示例:

# 以 MB 为单位显示内存使用情况(最常用)
$ free -m
# 输出示例:
#                total       used       free      shared  buff/cache   available
# Mem:           8000        3000       2000        100        3000        4800
# Swap:          2000        0          2000

系统内存信息含义如下:

  • Mem:内存使用情况;
  • Swap:交换分区使用情况;
  • Total:物理内存总大小;
  • Used:已经使用的内存量;
  • Free:空闲的内存量;
  • Shared:多个进程共享的内存总量;
  • buffers/cached:缓存的内存量;
  • available:还可以被进程使用的物理内存量。

  打印磁盘信息 df  

  语法格式:

df [选项]

  描述:显示磁盘空间的使用情况。

  df命令的常用选项:

image

   示例:

# 以人类易读的单位显示(推荐使用)
$ df -h
# 输出示例:
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1        20G  7.9G   11G  43% /
# tmpfs           797M  4.0K  797M   1% /dev/shm
# /dev/sdb1       9.8G  2.3G  7.0G  25% /data 

  打印时间 date  

  语法格式:

date [选项] [输出形式|日期时间]

  描述:用于显示或设置系统时间与日期。

  date命令的常用选项:

image

  时间与日期格式符号表:

符号说明符号说明
%S 秒(00~60) %r 显示时间(12小时制,格式为 hh:mm:ss [AP]M)
%M 分钟(00~59) %s 从1970年1月1日00:00:00 UTC到目前为止的秒数
%H 小时(以00~23格式表示) %T 显示时间(24小时制)
%I 小时(以01~12格式表示) %X 显示时间格式为 %H:%M:%S
%k 小时(以0~23格式表示) %Z 显示时区
%l 小时(以1~12格式表示) %c 显示日期与时间
%d 日期(01~31) %D 显示日期(mm/dd/yy)
%m 月份(01~12) %j 一年中的第几天(001~366)
%b 月份(Jan~Dec)缩写 %U 一年中的第几周(00~53,以星期日为一周的第一天)
符号说明符号说明
%B 月份(January~December) %w 一周中的第几天(0~6)
%y 年份的最后两位数字(00~99) %W 一年中第几周(00~53,以星期一为一周的第一天)
%Y 完整年份(0000~9999) %x 显示日期格式为 mm/dd/yy
%a 星期几(Sun~Sat)缩写 %n 下一行
%A 星期几(Sunday~Saturday) %t 跳格

  示例:

# 显示自定义格式的日期
$ date "+%Y-%m-%d %H:%M:%S"
# 输出示例:2024-12-19 10:30:45

  显示运行情况 top  

  语法格式:

top [选项] [PID|time|...]

  描述:Linux操作系统性能分析工具,可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。

  top命令的常用选项:

image

  在top交互界面中的常用操作:

  • q:退出程序;
  • m:切换显示内存信息;
  • c:切换显示命令名称和完整命令行;
  • i:忽略闲置和僵尸进程,这是一个开关式命令;
  • k:终止一个进程;
  • M:根据驻留内存大小进行排序;
  • P:根据CPU使用百分比大小进行排序;
  • T:根据累计时间进行排序。

  示例:

# 监控进程
$ top

top - 10:30:45 up 15 days,  2:15,  3 users,  load average: 0.25, 0.31, 0.28
Tasks: 256 total,   1 running, 255 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.5 us,  1.2 sy,  0.0 ni, 96.1 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  15982.8 total,   2156.2 free,   5821.4 used,   8005.2 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   9512.8 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 mysql     20   0 3845.2m 892.4m  45.2m S   5.6   5.5  85:30.12 mysqld
 5678 nginx     20   0  156.8m  45.2m  12.3m S   2.3   0.3  12:45.23 nginx
 9012 user1     20   0  245.6m  56.8m  23.1m S   1.5   0.4   3:20.45 python
-----省略部分内容-----

显示内容说明:

(1)第一行是系统运行时间和平均负载。

  当前系统时间 10:30:45;系统运行时间:15天2分15秒;当前登录用户数为3;系统负载:0.25,0.31,0.28,这3个数分别是1分钟、 5分钟、15分钟的负载情况(当结果大于5的时候表示系统在超负荷运转)。

(2)第二行是进程的相关信息。 总进程数:256;运行:1;休眠:255;停止:0;僵尸进程:0。

(3)第三行CPU状态相关信息。

image

(4)第四行是内存相关信息。

image 

(5)第五行是交换空间相关信息。

image

(6)第六行是空格。

(7)第七行是各个进程的状态及相关信息。

image

  打印进程信息 ps 

  语法格式:

ps [选项]

  描述:显示当前时间点系统的进程状态。

   ps命令的常用选项

image

  示例:显示此刻系统上所有进程的详细信息。

# 显示所有进程的详细信息(最常用)
$ ps -aux

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 169284  9384 ?        Rs   10:30   0:03 /sbin/systemd
root         2  0.0  0.0      0     0 ?        S    10:30   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        I<   10:30   0:00 [rcu_gp]
root         4  0.0  0.0      0     0 ?        I<   10:30   0:00 [rcu_par_gp]
mysql      123  0.5  5.5 3845232 892456 ?      Ssl  10:30   0:15 /usr/sbin/mysqld
nginx      456  0.2  0.3  160576 45200 ?       S    10:30   0:08 nginx: master process
www-data   789  0.1  0.2  160632 23456 ?       S    10:31   0:03 nginx: worker process

系统进程信息含义如下:

  • USER:进程所属的用户;
  • PID:PID是进程的唯一标识符;
  • %CPU:进程所占用的CPU资源百分比;
  • %MEM:进程所占用的内存百分比;
  • VSZ:进程所使用的虚拟内存量(KB);
  • RSS:进程所使用的固定内存量(KB);
  • TTY:进程在哪个终端上运行,若与终端无关,则显示“?”;
  • STAT:进程目前的状态;进程的状态主要有以下几种:
    • R:运行状态,程序目前正在运作;
    • S:睡眠状态,可被唤醒;
    • T:停止状态,已停止工作;
    • Z:僵尸状态。
  • START:进程启动的时间;
  • TIME:进程实际使用CPU的时间;
  • COMMAND:进程具体的工作指令。

  打印网络信息netstat   

  语法格式:

netstat [选项] 

  描述:用来打印网络系统的状态信息。

  netstat命令的常用选项:

image

  示例:显示出所有监听的TCP端口相关信息。 

# 显示所有TCP连接,以数字格式显示,并包含进程信息
$ netstat -anpt

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd:          
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5678/nginx: 
-----省略部分内容-----

 TCP端口参数含义如下:

  • Proto:网络连接的协议,一般就是TCP协议或UDP协议;
  • Recv-Q:接收到的数据,已经在本地的缓存中,但是还没有被进程取走;
  • Send-Q:从本机发送,对方还没有收到的数据,依然在本地的缓存中,不具备ACK标志的数据包;
  • Local Address:本机的IP地址和端口号;
  • ForeignAddress:远程主机的IP地址和端口号;
  • State:链路状态。 链路状态主要有以下几种:
    • LISTEN:监听状态,只有TCP协议需要监听,而UDP协议不需要监听;
    • ESTABLISHED:已经建立连接的状态;
    • SYN_SENT:SYN发起包,就是主动发起连接的数据包;
    • SYN_RECV:接收到主动连接的数据包;
    • FIN_WAIT1:正在中断的连接;
    • FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认;
    • TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束;
    • CLOSED:关闭的连接。
posted @ 2025-12-17 14:52  夏沫゛烟雨  阅读(8)  评论(0)    收藏  举报