关注小程序 找一找教程网-随时随地学编程

软件工程

Linux常用系统管理命令详解

ps

ps命令用于查看系统中的进程状态。

命令格式:ps [参数]

命令参数说明:

参数 作用
-a 显示现行终端机下的所有程序,包括其他用户的程序
-u 以用户为主的格式来显示程序状况
-x 显示没有控制终端的进程,同时显示各个命令的具体路径
-e 列出程序时,显示每个程序所使用的环境变量
-f 显示当前所有的进程
-t 指定终端机编号,并列出属于该终端机的程序的状况

使用示例:

ps -ef | grep sshd

效果如下图:

pidof

pidof命令用于查询指定服务进程的PID值。

命令格式:pidof [服务名称]

参数说明:

参数 说明
-s 仅返回一个进程号
-c 只显示运行在root目录下的进程,这个选项只对root用户有效
-o 忽略指定进程号的进程
-x 显示由脚本开启的进程

使用示例:

查询出sshd服务下的所有进程ID。

pidof sshd

效果如下图:

kill

kill命令用于终止指定PID的服务进程。

命令格式:kill [参数] [进程PID]

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。

使用示例:

删除pid为1001的进程。

kill -9 1001

效果如下图:

killall

killall命令用于终止指定名称的服务对应的全部进程。

命令格式:killall [进程名称]

使用示例:

删除crond服务下的所有进程。

killall crond

date

date命令用于显示和设置系统的时间和日期。

命令格式:date [选项] [+格式]

其中,时间格式的部分控制字符如下:

字符 说明
%a 当地时间的星期名缩写(例如: 日,代表星期日)
%A 当地时间的星期名全称 (例如:星期日)
%b 当地时间的月名缩写 (例如:一,代表一月)
%B 当地时间的月名全称 (例如:一月)
%c 当地时间的日期和时间 (例如:2021年1月27日 星期四 03:05:15)
%C 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
%d 按月计的日期(例如:01)
%D 按月计的日期;等于%m/%d/%y
%F 完整日期格式,等价于 %Y-%m-%d
%H 小时 (00…23)
%I 小时 (01…12)
%j 按年计的日期(001-366)
%m 月份 (01…12)
%M 分钟 (00…59)
%p 当地时间的AM或PM
%r 当地时间下的 12 小时时钟时间 (例如:11:11:04 下午)
%R 24 小时时间的时和分,等价于 %H:%M
%s 自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
%S 秒 (00…60)
%T 时间,等于%H:%M:%S
%U 一年中的第几周,以周日为每星期第一天(00-53)
%x 当地时间下的日期描述 (例如:12/31/99)
%X 当地时间下的时间描述 (例如:23:13:48)
%w 一星期中的第几日(0-6),0 代表周一
%W 一年中的第几周,以周一为每星期第一天(00-53)

使用示例:

  1. 按照默认格式查看当前系统时间
date

效果如下图:

  1. 按照指定格式查看当前系统时间
date "+%F %H:%M:%S"

效果如下图:

  1. 查看今天是当年中的第几天
date "+%j"

效果如下图:

  1. 将系统的当前时间设置为2020年09月15日22点30分10秒
date -s "20200915 22:30:10"

效果如下图:

  1. 校正系统时间,与网络时间同步

安装ntp校时工具

yum -y install ntp

用ntpdate从时间服务器更新时间

ntpdate time.nist.gov

效果如下图:

echo

echo命令用于在终端输出字符串或变量提取后的值。

命令格式:echo [字符串 | $变量]

使用示例:

  1. 显示普通字符串
echo '万猫学社'

效果如下图:

  1. 显示变量

首先在shell环境中定义一个临时变量name。

export name='万猫学社'

使用echo命令将变量name的值显示到终端。

echo $name

效果如下图:

  1. 显示结果定向至文件
echo "万猫学社" > name.txt

输出重定向到文件name.txt中,如果文件已存在,将会覆盖文件内容,如果不存在则创建。其中>符号表示输出重定向。

效果如下图:

也可以使用>>输出追加重定向符号,将文本追加到文件内容最后,而不是覆盖。

  1. 显示命令执行结果

以下命令将会在终端显示今天是当年中的第几天。

echo `date "+%j"`

使用$(command)形式可以达到相同效果。

echo $(date "+%j")

效果如下图:

uname

uname命令用于查看系统内核与系统版本等信息。

命令语法:uname [-amnrsv][--help][--version]

使用示例:

  1. 显示系统信息
uname -a

效果如下图:

  1. 显示当前系统的硬件架构。
uname -i

效果如下图:

  1. 显示操作系统发行编号。
uname -r

效果如下图:

image.png

  1. 显示操作系统名称。
uname -s

效果如下图:

image.png

  1. 显示主机名称。
uname -n

效果如下图:

image.png

history

history命令用于显示历史执行过的命令。

bash默认记录1000条执行过的历史命令,被记录在~/.bash_history文件中。

使用示例:

  1. 显示最新10条执行过的命令。
history 10

效果如下图:

  1. 清除历史记录。
history -c

效果如下图:

who

who 命令显示关于当前在本地系统上的所有用户的信息。

使用示例:

  1. 显示当前登录系统的用户
who

效果如下图:

  1. 显示用户登录来源
who -l -H

效果如下图:

  1. 只显示当前用户
who -m -H

效果如下图:

  1. 精简模式显示
who -q

效果如下图:

image.png

last

last 命令用于显示用户最近登录信息。

使用示例:

显示用户最近登录信息。

last

效果如下图:

由于这些信息都是以日志文件的形式保存在系统中,黑客可以很容易地对内容进行篡改,所以该命令输出的信息并不能作为服务器是否被入侵的依据。

最后,谢谢你这么帅,还给我点赞推荐关注