linux命令、技巧

1.查找最近修改的文件

查找最近1-3天内修改的文件,最后加 |grep .php,查找最近3天修改的php文件

find ./ -mtime 0 -o -mtime 1 -o -mtime 2 -o -mtime 3

2.touch修改文件时间

touch -r 参照文件 要修改的文件       //把要修改的文件时间修改为参照文件
touch -t 0507150202 xxx		//将xxx日期改为2005/07/15 2:02

3.tar排除打包

打包admin_new  排除下面的data目录

tar zcvf /var/tmp/test.tgz --exclude=admin_new/data admin_new/*
//				     要排除的文件夹   主目录

4.创建用户同时指定组

addgroup 组名 		//创建组
adduser -g 组名 用户名 -s /bin/sh	//创建用户指定到组,并且指定shell

5.搜索文件,并删除查找到的文件

find /home/hello/public_html/upload/ -name *.php | xargs rm -rf
或者
find ./ -name "*.url" -exec rm -rf {} \;

find 用xargs来处理带空格的文件名文件(结果里有空格导致xargs处理失败)

find ./ -name "*.jpg" -print0 | xargs -0 tar zcvf pp.tgz

6.nmap扫描内网活动主机

nmap -sP 192.168.10.1/24

7.VPN环境下报错

nmap -v -A -PN -sT localhost 192.168.1.1

8.查找目录下的所有文件中是否含有某个字符串

查找目录下的所有文件中是否含有某个字符串 
find .|xargs grep -ri "IBM" 
查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 
find .|xargs grep -ri "IBM" -l 

find ./ -name "*.php" |xargs grep -ri "eval" -l

9.unzip批量解压当前目录下的所有.zip文件,并放到以当前文件名命名的目录下面:

ls *.zip | awk -F'.zip' '{print "unzip \""$0"\" -d \""$1"\""}' | sh 

10.vi批量替换字符串

a. 文件内全部替换:

%s#abc#def#g(用def替换文件中所有的abc)

例如把一个文本文件里面的“linuxidc.com”全部替换成“linuxidc.net”:

:%s#linuxidc.com#xwen.net#g (如文件内有#,可用/替换,比如:%s/linuxidc.com/xwen.net/g)

b. 文件内局部替换:

把10行到50行内的“abc”全部替换成“def”

:10,50s#abc#def#g(如文件内有#,可用/替换,:%s/abc/def/g)

以上命令如果在g后面再加上c,则会在替换之前显示提示符给用户确认(conform)是否需要替换。 比如

:%s#linuxidc.com#linuxidc.net#gc

11.rsync简单同步(将本地/etc/apache2同步到remoteIP的/etc下,ssh端口是65421)

rsync -avz /etc/apache2 --progress '-e ssh -p 65421' root@remoteIP:/etc/

11.1.带进度条的拷贝文件

rsync -av --progress /files/data.tgz /mnt/

12.tcpdump抓取icmp(监控谁在ping我)

tcpdump -i eth0 icmp

13.查看当前网络详细链接/流量

#debian/ubuntu
apt-get install build-essential libncurses5-dev libpcap-dev
#centos
yum install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses*
git clone https://github.com/raboof/nethogs
cd nethogs/
make
make install
nethogs
上一篇
下一篇