Linux常用命令(一)

Linux常用命令(一)

一、命令基本格式

root@connect214:~#
  • root:代表当前登录用户(Linux当中管理员账号是root)
  • connect214:主机名
  • ~:当前所在目录(家目录)
  • #:超级用户提示符(普通用户的提示符是$)

普通用户的家目录:/home/user(建立用户的同时,家目录就会自动生成,每个用户都有家,如果没有,则不能登录到操作系统中)
超级用户的家目录:/root(根下的一级目录)

格式:
命令 [选项] [参数]

注意:个别命令使用不遵循此格式,当有多个选项时,可以写在一起简化选项与完整选项 -a 等于 –all

1.查询目录中内容:ls

ls [选项] [文件或目录]

选项:

  • -a 显示所有文件,包括隐藏文件
  • -l 显示详细信息
  • -d 查看目录属性
  • -h 人性化显示文件大小
  • -i 显示inode

①-l 显示详细信息

root@connect115:~# ls -l
total 651676
-rw-r--r-- 1 root root       127 Jun 12  2016 environment
-rwxr-xr-x 1 root root 142362384 Jun 12  2016 jdk-7u60-linux-x64.tar.gz
drwxr-xr-x 3 root root      4096 May 10 17:20 monitor
-rw-r--r-- 1 root root 289567343 Jun 12  2016 tomcat0.tar.gz
-rwxr-xr-x 1 root root      7249 Jun 12  2016 tomcat7
-r--r--r-- 1 root root  68772565 Jun  8  2016 VMwareTools-9.0.10-1481436.tar.gz
drwxr-xr-x 7 root root      4096 Dec 15  2013 vmware-tools-distrib

说明:-rw-r–r–

-:文件类型(-文件 d目录 l软链接文件)

root@connect115:~# ls -l /etc
total 820
lrwxrwxrwx 1 root root      13 Jun  8  2016 motd -> /var/run/motd
-rw-r--r-- 1 root root     510 Dec 28 15:43 mtab
-rw-r--r-- 1 root root    8453 Dec  4  2010 nanorc
drwxr-xr-x 6 root root    4096 Sep 27  2016 network

ls -l /etc:显示根目录下的etc目录下的文件的详细信息(可以不进入到etc目录,看完信息后用户还在当前目录)

rw- r– r–
u所有者 g所属组 o其他人

r:读
w:写
x:执行

linux中文件类型一共7种

  • -文件
  • d目录
  • l软链接文件
  • 块设备文件
  • 字符设备文件
  • 套接字文件
  • 管道文件

-rw-r–r–:

除去第一位,还有9位,每三个为一组,分别代表文件的所有者,所属组,其他人三个身份(指代的是用户与文件之间的关系)。

  • 所有者权限rw-:读写
  • 所属组权限r–:读
  • 其他人权限r–:读

用户组:相同权限或者相同身份的人放到一起。

②-h 人性化显示文件大小

对于文件大小的显示,默认是字节,使用 -lh命令显示为人能看懂的大小(人性化显示):

root@connect225:~# ls -l                                                       
total 651676                                                                   
-rw-r--r-- 1 root root 289567343 Jun 12  2016 tomcat0.tar.gz                   
-rwxr-xr-x 1 root root      7249 Jun 12  2016 tomcat7                          
-r--r--r-- 1 root root  68772565 Jun  8  2016 VMwareTools-9.0.10-1481436.tar.gz
drwxr-xr-x 7 root root      4096 Dec 15  2013 vmware-tools-distrib             
root@connect214:~#                                                             
root@connect214:~#                                                             
root@connect214:~#                                                             
root@connect214:~# ls -lh                                                      
total 637M                                                                     
-rw-r--r-- 1 root root 277M Jun 12  2016 tomcat0.tar.gz                        
-rwxr-xr-x 1 root root 7.1K Jun 12  2016 tomcat7                               
-r--r--r-- 1 root root  66M Jun  8  2016 VMwareTools-9.0.10-1481436.tar.gz     
drwxr-xr-x 7 root root 4.0K Dec 15  2013 vmware-tools-distrib  

③-a 显示所有文件,包括隐藏文件

使用命令 ls -a显示所有文件,包括隐藏文件

