栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux 常用命令小结

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux 常用命令小结

1、查看服务器的型号

dmidecode | grep "Product Name"

2、查看物理CPU个数

cat /proc/cpuinfo |grep "physical"|sort|uniq -c

3、查看内存插槽情况

dmidecode |grep -P -A5 "Memorys+Device"|grep Size|grep -v Range

4、获取IP方法

ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)/(.*)/, "\1", "g", $2)}'
ifconfig | sed '/.*inet addr:/!d;s///;s/ .*//' |grep -v '127.0.0.1' |sed -n '1p'
ifconfig | sed '/.*inet /!d;s///;s/ .*//' |grep -v "127.0.0.1" |sed -n "1p"

5、同时匹配多个条件(与模式、或模式)

#同时匹配ABC 和 123
sed -n '/ABC/{/123/p}'        
awk '/ABC/&&/123/{ print $0 }'  
grep -E '(ABC.*123|123.*ABC)'    

#匹配ABC 或 123:
sed -n '/(ABC|123)/p'
awk '/ABC/||/123/{ print $0 }'
grep -E '(ABC|123)' 或 egrep 'ABC|123'

6、备份本地数据(带时间)

tar zcvf (备份后文件名)_$(date +%F).tar.gz /(备份目录)
tar zcvf (备份后文件名)_$(date -Iseconds).tar.gz /(备份目录)

7、创建100个文件

for i in `echo {100..200}`;do touch $i; done

8、按照文件大小反向查看跟目录 

