本文已参与「新人创作礼」活动,一起开启掘金创作之路。
记录linux系统管理相关命令
1. echo
在终端输出字符串
字符串可以为系统变量(包括临时变量)
echo [要输出的字符串/变量]
1.1 示例
# 输出字符串
echo hhhh
# 输出系统变量PATH
echo $PATH
还可以通过 > 直接把输出的结果写入文件
echo hello world > test.txt
echo 还可以与命令结合,比如pwd命令显示当前工作目录,可以与echo结合输出到一个文件
echo $(pwd) > location.txt
2. date
查看/修改系统时间
date [参数] [+格式]
2.1 参数
- -d datestr : 显示 datestr 中所设定的时间 (非系统时间)
- --help : 显示辅助讯息
- -s datestr : 将系统时间设为 datestr 中所设定的时间
- -u : 显示目前的格林威治时间
- --version : 显示版本编号
2.2 时间格式
| 字符 | 说明 |
|---|---|
| %a | 当地时间的星期名缩写(例如: 日,代表星期日) |
| %A | 当地时间的星期名全称 (例如:星期日) |
| %b | 当地时间的月名缩写 (例如:一,代表一月) |
| %B | 当地时间的月名全称 (例如:一月) |
| %c | 当地时间的日期和时间 (例如:2005年3月3日 星期四 23:05:25) |
| %C | 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20) |
| %d | 按月计的日期(例如:01) |
| %D | 按月计的日期;等于%m/%d/%y |
| %F | 完整日期格式,等价于 %Y-%m-%d |
| %j | 按年计的日期(001-366) |
| %p | 按年计的日期(001-366) |
| %r | 当地时间下的 12 小时时钟时间 (例如:11:11:04 下午) |
| %R | 24 小时时间的时和分,等价于 %H:%M |
| %s | 自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数 |
| %T | 时间,等于%H:%M:%S |
| %U | 一年中的第几周,以周日为每星期第一天(00-53) |
| %x | 当地时间下的日期描述 (例如:12/31/99) |
| %X | 当地时间下的时间描述 (例如:23:13:48) |
| %w | 一星期中的第几日(0-6),0 代表周一 |
| %W | 一年中的第几周,以周一为每星期第一天(00-53) |
2.2 示例
# 查看当前系统时间 格式化
date "+%Y-%m-%d %H:%M:%s"
#设置系统时间
date -s "20220131 00:00:00"
# 同步至CMOS芯片时间
clock -w
2.3 时间同步
2.3.1 ntp工具
yum install ntp -y
# 从ntp服务器更新时间
ntpdate time.nist.gov
3. wget
wget是一个用于下载的工具
wget [参数] 下载路径
3.1 参数
| 参数 | 作用 |
|---|---|
| -b | 后台下载 |
| -P | 下载到指定目录 |
| -t | 最大重试次数 |
| -c | 断点续传 |
| -p | 下载页面内所有资源,包括图片、视频等 |
| -r | 递归下载 |
3.2 示例
wget -P static/img/ http://img.alicdn.com/tfs/TB1.R._t7L0gK0jSZFxXXXWHVXa-2666-1500.png
4. ps
查看系统进程
ps [参数]
4.1 参数
| 参数 | 作用 |
|---|---|
| -a | 显示现行终端机下的所有程序,包括其他用户的程序 |
| -u | 以用户为主的格式来显示程序状况 |
| -x | 显示没有控制终端的进程,同时显示各个命令的具体路径 |
| -e | 列出程序时,显示每个程序所使用的环境变量 |
| -f | 显示当前所有的进程 |
| -t | 指定终端机编号,并列出属于该终端机的程序的状况 |
4.2 示例
# 查看系统所有进程及环境变量 经常性的与grep配合获取进程
ps -ef | grep sshd
5. top
动态监测系统状态及进程信息
top
退出使用q命令
5.1 top信息解释
- 统计信息区
-
- 第一行信息依次为:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
- 第二行信息依次为:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
-
- 第三行信息依次为:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
- 第四行信息依次为:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
-
- 第五行信息依次为:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、预加载内存量。
- 进程信息区
| 列名 | 含义 |
|---|---|
| PID | 进程ID |
| USER | 进程所有者的用户名 |
| PR | 进程优先级 |
| NI | nice值。负值表示高优先级,正值表示低优先级 |
| VIRT | 进程使用的虚拟内存总量,单位kb |
| RES | 进程使用的、未被换出的物理内存大小,单位kb |
| SHR | 共享内存大小,单位kb |
| S | 进程状态D:不可中断的睡眠状态R:正在运行S:睡眠T:停止Z:僵尸进程 |
| %CPU | 上次更新到现在的CPU时间占用百分比 |
| %MEM | 进程使用的物理内存百分比 |
| TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
| COMMAND | 命令名 |
6. pidof
查看指定进程的pid
pidof [参数] [服务名称]
6.1 参数
| 参数 | 说明 |
|---|---|
| -s | 仅返回一个进程号 |
| -c | 只显示运行在root目录下的进程,这个选项只对root用户有效 |
| -o | 忽略指定进程号的进程 |
| -x | 显示由脚本开启的进程 |
6.2 示例
# 查看sshd的pid 可能有多个sshd 会全部列出来
pidof sshd
# 排除1264的进程
pidof -o 1264 sshd
7. kill
向进程发出信号,通知进程
信号里常用的就是-9(kill)终止信号
kill [参数] [pid]
7.1 参数
参数也就是信号,常用的信号有三个
-9 强制停止
-15 正常停止(默认信号)
-1 重启进程
7.2 示例
# 新开一个终端 然后杀掉sshd
# 查看新终端的pid
ps -ef | grep sshd
# 终止(默认为-15)
kill 11442
8.killall
终止某个服务的所有进程
killall [服务名]
8.1 示例
# 杀掉所有sshd
killall sshd
完了,登不上了 md
9. ifconfig
查看网卡及网络信息
ifconfig
- 第一部分的第一行显示网卡状态信息。
-
- eth0表示第一块网卡。
- UP代表网卡开启状态。
-
- RUNNING代表网卡的网线被接上。
- MULTICAST表示支持组播。
- 第二行显示网卡的网络信息。
-
- inet(IP地址):172.16.132.195。
- broadcast(广播地址):172.16.143.255。
-
- netmask(掩码地址):255.255.240.0。
- RX表示接收数据包的情况,TX表示发送数据包的情况。
- lo表示主机的回环网卡,是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现。与回环地址(127.0.0.0/8 或 ::1/128)不同,回环网卡对系统显示为一块硬件。任何发送到该网卡上的数据都将立刻被同一网卡接收到。
10. uname
查看系统信息
uname [参数]
10.1 参数
| 参数 | 描述 |
|---|---|
| -a | 系统详细信息 |
| -i | 系统硬件架构 |
| -r | 显示发行版本 |
| -s | 系统名称 |
| -n | 主机名称 |
11. uptime
查看系统负载信息,负载信息即单位时间内系统平均进程数(正常情况下每个内核进程数不能超过3)
uptime
- 服务器时间
- 服务器运行时间45min
- 当前系统使用用户 1
- 负载信息 分别取1min,5min,15min的均值
12. free
查看系统内存使用情况
free [-b/k/m/h] [-s[间隔秒数]]
-b/k/m/h指定显示的单位
-s 动态监控,隔几秒刷新一次
free -h
| 参数 | 说明 |
|---|---|
| total | 物理内存总数 |
| used | 已经使用的内存数 |
| free | 空闲的内存数 |
| share | 多个进程共享的内存总额 |
| buff/cache | 应用使用内存数 |
| available | 可用的内存数 |
| Swap | 虚拟内存(阿里云ECS服务器默认不开启虚拟内存) |
13. who
查看正在使用系统的用户信息
who [参数]
13.1 参数
| 参数 | 描述 |
|---|---|
| -H | 显示标题栏 |
| -i | 显示闲置时间 |
| -m | 等同于 who am i |
| -q | 只显示登入系统的账号名称和总人数 |
| -w | 显示用户的信息状态栏 |
13.2 示例
# 显示标题
who -H
# 显示当前正在使用用户
who -m
# 只显示登录用户名和数量
who -q
14. last
显示用户最近登录信息
last
15. history
显示最近执行过的命令,默认记录1000条
# 可以指定显示多少条历史记录
histroy [n]
# 清除历史记录
history -c