【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令

文章目录

  • whereis
  • help
  • man
  • find
  • locate
  • grep
  • wc
  • 管道


whereis

  • 功能描述:寻找命令的二进制文件。
    同时也会找到其帮助文件,主要功能是寻找一个命令所在的位置。和find相比,whereis查找的速度非常快。

  • 语法:
    whereis [选项] [命令名称]

  • 选项:
    【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令_第1张图片

例1:搜索命令

whereis ls  #搜索ls命令的路径和帮助文件的路径
whereis find  #搜索find命令的路径和帮助文件的路径

例2:搜索命令的帮助文件

whereis -m ls  #搜索ls命令的帮助文件
whereis -m find  #搜索find命令的帮助文件

help

  • 功能描述:查看命令的内容和使用方法。
    whereis只查找命令文件的路径,help命令可以查看命令的内容和使用方法。help用于查看所有Shell命令。

  • 语法:
    help [选项] [命令名称]

  • 选项:
    【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令_第2张图片

例1:查看命令的帮助文件

help help  #查看help命令的帮助文件,显示该命令的内容和使用方法

例2:分别查看cd命令的格式、功能和详细帮助信息

help -s cd  #查看cd命令的格式
help -d cd  #查看cd命令的功能
help cd  #查看cd命令的帮助信息

例3:查看命令ls的帮助信息

ls --help  #查看ls命令的帮助信息,给出了用法和各个选项

说明:
使用help查看命令的帮助信息时需要区分是内部命令还是外部命令:
内部命令格式为help [命令],如前面的例1、例2;
外部命令需要使用[命令] --help格式,如例3。

man

  • 功能描述:查看命令的帮助手册。
    其内容包括命令语法、各选项的意义以及相关命令等。

  • 语法:
    man [选项] [命令名称]

  • 选项:
    【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令_第3张图片
    其中选项-s是根据章节显示帮助,常用的章节选项:
    【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令_第4张图片

例1:查看ls命令的帮助手册

man -s 1 ls  #查看ls命令的帮助手册,使用鼠标上下滑动来翻页,按q键退出返回命令界面。

按q键退出返回命令界面

说明:ls是一般使用者的命令,加-s参数时用“1”选项。如果用其它章节选项会提示错误。

find

  • 功能描述: 寻找文件或目录的位置。
    如果有大量的文件保存在许多不同的目录中,可能需要搜索它们,以便能找出某种类型的一个或者多个文件,这就需要find命令。find命令可以按照文件名、类型、所有者甚至最后更新的时间来搜索文件。

  • 语法:
    find [搜索路径] [搜寻关键字] [文件或目录]

  • 选项:
    【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令_第5张图片
    其中选项-type表示按照文件类型查找文件,参数为:
    【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令_第6张图片
    find命令还可以利用时间特征来查找文件,其参数:
    【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令_第7张图片

例1:通过文件名查找
(知道文件名,不知道目录)

find / -name http.conf -print

例2:根据部分文件名查找
(不知道该文件的全名,只知道这个文件包含几个特定的字母,这时在给字查找文件名时通配符“*”、“?” )

find . -name "*http*" -print  #在当前目录下查找带有http的文件
find ~ -name "*.doc" -print  #查找当前目录及子目录中.doc文件并显示
find /etc -name 'f????'  #查找/etc下所有以f开头后面有四个字符的文件
find . -name p1 -print  #知道具体的文件名不用加引号

知道具体的文件名不用加引号,如果使用通配符需要加引号。

例3:根据文件的特征查找
(如文件的大小、修改日期等特征)

find /etc -size -2500c -print  #知道一个文件尺寸小于为2500bytes
find . -size +1000000c -print  #在当前目录下查找文件长度大于1M字节的文件

例4:按照文件权限模式查找文件

find . -perm 777 -print  #在当前目录下查找文件权限为777的文件,即查找每个人都有可读写可执行权限的文件。

例5:忽略某个目录查找文件

find work -path "work/file" -prune -o -print  
#查找work文件夹中除了file子目录的文件,忽略file文件夹中文件

例6:按文件所有者、用户组等查找文件

find work -user me -print  #在/work下查找所有者为me的文件并输出
find /home/me/Documents -group me -print  #在指定目录下查找属于me用户组的文件

例7:按照时间查找文件

find /home/me/Documents/work -mtime -5 print
#查找更改时间在5日内的work目录下的文件

