实用命令和技巧

1、找出当前系统CPU、内存使用量较高的进程

ps -aux | sort -rnk 3 | head -20  (3 换 4,为内存)

2、killall -0 和 kill -0的区别

kill [信号代码] 进程ID

注:信号代码可以省略;我们常用的信号代码是 -9 ,表示强制终止。

# kill -9 22761

与kill命令不同的是,killall 命令可以根据进程名称来杀死进程。kill 命令 则先需要找到进程的id。

#yum install  -y  psmisc(安装killall)

# pgrep -l magic_Linux
2 13020 magic_Linux01
3 22761 magic_Linux02
4 25279 magic_Linux03
5 27694 magic_Linux04

# killall magic_Linux02

3、xshell技巧

a、alt+shift+n  新建窗口

b、设置鼠标左键选中,邮件粘贴

c、新建窗口“+”消失快捷键恢复:
Ctrl+Shif+T

4、sort常用选项

-t,指定排序时所用的分隔符;-k,指定比较的列数,常与-t参数结合使用

sort -nt ":"  -k 2  file1 
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3

-r 以倒序(相反的顺序)输出排序结果

-u --unique,去掉重复的行输出排序结果,功能类似于uniq功能

-f  将小写字母当作大写字母对内容进行排序

-n --numeric-sort 根据字符串数值比较

sort file1 file2 排序两个文件的内容 
sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份) 
sort file1 file2 | uniq -u 删除交集,留下其他的行 
sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件

-h   --human-numeric-sort    使用易读性数字(例如: 2K 1G)

