Linux常用命令

Linux常用命令

  1. 从$变为#

先输入:sudo passwd root
回车后输入你当前的用户的密码,然后给root输入一个新的密码,连续输入两次。
接着输入su,然后输入你的新的密码,这个时候变为了#。
如果要退出#,那么输入:exit ,这个时候就会从#恢复回到$。

  1. 创建名为C++_Primer_Plus的文件夹

mkdir C++_Primer_Plus

  1. 进入下级文件夹

如果当前目录为/home/time,想要进入名为C++_Primer_Plus的子文件夹
cd /home/time/C++_Primer_Plus

  1. 新建一个1.cpp文件

nano 1.cpp

  1. 退出1.cpp文件编辑

ctrl+x

  1. 安装g++

apt-get install g++

  1. 编译1.cpp文件为1.out文件

g++ 1.cpp

  1. 查看当前目录下的所有文件

ls

Linux基础

  1. 列出文件/文件夹
  • 命令:ls (list)
  • ls # 列出当前目录下的文件和文件夹
  • ls -l # 列出文件和文件夹的详细信息:权限,Owner,Group和创建/更新时间
    在这里插入图片描述
  1. 新建/切换路径
  • 新建命令:mkdir (make directory)
  • 切换命令:cd (change working directory)
  • mkdir test_dir # 新建一个叫test_dir的路径
  • cd test_dir/ # 进入 test_dir 路径
    在这里插入图片描述
  • 两种特殊的目录:…、. 或写作 …/、./,…/代表上一级目录,./代表当前目录。
    在这里插入图片描述
  1. 查看当前路径
  • 命令:pwd (list)
  • pwd #查看当前路径
    在这里插入图片描述
  1. 重命名、移动文件/文件夹
  • 命令: mv (move)
  • mv test_dir/ test_directory # 将test_dir目录重命名为test_directory,文件重命名同样适用
    在这里插入图片描述
  • mkdir a b # 创建两个文件夹a和b
  • mv a b/ # 将a移动到b目录下。如果b目录不存在的话,这条命令相当于将a重命名为b
  • tree
    在这里插入图片描述
  1. 拷贝文件/文件夹
  • 命令: cp (copy)
  • 参数: -r (-r代表递归)
  • mkdir a b # 创建两个文件夹a和b
  • ls
  • cp -r a b # 将a文件夹拷贝到b文件夹下,-r代表递归拷贝
    在这里插入图片描述
  1. 删除文件/文件夹
  • 命令: rm (remove)
  • 参数: -rf (-r代表递归,-f代表强制)
  • ls
  • rm -rf folder
  • rm -rf folder/* # *是通配符号,这样代表folder文件夹下所有文件/文件夹
    在这里插入图片描述
  1. 设置环境变量
  • 命令: export
    以常见的两个环境变量:PATH和LD_LIBRARY_PATH为例
  1. PATH 如果你有自己安装的命令,希望暴露出来直接使用。比如miniconda中的python,如果不加环境变量一般需要写完整的路径:/x/x/x/miniconda3/bin/python,如果希望直接写python就能用到调用conda中的python指令,那么可以:
    export PATH=/x/x/x/miniconda3/bin:$PATH
    先解释上述命令的格式,右侧的路径可以写多个,以:分隔,$PATH表示求PATH变量的值,因为PATH环境变量以前可能已经有值,需要保留那些值不影响其他命令的使用,其次当输入了python命令时,会从PATH变量的路径下去找python可执行文件,先找到哪个就用哪个,因此:前后路径的先后顺序也很重要。
  2. LD_LIBRARY_PATH 和PATH路径一样,只不过LD_LIBRARY_PATH是设置动态链接库的搜索路径。比如安装了CUDA以后,一般需要设置:
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
     
    如果要查看是否设置成功可以使用命令:env | grep PATH 进行确认
     
    最后以上设置的环境变量只在当前terminal的上下文中有效,如果希望全局有效,那么将export命令写入文件: ~/.bashrc,然后执行:source ~/.bashrc 生效或新打开终端
    在这里插入图片描述
  1. 编辑文本文件
  • 命令:vim
  • vim的高级使用较复杂,请参考其他文档学习
  1. 压缩和解压
  • 命令:zip、unzip、tar

  • zip和unzip分别正对与zip的压缩包压缩和解压,tar是Linux另外一种更通用的压缩解压工具

  • # zip和unzip。如果没有zip请使用apt-get update && apt-get install -y zip安装
  • zip -r dir.zip test_directory/ # 将test_directory文件夹压缩为dir.zip文件
  • unzip dir.zip # 将dir.zip文件解压
     
  • # tar. 以下参数c代表压缩,x表示解压,z代表压缩/解压为gz格式的压缩包
  • tar czf dir.tar.gz test_directory/ # 将test_directory文件夹压缩为dir.tar.gz文件
  • tar xzf dir.tar.gz # 将dir.tar.gz文件解压
     
  • # tar还可以用于压缩和解压其他格式的压缩文件,比如bz2
  • tar cjf dir.tar.bz2 test_directory/ # 将test_directory文件夹压缩为dir.tar.bz2文件
  • tar xjf dir.tar.bz2 # 将dir.tar.bz2文件解压
  1. 查看GPU信息
  • 命令:nvidia-smi
  • Memory-Usage # 内存的使用情况
  • 408MiB / 12194MiB # 前者408MiB代表已使用的显存,后者12194MiB代表总现存
     
  • GPU-Util # GPU的使用率
  • 2% # 使用率百分比
     
    如果需要不停的输出GPU占用信息,那么使用nvidia-smi -l 1每隔1秒输出一次,或使用watch -n 1 nvidia-smi也是同样的效果
  1. 查看/杀死进程
  • 查看进程命令: ps
  • 杀死进程命令:kill
  • ps -ef在这里插入图片描述
  • 从ps的输出结果中根据执行的命令名称找到要杀死的进程,比如最后python tensorflow2.x-test.py命令执行的进程ID是402,因此可以:
  • kill -9 402 # -9表示强制终止进程
  • kill后可以再次使用ps -ef确认进程是否已经结束。
  1. 查看进程的CPU和内存占用
  • 命令:top
  • 或使用平台提供的实例监控功能查看更为简便

在这里插入图片描述

  • 如果有高负载(CPU使用率高)的情况,那么一般进程都会排在最上边,根据进程名称可以进行确认。那么这个进程占用的CPU可以通过%CPU字段读取出来,内存更复杂一些,但是一般看RES字段就够了。比如上边第一个Python进程CPU的占用率是101.4%,内存使用大小是1.796g(Tips:如果内存显示的单位和上述不同,按e键切换)
  1. 重定向日志
  • 命令: >
  • python train.py # 一般情况下日志会输出到stdout/stderr中
  • python train.py > ./train.log 2>&1 # 把stdout/stderr中的日志重定向到train.log文件中,最后的2>&1中,2代表stderr,
    1代表stdout,&1可以理解成像c语言中的求地址
  • cat ./train.log # 将train.log文件中的内容打印在stdout。cat(Concatenate FILE(s) to standard output.)
  • python train.py > ./train.log 2>&1 & # 如果最后再加一个&的效果是后台运行,还可以参考nohup的配合使用
  • 场景1

  • 场景:发现程序停止了,但是显存还在占用

  • 一般这种情况是进程假死,看上去停止了但是实际还在。可以通过ps -ef查看进程是否还存在,如果存在则用kill命令杀死进程,最后用nvidia-smi检查显存是否已经释放。

  • 场景2
  • 场景:想把实例中的模型/数据保存在网盘中一份,方便其他实例使用
     
  • pwd
  • ls
  • cp -r train.py autodl-nas/ # 把 train.py 文件存入网盘中
    在这里插入图片描述
  • 场景3

  • 场景:发现进程内存会使用超过限制,导致进程被Killed

  • 可以使用Top命令查看进程的占用内存情况,确认内存是不是会停留在一个值而不会一直增长,如果一直增长说明程序对内存的释放有漏洞,可以分析Python代码变量的引用来进行优化。

  • 场景4

  • 场景:使用JupyerLab的终端挂守护进程跑训练,担心关闭网页期间的日志看不到了

  • 可以使用重定向日志功能,把日志写入文件

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和安韩Pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值