du
- Linux du(英文全拼:disk usage)命令用于显示目录或文件的大小。du 会显示指定的目录或文件所占用的磁盘空间。
- 用例:当前路径
/home/hzf/Voice/wespeaker-master
$ du -h -d 1 371G ./examples 52K ./tools 280K ./runtime 444K ./wespeaker 12K ./docs 195M ./data 12K ./.github 371G .
- 参数解释:
-h
人类可读,-d
递归深度
watch
- Linux中的watch命令提供了一种方式处理重复的任务。默认watch会每2秒重复执行命令。watch是一个很好的观察log的工具。
- 用例:查看GPU占用
$ watch -n 1 -d nvidia-smi Every 1.0s: nvidia-smi Fri Feb 10 20:29:56 2023 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 460.80 Driver Version: 460.80 CUDA Version: 11.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce GTX 108... Off | 00000000:02:00.0 Off | N/A | | 37% 53C P0 63W / 250W | 0MiB / 11178MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 1 GeForce GTX 108... Off | 00000000:03:00.0 Off | N/A | | 41% 55C P0 65W / 250W | 0MiB / 11178MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 2 GeForce GTX 108... Off | 00000000:82:00.0 Off | N/A | | 40% 53C P0 60W / 250W | 0MiB / 11178MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ | 3 GeForce GTX 108... Off | 00000000:83:00.0 Off | N/A | | 37% 52C P0 58W / 250W | 0MiB / 11178MiB | 3% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
- 参数解释:
-n
在更新之间等待的秒数,-d
突出显示更新之间的更改
ps、grep、awk、xargs、kill
- Linux ps(英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
- Linux grep 命令用于查找文件里符合条件的字符串。
- awk 是一种处理文本文件的语言,是一个强大的文本分析工具。
- xargs(英文全拼:extended arguments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
- Linux kill 命令用于删除执行中的程序或工作。
- 用例:列出所有进程的详细信息,查找名称带有指定字符串的进程,过滤掉grep进程,提取出pid,传递给kill,从而批量杀死进程。
# 查找名称带有python的进程,过滤掉grep进程 $ ps -ef | grep python | grep -v grep root 1485 1 0 2022 ? 00:00:09 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers root 1768 1 0 2022 ? 00:00:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal root 3125 3060 0 2022 ? 00:00:00 /usr/bin/python3 -u /sbin/my_init ......
# 查找名称带有python的进程,过滤掉grep进程,提取出pid $ ps -ef | grep python | grep -v grep | awk '{print $2}' 1485 1768 3125 ......
# 查找名称带有python的进程,过滤掉grep进程,提取出pid,传递给kill # 请视自己的情况来执行 $ ps -ef | grep python | grep -v grep | awk '{print $2}' | xargs kill # 批量杀死进程后,再执行一遍会显示kill的帮助信息,因为没有参数传递给kill $ ps -ef | grep python | grep -v grep | awk '{print $2}' | xargs kill Usage: kill [options] <pid> [...] Options: <pid> [...] send signal to every <pid> listed -<signal>, -s, --signal <signal> specify the <signal> to be sent -l, --list=[<signal>] list all signal names, or convert one to a name -L, --table list all signal names in a nice table -h, --help display this help and exit -V, --version output version information and exit For more details see kill(1).
lsblk
- Linux中的lsblk命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,CD-ROM等等。
- 用例:查看哪些硬盘是固态硬盘。
$ lsblk -o NAME,MOUNTPOINT,SIZE,ROTA NAME MOUNTPOINT SIZE ROTA loop1 /snap/core18/2679 55.6M 1 loop2 /snap/gnome-characters/781 476K 1 loop3 /snap/core20/1822 63.3M 1 loop4 /snap/gnome-3-28-1804/161 164.8M 1 loop5 /snap/gnome-system-monitor/181 1.5M 1 loop6 /snap/gnome-calculator/884 2.5M 1 loop7 /snap/gnome-characters/741 704K 1 loop8 /snap/core18/2667 55.6M 1 loop9 /snap/gnome-3-26-1604/102 140.7M 1 loop10 /snap/gnome-system-monitor/178 2.6M 1 loop11 /snap/core20/1778 63.3M 1 loop12 /snap/gnome-42-2204/56 452.4M 1 loop13 /snap/core/14447 116.7M 1 loop14 /snap/bare/5 4K 1 loop15 /snap/gnome-42-2204/44 446.3M 1 loop16 /snap/gnome-3-28-1804/145 162.9M 1 loop17 /snap/gnome-calculator/920 2.6M 1 loop18 /snap/gtk-common-themes/1535 91.7M 1 loop19 /snap/gnome-3-26-1604/104 140.7M 1 loop20 /snap/gnome-3-38-2004/115 346.3M 1 loop21 /snap/gnome-3-34-1804/77 219M 1 loop22 /snap/gnome-logs/112 556K 1 loop23 /snap/gnome-3-38-2004/119 346.3M 1 loop24 /snap/gtk-common-themes/1534 81.3M 1 loop25 /snap/gnome-logs/115 696K 1 loop26 /snap/core/14399 116.7M 1 loop27 /snap/gnome-3-34-1804/72 219M 1 loop28 /snap/core22/504 72.9M 1 loop29 /snap/core22/484 72.9M 1 sda 232.9G 0 ├─sda1 /boot 285M 0 └─sda2 / 232.6G 0 sdb 9.1T 1 └─sdb1 /home 9.1T 1 sdc /media/new_disk 9.1T 1
- 参数解释:
-o
指定要显示哪些信息,NAME设备名,MOUNTPOINT挂载点,SIZE总大小,ROTA是否为旋转设备0表示机械硬盘,1表示固态硬盘
df
- Linux df(英文全拼:disk free)命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。
- 用例:配合lsblk,查看硬盘的占用大小
$ df -h Filesystem Size Used Avail Use% Mounted on udev 32G 0 32G 0% /dev tmpfs 6.3G 13M 6.3G 1% /run /dev/sda2 228G 112G 105G 52% / tmpfs 32G 1.5M 32G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 32G 0 32G 0% /sys/fs/cgroup /dev/loop2 512K 512K 0 100% /snap/gnome-characters/781 /dev/loop6 2.5M 2.5M 0 100% /snap/gnome-calculator/884 /dev/loop7 768K 768K 0 100% /snap/gnome-characters/741 /dev/loop4 165M 165M 0 100% /snap/gnome-3-28-1804/161 /dev/loop5 1.5M 1.5M 0 100% /snap/gnome-system-monitor/181 /dev/loop9 141M 141M 0 100% /snap/gnome-3-26-1604/102 /dev/loop14 128K 128K 0 100% /snap/bare/5 /dev/loop15 447M 447M 0 100% /snap/gnome-42-2204/44 /dev/loop16 163M 163M 0 100% /snap/gnome-3-28-1804/145 /dev/loop18 92M 92M 0 100% /snap/gtk-common-themes/1535 /dev/loop10 2.7M 2.7M 0 100% /snap/gnome-system-monitor/178 /dev/loop17 2.7M 2.7M 0 100% /snap/gnome-calculator/920 /dev/loop19 141M 141M 0 100% /snap/gnome-3-26-1604/104 /dev/loop21 219M 219M 0 100% /snap/gnome-3-34-1804/77 /dev/loop20 347M 347M 0 100% /snap/gnome-3-38-2004/115 /dev/loop22 640K 640K 0 100% /snap/gnome-logs/112 /dev/loop23 347M 347M 0 100% /snap/gnome-3-38-2004/119 /dev/loop24 82M 82M 0 100% /snap/gtk-common-themes/1534 /dev/loop25 768K 768K 0 100% /snap/gnome-logs/115 /dev/loop26 117M 117M 0 100% /snap/core/14399 /dev/loop27 219M 219M 0 100% /snap/gnome-3-34-1804/72 /dev/sdc 9.1T 8.4T 217G 98% /media/new_disk /dev/sda1 266M 113M 136M 46% /boot /dev/sdb1 9.1T 6.8T 1.9T 79% /home tmpfs 6.3G 32K 6.3G 1% /run/user/123 tmpfs 6.3G 0 6.3G 0% /run/user/1007 /dev/loop8 56M 56M 0 100% /snap/core18/2667 tmpfs 6.3G 8.0K 6.3G 1% /run/user/1032 /dev/loop11 64M 64M 0 100% /snap/core20/1778 tmpfs 6.3G 0 6.3G 0% /run/user/1036 tmpfs 6.3G 0 6.3G 0% /run/user/1023 /dev/loop13 117M 117M 0 100% /snap/core/14447 /dev/loop29 73M 73M 0 100% /snap/core22/484 /dev/loop12 453M 453M 0 100% /snap/gnome-42-2204/56 /dev/loop1 56M 56M 0 100% /snap/core18/2679 /dev/loop28 73M 73M 0 100% /snap/core22/504 tmpfs 6.3G 0 6.3G 0% /run/user/1021 /dev/loop3 64M 64M 0 100% /snap/core20/1822 tmpfs 6.3G 0 6.3G 0% /run/user/1031 tmpfs 6.3G 0 6.3G 0% /run/user/1037
- 参数解释:
-h
人类可读
ls
- Linux ls(英文全拼: list directory contents)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
- 用例:查看当前目录下所有文件(包括隐藏文件)的最后修改时间、大小、权限(用户组)
$ ls -alh total 176M drwxr-xr-x 15 hzf hzf 4.0K 2月 10 13:20 . drwxr-xr-x 24 root root 4.0K 12月 18 18:08 .. -rw------- 1 hzf hzf 28K 2月 10 15:25 .bash_history -rw-r--r-- 1 hzf hzf 220 4月 5 2018 .bash_logout -rw-r--r-- 1 hzf hzf 4.2K 12月 6 15:48 .bashrc drwx------ 6 hzf hzf 4.0K 12月 29 21:57 .cache drwxrwxr-x 2 hzf hzf 4.0K 12月 6 15:48 .conda -rw-rw-r-- 1 hzf hzf 618 12月 6 15:59 .condarc drwx------ 6 hzf hzf 4.0K 12月 29 22:16 .config drwxrwxr-x 2 hzf hzf 4.0K 12月 6 15:40 Download -rw-r--r-- 1 hzf hzf 8.8K 4月 16 2018 examples.desktop drwx------ 3 hzf hzf 4.0K 12月 4 22:18 .gnupg drwxrwxr-x 3 hzf hzf 4.0K 12月 26 20:47 .ipython drwxrwxr-x 2 hzf hzf 4.0K 12月 29 15:16 .keras drwxrwxr-x 3 hzf hzf 4.0K 12月 6 15:58 .local drwxrwxr-x 16 hzf hzf 4.0K 12月 6 15:48 miniconda3 drwx------ 3 hzf hzf 4.0K 12月 28 15:09 .nv -rw-r--r-- 1 hzf hzf 807 4月 5 2018 .profile -rw------- 1 hzf hzf 2.0K 2月 10 13:20 .python_history drwxrwxr-x 10 hzf hzf 4.0K 1月 2 23:32 rknn-toolkit2 -rw-rw-r-- 1 hzf hzf 176M 12月 29 14:32 rknn-toolkit2.zip drwxrwxr-x 6 hzf hzf 4.0K 1月 4 00:02 Voice drwxrwxr-x 5 hzf hzf 4.0K 2月 10 16:44 .vscode-server -rw-rw-r-- 1 hzf hzf 183 12月 4 22:25 .wget-hsts -rw------- 1 hzf hzf 483 2月 10 12:53 .Xauthority
- 参数解释:
-a
全部文件,-l
详细信息,-h
人类可读
wc
- Linux wc命令用于计算字数。利用wc指令我们可以计算文件的字节数、字符数、或是行数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
- 用例:配合ls,计算文件或文件夹数量
# 计算当前目录下的文件数量(不包含子目录中的文件),-l计算行数 ls -l | grep "^-" | wc -l # 计算当前目录下的文件数量(包含子目录中的文件),-R递归执行 ls -lR | grep "^-" | wc -l # 计算当前目录下的文件夹数量(不包含子目录中的目录) # 如果需要包含子目录的文件夹,加上R ls -l | grep "^d" | wc -l # 计算以“id11251”开头的目录下的文件数量(包含子目录中的文件) ls -lR id11251*/ | grep "^-" | wc -l
su
- Linux su(英文全拼:switch user)命令用于变更为其他用户的身份,除root外,需要键入其他用户的密码。
- 用例:修改root用户密码,切换到root用户,此后的操作等同于在命令前加
sudo
# root是要切换进入的用户的名称 # 如果显示Authentication failure,可能是输入的密码不对 # 或者root没有设置密码,比如树莓派默认就没有设置root密码 $ su root Password: su: Authentication failure
# 如果root没有设置密码,可以先给root设置密码 $ sudo passwd root Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
# 再输入su,此后的操作等同于在命令前加`sudo` $ su Password: root@
zip/unzip
- Linux zip命令用于压缩文件,unzip命令用于解压文件。Linux下有许许多多的压缩文件格式,但为了更加通用,推荐使用zip文件。
- 用例:压缩,解压。
# 压缩wespeaker文件夹下的所有文件(包含子文件夹下的所有文件),-r递归执行 # 得到wespeaker.zip文件,如果加上-q则不显示压缩过程 $ zip -r wespeaker.zip wespeaker adding: wespeaker/ (stored 0%) adding: wespeaker/models/ (stored 0%) adding: wespeaker/models/speaker_model.py (deflated 53%) adding: wespeaker/models/projections.py (deflated 82%) adding: wespeaker/models/__pycache__/ (stored 0%) ...
# unzip直接解压wespeaker.zip # -l显示压缩文件内文件信息,-v显示更多信息,只查看不解压 $ unzip -v wespeaker.zip Archive: wespeaker.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 2022-12-30 17:11 00000000 wespeaker/ 0 Stored 0 0% 2023-01-04 12:13 00000000 wespeaker/models/ 1248 Defl:N 586 53% 2022-12-30 17:11 9e0c81f8 wespeaker/models/speaker_model.py 18356 Defl:N 3279 82% 2023-01-21 18:30 0acfdff3 wespeaker/models/projections.py 0 Stored 0 0% 2023-01-23 20:37 00000000 wespeaker/models/__pycache__/ ...