【Python知识点梳理】14.Linux文件查找与编辑器使用

14.Linux文件查找与编辑器使用



1、文件查找命令

1.1、which命令

  which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令,此命令会去搜索$PATH环境变量中的目录路径。
  可以使用echo $PATH查看环境变量:

echo $PATH

  which命令中的路径使用":"号分隔,which命令会在这些路径下去搜索。
  which是根据使用者所配置的$PATH变量内的目录去搜寻可运行档的。所以,不同的$PATH配置内容所找到的命令会不一样。
  语法: which [系统命令]
 which pwd
 which adduser
在这里插入图片描述

1.2、whereis命令

  whereis与which功能相似,都可以查找到命令的绝对路径。不同的是which会列出这个命令的别名记录,而whereis会显示出这个命令的帮助文档所在位置。
  语法:whereis [选项] [系统命令]
  选项:
 -b:只查找二进制文件;
 -B<目录>:只在设置的目录下查找二进制文件;
 -f:不显示文件名前的路径名称;
 -m:只查找说明文件;
 -M<目录>:只在设置的目录下查找说明文件;
 -s:只查找原始代码文件;
 -S<目录>只在设置的目录下查找原始代码文件;
 -u:查找不包含指定类型的文件。
  whereis命令只能用于程序名的搜索,如果省略选项,则返回所有信息。如果程序没安装,则whereis找不出来,不显示任何目录。
在这里插入图片描述

1.3、locate命令

  locate命令Linux所特有的命令,寻找文件或目录,最好用于快速定位系统命令,配置文件等。locate是在文件数据库中查找,搜索速度很快,如果数据库没有包含这个文件就会找不到。
  格式:locate [搜索关键字]
  配合:updatedb建立整个系统目录文件的数据库(其执行权限为:root)
  备注:
  当在某些目录下创建文件,然后更新数据库之后,并不能用locate命令查找到,原因是系统在更新数据库的配置文件中,设置了一些搜索限制,所以搜索不到。
  输入如下命令可以看到:
  vi /etc/updatedb.conf
  PRUNE_BIND_MOUNTS = "yes"表示开启搜索限制,"no"表示不开启搜索限制;
  PRUNEFS = 表示搜索时,不搜索的文件系统;
  PRUNENAMES = 表示搜索时,不搜索的文件类型;
  PRUNEPATHS = 表示搜索时,不搜索的路径;
  locate、whereis、which命令都遵循搜索限制。
在这里插入图片描述
在这里插入图片描述

1.4、find命令

  find命令用于:在一个目录(及子目录)中搜索文件,可以指定一些匹配条件,如按文件名、文件类型、用户等条件查找文件
  语法:find [搜索路径] [搜索选项] filename
  选项说明:
 -name filename 查找名为filename的文件
 -size +/-大小 按照文件大小来查找,+大于,-小于
 -user username 按文件所属查找
 -ctime -atime -mtime (以天为单位)
 -cmin -amin -mmin (以分钟为单位)
 -type 按文件的类型
 -inum 根据i节点进行查找
 -group 组名 按所属组来查找
 -a and 逻辑与 -o or 逻辑或
 -exec 或 -ok command {} ; 将查到的文件执行command操作,{}和;之间有空格,固定格式。
  提示:如果find命令省略路径不写,表示从当前路径开始查找,find可以结合通配符使用。

1.4.1、find命令:-name选项

  命令:find /etc -name 文件名
  注意:尽量缩小查找范围,不要在根目录下查找(1、查找速度非常慢;2、占用大量系统资源)。占用系统资源越少越好,而且尽量在服务器压力较小时用find进行查找。
  find -name查找结果与Windows的不同:Windows会把所有包含init关键词的文件全都列出来,Linux只会匹配init关键词。
  使用通配符:
*:用于匹配任意字符
find /etc -name init* # 查找所有以init开头的文件
find /etc -name init # init左右都没有空格,用于查找所有包含init关键词的  文件
?:用于匹配单个字符
find /etc -name init??? # 这个文件会有七个字符
在这里插入图片描述
在这里插入图片描述

