终端日常使用时,经常忘记一些快捷命令,这里记录了一些常用的快捷命令。
一键清空整行
1. Linux / macOS (Bash/Zsh)
-
清空整行(最推荐)
Ctrl + U:删除 从光标到行首 的所有内容 → 光标在行尾时,直接清空整行Ctrl + K:删除 从光标到行尾 的所有内容 → 光标在行首时,直接清空整行
-
组合 光标移动 + 删除(无论光标在哪)
Ctrl + A(行首) →Ctrl + K(删到尾)Ctrl + E(行尾) →Ctrl + U(删到头)
macOS Ctrl 为 Control 键
2. Windows (CMD / PowerShell / Windows Terminal)
- 清空整行
Esc:直接清空当前行Ctrl + Home:删到行首Ctrl + End:删到行尾
3. 其他常用删除快捷键
Ctrl + W:删除光标前一个单词Alt + D:删除光标后一个单词Ctrl + Y:恢复刚才删除的内容(粘贴回来)
清空文件内容
> filenameecho "" > filename: > filename(冒号是shell内置的true命令)true > filename- 其它的还有 cat truncate dd 命令也可以
查找
列出当前目录下所有 png 文件(不包含子目录下面的)
# ls 命令
# 只匹配当前目录,不递归子文件夹
ls -d ./*.png
# 只列出文件名(不带路径)
ls -1 ./*.png
# find 命令
# -maxdepth 1 限制只搜索当前层级,不进入子目录
find . -maxdepth 1 -type f -name "*.png"
# 加上 -delete 删除文件
find . -maxdepth 1 -type f -name "*.png" -delete
# grep + ls
ls | grep '\.png$'
复制/移动
# 复制 a 目录下所有 png 文件 到 b目录下,是当前目录下的 a 目录 和 b 目录
cp a/*.png b
# 生成 bak 文件,生成 config.yaml.20250301.bak 备份文件
cp config.yaml config.yaml.$(date +%Y%m%d).bak
# dist 重命名为 app
mv dist app
上传下载
# 上传 foo.html 到服务器 /usr/share/nginx/html 目录下
scp ./foo.html user@remote_ip:/usr/share/nginx/html
# 上传 bar 目录 到服务器 /usr/share/nginx/html 目录下
scp -r bar user@remote_ip:/usr/share/nginx/html
# 上传 dist 目录下所有文件 到服务器 /usr/share/nginx/html/app 目录下, dist/* dist/ 都可以
scp -r dist/* user@remote_ip:/usr/share/nginx/html/app/
# 下载 /usr/share/nginx/html/foo.html 文件 到 当前目录下
scp user@remote_ip:/usr/share/nginx/html/foo.html ./
另外常用的上传还有 rsync 命令,它可以实现增量备份和同步,在传输大量文件时通常效率更高,因为它只传输变更的部分。
# 上传 foo.html 到服务器 /usr/share/nginx/html 目录下
rsync -avz ./foo.html user@remote_ip:/usr/share/nginx/html
# 上传 bar 目录 到服务器 /usr/share/nginx/html 目录下
rsync -avz bar user@remote_ip:/usr/share/nginx/html
# 上传 dist 目录下所有文件 到服务器 /usr/share/nginx/html/app 目录下
rsync -avz dist/ user@remote_ip:/usr/share/nginx/html/app/
# 增量备份本地目录到远程目录
rsync -avz --delete /path/to/local/dir user@remote_ip:/path/to/remote/dir
-a:归档模式,保留文件权限、所有权等信息。-v:详细模式,显示传输过程。-z:压缩传输,提高效率。--delete:在源目录中删除的文件,在目标目录中也会被删除,以保持两边文件的一致性。 使用--delete前请确认源目录正确无误,最好先加--dry-run测试。--dry-run会模拟执行同步过程,显示哪些文件会被传输、哪些会被删除,但不会真正执行任何操作。
ssh
使用 kr 当跳板机登录 rn
ssh -J kr rn
如果想让 ssh rn 默认走跳板,把 ~/.ssh/config 的 Host rn 加一行:ProxyJump kr
通过代理登录服务器
ssh -o ProxyCommand="nc -x 127.0.0.1:7890 %h %p" user@remote_ip
网络相关
# 查询服务器指定端口是否开启
nc -vz remote_ip 8443
# 发送请求
curl https://ipinfo.io
# or
wget -O- https://ipinfo.io
查询指定端口占用
# 查看监听 + 连接状态,显示进程
sudo ss -tulnp | grep 80
sudo ss -tulnp | grep nginx
# 查看占用80端口的进程
sudo lsof -i :80
# netstat
netstat -lntp 2>/dev/null | grep nginx
netstat -lntp 2>/dev/null | grep 80