Linux服务器里跑代码相关命令

主要介绍了本人在Linux服务器中跑代码中使用的一些命令,碰到的问题的解决方案。




指定GPU:
  1. main.py文件里指定GPU

    import os
    os.environ["CUDA_VISIBLE_DEVICES"] = "1"
    
  2. shell终端指定GPU

    CUDA_VISIBLE_DEVICES=1 python main.py
    

实测方法2有时候无效,建议用方法1


快捷键
  1. bg 将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。在后台执行一样会将结果输出到终端上,关掉终端进程即终止
  2. fg 将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。
  3. & 加在一个命令的最后,可以把这个命令放到后台执行,如 python main.py &
  4. jobs 查看当前有多少在后台运行的命令
  5. Ctrl+z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态
  6. Ctrl+c 在命令行下起着终止当前执行程序的作用
  7. Ctrl+d 相当于exit命令,退出当前shell
  8. Ctrl+s 挂起当前shell(保护作用很明显哦)
  9. Ctrl+q 解冻挂起的shell再不行就重新连接打开一个终端,reboot linux 或 kill 相关进程
  10. Shift+Insert 复制
  11. Ctrl+Insert 粘贴
  12. 键盘的上下方向键可以查看shell终端自己输入的历史命令

终端中编辑修改.py文件

命令行输入需要编辑的文件:vim *.py

如:``vim main.py`

Insert 进入编辑模式

Esc 退出编辑模式,然后输入:wqa 保存文件,或者 :q! 不保存文件。

注:vim进行缩进的时候,直接按 tab 会报错,建议直接换成输入4个空格(一个tab字符相当于4个空格)


程序执行不受终端关闭或断网影响

方法一:

nohup:始终后台运行

如果让程序始终在后台执行,即使关闭当前的终端也执行之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了。

如:

# 后台运行(不受终端关闭干扰),将终端的输出重定向nohup.out文件(文件名字任取), 我一般使用log.txt
nohup python main.py > nohup.out 2>&1 &

nohup表示挂起,最后一个 & 表示放入后台

2>&1 解释:

将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 run.log 文件中。

  • 0 – stdin (standard input,标准输入)
  • 1 – stdout (standard output,标准输出)
  • 2 – stderr (standard error,标准错误输出)

当前目录下查看log.txt

tail -n 50 log.txt # 查看最后50行
head -n 50 log.txt # 查看开始50行

方法二:

srceen:Xshell上新建会话窗口,程序执行也不会受到窗口关闭影响

screen -S name # 新建
screen -r name # 打开
screen -D -r name # 先关闭再打开
ctrl+a + k # 杀掉窗口

screen -ls # 查看所有的screen会话

杀掉进程

nvidia-smi 可查看所有GPU进程,PID就是进程号。

查看某个进程的具体信息:

ps -ef|grep pid # pid为所需要查询的进程号
ps -ef|grep name # 查找当前服务器中所有包含字符串name的shell命令

然后执行以下命令杀掉进程:

kill -9 pid # pid为所需要查询的进程号

实时显示GPU的使用情况
watch -n 0.1 nvidia-smi  # ---0.1秒进行刷新

查看服务器上运行的所有任务的内存,cpu占用情况等等
top
htop # 比top显示的更强一点

查看和杀掉僵尸进程
top # zombie前面的数字即为僵尸进程个数
ps aux | grep Z # 获取僵尸进程的具体信息,如进程PID
kill -s SIGCHLD pid # 杀掉僵尸进程

解压

解压zip文件,把/home目录下面的mydata.zip解压到mydatabak目录里面

unzip mydata.zip -d mydatabak

解压tar文件,是把etc.tar压缩文件可以解压到指定路径中(这里为解压到当前目录下的 date 文件夹中去)

 tar -xvf etc.tar -C /date/ 
  • 1
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值