Linux 常用命令学习

查找文件使用命令

  • 查找目录下面大小超过5M的文件

    1
    $ find /home/ -size +5M
  • 查找目录下100天之前修改过的文件

    1
    $ find /home/ -mtime +100
  • 查找目录下60天未被访问过的文件

    1
    $ find /home/ \! atime -60
  • 查找目录下面文件“core“,如果发现无需提示直接删除。
    1
    2
    3
    4
    5
    6
    $ find / -name core -exec rm {} \

    # 查找排除某一个文件然后进行删除
    $ find / -type f ! -name "test" -exec rm {} \;
    $ find ./ -mtime +3 -name "*.log" -exec rm -rf {} \;
    $ find /tmp -mtime +30 -type f -name "*.sh[ab]" -exec rm -f {} \;

在一个目录中保留最近30天的文件,30天前的文件自动删除

1
$ find /tmp -mtime +30 -type f -name "*.sh[ab]" -exec rm -f {} \;
  • /tmp –设置查找的目录;
  • -mtime +30 –设置时间为30天前;
  • -type f –设置查找的类型为文件;
  • -name *.sh[ab] –设置文件名称中包含sha或者shb;
  • -exec rm -f –查找完毕后执行删除操作;
  • 提示:将此命令写入crontab后即可自动完成查找并删除的工作
  • 显示目录文件的文件名和它们的拥有者
    1
    $ ll | awk '{print $3,"owns",$9}'

显示你的系统上PCI总线和附加设备的信息。指定-v,-vv或-vvv来获取越来越详细的输出

  • lspci 安装
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $ sudo yum whatprovides */lspci
    pciutils-3.5.1-2.el7.x86_64 : PCI bus related utilities
    Repo : base
    Matched from:
    Filename : /usr/sbin/lspci



    pciutils-3.5.1-3.el7.x86_64 : PCI bus related utilities
    Repo : base
    Matched from:
    Filename : /usr/sbin/lspci

    $ sudo yum install pciutils

    $ lspci -vvvvv

lspci 更多详细使用

  • 查看当前的Linux服务器的运行级别

    1
    2
    3
    4
    5
    6
    $ who -r
    $ who -b
    # 查看系统最后一次启动的时间

    $ last reboot
    # 查看系统历史启动的时间
  • 查看系统运行了多长时间

    1
    2
    3
    $ cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'
    $ w
    $ uptime
  • 查看系统启动的日期

    1
    $ date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
  • 查找目录下文件内容没有包括“nginx”、“msgType”字符串的文件

    1
    2
    $ grep -r -l -v "nginx" /data/
    $ grep -r -v "msgType" /data/
  • 查找目录下文件内容包括”nginx”字符串的文件。

    1
    2
    3
    $ grep -r "nginx" /data/                                             会把"nginx"字符串所在这行的内容显示出来
    $ grep -o “nginx” /data/
    $ grep -r -l "nginx" /data/ 不显示"nginx"字符串所在行,是显示文件
  • cat使用

    1
    2
    3
    4
    5
    6
    7
    8
    $ cat sentry.conf.py |grep -v "^#"          查看配置文件不包括注释内容
    $ cat -b `find /var/log/httpd/ -cmin -60 -print |sed "1d"`\ |awk '{print $2}'|sort |uniq -c |sort -n -k 1 -r |head -n 1 统计当前目录下日志文件里面I平访问量最多的一个IP

    # 查看某一个时间段的IP地址访问排名前10
    $ cat nginx_access.log|grep '+0800'|awk '{split($1,array,"[");if(array[2]>="25/Jul/2017:14:17:30" && array[2]<="25/Jul/2017:20:17:30"){print $0}}'|awk -F"^`" && "-" && "^`" '{print $1}'|sort|uniq -c|sort -n -k 1 -r|head -n 10

    # 统计当前日志ip访问前10
    $ cat nginx_access.log |awk -F"^" '{print $1}'|sort|uniq -c|sort -n -k 1 -r|head -n 10
  • 获取IP地址通用

    1
    $ ifconfig |sed -n 2p |awk '{print $1$2}'|sed 's/^.*[^0-9]\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)$/\1\.\2\.\3\.\4/g'
  • curl使用

    1
    2
    3
    4
    5
    6
    7
    8
    # 监控网页的响应时间
    $ curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://www.baidu.com"

    # 监控站点可用性
    $ curl -o /dev/null -s -w %{http_code} "http://www.baidu.com"

    # 开启gzip请求
    $ curl -I http://www.sina.com.cn/ -H Accept-Encoding:gzip,defalte
  • 每10秒显示一次复制的大小

    1
    $ watch -n 10 du -sh /root
  • 统计目录(包括子目录)下面文件个数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ find ./ -type f | wc -l

    # 用find命令查找当前目录下是文件类型的文件,然后用wc来计数
    $ ls -lR|grep "^-"|wc -l
    # ls命令加R参数,列出下级子目录,使用grep命令过滤以“-”开头的,如果是目录就改成“^d”,后面用wc计数。

    $ find ./ -name "*.*" |xargs cat|grep -v ^$|wc -l
    $ find . \( ! -name '*.png' ! -name '*.gif' ! -name '*.jpg' ! -name '*.swf' \) -type f |wc -l

    # 统计目录下所有文件的的行数,去掉空行
    $ find ./ -name "*.*" |xargs cat|wc -l
    $ find . \( ! -name '*.png' ! -name '*.gif' ! -name '*.jpg' ! -name '*.swf' \) -type f |xargs cat|wc -l
  • 查看系统tcp连接中各个状态的连接数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

    # 输出每个IP的连接数,以及总的各个状态的连接数
    $ netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'

    # 统计当前tcp/ip链接数排名前10的IP
    $ netstat -n|awk '/^tcp/ {print $5}'|awk -F':' '{print $1}'|sort|uniq -c|sort -n -k 1 -r|head -n 10

    # 利用grep统计当前文件里面所有的IP地址
    $ grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" nginx_access.log

查看系统当前进程打开的文件句柄数,按照最大的进行排序

1
$ lsof -n | awk '{print $2}' | sort | uniq -c | sort -nr | more
  • ping命令显示时间以及日期

    1
    $ ping www.sina.com.cn -i 3 | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()) } ' > /opt/sina.log &
  • ssh 远程执行命令

    1
    2
    3
    4
    5
    6
    7
    $ ssh user@'ip' "date"
    # 单个命令

    $ ssh user@'ip' "ls -lstrh /opt; uname -a"

    # 运行一个命令
    $ for i in ${ip};do echo ${i}; ssh otoman@${i} "sudo systemctl restart crond";done
坚持原创技术分享,您的支持将鼓励我继续创作!
0%