linux实用命令和工具整理

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

1、kill [信号代码] 进程ID

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

# kill -9 22761

2、与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

二、ssh实现端口转发

将发往本机(192.168.1.15)的9200端口访问转发到192.168.1.19的9200端口

#ssh -p 22 -C -f -N -g -L 9200:192.168.1.19:9200 ihavecar@192.168.1.19

记住:前提是先进行秘钥传输。

命令执行完后,访问192.168.1.15:9200端口则真实是访问192.168.1.19:9200端口。

三、查找80端口请求数最高的前20个IP

有时候业务的请求量突然上去了,那么这个时候我们可以查看下请求来源IP情况,如果是集中在少数IP上的,那么可能是存在攻击行为,我们使用防火墙就可以进行封禁。命令如下:

# netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20

查看tcp连接状态

指定查看80端口的tcp连接状态,有利于分析连接是否释放,或者攻击时进行状态分析。

# netstat -ant | awk '{print $6}'|sort | uniq -c|sort -rn

 

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

在很多运维的时候,我们发现CPU耗用较为严重,那么怎么样才能找出CPU消耗的进程排序呢?

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

六、windos没有改hosts没有权限

复制文件到桌面改完,再粘贴回去

七、xshell技巧

1、alt+shift+n  新建窗口

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

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

 

八、paste拼接命令

paste -d -s -file1 file2

选项的含义如下:

-d 指定不同于空格分隔符,如果不指定,默认用空格分割

-s 将每个文件合并成行而不是按行粘贴。

- 使用标准输入。例如ls -l | paste ,意即只在一列上显示输出

-s用法

# cat per1
ID897
ID666
ID982

# cat per2
P.Jones
S.Round
L.Clip

# paste per1 per2
ID897   P.Jones
ID666   S.Round
ID982   L.Clip
 
# paste -s per1 per2
ID897   ID666   ID982
P.Jones S.Round L.Clip

-d案例

paste file1.txt file2.txt 
12345	6789

paste -d "+" file1.txt file2.txt 
12345+6789

paste -d "" file1.txt file2.txt 
123456789

交叉合并
$ cat 123.txt 
aa
bb
cc
dd
$ cat 456.txt 
11
22
33
$ paste 123.txt 456.txt |tr "\t" "\n"
aa
11
bb
22
cc
33
dd

九、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 用于对数值的大小进行排序

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

十、comm对比命令

comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容 
comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容 
comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分

十 一、nl命令  输出的文件内容自动的加上行号!

# nl file1.txt 
     1	12345
     2	dfnj k
     3	sdn 
     4	sdklnf `:wq
     5	`

cat -n也能实现加行号,但是nl更专业,支持做比较多的显示设计。

#cat -n  file1.txt 
     1	12345
     2	dfnj k
     3	sdn 
     4	sdklnf `:wq
     5	`

十二、混合

1、删除0字节文件

find -type f -size 0 -exec rm -rf {} \;

2、查看进程按内存从大到小排列

PS -e -o "%C : %p : %z : %a"|sort -k5 -nr

3、按 CPU 利用率从大到小排列

ps -e -o "%C : %p : %z : %a"|sort -nr

4、打印 cache 里的URL

grep -r -a jpg /data/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'

5、查看 http 的并发请求数及其 TCP 连接状态:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

6、杀死mysql进程

ps aux |grep mysql |grep -v grep  |awk '{print $2}' |xargs kill -9 (从中了解到awk的用途)

killall -TERM mysqld

kill -9 `cat /usr/local/apache2/logs/httpd.pid`   试试查杀进程PID

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

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

8、如何在编写 SHELL 显示多个信息,用 EOF

cat << EOF
+--------------------------------------------------------------+
|       === Welcome to Tunoff services ===                |
+--------------------------------------------------------------+
EOF

9、for 的巧用(如给 MySQL 建软链接)

cd /usr/local/mysql/bin
for i in *
do ln /usr/local/mysql/bin/$i /usr/bin/$i
done

10、查看80端口建立连接

netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort

11、查看 Apache 的并发请求数及其 TCP 连接状态

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

12、因为同事要统计一下服务器下面所有的 jpg 的文件的大小,写了个 SHELL 给他来统计。原来用 xargs 实现,但他一次处理一部分。搞的有多个总和……,下面的命令就能解决。

find / -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'

CPU 的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。

13、 CPU负载

mpstat 1 1

检查 %idle 是否过低(比如小于5%)。

14、网络负载

sar -n DEV

检查网络流量(rxbyt/s, txbyt/s)是否过高

15、网络错误

netstat -i

检查是否有网络错误(drop fifo colls carrier),也可以用命令:# cat /proc/net/dev

16、网络连接数目

netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n

17、进程

top -id 1

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

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

19、清除僵死进程
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9

20、tcpdump 抓包,用来防止80端口被人攻击时可以分析数据

tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts

21、然后检查IP的重复数并从小到大排序 注意 “-t\ +0”   中间是两个空格

# less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\ +0

22、查看系统自启动的服务

chkconfig --list | awk '{if ($5=="3:on") print $1}'

23、kudzu 查看网卡型号

kudzu --probe --class=network

常用正则表达式

1.匹配中文字符的正则表达式: [\u4e00-\u9fa5]

2.匹配双字节字符(包括汉字在内):[^\x00-\xff]

3.匹配空白行的正则表达式:\n\s*\r

4.匹配 HTML 标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />

5.匹配首尾空白字符的正则表达式:^\s*|\s*$

7.匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*

8.匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

9.匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}

13.匹配ip地址:\d+\.\d+\.\d+\.\d+

14.匹配特定数字:

^[1-9]\d*$   //匹配正整数
^-[1-9]\d*$  //匹配负整数
^-?[1-9]\d*$  //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$  //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$  //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$  //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)

15.匹配特定符串:

^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串

16、层级关系

# find  .  *

# tree 

17、windows和mac互传文件(前提是两者有网线互通)

mac

python3 -m http.server

window

装一个fileserver

fileserver.exe   -port  端口   -path    路径 

18、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的主目录。

19、windos阻止广告弹窗

打开网络---->internet属性---->隐私------>启用弹出窗口阻止程序------>阻止级别设置为高

20、linux终端中启动 Visual Studio Code

# code .

21、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

22、格式化输出: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

23、查看各文件夹大小

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

24、通过内存使用率分类进程

ps aux | sort -rnk 4

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

yes | apt-get update。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少安在线锤人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值