which ls 可以查看ls命令路径
which 是从环境变量PATH里面搜索
whereis ls 也可以搜索,但是只能在固定的库搜索
locate命令也可以搜索,需要先安装才能使用,参照上图
安装完成后还是不能立刻使用locate命令,需要先生成数据库文件mlocate.db
这个数据库文件每天凌晨4点左右会自动更新一次,也可以手动更新生成
现在还没有生成这个数据库文件,我们是用不了locate命令,所以先手动生成一次
使用命令 updatedb 这样就手动生成数据库文件了
这个数据库文件会先遍历一遍系统将各种路径数据记录在里面
这样我们使用locate命令就可以从数据库里的路径数据找到我们需要的路径数据
生成数据库文件后,我们再使用locate命令搜索包含aming关键词的路径
如上图所示,找到了所有包含aming关键词的路径信息
以上搜索命令使用不多,主要还是使用find命令
ctrl+l清屏,ctrl+d退出登录,ctrl+c中断命令
ctrl+u 把光标前面的内容全部删除
ctrl+e 可以把光标从文章头部直接移动到尾部
ctrl+a 可以把光标从文章尾部直接移动到头部
在一个目录里面寻找一个文件,知道名字不知道路径
可以使用 find /etc/ -name "sshd_config"
路径 /etc/ 表示在etc目录里面寻找文件
参数 -name 表示文件名参数,后面接文件名 "sshd_config"
这样就会把etc目录里面所有文件名为sshd_config的文件目录找出来
find /etc/ -name "sshd*" 可以把文件名包含sshd关键词的目录跟文件路径全部搜索出来
符号 * 代表通配符,*可以表示任意长短字符
如搜索结果里面 sshd_config 就可以用 sshd* 表示
所以用 sshd* 就可以搜索所有 sshd+(任意字符) 的结果,这是模糊搜索
上图,增加了一个参数 -type d 和 -type f,这代表文件类型
增加 d 参数,意思是搜索的结果只包含目录类型,f参数则只包含文件类型
如图所示,模糊搜索sshd关键字,目录类型的文件不存在,只有文件类型的文件
还可以搜索很多不同类型的文件,如 l(软链接文件),s(socket文件),c(字符串设备文件),b(块设备文件) 等等文件类型
使用 stat 查看 2.txt 文件的详细信息,stat命名显示信息比ls更详细
详细信息下面有三条信息,分别是:1.最近访问,2.最近更改,3.最近改动
find 命令也有三个对应的参数,分别是:-mtime,-ctime,-atime
其中,-atime 对应 最近访问,-mtime 对应 最近更改,-ctime 对应 最近改动
atime就是最近的访问时间,mtime是最近文件内容改动的时间
ctime是文件最近权限,文件名称,创建时间等的改动时间,总之就是文件内容以外的改动的时间就是ctime
echo "121212" >> 2.txt 这条命令可以把 121212这个字符串追加到2.txt文件内容后面
可以看到追加内容后,mtime对应的信息时间,Modify的时间更改了
echo 命令可以用来显示字符串,echo+字符串,就会显示这个字符串
更改了内容,mtime时间变化了,ctime时间也一定会变化,如图,ctime时间与mtime时间一致
mtime代表内容更改的时间,除此以外的变化时间是ctime
因为对文件追加内容之后,文件的大小就变化了,文件大小的变化时间属于ctime时间
如图,在 etc 目录里面搜索,-type f 表示只搜索文件类型
然后 -mtime -1 表示文件更改时间在一天以内的,-1代表小于一天,也就是1天以内的意思
下面 -mtime +1 表示文件更改时间在一天以外的,+1代表大于一天,也就是1天以外的意思
find /etc/ -type f -ctime -1 -name "*.conf"
上面表示,在etc目录搜索,类型为文件,并且 ctime在1天以内的,
并且文件名称为 (任意字符)+ .conf 的文件
如图,除了并且也可以使用或者,或者用 -o 表示
find /etc/ -type f -o -mtime -1 -o -name "*.conf"
表示在etc目录搜索,类型为文件 或者 mtime为1天以内的 或者 文件名称为 (任意字符)+.conf 的文件
如图,搜索inode号,找到硬链接文件
使用ls命令显示 1_heard.txt的inode号,参数 -inum 表示指定inode号
find / -inum 33583395 表示在根目录搜索所有使用这个inode号的文件
如果想寻找1个小时以内的文件,需要使用 -mmin ,代表分钟
因为 mtime 的最小单位是天,所以需要使用分钟为单位的 -mmin
如图 -mmin -60 代表60分钟以内的文件,也就是说1小时内,-120代表2小时内,以此类推
如图,在搜索语句后面加上 -exec ls -l {} ; 可以使搜索出来的结果显示详细信息
意思是对所有搜索出来的文件使用 ls -l 命令,{}就代表了搜索出来的所有结果的文件名
exec语句都是以分号 ; 结束的,但是不同系统分号有不同的功能,所以分号前面加上反斜杠表示这是分号,没有别的功能
所以整句话可以看做 ls -l {}(所有文件名称),-exec 和 ; 是固定格式
也可以应用 mv 命令,将搜索出来的文件全部修改名称
如图,-exec mv {} {}.bak ;
mv a b 可以把名称a改成b,同理,{}代表所有搜索出来的文件名称,{}.bak代表新的名称
就是把原来的名称 {} 修改为新的名称 {}.bak,新名称就是原来名称后面加上.bak
{}.bak 可以理解为一种表示方法,代表在原来名称后面加上 .bak 组成一个新的组合
也可以查找规定大小的文件
如图 -type f 只搜索文件类型,-size +10k 表示文件大小要大于10kb的
也可以使用 -size +10M 表示文件大小要大于10MB的
后面接 -exec ls -lh {} ; 表示把搜索出来的文件详细信息列出来,{}表示所有文件名称
h 表示人类可读的显示方式,例如 1MB 1GB 等,不然就会显示比特,难以看清文件大小