搜索文件
查找文件或目录
find
命令格式:find [查找范围] [选项]
选项:
-name <文件名> 匹配文件的名称,支持通配符
-type <文件类型> 匹配文件类型查找(f表示普通文件,
d表示目录)
-size n[ckMG] 匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件,n表示大小,cKMG表示单位)
eg:
fing /usr/bin -name “host*” -type f
(表示查找文件名以host开头的普通文件,“”大部分时候可以省略)
fing /usr/bin -size +1M
(表示查找路径下大小大于1M的文件)
which
命令格式:which [文件、命令行名字]
作用:用来搜索二进制文件、可执行文件或者shell命令行的位置
eg:which find
(查找find命令的位置)
查找/usr/bin目录下名称包含user并且文件大小大于10k的文件
命令:find /usr/bin -name “user” -size +10k
文件内容操作命令
cat(concatenate)
命令格式:
作用:显示文件内容、连接文件内容
eg:cat a.txt
cat a.txt b.txt
head
命令格式:head -n 行数值 [文件名]
作用:显示指定文件的前若干行
eg:head -n 3 /etc/passwd
(查看/etc/passwd文件的前三行)
tail
命令格式:tail -n 行数值 [文件名]
作用:查看文件末尾若干行数据
eg:tail -n 3 /etc/passwd
查看文件/etc/passwd的最后三行
grep
命令格式:grep [内容] [文件名]
作用:以正则表达式进行全局查找以及打印,搜索与字符串匹配的行
选项:
-i 查找时忽略大小写
-n 显示行号
-r 递归搜索子目录
-v 反转查找,输出与查找条件不相符的行
(可以-in -i -n这样查)
eg:grep xiang /etc/passwd
(在/etc/passwd中搜索包含xiang的行)
使用grep命令忽略大小写搜索当前用户家目录中所有的文件和子目录,显示所有包含bash的行,并显示对应的行号。
grep -irn bash ~/.
打包和压缩
打包
常用打包格式:a.tar、a.tar.gz、a.tar.bz2、a.tar.xz。
分类:
无压缩:a.tar 使用tar命令打包数据但是没有压缩
压缩:a.tar.gz、a.tar.bz2、a.tar.xz
选项:
-c 产生出.tar打包文件
-v 列出打包解包的详细过程
-f 指定打包文件的名称
-z 以.gz个格式压缩或解压打包文件
-j 以.bz2的格式压缩或解压打包文件
-J 以.xz的格式压缩或解压打包文件
-x 解包
eg:
打包
tar -czvf 打包文件名.tar.gz源文件或目录
tar -cjvf 打包文件名.tar.bz2源文件或目录
tar -cJvf 打包文件名.tar.xz源文件或目录
tar -cJvf dir.tar.xz dir
(这里最后一个dir是指定的、要打包的文件、目录,中间一项为名字)
解包
tar -zxvf 打包文件名.tar.gz [-C 解压目录]
tar -zxvf 打包文件名.tar.bz2 [-C 解压目录]
tar -xJvf dir.tar.xz dir/
(中间为解压包的名字,最后为路径)
zip
安装zip:
sudo yum install zip unzip (centos/redhat)
sudo apt install zip unzip (deepin/debian/ubuntu)
打包命令格式 :zip [选项] [名字] [目录]
(-r便是递归打包目录)
eg:
zip -r dir.zip dir
(将dir打到成dir.zip)
解压命令格式:unzip dir.zip
(默认是解压到当前目录)
链接
inode
Linux内核为每一个新创建的文件分配一个inode号,文件属性保存在inode,访问文件时,inode被复制到内存里,从而实现文件的快速访问。
硬链接
链接文件和被链接文件必须位于同一个文件系统中(但不同文件系统之间可以创建符号链接)
不能指向目录的硬链接
默认情况下,使用ln命令产生硬链接,两个文件具有相同的inode
(硬链接文件对,删除哪个都不影响对方,只是指定链接计数减少而已,减为0时才从硬盘消失)
命令格式:
ln a.txt c.txt
(c.txt 中内容跟a.txt一致)
符号链接(软链接)
符号链接等价于建立了快捷方式
可以对文件或目录建立符号链接
ln命令加-s选项产生符号链接
🐖:符号链接原文件删除时,链接文件将失效
如果重新给一个同路径同名文件,链接文件又会恢复
命令格式:ln -s a.txt b.txt
(cat b.txt显示的内容就是a.txt的内容,a.txt删除了的话,查看b.txt就无效)