学习啦>学习电脑>操作系统>Linux教程>

Linux系统有哪些常用的组合命令

加城分享

  命令是Linux系统的根基,而有时候单个命令不能实现复杂功能时候,我们可以用组合命令实现。下面由学习啦小编为大家整理了Linux系统组合命令的常见使用方式,希望对大家有帮助!

  Linux系统常用的组合命令说明

  Linux组合命令使用

  1,杀死某个执行某个程序的进程

  ps -ef | grep MultiThreadPrint.bin | awk '{ print $2; }' | xargs kill -9

  2,找出文本文件的记录中主键不重复的条数

  awk -F'|' '{print $1}' | sort | uniq | wc -l

  3,压缩文件时排除某些目录

  tar -czvf test.tar.gz test--exclude=test/data --exclude=test/dir

  4,定时全库导出Oracle的脚本,一度在oracle下创建定时任务,不能搞定环境变量的问题,后来在root用户下创建定时任务,再

  su - oracle -c “export outfile=`date +%Y%m%d_%H%M`;exp system/manager@testdb full=y file=wostore.db${outfile}.dmp;gzip *.dmp;",搞定问题

  5,HP-UX下计算Oracle链接数

  netstat -na | grep .1521 | wc -l

  6,给网卡增加绑定的IP

  ifconfig bond0:0 10.95.98.45 netmask 255.255.255.128 up

  7,服务器抓包

  tcpdump -i bond0 -s 0 port 9999 -w test.cap

  8,查询cpu占用率最高的Java线程

  a,设置环境变量允许产生core文件,ulimited -c 2048000000

  b,在日志文件中打印堆栈信息,kill -3 pid

  c,查询cpu占用率最高的线程ps h -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu

  d,将线程号转成16进制,在日志文件的堆栈信息中找到对应的线程的堆栈信息。

  8,查找CPU占用率最高的线程

  ps -eLf | sort -k 9,9

  9,从文件夹中找含有指定字符串的文件

  find ./ -name *.log | xargs grep "ERROR"

  10,查找文件大于10M的文件,并显示其文件大小

  find ./ -size +10240k -exec ls -l {} /;

  11,从文件某行截取到末尾

  awk 'n==1{print} $0~/-------------/{n=1}' yourfile

  grep -A 100 "\------" yourfile | grep -v "\-----"

  sed -n '/-------------/,$ p' yourfile

  Linux系统里常用的组合命令

  任务

  命令组合

  1

  删除0字节文件

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

  find . type f -size 0 -delete

  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

  sed在这个文里Root的一行,匹配Root一行,将no替换成yes。

  sed -i '/Root/s/no/yes/' /etc/ssh/sshd_config

  7

  如何杀掉mysql进程

  ps aux |grep mysql |grep -v grep |awk '{print $2}' |xargs kill -9

  killall -TERM mysqld

  kill -9 `cat /usr/local/apache2/logs/httpd.pid`

  8

  显示运行3级别开启的服务(从中了解到cut的用途,截取数据)

  ls /etc/rc3.d/S* |cut -c 15-

  9

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

  cat << EOF

  +--------------------------------------------------------------+

  | === Welcome to Tunoff services === |

  +--------------------------------------------------------------+

  EOF

  10

  for的用法(如给mysql建软链接)

  cd /usr/local/mysql/bin

  for i in *

  do ln /usr/local/mysql/bin/$i /usr/bin/$i

  done

  11

  取IP地址

  ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-

  ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' |cut -d: -f2 | awk '{ print $1}'

  12

  内存的大小

  free -m |grep "Mem" | awk '{print $2}'

  13

  查看80端口的连接,并排序

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

  14

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

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

  15

  统计一下服务器下面所有的jpg的文件的大小

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

  16

  CPU的数量

  cat /proc/cpuinfo |grep -c processor

  17

  CPU负载

  cat /proc/loadavg

  18

  CPU负载

  mpstat 1 1

  19

  内存空间

  free

  20

  磁盘空间

  df -h

  21

  如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录

  du -cks * | sort -rn | head -n 10

  22

  磁盘I/O负载

  iostat -x 1 2

  23

  网络负载

  sar -n DEV

  24

  网络错误

  netstat -i

  cat /proc/net/dev

  25

  网络连接数目

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

  26

  进程总数

  ps aux | wc -l

  27

  查看进程树

  ps aufx

  28

  可运行进程数目

  vmwtat 1 5

  29

  检查DNS Server工作是否正常,这里以61.139.2.69为例

  dig www.baidu.com @61.139.2.69

  30

  检查当前登录的用户个数

  who | wc -l

  31

  日志查看、搜索

  cat /var/log/rflogview/*errors

  grep -i error /var/log/messages

  grep -i fail /var/log/messages

  tail -f -n 2000 /var/log/messages

  32

  内核日志

  dmesg

  33

  时间

  date

  34

  已经打开的句柄数

  lsof | wc -l

  35

  网络抓包,直接输出摘要信息到文件。

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

  36

  然后检查IP的重复数 并从小到大排序 注意 "-t\ +0" 中间是两个空格,less命令的用法。

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

  37

  kudzu查看网卡型号

  kudzu --probe --class=network

    3973496