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