目的:汇总linux指令,以便查阅和使用。
如何查看显卡情况?
如何查看服务器上所有的端口号?
目录
快捷键
history显示历史输入
https://blog.csdn.net/gui951753/article/details/79225429
https://baijiahao.baidu.com/s?id=1586010956337033474&wfr=spider&for=pc
clear 清屏
1. 显卡相关
1.1 nvidia-smi
http://hui.sohu.com/infonews/article/6337322514200395777
指令中间连着的不加空格。
第一栏的Fan:风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速不是实际转速。有的设备不会返回转速,因为它不依赖风扇冷却。
第二栏的Temp:是温度。
第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
第五栏的Bus-Id是涉及GPU总线的东西,domain:bus:device.function
第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。
第五第六栏下方的Memory Usage是显存使用率。
第七栏是浮动的GPU利用率。
第八栏上方是关于ECC的东西。
第八栏下方Compute M是计算模式。
1.2 运行程序时指定显卡
https://www.cnblogs.com/darkknightzh/p/6591923.html
CUDA_VISIBLE_DEVICES=1 python my_script.py
2. 目录与读写相关
2.1 cd、ls、mkdir、pwd指令
我们用linux在服务器上进行相应的编译,注意cd与cd /的区别,若想看到根目录下的文件可以用ls /
mkdir -p:创建目录
例如:创建目录 mkdir -p /temp/usb
pwd显示当前路径
ll为ls -l,即显示文件的详细信息。
2.2 显示相应挂载信息
df:disk info;-h: human readable.
df -h:用kb以上单位显示,可读性高
df -a:显示所有文件系统
2.3 拷贝 cp指令
例如:我们可以将程序拷入sd卡, cp /u/<program> /mnt/mmcblk1p1
或者cp -i(或者-f) 源文件 目标文件,-i是交互式拷贝,是否替换位置,-f为直接替换,不提示。
2.4 mount 指令 挂载
mount命令用于加载文件系统到指定的加载点。
例如:mount /dev/sda1 /u
相应的linux指令
mkdir /u
mount /dev/sda1 /u
cd /u
cp /u/<program> /mnt/mmcblk1p1
cd /mnt/mmcblk1p1
2.7 vi指令,显示文档
例如,vi cfg/head.data
esc退出编辑模式进入命令模式,ZZ为存盘并推出,
:q为退出,:set nu为显示行号
2.8 移动文件
mv 源路径 目的路径
移动文件夹下所以文件,加*表示所有文件:mv /usr/lib/* /zone
移动所有txt格式的文件:mv /usr/lib/*.txt /zone
移动到上级,../表示上级文件夹:
mv filename ../
2.9 解压与压缩
https://www.cnblogs.com/XNQC1314/p/8955370.html
zip与unzip
zip可能是目前使用的最多的文档压缩格式。它最大的优点就是在不同的操作系统平台上使用。缺点就是支持
的压缩率不是很高,而tar.gz和tar.bz2在压缩率方面做得非常好。
我们可以使用下列的命令压缩一个文件:
zip -r archive_name.zip filename (-r是压缩文件)
下面是如果解压一个zip文件:
unzip archive_name.zip (解压文件在当前文件下)
unzip archive_name.zip -d new_dir (解压文件可以将文件解压缩至一个你指定的的目录,使用-d参数)
2.10 查看文件夹大小
du指令 https://www.runoob.com/linux/linux-comm-du.html
du -sh 查看当前文件夹大小
- du命令用于显示目录或文件的大小。
- s或--summarize 仅显示总计。
- h表示human-readable,方便人阅读,的K,M,G格式的
2.11 文件夹内文件数量
ls -l |grep "^-"|wc -l
2.12 find指令查找
https://www.cnblogs.com/archoncap/p/6144369.html
例如:find . -name *JW002421170941108227*
. 表示当前文件夹,命令行意义为在当前文件夹查找名称含有那段代码的文件
3. 文件编译相关
3.1 bash 与shell
https://blog.csdn.net/sujz12345/article/details/54565056
shell是一个程序,可以称之为壳程序,用于用户与操作系统进行交互。
bash命令是sh命令的超集大多数sh脚本都可以在bash下运行
例如:
cp scripts/get_coco_dataset.sh data
cd data
bash get_coco_dataset.sh
3.2 source 指令
https://www.cnblogs.com/general001/articles/2420089.html
source 命令是 bash shell 的内置命令,从 C Shell 而来。
source 命令的另一种写法是点符号,用法和 source 相同,从Bourne Shell而来。
source 命令可以强行让一个脚本去立即影响当前的环境。
3.3 file 检查文件
file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。
3.4 编译 gcc与g++
相应的linux指令
cd /lenz/luoqr/yolo/test
source setup_env.sh
arm-xilinx-gnueabi-gcc -o dmabench dmabench.c
file dmabench
3.4 sudo 管理员身份运行
https://baike.baidu.com/item/sudo/7337623?fr=aladdin
4. 用户与进程相关
4.1 端口号与PID号查询
- UID :用户ID
- PID:进程ID
- PPID:父进程ID
https://www.cnblogs.com/understander/p/5546458.html
由端口号查PID号 sudo netstat -antup
由PID号查端口号 sudo netstat -antup|grep PID
由进程名查询PID号 sudo ps -ef|grep 进程名
netstat -an | grep 3306 //查看所有3306端口使用情况
4.2 通过PID查询用户名
lsof -p [PID]
例如:
lsof -p 15223
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
darknet 15223 chengx cwd unknown /proc/15223/cwd (readlink: Permission denied)
darknet 15223 chengx rtd unknown /proc/15223/root (readlink: Permission denied)
darknet 15223 chengx txt unknown /proc/15223/exe (readlink: Permission denied)
darknet 15223 chengx NOFD /proc/15223/fd (opendir: Permission denied)
4.3 查询PID的命令行
ps [PID]
$ps 54083
PID TTY STAT TIME COMMAND
54083 pts/12 Rl+ 449:08 python train-new.py
4.4 查询当前用户所有进程
ps -u
ps -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
xxr 37561 0.1 0.0 25304 6192 pts/0 Ss 21:32 0:00 -bash
xxr 39243 0.0 0.0 39100 3352 pts/0 R+ 21:33 0:00 ps -u
五、用户与权限相关
5.1 查看所有用户列表
cat /etc/passwd查看所有用户列表
https://www.cnblogs.com/songxingzhu/p/6364700.html
zhuangyl:x:1011:1011:zhuangyl,,,,:/home/zhuangyl:/bin/bash
nvidia-persistenced:x:123:130:NVIDIA Persistence Daemon,,,:/:/sbin/nologin
xxr:x:1012:1012:,,,:/home/gpu/datasets/xxr:/bin/bash
myzhuang:x:1013:1013:zhuang mingyong,,,:/home/myzhuang:/bin/bash
- 字段一,用户名。
- 字段二,密码本来在二字段,现在存在/etc/shadow文件,所以用x替代。
- 字段三,uid,用户ID,root为0,1-499(有些系统为1-1000)为系统账号,>1000为用户可登陆账号。
cat /etc/group 查看用户组
5.2 更换当前用户
su 用户名
5.3 更改写入文件权限
https://www.cnblogs.com/jocongmin/p/6696243.html
crown 命令解除文件夹权限设置
sudo
chown
-R demouser
file
xxr@gpu-SYS-7048GR-TR:/1t_second$ ls -la
total 68
drwxrwxrwx 14 root root 4096 10月 16 08:27 .
drwxr-xr-x 29 root root 4096 10月 10 11:31 ..
drwxrwxr-x 5 guohm guohm 4096 10月 14 13:56 ghm2
drwxrwxr-x 5 liangbr liangbr 4096 10月 11 22:55 liangbr
drwxr-xr-x 34 liyl liyl 4096 10月 1 21:21 liyl
drwxrwxrwx 2 root root 16384 10月 10 14:02 lost+found
drwxrwx--- 6 lzw lzw 4096 10月 15 18:14 lzw2
drwxrwxr-x 3 myzhuang myzhuang 4096 10月 15 14:10 myzhuang2
drwx------ 4 gpu gpu 4096 10月 16 08:27 .Trash-1000
drwx------ 4 lzw lzw 4096 10月 15 18:14 .Trash-1008
drwx------ 5 guohm guohm 4096 10月 14 13:31 .Trash-1009
drwx------ 4 myzhuang myzhuang 4096 10月 16 08:14 .Trash-1013
drwxrwxrwx 6 root root 4096 10月 12 16:41 xxr2
drwxrwxr-x 4 zhuangyl zhuangyl 4096 10月 14 09:45 zyl
xxr@gpu-SYS-7048GR-TR:/1t_second$ sudo chown -R xxr xxr2/
[sudo] password for xxr:
xxr@gpu-SYS-7048GR-TR:/1t_second$ ls -la
total 68
drwxrwxrwx 14 root root 4096 10月 16 08:27 .
drwxr-xr-x 29 root root 4096 10月 10 11:31 ..
drwxrwxr-x 5 guohm guohm 4096 10月 14 13:56 ghm2
drwxrwxr-x 5 liangbr liangbr 4096 10月 11 22:55 liangbr
drwxr-xr-x 34 liyl liyl 4096 10月 1 21:21 liyl
drwxrwxrwx 2 root root 16384 10月 10 14:02 lost+found
drwxrwx--- 6 lzw lzw 4096 10月 15 18:14 lzw2
drwxrwxr-x 3 myzhuang myzhuang 4096 10月 15 14:10 myzhuang2
drwx------ 4 gpu gpu 4096 10月 16 08:27 .Trash-1000
drwx------ 4 lzw lzw 4096 10月 15 18:14 .Trash-1008
drwx------ 5 guohm guohm 4096 10月 14 13:31 .Trash-1009
drwx------ 4 myzhuang myzhuang 4096 10月 16 08:14 .Trash-1013
drwxrwxrwx 6 xxr root 4096 10月 12 16:41 xxr2
drwxrwxr-x 4 zhuangyl zhuangyl 4096 10月 14 09:45 zyl
或者 sudo -R chmod 777 /...更改所有文件夹内(递归到子文件夹及文件)属性为可读写。
5.4 查看所有运行程序及用户
top指令,更改画面更新速率可以s,后输入时延
以CPU占用顺序显示程序P,以内存占用率排列M,q退出top
https://www.cnblogs.com/zhoug2020/p/6336453.html
VIRT: 虚拟内存,RES:常驻内存resident memory usage,SHR:共享内存
六.硬件与挂载相关
6.1 列出文件系统和磁盘情况df
https://blog.csdn.net/gnail_oug/article/details/70217446
df -a : --all 显示所有的文件系统,包括虚拟的文件系统
df -h : --human-readable 以人们易读的GB,MB,KB显示
6.2 mount与挂载
挂载详解 http://www.cnblogs.com/irisrain/p/4201947.html
https://blog.csdn.net/qq_39521554/article/details/79501714
mount挂载的作用,就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备。linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。
├── bin (你在终端运行的大多数程序,比如cp、mv...)
├── boot (内核放在这里,这个目录也经常被作为某个独立分区的挂载点)
├── dev (存放设备文件,这里相当于一个设备管理器,由系统自动生成。视硬件环境不同变化很大)
│ ├── disk (磁盘信息,要挂载硬盘分区就要注意这里的信息喽)
├── etc (存放所有程序和系统的配制文件和全局变量,对所有用户生效,非常值得备份)
├── home (这就是著名的home目录了,注意不是”家目录”,强烈建议把一个独立分区挂载到这里!)
│ ├── MNT (这是我挂载其它硬盘分区的地方,你可以看到用硬盘品牌、容量或用途区分的目录名)
├── lib (所有程序共享的库文件)
├── lost+found (磁盘扫描出现的丢失的数据)
├── media (你在文件管理器里点击后自动挂载的分区就在这里,按卷标命名,没有卷标则按大小命名)
├── mnt (同样用于挂载磁盘,这是最传统的位置,喜欢挂哪里随便)
├── opt (某些特殊的程序喜欢把数据放在这里,比如JAVA)
mount指令
https://blog.csdn.net/daydayup654/article/details/78788310
https://blog.csdn.net/qq_21792169/article/details/50273555
mount -t vfat /dev/sda1 /mnt/
vfat即是fat32格式的文件
6.3 fdisk -l指令
https://blog.csdn.net/jackyu651/article/details/53070607/
fdisk -l :可以列出所有的分区,包括没有挂上的分区和usb设备.我一般用这个来查找需要挂载的分区的位置,比如挂上u盘.
例如:
zynq> fdisk -lrandom: nonblocking pool is initialized
Disk /dev/mmcblk0: 7906 MB, 7906263040 bytes
4 heads, 16 sectors/track, 241280 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 * 33 3232 102400 c Win95 FAT32 (LBA)
Partition 1 does not end on cylinder boundary
/dev/mmcblk0p2 3233 241280 7617536 83 Linux
Partition 2 does not end on cylinder boundary
zynq> df -h
Filesystem Size Used Available Use% Mounted on
none 249.5M 0 249.5M 0% /tmp
zynq> mount -t vfat /dev/mmcblk0p1 /mnt/usb/
FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
zynq> ls /mnt/usb/
BOOT.bin test uramdisk.image.gz
System Volume Information uEnv.txt zynqnet
devicetree.dtb uImage