Linux实用指令记录

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).
  • 用例:根据pid,检索进程信息,如:根据pid3694632,检索对应的pid、命令、详细启动时间
$ ps -eo pid,cmd,lstart | grep 3694632 | grep -v grep
3694632 /home/hzf/miniconda3/envs/w Sat Dec  2 14:45:37 2023
  • 常用可检索信息
pid:进程ID。
ppid:父进程ID。
user:进程的所有者。
uid:进程的用户ID。
gid:进程的组ID。
etime:进程的运行时间。
pcpu:进程的CPU使用率。
pmem:进程的内存使用率。
cmd:进程的命令行。
args:进程的命令行及参数。
start:进程的启动时间。
tty:进程所连接的终端。
stat:进程的状态(例如,R表示运行,S表示睡眠)。
rss:进程占用的物理内存大小。
vsz:进程的虚拟内存大小。
nice:进程的优先级。
thcount:进程的线程数。
nlwp:进程的轻量级进程(线程)数。

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 210 13:20 .
drwxr-xr-x 24 root root 4.0K 1218 18:08 ..
-rw-------  1 hzf  hzf   28K 210 15:25 .bash_history
-rw-r--r--  1 hzf  hzf   220 45  2018 .bash_logout
-rw-r--r--  1 hzf  hzf  4.2K 126 15:48 .bashrc
drwx------  6 hzf  hzf  4.0K 1229 21:57 .cache
drwxrwxr-x  2 hzf  hzf  4.0K 126 15:48 .conda
-rw-rw-r--  1 hzf  hzf   618 126 15:59 .condarc
drwx------  6 hzf  hzf  4.0K 1229 22:16 .config
drwxrwxr-x  2 hzf  hzf  4.0K 126 15:40 Download
-rw-r--r--  1 hzf  hzf  8.8K 416  2018 examples.desktop
drwx------  3 hzf  hzf  4.0K 124 22:18 .gnupg
drwxrwxr-x  3 hzf  hzf  4.0K 1226 20:47 .ipython
drwxrwxr-x  2 hzf  hzf  4.0K 1229 15:16 .keras
drwxrwxr-x  3 hzf  hzf  4.0K 126 15:58 .local
drwxrwxr-x 16 hzf  hzf  4.0K 126 15:48 miniconda3
drwx------  3 hzf  hzf  4.0K 1228 15:09 .nv
-rw-r--r--  1 hzf  hzf   807 45  2018 .profile
-rw-------  1 hzf  hzf  2.0K 210 13:20 .python_history
drwxrwxr-x 10 hzf  hzf  4.0K 12 23:32 rknn-toolkit2
-rw-rw-r--  1 hzf  hzf  176M 1229 14:32 rknn-toolkit2.zip
drwxrwxr-x  6 hzf  hzf  4.0K 14 00:02 Voice
drwxrwxr-x  5 hzf  hzf  4.0K 210 16:44 .vscode-server
-rw-rw-r--  1 hzf  hzf   183 124 22:25 .wget-hsts
-rw-------  1 hzf  hzf   483 210 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__/
......

find

  • Linux find 命令用于在指定目录下查找文件和目录,它可以使用不同的选项来过滤和限制查找的结果。
  • 用例:查找文件、文件夹
# 加双引号表示匹配正则表达式,必须要加,否则*号会被shell解析而不是find命令解析
# 从当前目录开始,递归查找文件名符合NKF-GRU*的所有文件(普通文件、目录、符合链接)
find . -name "NKF-GRU*"
# -maxdepth表示递归深度,1表示禁止递归
# 只在当前目录下,查找文件名符合NKF-GRU*的所有文件
find . -maxdepth 1 -name "NKF-GRU*"
# -type表示按文件类型查找,可以是f(普通文件)、d(目录)、l(符号链接)等,默认是全部类型
# 只在当前目录下,查找目录名符合NKF-GRU*的目录(查找文件夹时使用)
find . -maxdepth 1 -type d -name "NKF-GRU*"
# -o表示“或”逻辑
# 只在当前目录下,查找wav或ogg结尾的普通文件
find . -maxdepth 1 -type f -name "*.wav" -o -name "*.ogg"
# -L表示跟踪符号链接,默认情况下find将符号链接视为一个单独的文件,并不会遍历或传入链接所指向的目标
# 只在当前目录下,查找wav或ogg结尾的普通文件,遇到符号链接,则进一步遍历所指向的目标
find -L . -maxdepth 1 -type f -name "*.wav" -o -name "*.ogg"

mount

  • Linux mount 用于挂载Linux系统外的文件。
  • 用例:挂载远程服务器,如挂载NAS上的CIFS/SMB
# 先创建要进行挂载的文件夹
mkdir ms-algorithm
# 假设要挂载Samba服务器某个文件夹, 例如: smb://192.168.0.1/ms-algorithm
sudo mount -t cifs //192.168.0.1/ms-algorithm ./ms-algorithm -o username=<你在目标服务器上的用户名>
# 之后输入本机密码和你在目标服务器上的密码即可
# 上述命令中, -o 选项用于指定挂载文件系统时使用的挂载选项
# 比如是否为只读挂载、是否自动挂载、是否允许执行文件等
# 在挂载 CIFS/SMB 文件系统时,-o 后面可以跟随多个以逗号分隔的选项,用于设置挂载的详细行为, 如: 
# username=user:指定访问共享的用户名, password=pass:指定用户的密码, ro: 指定挂载为只读
# 若遇到错误, 如: 
# mount bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.
# 可以试试更新 cifs-utils
sudo apt-get update
sudo apt-get install cifs-utils
# 要删除挂载文件夹, 必须先umount, 再删除, 避免误删除远程服务器的文件
sudo umount ms-algorithm
rm -r ms-algorithm
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值