admin管理员组

文章数量:1541288

一、参考资料

Linux官方教程
linux CSDN专栏

二、重要指令

1. CPU相关

1.1 CPU运行模式

# 查看系统是32位还是64位
getconf LONG_BIT

1.2 查看cpu是否支持64bit

cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l

1.3 查看CPU信息

lscpu

4核4线程

# lscpu
Architecture:          x86_64
CPU 运行模式:    32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
每个核的线程数:1
每个座的核数:  4
Socket(s):             1
NUMA 节点:         1
厂商 ID:           GenuineIntel
CPU 系列:          6
型号:              158
步进:              11
CPU MHz:             800.000
BogoMIPS:              6185.06
虚拟化:           VT-x
L1d 缓存:          32K
L1i 缓存:          32K
L2 缓存:           256K
L3 缓存:           6144K
NUMA node0 CPU(s):     0-3

6核12线程

Architecture:          x86_64
CPU 运行模式:    32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                12
On-line CPU(s) list:   0-11
每个核的线程数:2
每个座的核数:  6
Socket(s):             1
NUMA 节点:         1
厂商 ID:           AuthenticAMD
CPU 系列:          25
型号:              33
Model name:            AMD Ryzen 5 5600X 6-Core Processor
步进:              0
CPU MHz:             4591.230
CPU max MHz:           3700.0000
CPU min MHz:           2200.0000
BogoMIPS:              7386.44
虚拟化:           AMD-V
L1d 缓存:          32K
L1i 缓存:          32K
L2 缓存:           512K
L3 缓存:           32768K
NUMA node0 CPU(s):     0-11
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor smca

8核8线程

[root@host-10-10-17-13 ~]# lscpu
Architecture:                    aarch64
CPU op-mode(s):                  64-bit
Byte Order:                      Little Endian
CPU(s):                          8
On-line CPU(s) list:             0-7
Thread(s) per core:              1
Core(s) per socket:              1
Socket(s):                       8
NUMA node(s):                    1
Vendor ID:                       HiSilicon
Model:                           0
Model name:                      Kunpeng-920
Stepping:                        0x1
CPU max MHz:                     2600.0000
CPU min MHz:                     2600.0000
BogoMIPS:                        200.00
L1d cache:                       512 KiB
L1i cache:                       512 KiB
L2 cache:                        4 MiB
L3 cache:                        256 MiB
NUMA node0 CPU(s):               0-7
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Not affected
Vulnerability Spectre v1:        Mitigation; __user pointer sanitization
Vulnerability Spectre v2:        Not affected
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cp
                                 uid asimdrdm jscvt fcma dcpop asimddp asimdfhm

96核96线程

root@44ff3bb0ad1d:~# lscpu
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              96
On-line CPU(s) list: 0-95
Thread(s) per core:  1
Core(s) per socket:  48
Socket(s):           2
NUMA node(s):        4
Vendor ID:           0x48
Model:               0
Stepping:            0x1
CPU max MHz:         2600.0000
CPU min MHz:         200.0000
BogoMIPS:            200.00
L1d cache:           64K
L1i cache:           64K
L2 cache:            512K
L3 cache:            49152K
NUMA node0 CPU(s):   0-23
NUMA node1 CPU(s):   24-47
NUMA node2 CPU(s):   48-71
NUMA node3 CPU(s):   72-95
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm

192核192线程

[ma-user@notebook-87136e07-6a9a-4138-beec-742972f7b62f MyDocuments]$ lscpu
Architecture:        aarch64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              192
On-line CPU(s) list: 0-191
Thread(s) per core:  1
Core(s) per socket:  48
Socket(s):           4
NUMA node(s):        8
Vendor ID:           HiSilicon
Model:               0
Model name:          Kunpeng-920
Stepping:            0x1
BogoMIPS:            200.00
L1d cache:           12 MiB
L1i cache:           12 MiB
L2 cache:            96 MiB
L3 cache:            192 MiB
NUMA node0 CPU(s):   0-23
NUMA node1 CPU(s):   24-47
NUMA node2 CPU(s):   48-71
NUMA node3 CPU(s):   72-95
NUMA node4 CPU(s):   96-119
NUMA node5 CPU(s):   120-143
NUMA node6 CPU(s):   144-167
NUMA node7 CPU(s):   168-191
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
yoyo@yoyo:/sys/devices/system/cpu$ lscpu
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  8
  On-line CPU(s) list:   0-7