例8:按照文件类型查找

find /home/me/Documents -type d print
#查找目标目录下所有的目录文件并显示

locate

  • 功能描述:寻找文件或目录。
    locate 用于在档案系统内通过搜寻数据库查找指定档案,相对find命令查找速度快。

  • 语法:
    locate [选项] [搜索关键字]

例1:查找包含‘x’的文件

locate x|more

例2:查找指定目录下“t”开头的文件

locate /file1/t  
或
locate /file1/t*

相关命令:查询命令的功能和可执行路径

whatis ls  #查询ls命令的功能
which ls  #查询ls命令的可执行路径

grep

  • 功能描述:使用正则表达式查找文件内容。

  • 语法:
    grep [选项] 匹配字符串文件列表

  • 选项:
    【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令_第8张图片
    正则表达式的参数有:
    【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令_第9张图片

例1:搜索文件包含‘s’的内容

grep -n "s" 1.txt  #搜索文件1.txt中包含s的行,并显示行号

例2:搜索文件的内容

grep -n '-' a  #搜索文件a中,包含“-”的行,并显示行号
grep -vn '-'a  #搜索文件a中,不包含“-”的行,并显示行号
grep -n '*' a  #搜索文件a中,不包含“*”的行,并显示行号

例3:搜索有连续两个o字符“oo”的字串

这时候就得要使用到限定范围的字符 {} 了。 但因为 { } 的符号在 shell 是有特殊意义的,因此, 我们必须要使用字符“ \ ”来让他失去特殊意义才行。

grep -n 'o\{2\}' p  #在p文件中搜索有连续两个o字符“oo”的字串

x\{m\} 重复字x字符m次,
eg:‘c\{5\}匹配包含等于5个c的行

例4:在多个文件中搜索包含“li”的行

grep -n 'li' c a  #搜索当前目录下文件a和c中包含‘li’的行
grep 'any' *  #搜索当前目录下的所有文件中包含‘any’的行

例5:搜索有a/b/c/d的行

grep -n '[a-d]' tmp

例6:搜索指定前后内容的行

grep -n "[^a]ail" /etc/passwd  #第一个字母不是a,后面有ail的内容
grep -n "[^a]*lse" /etc/passwd  #第一个字母不是a,且以lse结尾的内容

wc

  • 功能描述:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。字符数包括空格,和回车键。

  • 语法:
    wc [选项] 文件列表

  • 选项:
    【操作系统实验】Ubuntu Linux 虚拟机文件查找相关命令_第10张图片

例1:统计行数、字节数、字数

wc -lcw 1.txt  #统计1.txt 文件的行数、字节数、字数

例2:统计文件的字数等信息

wc –c test1  #统计文件test1字节数
wc –w test1  #统计文件test1字数
wc –l test1  #统计文件test1行数
wc –L test1  #统计文件test1最长行长度

管道

  • 管道(Pipeline):一个由标准输入输出链接起来的进程集合,是一个连接两个进程的连接器。

  • 管道的命令操作符是:“|”,它将操作符左侧命令的输出信息(stdout)作为操作符右侧命令的输入信息(stdin)。

管道使用时需要注意以下几点:
1)管道是单向的,一端只能输入,另一端只能用于输出,遵循“先进先出”原则。
2)管道命令只处理前一个命令的正确输出,如果输出的是错误信息,则不处理。
3)管道操作符右侧命令,必须能够接收标准输入流命令。
管道分为普通管道和命名管道两种。这里所讲的管道是普通管道。

例1:查找文件内容并显示、统计

cat a1.txt|grep "a"  #查找文件a1.txt中包含a的字符串并显示
cat a1.txt|grep "a"|wc -l  #查找文件a1.txt中包含a的字符串并统计行数,随后显示统计结果

例2:查找文件内容进行统计后显示

cat 1.txt|grep “s”|wc –l  #统计文件1.txt中包含s的字符串行数,并显示
cat 1.txt|grep “s”|wc –w  #统计文件1.txt中包含s的字符串字数,并显示
cat 1.txt|grep “s”|wc –c  #统计文件1.txt中包含s的字符串字节数,并显示

例3:查找命令的输出

```bash
ls -l|grep '^d'  #通过管道过滤ls -l输出内容,只显示以d开头的行




---



你可能感兴趣的:(操作系统实验,&,Ubuntu,Linux,linux,ubuntu,运维,服务器,算法)