荆州公司做网站织梦转WordPress插件
荆州公司做网站,织梦转WordPress插件,河北网站建设备案,做电话销售需要的网站Linux零基础入门 列出文件/文件夹新建/切换路径查看当前路径重命名或者移动文件夹拷贝文件/文件夹删除文件夹设置环境变量编辑文本文件压缩和解压查看cpu的信息查看/杀死进程查看进程的CPU和内存占用重定向日志场景一场景二场景三场景四 列出文件/文件夹
命令#xff1a;Ls(L… Linux零基础入门 列出文件/文件夹新建/切换路径查看当前路径重命名或者移动文件夹拷贝文件/文件夹删除文件夹设置环境变量编辑文本文件压缩和解压查看cpu的信息查看/杀死进程查看进程的CPU和内存占用重定向日志¶场景一场景二场景三场景四 列出文件/文件夹
命令Ls(List) userhost:/tmp/test_dir# ls # 列出当前目录下的文件和文件夹
a.txt b
userhost:/tmp/test_dir# ls -l # 列出文件和文件夹的详细信息权限OwnerGroup和创建/更新时间
total 4
-rw-rw-r-- 1 root root 0 11月 9 10:50 a.txt
drwxrwxr-x 2 root root 4096 11月 9 10:50 b新建/切换路径
新建命令mkdirmake directory 切换命令cdchange working directory
userhost:/tmp# mkdir test_dir # 新建一个叫test_dir的路径
userhost:/tmp# cd test_dir/ # 进入 test_dir 路径
userhost:/tmp/test_dir#两种特殊的目录…、. 或写作 …/、./…/代表上一级目录./代表当前目录。
userhost:/tmp/test_dir# cd ../test_dir/ # 上一级目录下有test_dir目录
userhost:/tmp#查看当前路径
命令pwdlist
userhost:~# pwd
/root/
userhost:~#重命名或者移动文件夹
命令: mv move
userhost:/tmp# mv test_dir/ test_directory # 将test_dir目录重命名为test_directory文件重命名同样适用
userhost:/tmp# cd test_directory/
daiauserhostbseeta:/tmp/test_directory#userhost:/tmp/test_directory# mkdir a b # 创建两个文件夹a和b
userhost:/tmp/test_directory# ls
a b
userhost:/tmp/test_directory# mv a b/ # 将a移动到b目录下。如果b目录不存在的话这条命令相当于将a重命名为b
userhost:/tmp/test_directory# tree
.
└── b└── a拷贝文件/文件夹
命令cp copy 参数-r -r代表递归
userhost:/tmp/test_directory# mkdir a b # 创建两个文件夹a和b
userhost:/tmp/test_directory# ls
a b
userhost:/tmp/test_directory# cp -r a b # 将a文件夹拷贝到b文件夹下-r代表递归拷贝
userhost:/tmp/test_directory# tree
.
└── a
└── b└── a删除文件夹
命令: rm remove
参数: -rf -r代表递归-f代表强制
userhost:/tmp/test_directory# ls
a.txt folder
userhost:/tmp/test_directory# rm -rf folder
userhost:/tmp/test_directory# rm -rf folder/* # *是通配符号这样代表folder文件夹下所有文件/文件夹设置环境变量
命令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 进行确认编辑文本文件
命令vim
vim的高级使用较复杂请参考其他文档学习
压缩和解压
命令zip、unzip、tar zip和unzip分别正对与zip的压缩包压缩和解压tar是Linux另外一种更通用的压缩解压工具
# zip和unzip。如果没有zip请使用apt-get update apt-get install -y zip安装
userhost:/tmp/$ zip -r dir.zip test_directory/ # 将test_directory文件夹压缩为dir.zip文件
userhost:/tmp/$ unzip dir.zip # 将dir.zip文件解压# tar. 以下参数c代表压缩x表示解压z代表压缩/解压为gz格式的压缩包
userhost:/tmp/$ tar czf dir.tar.gz test_directory/ # 将test_directory文件夹压缩为dir.tar.gz文件
userhost:/tmp/$ tar xzf dir.tar.gz # 将dir.tar.gz文件解压# tar还可以用于压缩和解压其他格式的压缩文件比如bz2
userhost:/tmp/$ tar cjf dir.tar.bz2 test_directory/ # 将test_directory文件夹压缩为dir.tar.bz2文件
userhost:/tmp/$ tar xjf dir.tar.bz2 # 将dir.tar.bz2文件解压查看cpu的信息
命令nvidia-smi
userhost:/tmp/test_directory# nvidia-smi
Mon Nov 8 11:55:26 2021
-----------------------------------------------------------------------------
| NVIDIA-SMI 440.82 Driver Version: 440.82 CUDA Version: 10.2 |
|---------------------------------------------------------------------------
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
||
| 0 TITAN X (Pascal) Off | 00000000:01:00.0 On | N/A |
| 31% 57C P0 66W / 250W | 408MiB / 12194MiB | 2% Default |
---------------------------------------------------------------------------
| 1 TITAN X (Pascal) Off | 00000000:04:00.0 Off | N/A |
| 93% 27C P8 11W / 250W | 2MiB / 12196MiB | 0% Default |
--------------------------------------------------------------------------------------------------------------------------------------------------------
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
||
| 0 1450 G /usr/lib/xorg/Xorg 32MiB |
| 0 2804 G /usr/lib/xorg/Xorg 351MiB |
-----------------------------------------------------------------------------如果需要不停的输出GPU占用信息那么使用nvidia-smi -l 1每隔1秒输出一次或使用watch -n 1 nvidia-smi也是同样的效果查看/杀死进程
查看进程的命令ps 杀死进程的命令kill
rootcontainer-5e3e11aeb4-948a17b1:~# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 14:04 ? 00:00:00 bash /init/boot/boot.sh
root 58 48 8 14:04 ? 00:00:03 /root/miniconda3/bin/python /root/miniconda3/bin/jupyter-lab --allow-root
root 60 48 0 14:04 ? 00:00:00 /usr/sbin/sshd -D
root 61 48 10 14:04 ? 00:00:04 /root/miniconda3/bin/python /root/miniconda3/bin/tensorboard --host 0.0.0.0 --port 6006 --logdir /root/tf-logs
root 146 61 0 14:04 ? 00:00:00 /root/miniconda3/lib/python3.8/site-packages/tensorboard_data_server/bin/server --logdir/root/tf-logs
root 402 338 99 14:05 pts/0 00:00:06 python tensorflow2.x-test.py从ps的输出结果中根据执行的命令名称找到要杀死的进程比如最后python tensorflow2.x-test.py命令执行的进程ID是402因此可以
rootcontainer-5e3e11aeb4-948a17b1:~# kill -9 402
rootcontainer-5e3e11aeb4-948a17b1:~#kill后可以再次使用ps -ef确认进程是否已经结束。
查看进程的CPU和内存占用
命令top 或者使用平台提供的实例监控的功能查看更为方便
Tasks: 11 total, 2 running, 9 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.3 us, 1.3 sy, 0.0 ni, 96.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 52801571total, 45453059free, 7807904 used, 65677196 buff/cache
KiB Swap: 2074620 total, 2074620 free, 0 used. 51678192avail Mem PID userhost PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 2316 root 20 0 21.846g 1.796g 244664 R 101.4 0.4 0:05.56 python 58 root 20 0 372352 84804 15540 S 1.4 0.0 0:05.40 jupyter-lab 59 root 20 0 713796 11288 7668 S 1.4 0.0 0:01.31 proxy 2395 root 20 0 45920 3940 3444 R 1.4 0.0 0:00.01 top 1 root 20 0 25368 3724 3404 S 0.0 0.0 0:00.07 bash 48 root 20 0 55060 24328 9728 S 0.0 0.0 0:00.33 supervisord 60 root 20 0 72304 5872 5140 S 0.0 0.0 0:00.01 sshd 61 root 20 0 9756148 315032 156124 S 0.0 0.1 0:04.16 tensorboard 146 root 20 0 1582996 6964 5296 S 0.0 0.0 0:00.04 server 338 root 20 0 25824 4312 3800 S 0.0 0.0 0:00.18 bash 481 root 20 0 25824 4544 4040 S 0.0 0.0 0:00.18 bash如果有高负载(CPU使用率高)的情况那么一般进程都会排在最上边根据进程名称可以进行确认。那么这个进程占用的CPU可以通过%CPU字段读取出来内存更复杂一些但是一般看RES字段就够了。比如上边第一个Python进程CPU的占用率是101.4%内存使用大小是1.796gTips如果内存显示的单位和上述不同按e键切换
重定向日志¶
命令
userhost:/tmp# python train.py # 一般情况下日志会输出到stdout/stderr中
Epoch.1 Iter 20
Epoch.1 Iter 40
Epoch.1 Iter 50
...userhost:/tmp# python train.py ./train.log 21 # 把stdout/stderr中的日志重定向到train.log文件中最后的21中2代表stderr, 1代表stdout1可以理解成像c语言中的求地址userhost:/tmp# cat ./train.log # 将train.log文件中的内容打印在stdout。catConcatenate FILE(s) to standard output.
Epoch.1 Iter 20
Epoch.1 Iter 40
Epoch.1 Iter 50
...userhost:/tmp$ python train.py ./train.log 21 # 如果最后再加一个的效果是后台运行还可以参考nohup的配合使用场景一
一般这种情况是进程假死看上去停止了但是实际还在。可以通过ps -ef查看进程是否还存在如果存在则用kill命令杀死进程最后用nvidia-smi检查显存是否已经释放。
场景二
场景想把实例中的模型/数据保存在网盘中一份方便其他实例使用
userhost:~# pwd
/root/
userhost:~# ls
train.py autodl-tmp autodl-nas
userhost:~# cp -r train.py autodl-nas/ # 把 train.py 文件存入网盘中场景三
场景发现进程内存会使用超过限制导致进程被Killed
可以使用Top命令查看进程的占用内存情况确认内存是不是会停留在一个值而不会一直增长如果一直增长说明程序对内存的释放有漏洞可以分析Python代码变量的引用来进行优化。
场景四
场景使用JupyerLab的终端挂守护进程跑训练担心关闭网页期间的日志看不到了
可以使用重定向日志功能把日志写入文件
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90852.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!