本文链接: https://blog.csdn.net/xietansheng/article/details/80044635
0. 系统管理常用命令
类型 | 举例 |
---|---|
日期 | cal, date |
进程 | ps, top, kill, service |
网络 | ifconfig, ping, netstat |
磁盘 | df, du |
关机、重启 | shutdown, reboot |
其他 | sleep, uname |
1. 日期
1.1 查看日历: cal
格式: cal [-options] [value]
参数:
-3 显示临近3个月的日历
-j 日期以年中的第几天的形式来显示
-m 显示指定的月份
-y 显示指定的年份(默认为当年)
例子:
cal // 显示当前的月份
cal -j // 日期以年中的第几天的形式来显示当前月份
cal -m 10 // 显示当年10月份的日历
cal -jm // 日期以年中的第几天的形式来显示当年10月份的日历
cal -m 10 2018 // 显示2018年10月份的日历
cal -y 2020 // 显示2020年的日历
1.2 查看/设置时间: date
查看时间:
格式:
date +"时间日期格式"
例子:
date +"%Y-%m-%d %H:%M:%S" // 格式化输入当前时间, 结果示范: 2018-01-01 00:00:00
日期格式化字符:
%Y 年(20XX)
%m 月(01 ~ 12)
%d 日, 月中的第几天(01 ~ 31)
%H 小时, 24小时制(00 ~ 23)
%M 分钟(00 ~ 59)
%S 秒(00 ~ 59)
%s 时间戳, 单位: 秒
%w 十进制数 [0(星期日), 6] 表示的周中日
%Z 时区名称, 如 CST
%z 时区偏移, 格式 +HHMM 或 -HHMM, 如: +0800
......
有时需要输出某些命令的执行时间, 可以用如下代码:
start=$(date +"%s")
sleep 3s // 模拟执行相关耗时命令
end=$(date +"%s")
echo "用时: $((end - start)) 秒"
设置系统时间(需要 root 权限):
格式:
date -s "符合要求的日期时间字符串"
例子:
date -s "20180201" // 日期设置为 2018-02-01, 时间设置为 00:00:00
date -s "20:08:08" // 把时间设为 20:08:08, 日期不变
date -s "20180201 20:08:08" // 把日期时间设置为: 2018-02-01 20:08:08
date -s "2018-02-01 20:08:08" // 把日期时间设置为: 2018-02-01 20:08:08
date -s "20:08:08 20180201" // 把日期时间设置为: 2018-02-01 20:08:08
date -s "20:08:08 2018-02-01" // 把日期时间设置为: 2018-02-01 20:08:08
2. 进程
2.1 查看进程信息: ps
progress, 查看进程信息。
参数:
-A 显示所有进程
-a 显示所有终端下执行的进程(包括其他用户执行的)
a 显示当前终端下执行的所有进程(包括其他用户执行的)
-T 显示当前终端下执行的所有进程
-u 显示进程的详细状态
-x 显示没有控制终端的进程
-r 只显示当前终端正在运行的进程
例子:
ps -a
ps -aux // 详细显示所有进程
ps -aux | grep keyword // 进程通常非常多,可以使用grep过滤
2.2 动态显示进程信息: top
动态显示正在运行的进程。
输入: top<回车>, 动态显示正在运行的进程。
执行 top 命令后, 按下相关按键, 可以对显示进行相关操作:
M 按内存使用量排序
P 按 CPU 占有率排序
T 按进程已运行时间排序
U/u 按之后输入的用户名筛选进程
k 按之后输入的 PID 杀死进程
q 退出
h 帮助
例子:
top -d 3 // 3 秒更新一次
top -d 1 -n 5 // 1 秒更新一次, 更新 5 次后退出
top -b // Batch Mode (每一次更新都直接输出, 不在原位置覆盖旧内容)
2.3 终止进程: kill
格式: kill [-signal] pid
其中 signal 为信号值, 取值 0~15, 9表示强制终止进程。
例子:
kill 4848 // 终止 pid 为 4848 的进程
kill -9 4848 // 强制终止 pid 为 4848 的进程
PS: 一般可以用 ps 或 top 命令查找进程的 pid, 然后用 kill 命令终止进程。
2.4 服务的管理: service
格式:
service <服务名称> {start|stop|reload|restart|force-reload|status}
// 或者
/etc/init.d/<服务名称> {start|stop|reload|restart|force-reload|status}
3. 网络
如果没有 ifconfig
、ping
、netstat
命令,需要先安装:
命令 | 软件包 |
---|---|
ifconfig、netstat | 安装 net-tools 软件包,apt install net-tools 或 yum install net-tools |
ping | 安装 inetutils-ping (Ubuntu) 或 iputils (CentOS) 软件包 |
3.1 网卡信息查询与配置: ifconfig
执行 ifconfig 命令, 输出信息大致如下:
/*
eth0 Link encap:以太网 硬件地址 00:1c:42:6e:74:2a
inet 地址:10.211.55.10 广播:10.211.55.255 掩码:255.255.255.0
inet6 地址: fe80::21c:42ff:fe6e:742a/64 Scope:Link
inet6 地址: fdb2:2c26:f4e4:0:21c:42ff:fe6e:742a/64 Scope:Global
inet6 地址: fdb2:2c26:f4e4:0:91c7:e35b:106f:8bbd/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:531 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:638 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:76323 (76.3 KB) 发送字节:65422 (65.4 KB)
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 跃点数:1
接收数据包:843 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:843 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:80932 (80.9 KB) 发送字节:80932 (80.9 KB)
*/
eth0 表示第一块网卡, 右边是它的相应状态信息; lo 表示主机的会换地址。
启动和关闭指定网卡:
ifconfig eth0 up
ifconfig eth0 down
配置和删除网卡的 IP 地址:
ifconfig eth0 192.168.0.100
ifconfig eth0 192.168.0.100 netmask 255.255.255.0
ifconfig eth0 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
配置和删除网卡的 IPv6 地址:
ifconfig eth0 add 34dfe:6252:600:1004::2/64
ifconfig eth0 del 34dfe:6252:600:1004::2/64
PS:
ifconfig 配置的网卡信息, 在系统重启后失效。如果想要永久保存配置的网卡信息, 需要修改网卡的配置文件。
3.2 检测远程主机连通性: ping
格式: ping [各参数和值] 域名/IP
参数:
-c 测试次数
-i 每次的间隔时间, 单位: 秒
-q 不显示执行过程, 开头和结尾信息除外
-s 数据包大小
例子:
ping www.baidu.com // ping 百度的主机
ping -c 5 -i 3 www.baidu.com // ping 百度的主机, 测试 5 次, 每次间隔 3 秒
3.3 查看网络状态(监听端口): netstat
格式: netstat [-options]
参数:
-a/--all 显示所有Socket连接
-t/--tcp 显示所有TCP连线
-u/--udp 显示所有UDP连线
-l/--listening 显示所有正在监听的远程Socket连接
-p/--programs 显示正在使用Socket的程序名称
-c/--continuous 持续列出网络状态
-n/--numeric 使用IP地址显示网络地址
-i/--interfaces 显示网卡信息
-s/--statistice 显示网络信息统计
例子:
netstat -a // 列出所有的网络连接
netstat -un // 显示所有 UDP 连接,地址使用 IP 地址显示
netstat -aup // 显示所有 UDP 连接和端口的使用情况
netstat -lp // 显示所有正在监听的连接,并显示出程序名称
netstat -tunlp // 显示正在监听的 TCP/UTP 连接、端口、IP、程序名称
4. 磁盘
4.1 查看磁盘分区的可用空间: df
disk file, 查看磁盘分区的可用空间。
格式: df [-options] [values]
参数:
-a all, 显示所有的文件系统
-l local, 仅显示本地端的文件系统(默认)
-T Type, 显示文件系统的类型
-t type, 仅显示指定文件系统类型的文件系统
-h human readable, 以可读性较高的方式显示信息, 例如以 KB, MB, GB 等为单位显示大小
-k kilobytes, 指定区块大小为 1024 字节, 即以 KB 为单位显示大小
-m megabytes, 指定区块大小为 1024*1024 字节, 即以 MB 为单位显示大小
例子:
df // 显示本地端的文件系统
df -h // 以可读性高的方式显示本地端的文件系统
df -a -t ext4 // 显示文件系统类型为 ext4 的所有文件系统
df -aTh // 显示所有文件系统, 并显示文件系统类型, 并以可读性高的方式显示大小
4.2 查看文件或目录所占用的空间: du
格式: du [-options] file_or_dir
参数:
-a all, 递归显示各文件和子目录的占用大小
-s summarize, 仅显示文件或目录的汇总, 不列出目录下文件和目录
-h human readable, 以可读性较高的方式显示信息, 例如以 KB, MB, GB 等为单位显示大小
-k kilobytes, 指定区块大小为 1024 字节, 即以 KB 为单位显示大小
-m megabytes, 指定区块大小为 1024*1024 字节, 即以 MB 为单位显示大小
例子:
du -s aaDir // 汇总显示文件夹 aaDir 所占用的空间
du -ah bbDir // 递归显示文件夹 bbDir 下的所有文件和目录, 并以可读性较高的方式显示占用空间大小
du aa.txt // 显示文件 aa.txt 所占用的空间
du aa.txt bb.txt // 显示多个文件所占用的空间
5. 关机、重启
5.1 关机: shutdown
格式: shutdown [-option] time
参数:
-r 关机后重启系统
-h 指定关机的时机
例子:
shutdown -r now // 立即关机, 并重启
shutdown -h now // 立即关机, now 相当于时间为 0
shutowns -h +10 // 10 分钟后自动关机
shutdown -h 20:00 // 当天 20:00 自动关机
shutdown -h +5 "System will shutdown after 5 min" // 5 分钟后自动关机, 并输出警告信息
5.2 重启: reboot
格式: reboot
6. 其他
6.1 延时: sleep
格式: sleep number[时间单位]
时间单位:
s 秒(默认)
m 分钟
h 小时
d 天
例子:
sleep 3 // 延时 3秒
sleep 3s // 延时 3秒
sleep 5m // 延时 5分钟
sleep 1h // 延时 1小时
sleep 1d // 延时 1天
6.2 查看系统版本: uname
查询 Linux 内核版本:
格式: uname [OPTION]...
参数:
-a, --all 以如下次序输出所有信息。其中若 -p 和 -i 的探测结果不可知则被省略:
-s, --kernel-name 输出内核名称
-n, --nodename 输出网络节点上的主机名
-r, --kernel-release 输出内核发行号
-v, --kernel-version 输出内核版本
-m, --machine 输出主机的硬件架构名称
-p, --processor 输出处理器类型(不可移植)
-i, --hardware-platform 输出硬件平台(不可移植)
-o, --operating-system 输出操作系统名称
--help 显示此帮助信息并退出
--version 显示版本信息并退出
示例:
uname # 输出: Linux
uname -a # 输出: Linux 5ed36eafe908 5.4.0-73-generic #82-Ubuntu SMP Wed Apr 14 17:39:42 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
uname -r # 输出: 5.4.0-73-generic
uname -m # 输出: x86_64
uname -o # 输出: GNU/Linux
查看 Linux 发行版本:
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal