Linux命令 - wxtt-github/blog GitHub Wiki
tar压缩
tar -zcvf <压缩包名>.tar.gz <目录名>
tar解压
tar -zxvf <压缩包名>.tar.gz
删除目录
rm -r <目录名>
如果遇到目录删除不了,没有权限的话
sudo chmod -R 777 <目录路径>
删除文件
rm <文件名>
查看当前路径
pwd
cp复制(针对单个文件)
将路径1复制到路径2,只需要理解好/是从根目录开始,就只是一个绝对路径问题
cp <路径1> <路径2>
比如
cp /home/wxtt/test1/1.txt /home/wxtt/test2/
代表把test1目录下1.txt文件复制到test2目录下
cp复制(针对目录下所有文件)
cp -r <路径1> <路径2>
比如
cp -r /home/wxtt/test1/* /home/wxtt/test2/
代表把test1目录下所有文件复制到test2中
mv剪切
mv <路径1> <路径2>
比如
mv /home/wxtt/test1 /home/wxtt/test2/
代表把整个test1目录剪切到test2目录下面
重命名
mv <路径1> <路径2>
这里路径仅有最后不同,比如
mv /home/wxtt/test1 /home/wxtt/test2
代表把test1目录重命名为test2目录,注意末尾没有/,注意与复制剪切的区别
ssh连接
ssh <目标用户名>@<目标IP地址> -p <端口号>
scp上传文件
scp -P <端口号> <文件名> <目标用户名>@<目标IP地址>:<路径>
比如
scp -P 22888 1.txt [email protected]:/home/wxtt/test
代表把1.txt传输到远程的test文件夹下
scp上传文件夹
scp -P 22888 -r <文件夹名> [email protected]:/home/wut/test
nohup命令
API_PORT=8000 CUDA_VISIBLE_DEVICES=7 nohup <替换命令(nohup前是环境变量)> > /home/wxtt/output.log 2>&1 &
查看nohup命令输出日志的信息
tail -f /home/wxtt/output.log
根据命令关键字查找正在运行的进程
ps aux | grep '<命令关键字>'
如ps aux | grep 'python'
用tmux命令替代nohup命令
由于nohup命令有bug,在退出ssh窗口后,后台运行的程序可能会接收到一个death signal,导致程序无法正常运行,因此用tmux命令进行替代
sudo apt-get install tmux # 安装
tmux # 进入tmux窗口
exit # 退出tmux窗口,或者使用快捷键[ Ctrl+d ]
tmux new -s <会话名> # 创建一个会话,并设置会话名
# 快捷键[ Ctrl+b ] 是tmux的前缀键,用完前缀键后可以继续按指定键来完成指定命令
[ Ctrl+b ] [ d ] # 将会话与窗口分离,或者[ Ctrl+b ] tmux detach
tmux ls # 查看所有会话,或者使用tmux list-session
tmux attach -t <会话名> # 根据会话名将terminal窗口接入会话
tmux kill-session -t <会话名> # 根据会话名杀死会话
tmux switch -t <会话名> # 根据会话名切换会话
tmux rename-session -t 0 <会话名> # 根据会话名,重命名会话
例如
sudo apt-get install tmux # 在ubuntu系统上安装tmux
tmux new -s train_model # 创建一个会话,并设置会话名为train_model
conda activate <env> # 在tmux会话中,我们激活我们要使用的conda环境
python train.py # 在tmux会话中,开始训练我们的模型
[ Ctrl+b ] [ d ] # 将会话与窗口分离
tmux ls # 查看我们刚刚创建的会话
watch -n 1 nvidia-smi # 监控我们的gpu信息