探测活动主机的代码linux,常用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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值