linux基础学习(4)-文件相关命令

搜索文件

whereis命令

whereis命令用来定位指令的二进制程序、源代码和man手册等相关文件的路径。

whereis [选项] 参数

选项 含义
-b 只查找二进制文件
-f 不显示文件名前的路径名称
-m 只查找说明文件
-s 只查找源代码文件
-B/M/S<目录> 只在限定的目录下查找二进制/帮助/源代码文件

说明:
whereis并不是在瓷盘中漫无目的的查找,而是在一个数据库中查找的。这也就意味着你使用whereis命令的搜索结果并不一定正确(例如刚刚安装的文件就不会被搜索出来)

which命令

which命令是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。通常用于确定系统中是否安装了指定的软件。

which google-chrome #/usr/bin/google-chrome

type命令

严格意义上并不是一个检索命令,它用于区分某个命令是shell自带的还是外部提供的。如果一个命令是外部提供的,使用-p参数可以显示命令的路径,相当于which命令。

type cd #cd是shell内建的
type google-chrome #google-chrome in /usr/bin/google-chrome

find命令

find是linux下最强大的文件搜索命令,但是其效率是非常差的,因为不再根据数据库搜索,而是遍历整个磁盘。

find path -option [ -print ] [ -exec -ok command ] {} ;
path:表示find命令所查找的目录,可以使用. ~ /等,默认但前文件夹
-option:表示查询的参数
-print:表示将查找的文件输出到标准输出,默认
-exec:对查找到的文件执行该参数所给数的shell命令,相应命令的形式为 command {} ;
-ok:与exec类似,但选项更加安全,在执行每一个命令之前,都会给出提示让用于确认执行
解释下command {} ;
{}相当于一个占位符,find寻找的文件会替换它, 而分号是结束符号,但是在shell中分号有特殊意义所以需要使用\转义。
其意义就是,command find得到的文件 ;
-optin参数:
-name 按照文件名查找文件
-iname 按照文件名查找,但是忽略大小写
-perm 按照文件权限来查找文件
-type 查找某一类型文件 后面接 b-块设备文件 c-字符设备文件 d-目录 p-管道文件 f-普通文件 l-符号链接文件 s-socket文件
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后N天访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后N天被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后N天被改变文件数据的文件
n的写法有 n 表示n小时/天的那时候, +n表示n小时/天以前的所有, -n表示n小时/天之内
-size nc/b/w/k/M/G c-字节 b-512字节默认 w-1024字节 k-1kb M-1Mb G-1Gb
size后面的n一样, n-表示确定的n字节, +n表示大于n字节 -n表示小于n字节

实例:

find ~ -name "*.png" #搜索家目录下所有png文件
find / -mtime -1 -size +10M -exec ls -l {} ; #搜索1天内状态变化的大于10M的文件并用ls -l列出

上面只是介绍了find命令的一些常用方法和选项,find命令非常强大,强大到可以用一本书来描述,只需要记着find可以搜索几乎你想到的所有文件以任何方法,在你不知道怎么用的时候可以百度一下。

打包和压缩文件

打包也称为归档,指的是一个文件或目录的集合。归档文件是没有经过压缩的,它占用的空间是其中所有文件和目录的总和。
与归档类似,压缩文件也是一个文件和目录的集合,且这个几个也被存储在一个文件中,但他们的不同在于,压缩文件采用不同的存储方式,使其所占用的磁盘空间比集合中所有文件大小的总和要小。
linux下,常用的归档工具有2个 tar和dd,常用的压缩命令有很多。

tar命令打包解包

linux下最常用的归档命令就是tar。使用tar命令归档的包通常称为tar包,tar包文件都是以.tar结尾的。

tar命令打包

tar [选项] 包名 源文件或目录

选项 含义
-c 将多个文件或目录进行打包
-A 追加tar文件到归档文件
-f 包名 指定包的文件名。包的扩展名是用来给其他人识别的,所以一定要正确指定扩展名(虽然并不必须)
-v 显示打包过程

常用实例:
tar -cvf tar_name.tar file1 file2 test/ test1/... #打包文件

tar命令解包

tar [选项] 包名

选项 含义
-x 对tar包作解包操作
-f 指定要解压的tar包名
-t 只查看内容,不解包
-C 目录 指定解包目录
-v 显示解打包具体过程

常用实例:
tar -xvf test.tar #解包test.tar
tar -tvf test.tar #查看test.tar中的内容
tar -xvf test.tar -C ./testDir #解包test.tar到当前目录的tstDir目录下

使用tar命令作压缩/解压缩操作

上面讲的tar文件仅仅是打包,而实际上还可以在打包的基础上进行压缩。
*tar.gz *tar.bz2 *tar.xz这样的文件名是最常见的,其中tar表示tar打包,而gz bz2 xz等都是压缩格式。
在上面打包时添加参数可以直接进行压缩/解压缩操作:

  • z:压缩/解压缩.tar.gz格式
  • j:压缩/解压缩.tar.bz2格式
  • J:压缩/解压缩.tar.xz格式

常用实例:
tar -zcvf test.tar.gz file1 file2 test/... #压缩.tar.gz包
tar -zxcf test.tar.gz #解压缩.tar.gz包

其他压缩命令