root@connect258:~# ls -a
.              civetOA2.war             .groovy                    .m2                  .oracle_jre_usage  tomcat7
..             civetOA.war              .install4j                 monitor              .pm2               .vim
.bash_history  civet.war                .java                      nodesource_setup.sh  .profile           .viminfo
.bashrc        environment              jdk-7u60-linux-x64.tar.gz  .npm                 .ssh               VMwareTools-9.0.10-1481436.tar.gz
.cache         .gremlin_groovy_history  .jenkins                   .npmrc               tomcat0.tar.gz     vmware-tools-distrib      

注意:隐藏文件都是以.开头

④-d 查看目录属性

查看目录本身的权限:ls -ld /etc/

root@connect227:~# ls -ld /etc
drwxr-xr-x 91 root root 4096 Apr 20 16:20 /etc

⑤-i 显示inode

root@connect214:~# ls -i
789718 civetOA2.war  789709 environment                789724 nodesource_setup.sh  786436 VMwareTools-9.0.10-1481436.tar.gz
789717 civetOA.war   789711 jdk-7u60-linux-x64.tar.gz  789712 tomcat0.tar.gz       786437 vmware-tools-distrib
789715 civet.war     919187 monitor                    789713 tomcat7

每个文件都有一个id号,系统查找该文件时是通过id号查找的,即通过i节点来判断文件所在位置

二、文件处理命令

1、目录处理命令、文件处理命令

①建立目录:mkdir

mkdir -p [目录名]

-p:递归创建

root@connect214:~# mkdir -p hcx1/hcx2
root@connect214:~# ls
civetOA2.war  civet.war    hcx   jdk-7u60-linux-x64.tar.gz  nodesource_setup.sh  tomcat7                            vmware-tools-distrib
civetOA.war   environment  hcx1  monitor                    tomcat0.tar.gz       VMwareTools-9.0.10-1481436.tar.gz
root@connect214:~# cd hcx1
root@connect214:~/hcx1# ls
hcx2
root@connect214:~/hcx1#

②切换所在目录:cd

cd [目录]

简化操作:

  • cd ~ 进入当前用户的家目录
  • cd 进入当前用户的家目录
  • cd - 进入上次目录
  • cd .. 进入上一级目录
  • cd . 进入当前目录

快捷键:ctrl+L清屏

root@connect214:~# ls
civetOA2.war  civet.war    hcx   jdk-7u60-linux-x64.tar.gz  nodesource_setup.sh  tomcat7                            vmware-tools-distrib
civetOA.war   environment  hcx1  monitor                    tomcat0.tar.gz       VMwareTools-9.0.10-1481436.tar.gz
root@connect214:~# cd ~
root@connect214:~# cd hcx1/hcx2
root@connect214:~/hcx1/hcx2# cd ~
root@connect214:~# cd hcx1/hcx2
root@connect214:~/hcx1/hcx2# cd
root@connect214:~# cd -
/root/hcx1/hcx2
root@connect214:~/hcx1/hcx2#
root@connect214:~/hcx1/hcx2# cd ..
root@connect214:~/hcx1# cd ..
root@connect214:~# cd ..
root@connect214:/# cd .
root@connect214:/#
  • 相对路径:参照当前所在目录,进行查找
    如:[root@hcx ~]# cd ../usr/local/src/

  • 绝对路径:从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定位置
    如:[root@hcx ~]# cd /etc/

③查询所在目录位置:pwd

root@connect254:~# pwd
/root

④删除空目录:rmdir

rmdir [目录名]

注意:只能删除空白目录

