前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【整理】Linux Shell 命令速查表 三十条实用Shell 命令

【整理】Linux Shell 命令速查表 三十条实用Shell 命令

作者头像
huofo
发布2022-03-17 08:35:20
4420
发布2022-03-17 08:35:20
举报
文章被收录于专栏:huofo's blog

1. 日志

1. 统计独立 IP 数量

代码语言:javascript
复制
awk '{print $1}' access.log | sort -n | uniq | wc -l

2. 查看某一时间段的 IP 访问量

代码语言:javascript
复制
grep "05/Apr/2019:0[1-9]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l

3. 查看访问最频繁的前 100IP

代码语言:javascript
复制
awk '{print $1}' access.log | sort -n | uniq -c | sort -rn | head -n 100

4. 查看访问 100 次以上的 IP

代码语言:javascript
复制
awk '{print $1}' access.log | sort -n | uniq -c | awk '{if($1 > 100) print $0}' | sort -rn

5. 查询某个 IP 的详细访问情况,按访问频率排序

代码语言:javascript
复制
grep '127.0.0.1' access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -n 100

6. 统计 URL 访问量排行

代码语言:javascript
复制
awk '{url[$7]++} END {for (k in url) {print url[k],k}}' nginx.access.log | sort -rn

使用 awkNginx 日志中逐行统计 URL 访问计数,然后使用 sort 对结果进行排名

7. 访问最频繁的 URL

代码语言:javascript
复制
awk '{print $7}' access.log | sort | uniq -c | sort -rn | head -n 100

或者

代码语言:javascript
复制
awk '{url[$7]++} END {for (k in url) {print url[k],k}}' access.log | sort -rn | head -n 100

8. 除 .php 以外,访问最频繁的 URL

代码语言:javascript
复制
grep -v ".php" access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -n 100

9. URL 访问次数超过 100 次的页面

代码语言:javascript
复制
awk '{print $7}' access.log | sort -n | uniq -c | sort -rn | head -n 100

10. 查看最近 1000 条记录,访问量最高的 URL

代码语言:javascript
复制
tail -1000 access.log | awk '{print $7}' | sort | uniq -c | sort -rn | less

11. 统计每秒的请求数,TOP100 的时间点 (精确到秒)

代码语言:javascript
复制
awk '{print $4}' access.log | cut -c 14-21 | sort | uniq -c | sort -rn | head -n 100

12. 统计每小时的请求数,TOP100 的时间点 (精确到小时)

代码语言:javascript
复制
awk '{print $4}' access.log | cut -c 14-15 | sort | uniq -c | sort -rn | head -n 100

13. 列出传输时间超过 3 秒的页面,并统计其出现的次数,显示前 20

Nginx 日志最后一个字段加入 $request_time

代码语言:javascript
复制
cat access.log | awk '($NF > 3){print $7}' | sort -n | uniq -c | sort -rn | head -20

14. 列出 PHP 页面请求时间超过 3 秒的页面,并统计其出现的次数,显示前 100

Nginx 日志最后一个字段加入 $request_time

代码语言:javascript
复制
cat access.log | awk '($NF > 1 && $7~/\.php/){print $7}' | sort -n | uniq -c | sort -rn | head -100

2. 文件

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

代码语言:javascript
复制
find $PWD -maxdepth 1 | xargs ls -ld

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

代码语言:javascript
复制
find $PWD | xargs ls -ld

17. 在每行记录的开头加上当前路径

代码语言:javascript
复制
ls | sed "s:^:`pwd`/:"

18. 删除指定时间之前的文件

代码语言:javascript
复制
find /path/to/dir -mtime +30 -type f | xargs rm -f
  • /path/to/dir 设置查找的目录
  • --mtime +30 设置时间为 30 天前
  • -type f 指定查找的类型为文件

19. 删除文件前/后N行

删除了前 2 行 先用 tail 把从第 3 行开始的所有内容输出到新文件,然后再重命名文件

代码语言:javascript
复制
tail -n +3 old_file > new_file 
mv new_file old_file

仅保留最后 3

tail -n -3 old_file > new_file mv new_file old_file 如果写定时任务,那可放置到一行

代码语言:javascript
复制
0 0 * * * tail -n -3 old_file > new_file && mv -f new_file old_file

3. 网络

20. 统计网卡的流量数据

代码语言:javascript
复制
# sar -n DEV 1 5

    
平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:        lo      2.21      2.21      0.18      0.18      0.00      0.00      0.00
平均时间:      eth0      4.62      3.82      0.37      1.90      0.00      0.00      0.00