Vendor ID:               GenuineIntel
  Model name:            11th Gen Intel(R) Core(TM) i7-1195G7 @ 2.90GHz
    CPU family:          6
    Model:               140
    Thread(s) per core:  2
    Core(s) per socket:  4
    Socket(s):           1
    Stepping:            2
    BogoMIPS:            5836.79
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr
                         sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reli
                         able nonstop_tsc cpuid pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe p
                         opcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch i
                         nvpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi ept vpid ept_ad fsgsbase
                          tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma
                         clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx512vb
                         mi umip avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpi
                         d movdiri movdir64b fsrm avx512_vp2intersect flush_l1d arch_capabilities
Virtualization features:
  Virtualization:        VT-x
  Hypervisor vendor:     Microsoft
  Virtualization type:   full
Caches (sum of all):
  L1d:                   192 KiB (4 instances)
  L1i:                   128 KiB (4 instances)
  L2:                    5 MiB (4 instances)
  L3:                    12 MiB (1 instance)
Vulnerabilities:
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl and seccomp
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Enhanced IBRS, IBPB conditional, RSB filling
  Srbds:                 Not affected
  Tsx async abort:       Not affected

1.4 查看CPU指令集

cat /proc/cpuinfo | grep flags

输出结果

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc arch_perfmon rep_good xtopology cpuid aperfmperf pni pclmuldq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts md_clear flush_l1d

2. 内存相关

# 查看内存
free -m

