Linux 基本命令总结
0、平时自己用的命令
在跑一些程序,例如deep learning的时候,总是希望查看一下cpu、gpu、内存的使用率。
(1)cpu、内存情况:使用top命令;
(2)查看gpu:使用 nvidia-smi 命令,但只显示一次,nvidia-smi -l:实时检测更新;watch -n 10 nvidia-smi:最常用的参数是 -n, 后面指定是每多少秒来执行一次命令。监视显存:我们设置为每 10s 显示一次显存的情况。
显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。我跑caffe代码的时候显存占得少,GPU占得多,师弟跑TensorFlow代码的时候,显存占得多,GPU占得少。
(3)CUDA_VISIBLE_DEVICES=0:指定哪个GPU;
在代码里操作是:os.environ['CUDA_VISIBLE_DEVICES']='0'
(4)修改可读文件
sudo gedit 文件名;
gedit 文件名;
(5)更改环境变量
gedit ~/.bashrc //更改环境变量 source ~/.bashrc //刷新环境变量
1、cd命令
-
cd /root/Docements # 切换到目录/root/Docements
-
cd ./path # 切换到当前目录下的path目录中,“.”表示当前目录
-
cd ../path # 切换到上层目录中的path目录中,“..”表示上一层目录
- pwd:查看当前目录路径
-
-l :列出长数据串,包含文件的属性与权限数据等
-
-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
-
-d :仅列出目录本身,而不是列出目录的文件数据
-
-h :将文件容量以较易读的方式(GB,kB等)列出来
-
-R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
-
ls -l #以长数据串的形式列出当前目录下的数据文件和目录
-
ls -lR #以长数据串的形式列出当前目录下的所有文件
3、mkdir命令
mkdir:可建立目录并同时设置目录的权限;
mkdir -p /home/test:可直接建立路径中的文件;
rm -r test :删除文件及下面的子文件;
-
-a :将文件的特性一起复制
-
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-
-r :递归持续复制,用于目录的复制行为
-
-u :目标文件与源文件有差异时才会复制
例如 :
-
cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2
-
cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中
-
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-
-i :若目标文件已经存在,就会询问是否覆盖
-
-u :若目标文件已经存在,且比目标文件新,才会更新
-
mv file1 file2 file3 dir # 把文件file1、file2、file3移动到目录dir中
-
mv file1 file2 # 把文件file1重命名为file2
-
-f :就是force的意思,忽略不存在的文件,不会出现警告消息
-
-i :互动模式,在删除前会询问用户是否操作
-
-r :递归删除,最常用于目录删除,删除目录及下面所有文件,它是一个非常危险的参数
例如 :
-
rm -i file # 删除文件file,在删除之前会询问是否进行该操作
-
rm -fr dir # 强制删除目录dir中的所有文件
- -a 显示终端上的所有进程,包括其它用户的进程。
- -u 显示进程的详细状态
- -x 显示没有控制终端的进程
- -w 显示加宽,以便显示更多信息
- -r 只显示正在运行的进程
-
ps aux # 查看系统所有的进程数据
-
ps ax # 查看不与terminal有关的所有进程
-
ps -lA # 查看系统所有的进程数据
-
ps axjf # 查看连同一部分进程树状态
7.1 查询端口是否被占用
netstat -nultp(此处不用加端口号)//查看当前所有tcp端口·
该命令是查看当前所有已经使用的端口情况。
8、df和du命令
Linux中df命令:用于查看Linux文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。
top命令:用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以使用 top -d 来指定显示信息更新的时间间隔。
linux中du命令:用于查看文件或文件夹的大小。
du -b /home 以字节为单位显示/home 文件夹下各个子文件夹的大小
du -ks home 以千字节KB 为单位显示/home 文件夹的总大小
kill -signal PID
-
1:SIGHUP,启动被终止的进程
-
2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
-
9:SIGKILL,强制中断一个进程的进行
-
15:SIGTERM,以正常的结束进程方式来终止进程
-
17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行
# 以正常的结束进程方式来终于第一个后台工作,可用jobs命令查看后台中的第一个工作进程
kill -SIGTERM %1
# 重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得
kill -SIGHUP PID
killall [-iIe] [command name]
-
-i :交互式的意思,若需要删除时,会询问用户
-
-e :表示后面接的command name要一致,但command name不能超过15个字符
-
-I :命令名称忽略大小写
-
# 例如:
-
killall -SIGHUP syslogd # 重新启动syslogd
-
file filename
-
#例如:
-
file ./test
-
-c :新建打包文件
-
-t :查看打包文件的内容含有哪些文件名
-
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-
-j :通过bzip2的支持进行压缩/解压缩
-
-z :通过gzip的支持进行压缩/解压缩
-
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-
-f filename :filename为要处理的文件
-
-C dir :指定压缩/解压缩的目录dir
-
压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称
-
查询:tar -jtv -f filename.tar.bz2
-
解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
-
chmod [-R] xyz 文件或目录
-
-R:进行递归的持续更改,即连同子目录下的所有文件都会更改
-
chmod 0755 file # 把file的文件权限改变为-rxwr-xr-x
-
chmod g+w file # 向file的文件权限中加入用户组可写权限
命令模式: ESC :命令 输入模式: ESC 然后再按下下面这几个键: a //在光标所在字符后面插入 A //在光标所在行尾输入 i //在光标所在处插入 I //在光标所在行首插入 o //在光标所在行的下一行插入 O //在光标所在行的上一行插入
-
-o :output之意,用于指定生成一个可执行文件的文件名
-
-c :用于把源文件生成目标文件(.o),并阻止编译器创建一个完整的程序
-
-I :增加编译时搜索头文件的路径
-
-L :增加编译时搜索静态连接库的路径
-
-S :把源文件生成汇编代码文件
-
-lm:表示标准库的目录中名为libm.a的函数库
-
-lpthread :连接NPTL实现的线程库
-
-std= :用于指定把使用的C语言的版本
-
# 把源文件test.c按照c99标准编译成可执行程序test
-
gcc -o test test.c -lm -std=c99
-
#把源文件test.c转换为相应的汇编程序源文件test.s
-
gcc -S test.c
-
time ./process
-
time ps aux
- user:用户CPU时间,命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和;
- system:系统CPU时间,命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和;
- real:实际时间,从command命令行开始执行到运行终止的消逝时间;