du -sh /* | sort -nr | more  或者 ls -lSr

9、按照文件第五列的数值反向排列

ll |sort -k5 -nr

10、关闭登陆了系统的某个用户: 

ps aux | grep "用户名",用kill关闭进程

11、同步授时中心的时间:  

0 0 * * * /usr/sbin/ntpdate asia.pool.ntp.org >> /var/log/ntpdate.log

12、查看分区格式:

df -Th

13、查看/dev/sda1的文件系统类型: 

mount --guess-fstype /dev/sda1

14、快速格式化磁盘

mkfs.ext4  -T largefile /dev/xxx

15、ext4格式化磁盘/dev/sdc: 

mkfs.ext4 -i 32768 /dev/sdc

16、查看data目录下大于30M的文件:

find /data -type f -size +30M -print0 |xargs -0 du -sh

17、删除/var/lib/docker/containers/目录下文件名包含‘-json.log’的空文件:

find /var/lib/docker/containers/ -type f -size 0 -name *-json.log* |xargs rm -f

18、nginx配置每天单独生成一个日志文件

ErrorLog "|rotatelogs /home/var/logs/error_log%Y%m%d.log 86400 480"

19、用户添加环境变量,个性化设置

echo 'export PATH=$PATH:/usr/local/bin' >> $HOME/.bashrc

20、find 命令忽略某个或多个子目录的方法:

#单个目录
find / -path "/dir1" -prune -o -print

## 以下是指定搜索/home/carryf目录下的所有文件,但是会忽略/home/carryf/astetc的路径:
find /home/carryf -path "/home/carryf/astetc" -prune -o -type f -print1.
 
## 如果按照文件名来搜索则为:
find /home/carryf -path "/home/carryf/astetc" -prune -o -type f -name "cdr_*.conf" -print1.
 
## 如果要忽略两个以上的路径如何处理?
find / -type f ! -path "/data" ! -path "/data1/" -size +50M -print0 |xargs -0 du -sh
find /home/carryf ( -path "/home/carryf/astetc" -o -path "/home/carryf/etc" ) -prune -o -type f  -print
find /home/carryf ( -path "/home/carryf/astetc" -o -path "/home/carryf/etc" ) -prune -o -type f  -name "cdr_*.conf" -print1.2.
注意( 和) 前后都有空格。
 
## 查找某个文件包含内容,下面这个语句可以解决目录带空格的问题:
find ./ -name "MySQL*" -print0  |xargs -0 grep "SELECt lead_id FROM vicidial_list where vendor_lead_code"1.

## 如果目录不带空格,那么可以如下面的形式执行:
find ./ -name "mysql*"  |xargs  grep "SELECt lead_id FROM vicidial_list where vendor_lead_code"1.

21、测试网页返回值:

curl -o /dev/null -s -w %{http_code} www.linux.com

22、查看占用内存最大的10个进程  

ps -aux | sort -k4nr | head -n 10

23、查看服务器各种连接状态:

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

24、查看服务器并发连接数:

netstat -nat|grep ESTABLISHED|wc -l

25、rsync指定端口同步数据

rsync -avzP  -e "ssh -p 2222" root@192.168.5.100:/data/webdata/clientOut* /data/web_log/

26、对连接的IP按连接数量进行排序

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

27、查看TCP连接状态

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn 
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}' 
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"t",state[key]}' 
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"t",arr[k]}' 
netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn 
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

28、查看80端口连接数最多的20个IP

netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20 
netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A,i}' |sort -rn|head -n20

29、用tcpdump嗅探80端口的访问看看谁最高

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20

30、查找较多time_wait连接

netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

31、找查较多的SYN连接

netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

32、查看所有用户定时任务

for u in `cat /etc/passwd | cut -d":" -f1`;do crontab -l -u $u;done

50、注释包含 test字符串 的行

sed -i '/ test / s/^(.*)$/#1/g' 

51、计算一列的所有值的总和  

history | awk '{print $1}' |awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'
history | awk '{print $1}' | awk '{sum+=$1}END{print sum}'

52、筛选出指定的时间段的日志

#方法1:sed
sed -n ‘/2017-11-17 09:[0-9][0-9]:[0-9][0-9]/,/2017-11-17 16:[0-9][0-9]:[0-9][0-9]/p’  logfile
cat logfile | egrep "01/Apr/2014" | sed  -n '/21:31:36/,/21:50:08/p'

#方法二:awk
cat logfile | egrep "01/Apr/2014" | awk -F':' '$2 = 21 && $3 >= 30 && $3 <= 50'

53、输出a.txt的一列变为一行

sed ":a;N;s/n//g;ta" a.txt

54、取文档中第一列a,对应第二列的内容

awk '$1=="a" {print $2}' file

55、合并A,B文件同行内容

awk '{a[FNR]=a[FNR]""$0}END{for(i=1;i 
   

56、shell计算百分比

awk 'BEGIN{printf "%.8f%n",'${success_count}'/'${interface_count_total}'*100}'

57、Shell命令行for循环案例 

for i in `ls test`; do touch test/${i}/123; done

58、计算一列的所有值的总和  

history | awk '{print $1}' |awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'
history | awk '{print $1}' | awk '{sum+=$1}END{print sum}'

59、筛选出指定的时间段的日志

sed -n ‘/2017-11-17 09:[0-9][0-9]:[0-9][0-9]/,/2017-11-17 16:[0-9][0-9]:[0-9][0-9]/p’  logfile

60、输出a.txt的一列变为一行

sed ":a;N;s/n//g;ta" a.txt

61、取文档中第一列a,对应第二列的内容

awk '$1=="a" {print $2}' file

62、打印temp.txt文件中第二列字段为data并且第六列大于1000的所有行

awk '{if($2~/data/ && $6>1000)print}' temp.txt

63、打印test.txt文件中指定行以及下面9行的内容

sed -n '/^[program.*]$/,+9p' test.txt

64、在test.ini中搜索包含test中每行内容,以及指定行后9行内容,分别追加到以test每行内容命名的ini文件中

#!/bin/bash
while read line
do
echo $line
sed -n "/${line}/,+9p" test.ini > ${line}.ini
done < test

65、在a.txt的第88行插入文件b.txt

# 如果知道行号可以用下面的方法
sed -i '88 r b.file' a.file 
awk '1;NR==88{system("cat b.file")}' a.file > a.file

# 如果不知道行号,可以用正則匹配
sed -i '/regex/ r b.txt' a.txt     #regex是正则表达式,匹配后读入text.txt的内容在匹配内容之下;
sed  '/regex/ w b.txt' a.txt       #-w是写入命令,真实写入   
awk '/target/{system("cat b.file")}' a.file > c.file

101、查看root用户密码上次修改的时间: 

1》cat /var/log/secure |grep 'password changed'
2》chage -l root

102、iptables默认拒绝所有规则添加,以下 3 条就行 

iptables -P INPUT DROP 
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A INPUT -p tcp -s 127.0.0.1 -j ACCEPT

103、执行脚本,将标准输出和错误输出都丢进“黑洞” 

/bin/bash /data/scripts/script_name.sh >/dev/null 2>&1 &
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/320742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号