free -h
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:            63G        5.4G        5.4G        621M         52G         44G
[root@host-10-10-17-13 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           30Gi       745Mi        29Gi        47Mi       867Mi        27Gi
Swap:         4.0Gi          0B       4.0Gi
[ma-user@notebook-87136e07-6a9a-4138-beec-742972f7b62f MyDocuments]$ free -h
              total        used        free      shared  buff/cache   available
Mem:          755Gi        12Gi       494Gi       4.0Gi       247Gi       735Gi
Swap:            0B          0B          0B

增加SWAP交换空间

查看SWAP交换空间

free -m
root@davinci-mini:~# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        2.2G        4.9G        2.0M        451M        5.2G
Swap:            0B          0B          0B

新增临时交换空间

# count的大小就是增加的swap空间的大小,1G是块大小为1G,所以空间大小是 bs*count=6G
sudo dd if=/dev/zero of=/swapfile bs=1G count=6

# 把空间格式化成swap格式
sudo mkswap /swapfile

# 修改权限
su chmod 0600 /swapfile  

# 使swap空间生效
sudo swapon /swapfile

输出结果

root@davinci-mini:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  8.8G  4.3G  68% /
devtmpfs        3.6G  4.0K  3.6G   1% /dev
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           3.8G  2.1M  3.8G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/mmcblk1p2  976M  5.0M  920M   1% /var/log/npu/slog
/dev/mmcblk1p3  103G   12G   88G  12% /home
tmpfs           777M     0  777M   0% /run/user/1000
root@davinci-mini:~# sudo dd if=/dev/zero of=/swapfile bs=1G count=4
4+0 records in
4+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 140.872 s, 30.5 MB/s
root@davinci-mini:~# sudo mkswap /swapfile
mkswap: /swapfile: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=a808bd53-fc5a-4958-8bc3-d58a1c10d3a7
root@davinci-mini:~# sudo chmod 0600 /swapfile
root@davinci-mini:~# sudo swapon /swapfile
root@davinci-mini:~# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        2.2G        1.2G        2.0M        4.1G        5.2G
Swap:          4.0G          0B        4.0G
root@davinci-mini:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G   13G  240M  99% /
devtmpfs        3.6G  4.0K  3.6G   1% /dev
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           3.8G  2.1M  3.8G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/mmcblk1p2  976M  5.0M  920M   1% /var/log/npu/slog
/dev/mmcblk1p3  103G   12G   88G  12% /home
tmpfs           777M     0  777M   0% /run/user/1000

释放临时SWAP空间

# 关闭swap空间
sudo swapoff /swapfile
sudo rm /swapfile

# 关闭所有的swap空间
sudo swapoff -a

输出结果

root@davinci-mini:~# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        2.2G        1.2G        2.0M        4.1G        5.2G
Swap:          4.0G          0B        4.0G
root@davinci-mini:~# sudo swapoff /swapfile
root@davinci-mini:~# sudo rm /swapfile
root@davinci-mini:~# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        2.2G        4.9G        2.0M        451M        5.2G
Swap:            0B          0B          0B

3. 硬盘相关

3.1 Ubuntu清理硬盘空间

Ubuntu系统释放磁盘空间的7种简单方法

3.2 /home扩容

使用gparted工具,给 /home 分区扩容即可。

3.3 ubuntu系统U盘只读

  1. 查看系统日志

    tail -f /var/log/syslog
    
  2. 查看U盘所在的文件系统

    df -h
    
  3. 卸载U盘

    umount /media/sinkdream/DA18-EBFA 
    
  4. 修复U盘文件系统

    sudo dosfsck -v -a /dev/sda1
    

3.4 硬盘测速

固态硬盘的速度

Linux hdparm命令教程:优化硬盘性能和读写速度(附实例详解和注意事项)

# 安装
sudo apt-get install hdparm
yoyo@ubuntu:~$ sudo hdparm -t /dev/loop0

/dev/loop0:
 Timing buffered disk reads: 1476 MB in  3.01 seconds = 489.69 MB/sec

机械硬盘的速度

yoyo@ubuntu:~$ sudo hdparm -t /dev/sda1

/dev/sda1:
 Timing buffered disk reads: 338 MB in  3.22 seconds = 104.99 MB/sec

3.5 硬盘挂载卸载

# 将c盘挂载到 /mnt/c
sudo mount -t drvfs C:\\ /mnt/c

# 卸载
sudo umount /mnt/c

4. 进程相关

Ubuntu系统批量杀死进程方法[转亲测可用]

# 通过端口号查看进程情况
lsof -i :5001

# 查看指定端口号的进程情况
netstat -tunlp | grep 5001
netstat -apn | grep 5001

# 查看进程的status文件
cat /proc/PID号/status

# 查找进程
ps -aux | grep xjserver

# 查找进程
ps -ef | grep xjserver

# 查看进程信息
ps -efw

# 杀死进程
kill -9 PID

# 删除所有的 uwsgi 进程
killall -9 uwsgi 

# 杀进程
killall -9 xjserver

# 查看进程所占用内存大小
ps -ef | grep pycharm

# 根据进程ID查看进程情况
top -p PID号
ps -aux | grep pycharm

# nohup防止进程退出
在指令前加上 nohup 指令
ps -ef | grep spiderks.py | xargs kill -9  # 批量删除进程
ps -ef | grep spiderks.py | grep -v grep | awk '{print $2}' | xargs kill -9 

|  管道符,用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
ps  命令用来列出系统中当前运行的进程, ps -ef 显示所有进程信息,联通命令行。
grep 命令用于过滤/搜索特定字符,grep spiderks.py在这里为搜索过滤所有含有"piderks.py"名称的进程。
grep -v 显示不包含匹配文本的所有行,在这里为筛选出所有不包含grep名称的进程,对上一步的进程再做一次筛选(因为ps -ef列出了所有的命令,包括命令行)。
awk在文件或字符串中基于指定规则浏览和抽取信息;把文件逐行读入,以空格为默认分隔符将每行切片,然后再进行后序处理。这里利用awk '{print $2}'将上一步中过滤得到的进程进行打印,$2表示打印第二个域(PID,进程号) $0表示所有域,$1表示第一个域,$n表示第n个域。
xargs命令是给命令传递参数的过滤器,善于把标准数据数据转换成命令行参数。在这里则是将获取前一个命令的标准输出然后转换成命令行参数传递给后面的kill命令。
kill -9强制关闭进程。

5. 文件相关

# 查看当前文件夹大小
du -sh 

# 查看指定文件大小
du -sk filename 
df -h

# 下载服务器文件
scp -r 用户名@服务器IP地址:服务器文件路径 本地路径

# 上传文件到服务器
scp local_file remote_username@remote_ip:remote_file

# 上传文件到docker容器中
scp -P 6013 -r ./mindspore root@183.237.186.222:/data/YOYOFile

# 递归创建文件夹
sudo mkdir -p /a/b/c/d

# 删除文件夹
sudo rmdir xxx

# 将一个目录下的文件合并成一个文件
find data/ -name "*seisreal.su" | xargs cat > ./seisreal.su

# 扫描1k以下的文件并删除掉
find ./ -size -1k -exec rm {} \

查看文件大小

# 查看文件夹大小
du -h --max-depth=1 ./work

# 查看当前目录大小
du -h -x --max-depth=1

# 查看文件大小
du -h --max-depth=1 ./work/work.zip

参数解释:

--max-depth:文件级别,类似于 `tree -L 1`

查看文件

# grep过滤文件
ls /usr/lib/x86_64-linux-gnu/ | grep libusb

查看文件属性

file hello

查看x86_64文件属性

yoyo@yoyo:/demo-1/build$ file test.cpython-38-x86_64-linux-gnu.so
test.cpython-38-x86_64-linux-gnu.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=4b5bc89af229afb3a57067c59c6f6b3c3abd97f9, stripped

查看ARM aarch64文件属性

yoyo@yoyo:/demo-1/build$ file test 
test: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=ede486cbaba4f250828603555d45fa84769bcea9, with debug_info, not stripped

6. 日志相关

# 启动服务,打印详细信息
./xjserver -l4

# 重定向
> 新创建不追加,如果文件不存在,就创建文件;如果文件存在,就将其清空
>> 追加,将输出内容追加到目标文件中

# 要跟踪名为 tcp_server.log 的文件的增长情况,从末尾开始查看文件
tail -f /PATH/TO/tcp_server.log

# 向文本文件中写入内容
echo "deb http://mirrors.163/debian/ jessie main non-free contrib" > /etc/apt/sources.list

7. 系统相关

7.1 查看系统

lsb_release -a

cat /etc/issue
liulinjun@LAPTOP-4DTD5D42:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy
yoyo@yoyo:~$ cat /etc/issue
Ubuntu 22.04.1 LTS \n \l

7.2 系统信息

# OS详细信息
uname -a
或者
cat /proc/version

# OS发行信息
cat /etc/*release

# 硬件平台
uname -i

# 节点名称
uname -n

# OS名称
uname -o

# 处理器体系结构
uname -p

# OS发行版本号
uname -r

# OS名称
uname -s

# 内核版本
uname -v
[root@host-10-10-17-13 ~]# uname -a
Linux host-10-10-17-13 4.19.90-24.4.v2101.ky10.aarch64 #1 SMP Mon May 24 14:45:37 CST 2021 aarch64 aarch64 aarch64 GNU/Linux
[root@host-10-10-17-13 ~]# uname -i
aarch64
[root@host-10-10-17-13 ~]# uname -n
host-10-10-17-13
[root@host-10-10-17-13 ~]# uname -o
GNU/Linux
[root@host-10-10-17-13 ~]# uname -p
aarch64
[root@host-10-10-17-13 ~]# uname -r
4.19.90-24.4.v2101.ky10.aarch64
[root@host-10-10-17-13 ~]# uname -s
Linux
[root@host-10-10-17-13 ~]# uname -v
#1 SMP Mon May 24 14:45:37 CST 2021
# OS详细信息
cat /proc/version

# OS发行信息
cat /etc/*release

cat /etc/issue
cat /etc/os-release
[root@host-10-10-17-13 ~]# cat /proc/version 
Linux version 4.19.90-24.4.v2101.ky10.aarch64 (KYLINSOFT@localhost.localdomain) (gcc version 7.3.0 (GCC)) #1 SMP Mon May 24 14:45:37 CST 2021
[root@host-10-10-17-13 ~]# cat /etc/*release
Kylin Linux Advanced Server release V10 (Sword)
DISTRIB_ID=Kylin
DISTRIB_RELEASE=V10
DISTRIB_CODENAME=juniper
DISTRIB_DESCRIPTION="Kylin V10"
DISTRIB_KYLIN_RELEASE=V10
DISTRIB_VERSION_TYPE=enterprise
DISTRIB_VERSION_MODE=normal
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Sword)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)"
ANSI_COLOR="0;31"

Kylin Linux Advanced Server release V10 (Sword)

7.3 查看系统发行版本

lsb_release -a
yoyo@yoyo:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy

7.4 显卡信息

# 查看显卡信息
lshw -c video

7.5 IP信息

# 查看Ip
ip addr show 

8. 关机与重启相关指令

linux 关机命令总结

8.1 关机指令

# 立刻关机,停止所有正在运行的进程,并进入一个无操作状态,需要手动断开与电源的连接
halt

# 立刻关机,停止所有正在运行的进程,并断开与电源的连接
poweroff

# 立刻关机(root用户使用)
shutdown -h now 

# 10分钟后自动关机
shutdown -h 10 

注意:如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启。

8.2 重启指令

# 立即关闭系统并重新启动,适用于快速重启系统
reboot

# 立刻重启(root用户使用),允许用户在执行重启操作之前显示一条关机通知消息
shutdown -r now

# 10分钟后自动重启(root用户使用)
shutdown -r 10 

# 在时间为20:35时重启(root用户使用)
shutdown -r 20:35 

注意:如果是通过shutdown命令设置重启的话,可以用 shutdown -c 命令取消重启。

9. NFS 相关

在宿主机上远程访问开发板中的文件,可通过NFS挂载的方式。开发板作为NFS服务端,宿主机作为NFS客户端,在宿主机上访问开发板中的文件。

先配置NFS服务端,然后配置NFS客户端

9.1 配置NFS服务端

# 安装NFS服务
sudo apt-get install nfs-kernel-server

# 添加NFS共享目录(要挂载的文件夹)
sudo vim /etc/exports
# 添加以下内容
# *表示允许任意网段IP的系统访问该NFS目录
/PATH/TO/share *(rw,sync,no_root_squash)

# 修改权限
sudo chmod -R 777 /PATH/TO/share
sudo chown -R 777 /PATH/TO/share

# 启动NFS服务
# 先启动NFS,再重启2NFS
sudo /etc/init.d/nfs-kernel-server start
sudo /etc/init.d/nfs-kernel-server restart

# 挂载NFS
# 192.168.0.100为NFS服务端的IP,即开发板的IP
sudo mount -t nfs -o nolock 192.168.0.100:/PATH/TO/share /mnt

# 查看是否挂载成功
df -h

注意:NFS服务端每次重启后,NFS挂载会失效,需要手动重新挂载。解决办法是,设置开机自动执行挂载。

9.2 配置NFS客户端

# 安装NFS客户端
sudo apt-get install nfs-common

# 将开发板(树莓派、旭日X3派等)挂在到宿主机(笔记本、服务器)上
# NFS服务端路径:/PATH/TO/share
# NFS客户端路径:/mnt
sudo mount -t nfs 192.168.0.100:/PATH/TO/share /mnt

# 查看是否挂载成功
df -h

# 卸载
sudo umount /mnt

10. 开机执行脚本

# 新建脚本
cd /etc/init.d
sudo vi mount_test.sh

# 编辑脚本
#!bin/bash
### BEGIN INIT INFO
# Provides:        svnd.sh
sudo mount -t nfs -o nolock 192.168.0.100:/PATH/TO/share /mnt

# 修改权限
sudo chmod 777 mount_test.sh

# 将脚本添加到开机执行的队列中
sudo update-rc.d mount_test.sh defaults 90

# 开机重启,查看是否生效
df -h

# 取消开机自动运行
cd /etc/init.d
sudo update-rc.d -f mount_test.sh remove

三、常用指令

1. 安装run软件包

# 可执行权限
chmod +x 软件包名.run

# 校验软件包安装文件的一致性和完整性
./软件包名.run --check

# 指定安装路径
./软件包名.run --install

如果用户未指定安装路径,则软件会安装到默认路径下,默认安装路径如下。
root用户:“/usr/local/Ascend”
非root用户:“${HOME}/Ascend”
其中${HOME}为当前用户目录。

2 解压缩相关

2.1 zip压缩文件

# 压缩/etc/目录,压缩文件名为etc.zip
zip -vr etc.zip /etc/

# 压缩多个文件夹
# 将input1,input2, input3压缩成output.zip
zip -vr output.zip input1 input2 input3

# 删除压缩文件中的指定文件
zip -d myfile.zip smart.txt

# 追加mypasww.txt文件到压缩包中
zip -u passwd.zip mypasww.txt

# 将文件和文件夹压缩成 .zip 文件
zip -q -r compress.zip [file directory]

参数解释:

-v		:可视化操作,显示压缩的执行过程,默认就是可视化
-q		: 静默操作,不显示指令执行过程
-r 		:表示递归打包包含子目录的全部内容
-d		:从压缩文件内删除指定的文件
-n		:n为一个数字,压缩级别是从 1~9 的数字,-1 代表压缩速度更快,-9 代表压缩效果更好
-e   	:加密压缩文件 
-u		:追加文件到zip压缩包中

2.2 unzip解压文件

# 解压到当前目录
unzip xxx.zip
或者
unzip -q xxx.zip

# 解压到指定目录
unzip xxx.zip -d ./xxx

2.3 tar压缩文件

# 将文件和文件夹压缩成 .tar.gz 文件
tar -zcf xxx.tar.gz [file directory]

2.4 tar解压文件

# 解压.tar.gz结尾的压缩包
tar -xzvf xxx.tar.gz

# 解压 .tar.gz 文件到 /hy-nas 目录
tar -C /hy-nas -xf xxx.tar.gz

# gz解压
gzip -d cmake-3.14.1.tar.gz
tar -xvf cmake-3.14.1.tar

2.5 7z解压

解压 zip 或 rar 推荐使用 7z 命令

安装7z

apt-get update
apt-get install p7zip-full -y
# 如果 zip 超过 1GB 推荐使用 7z 命令解压,-o 后直接加解压缩路径
7z x compress.zip -o/hy-nas

# 解压 .rar 文件到当前目录
7z x compress.rar

3. curl下载

如何使用curl命令下载文件

下载链接:https://d7.serctl/downloads8/2022-10-08-14-24-38-CopyTranslator-CopyTranslator-PaddleOCR-json.v1.2.1.7z

# 下载单个文件,文件名称与url一致
curl -O [URL]

# 下载多个文件
curl -O [URL1] -O [URL2] -O [URL3] ...

# 下载连续的多张图片
# 如果url中文件带有数字,并且有顺序,可以使用正则语法
curl ftp://ftp.example/file[1-30].jpg

# 使用不同的名称保存多个文件
curl -o file2.pdf www.example/file.pdf -o file3.pdf www.example/file1.pdf

# 下载文件显示进度条
curl -# -O [URL]

# 限制下载速度
# 这个值可以用字节表示,k后缀为千字节,m后缀为兆字节,g后缀为千兆字节
curl --limit-rate [value] [URL]
curl --limit-rate 1m -O [URL]

4. wget下载

Linux wget 命令详解

wget命令是Linux系统用于从Web下载文件的命令行工具,支持 HTTP、HTTPS及FTP协议下载文件,而且wget还提供了很多选项,例如下载多个文件、后台下载,使用代理等等,使用非常方便。接下来就介绍一下wget的使用方法。

# 下载单个文件,文件名称为默认名称
wget [url]

# 下载单个文件,并重命名
wget -O redis.tar.gz https://download.redis.io/releases/redis-6.0.8.tar.gz

# 将文件下载到指定目录
wget -P /usr/software https://download.redis.io/releases/redis-6.0.8.tar.gz


# 断点续传
wget -c https://download.redis.io/releases/redis-6.0.8.tar.gz

# 在后台下载
wget -b https://download.redis.io/releases/redis-6.0.8.tar.gz

# 按照download_list.txt中的链接下载
# 每个url单独一行
wget -i download_list.txt

# 限制下载速度
# 这个值可以用字节表示,k后缀为千字节,m后缀为兆字节,g后缀为千兆字节
wget --limit-rate=1m https://download.redis.io/releases/redis-6.0.8.tar.gz

# 设置模拟浏览器下载
# 如果远程服务器阻止wget下载资源,我们可以通过-U选项模拟浏览器进行下载,例如下面模拟谷歌浏览器下载
wget -U 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.43 Safari/537.36' https://download.redis.io/releases/redis-6.0.8.tar.gz

# 增加重试次数
# 如果网络有问题或下载一个大文件有可能会下载失败,wget默认重试20次
wget --tries=40 https://download.redis.io/releases/redis-6.0.8.tar.gz

# 通过FTP下载如果要从受密码保护的FTP服务器下载文件,需要指定用户名和密码
wget --ftp-user=<username> --ftp-password=<password> url
# 使用wget命令时跳过SSL证书检查
wget https://download.redis.io/releases/redis-6.0.8.tar.gz --no-check-certificate  # 临时

# 永久
vi ~/.wgetrc
check_certificate = off  # 插入内容

5. 软链接

# 创建软链接
# Ubuntu中建立软链接运用ln命令,第一个参数是要建立软链接的文件,第二个参数是软链接名称
ln -s 源地址 目的地址
ln -s /opt/Linux/root_dir /home/lp/roo_dir

# 移除软链接
rm -rf <软链接地址>

# 修改软链接
ln -snf <新目标目录> <软链接地址>

6. 文件完整性校验

linux文件完整性校验-md5-sha256

md5校验

通过md5sum 对二进制文件 libTaskDb.so 算md5值,并将值存储在 libTaskDb.so.md5 文件中,校验文件的时候,使用 md5sum -c libTaskDb.so.md5 来校验文件,校验成功,返回0,否则返回1。

# 生成校验码
md5sum -b libTaskDB.so > libTaskDB.so.md5

# 校验文件
md5sum -c libTaskDB.so.md5 

sha256校验

# 生成校验码
sha256sum -b mindspore-lite-1.8.2-linux-x64.tar.gz > mindspore-lite-1.8.2-linux-x64.tar.gz.sha256

# 校验文件
sha256sum -c mindspore-lite-1.8.2-linux-x64.tar.gz.sha256

7. 安装ping

apt-get update
apt install iputils-ping

8. adb logcat

通过工具(如adb logcat)抓取后台日志。

9. ldd指令

功能:查看可执行文件的链接库情况。

用法:ldd file

yoyo@yoyo:/mnt/d/MyDocuments/CMakeDemo/build$ ldd test.cpython-38-x86_64-linux-gnu.so
        linux-vdso.so.1 (0x00007ffde1d20000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5588e95000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5588e75000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5588c4d000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5588b66000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f55890eb000)

10. file指令

功能:查看文件上属性。

root@root:/home/mindspore_ascend-1.8.2-linux_aarch64/lib# file libmindspore_common.so
libmindspore_common.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=a8e6f5d61eef2f8447ce237014c8f94a1d0638d5, not stripped

本文标签: 使用技巧日常Linux