Linux基础命令2(常见的文件相关命令)
创始人
2024-05-23 23:12:28

目录

查找文件命令

pwd  显示当前所在的工作目录(Print working directory)

cd    切换命令(change directory)

ls  查看目录下的文件(list)

tree  查看目录下的子目录(查看目录结构)

find  按照指定条件查找文件所对应的位置

locate   快速搜索文件对应的位置

whereis   快速搜索命令文件对应的位置

which  查找某个命令本身对应的位置

查看文件命令

cat 查看内容较少的纯文本文件(concatenate)

more 查看内容较多的纯文本文件

head 用于查看文件的前N行

tail 查看文件的后N行或刷新文件的最新内容

wc 对文件做统计工作(word counts)

stat  查看文件的存储细节和时间等信息(status)

grep  按照行做文件的信息提取

cut  按照列做文件的信息提取

diff  用来对文件做比较(different)

编辑文件命令

tr  替换文本内容中的字符(transform)

uniq 去除文本中连续的重复行(unique)

sort 对文本内容进行排序(默认按照首字母排序)

touch  创建空白文件,设置文件时间

mkdir  创建空白目录(make directory)

cp  复制文件或者目录命令

mv  剪切或重命名文件和目录命令(剪切后会把原始文件删除)

rm 删除文件或目录命令

dd 复制某个文件的某一部分内容,也可以转化文件

file 查询文件类型(不要通过颜色区分)

tar 打包和压缩命令


Linux系统中的一切都是文件

  所以Linux中的什么都可以更改,包括内核(kernel)

  硬盘都会映射为硬盘文件保存在/dev文件中

  系统的运行状态都会被保存在/proc文件中

Linux中文件不通过后缀来进行区分,通过文件类型来进行区分

Linux的文件可以不加后缀,加后缀只是为了方便区分

Linux是按照权限区分文件类型的


查找文件命令

命令有内置命令与外部命令

 exit、history属于内置命令

 top、reboot、ls等都属于内部命令

查找命令的位置一般用于查找外部命令对应的位置

pwd  显示当前所在的工作目录(Print working directory)

cd    切换命令(change directory)

 cd /etc/pm  切换到/etc/pm目录(绝对路径)

 cd pm        切换到此目录下的pm目录(相对路径)

 cd ~           返回用户的家目录(家目录,保存用户数据的目录)

 cd ..           返回到上一级目录

 cd -            返回到上一次所在的目录

ls  查看目录下的文件(list)

ls -a                     查看当前目录下所有的文件(包含.隐藏文件)

ls -l                      通过长格式显示文件(显示文件的权限、所有者、大小等信息)

ls -ld 目录名称     通过长格式显示此目录的信息

ls -l 文件名          通过长格式显示此文件的信息

tree  查看目录下的子目录(查看目录结构)

tree           查看当前目录结构

tree 目录   查看此目录结构

find  按照指定条件查找文件所对应的位置

可以使用正则表达式作为条件搜索对应文件

find /etc -name fstab               在/etc目录搜索文件名为fstab的文件

find / -user admin                 全盘搜索归于admin用户的文件

find / -name fstab -exec cp -rf {} . \;  将搜索结果复制到当前目录下

-exec 把find命令搜索到的结果交由紧随其后的命令做进一步处理

-perm  匹配权限

-group 匹配所有组

-size   匹配文件的大小(+100kb为超过100kb的文件,-为小于100kb的照片)

find搜索有点慢

locate   快速搜索文件对应的位置

在库文件中搜索(库文件通过updatedb命令生成,第一次使用locate命令时需要执行updatedb生成索引数据库) 库文件名称:/var/lib/mlocate/mlocate.db

locate  fstab  快速搜索fstab文件

  find搜索是需要严格匹配fstab,locate搜索是只要有关键词fstab就匹配

whereis   快速搜索命令文件对应的位置

也是基于updatedb命令所生成的索引库文件进行搜索,相比于licate更快

与locate不同的是,whereis能快速找到命令本身以及命令所对应的资料(命令手册等)的位置

whereis top  查找topt命令对应的命令本身的位置以及命令所对应资料的位置

which  查找某个命令本身对应的位置

 不太关心是否有帮助文档

  which top  查找top命令对应的命令本身的位置


查看文件命令

cat 查看内容较少的纯文本文件(concatenate)

 cat 文件名       查看文件

 -n 显示行号

more 查看内容较多的纯文本文件

more 文件名   查看文件(使用空格或者回车向下翻页)

head 用于查看文件的前N行

 head -n 10 文件名 查看文件的前10行

tail 查看文件的后N行或刷新文件的最新内容

 tail -n 10 文件名          查看文件的后10行

 tail -f /var/log/messages    持续刷新日志文件并显示出来

wc 对文件做统计工作(word counts)

统计文本文件的行数、字数、字节数等

-l只显示行数

-w 显示单词数

-c  显示字节数

wc- l /etc/passwd   显示文件的行数--显示当前系统中有多少个用户(passwd有多少行就有多少个用户)

