Linux 常用命令

Ubuntu apt-get设置代理

echo `Acquire::http::proxy "socks5h://IP:1080/";
Acquire::https::proxy "socks5h://IP:1080/";` > /etc/apt.conf

硬盘

挂载移动硬盘

sudo mount  /dev/sda1 /mnt/hk -o iocharset=utf8

取消挂载移动硬盘

sudo umount /mnt/hk 

挂载 nfs (v3 协议)

mount -t nfs -o vers=3,nolock,proto=tcp,noresvport 10.0.2.222:/uc0qrfbp /mnt/nfs

开机自动挂载 nfs (v3 协议)

10.0.4.44:/z6dajk13 /mnt/nfs nfs vers=3,nolock,proto=tcp,hard,timeo=600,retrans=2,_netdev,noresvport 0 0

挂载 nfs (v4 协议)

mount -t nfs -o vers=4.0,noresvport 10.0.2.222:/ /mnt/nfs

开机自动挂载 nfs (v4 协议)

10.0.2.222:/ /mnt/nfs nfs vers=4,minorversion=0,hard,timeo=600,retrans=2,_netdev,noresvport 0 0

硬盘 / 云盘 测速

一、测试写速度:

time dd if=/dev/zero of=/tmp/test bs=8k count=1000000
测试结果:565 MB/s

二、测试读速度:

time dd if=/tmp/test of=/dev/null bs=8k
测试结果:4.7GB/s

三、测试读写速度:

time dd if=/tmp/test of=/var/test bs=64k
测试结果:387MB/s

四、参数说明

①、time 有计时作用,dd 用于复制,从 if 读出,写到 of;

②、if=/dev/zero 不产生 IO,因此可以用来测试纯写速度;

③、同理 of=/dev/null 不产生 IO,可以用来测试纯读速度;

④、将/tmp/test 拷贝到/var 则同时测试了读写速度;

⑤、bs 是每次读或写的大小,即一个块的大小,count 是读写块的数量。

————————————————
参考链接:https://blog.csdn.net/yue_2018/article/details/103347105

系统相关

批量杀进程

kill -9 `ps -ef |grep xxx|awk '{print $2}' `   

切换应用程序版本 update-alternatives

ubuntu@VM-0-2-ubuntu:/opt/application$ java -version
openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1, mixed mode, sharing)

ubuntu@VM-0-2-ubuntu:/opt/application$ update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 2

ubuntu@VM-0-2-ubuntu:/opt/application$ java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

文件与文件夹

Mac 批量修改文件后缀 (包含子目录)

find . -type f -name "*.md" -exec sh -c 'mv "$0" "${0%.md}.mdx"' {} \;

批量删除指定后缀文件

# find . -name "*.mp3" | xargs rm -rf
find . -name "*.mp3" -type f -exec rm -rfv {} \;

批量清除日志文件

例如清除 docker 容器日志文件

truncate -s 0 /var/lib/docker/containers/*/*-json.log

统计当前目录下子目录大小

du -h --max-depth=1

root@l3:/var/lib/docker/containers# du -h --max-depth=1
24K     ./fa1cff828ae6d97be9187379b041911b92636a09c87ee6a585cf47494f6ad9a4
1.2G    ./f65d5367ea1b2462173fc6ef384f49616f7ddaf92551b4be258eb2bc3570af79
842M    ./aa777a7c8af5a138d3e83a8d1a5a2f60a3c0ed7358b87fa7c2f89510ac66b3fc
53G     ./a24d3bc36ecec01da0844171ea5c907e4b11dabc0ca4d7c65e00e650a69764c9
852M    ./a170d2622afeb99dc22c1f678a46b55e5efe426d556b1ad139766e8fedea88fc
647M    ./1e3f1bcfbf95080463192473cf2c8f7ee109e0c29cba53f6166b9656a2ee1c01
32K     ./80713744ebdccf1a020d93e71db30e5fc8f4d6d7284c7083ea05ee514933f9d4
942M    ./0c664ddf6d7b2b99b866619d62b29b1ac7097db3a56d8f2f42b0bca278199e07
28K     ./eda9463c78b72534c8c059c460fbd35ddf4ca39fd28d3ed4f49c9acab98d0ebf
32K     ./1ef91eb8bb5f3f9004b3d98c15587276813de4aac1d65be3b6f89863144a0d63
32K     ./800cb33c308bc4f769e7ea65e733f6a4ea352c5ad763400cd9c83b7cc9ea053c
704M    ./d6128aa5fe3088c1357ea97317126cbb62d34bdf54e1b412b81cea3afdd2df29
64K     ./8c6e7cc48cb00c576d3fb3b44dcc74ae6c986e01c490551c1951e59d454b8972
24K     ./4fbba86dc0f6c9e762a66a7184658ec6d5bd2330b08c8ed56716975c2863c393
40K     ./4316e9174c771b94bd4fb6f065f142639b311c2751dac1f411aca89bfa0d51c7
58G     .

批量命名

对指定目录下的文件批量命名

# 去除 -n 
find ./ -type f -not -iname '*.jpg' -not -iname '*.gif' -not -iname '*.jpeg' -not -iname '*.png' -exec rename -n 's/old/new/g' {} +

# 去除 abc 符号
find. -type f -iregex '.*\.\(jpg\|png\|jpeg\|gif\)' | while read file; do newname=$(echo "$file" | sed 's/abc//g'); mv "$file" "$newname"; done

统计当前文件目录下的文件个数

  • 含目录
ls -l | grep -v total | wc -l 

zip 压缩文件

  • 压缩 abc 目录下文件至 abc.zip
zip -q -r abc.zip ./abc/ 

修改文件所有者

chown

jansora@jansora:~$ ls -l | grep translation
drwxr-xr-x  5 root    root    4096 79 09:32 translation
jansora@jansora:~$ sudo chown jansora translation
jansora@jansora:~$ ls -l | grep translation
drwxr-xr-x  5 jansora root    4096 79 09:32 translation

修改文件所属组

chgrp

jansora@jansora:~$ ls -l | grep translation
drwxr-xr-x  5 jansora root    4096 79 09:32 translation
jansora@jansora:~$ sudo chgrp jansora translation
jansora@jansora:~$ ls -l | grep translation
drwxr-xr-x  5 jansora jansora   4096 79 09:32 translation

内存相关

检查内存使用情况

free -h

              total        used        free      shared  buff/cache   available
Mem:           3.7G        548M        164M         20M        3.0G        2.9G
Swap:            0B          0B          0B

内存监控

/usr/bin/free | awk '/Mem/{printf("RAM Usage: %.2f%\n"), $3/$2*100}' |  awk '{print $3}' | awk '{ if($1 > 80) print $0;}'

9.66%

Docker

docker 批量删除无用镜像

docker image rm `docker images | grep none | awk '{print $3}' `

docker 批量删除无用容器

 docker container rm `docker container ls -a | grep bash | awk '{print $1}'`

评论栏