常用Linux命令 备忘录

1. 删除0字节文件:

    find -type f -size 0 -exec rm -rf {} \;                //在exec中,{}表示find到的文件,\;表示结束


2. 查看进程

  按内存从大到小排列:ps -e  -o "%C  : %p : %z : %a"|sort -k5 -nr

 按cpu利用率从大到小排列:ps -e  -o "%C  : %p : %z : %a"|sort  -nr


3. 检查SCSI硬盘Cache是否打开:

    sdparm -g WCE /dev/sda |grep WCE |awk '{print $2}'


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

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


5. 查看TCP连接数:

    netstat -na | grep "$ip:80" | wc -l


6. 查看当前有哪些进程在运行:

   ps -A


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

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


8. 查看CPU的数量:

    cat /proc/cpuinfo |grep -c processor


9. 查看CPU负载:

    cat /proc/loadavg


10. 查看CPU信息:

    mpstat 1 1                //检查%idle是否过低


11. 查看内存空间:

    free                //检查free值是否过低,也可以用cat /proc/meminfo


12. 查看swap空间:

    free                //检查swap used值是否过高  如果swap used值过高,进一步检查swap动作是否频繁

    vmstat 1 5                //观察si和so值是否较大


13. 查看磁盘空间:

    df -h        //检查是否有分区使用率(Use%)过高(比如超过90%)  如发现某个分区空间接近用尽

    du -cks * | sort -rn | head -n 10              //进入分区的挂载点,找出占用空间最多的文件或目录


14. 查看磁盘I/O负载:

    iostat -x 1 2                //检查I/O使用率(%util)是否超过100%


15. 查看网络负载:

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


16. 网络错误:

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


17. 网络连接数目:

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


18. 查看进程总数:

    ps aux | wc -l                //检查进程个数是否正常


19. 输出给定时间间隔的服务器的状态值

    vmstat 3 5                //第一个参数:采样间隔,单位是秒;第二个参数:采样数量


20. 实时进程查看:

    top -id 1                //观察是否有异常进程出现


21. 网络状态、DNS、网关信息:

    netstat  -a                //查看网络状态

    route  -n                //查看网关信息

    cat /etc/resolvconf/resolv.conf.d/original                //DNS(Ubuntu)


22. 登陆用户数:

    who | wc -l                //查看登录用户数,也可以用命令:uptime


23. 系统日志:

    grep -i error /var/log/syslog                //通过搜寻异常关键字,检查是否有异常错误记录
    grep -i fail /var/log/syslog
    egrep -i 'error|warn' /var/log/syslog


24. 系统启动信息日志:

    dmesg | tail -f                //检查最近一次开机的异常错误记录


25. 打开文件数目:

    lsof | wc -l                //检查打开文件总数


26. 查看80端口进程:

    lsof -i :80|grep -v "ID"


27. 查找僵死进程:

    ps -eal | awk '{ if ($2 == "Z") {print $4}}'


28.查看有多少个活动的php-cgi进程

    netstat -anp | grep php-cgi | grep ^tcp | wc -l

29. 一次创建多个目录

    mkdir -p /home/ggf/shell {test1,test2,test3}


30. 快速备份一个文件

    cp file_name{,.bkp}                //重命名一个文件:mv a.txt   b.txt


31. 创建空文件或清空一个现有文件

    > test.txt


32. 显示剩余内存

    free -m | grep cache | awk '/[0-9]/{ print $4" MB" }'


33. 获取test.txt文件中第50-60行内容

    < test.txt sed -n '50,60p'


34. 搜索在30天内被创建或者修改过的文件

    find /usr/bin -type f -mtime -30 

    find /usr/bin -type f -amin -30        // 搜索出30分钟内被访问过的文件


35. 搜索以a-z结尾的行,行尾搜索$:

    grep -n '[a-z]$' 123.txt 


36. 查看当前目录下文件的个数:

    ls -al |grep "^-"|wc -l


37. 显示日志最新内容(不断刷新显示最新日志):

    tail -n 10 -f /var/log/syslog.log


38. 清除文件内容:

    cat /dev/null > /home/users/example/aa.log


39. 使用base64编码 input.txt文件并输出到input.b64:

    openssl base64 -e -in input.txt -out input.b64


40. 使用base64 编码/解码字符串:

     编码:echo -n '12345ssdlh' | openssl base64 -e

     解码:echo 'MTIzNDVzc2RsaA==' | openssl base64 -d


41. 显示所有22端口(ssh)连接:

    netstat -nt |grep :22  |awk '{print $5}' |sort  |uniq -c


42. 删除当前目录下所有以.tmp为后缀名的文件:

    find  .-type f -name "*.tmp"  -delete


43. MD5和SHA校验:

     md5sum  filename

     shasum   filename


