Linux命令篇(四):系统管理部分

2024-06-04 12:28:14 浏览数 (2)

1、ps 命令

ps命令用于显示当前进程的状态

常用参数

  • -A:列出所有的进程
  • -aux:显示所有包含其他使用者的进程

举例说明

  1. 显示进程信息
代码语言:javascript复制
ps -A

PID TTY     TIME CMD
  1 ?    00:00:02 init
  2 ?    00:00:00 kthreadd
  3 ?    00:00:00 migration/0
  4 ?    00:00:00 ksoftirqd/0
  5 ?    00:00:00 watchdog/0
  6 ?    00:00:00 events/0
  1. 查看指定进程
代码语言:javascript复制
ps -ef | grep 进程关键字
ps -ef | grep java // 查找java进程关键字
  1. 显示所有进程信息
代码语言:javascript复制
ps -ef 

UID PID PPID C STIME TTY TIME CMD root 1 0 0 10:22 ? 00:00:02 /sbin/init root 2 0 0 10:22 ? 00:00:00 [kthreadd] root 3 2 0 10:22 ? 00:00:00 [migration/0] root 4 2 0 10:22 ? 00:00:00 [ksoftirqd/0]

  1. 显示指定用户的进程信息
代码语言:javascript复制
ps -u root  # 显示root用户的进程信息

2、kill 命令

kill命令用于终止正在运行的进程,基本语法格式如下:

代码语言:javascript复制
kill [参数] [PID]

常用参数

  • -l:列出所有可用的信号、
  • -:发送特定的信号给目标进程,如 -9 表示发送 KILL 信号,即强制终止进程 最常用的信号是: SIGKILL(信号9):立即结束进程,不能被捕获或忽略。 SIGTERM(信号15):正常结束进程,可以被捕获或忽略。 SIGSTOP(信号19):暂停进程,不能被捕获、忽略或结束。 SIGCONT(信号18):继续执行被暂停的进程。 SIGINT(信号2):通常是Ctrl C产生的信号,可以被进程捕获或忽略

举例说明

  1. 结束PID为365354的进程
代码语言:javascript复制
kill 365354
  1. 强制结束PID为365354的进程
代码语言:javascript复制
kill -9 365354

注意事项

在使用 kill 命令时,需要具有相应的权限,否则可能无法终止进程。 某些进程可能需要发送多次信号才能终止,比如一些守护进程。 强制杀死进程可能会导致数据丢失或其他副作用,因此应谨慎使用。


3、date 命令

date命令可以用来显示或设定系统的日期与时间

常用参数说明

  • -d:通过字符串显示时间格式
  • -r:显示文件的上次修改时间
  • -R: 按照 RFC 5322 格式输出时间和日期,例如: Mon, 14 Aug 2006 02:34:56 -0600
  • FORMAT 参数整理如下:
  • %% 输出字符 % %a 星期几的缩写 (Sun…Sat) %A 星期的完整名称(Sunday…Saturday)。 %b 缩写的月份名称(例如,Jan) %B 完整的月份名称(例如,January) %c 本地日期和时间(例如,Thu Mar 3 23:05:25 2005) %C 世纪,和%Y类似,但是省略后两位(例如,20) %d 日 (01…31) %D 日期,等价于%m/%d/%y %e 一月中的一天,格式使用空格填充,等价于%_d %F 完整的日期;等价于 %Y-%m-%d %g ISO 标准计数周的年份的最后两位数字 %G ISO 标准计数周的年份,通常只对%V有用 %h 等价于 %b %H 小时 (00…23) %I 小时 (01…12) %j 一年中的第几天 (001…366) %k 小时,使用空格填充 ( 0…23); 等价于 %_H %l 小时, 使用空格填充 ( 1…12); 等价于 %_I %m 月份 (01…12) %M 分钟 (00…59) %n 新的一行,换行符 %N 纳秒 (000000000…999999999) %p 用于表示当地的AM或PM,如果未知则为空白 %P 类似 %p, 但是是小写的 %r 本地的 12 小时制时间(例如 11:11:04 PM) %R 24 小时制 的小时与分钟; 等价于 %H:%M %s 自 1970-01-01 00:00:00 UTC 到现在的秒数 %S 秒 (00…60) %t 插入水平制表符 tab %T 时间; 等价于 %H:%M:%S %u 一周中的一天 (1…7); 1 表示星期一 %U 一年中的第几周,周日作为一周的起始 (00…53) %V ISO 标准计数周,该方法将周一作为一周的起始 (01…53) %w 一周中的一天(0…6),0代表星期天 %W 一年中的第几周,周一作为一周的起始(00…53) %x 本地的日期格式(例如,12/31/99) %X 本地的日期格式(例如,23:13:48) %y 年份后两位数字 (00…99) %Y 年 %z hhmm 格式的数值化时区格式(例如,-0400)

举例说明

  1. 显示当前时间
