Useful instructions in Linux
这是第一次正经使用远程服务器跑数据,遂记录一下常用的命令,希望以后会越来越熟练!🤗
- 查看显卡情况 - 1️⃣ 简易版 1
nvidia-smi
1
2pip install nvitop
nvitop
查看虚拟环境列表
1
conda env list
多人共享一个服务器,GPU资源稀缺的时候,需要进行占卡操作,确保一个人在使用 GPU 时,其他人不会干扰或抢占该资源 如何实现占卡?编写一个脚本,在脚本中执行一个死循环,这样就可以占用 GPU 资源了。例如:
1
2
3nvidia-smi
export CUDA_VISIBLE_DEVICES=0 # 选择 GPU 0
python your_script.py脱离自己的终端,继续运行脚本,我常常使用的指令是
nohup
,例如:这个指令用于在后台运行一个Python脚本,同时将输出重定向到日志文件中。具体来说:1
nohup python your_script.py > stdout.log 2>&1 &
nohup
:表示“no hang up”,用于在你关闭终端后继续运行该命令。通常,如果没有使用nohup
,关闭终端后,正在运行的进程也会被终止。使用nohup可以确保即使关闭了终端,脚本仍然会继续运行。python your_script.py
:这是你要运行的Python脚本的命令。>
:重定向符号,表示将输出重定向到指定的文件。stdout.log
:用于存储脚本的标准输出(即通常在终端显示的输出信息)。所有标准输出会被写入这个文件中。2>&1
:这是将标准错误输出(即错误信息)重定向到标准输出中,因此所有的错误信息也会被写入stdout.log中。这其中,2表示标准错误,1表示标准输出,&表示引用相同的文件描述符。&
:将该命令放到后台运行,即使你关闭当前的终端会话,脚本仍然会继续运行。
赋予自己的脚本权限,例如:
使用1
chmod +x your_script.py
chmod
命令,你可以给文件赋予权限。+x
表示增加执行权限,这样你就可以运行这个脚本了。同理,-x
表示移除执行权限,移除之后,你无法运行这个脚本。杀死进程
1
2kill -9 pid # pid是进程的ID, kill -9 强制终止进程
kill pid退出状态码
- Exit 1 通常是脚本内的问题,需要检查日志。 本小菜在分批次使用nohup执行脚本时,发现脚本总是自动退出,退出状态码为1。后来寻找发现是自己的bash文件多了一行空行,实际上是多了换行符,导致脚本无法执行🥲🥲。
- Exit 126 通常是权限或路径问题,需要检查脚本路径和权限。
查看文件夹下有多少文件
1
ls -1 /path/to/directory | wc -l
ls -1
列出目录中的每个文件和文件夹,每行显示一个名称。wc -l
统计行数,即文件和文件夹的数量。
从huggingface的镜像上下载文件到服务器,步骤如下图所示:
注意,在每次执行下载命令的时候都要
export HF ENDPOINT=https://hf-mirror.com
,要不然下载速度会巨慢无比😑查看当前的python进程
1
2ps -ef | grep python
ps -aux | grep pythonps -ef
显示的是更传统的 Unix 风格的输出,注重进程间的关系(如父子进程关系)以及命令的详细信息。例子如下所示:ps -aux
提供了关于资源使用情况的更多信息,如 CPU 和内存占用率,且格式与ps -ef
不同。 例子如下所示: 其中,STAT
列显示了每个进程的状态,其中字母组合(如 Ssl、Sl、Rl 等)表示进程的状态和属性。以下是这些标记的含义:- S: Interruptible Sleep (可中断的睡眠状态)
- R: Running (运行中)
- l: Multi-threaded (多线程)
- s: Session Leader (会话领导)
- S: Low-priority (低优先级)
Ssl
表示进程正在睡眠中,并且是低优先级的···
解压zip文件
这将文件解压到1
unzip filename.zip -d /path/to/destination
/path/to/destination
目录