1.4.2、ffind命令:-size 选项

  命令:find /etc -size 文件大小
  文件大小:以数据块为单位的,512字节 = 0.5KB, 1K = 2Blocks。

find /etc -size +204800  # 在/etc下查找大于80MB大于100MB的文件 
find /etc -size -204800  # 在/etc下查找大于80MB小于100MB的文件 
find /etc -size 204800    # 在/etc下查找等于100MB的文件,不常用! 
find /etc -size +10k     # 在/etc下查找大于10K的文件

在这里插入图片描述

1.4.3、find命令:-user 选项

  命令:find /etc -user username 查找属于username的文件。
在这里插入图片描述

1.4.4、 find命令:- 时间选项

  以天为单位:ctime,atime,mtime
  以分钟为单位:cmin,amin,mmin # 更为常用
  c-change改变:表示文件的属性被修改过,所有者,所属组,权限
  access访问:文件被浏览过
  m-modify修改:文件内容被修改过
  - 多长时间之内
  + 超过多少时间

find /etc -mtime -1    //查找/etc目录下一天之内文件内容被修改过的文件 
find /etc -amin -60    //查找/etc目录下60分钟内被浏览过的文件 
find /home -cmin -120  //查找/home目录下2小时内文件属性属性被修改过的文件

在这里插入图片描述

1.4.5、find命令:-type选项

  命令:find /etc -type 文件类型
  文件类型:
 f 二进制文件
 l 软链接文件
 d 目录

find /etc -type f 
find /etc -type l

在这里插入图片描述

1.4.6、find命令:-inum选项

  find -inum:根据i节点进行查找。
在这里插入图片描述

1.4.7、find命令:-group 选项

  find -group:根据用户组的名称查找。
在这里插入图片描述

1.4.8、find命令:-逻辑与、或选项

  -a:and 逻辑与
  -o:or 逻辑或

find /etc -size +163840 -a -size 204800 # 查找>80M,<100M的文件 
find /etc -name init* -a -type f      # 查找名为init并且为二进制的文件,并不包含目录

在这里插入图片描述

1.4.9、find命令:-exec 选项¶

  命令:find [路径] [选项] -exec [命令] {} ; # 固定格式
 {}:find的查询结果
 \ :转义符-使得符号命令使用本身的含义
 ; :语句结束(英文分号)

find /etc -name inittab -exec ls -l {} \;  # 在/etc下查找inittab文件并显示其详细信息 
find /home -user sax -exec rm -rf {} \;   # 删除用户sax所有的文件 

在这里插入图片描述

1.4.10、which、whereis、locate、find的区别

  1.which:常用于查找可直接执行的命令。只能查找可执行文件,该命令基本只在$PATH路径中搜索,查找范围最小,查找速度快。默认只返回第一个匹配的文件路径,通过选项-a可以返回所有匹配结果。
  2.whereis:不只可以查找命令,其他文件类型都可以(man中说只能查命令、源文件和man文件,实际测试可以查大多数文件)。在$PATH路径基础上增加了一些系统目录的查找,查找范围比which稍大,查找速度快。可以通过-b选项,限定只搜索二进制文件。
  3.locate:超快速查找任意文件。它会从linux内置的索引数据库查找文件的路径,索引速度超快。刚刚新建的文件可能需要一定时间才能加入该索引数据库,可以通过执行updatedb命令来强制更新一次索引,这样确保不会遗漏文件。该命令通常会返回大量匹配项,可以使用-r选项通过正则表达式来精确匹配。
  4.find:直接搜索整个文件目录,默认直接从根目录开始搜索,建议在以上命令都无法解决问题时才用它,功能最强大但速度超慢。除非你指定一个很小的搜索范围。通过-name选项指定要查找的文件名,支持通配符。


2、grep、管道、重定向

