总结整理下过往用得多的Linux命令吧,其实也可以说是一些工具,比如两个Linux主机传文件,就常用rsync,查找文件用find,给文件打包用tar,查看进程用ps\pstree,然后磁盘扩容的时候用lvm相关的好几个命令(fdisk\lvcreate\vgextend\pvcreate\xfs_grows等等),还有yum开头的一系列命令,然后还配置yum源等,再还有查看系统日志,配置用户组文件文件夹权限的命令。貌似越想就越多,但是大概只记得命令是哪一个,而命令之后接的那些-开头的选项就模糊了,看来还是有必要系统整理记录。
1. find命令
这个命令以前经常在面试时被问起,命令作用其实类似于Windows的文件管理器中的搜索功能,搜索可以按某些类别来进行。不过命令还能对搜索到的文件,执行某些操作比如删除操作。命令语法如下:
find path -option [ -print ] [ -exec -ok command ] {} \;
意思就是查找某路径path下的文件,-option决定是怎样的选项是查找某路径下文件名或者文件大小怎样的文件。-print指打印出找到的文件,[ -exec -ok command ] {} 是指对搜索到的内容执行什么操作{}代指搜索到的内容,\;表示结束。所以这样一条完整的find命令,可以用三段来介绍,path,-option, [ -exec -ok command ]
path,可以用 . 代指当前目录及其子目录,/ 代指根目录及其子目录。如果path为空,则默认使用当前路径。
-option, 指一些用来查找文件的搜索选项,比如以文件名来搜索-name,以文件所属主来搜索-user,以文件大小来搜索-size,如下列举常用的来记录和测试。
- 查找根目录下的txt文件(-name选项能做到)
find / -name ".txt"* - 根据文件大小来查找,比如文件大于4450字节的文件,并显示文件详细信息
find / -name ".txt" -size +4450c -exec ls -l {} ;*
image.png
3.服务器磁盘满,一般由大的日志文件导致,需找到大文件并删除。
find / -size +500M -print0|xargs -0 du -m|sort -nr
(find指令为找出500M以上的文件,print0和xargs -0配合使用,用来解决文件名中有空格或特殊字符问题。du -m是查看这些文件的大小,并以m为单位显示。最后sort -nr是按照数字反向排序,大的文件在前)
4.根据文件的创建时间来查找-atime/-ctime -n,分别是指过去n天内被读取的文件或者n天内被修改的文件
find /tmp -atime -2
find /tmp -ctime -2
5.根据文件的类型来查找,-type -c (c : 文件类型是 c 的文件,d: 目录,c: 字型装置文件,b: 区块装置文件,p: 具名贮列,f: 一般文件,l: 符号连结,s: socket)
find /tmp -type d
image.png
6.按照文件的读写权限来查找,比如-perm 644,查找权限为rw-r--r--的文件,值得注意的是需要加-type f\d,来配合查找。
find /tmp -type f -perm 755
image.png