du -d1  -h  soft-packages/*   |  sort  -h
18M	soft-packages/node_exporter.tar.gz
124M	soft-packages/go1.16.8.linux-amd64.tar.gz
175M	soft-packages/NVIDIA-Linux-x86_64-455.45.01.run
314M	soft-packages/NVIDIA-Linux-x86_64-510.60.02.run
344M	soft-packages/NVIDIA-Linux-x86_64-515.48.07.run
551M	soft-packages/dcgm-exporter.tar
585M	soft-packages/harbor-offline-installer-v2.4.1.tgz

sort -V 按照版本号进行排序

是Unix或Linux系统中的一个命令行选项,用于按照版本号进行排序。这个选项将每个输入行当做一个版本字符串,并按照这个版本字符串进行排序。

-V 选项会将数字、字母和其他字符识别为独立的字段,并按照这些字段的顺序进行比较。这使得它特别适合于对那些包含数字、特殊字符和字母的字符串进行排序,比如软件版本号。

5、显示运行 3 级别开启的服务:

ls /etc/rc3.d/S* |cut -c 15-   (从中了解到cut的用途,截取数据

6、杀掉80端口相关的进程

lsof -i :80|grep -v “ID”|awk ‘{print “kill -9”,$2}’|sh

7、显示目录层级关系

find  .  *

tree

ls -Rl 

8、windows和mac互传文件(前提是两者网段相同互通)

mac

python3 -m http.server

window(用pyhton也可以)

装一个fileserver

fileserver.exe   -port  端口   -path    路径 

9、sudo  -i 和 su  -  root

su是superuser的前面两字母。

su root=su
su root和su一样:表示与root建立一个链接,通过root执行命令,其实就是进程的有效用户ID变成了root,unix校验进程的权限都是校验的有效用户ID,进程的实际用户ID还是当前登录系统的用户,主目录也还是当前登录系统的用户的主目录。

su  -  root需要密码
sudo -i 不需要密码 sudo -i表示以root身份登录,进程的实际用户ID和有效用户ID都变成了root,主目录也切换为root的主目录。

10、非交互式修改密码

echo  "password"  | passwd testuser --stdin > /dev/null 2>&1
echo testuser:password|chpasswd

chpasswd

批量更新用户口令的工具

先创建用户密码对应文件,格式为username:password,如abc:abc123,必须以这种格式来书写,并且不能有空行,保存成文本文件user.txt,然后执行chpasswd命令

chpasswd < user.txt

11、linux终端中启动 Visual Studio Code

# code .

12、ncdu

一个可以替代du命令的工具,ncdu命令是对传统du命令功能上的增强,不需要像du那样输入大量的命令,就可以计算文件及目录大小并可以按照大小或文件名进行排序。它是基于ncurses库开发的,因此还支持很多丰富的交互式命令。

Ncdu还提供了许多操作文件和文件夹的选项-导航,排序甚至删除:
上键或k : 用于向上移动光标
下键或j  : 用于向下移动光标
右键或l  : 打开所选目录
< 或者 h  :  这将打开父目录
n - 按名称排序(再次按降序排列)
s - 按文件大小排序(再次按降序排列)
d - 删除所选文件或目录
g - 显示百分比和/或图表
t - 排序时在文件之前切换dirs
c - 切换子项目计数的显示
b - 当前目录中的Spawn shell
i - 显示有关所选项目的信息
r - 刷新/重新计算当前目录
q - 退出ncdu

13、格式化输出:column

cat dd.txt  | column -t

column -s 选项指定分隔符来分割(同时去掉分隔符)

# cat testcolumn
Jackie | 18 | male
Helen | 20 | female
Daniel Liu | 23 | male

# cat testcolumn | column -s '|' -t
Jackie        18    male
Helen         20    female
Daniel Liu    23    male

pr命令:可以将大文件分割成多个页面进行打印,并在每个页面上加上标题

-# 输出指定的列数。
-t 忽略页眉和页脚
-T 忽略页眉和页脚,去除所有分页记号

# find /usr/bin/ -executable -type f | pr -T -4 | column -t
/usr/bin/cp        /usr/bin/nl        /usr/bin/chcon     /usr/bin/which
/usr/bin/gzip      /usr/bin/tzselect  /usr/bin/sleep     /usr/bin/diff3
/usr/bin/alias     /usr/bin/nohup     /usr/bin/chgrp     /usr/bin/hostname

14、查看各文件夹大小  ls -lSh

du -h --max-depth=1|sort -nr

ls -lSh  (-r 逆序排)
总用量 279M
-rwxr-xr-x   1 op_admin op_admin 181M 2月   8 12:35 jdk-8u151-linux-x64.tar.gz
-rw-r--r--   1 op_admin op_admin  76M 2月   8 12:22 nacos-server-2.0.0-BETA.tar.gz
-rwxr-xr-x   1 op_admin op_admin  13M 1月  18 10:39 ~
-rw-rw-r--   1 op_admin op_admin 9.9M 3月  30 2016 cfssl_linux-amd64
drwxr-xr-x  13 op_admin op_admin  282 2月   4 19:00 seaweedfs
drwxr-xr-x. 11 op_admin op_admin  203 1月  15 16:51 workspace
-rw-rw-r--   1 op_admin op_admin  149 12月  4 14:22 ts.sh

按时间递归逆序查看某个目录的文件,汉数混合有奇效(比如第1组)

ls  -Rrt

递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径

find $PWD | xargs ls -ld

15、自动回答任何命令yes or no

yes | apt-get update。

16、wget 发送post请求

wget --post-data "item1=value1&item2=value2" url

示例:

wget --post-data "username=sg&password=123&content=%e6%b1%89%e5%ad%97&encode=utf8" http://m.sjn.com.cn/api/send/index.php

17sz下载文件乱码

sz -be -y filename

-a, –ascii

-b, –binary 用binary的方式上传下载,不解释字符为 ascii

-e, –escape 强制escape 所有控制字符,比如 Ctrl+x,DEL 等

-ary –o-sync

-a 表示使用ascii码格式传输文件,如果是Dos格式的文件,会转换为unix格式

-r 使用 Crash recovery mode. 即文件传输中断会重传

-y 表示文件已存在的时候会覆盖

–o-sync 采用同步写模式,以处理从缓存写到磁盘时中断丢失的情况

18、glances(htop的升级版)

安装

centos:
$ yum install -y glances

debian:
$ sudo apt-add-repository ppa:arnaud-hartmann/glances-stable
$ sudo apt-get update
$ sudo apt-get install glances

快捷键

 h : 显示帮助信息
 q : 离开程序退出
 c :按照 CPU 实时负载对系统进程进行排序
 m :按照内存使用状况对系统进程排序
 i:按照 I/O 使用状况对系统进程排序
 p: 按照进程名称排序
 d : 显示磁盘读写状况 
 w : 删除日志文件
 l :显示日志
 s: 显示传感器信息
 f : 显示系统信息
 1 :轮流显示每个 CPU 内核的使用情况(次选项仅仅使用在多核 CPU 系统

选项

 -b:显示网络连接速度 Byte/ 秒
 -B @IP|host :绑定服务器端 IP 地址或者主机名称
 -c @IP|host:连接 glances 服务器端
 -d:关闭磁盘 I/O 模块
 -e:显示传感器温度
 -f file:设置输出文件(格式是 HTML 或者 CSV)
 -m:关闭挂载的磁盘模块
 -n:关闭网络模块
 -p PORT:设置运行端口默认是 61209 
 -P password:设置客户端 / 服务器密码
 -s:设置 glances 运行模式为服务器
 -t sec:设置屏幕刷新的时间间隔,单位为秒,默认值为 2 秒,数值许可范围:1~32767 
 -h : 显示帮助信息

19、隐私错误

 解决:鼠标移动到当前页面任一空白处,键盘敲击thisisunsafe即可

20、查找顶级目录

# find ./ -type d
./
./a
./a/a1
./a/a2
./b
./c
./c/c1
./c/c1/c2
./c/c1/c2/c3

# find ./ -type d | awk -F'/' '{print NF-1" "$0}'  | sort | tail -1 | awk  -F "/" '{print $NF}'
c3

释意:NF-1:以/为分割符,从第一个/号左边开始数,比实际的层数多1,所以需要减1

21、内存插法(双活)

遇到不熟悉的服务器固件升级、内存插法去对应的官网下载指导手册和包

华硕服务器主板:

内存条插法推荐方式:(16 MImms表示16根内存条)

22、ntsysv命令查看服务自启动

23、生成大文件

dd if

dd if=/dev/zero of=rumenz.img bs=2G count=1

使用 truncate 命令缩小文件

 truncate -s 1G rumenz.img

fallocate 创建大文件的速度是最快的

➜  shell_work fallocate --help

用法:
 fallocate [选项] <文件名>

为文件预分配空间或从文件回收空间。

选项:
 -c, --collapse-range 移除文件中的某个范围
 -d, --dig-holes      检测零并替换为空洞
 -i, --insert-range   insert a hole at range, shifting existing data
 -l, --length <数字>  范围操作的长度(字节数)
 -n, --keep-size      保持文件的显示大小
 -o, --offset <数字>  范围操作的偏移量(字节数)
 -p, --punch-hole     将某个范围替换为空洞(连带打开 -n)
 -z, --zero-range     清零并保证分配某个范围
 -x, --posix          use posix_fallocate(3) instead of fallocate(2)
 -v, --verbose        详尽模式

 -h, --help           display this help
 -V, --version        display version 

创建一个3g大文件

fallocate -l 3G ru.img

24、cat 查看文件内容不换行

cat __init__.py
import pymysql
pymysql.install_as_MySQLdb()root@arm:~/dockerfile/zjz_BBS/app01#

执行

unalias cat 

25、tldr 工具

tldr(Too Long; Didn’t Read)是一个社区开源的命令行实用工具,旨在为各种命令提供简明的使用说明

安装

sudo apt update
sudo apt install nodejs npm

sudo npm install -g tldr

使用

[root@node1 ~]# tldr find

  find

  在指定目录树下递归查找文件或目录。
  更多信息:https://manned.org/find.

  - 通过扩展名查找文件:
    find 指定目录 -name '*.ext'

  - 查找匹配多个路径或名称模式的文件:
    find 指定目录 -path '**/path/**/*.ext' -or -name '*pattern*'

  - 查找匹配指定名称的目录,不区分大小写:
    find 指定目录 -type d -iname '*lib*'

  - 查找匹配指定模式的文件,排除特定路径:
    find 指定目录 -name '*.py' -not -path '*/site-packages/*'

  - 查找符合指定大小范围的文件,将递归深度限制为 "1":
    find 指定目录 -maxdepth 1 -size +500k -size -10M

  - 对每个文件运行命令(在命令中使用 {} 代表当前文件):
    find 指定目录 -name '*.ext' -exec wc -l {} \;

  - 查找最近 7 天修改的文件:
    find 指定目录 -daystart -mtime -7

  - 查找空(0 字节)的文件并删除:
    find 指定目录 -type f -empty -delete

  

 

 

 

 

 

 

 

 

 

 

 


posted @ 2019-11-18 19:46  凡人半睁眼  阅读(367)  评论(0编辑  收藏  举报