代码语言:javascript复制
date
# Tue May 24 10:24:43 CST 2024
  1. 按“年-月-日” 格式输出
代码语言:javascript复制
date  "%Y-%m-%d"
  1. 输出昨天的日期
代码语言:javascript复制
date -d "1 day ago"  "%Y-%m-%d"
  1. 输出5秒后的时间
代码语言:javascript复制
date -d "5 second"  "%Y-%m-%d %H:%M:%S"
  1. 日期格式转换,“年-月-日” 转为“年/月/日”
代码语言:javascript复制
date -d "2024-05-24"   "%Y/%m/%d"
  1. 时间加减操作
代码语言:javascript复制
date  %Y%m%d                   # 显示年月日
date -d " 1 day"  %Y%m%d       # 显示后一天的日期
date -d "-1 day"  %Y%m%d       # 显示前一天的日期
date -d "-1 month"  %Y%m%d     # 显示上一月的日期
date -d " 1 month"  %Y%m%d     # 显示下一月的日期
date -d "-1 year"  %Y%m%d      # 显示前一年的日期
date -d " 1 year"  %Y%m%d      # 显示下一年的日期

4、logname 命令

logname命令用于显示用户名称,执行logname指令,它会显示目前用户的名称

举例说明

代码语言:javascript复制
logname
# root

5、top 命令

top命令是常用的实时系统监控工具,它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息

参数说明

  • -d <秒数>:指定 top 命令的刷新时间间隔,单位为秒
  • -n <次数>:指定 top 命令运行的次数后自动退出
  • -p <进程ID>:仅显示指定进程ID的信息
  • -u <用户名>:仅显示指定用户名的进程信息
  • -i:不显示闲置(idle)或无用的进程
  • -c:显示完整的命令行而不截断

举例说明

  1. 显示进程信息
代码语言:javascript复制
top
  1. 以完整命令显示进程信息
代码语言:javascript复制
top -c
  1. 设置信息更新次数n,过后自动退出
代码语言:javascript复制
top -n 5

6、sudo 命令

sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行

参数说明

  • -u:不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令

举例说明

  1. 以指定用户执行命令
代码语言:javascript复制
sudo -u tcms ls -l
  1. 以root权限执行上一条命令
代码语言:javascript复制
sudo !! 
  1. 用特定用户编辑脚本命令
代码语言:javascript复制
sudo -u tcms vi /home/sk/test.txt

7、id 命令

id命令用于显示用户的ID,以及所属群组的ID

参数说明

  • -g 或 --group  显示用户所属群组的ID
  • -G 或 --groups  显示用户所属附加群组的ID
  • -n 或 --name  显示用户,所属群组或附加群组的名称
  • -u 或 --user  显示用户ID

举例说明

  1. 显示当前用户的id
代码语言:javascript复制
id 
# uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t
  1. 显示用户群组的 ID
代码语言:javascript复制
id -g
  1. 显示所有群组的 ID
代码语言:javascript复制
id -G
  1. 显示指定用户信息
代码语言:javascript复制
id -u tcms 

8、free 命令

free命令用于显示内存状态

参数说明

  • -b  以Byte为单位显示内存使用情况。
  • -k  以KB为单位显示内存使用情况。
  • -s<间隔秒数> :持续观察内存使用状况

举例说明

  1. 显示内存的使用情况
代码语言:javascript复制
free
total used free shared buffers cached
Mem: 254772 184568 70204 0 5692 89892
  1. 周期性的查询内存使用信息
代码语言:javascript复制
free -s 5  # 每5s执行一次命令

9、adduser 命令

adduser 命令用于新增使用者帐号,adduser 与 useradd 指令为同一指令。

举例说明

  1. 新增一个一般用户
代码语言:javascript复制
adduser tcms
  1. 为新增的用户指定用户组
代码语言:javascript复制
adduser -g root tcms  # 指定用户所在的组为root用户组
  1. 创建一个系统用户
代码语言:javascript复制
adduser -r rtcms

10、clear 命令

clear命令用于清除屏幕,基本语法如下,很简单不在详细赘述。

代码语言:javascript复制
clear  

11、crontab 命令

crontab命令在linux系统中用于设置周期性被执行的指令的命令

参数说明

  • -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 Vi/Vim
  • -r : 删除目前的时程表
  • -l : 列出目前的时程表

举例说明

  1. 查看当前用户的 crontab 文件
代码语言:javascript复制
crontab -l
  1. 删除当前用户下的crontab文件
代码语言:javascript复制
crontab -r
  1. 编辑当前用户下的crontab问价
代码语言:javascript复制
crontab -e 

结束语

以上总结的命令,主要是针对Linux系统管理部分日常常用的一些命令,并列举了每个命令高频使用的参数和应用场景,如有其他疑问请大家评论留言指出,欢迎大家指正。最后,希望这篇博文能给大家提供些许帮助,感谢大家的支持!

0 人点赞