本文主要是介绍Linux基础命令3(常见的文件相关命令--文件创建、查找、编辑等操作),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
查看/搜索目录下的文件
ls
tree
find
locate
查找命令对应的文件
whereis
which
查看文件的相关属性
file
du
stat
查看文件的内容
cat
more
less
head
tail
统计/提取文件信息
grep
wc
cut
编辑文件内容
tr
uniq
diff
sort
创建/删除文件与目录
touch
mkdir
rm
rmdir
文件与目录的复制粘贴
dd
cp
mv
文件与目录的解压缩
tar
zip
rar
其它文件与目录相关命令
pwd 显示当前工作目录
cd 切换工作目录
wget
查看/搜索目录下的文件
ls
ls 【参数】 【文件或目录】————查看目录下的内容(list)
ls -a 查看当前目录下所有的文件(包含.隐藏文件)
ls -l 通过长格式显示文件(显示文件的权限、所有者、大小等信息)
ls -d 目录名称 通过长格式显示此目录的信息(不显示其下的各个文件)
ls -l 文件名 通过长格式显示此文件的信息
ls -h 人性化显示文件大小(一般与l一起使用)
-A:显示指定目录下所有的子目录及文件,包括隐藏文件
-c:按文件的修改时间排序
-C:分成多列显示各行
参数讲解
d 表示文件类型
rwx------ 表示文件权限 Linux 文件权限讲解_静下心来敲木鱼的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/129034749?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167653093116800225570789%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167653093116800225570789&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-13-129034749-null-null.blog_rank_default&utm_term=ls&spm=1018.2226.3001.4450
. 代表文件访问控制列表(.表示没有配置,+表示配置了文件访问控制列表)
1 代表inode数量
root 文件所有者
root 文件所属组
1383 文件的实际大小(并非文件的占用大小)
Feb 5 18:15 文件的修改时间
Music 文件名
tree
tree 【目录】————查看目录结构(查看目录下的子目录)
tree 查看当前目录结构
tree 目录 查看此目录结构
find
find 目标目录【参数】 【名称1】————在目标目录下搜索文件名为名称1的文件
find搜索有点慢
find也可以使用正则表达式作为条件搜索对应文件
参数
-exec 把find命令搜索到的结果交由紧随其后的命令做进一步处理
-ok 与exec类似,只是在之后后续的命令时会提醒一次,更加安全
-perm 匹配权限
-group 匹配所有组
-size 匹配文件的大小(+100kb为超过100kb的文件,-为小于100kb的照片)
-nouser 没有所有者的文件
-nogroup 没有所属组的文件
-o 逻辑或
-a 逻辑与
-uid 指定所有者
| xargs tar cvzf <文件名> 可以将查询的结果压缩
-type 按照文件类型来查看
f:普通文件
d:目录文件
l:符号链接文件
s:套接字文件
b:块设备文件
c:字符设备文件
p:管道文件
例子
find /etc -name fstab 在/etc目录搜索文件名为fstab的文件
find / -user admin 全盘搜索归于admin用户的文件
find / -name fstab -exec cp -rf {} . \; 将搜索结果复制到当前目录下
find /opt -type f -nouser -ok rm{} \; 查找/opt目录下有无属主的文件,如果有直接删除
注意:\转义符 将后面的变量转为单纯的字符
{}是find到的每一个文件,找到一个文件,运行一次命令,找到几个文件就运行几次命令
find /etc -type f \( -nouser -o -nogroup \) 查看/etc目录下没有属主或属组的文件
find /etc -type f -perm -2777 \( -size +20k -size -50k \) 查看/etc目录下具有2777权限的文件,并且文件大小大于20k,小于50k
find / -type d -name fstab 全盘搜索名字为fstab的目录文件
按照文件的时间戳来查找文件
以天为单位
-atime n 依据访问时间来查找文件
- n为整数(1),表示查找n天之前的那一天被访问的文件,在距今前n*24~(n+1)*24小时之间被访问的文件;
- n为正数(+1),表示查找n天之前(不包含n天本身)被访问的文件,在距今前(n+1)*24小时之内被访问的文件
- n为负数(-1),表示查找距今n天内被访问的文件,在距今前n*24小时之内被访问的文件
-mtime 依据修改时间来查找文件
-ctime 依据更改时间来查找文件
以分钟为单位
-amin
-mmin
-cmin
find -atime 1
find -atime +1
按照文件的权限来查找文件
find -perm 220 匹配所有者和所有组只有写权限,其他用户没有权限的文件(只匹配220)
find -perm -220 匹配所有者和组都包含写权限的文件(会匹配220、777等,不会匹配200、020)
find -perm /220 匹配所有者包含写权限或组包含写权限的文件(会匹配200、020、220、777等)
locate
locate 名字————在库文件中快速检索存在该名称的文件名的路径
该搜索是在库文件中搜索(库文件通过updatedb命令生成,第一次使用locate命令时需要执行updatedb生成索引数据库);库文件名称:/var/lib/mlocate/mlocate.db
locate fstab 快速搜索fstab文件
find搜索是需要严格匹配fstab,locate搜索是只要有关键词fstab就匹配
查找命令对应的文件
whereis
whereis 【参数】 命令名————搜索命令所在路径及帮助文档所在位置
-b 只查找可执行文件
-m 之查找帮助文件
whereis也是基于updatedb命令所生成的索引库文件进行搜索,相比于locate更快;与locate不同的是,whereis能快速找到命令本身以及命令所对应的资料(命令手册等)的位置
whereis top 查找topt命令对应的命令本身的位置以及命令所对应资料的位置
which
which 命令名————搜索命令所在的路径和别名
不太关心是否有帮助文档
which top 查找top命令对应的命令本身的位置和别名(没有别名则不显示)
查看文件的相关属性
file
file 【参数】 文件名————查看文件类型(不要通过颜色区分)
-b 只显示文件类型,不显示文件名称
-c 显示文件名称时不显示文件类型
-s 显示文件的简要信息
-z 不转换压缩文件的格式
-L 支持符号连接
文件类型
普通文件(regular files):存储数据信息,细分为二进制文件(可执行程序、图像等)和文本文件(使用ASCII或Unicode等字符编码)
目录文件(Directories):存放文件和其它目录的一种特殊文件
符号链接文件(Links):类似于Windows的快捷方式
套接字文件(Sockets):与网络通信相关的文件类型
设备文件(Device files):将I/O设备视为特殊文件,不同的设别对应不同的名称(例如sda、eth0等);分为块设备和字符设备两种
管道文件(FIFOs):用于进程间通信的特殊文件
du
du 【参数】 【文件或目录】————查看当前指定文件或目录(会递归显示子目录)占用磁盘空间大小
-h 以容易阅读的方式显示(KB为单位)
-m 以MB为单位输出
-s 显示目录下所有文件总的占用大小
du -h --max-depth=1 只显示第一级目录下所使用的硬盘空间数
stat
stat 文件———— 查看文件的存储细节和时间等信息(status)
stat Music/ 查看目录Music的时间信息
access: 最后一次查看文件内容的时间(访问时间)
change:最后一次修改文件属性的时间(更换时间)
modify:最后一次修改文件内容的时间(修改时间)
ls -l 查看文件显示出来的时间指的是最后修改的时间
修改文件内容后,为什么c和m的时间有时候会一起更改?
因为修改文件内容后,不仅文件内容改变了,文件的大小也可能会改变
查看文件的内容
cat
cat 【参数】 文件名————查看内容较少的纯文本文件(concatenate)
-b 对输出内容中的非空行标注行号
-n 对输出内容中的所有行标注行号
more
more 文件名————查看内容较多的纯文本文件(一页一页分屏显示文件的内容)
常用的操作命令
Enter 向下n行;默认1行
空格键 向下滚动一屏
ctrl+b/b 返回上一屏
q 中途退出more;当浏览到最后一行时会自动退出
-num 这里的num是一个数字,用来指定分页显示时每页的行数。
+num 指定从文件的第num行开始显示
浏览到最后一页会自动退出
less
less 文件————查看内容较多的纯文本文件,并且具有搜索功能
man命令就是通过调用less来查看帮助文档的,所以less和man的操作都是一致的
常用操作命令
Enter 向下移动一行
y 向上移动一行
空格键 向下滚动一屏
b 向上滚动一屏
? 向上搜索“字符串”的功能
/ 向下搜索“字符串”的功能
n 查找下一个搜索的内容
浏览到最后一也不会自动退出,需要输入q来退出
head
head 【参数】 文件名————用于查看文件的前N行
-n num:查看文件的前num行
-c num:显示指定文件的前num个字符
head -n 10 文件名 查看文件的前10行(默认前10行)
tail
tail 【参数】 文件名————查看文件的后N行或刷新文件的最新内容
-n num 查看文件的末尾num行
-c num 显示指定文件的末尾num个字符
-f 表示持续侦测文件按内容,ctrl+c结束侦测
+num 从第num行开始显示指定文件的内容
tail -n 10 文件名 查看文件的后10行
tail -f /var/log/messages 持续刷新日志文件并显示出来
统计/提取文件信息
grep
grep 【参数】 字符串 文件名———— 按照行做文件的信息提取;显示出文件中所有带字符串的行
-n 显示行数
-v 反向选择(列出没有匹配的行)
-i 忽略大小写
-A n 显示匹配到的字符所在的行及其后n行
-B n 显示匹配到的字符所在的行及其前n行
-C n 显示匹配到的字符所在的行及其前后n行
-r 递归搜索目录
-c 对匹配的行计数
-l 只显示包含匹配模式的文件名
-h 抑制包含匹配模式的文件名的显示
grep -rnl "adminI" /var/log 在该目录下查找包含admin内容的文件有哪些
wc
wc 【参数】 文件————对文件做统计工作(word counts);统计文本文件的行数、字数、字节数等
-l 只显示行数
-w 显示单词数
-c 显示字节数
wc - l /etc/passwd 显示文件的行数--显示当前系统中有多少个用户(passwd有多少行就有多少个用户)
cut
cut 【参数】文件————按照列做文件的信息提取
-d 间隔符
-f 第几列的信息
cut -d : -f 1 /etc/passwd 以:为间隔符,显示第一列的信息,提取/etc/passwd文件中用户的名字分别是什么
编辑文件内容
tr
替换文本内容中的字符(transform)
tr命令没有能力去读取一个文件,所以我们可以使用cat命令结合管道符将文本内容传递给tr命令进行操作
cat 文件名 | tr [a-z] [A-Z] 将文件中的小写字符都替换为大写字符
|将前面字符的输出结果当作后面字符的输入
执行此命令之后文件的内容不会改变,因为没有执行写入的操作
uniq
uniq 文件名————去除文本中连续的重复行(unique)
只会去除相邻的重复行,不相邻的重复行不会去除
也可以通过排序命令进行先进行排序,然后在通过此uniq进行去重处理
执行此命令之后文件的内容不会改变,因为没有执行写入的操作
diff
diff 【参数】 【文件1】 【文件2】————用来对文件做比较(different)
--brief 比较文件a和b是否相同
-c 将两文件不同的信息显示出来(哪行前有符号就表示不同)
sort
sort 【参数】 文件————对文本内容进行排序(默认按照首字母排序)
-n 按照数值型排序
-u 去除重复行(uniq是去除连续的相同行,sort -u是只要有相同的行就会去除)
-t 指定间隔符
-k 设置字段范围
sort -t : -k 3 -n 文件 文件以:作为分割符分为多段,通过第三段的内容按照数值型排序
sort 文件名 | uniq 对文件排序并去重
执行此命令之后文件的内容不会改变,因为没有执行写入的操作
创建/删除文件与目录
touch
touch 【参数】 文件————创建空白文件(一般文件、文本文件、配置文件),设置文件时间(无法修改文件的更改时间)等
-a 修改 读取时间 atime
-m 修改 修改时间 mtime
-d 同时修改atime和mtime时间
touch 文件名 创建文件
touch -m "2021-2-15 10:11" 文件名 修改文件名的修改时间
mkdir
mkdir 【参数】 【目录】————创建空白目录(make directories)
mkdir 目录1 创建目录1
如果创建的目录有依赖关系(递归关系)的目录 需要使用-p操作
mkdir -p 目录1/目录2/目录3 创建目录1/目录2/目录3,如果有就不会创建,没有则创建
rm
rm 【参数】 【文件或目录】————删除文件或目录命令
-i 删除文件或目录时提示用户
-f 强制删除
-v显示删除过程
-r 删除目录
rm 文件 删除文件
rm -r 目录 删除目录
rm -rf / 全盘删除-删除所有文件(误用)
当删除某个文件后,其实硬盘还是有这个文件的数据的,可以找专业公司或者软件进行全盘搜索
因为每个文件都是由属性块(inode)和数据块(block)两部分组成的,删除文件时只是删除了文件的属性块,会保留数据块;等下一次写入信息的时候才会陆续把原先的数据块信息做替换,所以我们才有机会做数据的恢复,不过Linux数据删除后一般是无法恢复的,并且Linux没有回收站
rmdir
rmdir 【目录名】————删除空目录(remove empty directoies)
只可以删除空目录文件
-p:在删除目录时,一起删除父目录(但父母录中必须没有其他目录及文件)
文件与目录的复制粘贴
dd
dd if=文件 of=文件 count=个数 bs=大小————复制某个文件的某一部分内容;也可以转化文件
dd if= 要复制的文件 of=复制后的文件 count 1 bs=30 按照指定大小30字节复制文件
if 输入的文件名称(input file)
of 输出的文件名称(output file)
bs 设置块的大小(30表示30个字节,50M表示50M)
count 设置要复制的块的个数
每个磁盘的第一个扇区的512字节都非常的重要,所以我们可以通过dd将磁盘的分区表(512字节)做备份
dd if=/dev/sda of=backup bs=512
也可以测试磁盘性能(读写速度)
dd if=/dev/zero of=a bs=1G
/dev/zero 白洞文件-聚宝盆(可以从中提取出来无穷多的数据)
/dev/null 黑洞文件-垃圾箱(一切信息往里面写入时就消除掉了)
cp
cp 【参数】【原始文件】【复制后的文件名称】————复制文件或者目录
-r/R 复制目录(包含目录下的各级子目录)
-i 若目标文件存在则寻味是否覆盖
-p 保留原始文件的属性
-d 若对象为“链接文件”,则保留该“链接文件”的属性(即会创建软连接)
-a 相当于-pdr
-f 强制复制(如果目标文件或目录存在,先删除它们再进行复制(即覆盖),并且不提示用户)
mv
mv 【参数】 【原始文件】 【剪切后的文件】————剪切或重命名文件和目录命令(剪切后会把原始文件删除)
-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新时,或目标文件不存在时,才执行此操作
文件与目录的解压缩
tar
tar 【参数】 目录/文件————打包压缩、解压缩
-f 目标文件名
-C 解压到指定目录
-c 创建压缩文件
-x 解开压缩文件
-z 使用Gzip压缩或解压(压缩格式为.tar.gz)
-j 使用bzip2压缩或解压(压缩格式为.tar.bz2)
-v 显示过程
-t 不进行解压,直接查看压缩文件中包含了哪些文件
tar czvf 压缩包.tar.gz 目录/文件 将目录/文件压缩为压缩包.tar.gz
tar xzvf 压缩包.tar.gz -C 目录1 解压压缩包到目录1
在RHEL8中,不用带解压格式,系统会根据文件自动识别
zip
zip/unzip 【参数】 目录/文件 ——将文件压缩和解压缩(zip压缩格式)
-r 递归处理
rar
rar/unrar 【参数】 目录/文件 ——将文件压缩和解压缩(rar压缩格式)
a 添加到压缩文件
e 当前路径
x 绝对路径
例子:rar a test.rar 123 将123文件添加到压缩文件test.rar中
unrar e test.rar 解压缩当前路径的test.rar文件
注意:rar默认系统没有安装,需要自己安装
其它文件与目录相关命令
pwd 显示当前工作目录
pwd————显示当前所在的绝对路径(print working directory)
什么是绝对路径和相对路径
绝对路径就是从根目录一直到目标文件的目录的完整路径
相对路径是相对于当前路径的路径
cd 切换工作目录
cd 【目录】————切换所在目录
cd /etc/pm 切换到/etc/pm目录(绝对路径)
cd pm 切换到此目录下的pm目录(相对路径)
cd ~ 返回当前用户的家目录(家目录,保存用户数据的目录)
cd .. 返回到上一级目录(.代表当前目录)
cd - 返回到上一次所在的目录
cd !$ 把上个命令的参数作为cd参数使用
wget
wget 【参数】 网址————下载网页上的文件,也可以验证网页是否正常
wget -P 目录 网址 将网络文件下载到指定目录
-b 后台下载
-r 递归下载
-c 断点续传
这篇关于Linux基础命令3(常见的文件相关命令--文件创建、查找、编辑等操作)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!