Shell 命令
操作命令 内置命令 常用命令
操作命令
内置命令
1cd # 切换工作目录
2pwd # 输出当前工作目录
3clear # 清屏
4reset # 重置终端状态
5echo # 输出内容或变量 [-e启用转义 -E不启用转义 -n不在输出末尾添加换行符]
6# echo "content" >> <file.txt>
7sudo # 使用超级用户权限执行命令(superuser do) [-u指定用户 -i模拟登录shell]
8# sudo <command>
9ssh # 安全远程登录 [-p端口]
10# ssh -p <port> <username>@<hostname>
11sftp # 交互式文件传输
12# ls lls cd lcd pwd lpwd get put rm stat chmod
13scp # 本地和远程系统之间拷贝文件 [-r递归 -P端口 -v详细]
14# scp -r <local_path> <user>@<remote_host>:<remote_path>
15rsync # 文件同步工具 [-a归档 -v详细 -z压缩 -r递归]
16# rsync -avz <user>@<remote_host>:<remote_path> <local_path>
17ping # 测试主机之间的网络连接 [-i间隔时间 -s数据包大小]
18# ping <hostname_or_ip>
19wget # 网络下载文件工具 [-r递归 -P下载到指定目录]
20# wget <url>
21curl # 发送 HTTP/HTTPS 请求工具 [-o输出到指定文件 -I只请求HTTP头 -d发送POST请求 -H自定义HTTP头 -u身份验证]
22# curl <url>
23ls # 列出文件和目录 [-a显示所有 -h人性化大小 -l详细信息]
24# ls -ahl
25cp # 复制文件或目录 [-a归档 -r递归 -f强制 -i交互提示 -v详细]
26# cp <source> <destination>
27mv # 移动文件或目录 [-f强制 -i交互提示 -v详细]
28# mv <source> <destination>
29rm # 删除文件或目录 [-r递归 -f强制 -i交互提示 -v详细]
30# rm -rf <file_or_directory>
31ln # 创建硬链接 [-s软链接 -v详细 -i交互询问 -f强制覆盖]
32# ln -s <source_file> <target_link>
33touch # 创建文件 [-a更新访问时间 -m更新修改时间 -t设定指定时间戳]
34# touch <file>
35mkdir # 创建目录 [-p父级递归创建子目录 -m设置权限755]
36# mkdir <directory>
37cat # 连接多个文件并查看或查看文件内容 [-n行编码 -s压缩连续空行]
38# cat <file>
39head # 输出文件头部内容,默认10行 [-n输出行数 -c字节数]
40# head -n 50 <file>
41tail # 输出文件尾部内容,默认10行 [-f持续追踪输出新内容 -n输出行数 -c字节数]
42# tail -f -n 30 <file>
43less # 逐页查看文件内容,支持向前和向后浏览 [-N显示行号 -i忽略大小写]
44# less <file>
45grep # 全局正则表达式打印 [-n匹配行号 -i忽略大小写 -r递归搜索目录]
46# grep -in <pattern> <file>
47# cat demo.md | grep -in hello
48find # 根据条件查找文件 [-iname忽略大小写按文件名搜索 -name区分大小写 -type按文件类型搜索(f普通文件 d目录 l符号链接)]
49# find <directory> -iname "name" -type f
50diff # 比较两个文件或目录的差异 [-c上下文 -r递归 -u行前行后统一格式] (a、c、d代表add、change、delete)
51# diff -u <file> <file>
52df # 显示磁盘空余情况 [-h人类可读]
53# df -h
54du # 显示磁盘使用情况 [-s总结当前目录(summary) -h人类可读]
55# du -sh <file_or_directory>
56free # 显示内存使用情况 [-h人类可读]
57# free -h
58ps # 显示进程信息[-e每个进程 -f完整格式]
59# ps -ef
60kill # 终止进程,默认15信号[-9强制 -l列出信号 -s指定信号]
61# kill -9 <PID>
62chmod # 修改文件权限[-R递归 -v详细]
63# chmod -R <permissions> <file>
64chown # 修改文件所有者[-R递归 -v详细]
65# chown -R <user>:<group> <file>
66tar # 打包和解包文件[-c创建 -x提取 -z支持gzip(tar.gz) -v详细 -f指定归档文件名称 -C解压切换目录]
67# tar -czvf <archive.tar> <file_or_directory> 打包
68# tar -xzvf <archive.tar> -C <dest_path> 解包
69gzip # 压缩文件[-d解压 -k保留原文件 -v详细 -r递归压缩]
70# gzip -k <file.gz> 压缩
71# gzip -dk <file.gz> 解压
72xargs # 将标准输入转化为命令行参数
73# echo "file1 file2" | xargs rm
74awk # 文本数据处理和格式化输出
75# awk 'pattern { action }' <file>
76sed # 文本流式编辑器 [-i原地编辑]
77# sed -i 's/old/new/' <file> # 替换 old 为 new
78# sed -i.bak 's/old/new/' <file> # 替换并创建备份文件 file.txt.bak
79# sed '3d' <file> # 删除第 3 行
80# sed '2,5d' <file> # 删除第 2 到第 5 行
81jq # 格式化 json,并提取字段值
82# curl https://api.github.com/users/octocat | jq '.login'
83ip # 查看和配置网络接口
84# ip addr
85dig # 查询 DNS(域名系统)信息
86# dig example.com
87telnet # 测试主机和端口的连通性
88# telnet example.com <port>
89ss # 网络管理(Socket Stat)[-t显示TCP -u显示UDP -l显示监听 -a所有 -r路由 -i接口]
90# ss -tl
91iptables # 管理网络流量和设置防火墙(分nft与legacy版本)[-n数字形式 -v详细 -L列出所有]
92# iptables -L -v -n
93systemctl# 管理 systemd 服务 [start stop restart reload status enable disable]
94# systemctl start <service_name>
95crontab # 定时任务管理 [-l列出 -e编辑 -r删除]
96# crontab -l
97lsof # 列出系统中被进程打开的文件 [-i网络连接 -p进程id]
98# lsof -ti :<port>
99nohup # 程序在用户退出终端后继续运行
100# nohup python main.py > output.log 2>&1 &
101jobs # 显示所有作业状态(通过&后台运行才能放入作业)
102# fg %1 把作业编号为 1 的作业带到前台
103# bg %1 使用 Ctrl + Z 暂停前台作业,并把前台作业放到后台
104# kill %1 终止作业编号为 1 的作业
105
106history # 显示命令历史列表 [bash与zsh有区别,zsh的-i带时间格式]
107# history -i
108last # 显示用户登录历史记录 [-n限制输出条数 -p从某时间点筛选(point)]
109# last -n 5
110who # 显示当前登录系统的用户信息(tmux也算其中会话)
111su # 切换用户(switch user) [-p保留当前环境变量]
112# su <username>
113passwd # 修改密码
114# passwd <username>
115chsh # 永久改变终端 shell
116# chsh -s /bin/zsh
117time # 测量命令的执行时间
118
119exit # 退出当前 shell 或返回退出码,等同 Ctrl + D
120sleep # 延迟操作
121env # 显示当前的环境变量
122date # 显示当前日期和时间(+%s 转换成时间戳 -u UTC时间 +"%Y-%m-%d %H:%M:%S" 格式化)
123man # 查看命令手册
124# man <command>
125which # 查找某个可执行命令的路径 [-a显示所有匹配路径,不仅是这一个]
126# which <command>
127type # 显示指定命令的类型
128# type <command>
129uname # 显示系统信息[-a全部 -n网络节点名 -r内核版本]
130# uname -a
131hostname # 显示或设置系统的主机名(Zailiang-Macbook-Pro.local)
132# hostname <new-hostname>
133id # 显示当前用户的UID、GID和所属组的信息 [-n显示名称 -u仅显UID -g仅显GID -G仅显组GID]
134# id -un
135locale # 管理系统区域语言设置 [-a显示所有可用语言]
136# locale
137shutdown # 关机
138# sudo shutdown -r now
139reboot # 重启
140# sudo reboot
常用命令
1hash -r # 清空命令缓存
2echo $SHELL # 查询当前默认 shell 解释器
3echo $LANG # 查看当前语言
4echo $PATH # 查看可执行命令路径
5echo $EDITOR # 查看默认编辑器
6cat /etc/os-release # 检查操作系统类型
7cat /etc/shells # 查看服务器可用 shell
8locale -a # 列出所有可用区域语言
9chsh -s /bin/zsh # 默认解释器更换 zsh