which 命令
whereis [选项] 命令
-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
find 路径 [选项] 文件名称
参数 含义
-name 按照文件名查找文件
-perm 按文件权限查找文件
-user 按文件属主查找文件
-group 按照文件所属的组来查找文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件
d - 目录
c - 字符设备文件
l - 符号链接文件
p - 管道文件
f - 普通文件
-size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件
(用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )
-maxdepth n 最大查找目录深度
-prune 选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略
-newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项
#示例:
find . -name "*.c" #将当前目录及其子目录下所有文件后缀为 .c 的文件列出来
find . -type f #将当前目录及其子目录中的所有文件列出
find . -ctime 20 #将当前目录及其子目录下所有最近 20 天内更新过的文件列出
find /var/log -type f -mtime +7 -ok rm {} \; #查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们
示例:
使用-name参数查看/etc目录下面所有的.conf结尾的配置文件:
[root@linuxcool ~]# find /etc -name "*.conf
使用-size参数查看/etc目录下面大于1M的文件:
[root@linuxcool ~]# find /etc -size +1M
在/var/log目录下忽略大小写查找以.log结尾的文件名:
[root@linuxcool ~]# find /var/log -iname "*.log"
在当前目录下查找超过七天内被访问过的所有文件:
[root@linuxcool ~]# find . -type f -atime +7
在当前目录下查找访问时间超过10分钟的所有文件:
[root@linuxcool ~]# find . -type f -amin +10
找出/home下不是以.txt结尾的文件:
[root@linuxcool ~]# find /home ! -name "*.txt"
在整个文件系统中找出所有归属于 linuxprobe 用户的文件并复制到 /root/findresults 目录:
[root@linuxprobe ~]# find / -user linuxprobe -exec cp -a {} /root/findresults/
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并删除
find /var/log -type f -mtime +7 -exec rm -f {}
命令 > 文件:将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件:将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件:将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件:将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 &>> 文件:将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
格式为:命令 A | 命令 B
匹配关键词/sbin/nologin 找出了所有被限制登录系统的用户:
[root@linuxprobe ~]# grep "/sbin/nologin" /etc/passwd | wc -l
用翻页的形式查看/etc 目录中的文件列表及属性信息:
[root@linuxprobe ~]# ls -l /etc/ | more
用一条命令来完成密码重置:
[root@linuxprobe ~]# echo "linuxprobe" | passwd --stdin root
星号(*)代表匹配零个或多个字符
问号(?)代表匹配单个字符
中括号内加上数字[0-9]代表匹配 0~9 之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配 a、b、c 三个字符中的任意一个字符
示例:
匹配所有在/dev 目录中且以 sda 开头的文件:
[root@linuxprobe ~]# ls -l /dev/sda*
查看文件名为 sda 开头,但是后面还紧跟其他某一个字符的文件的相关信息:
[root@linuxprobe ~]# ls -l /dev/sda?
反斜杠\:使反斜杠后面的一个变量变为单纯的字符串。
单引号‘:转义其中所有的变量为单纯的字符串。
双引号“:保留其中的变量属性,不进行转义处理。
反引号`:把其中的命令执行后返回结果。
示例:
定义一个名为 PRICE 的变量并赋值为 5,然后输出以双引号括起来的字符串与变量信息
[root@linuxprobe ~]# PRICE=5
[root@linuxprobe ~]# echo "Price is $PRICE"
Price is 5
要想让第一个"$"乖乖地作为美元符号,那么就需要使用反斜杠(\)来进行转义,将这个命令提取符转义成单纯的文本,去除其特殊功能:
[root@linuxprobe ~]# echo "Price is \\$$PRICE"
Price is $5