【Linux常用命令12】搜索命令及特殊字符的使用

which:查看可执行文件的位置

which 命令

whereis:查看文件的位置,只能用于程序名的搜索

whereis [选项] 命令
-b   定位可执行文件。
-m   定位帮助文件。
-s   定位源代码文件。
-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

find命令:用于在文件树中查找文件

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

你可能感兴趣的:(Linux基础知识,linux,服务器,java)