掌握这些命令,让你的终端效率翻倍!
在日常开发、系统管理或自动化任务中,熟练使用 Shell 命令是提升效率的关键。本文整理了高频实用的 Shell 命令,涵盖:命令历史、文件操作、目录导航、文本处理、端口管理、别名配置、Mac 特有技巧等,并提供清晰示例与最佳实践。
一、命令历史与快捷操作
1. history:查看与管理命令历史
history # 显示最近执行的所有命令
history 5 # 只显示最近 5 条
!N # 执行历史中的第 N 条命令(如 !123)
!! # 重复上一条命令
!$ # 引用上条命令的最后一个参数
!command # 执行最近一次以 command 开头的命令(如 !ls)
管理历史记录
history -d 990 # 删除第 990 条历史记录
history -c # 清空整个命令历史(当前会话)
⚠️ 注意:
history -c不会永久删除,重启终端后可能恢复(取决于HISTFILE配置)。
快速搜索命令
Ctrl + R:进入反向搜索模式,输入关键词查找历史命令
(继续按Ctrl + R可查找更早的匹配项)
💡 小技巧:输入
hist后按Ctrl + R搜索“ssh”,可快速找到之前的登录命令。
二、目录切换:cd 命令进阶用法
| 命令 | 作用 |
|---|---|
cd 或 cd ~ |
回到当前用户的主目录(如 /home/user 或 /Users/user) |
cd - |
切换到上一次所在目录(目录切换“返回键”) |
cd .. |
进入上级目录 |
cd ../.. |
进入上两级目录 |
cd !$ |
使用上一条命令的最后一个参数作为路径(如 ls /tmp && cd !$) |
✅ 示例:
bash ls /var/log/nginx cd !$ # 相当于 cd /var/log/nginx
三、文本编辑器 Vim 快捷命令(命令模式)
适用于
vim或vi编辑器
| 命令 | 功能 |
|---|---|
:w |
保存文件,不退出 |
:w filename |
另存为 filename |
:w! |
强制保存(覆盖只读文件) |
:wq 或 :x |
保存并退出 |
:wq! |
强制保存并退出 |
:q |
退出(无修改) |
:q! |
强制退出,不保存 |
:e! |
放弃所有修改,重新加载文件 |
:0 或 :1 |
跳转到第 1 行 |
:$ |
跳转到最后一行 |
nyy + p |
复制 n 行并粘贴(如 5yy 复制 5 行) |
dd |
删除当前行 |
ndd |
删除 n 行(如 3dd 删除 3 行) |
u |
撤销上一步操作 |
Ctrl + r |
重做(恢复撤销的操作) |
ZZ |
保存并退出(等价于 :wq) |
💡 提示:进入命令模式需先按
Esc。
四、系统清理:释放磁盘空间
1. 清理 APT 缓存(Ubuntu/Debian)
sudo apt-get clean # 清理所有下载的 .deb 包缓存
sudo apt-get autoclean # 仅清理旧版本的缓存包
sudo apt-get autoremove # 删除不再需要的依赖包(孤立包)
✅ 建议定期执行,可释放数百 MB 甚至 GB 空间。
2. 查找并清理孤立包(Debian/Ubuntu)
# 安装 deborphan 工具
sudo apt-get install deborphan -y
# 查看可删除的孤立包
deborphan
# 删除所有孤立包
sudo deborphan | xargs sudo apt-get -y remove --purge
可手动删除这些目录中的文件以释放空间。
五、文件与文件夹操作
1. 初始化与追加内容
echo 'init' > test.txt # 创建文件并写入内容(覆盖)
echo 'new line' >> test.txt # 追加内容到文件末尾
2. 替换文件中的字符串(sed)
# 将 test.txt 中的所有单引号 ' 替换为双引号 "
sed -i "s/'/\"/g" test.txt
# 使用 # 作为分隔符(避免与 / 冲突)
sed -i 's#http://#https://#g' config.txt
🔐
-i表示“就地修改”,建议先备份原文件。
3. 查找大文件
# 查找大于 800MB 的文件,并按大小排序
find . -type f -size +800M -print0 | xargs -0 du -h | sort -hr
# 当前目录下各子目录大小(深度1)
du -h -d 1 | sort -hr
# 显示前 12 个最大的子目录(深度2)
du -hm --max-depth=2 | sort -nr | head -12
💡
sort -hr:人类可读格式(-h) + 逆序排序(-r)
4. 统计文件夹内所有文件总行数
find ./target-directory -type f -name "*.txt" | xargs cat | wc -l
可添加
-name "*.py"等过滤特定类型文件。
5. 批量替换文件夹内所有文件中的字符串
find . -type f -exec sed -i 's/apple/iphone/g' {} \;
⚠️ 警告:此命令会修改所有文件!建议先测试:
bash find . -type f -exec grep -l "apple" {} \; # 先查看哪些文件包含 "apple"
六、端口与进程管理
1. 查找占用指定端口的进程
# 方法一:netstat(较旧,部分系统已弃用)
netstat -atnp | grep :8080
# 方法二:lsof(推荐)
lsof -i :8080
# 输出示例:
# COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
# node 12345 user 20u IPv6 123456 0t0 TCP *:http-alt (LISTEN)
2. 终止进程
kill -9 12345 # 强制终止 PID 为 12345 的进程
✅ 安全做法:先尝试
kill 12345(软终止),无效再用-9。
七、MacOS 专属技巧
1. 为 Python 创建软链接(解决命令找不到)
# 将 Python 3.12 添加到 PATH
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12 /usr/local/bin/python
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.12/bin/pip3.12 /usr/local/bin/pip
💡 推荐使用
pyenv管理多版本 Python。
八、高效别名(Alias)配置
将以下内容添加到 ~/.bashrc 或 ~/.zshrc 文件中,大幅提升效率:
# ===== 文件与目录 =====
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# ===== Git =====
alias gta='git add .'
alias gtc='git commit -m'
alias gts='git status'
alias gtk='git checkout'
alias gtb='git branch'
alias gtp='git pull'
alias gtpo='git pull origin'
alias gtl='git log --oneline'
alias gtrh='git reset --soft HEAD~1'
alias gtdh='git diff HEAD'
# ===== Docker =====
alias dkb='docker build'
alias dki='docker images'
alias dkp='docker ps -a'
alias dkr='docker run'
alias dksp='docker system prune -af'
alias dkl='docker logs'
# ===== Python =====
alias python='python3.12'
alias pip='pip3.12'
# ===== Java & Homebrew =====
export JAVA_HOME='/usr/local/Cellar/openjdk@11/11.0.12/libexec/openjdk.jdk/Contents/Home'
export PATH="/usr/local/opt/openjdk@11/bin:$PATH"
export PATH="/usr/local/sbin:$PATH"
export HOMEBREW_NO_AUTO_UPDATE=1 # 关闭 Homebrew 自动更新(提升速度)
✅ 配置后执行
source ~/.zshrc(或~/.bashrc)生效。
九、实用在线工具推荐
| 工具 | 用途 | 链接 |
|---|---|---|
| ExplainShell | 输入命令,自动解析各部分含义 | https://explainshell.com |
| C 菜鸟工具 | 在线运行 Shell、Python、C 等代码 | https://c.runoob.com/compile/18 |
| ShellCheck | 检查 Shell 脚本语法错误 | https://www.shellcheck.net |
十、最佳实践与安全建议
- 备份重要文件:使用
sed -i或批量操作前,先备份。 - 权限最小化:避免滥用
sudo,尤其是配合find和xargs。 - 使用
.bash_aliases:将别名单独存放,便于管理。 - 学习
tmux或screen:长时间任务使用会话管理工具。 - 定期清理历史:避免敏感信息(如密码)留在
~/.bash_history。
评论列表,共 0 条评论
暂无评论