常用命令
echo
终端输出显示字符串或者变量提取后的值
# echo Helloworld
# echo $SHELLdate
显示或者设置系统时间与日期
# date
2024年 05月 02日 星期四 12:25:43 CST
# date "+%Y-%m-%d %H:%M:%S" # 格式化时间
2024-05-02 12:26:28
# date "+j" # 今年的第几天timedatectl
time date control 设置系统时间
# timedatectl status # 显示状态信息
Local time: 四 2024-05-02 12:30:10 CST
Universal time: 四 2024-05-02 04:30:10 UTC
RTC time: 四 2024-05-02 04:30:10
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
# timedatectl list-timezones # 列出已知时区
# timedatectl set-time # 设置系统时间
# timedatectl set-timezone # 设置生效时区reboot
重启计算机
poweroff
关闭计算机
wget
终端文件下载命令 web get
-b 后台下载模式 -P 下载到指定目录 -t 最大尝试次数 -c 断电续传 -p 下载页面所有资源 -r 递归下载
ps
查看进程状态
-a 显示所有进程 -u 用户和其他详细信息 -x 显示没有控制终端的进程
pstree
树状图展示进程之间关系
top
动态监视进程活动和系统负载等信息
nice
调整进程优先级
pidof
查询指定服务进程的PID号
kill
终止某个指定PID值的服务进程
killall
终止某个指定名称的服务所对应的全部进程
系统状态检测命令
ifconfig
获取网络卡配置和网络状态等信息
uname
查询系统内核变笨与系统架构等信息
或者可以查看lsb-release文件
cat /etc/lsb-release
uptime
查看系统负载信息和当前系统运行时间
free
显示系统中内存使用量信息
-h 人性化输出
# free -h
total used free shared buff/cache available
内存: 31Gi 1.2Gi 6.8Gi 17Mi 23Gi 29Gi
交换: 15Gi 0.0Ki 15Giiostat
iostat是一个用于监控系统 I/O 统计信息的命令行工具,它可以报告 CPU 使用情况、磁盘 I/O 统计信息以及其他相关硬件的使用情况。iostat是一个非常有用的工具,特别是在诊断 I/O 性能瓶颈时下载:
sudo apt install sysstat用法:
iostat [选项] [时间间隔] [次数]
例如:
iostat -c 1 10只显示时间信息,一秒刷新一次,显示10次
-c:只显示 CPU 统计信息。-d:显示磁盘统计信息。-k:以 KB/s 显示 I/O 速率。-m:以 MB/s 显示 I/O 速率。-t:显示时间戳。-x:显示扩展磁盘统计信息。
# 每秒1次显示sda设备的信息
$ iostat -x sda 1
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00- Device: 显示设备名称,这里是
sda。 - r/s (reads per second): 每秒读取次数。在这个例子中,
0.00表示每秒没有读取操作。 - rkB/s (read kilobytes per second): 每秒读取的千字节数。同样地,
0.00表示每秒没有读取的数据量。 - rrqm/s (read requests merged per second): 每秒合并的读请求次数。
0.00表示没有读请求被合并。 - %rrqm (% read requests merged): 合并的读请求所占比例。由于没有合并操作,所以这个值也是
0.00。 - r_await (read request wait time in milliseconds): 读请求等待时间(毫秒)。
0.00表示没有读请求等待。 - rareq-sz (average read request size in sectors): 平均读请求大小(扇区数)。
0.00表示没有平均读请求大小。 - w/s (writes per second): 每秒写入次数。
0.00表示每秒没有写入操作。 - wkB/s (write kilobytes per second): 每秒写入的千字节数。
0.00表示每秒没有写入的数据量。 - wrqm/s (write requests merged per second): 每秒合并的写请求次数。
0.00表示没有写请求被合并。 - %wrqm (% write requests merged): 合并的写请求所占比例。由于没有合并操作,所以这个值也是
0.00。 - w_await (write request wait time in milliseconds): 写请求等待时间(毫秒)。
0.00表示没有写请求等待。 - wareq-sz (average write request size in sectors): 平均写请求大小(扇区数)。
0.00表示没有平均写请求大小。 - d/s (IOs per second): 每秒 I/O 操作次数。
0.00表示每秒没有 I/O 操作。 - dkB/s (IO kilobytes per second): 每秒 I/O 数据量(千字节)。
0.00表示每秒没有 I/O 数据量。 - drqm/s (I/O requests merged per second): 每秒合并的 I/O 请求次数。
0.00表示没有 I/O 请求被合并。 - %drqm (% I/O requests merged): 合并的 I/O 请求所占比例。由于没有合并操作,所以这个值也是
0.00。 - d_await (I/O request wait time in milliseconds): I/O 请求等待时间(毫秒)。
0.00表示没有 I/O 请求等待。 - dareq-sz (average I/O request size in sectors): 平均 I/O 请求大小(扇区数)。
0.00表示没有平均 I/O 请求大小。 - f/s (flushes per second): 每秒刷新次数。
0.00表示每秒没有刷新操作。 - f_await (flush request wait time in milliseconds): 刷新请求等待时间(毫秒)。
0.00表示没有刷新请求等待。 - aqu-sz (average queue length): 平均队列长度。
0.00表示没有平均队列长度。 - %util (percent of CPU time spent in I/O operations): CPU 时间中用于 I/O 操作的百分比。
0.00表示没有 CPU 时间用于 I/O 操作。
iotop
一般要以sudo权限运行, 用来显示io的最高使用排序
sudo iotop
who
查看登入主机的用户终端信息
last
调取主机被访问记录
ping
用于测试主机连通性
-c 总共发送次数 -l 指定网卡名称 -I 每次间隔时间 -W 最长等待时间
# ping www.baidu.com -c 4
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=52 time=8.48 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=2 ttl=52 time=8.29 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=3 ttl=52 time=8.28 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=4 ttl=52 time=8.30 ms
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 8.284/8.336/8.476/0.080 mstracepath
显示数据包到达目的主机时途中经过的所有路由信息
netstat
显示网络连接,路由表。接口状态等网络信息
-a 显示所有有连接中的Socket -p 显示正在使用的Socket信息 -t 显示TCP协议的连接信息 -u 显示UPD协议的连接信息 -n 使用IP地址,不使用域名 -l 列出正在监听的服务状态 -i 现在网卡列表信息 -r 显示路由表信息
history
显示历史执行过的命令
查找定位文件命令
pwd
显示用户当前所处的工作目录
cd
切换当前的工作路径
~ 返回家目录
- 返回上一次目录
ls
显示目录中的文件信息
tree
以树状图的形式列出目录内容及结构
find
用于按照指定条件来查找文件所对应的位置
-name 匹配名称 -perm 匹配权限(mode 为完全匹配,-mode 为包含即可) -user 匹配所有者 -group 匹配所属组 -mtime -n +n 匹配修改内容的时间(-n 指 n 天以内,+n 指 n 天以前) -atime -n +n 匹配访问文件的时间(-n 指 n 天以内,+n 指 n 天以前) -ctime -n +n 匹配修改文件权限的时间(-n 指 n 天以内,+n 指 n 天以前) -nouser 匹配无所有者的文件 -nogroup 匹配无所属组的文件 -newer f1 !f2 匹配比文件 f1 新但比 f2 旧的文件
—type
b/d/c/p/l/f 匹配文件类型(后面的字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB 为查找超过 50KB 的文件,而-50KB 为查找小于 50KB
的文件)
-prune 忽略某个目录
-exec…… {}; 后面可跟用于进一步处理搜索结果的命令 (结尾必须是\)
# sudo find /etc/apt -name "source*"
/etc/apt/sources.list.distUpgrade
/etc/apt/sources.list.d
/etc/apt/sources.list.save
/etc/apt/sources.list
# find /etc/apt -user root -name "source*" -type f -exec ls -alh {} \;
-rw-rw-r-- 1 root root 3.3K 8月 22 2022 /etc/apt/sources.list.distUpgrade
-rw-rw-r-- 1 root root 1.9K 9月 16 2022 /etc/apt/sources.list.save
-rw-rw-r-- 1 root root 1.2K 2月 17 2023 /etc/apt/sources.listwhereis
用于按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置
which
用于按照指定名称快速搜索二进制程序(命令)所对应的位置
文本文件编辑命令
cat
用于查看纯文本文件(内容较少的),英文全称为 “concatenate”
-n 可以用来显示行号
more
查看纯文本文件 (内容较多)
head
用于查看纯文本文件的前 N 行 默认查看前5行
-n 10 指定查看前10行
tail
用于查看纯文本文件的后 N 行或持续刷新文件的最新内容
-n 10 指定查看后10行 -f file 指定不断刷新file文件
tr
tr 命令用于替换文本内容中的字符,英文全称为“translate”
# cat test.cfg | tr [a-z] [A-Z] # 小写全部替换为大写wc
统计指定文本文件的行数、字数或字节数
-l 只显示行数 -w 只显示单词数 -c 只显示字节数
# wc -l /etc/passwd
53 /etc/passwdstat
用于查看文件的具体存储细节和时间等信息
# stat /etc/passwd
文件:/etc/passwd
大小:3210 块:8 IO 块大小:4096 普通文件
设备:10302h/66306d Inode:262653 硬链接:1
权限:(0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
访问时间:2024-05-02 10:17:01.005293220 +0800
修改时间:2023-11-13 12:00:17.875851858 +0800
变更时间:2023-11-13 12:00:17.875851858 +0800
创建时间:2023-11-13 12:00:17.875851858 +0800grep
用于按行提取文本内容
-b 将可执行文件(binary)当作文本文件(text)来搜索 -c 仅显示找到的行数 -I 忽略大小写 -n 显示行号 -v 反向选择—仅列出没有“关键词”的行
-B 打印查到到行的前 n 行 -A 打印查找到行的后 n 行 -C 打印查找到行的前后 n 行
cut
按列提取文本内容
-f 指定显示第几列 -d 指定分隔符
# head -n 4 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
# head -n 4 /etc/passwd | cut -d : -f 1
root
daemon
bin
sysdiff
比较多个文件之间内容的差异,英文全称为 “different”
uniq
去除文本中连续的重复行,英文全称为 “unique”
sort
对文本内容进行再排序
-f 忽略大小写 -b 忽略缩进与空格 -n 以数值型排序 -r 反向排序 -u 去除重复行 -t 指定间隔符 -k 设置字段范围 -h 按照人类可读的格式对结果排序
# head -n 5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
# head -n 5 /etc/passwd | sort -t : -k 3 -r
sync:x:4:65534:sync:/bin:/bin/sync
sys:x:3:3:sys:/dev:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
root:x:0:0:root:/root:/bin/bash文件目录管理命令
torch
创建空白文件或设置文件的时间
-a 仅修改“访问时间” -m 仅修改“修改时间” -d 同时修改 访问时间和修改时间
mkdir
创建空白的目录
-p 递归创建
cp
复制文件或目录
-p 保留原始文件的属性 -d 若对象为“链接文件” ,则保留该“链接文件”的属性 -r 递归持续复制(用于目录) -i 若目标文件存在则询问是否覆盖 -a 相当于-pdr(p、d、r 为上述参数)
mv
剪切或重命名文件,英文全称为“move”
rm
删除文件或目录,英文全称为“remove”
-f 强制执行 -i 删除前询问 -r 删除目录 -v 显示过程
dd
按照指定大小和个数的数据块来复制文件或转换文件,语法格式为“dd if=参数值 of=参数值 count=参数值 bs=参数值”
if 输入的文件名称 of 输出的文件名称 bs 设置每个“块”的大小 count 设置要复制“块”的个数
file
用于查看文件的类型
# file /etc/passwd
/etc/passwd: ASCII texttar
对文件进行打包压缩或解压
-c 创建压缩文件 -x 解开压缩文件 -t 查看压缩包内有哪些文件 -z 用 gzip 压缩或解压 -j 用 bzip2 压缩或解压 -v 显示压缩或解压的过程 -f 目标文件名 -p 保留原始的权限与属性 -P 使用绝对路径来压缩 -C 指定解压到的目录
du
计算每个文件的磁盘用量,目录则取总用量。 -s 仅对每个命令行参数输出一个总使用量 -h 以人类可读的格式输出大小(例如,1K 234M 2G) -d —max-depth=N 仅当目录(指定了 —all 时也包括文件)深度小于或等于 <文件> 之下 N 层时才打印目录总大小
lsblk
lsblk命令可以显示系统中所有块设备的信息,包括挂载点
df
显示每个 <文件> 所在的文件系统的信息,默认显示所有文件系统。您可以通过它间接查找挂载点
参数:
-h, —human-readable 以 1024 进制的单位显示大小(例如:1023M)