Linux 命令速查

适用平台:Linux (Ubuntu / CentOS 等) / macOS / WSL。

1. 目录与文件操作

1
2
3
4
5
6
pwd                             # 查看当前绝对路径
ls -lah # 列表显示所有文件及详细信息(含隐藏文件、人类可读大小)
mkdir -p /path/to/dir # 递归创建多级目录
rm -rf mydir/ # 强制递归删除目录及内容(危险操作,需谨慎)
cp -r src_dir dest_dir # 递归复制整个目录
mv oldname newname # 重命名文件,或移动文件到新路径

2. 文件查看与文本搜索

1
2
3
4
5
6
cat file.txt                    # 打印文件全部内容到终端
less file.txt # 分页查看长文件(使用方向键上下滚动,按 q 退出)
head -n 20 file.txt # 查看文件的前 20 行
tail -f app.log # 实时滚动查看动态更新的文件(常用于看日志)
grep -rn "keyword" ./ # 在当前目录下递归搜索包含关键词的文件并显示行号
find /path -name "*.py" # 在指定路径下按文件名查找特定后缀的文件

3. 实验进程与系统监控

1
2
3
4
5
6
7
nvidia-smi                      # 查看当前 GPU 使用状态及显存占用
watch -n 1 nvidia-smi # 每 1 秒自动刷新一次 GPU 状态
top # 实时监控 CPU、内存及活跃进程 (推荐安装 htop,更直观)
free -h # 查看系统内存 (RAM) 及 Swap 交换空间使用情况
df -h # 查看各个挂载点的磁盘空间使用情况
ps aux | grep python # 查找当前所有与 python 相关的后台进程
kill -9 <PID> # 强制终止指定 PID (进程号) 的进程

后台跑实验常用(防止断网或关掉终端导致任务中断)

1
2
3
4
5
6
7
nohup python train.py > output.log 2>&1 &  # 将任务挂后台运行,标准输出和错误全写入日志
tail -f output.log # 配合上一条,实时盯着后台日志
jobs # 查看当前终端的后台任务

# 推荐进阶方案:使用 tmux 或 screen 进行持久化会话管理
tmux new -s myexp # 创建名为 myexp 的持久化终端会话
tmux attach -t myexp # 重新连接到后台持续运行的 myexp 会话

4. 远程连接与网络排错

1
2
3
4
5
ssh user@ip_address             # 通过 SSH 连接远程服务器
scp file.zip user@ip:/path/ # 上传本地文件到服务器指定目录
scp user@ip:/path/file ./ # 从远程服务器下载文件到本地当前目录
ping github.com # 测试目标域名的网络连通性
netstat -tuln # 查看当前系统正在监听的端口状态

GitHub SSH 连接超时 (Port 22 Timeout) 变通方案

如果在某些网络环境下 22 端口被屏蔽导致无法拉取代码,可通过 443 端口复用 SSH。在 ~/.ssh/config 文件中追加以下配置:

1
2
3
4
Host github.com
Hostname ssh.github.com
Port 443
User git

配置完成后,可通过以下命令测试连接是否恢复正常:

1
ssh -T git@github.com

5. 权限与打包解压

1
2
3
4
5
6
7
8
9
10
11
12
# 权限与用户管理
chmod +x script.sh # 赋予脚本可执行 (x) 权限
chmod 755 -R mydir/ # 递归修改目录权限为 755 (所有者全权,其他读+执行)
chown -R user:group mydir/ # 递归更改目录的所有者和所属用户组

# 压缩与解压 (.tar.gz)
tar -czvf archive.tar.gz dir/ # 将 dir 目录打包并压缩为 .tar.gz
tar -xzvf archive.tar.gz # 将 .tar.gz 解压到当前目录

# 压缩与解压 (.zip)
zip -r data.zip dir/ # 将 dir 目录递归压缩为 .zip
unzip data.zip -d /dest/ # 将 .zip 解压到指定的 /dest/ 目录下