2.1、grep命令

  grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
  说明:
 -E选项使用正则表达式
 在多个文件中查找 grep xxx file_1 file_2 file_3…
 输出包含匹配字符串的行数 -n 选项
 统计文件或者文本中包含匹配字符串的行数 -c 选项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2、管道符 |

  |:管道符的作用,将左边的输出当右边的输入。
在这里插入图片描述

2.3、输出重定向

  >:将输出重定向到文件。
  >>:将输出重定向追加到文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


3、文件打包、解包命令

  -cvf、-xvf:

tar -cvf 打包文件名.tar 被打包的文件/路径

 -c 创建一个新的归档
 -v 详细地列出处理的文件
 -f 使用归档文件
 -x 将打包过的文件解包

tar -xvf 打包过的文件.tar

  提示:-f 选项必须放在最后面
在这里插入图片描述
在这里插入图片描述


4、压缩、解压命令

4.1、gzip命令:-zcvf、-zxvf

  gzip一般跟.tar一起使用,完成打包压缩。
  tar只负责打包并没有做压缩,使用-zcvf、-zxvf选项可以调用gzip压缩命令,完成打包压缩。使用gzip打包压缩的文件名,一般命名成xxx.tar.gz区别与其他文件。
  压缩文件:

tar -zcvf xxx.tar.gz A.. B.. C..

  解压缩文件(当前文件夹):

tar -zxvf xxx.tar.gz 

  解压缩到指定路径

tar -zxvf xxx.tar.gz -C 目标路径       

  -C:指定解压到的路径目录(解压的目录必须存在)
在这里插入图片描述

4.2、bzip2命令:-jcvf -jxvf

  bzip2使用方式跟gzip差不多,也是由tar去调用,使用-jcvf、-jxvf选项
bzip2压缩的文件命名采用 xxx.tar.bz2
  压缩文件:

tar -jcvf xxx.tar.gz A.. B.. C..

  解压缩文件(当前文件夹):

tar -jxvf xxx.tar.gz 

  解压缩到指定路径

tar -jxvf xxx.tar.gz -C 目标路径        

  -C:指定解压到的路径目录(解压的目录必须存在)
在这里插入图片描述


5、Ubuntu软件管理

  软件安装:

sudo apt install [软件包]

  软件更新:

sudo apt upgrade [软件包]

  软件卸载:

sudo apt remove [软件包]

在这里插入图片描述


6、vim编辑器

  安装Vim:

sudo apt install vim

  vim三种模式:命令模式、插入模式、末行模式。
在这里插入图片描述在这里插入图片描述

6.1、命令模式

  使用vim打开文件的时候,就进到命令模式。
  vim filename: 打开或新建文件,并将光标置于第一行首
  vim+n filename :打开文件,并将光标置于第n行首
  vim + filename :打开文件,并将光标置于最后一行首
  vim + /pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
  vim - r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
  vim filename…filename :打开多个文件,依次进行编辑
命令模式下只能输入命令不能进行编辑,只有进入输入模式才能做文件编辑。

6.2、插入模式

  插入文本类命令:
 i :在光标前
 I :在当前行首
 a:光标后
 A:在当前行尾
 o:在当前行之下新开一行
 O:在当前行之上新开一行
在这里插入图片描述

6.3、末行模式

  退出及保存:
 : q 退出
 : q! 退出并不保存
 : w 保存
 : wq 退出并保存
 : x 退出并保存

  替换:
 : n1, n2s /word1/word2/g 将n1行到n2行中word1替换成word2, g表示全部替换,不加g则只替换匹配中的第一个;
 : 1, $s /word1/word2/g 从第一行到最后一行寻找word1字符串,并将该字符串取代为word2(常用);
 : 1, $s /word1/word2/gc 从第一行到最后一行寻找word1字符串,并将该字符串取代为word2,且在取代前显示提示字符给用户确认是否需要替换(常用)。
在这里插入图片描述
在这里插入图片描述


总结

  生活中到处都是检索的场景,Windows和Linux系统中也要经常查找文件,一般都是通过命令进行查找。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器视觉小学徒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值