stat  查看文件的存储细节和时间等信息(status)

stat Music/  查看目录Music的时间信息

 access: 最后一次查看文件内容的时间(访问时间)

 change:最后一次修改文件属性的时间(更换时间)

 modify:最后一次修改文件内容的时间(修改时间)

ls -l 查看文件显示出来的时间指的是最后修改的时间

修改文件内容后,为什么c和m的时间有时候会一起更改?

 因为修改文件内容后,不仅文件内容改变了,文件的大小也可能会改变

grep  按照行做文件的信息提取

 grep 关键词 文件名  显示出所有带关键词的行

 -n 显示行数

 -v 反向选择(列出没有关键字的行)

 -i 忽略大小写

cut  按照列做文件的信息提取

cut -d : -f 1 /etc/passwd  以:为间隔符,显示第一列的信息,提取/etc/passwd文件中用户的名字分别是什么

 -d 间隔符

 -f 第几列的信息

diff  用来对文件做比较(different)

 diff --brief 文件1 文件2      比较文件a和b是否相同

 diff -c 文件1 文件2          将不同的信息显示出来(哪行前有符号就表示不同)

编辑文件命令

tr  替换文本内容中的字符(transform)

tr命令没有能力去读取一个文件,所以我们可以使用cat命令结合管道符将文本内容传递给tr命令进行操作

cat 文件名 | tr [a-z] [A-Z]  将文件中的小写字符都替换为大写字符

  |将前面字符的输出结果当作后面字符的输入

执行此命令之后文件的内容不会改变,因为没有执行写入的操作

uniq 去除文本中连续的重复行(unique)

 uniq 文件名 

 只会去除相邻的重复行,不相邻的重复行不会去除

 可以先进行排序,然后去重

执行此命令之后文件的内容不会改变,因为没有执行写入的操作

sort 对文本内容进行排序(默认按照首字母排序)

sort -t : -k 3 -n 文件    文件以:作为分割符分为多段,通过第三段的内容按照数值型排序

sort 文件名 | uniq      对文件排序并去重

-n 按照数值型排序

-u 去除重复行(uniq是去除连续的相同行,sort -u是只要有相同的行就会去除)

-t  指定间隔符

-k  设置字段范围

执行此命令之后文件的内容不会改变,因为没有执行写入的操作

touch  创建空白文件,设置文件时间

创建一般文件、文本文件、配置文件(无法修改文件的更改时间)

 -a   修改  读取时间  atime

 -m  修改  修改时间  mtime

 -d  同时修改atime和mtime时间

touch 文件名                                          创建文件

touch -m "2021-2-15 10:11"  文件名   修改文件名的修改时间

mkdir  创建空白目录(make directory)

 mkdir 目录1                   创建目录1

 如果创建的目录有依赖关系(递归关系)的目录  需要使用-p操作

 mkdir -p 目录1/目录2/目录3    创建目录1/目录2/目录3,如果有就不会创建

cp  复制文件或者目录命令

cp 原始文件  复制后的文件名称    

cp  -r  原始目录  复制后的目录名称

-r 复制目录

-i 若目标文件存在则寻味是否覆盖

-p 保留原始文件的属性

-d 若对象为“链接文件”,则保留该“链接文件”的属性

-a 相当于-pdr

mv  剪切或重命名文件和目录命令(剪切后会把原始文件删除)

mv 原始文件 剪切后的文件

rm 删除文件或目录命令

rm 文件     删除文件

rm -r 目录   删除目录

rm -rf /      全盘删除-删除所有文件(误用)

-f 强制删除

  -v显示删除过程

当删除某个文件后,其实硬盘还是有这个文件的数据的,可以找专业公司或者软件进行全盘搜索

因为每个文件都是由属性块(inode)和数据块(block)两部分组成的,删除文件时只是删除了文件的属性块,会保留数据块;等下一次写入信息的时候才会陆续把原先的数据块信息做替换,所以我们才有机会做数据的恢复,不过Linux数据删除后一般是无法恢复的,并且Linux没有回收站

dd 复制某个文件的某一部分内容,也可以转化文件

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/zero  of=a  bs=1G

/dev/zero 白洞文件-聚宝盆(可以从中提取出来无穷多的数据)

/dec/null  黑洞文件-垃圾箱(一切信息往里面写入时就消除掉了)

file 查询文件类型(不要通过颜色区分)

file 文件名

tar 打包和压缩命令

tar czvf  压缩包.tar.gz 目录/文件     将目录/文件压缩为压缩包.tar.gz

 -c  创建压缩文件

 -z 使用Gzip压缩或解压(压缩格式为.tar.gz) 

 -v 显示过程

 -f 目标文件名

  -j  使用bzip2压缩或解压(压缩格式为.tar.bz2)

tar xzvf 压缩包.tar.gz -C 目录1    解压压缩包到目录1

  -x  解开压缩文件

  -C  解压到指定目录

在RHEL8中,不用带解压格式,系统会根据文件自动识别

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...