小易说IT 小易说IT

高频必学 Shell 命令(Linux /bash)

按场景分类,优先记最常用的,附带最简用法,方便复制练习

说明:默认是 bash,大部分在 zsh 也通用

一、文件目录(用得最多)

pwd                 # 查看当前所在路径
ls                  # 列出目录
ls -al              # 详细列表,含隐藏文件
cd /path            # 切换目录;cd ~ 回家目录,cd - 返回上一次目录
mkdir test          # 创建文件夹;mkdir -p a/b/c 递归建多层
rm file.txt         # 删除文件;rm -rf dir 强制递归删目录(谨慎!)
cp src dst          # 复制;cp -r dir1 dir2 复制文件夹
mv old new          # 移动/重命名
touch file.txt      # 创建空文件
ln -s 源 软链接名    # 创建软链接

二、查看文件内容

cat file.txt        # 一次性输出全部内容
less file.txt       # 分页查看(上下翻,q退出)
head -n 10 file.txt # 看前10行
tail -n 10 file.txt # 看最后10行
tail -f file.txt    # 实时跟踪日志(看服务日志神器)

三、文本处理(排查日志、过滤)

grep "keyword" file.txt         # 过滤包含关键词的行
grep -i "abc" file              # 忽略大小写
grep -r "abc" ./                # 递归在目录下搜索
sed                             # 流编辑(替换、删除行)
# 示例:sed 's/old/new/g' file 替换文本,不改动原文件;加 -i 直接修改原文件
awk '{print $1}' file           # 按列截取,处理表格类文本
sort                            # 排序
uniq                            # 去重(一般配合sort)
wc -l file                      # 统计行数

四、进程 & 端口(排查服务、端口占用)

ps aux                          # 查看所有进程
ps aux | grep java              # 过滤进程
top                             # 实时资源监控(q退出)
htop                            # 更好看的top(需要安装)
kill 1234                       # 结束进程
kill -9 1234                    # 强制杀进程
netstat -tulpn                  # 查看监听端口(很多系统换成ss)
ss -tulpn                       # 推荐,查看端口占用

五、系统信息

uname -a            # 内核信息
df -h               # 磁盘分区使用率
du -sh *            # 查看当前目录下各文件/文件夹大小
free -h             # 内存使用
whoami              # 当前用户
hostname            # 主机名
date                # 时间

六、权限相关

chmod 755 script.sh       # 修改权限
chown user:group file     # 修改属主
sudo cmd                  # 以root执行

七、压缩解压

tar -zcvf out.tar.gz dir/    # 打包压缩
tar -zxvf out.tar.gz          # 解压
zip out.zip file             # zip压缩
unzip out.zip                 # zip解压

八、网络

ping baidu.com
curl url                # 请求接口、下载内容
wget url                # 下载文件
ip a                    # 看网卡IP(替代ifconfig)

九、管道 & 重定向(shell 精髓)

# | 管道:把前面输出传给后面
ls -al | grep txt
# > 覆盖写入,>> 追加
echo "hello" > test.txt
echo "world" >> test.txt
# 2>&1 把错误流合并到标准输出,日志脚本高频
cmd > log.txt 2>&1

十、其他高频

history              # 历史命令
!123                 # 执行历史里编号123的命令
which java           # 查看命令路径
whereis java
env                  # 环境变量
export KEY=val       # 设置临时环境变量

学习优先级建议

  1. 先掌握:cd ls pwd mkdir rm cp mv touch cat less tail -f

  2. 日志排查必备:grep | awk sed wc

  3. 服务排错:ps top ss kill

  4. 脚本必懂:管道、> >> 2>&1、变量、for 循环


本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。

原文链接 https://www.yijunzhao.cc/archives/linux-bash-must-learn-shell-commands-guide

欢迎访问 https://www.yijunzhao.cc/

https://www.yijunzhao.cc/