root@connect204:~# rmdir hcx
root@connect204:~# ls
civetOA2.war  civet.war    hcx1                       monitor              tomcat0.tar.gz  VMwareTools-9.0.10-1481436.tar.gz
civetOA.war   environment  jdk-7u60-linux-x64.tar.gz  nodesource_setup.sh  tomcat7         vmware-tools-distrib
root@connect204:~# rmdir hcx1
rmdir: failed to remove `hcx1': Directory not empty
root@connect204:~#

⑤删除文件或目录:rm

rm -rf [文件或目录]

选项:
-r 删除目录
-f 强制

⑥复制命令:cp
cp [选项] [原文件或目录] [目标目录]

选项:

-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于 -pdr

复制文件:cp 源文件 目标目录

root@connect214:~# cp /etc/xml/xml-core.xml hcx/xml
root@connect214:~# ls -l hcx
total 139032
-rwxr-xr-x 1 root root 142362384 Jun 14 16:44 jdk-7u60-linux-x64.tar.gz
-rw-r--r-- 1 root root       840 Jun 14 17:02 xml
root@connect214:~# cp /etc/xml/xml-core.xml.old hcx
root@connect214:~# ls
civetOA2.war  civet.war    hcx                        monitor              tomcat0.tar.gz  VMwareTools-9.0.10-1481436.tar.gz
civetOA.war   environment  jdk-7u60-linux-x64.tar.gz  nodesource_setup.sh  tomcat7         vmware-tools-distrib
root@connect214:~# ls -lh hcx
total 136M
-rwxr-xr-x 1 root root 136M Jun 14 16:44 jdk-7u60-linux-x64.tar.gz
-rw-r--r-- 1 root root  840 Jun 14 17:02 xml
-rw-r--r-- 1 root root  673 Jun 14 17:09 xml-core.xml.old

-r 复制目录:cp -r 源文件 目标目录

root@connect214:~# cp -r /etc/xml hcx
root@connect214:~# ls
civetOA2.war  civet.war    hcx                        monitor              tomcat0.tar.gz  VMwareTools-9.0.10-1481436.tar.gz
civetOA.war   environment  jdk-7u60-linux-x64.tar.gz  nodesource_setup.sh  tomcat7         vmware-tools-distrib
root@connect214:~# ls -lh hcx
total 136M
-rwxr-xr-x 1 root root 136M Jun 14 16:44 jdk-7u60-linux-x64.tar.gz
drwxr-xr-x 2 root root 4.0K Jun 14 17:17 xml
-rw-r--r-- 1 root root  673 Jun 14 17:09 xml-core.xml.old
root@connect214:~# cp -r /etc/xml hcx/xmll
root@connect214:~# ls -lh hcx
total 136M
-rwxr-xr-x 1 root root 136M Jun 14 16:44 jdk-7u60-linux-x64.tar.gz
drwxr-xr-x 2 root root 4.0K Jun 14 17:17 xml
-rw-r--r-- 1 root root  673 Jun 14 17:09 xml-core.xml.old
drwxr-xr-x 2 root root 4.0K Jun 14 17:18 xmllroot@connect214:~# ls -lh hcx/xml
total 16K
-rw-r--r-- 1 root root 756 Jun 14 17:17 catalog
-rw-r--r-- 1 root root 610 Jun 14 17:17 catalog.old
-rw-r--r-- 1 root root 840 Jun 14 17:17 xml-core.xml
-rw-r--r-- 1 root root 673 Jun 14 17:17 xml-core.xml.old
root@connect214:~# ls -lh hcx/xmll
total 16K
-rw-r--r-- 1 root root 756 Jun 14 17:18 catalog
-rw-r--r-- 1 root root 610 Jun 14 17:18 catalog.old
-rw-r--r-- 1 root root 840 Jun 14 17:18 xml-core.xml
-rw-r--r-- 1 root root 673 Jun 14 17:18 xml-core.xml.old

⑦剪切或改名命令:mv

mv [源文件或目录] [目标目录]

不同目录下是移动:

root@connect214:~# mv hcx/hcx1 hcx2
root@connect214:~# ls -lh hcx
total 136M
-rw-r--r-- 1 root root  840 Jun  8  2016 abc
drwxr-xr-x 2 root root 4.0K Jun  8  2016 efg
-rwxr-xr-x 1 root root 136M Jun 14 16:44 jdk-7u60-linux-x64.tar.gz
drwxr-xr-x 2 root root 4.0K Jun 14 17:17 xml
-rw-r--r-- 1 root root  673 Jun 14 17:09 xml-core.xml.old
drwxr-xr-x 2 root root 4.0K Jun 14 17:18 xmll

相同目录下是改名:

root@connect214:~# mv hcx/hcx1 hcx/hcx2
root@connect214:~# ls -lh hcx
total 136M
-rw-r--r-- 1 root root  840 Jun  8  2016 abc
drwxr-xr-x 2 root root 4.0K Jun  8  2016 efg
drwxr-xr-x 2 root root 4.0K Jun 14 18:25 hcx2
-rwxr-xr-x 1 root root 136M Jun 14 16:44 jdk-7u60-linux-x64.tar.gz
drwxr-xr-x 2 root root 4.0K Jun 14 17:17 xml
-rw-r--r-- 1 root root  673 Jun 14 17:09 xml-core.xml.old
drwxr-xr-x 2 root root 4.0K Jun 14 17:18 xmll

常用目录的作用

  • / 根目录
  • /bin 命令保存目录(普通用户就可以读取的命令)
  • /boot 启动目录,启动相关文件
  • /dev 设备文件保存目录
  • /etc 配置文件保存目录
  • /home 普通用户的家目录
  • /lib 系统库保存目录
  • /mnt 系统挂载目录
  • /media 挂载目录
  • /root 超级用户的家目录
  • /tmp 临时目录
  • /sbin 命令保存目录(超级用户才能使用的目录)
  • /proc 直接写入内存的
  • /sys
  • /usr 系统软件资源目录
    /usr/bin/ 系统命令(普通用户)
    /usr/sbin/ 系统命令(超级用户)
  • /var 系统相关文档内容

根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的。

root@connect214:/# ls
bin  boot  dev  etc  home  initrd.img  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  sys  tmp  usr  var  vmlinuz
root@connect214:/# ls usr/
bin  etc  games  include  lib  local  sbin  share  src
root@connect214:/#

proc和sys目录不能直接操作,这两个目录保存的是内存的挂载点(内存的盘符)。

注意:可以在家目录root或home,以及tmp目录下随便放内容

2、链接命令:ln

ln -s [原文件] [目标文件]

功能:生成链接文件
选项:-s 创建软连接

硬链接特征:

  1. 拥有相同的i节点和存储block块,可以看做是同一个文件
  2. 可通过i节点识别
  3. 不能跨分区
  4. 不能针对目录使用(只有文件才可以创建硬链接)

把其中一个文件删除,还可以通过另一个文件访问

软链接特征:

  1. 类似windows快捷方式
  2. 软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据
  3. Irwxrwxrwx I软链接
    软链接文件权限都为rwxrwxrwx
  4. 修改任意文件,另一个文件都改变
  5. 删除原文件,软链接不能使用

创建硬链接:

root@connect214:~# ls
civetOA2.war  civet.war    hcx   hcx.html                   monitor              tomcat0.tar.gz  VMwareTools-9.0.10-1481436.tar.gz
civetOA.war   environment  hcx1  jdk-7u60-linux-x64.tar.gz  nodesource_setup.sh  tomcat7         vmware-tools-distrib
root@connect214:~# ln hcx.html hcx
root@connect214:~# ls
civetOA2.war  civet.war    hcx   hcx.html                   monitor              tomcat0.tar.gz  VMwareTools-9.0.10-1481436.tar.gz
civetOA.war   environment  hcx1  jdk-7u60-linux-x64.tar.gz  nodesource_setup.sh  tomcat7         vmware-tools-distrib
root@connect214:~# ls -lh hcx
total 136M
-rw-r--r-- 1 root root  840 Jun  8  2016 abc
drwxr-xr-x 2 root root 4.0K Jun  8  2016 efg
drwxr-xr-x 2 root root 4.0K Jun 14 18:25 hcx2
-rw-r--r-- 3 root root  119 Jun 14 22:59 hcx.html
-rwxr-xr-x 1 root root 136M Jun 14 16:44 jdk-7u60-linux-x64.tar.gz
drwxr-xr-x 2 root root 4.0K Jun 14 17:17 xml
-rw-r--r-- 1 root root  673 Jun 14 17:09 xml-core.xml.old
drwxr-xr-x 2 root root 4.0K Jun 14 17:18 xmll

创建完后看不出变化,只是引用计数增加了。

文件创建的硬链接,不管是修改原文件还是链接文件,都会同步。把原文件删除后,链接文件也还可以继续使用
硬链接文件的与软链接文件的inode一样:

root@connect214:~# ls -i hcx/hcx.html hcx.html
789912 hcx/hcx.html  789912 hcx.html

软链接:修改原文件,软链接会改变;修改链接文件,原文件也会改变。但是软连接删除了原文件,则软连接文件则不可使用。因为在软连接里保存的不是真正的数据,而是原文件的相关信息。

root@connect214:~# ln -s hcx.html hcx/hcxsoft
root@connect214:~# ls -lh hcx
total 136M
-rw-r--r-- 1 root root  840 Jun  8  2016 abc
drwxr-xr-x 2 root root 4.0K Jun  8  2016 efg
drwxr-xr-x 2 root root 4.0K Jun 14 18:25 hcx2
-rw-r--r-- 3 root root  107 Jun 15 00:43 hcx.html
lrwxrwxrwx 1 root root    8 Jun 15 01:07 hcxsoft -> hcx.html
-rwxr-xr-x 1 root root 136M Jun 14 16:44 jdk-7u60-linux-x64.tar.gz
drwxr-xr-x 2 root root 4.0K Jun 14 17:17 xml
-rw-r--r-- 1 root root  673 Jun 14 17:09 xml-core.xml.old
drwxr-xr-x 2 root root 4.0K Jun 14 17:18 xmll
root@connect214:~# ln hcx.html hcx/hcxhard
root@connect214:~# ls -lh hcx
total 136M
-rw-r--r-- 1 root root  840 Jun  8  2016 abc
drwxr-xr-x 2 root root 4.0K Jun  8  2016 efg
drwxr-xr-x 2 root root 4.0K Jun 14 18:25 hcx2
-rw-r--r-- 4 root root  107 Jun 15 00:43 hcxhard
-rw-r--r-- 4 root root  107 Jun 15 00:43 hcx.html
lrwxrwxrwx 1 root root    8 Jun 15 01:07 hcxsoft -> hcx.html
-rwxr-xr-x 1 root root 136M Jun 14 16:44 jdk-7u60-linux-x64.tar.gz
drwxr-xr-x 2 root root 4.0K Jun 14 17:17 xml
-rw-r--r-- 1 root root  673 Jun 14 17:09 xml-core.xml.old
drwxr-xr-x 2 root root 4.0K Jun 14 17:18 xmll

root@connect214:~# ll -i
total 651812
 789912 -rw-r--r--   4 root root       107 Jun 15 00:43 hcx.html

硬链接的inode与原来的一样,都是789912。

软文件的文件类型显示lrwxrwxrwx,但实际并不代表着都有,还是要根据原文件的权限来决定链接文件的权限

软文件还标记出了原文件所在位置

注意:软连接要写绝对路径,否则只能在同级目录下访问

root@connect214:~# ln -s /root/hcx/hcx.html /root/hcx1/hcxjuedui.soft
root@connect214:~# touch abc
root@connect214:~# ln -s abc /root/hcx1/hcxxiangdui.soft
root@connect214:~# ls -lh hcx1
total 0
lrwxrwxrwx 1 root root  3 Jun 15 01:05 hcx2.soft -> hcx
lrwxrwxrwx 1 root root 18 Jun 15 16:09 hcxjuedui.soft -> /root/hcx/hcx.html
lrwxrwxrwx 1 root root  3 Jun 15 16:10 hcxxiangdui.soft -> abc

三、文件搜索命令

1.文件搜索命令locate
locate 文件名
在后台数据库中按文件名搜索,搜索速度更快

/var/lib/mlocate
locate命令所搜索的后台数据库

updatedb
更新数据库

数据搜索都是从mlocate中搜索的,对于刚刚建立的文件可能还没来得及保存到mlocate中,所以搜索不出来,如果想要搜索出来,可以更新数据库updatedb

root@connect214:~# touch hcxxxx
root@connect214:~# locate hcxxx
root@connect214:~# updatedb
root@connect214:~# locate hcxxxx
/root/hcxxxx

使用locate locate命令

/etc/updatedb.conf配置文件

  • PRUNE_BIND_MOUNTS = “yes”
    开启搜索限制
  • PRUNEFS =
    搜索时,不搜索的文件系统
  • PRUNENAMES =
    搜索时,不搜索的文件类型
  • PRUNEPATHS =
    搜索时,不搜索的路径

updatedb.conf:

PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs"
2.命令搜索命令whereis与which

①whereis

whereis 命令名
搜索命令所在路径及帮助文档所在位置
选项:
-b:只查找可执行文件
-m:只查找帮助文件

使用:

root@connect214:~# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
root@connect214:~# whoami
root
root@connect214:~# whatis ls
ls (1)               - list directory contents
root@connect214:~#
root@connect214:~# whereis -b ls
ls: /bin/ls
root@connect214:~# whereis -m ls
ls: /usr/share/man/man1/ls.1.gz
root@connect214:~#

注意:不能搜索普通文件,只能查系统命令

②which

which 文件名
搜索命令所在路名及别名

使用:

root@connect214:~# which ls
/bin/ls

③PATH环境变量

PATH环境变量:定义的是系统搜索命令的路径

[root@localhost~]# echo $PATH
/usr/lib/qt-3.3/bin:
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

例如:

root@connect214:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/usr/local/apache-maven-3.5.2/bin:/usr/local/apache-ant-1.9.10/bin
root@connect214:~# ls
abc      civetOA2.war  civet.war  environment  hcx1      hcxxxx                     monitor              tomcat0.tar.gz  VMwareTools-9.0.10-1481436.tar.gz
chenhui  civetOA.war   csb        hcx          hcx.html  jdk-7u60-linux-x64.tar.gz  nodesource_setup.sh  tomcat7         vmware-tools-distrib
root@connect214:~# fef
No command 'fef' found, did you mean:
 Command 'ffe' from package 'ffe' (universe)
 Command 'ref' from package 'elvis-tools' (universe)
 Command 'fnf' from package 'confluence' (universe)
 Command 'feh' from package 'feh' (universe)
 Command 'fet' from package 'fet' (universe)
fef: command not found

自己写的程序,如果想要不通过绝对路径就能执行,则必须放在bin路径中

3.文件搜索命令find
find [搜索范围] [搜索条件]
搜索文件

find / -name install.log
避免大范围搜索,会非常耗费系统资源
find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。

Linux中的通配符

    • 匹配任意内容
  • ? 匹配任意一个字符
  • [] 匹配任意一个中括号内的字符

*使用:

root@connect214:~# find / -name hcx.html
/root/hcx.html
/root/hcx/hcx.html
root@connect214:~# find / -name "hcx.*"
/root/hcx.html
/root/hcx/hcx.html

列出当前目录所有文件:
root@connect214:~# find /root -name “*”

使用? []

root@connect214:~# ls
abc  chenhui       civetOA.war  csb          hcx   hcx.html  jdk-7u60-linux-x64.tar.gz  nodesource_setup.sh  tomcat7                            vmware-tools-distrib
abd  civetOA2.war  civet.war    environment  hcx1  hcxxxx    monitor                    tomcat0.tar.gz       VMwareTools-9.0.10-1481436.tar.gz
root@connect214:~# find /root -name "ab[cd]"
/root/abd
/root/hcx/abc
/root/.pm2/modules/pm2-logrotate/node_modules/resolve/test/dotdot/abc
/root/abc
root@connect214:~#

按照大小写和所有者搜索:

find /root -iname install.log
不区分大小写
find /root -user root
按照所有者搜索
find /root -nouser
查找没有所有者的文件

按照时间搜索:

find /var/log/ -mtime +10
查找10天前修改的文件

-10 10天内修改文件
10 10天当前修改的文件
+10 10天前修改的文件

atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容

按照文件大小搜索:

find . -size 25k
查找文件大小是25KB的文件
-25k 小于25KB的文件
25k 等于25KB的文件
+25k 大于25KB的文件

find . -inum 262422
查找i节点是262422的文件

多个条件一起搜索:

find /etc -size +20k -a -size -50k
查找/etc/目录下,大于20KB并且小于50KB的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可

find /etc -size +20k -a -size -50k -exec ls -lh {} \;
查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
-exec/-ok 命令{}\;对搜索结果执行操作
4.字符串搜索命令grep
grep [选项] 字符串 文件名
在文件当中匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除指定字符串

使用

grep "size" anaconda-ks.cfg
在文件anaconda-ks.cfg中找出包含有关键字size的行
5.find命令与grep命令的区别
  • find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。

  • grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。

如果搜索的是文件名,使用通配符
如果搜索的是文件当中的数据,使用正则表达式

你可能感兴趣的:(Linux)