基础操作命令
ls
-l 以列表的形式列出当前文件夹下的文件目录
-a 列出有关文件的详细信息,包括文件的大小和权限
-R 列出某一文件夹下所有文件以及递归文件夹
-F 额外使用颜色区分文件夹和文件
ll 相当于使用 ls -la
mv
重命名文件
1 | mv [file1] [file2] # 修改文件file1的名字为file2 |
cp
复制并移动文件
-i 提醒是否覆盖原文件
1 | cp [file] [path] # 将文件file复制到目录path |
touch
touch file.conf 创建一个叫做file.conf的文件
mkdir
mkdir -p [folder1/folder2] 创建多级目录
mkdir [foler1] [folder2] [folder3] 创建多个目录
file
1 | file [file] |
用于查看文件类型
rm
rm [foler(file)] 删除文件夹或文件
-r 递归删除文件夹
-f 强制删除,无提示
-rf 强制删除多级目录
解压缩命令
gzip 压缩文件,压缩后会把原始文件删除
gzip [file1] 压缩某一个文件为。gz格式的压缩包
gzip [file1] [file2] ... 将多个文件分别压缩为单个.gz的压缩包
gzip -d [file.gz] 使用-d参数解压缩已经被压缩的gz格式文件
gzip -d [file2.gz] [file3.gz] 使用-d参数解压多个压缩包
gunzip
guzip [file.gz] 解压gz格式的压缩包,作用通zip -d 用法
gunzip [file1.gz] [file2.gz] [file3.gz] 解压多个gz格式的压缩包
bzip2 可加参数通gzip
tar 压缩多个文件或多个目录为一个文件
-c 创建打包文件
-x 解包文件,解压缩
-v 可视化压缩和解压缩过程(跑码过程)
-f 必写参数 后面跟的是file ,压缩包的名字,f要放到参数的最后一位
-r 向已经压缩后的文件追加新的文件
用法: tar -rf mytart.tar readme.txt
-C 解压时指定文件解压的目标路径
用法: tar -xvf [mytar.tar] -C [/root/file/path]
-cvf
创建一个压缩包并指定压缩包名字
-rf [mytar.tar] [newfile.txt]
向压缩包mytar.tar 添加新文件 newfile.txt
打包并压缩
用法: tar -cvzf mytar.tar file1 file2 file3 将文件打包并压缩为gz文件
-z 压缩为gz格式
-j 压缩为bz2格式
-J 压缩为xy格式
解压文件
tar -xvzf <tar.gz> -C File_path 解压文件到指定地址
进程相关命令
ps
ps aux 显示全部的系统进程信息
-e 显示所有进程
-f 全格式,包括PPID
-ef 显示所有进程并显示PPID
-u
1 | ps -u root # 指定某用户,只显示该用户相关的进程 |
-p
1 | ps -p <PID> # 显示某个PID对用的进程 |
-C
1 | ps -C sshd # 显示指定名的进程 |
--deselect
1 | ps -C <sshd> --deselect # 排除sshd进程相关内容 |
-o
1 | ps -o pid,user,cmd # 只列出pid、user、cmd相关的信息 |
--sort
1 | ps --sort=-%cpu # 按CPU消耗排序(降序) |
--forest
1 | ps -ef --foreset # 以树状结构排序 |
kill
kill命令只会杀死指定的单个进程 , 不会杀死守护进程(守护进程独立于主进程)
kill <PID> 杀死指定PID 参数对应的程序 (PID在ps命令中对应的为第一列的数字)
kill -9 强制杀死进程
killall
killall <name> 杀死叫此名称的进程
IP地址查看命令
ifconfig
查看网络接口相关的信息,包括IP地址和网卡信息
eth0 对应的是网卡信息
lo对应的是本地回环地址
ip addr
查看当前系统的IP地址
eth0 对应的是网卡信息
lo对应的是本地回环地址
重定向符号
输出重定向
符号> 和 >>
> 将内容输出到某个文件中
>> 将内容追加到某个文件中
1 | ls -la > list.txt # 将ls -la的输出添加至文件list.txt |
打印命令
echo
打印命令,后跟需要打印的文字内容。
1 | echo hello world > list.txt # 打印内容 hello world 将其输出至list.txt |
| 选项 | 作用 | 示例 |
|---|---|---|
-n |
不输出末尾换行符 | echo -n "Loading..." |
-e |
启用转义字符解释(如 \n, \t) |
echo -e "Line1\nLine2" |
-E |
禁用转义(默认行为,通常省略) | echo -E "Price: \$10" |
| 转义符 | 含义 | 示例 |
|---|---|---|
\n |
换行 | echo -e "A\nB" → A 换行 B |
\t |
制表符(Tab) | echo -e "Name:\tAlice" |
\r |
回车(常用于进度条覆盖) | echo -ne "Progress: 50%\r" |
\\ |
反斜杠字面量 | echo "\\" → \ |
\" |
双引号 | echo "\"quoted\"" → “quoted” |
\$ |
美元符号(避免变量展开) | echo '\$HOME' → $HOME |
cat
将文件内容打印至屏幕输出(从前往后)
cat file.txt 打印file.txt内容至屏幕
额外用法:
-n 显示行号
-b 只显示有内容的行号
-T 去除制表符
将多个文件重写或追加进某新的文件
1 | cat file1.txt file2.txt > file3.txt # 将file1.txt file2.txt文件内容输出至file3.txt |
tac
将文件内容输出至屏幕(从后往前)
用法通cat
–help
添加在某个命令后,用于查看该命令的用法
磁盘内存相关命令
df
查看设备各分区所占用的空间
df -h 以更加清晰的表格形式查看磁盘占用情况,磁盘的空间单位以Mb表示
free
查看系统内存占用情况
free -h 以更加人性化的形式查看内存的占用情况
free -m 将原始的Kb单位转换为Mb单位查看内存占用
wc
统计文件的行数、单词数和字节数
| 参数 | 作用 |
|---|---|
| -l | 仅统计文件行数 |
| -w | 仅统计文件单词数 |
| -c | 仅统计文件字节数 |
wc 通wc -lwc 一起统计文件的行数、单词数、字节数
du
查看某目录下的目录所占磁盘大小
-s 查看该目录所占磁盘大小
-h 以更加可读的形式展示目录所占磁盘大小
du -sh 以更加刻度得形式查看某文件夹所占磁盘大小
mount
挂载磁盘到某一文件夹
1 | mout -t ntfs [磁盘标识] [分区(挂载点)] # 将某磁盘挂载至某分区 |
umount
取消挂载某分区
1 | umount /var # 取消挂载var分区 |
文件查看命令
head
查看文件的前N行,默认查看文件的前10行
head -n 查看文件的前n行
tail
查看文件的末尾n行,默认显示后10行
tail -n 查看文件的后n行
tail -f <path> 查看某位置的动态文件,一般用于查看日志
less
查看大文件,需要使用方向键翻页以查看更多内容,不会将所有内容都打印至屏幕
more
查看大文件,功能与less类似,往上翻页Ctrl +b, 往下翻页Ctrl + f (空格键也可以)
find
查找文档,可以使用* 通配符扩大查找范围
-name 以文档名的形式查找文档
**-type **
-type f以文档类型查找文档
-type d查找文件夹
1 | find <path> -name <file> -type f 使用名称查找的方式在目录<path>下查找文件 <file> |
日期和时间命令
date
获取系统时间
date
Fri Jan 23 02:45:25 PM UTC 20
date +%F
2026-01-23
date +%F%T
2026-01-2314:47:20
| 参数 | 作用 |
|---|---|
| %F | 打印完整的年月日 |
| %T | 打印完整的时分秒 |
| %Y | 打印四位的年份 |
| %m | 打印两位的月份 |
| %d | 打印日 |
| %H | 打印小时 |
| %M | 打印分钟 |
| %S | 打印秒 |
1 | date -s "2026-01-23 12:34:45" #设置系统时间为具体的时间日期,注意格式 |
timedatectl
列出系统时间和硬件时间,可设置时区
list-timezones 列出时区列表set-timezone 设定为指定时区set-time 设定具体的时间
1 | timedatectl set-time "2026-01-10 12:21" #将时间设置为:2026-01-10 12:21 注意时间格式 |
ntpdate
手动网络校时,修正时间为网络时间(需要添加ntp服务器地址)
1 | ntpdate ntp.ntsc.ac.cn 使用ntp.ntsc.ac.cn的授时信息修正时间 |
cal
查看系统日历
cal -n 输出当前前一个月后一个月以及本月的日历
grep用法
grep是用于文档数据筛选的指令,用于查询与获取排除指定数据。常与管道符|联合使用,此处的管道符指的是传参,将符号前处理狗的数据交由后面的进行二次筛选。
-E 启用扩展正则表达式(支持 +, ?, `)
-i 忽略大小写
-v 反向匹配:显示不包含模式的行
-r 递归搜索目录(-R 会跟踪符号链接)
-n 显示匹配行的行号
-l 只输出包含匹配项的文件名(不显示内容)
-o 只输出匹配的部分(非整行)
-w 整词匹配(避免部分匹配)
-q 只输出匹配行数(不显示内容)
sort用法
sort常用在管道符后买你用以继续处理数据(排序),单独的sort 默认启用以字典排序。
1 | sort -n # 按数值大小排序 小的在上大的在下 |
1 | sort -nr # 按数值排序,从大到小 |
1 | -u # 去重后排序 |
1 | -V # 按自然版本号排序 比如ip地址、软件版本、带编号的文件 |
tee 读取内容并存入某文件
-a
1 | echo "$var" | tee -a /var/log/newlog.log |
hystory
列出本轮启动中所执行的所有命令
用户管理
useradd
| 选项 | 作用 | 示例 |
|---|---|---|
-m |
创建用户家目录(默认不创建!) | useradd -m alice |
-s |
指定登录 shell | useradd -s /bin/bash bob |
-G |
指定附加组(可多个) | useradd -G sudo,developers charlie |
-g |
指定主组(默认新建同名组) | useradd -g staff dave |
-c |
添加注释/描述(如全名) | useradd -c "Alice Smith" alice |
-d |
指定自定义家目录路径 | useradd -d /opt/alice alice |
-e |
设置账户过期日期(YYYY-MM-DD) | useradd -e 2026-12-31 guest |
-p |
设置加密后的密码(不推荐明文) | 见下文安全说明 |
usermod
| 选项 | 作用 | 示例 |
|---|---|---|
-l |
修改用户名 | usermod -l newname oldname |
-g |
修改主组 | usermod -g newgroup username |
-G |
覆盖附加组(用 -aG 追加!) |
usermod -aG docker username |
-s |
修改 shell | usermod -s /bin/zsh alice |
-d |
修改家目录(需手动迁移文件) | usermod -d /new/home/dir username |
-L |
锁定账户(禁止登录) | usermod -L username |
-U |
解锁账户 | usermod -U username |
-e |
修改账户过期时间 | usermod -e 2027-01-01 username |
passwd
| 命令 | 作用 |
|---|---|
passwd username |
root 为用户设密码 |
passwd |
普通用户修改自己密码 |
passwd -l username |
锁定密码(等价于 usermod -L) |
passwd -u username |
解锁密码 |
passwd -e username |
强制用户下次登录改密码 |
passwd -d username |
删除密码(危险!允许空密码登录) |
| 命令 | 作用 |
|---|---|
id username |
查看 UID/GID/所属组 |
groups username |
查看用户所属组 |
getent passwd username |
查询用户详细信息(支持 LDAP/NIS) |
cat /etc/passwd |
查看所有用户(不含密码) |
sudo cat /etc/shadow |
查看密码哈希(仅 root) |
| 操作 | 命令 |
|---|---|
| 创建用户 | useradd -m -s /bin/bash username |
| 修改用户组 | usermod -aG groupname username |
| 删除用户 | userdel -r username |
| 创建组 | groupadd groupname |
| 设密码 | passwd username |
| 查看用户信息 | id username |
数学运算
expr
进行简单数学运算
1 | expr 2 + 12 # 简单的加减运算 运算符号两侧要有空格 |
$[]
进行数学运算且无须对字符进行转义,但是不能独立输出,必须作为变量并添加接收方(赋值或echo输出)
1 | var1=$[25 * 3] |
$(())
是$[]语法的现代版,更加推荐使用该语法,支持字符串的比较(
|&<<>>)
浮点运算
bc
使用该语法结合其他特殊用法进行浮点运算
1 | echo "12.4 + 3.533" | bc # 基础的运算,不设保留几位小数 |
test 和[] 表达式评估
test 与[]用法一致,是[]的单词写法。主要作用为传输执行结果True,False,常在if判断和while以及管道符的信息传递中使用
- 表达式成立——True
- 表达式不成立——False
参数
-e 文件存在
-s 文件非空(大小 > 0)
-z 字符串长度为 0(为空)
-n 字符串长度非 0(非空)
-f 是普通文件
-d 是目录
-r |
可读 |
-w |
可写 |
-x |
可执行 |
整数比较
-eq 相等(equal)
-ne 不等(not equal)
-lt 小于(less than)
-le 小于等于
-gt 大于(greater than)
-ge 大于等于