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博客icon-default.png?t=N7T8https://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  断点续传

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

静下心来敲木鱼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值