命令中 1 5 表示每一秒钟取 1 次值,一共取 5

命令执行后会返回列出每个网卡这 5 次取值的平均数据,根据实际情况来确定带宽跑满的网卡名称,默认情况下 eth0 为内网网卡,eth1 为外网网卡。

22. 查询占用端口的进程/程序

代码语言:javascript
复制
# netstat -tunlp | grep ':80'
    
tcp        0      0 0.0.0.0:80      0.0.0.0:*    LISTEN      26655/nginx

或者使用 lsof 命令:

代码语言:javascript
复制
lsof -i :80

23. 查看流量占用情况

代码语言:javascript
复制
iftop -P

24. 查看程序流量排行

代码语言:javascript
复制
nethogs

4. 进程/程序

25. grep 程序并杀死

代码语言:javascript
复制
ps -ef | grep process_name | grep -v grep | cut -c 9-15 | xargs kill -s 9

26. 查看指定进程的具体占用内存

代码语言:javascript
复制
# cat /proc/[pid]/status

Name:    memcached
State:    S (sleeping)
Tgid:    1954
Pid:    1954
PPid:    1
TracerPid:    0
Uid:    500    500    500    500
Gid:    500    500    500    500
Utrace:    0
FDSize:    128
Groups:
VmPeak:      413792 kB
VmSize:      360544 kB
VmLck:           0 kB
VmHWM:       29704 kB
VmRSS:       29376 kB
VmData:      341768 kB
VmStk:        2132 kB
VmExe:          80 kB
VmLib:        2152 kB
VmPTE:         164 kB
VmSwap:           0 kB
Threads:    6
...

其中,VmRSS 项表示实际占用内存值 或者,用 ps 命令

代码语言:javascript
复制
# ps aux | grep <pid>
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
jxcdn     1954  0.0  0.1 360544 29376 ?        Ssl  Apr13   7:56 memcached -m 128 -p 11211

其中 RSS 列表示实际使用内存(单位: KB)。可以看出,与 /proc/[pid]/status 的值是一致的

5. 脚本

27. 获取脚本文件所在目录

代码语言:javascript
复制
script_path=$(cd `dirname $0`; pwd)

28. 获取脚本文件的上级目录

代码语言:javascript
复制
script_path=$(cd `dirname $0`; pwd)
root_path=$(cd `dirname "$script_path"`; pwd)

29. 格式化当前时间

代码语言:javascript
复制
datetime=$(date +"%Y-%m-%d %H:%M:%S")

30. 去除文本中的颜色转义符

代码语言:javascript
复制
sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.xjisme.com/archives/2557.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 日志
    • 1. 统计独立 IP 数量
      • 2. 查看某一时间段的 IP 访问量
        • 3. 查看访问最频繁的前 100 个 IP
          • 4. 查看访问 100 次以上的 IP
            • 5. 查询某个 IP 的详细访问情况,按访问频率排序
              • 6. 统计 URL 访问量排行
                • 7. 访问最频繁的 URL
                  • 8. 除 .php 以外,访问最频繁的 URL
                    • 9. URL 访问次数超过 100 次的页面
                      • 10. 查看最近 1000 条记录,访问量最高的 URL
                        • 11. 统计每秒的请求数,TOP100 的时间点 (精确到秒)
                          • 12. 统计每小时的请求数,TOP100 的时间点 (精确到小时)
                            • 13. 列出传输时间超过 3 秒的页面,并统计其出现的次数,显示前 20 条
                              • 14. 列出 PHP 页面请求时间超过 3 秒的页面,并统计其出现的次数,显示前 100 条
                              • 2. 文件
                                • 15. 列出当前目录下的所有文件(包括隐藏文件)的绝对路径
                                  • 16. 递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径
                                    • 17. 在每行记录的开头加上当前路径
                                      • 18. 删除指定时间之前的文件
                                        • 19. 删除文件前/后N行
                                        • 3. 网络
                                          • 20. 统计网卡的流量数据
                                            • 22. 查询占用端口的进程/程序
                                              • 23. 查看流量占用情况
                                                • 24. 查看程序流量排行
                                                • 4. 进程/程序
                                                  • 25. grep 程序并杀死
                                                    • 26. 查看指定进程的具体占用内存
                                                    • 5. 脚本
                                                      • 27. 获取脚本文件所在目录
                                                        • 28. 获取脚本文件的上级目录
                                                          • 29. 格式化当前时间
                                                            • 30. 去除文本中的颜色转义符
                                                            领券
                                                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档