1)linux中find与rm实现查找并删除目录或文件
linux 下用find命令查找文件,rm命令删除文件。
删除指定目录下指定文件
find 要查找的目录名 -name .svn |xargs rm -rf
删除指定名称的文件或文件夹: find -type d | grep .svn$ | xargs rm -r
分析:
find -type d | grep .svn$ 通过此命令查找文件夹 过滤正则表达式中的目录
| xargs rm -r 执行删除指令
删除目录下所有exe文件
find . -name '*.exe' -type f -print -exec rm -rf {} ;
(1) "." 表示从当前目录开始递归查找
(2) “ -name '*.exe' "根据名称来查找,要查找所有以.exe结尾的文件夹或者文件
(3) " -type f "查找的类型为文件
(4) "-print" 输出查找的文件目录名
(5) 最主要的是是-exec了,-exec选项后边跟着一个所要执行的命令,表示将find出来的文件或目录执行该命令。
exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个,最后是一个分号
2)Linux系统硬盘读写测试(dd、hdparm)
方法一:用dd命令
Linux服务器想要知道硬盘的读写是否能满足服务的需要,我们可以使用Linux自带的dd命令测试硬盘的读写速度,方法如下:
登录SSH,输入以下命令即可,根据测试数据的大小等待返回的时间不同。
Linux硬盘写入速度:
# time dd if=/dev/zero of=/var/test bs=2k count=1000000
Linux硬盘读取速度:
# time dd if=/var/test of=/dev/null bs=2k
命令详解:
time用于计时
dd用于复制,从if读出,写到of。
if=/dev/zero不产生IO,因此可以用来测试纯写速度;同理of=/dev/null不产生IO,可以用来测试纯读速度。
bs是每次读或写的大小,即一个块的大小,count是读写块的数量,相乘就是读写数据量大小。
数据量越大越准确,多次测试取平均值。
以阿里云服务器为例测试硬盘写入速度,2G的数据量,88秒,23.2MB/s,速度虽比不上自己电脑的硬盘,但作为WEB服务器,够用了。
方法二:用hdparm命令
评估硬盘的读取效率(停止所有服务,多测几次)
root@ubuntu:~# hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 7540 MB in 2.00 seconds = 3771.50 MB/sec
root@ubuntu:~# hdparm -t /dev/sda
3)修改/sbin/nologin文件里的用户,可以实现限制登录
4)ntpdate <IP> 同步时间
5)因为linux中一个文件一个inode,硬链接除外,所以如果文件数目过多也会导致不能创建文件,清除方法如下:
for i in /*; do echo $i; find $i |wc -l|,输出为打印/下每个目录的文件个数。例如/var下面文件多
for i in /var/*; do echo $i; find $i |wc -l; done, 找到最终文件夹
如果用rm -rf *删除不掉,因为会报数量太多
要用find ./ -name “*”|xargs rm -rf *
6) find / -type f ! -mtime 365 查找一年内没有修改的文件。
find / -type f -size +10M 大于10M的
find / -type f -empty
7)find / -name "*" |xargs chmod 644 统一修改权限
8)echo $HOME, 查看当前用户的家目录
9)mk2fs -t ext4 -b 4 /dev/sda ,格式化并定义block大小
10)dumf2fs /dev/sda, 查看sda信息
11)修改host name方法:
hostname <new name>
修改/etc/sysconfig/network
12)ab -n 100 -c 50 <http://> 一共请求100次,同一时间有50个线程一起申请, 压力测试
13)w与uptime查看load
14)vmstat 1 3 一秒显示一次,3次结束
15)rpm -qf /bin/login 查看这个脚本的安装包
16)env查看系统变量,set查看系统变量+自定义用户变量
17)脚本控制的两种方法:
/etc/rc.d/init.d下,然后后面的rcx.d下面加链接
/etc/rc.d/rc.local下,启动顺序在init.d之后,init.d是系统脚本。rc.local是自定义脚本
18)ftp传输内容:
文本:文本文件+html
二进制:图片+可执行文件
19)ftp传输模式
主动:客户端开启一个大于1024的N端口去连接服务端的21端口(命令端口),然后开启N+1端口监听,然后服务器端用20端口(数据传输端口)去连接服务器端的N+1端口。
被动:客户端开启一个大于1024的N端口去连接服务端的21端口(命令端口),然后向服务器发送PASV命令,通知服务器自己处于被动模式,并开启N+1端口监听,然后服务器端开启一个大于1024的M端口,客户端用N+1去连接M端口
20)一次创建多个目录:mkdir -p /home/test/{test1, test2, test 3 }
21)history调用的是~/bash_history文件,修改history的显示数目是在/etc/profile.d文件中
22)dd if=/dev/zero和of=/dev/null是不占用IO的,纯测读写速度。
23)分割文件 split -b 100m <元文件> /test/test*
24) lsblk查看硬盘lvm以及mount点。类似df-h
25) os启动的grub作用,1)提供菜单,选择内核 2)加载kernel和initrd的img文件
26)route add重启就没了,加载/etc/sysconfig/network里可以永久生效,hostname也可以在里面改。
27)复制命令scp和rsync,scp是复制,rsync是同步差异量,所以rsync快
28)一个域名对应一个IP, 一个IP对应多个域名
29)at命令:
at <date>
at > 命令或脚本
ctrl +d提交
atq查看
30)echo $$ 当前shell的pid
31)开一个shell, 在下面执行的命令都是这个shell下的,这个shell关了,如果不加nohup,在执行的命令就断了。
32) ps不加参数看当前打开的shell下的进程,ps -aux查看所有shell的进程。
**33)lsof
lsof `which httpd` //那个进程在使用apache的可执行文件
lsof /etc/passwd //那个进程在占用/etc/passwd
lsof /dev/hda6 //那个进程在占用hda6
lsof /dev/cdrom //那个进程在占用光驱
lsof -c sendmail //查看sendmail进程的文件使用情况
lsof -c courier -u ^zahn //显示出那些文件被以courier打头的进程打开,但是并不属于用户zahn
lsof -p 30297 //显示那些文件被pid为30297的进程打开
lsof -D /tmp 显示所有在/tmp文件夹中打开的instance和文件的进程。但是symbol文件并不在列
lsof -u1000 //查看uid是100的用户的进程的文件使用情况
lsof -utony //查看用户tony的进程的文件使用情况
lsof -u^tony //查看不是用户tony的进程的文件使用情况(^是取反的意思)
lsof -i //显示所有打开的端口
lsof -i:80 //显示所有打开80端口的进程
34)du -sh /tmp 10G, 但是ls -ldh /tmp只有4K,这个只是查文件夹大小
35)进程的优先级等于pr+nice,pr是fork时从父进程那继承来的,不能改变,nice是可以改变的,
36)acl:访问控制列表
getfacl<文件>,查看当前的文件权限:
# getfacl winbind
user::rwx
group::r-x
other::r-x
setfacl -m u/g:123:rw- <文件>:设定123用户/组的文件权限为rw-
给用户设定acl后就与默认的other权限无关了。
37)cat /proc/partition =df -h
38)分区就是顺序从扇区分。
39)查看swap,
swapon -s =cat /proc/swap
#wapon -s
Filename Type Size Used Priority
/dev/dm-2 partition 8388604 979640 -1
可以看到是哪块设备用作swap,大小是8G.
lvm会把每个lv连接到一个/dev/dm-x的设备档,这个设备档并不是一个真正的磁盘,不会有分区表存在。
40)strace -f vim 查看vim启动过程
strace -p pid
本文转自UVN2015 51CTO博客,原文链接:http://blog.51cto.com/10851095/1945261,如需转载请自行联系原作者