欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux目录与文件操作详解(命令大全)

程序员文章站 2022-05-09 23:43:56
...

前言

一:Linux目录结构

1.1:树形目录结构

FHS(Filesystem Hierarchy Standard,目录层次标准)定义了两层规范:

第一层是“/”目录下的各个目录应该放什么数据文件。例如,/etc目录下放置系统的配置文件,而/bin 和/sbin 放置程序及系统命令。

第二层是针对/usr 和/var 这两个目录的子目录来定义,例如:/var/log下放置系统日志文件等。

CentOS系统中的目录和文件数据被组织为一个树形目录结构,所有的分区,目录,文件等都具有一个相同的位置起点—根目录。CentOS系统定位文件或目录位置时,使用斜杠“/”进行分隔(区别于Windows系统中的反斜杠“")。整个树形目录结构中,使用独立的一个”/“表示根目录,根目录是CentOS文件系统的起点,其所在的分区称为根目录。根目录下,CentOS系统将默认建立一些特殊的子目录,分别具有不同的用途。

1.2:常见的子目录及其作用

子目录 作用
/root 管理的家目录(宿主目录)
/home 普通用户的家目录
/bin 所有用户的命令文件目录。bin是binary的缩写,这一目录存放了所有用户都可以执行的且经常使用的命令。如cp,ls等。
/sbin 管理员命令文件目录。存放系统中最基本的管理命令,一般管理员用户才有权限执行。
/boot 启动分区(grub启动菜单,压缩内核等。)此目录是系统内核存放的目录,同时也是系统启动时所需文件的存放目录。
/usr 启动程序目录。存放其他的用户应用程序,通常还被划分成很多子目录,用于存放不同类型的应用程序。
/etc 配置文件目录。此目录保存有关系统设置与管理的文件。
/var 可变长文件(日志)。存放系统中经常需要变化的一些文件,如系统日志文件,用户邮箱目录等。
/dev 设备文件目录(磁盘,光驱等)。此目录保存了接口设备文件。
/tmp 临时文件
/proc 硬件信息(CPU,内存)
/lib 服务管理文件(systemctl)/lib/systemd/sysem/

二:查看及检索文件

2.1:查看文件内容

2.11:cat命令—显示并连接(concatenate)文件的内容
cat命令用途 cat命令短板
显示出文件的内容。cat命令本来用于连接多个文件的内容,但在实际使用中更多的用于查看文件内容。cat命令是应用最为广泛的文件内容查看命令。 无法翻页,只能看到屏幕的显示信息
cat命令的基本使用格式
cat [选项]文件名  可以同时查看多个文件的内容,可以添加多个文件路径作为查看对象。
例如:查看网卡配置文件中的内容,并了解其配置信息。
[aaa@qq.com ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
例如:查看多个文件内容
[aaa@qq.com ~]# cat /etc/passwd /etc/passwd-

2.12:more命令

使用cat命令可以非常简单的直接显示出整个文件的内容,但是当文件中的内容较多时,很可能只能看到最后一部分信息,而文件前面的大部分内容却来不及看到。而more和less命令通过采用全屏的方式分页显示文件,便于我们从头到尾仔细的阅读文件内容。

more命令是及哦啊早出现的分页显示命令,表示文件内容还有更多(more)的意思。less命令是较晚出现的分页显示命令,提供了比早期more命令更多的一些扩展功能。两个命令的用法基本相同。

more命令交互操作方法 解释
Enter键 向下逐行滚动
空格键 向下翻一屏
q键 退出
more命令用途 more命令短板
全屏方式分页显示文件内容,解决了无图形化界面只能看到尾页信息的问题。 看到最后一页无法向上翻页
more命令的基本使用格式
more [选项]文件名
例如:分屏查看/etc/passwd 的内容
[aaa@qq.com ~]# more /etc/passwd

2.13:less命令

与more命令的用法基本相同。

less命令交互操作方法 解释
Page Up键/Page Down键 向上翻页/向下翻页
空格键 查找内容
n键 下一个命令
N键 上一个内容
其他命令与more命令基本类似
less命令的基本使用格式
less [选项]文件名
例如:分屏查看 /etc/passwd 的内容
[aaa@qq.com ~]# less /etc/passwd

2.14:init命令功能(Linux操作系统补充命令)
命令 功能
init 0 关机
init 1 单用户模式(系统维护,**密码)
init 2 多用户模式没有网络
init 3 多用户有网络
init 4 保留
init 5 多用户模式图形化界面,且有网络
init 6/reboot 重启
2.15:head命令

head 和tail是一对作用相反的命令,前者用于显示文件开头的一部分内容,后者用于显示文件末尾的一部分内容,可以使用“n”选项(n为具体的行数)指定需要显示多少行的内容。若不指定行数,默认只显示十行。

head命令的基本使用格式
head -n 文件名
例如显示目标文件“/etc/passwd的头四行”
[aaa@qq.com ~]# head -4 /etc/passwd

2.16:tail命令

tail命令与head命令正好相反,用户查看文件末尾的内容。tail命令通常用来查看系统日志(因为较新的日志记录总是添加到文件最后),以便观察网络访问,服务调试等相关信息。配合“-f”选项使用时,还可以跟踪文件尾部内容 的动态更新,便于实时监控文件内容的变化。

例如,一下操作可以查看系统公共日志文件/var/log/message的最后十行内容,并在末尾跟踪显示改文件中的新纪录的内容。(按Ctrl + C 组合键终止)。

[aaa@qq.com ~]# tail -f /var/log/messages
tail命令的基本使用格式
tail -n 文件名
或者
tail -f  文件名

2.2:统计和检索文件内容

在维护Linux系统的过程中,除了查看文件内容以外,有时候还需要对文件内容进行统计,或者查找符合条件的文本内容。

2.21:wc命令–统计文件内容中的单词数量,行数等信息

wc命令用于统计文件内容中包含的行数,单词数,字节数等信息,使用文件名作为参数,可以同时统计多个文件。

wc命令交互操作方法 解释
-c 统计文件中内容的字节数
-l 统计文件内容中的行数
-w 统计文件内容中的单词个数(以空格或制表位作为分隔)

使用不带任何选项的wc命令时,默认将统计指定文件的字节数,行数,单词个数(相当于同时使用-c , -l , -w 三个选项)

例如 
[aaa@qq.com ~]# wc /etc/passwd
  41   79 2136 /etc/passwd
wc命令使用基本格式
wc [选项] 目标文件

当文件的行数,单词数或字节数具有特定的意义时,使用wc命令可以巧妙的获得一些特殊信息。

例如,Linux系统中的用户账号数据保存在/etc/passwd文件中,其中每一行记录对应一个用户,则我们可以统计出当前Linux系统中拥有的用户账号数量。

[aaa@qq.com ~]# wc -l /etc/passwd
41 /etc/passwd

若将wc命令与管道符号一起使用,还可以对命令输出结果进行统计,例如,若要统计/etc/目录下包含多少个扩展名为“.conf"的文件,可以先通过”find /etc-name"*conf 命令找出符合条件的文件位置,由于find命令输出结果也是每行一个文件记录,因此只需结合管道符号执行“wc -l”操作即可的粗符合条件的文件数量。

[aaa@qq.com ~]# find /etc-name"*.conf" | wc -l

2.22:检索和过滤文件内容grep命令

grep命令用于在文件中查找并显示包含指定字符串的行,可以直接指定关键字符串作为查找条件,也可以使用复杂的条件表达式(例如,“^word”标识以word开头,“wordKaTeX parse error: Expected group after '^' at position 14: ""表示以word结尾,"^̲"表示空行)。

grep命令的使用基本格式
grep [选项] 查找条件目标文件
例如:在文件中查找包含“a”字符串的行
[aaa@qq.com ~]# grep "a" /etc/passwd  

grep命令交互操作方法 解释
-i 查找内容时忽略大小写
-v 反转查找,即显示与查找条件不符的行
查找条件设置(要查找的字符占以双引号括起来) 解释
“^…"" 表示以…开头
”…$“ 表示以…结尾
“^$” 表示空行
例如:显示 /etc/passwd文件中以“a”开头和空行以外的内容
[aaa@qq.com ~]# grep -v "^a" /etc/passwd  | grep -v "^$"

三:备份与恢复文档

在Linux系统中,最简单的文件和目录备份工具就是cp复制命令。但是当需要备份的文件,目录数量较多时,仅仅使用cp命令就力不从心,且备份出来的文件数量及空间都会对服务器你产生不小的压力。面对这种情况,我们选择压缩和归档。

gzip和bzip2是Linux系统中使用最多的两个压缩工具,这两个命令都可以压缩指定的文件,或者将已经压缩过的文件进行解压。

3.1:压缩命令gzip , bzip2 命令

使用gzip制作的压缩文件默认的扩展名为“.gz”。

gzip 和 bzip 2命令交互操作方法 解释
-9 压缩文件
-d 解压文件
gunzip= gzip -d 解压文件
gzip命令的使用基本格式
gzip [-9] 文件名               压缩文件
gzip [-d] .gz格式的压缩文件     解压文件
bzip2命令的使用基本格式
bzip [-9] 文件名                压缩文件
bzip [-d] .bz2格式的压缩文件     解压文件

3.2:归档命令tar命令

tar命令主要用于对目录和文件进行归档。

在实际的备份工作中,通常在归档的同时也会将包文件进行压缩(gzip或bzip2),以便节省磁盘空间。

使用tar命令时,选项前的“-”号可以省略。

命令 解释
-c 创建
-x 解压
-v 显示详细信息
-f 执行
-p 保留原有权限
-t 列表查看包内的文件
-C 解压到目标地址
-z gzip格式
-j bzip2格式
tar命令的基本使用格式
tar [选项] 归档及压缩文件名需要归档的源文件或目录         制作归档及压缩包
tar [选项] 归档文件名[-C 目标目录]                     解压并释放(恢复)归档压缩包文件

如果需要对制作的归档文件进行压缩,可以通过“-z” 或 “-j”选项自动调用压缩工具(分别对应gzip,bzip2命令程序)进行压缩。

例如:用tar命令压缩文件(将1.txt文件用tar压缩)
[aaa@qq.com opt]# tar czvf 222.tar.gz 1.txt

例如:用tar命令解压文件(将222.tar.gz解压到/opt/中)
[aaa@qq.com opt]# tar xzvf 222.tar.gz -C /opt/

四:VI文本编辑器

4.1:VI编辑器的工作模式

Linux目录与文件操作详解(命令大全)

VI编辑器的工作模式 解释
命令模式 启动vi编辑器后默认进入命令模式。在该模式中主要完成如光标移动,字符串查找,以及删除,复制,粘贴文件内容等相关操作。
输入模式 该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改或添加新内容。处于输入模式时,vi编辑器的最后一行会出现“–INSERT–”的状态提示信息。
末行模式 该模式中可以设置vi编辑环境,保存文件,退出编辑器,以及对文件内容进行查找,替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符。

命令模式,输入模式和末行模式时vi编辑环境的三种状态,通过不同的按键操作可以再不同模式间进行切换。、

例如:从命令模式按冒号“:”键可以进入末行模式,而如果按a,i,o,O等键可以进入输入模式,在输入模式,末行模式都可以按Esc键返回至命令模式。

4.2:命令模式中的基本操作

4.2.1:光标移动
操作类型 操作键 功能
方向移动 ↑ ,↓,←,→ 上,下,左,右
翻页 Page Down 或Ctrl + F 向下翻动一整夜内容
翻页 Page Up 或 Ctrl + B 向上翻动一整夜内容
行内快速跳转 Home 键 或 “^“. 数字”0” 跳转时行首
行内快速跳转 End键 或 “$“ 跳转到行尾
行间快速跳转 1G 或 gg 跳转到文件的首行
行间快速跳转 G 跳转到文件的末尾行
行间快速跳转 #G 跳转到文件中的第#行
行号显示 :set nu 在编辑器中显示行号
行号显示 :set nonu或setno! 取消编辑器中的行号显示
4.2.2:复制,粘贴,删除
操作类型 操作键 功能
删除 x 或 Del 删除光标处的单个字符
删除 dd 删除当前光标所在行
删除 #dd 删除从光标所在行开始的#行内容
删除 d^ 删除当前光标之前到行首的所有字符
删除 d$ 删除当前光标处到行尾的所有字符
复制 yy 复制当前行整行的内容到剪切板
复制 #yy 复制从光标所在行开始的#行内容
粘贴 p(小写的) 将缓冲区中的内容粘贴到光标位置处之后
粘贴 P(大写的) 粘贴到光标位置处之前
4.2.3:文件内容查找
操作键 功能
/word 从上而下在文件中查找字符串“word”
?word 从下而上在文件中查找字符串“word”
n 定位下一个匹配的被查找字符串
N 定位上一个匹配的被查找字符串
4.2.4:撤销编辑及保存退出
操作键 功能
u 按一次取消最近的操作,重复u键,恢复多步操作
U 用于取消对当前行所做的所有编辑
ZZ 保存当前的文件内容并退出vi编辑器

4.3:末行模式的基本操作

4.3.1:保存文件及退出vi编辑器
功能 命令 备注
保存文件 :w 保存修改的内容
保存文件 :w /root/newfile 另存为其他文件
退出vi :q 未修改退出
退出vi :q! 放弃对文件内容的修改,并退出vi
保存文件退出 vi :wq 保存修改的内容并退出
4.3.2:打开新文件或读入其他文件内容
命令 功能
:e ~/install.log 打开新的文件进行编辑
:r /etc/filesystens 在在当前文件中读入其他文件内容
4.3.3:文件内容替换
命令 功能
:s /old/new 将当前行中查找到的第一个字符“old”串替换为“new”
:s /old/new/g 将当前行中查找到的左右字符串“old”替换为“new”
:#,# s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”
:s /old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认
:% s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new”