还有一些常用的压缩文件,比如通用多个zip rar格式,linux中通用的gz bz2格式等。

zip压缩文件或目录/unzip解压

zip [选项] 压缩包名 源文件或目录

选项 含义
-r 递归压缩,压缩目录时使用
-m 将文件压缩后删除源文件
-v 显示压缩过程
-压缩级别 1~9数字,越高效果越好也越慢
-u 更新压缩文件即向其中添加文件

unzip [选项] 压缩包名

选项 含义
-d目录名 将压缩文件解压到指定目录下
-n 解压时不覆盖已经存在的文件
-o 解压时覆盖已经存在的文件,并且无需用户确认
-v 查看压缩文件的详细信息而不解压

常用实例:
zip -r test.zip file1 file2 test/ #压缩文件/文件夹到test.zip文件中
unzip test.zip #解压缩文件
unzip -v test.zip #查看压缩文件中的内容

gzip压缩文件/gunzip解压

gzip是linux下常用的压缩命令,其扩展名为.gz

要强调一下,gzip命令只能用来压缩文件,不能用来压缩目录,即便指定了目录,也只能压缩目录内的所有文件
所以通常是将文件打包在进行压缩 这也就是 tar.gz .gz的区别。

使用方法:

gzip [选项] 源文件
需要注意的是,gizp命令默认删除源文件!!!

选项 含义
-d 对文件进行解压缩
-r 递归压缩指定目录下以及子目录的所有文件

gunzip [选项] 压缩文件

选项 含义
-r 递归处理,解压缩指定目录下以及子目录下的所有文件
-l 列出压缩内容
-v 显示命令过程

常用实例:
gzip file1 file2 ...
gunzip test.gz #等同于 gzip -d test.gz

bzip2压缩文件/bunzip2解压

bzip2命令类似于gzip命令,也是只能对文件进行压缩,多与目录只能压缩该目录及子目录下的所有文件。当执行压缩任务后,会生成一个.bz2为后缀的压缩包。

bzip2 [选项] 源文件

选项 含义
-d 对bz2文件进行解压缩
-k bzip2在压缩或解压缩后会删除源文件,-k可以保留源文件

bunzip2 [选项] 压缩文件

选项 含义
-k 保留压缩文件,默认删除
-L 列出压缩文件内容
-v 显示命令执行过程

编辑文件

linux系统下默认的文本编辑器是vi(vim),而图形界面下大多数发行版使用的都是gedit。
当然你也可以使用vscode等。

文本处理

在linux系统中一切皆文件,并且linux系统总是倾向于文本的。这也决定了文本处理在linux系统中的重要性。有可能有人要问vim编辑器不是很好吗,vim允许我们使用键盘、鼠标来对文本内容进行交互式修改,但是在某些场景中,我们可能需要实现对文本内容作自动化的处理,而不是手工处理。

文本查看命令

linux 有5个基本的文本查看命令:cat more less head tail

cat 文件名
cat命令用于查看文件内容时,不论文件内容多少,都会一次性打印出来,这也就决定了cat命令适合查看不太大的文件。
more 文件名
more命令可以分页显示文本文件的内容。执行后会打开一个交互界面
q-退出 v-在当前行启动一个编辑器(默认vi) 回车-向下移动一行 空格-向下移动一页 /字符串-搜索指定字符串 d-向下移动半页 b-向上移动一页
less 文件名
less命令可以看作more命令的高级版本,最大的不同在于more命令浏览文件内容时,只能不断向后翻页,而less可以向前也可以向后,并且more在阅读到文件结束时退出而less不会。less依然提供了一个交互界面,more中的操作大多数得到继承
head [-n N] 文件名 #N为数字表示查看的行数,默认10行
head命令用于显示指定文件的前若干行
tail [-n N/-f] 文件名 #-f表示输出文件变化后新增加的数据
与head相对,tail可以查看文件末尾若干行的数据,此外还可以使用-f选项来监听文件新增加的内容。在此模式下光标并不会退出命令,而是每隔一秒检查以下文件是否增加新的内容,通常用来查看日志起到实时监控的作用

linux输入输出重定向

默认情况下,linux中标准的输入设备默认是键盘,标准的输出设备默认是显示器。而重定向就是重新指定设备来代替键盘/显示器作为新的输入/输出设备。(通常情况下用文件或命令的执行结果来代替键盘作为新的输入设备,而新的输出设备通常指的就是文件)

输入重定向:

命令符号格式 作用
命令 < 文件 将指定文件作为命令的输入设备
命令 << 分界符 表示从标准输入设备(键盘)中读入,直到遇到分界符才停止,这个分界符是自定义的字符串

输出重定向:

命令符号格式 作用
命令 > 文件 将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,则会清空数据
命令 >> 文件 与上面不一样的是,如果文件包含数据,则写在原有内容的后面

linux三剑客- grep sed awk

grep是一个使用正则表达式来检索文件内容的工具。其实就是个字符串搜索工具,但是它可以使用强大的正则表达式,所以其用法多变。

grep [选项] 正则表达式 文件名
-i:忽略大小写
注意:如果是搜索多个文件,grep命令的搜索结果只显示文件中发现匹配正则的文件名,如果搜索的是单个文件,grep命令的结果将显示每一个包含匹配模式的行。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容