44. 一组查询硬件信息的命令:

    lscpu: 用于查询CPU信息

    lshw: 显示硬件信息表(需要root权限,最好输出到文件而不是终端)

    hwinfo: 显示硬件信息(debug info,最好输出到文件。否则会像在 / 目录执行tree命令并输出到终端一样悲催)

    lspci: PCI总线及设备信息

    lsblk: 列出块设备信息

    lsusb: 列出USB总线信息

    lsscsi: 列出SCSI设备信息


45. 获得当前目录下文件的 md5指纹:

    find . -type f -exec md5sum {} \; > sum.md5


46. 查看端口-进程 的详细情况:

    lsof -Pan -i tcp -i udp


47. 猜测目标主机使用的操作系统(使用网络扫描工具 nmap):

    nmap -O --osscan-guess www.ifeng.com                //需要root权限


48. 扫描主机网络端口:

     nmap -sS 61.18.85.17                //需要root权限,扫描主机TCP端口开放情况

     nmap -sU 61.18.85.17                //需要root权限,扫描主机UDP端口开放情况

     nmap -sTU localhost                //检查本机(localhost)开放的端口


49. 探测域中的主机是否在线:

     nmap  -sP    192.168.1.0/24                //使用ping命令扫描,打印出对扫描做出响应的主机

     nmap  -sL    192.168.1.0/24               //列出指定网域上的每台主机,不发送任何报文到目标主机


50. Ubuntu12.04系统服务管理:

     initctl  list  | grep start                //查看系统当前运行状态为start的服务


51. 粉碎一个名为test.txt的文件:

    shred –u test.txt                //用随机的字符码重复覆盖文件,这条命令的功能适合实现文件粉碎的功效

                                                              //此命令包含在GNU core utilities软件包中。    参数 -u,--remove  覆盖后截断并删除文件


52. 安全删除工具wipe:

    删除文件:wipe file.txt
    删除目录:wipe -r /home/user/test/
    删除分区:wipe /dev/sdb1


53.快速删除海量文件--使用rsync:

    rsync --delete-before -a -H -v --progress --stats/tmp/test/log/     //快速删除海量日志的一个方法(rsync用的的替换原理,删除速度快)

                                                                                                                 //-delete-before 接收者在传输之前进行删除操作

                                                                                                                 //-a 归档模式,表示以递归方式传输文件,并保持所有文件属性

                                                                                                                 //-H 保持硬连接的文件

                                                                                                                 //-v 详细输出模式

                                                                                                                 //-progress 在传输时显示传输过程

                                                                                                                 //-stats 给出某些文件的传输状态


54. 关于软件包的一组命令:

    dpkg -L apt                //查看已安装的文件清单

    dpkg -S /usr/bin/apt-get                //查找apt-get属于哪个包

    dpkg-reconfigure  apt                //重新配置apt包

    apt-cache depends apt                //查找apt包的依赖包

    apt-cache rdepends apt                //查找依赖apt包的软件包


55. 使用最多的十个命令:

    history | sed -e 's/^sudo //' | awk '{print $2}' | sort |uniq -c |sort -rn | head                //运行过的命令会被Ubuntu保存到~.bash_history

                                                                                                                        //uniq命令可以查出或删除文件中相邻的重复行,通常与sort一起使用


56. 一组文件相关的命令:

    切割及合并:

        split  -b  1MB  -d  mysql.log  mysql-log_                                     //以1MB为单位分割mysql.log文件,保存为以mysql-log_xx 为文件名的文件集

        split -l 1000 syslog.log syslog_                                                   //以一千行为一个单位分割syslog.log日志文件,保存为syslog_xx系列文件集

        cat  mysql-log_00  mysql-log_01  mysql-log_02 > mysql-log     //合并分割的文件


    替换字符:

        cat file | tr p  P                                                                               //单字符替换

        cat file | tr [a-z] [A-Z]                                                                     //小写字母变大写字母


    提取文本:

        cut -d ' ' -f1,3 file                                                             //提取第一和第三字段的文本
        cut -d ' ' -f1-3 file                                                             //提取第二到第四字段的文本


    文本排序:

       sort -n file.txt   //按数字进行排序


   为孤儿文件找爸爸:

       find .  -type f  -nouser  -exec chown  username {} \;     // 在当前目录下,将无主文件的user改为username


    查找特殊文件:

       find . -type d -perm -1000 -print        //在当前目录下查找t位有效的文件

        find . -type f -perm -4000 -print         //在当前目录下查找查找suid位有效的文件

        find . -type f -perm -2000 -print         //在当前目录下查找sgid位有效的文件

        find  /dev  -nogroup -nouser  -print   //查找无主文件

            


57.



58.



59.



60.






注:

        重要原则:

                        Type less, accomplish more (少打多做)

                        DRY, don't repeat yourself (不要重复你自己)

                        Care about your tool (关心你的工具)




附:

        学习命令每天都应该登录的网站:http://commandlinefu.cn/



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

光明矢

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

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

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

打赏作者

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

抵扣说明:

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

余额充值