文章目录
Linux目录结构
树形目录结构
根目录
- 所有分区、目录、文件等的位置起点
- 整个树形目录结构中,使用独立的一个“/"表示
Linux操作系统在定位文件或目录位置时,使用斜杠“/”进行分隔(区别于Windows操作系统中的反斜杠“\“)。整个树形目录结构中,使用独立的一个“/“表示根目录,根目录是Linux操作文件系统的起点,其所在的分区称为根分区。在根目录下,Linux
操作系统将默认建立一些特殊的子目录,分别具有不同的用途。
常见子目录的作用
/(根) | /(根)相当于一个入口,文件的总入口,也是唯一入口 |
---|---|
/root | 系统管理员root的宿主目录 |
/home | 普通用户的宿主目录 |
/boot | 系统内核、启动文件 |
/dev | 设备文件 |
/etc | 配置文件 |
/bin | 所有用户可执行的命令 |
/sbin | 管理员可执行管理命令 |
/usr | 应用程序 |
var | 存放系统中经常需要变化的一些文件,如系统日志文件、用户邮箱目录等 |
系统管理员=超级用户 | |
普通用户下的目录=普通用户的宿主目录 |
查看文件内容命令 -cat,more,less
显示出文件的内容命令 -cat
cat [选项] 文件名…
cat命令用于连接(Concatenate)多个文件的内容,实际使用中更多地用于查看文件内容。cat命令是应用最为广泛的文件内容查看命令。使用该命令时,只需要把要查看的文件路径作为参数即可。
查看文件内容命令 -more
全屏方式分页显示文件内容
more [选项] 文件名…
交互操作方法
- 按Enter键向下逐行滚动
- 按空格键向下翻一屏
- 按b键向上翻一屏
- 按q键退出
查看文件内容命令 -less
与more 命令相同,但扩展功能更多
less [选项] 文件名…
交互操作方法
- Page Up向上翻页,Page Down向下翻页
- 按"/'键查找内容,"n"下一个内容,"N"上一个内容
- 其余方法与more命令方法命令基本类似
使用cat命令可以非常简单地直接显示整个文件的内容,但是当文件中的内容较多时,很可能只能看到最后一部分信息,文件前面的大部分内容都来不及看到。而 more和less命令通过采用全屏的方式分页显示文件,便于我们从头到尾仔细地阅读文件内容。
more命令是较早出现的分页显示命令,表示文件内容还有更多(more)的意思,less命令是较晚出现的分页显示命令,提供了比早期more命令更多的一些扩展功能。两个命令的用法基本相同。
yum install httpd -y(使用该命令时需提前连网)
查看文件内容命令 -head、tail
head命令
用途:查看文件开头的一部分内容(默认为10行)
head -n 文件名…
tail命令
用途:查看文件结尾的少部分内容(默认为10行)
tail -n 文件名…
tail -f 文件名
head命令只能查看头部文件
tail命令只能查看尾部文件(-f 为追踪日志)
head 和 tail
是一对作用相反的命令,前者用于显示文件开头的一部分内容,后者用于显示文件末尾的一部分内容。可以使用“-n“选项(n为具体的行数)指定需要显示多少行的内容,若不指定行数,默认只显示十行。
执行“head -4/etc/passwd“命令,可以查看用户账号文件/etc/passwd开头第一行至第四行的内容。
tail命令正好相反,用于查看文件末尾的内容。tail命令通常用于查看系统日志(因为较新的日志记录总是添加到文件最后),以便观察网络访问、服务调试等相关信息。配合*-“选项使用时,还可以跟踪文件尾部内容的动态更新,便于实时监控文件内容的变化。例如,以下操作可以查看系统
公共日志文件/var/log/messages的最后十行内容,并在末尾跟踪显示该文件中新记录的内容(按Ctrl+c组合键终止)
统计文件内容wc命令
统计文件中的单词数量(Word Count)等信息
wc [选项]… 目标文件…
常用命令选项
- -l:统计行数
- -w:统计单词个数
- -c: 统计字节数
- 查找etc下的".conf"文件
检索和过滤文件内容命令grep
在文件中查找并显示包含指定字符串的行
grep [选项]… 查找条件 目标文件
常用命令选项
- -i:查找时忽略大小写
- -v:反转查找,输出与查找条件不相符的行
查找条件设置 - 要查找的字符串以双引号括起来
- "^……“表示以……开头,”……$“表示以……结尾,” ^ $"表示空行(中间没有空格)
压缩命令gzip、bzip2
制作压缩文件
gzip [-9] 文件名
bzip2 [-9] 文件名
解开压缩文件
gzip -d .gz格式的压缩文件
bzip2 -d .bz2格式的压缩文件
备份及恢复文档
归档命令和释放工具 -tar
制作归档文件、释放归档文件
tar [选项]… 归档文件名 源文件或目录
tar [选项]… 归档文件名 [-c 目标目录]
常用命令选项
-c:创建(Create),tar格式的包文件。
-C:解压时指定释放的目标文件夹。
-f:表示使用归档文件。
-j:调用bzip2程序进行压缩或解压。
-p:打包时保留文件及目录的权限。
-P:打包时保留文件及目录的绝对路径。
-t:列表查看包内的文件。
-v:输出详细信息(Verbose)。
-x:解开。tar格式的包文件。
-z:调用gzip程序进行压缩或解压。
一般用组合键
czvf xzvf=czf xzf
cjvf xjvf=cjf xjf
czvf(压缩gzip)
tar -zcvf ky19_etc_backup.tar.gz /etc/
xzvf(解压gzip)
cjvf(压缩bzip2)
xjvf(解压bzip2)
tar命令主要用于对目录和文件进行归档。在实际的备份工作中,通常在归档的同时也会将包文件进行压缩(需要调用前面的gzip或bzip2命令),以节省磁盘空间。使用tar命令时,选项前的“-“号可以省略。
如果需要对制作的归档文件进行压缩,可以通过“-z“或“-j“选项自动调用压缩工具(分别对应gzip、bzip2命令程序)进行压缩。例如,以下操作将会对/etc和/boot目录进行备份,在当前目录下生成名为sysfile.tar.gz的归档压缩包,执行过程中可以看到被归档的文件列表信息。需要注意的是,在备份恢复目录或文件时,最好先将工作路径切换
至目标目录或文件的所在路径,然后在执行备份命令时使用相对路径,以防输入命令时因手误而导致根目录“/”下重要文件损坏。
vi编辑器的工作模式
三种工作模式
- 命令模式、输入模式、末行模式
命令模式:启动vi
编辑器后默认进入命令模式。该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作。
输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改或添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“–INSERT–”的状态提示信息。
末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号”:”提示符。
不同模式之间的切换
命令模式、输入模式和末行模式是vi编辑环境的三种状态,通过不同的按键操作可以在不同的模式间进行切换。例:从命令模式按:(冒号)键可以进入末行模式,按a、i、o等键可以进入输入模式:在输入模式、末行模式均可按Esc键返回命令模式。
在命令模式中,按a、i、o等键可以快速切换至输入模式,同时确定插入点的方式和位置,以便录入文件内容。需要返回命令模式时,按Esc键即可。常见的几个模式切换键及其作用如下。
a:在业时业型生仁坛 止加
A:在光标所在行的末尾(行尾)插入内容。
i:在当前光标位置之前插入内容。
I:在光标所在行的开头(行首)插入内容。
o:在光标所在行的后面插入一个新行。
O:在光标所在行的前面插入一个新行。
命令模式的基本操作
光标移动
操作类型 | 操作键 | 功能 |
---|---|---|
方向移动 | ↑、↓、←、→ | 上、下、左、右 |
翻页 | Page Down或Ctrl+F Page Up或Ctrl+B | 向下翻动一整页内容 向上翻动一整页内容 |
行内快速跳转 | 1G或者gg,G,#G | 跳转到文件的首行 跳转到文件的末尾行 跳转到文件中的第#行 |
行号显示 | :set nu , :set nonu | 在编辑器中显示行号 取消编辑器中的行号显示 |
复制、粘贴、删除
文件内容查找
操作键 | 功能 |
---|---|
/word | 从上而下在文件中查找字符串“word” |
?word | 从下而上在文件中查找字符串“word” |
n | 定位下一个匹配的被查找字符串 |
N | 定位上一个匹配的被查找字符串 |
撤销及编辑及保存退出
操作键 | 功能 |
---|---|
u | 按一次取消最近的一次操作;重复u键,恢复多步操作 |
U | 用于取消对当前行所做的所有编辑 |
ZZ | 保存当前的文件内容并退出vi编辑器 |
末行模式的基本操作
- 保存文件及退出vi
打开新的文件或读取其他文件内容
命名 | 功能 |
---|---|
:e~/install.log | 打开新的文件进行编辑 |
:r/etc/filesystems | 在当前文件中读入其他文件的内容 |
文件内容替换
命令 | 功能 |
---|---|
:s /old/new | 将当前行中查找到的第一个字符串“old”替换为“new” |
:s /old/new/g | 将当前行中查找到的所有字符串“old”替换为“new” |
:#,# s/old/new/g | 在行号“#,#”范围内替换所有的字符串“old”为“new” |
:% s/old/new/g | 在整个文件范围内替换所有的字符串“old”为“new” |
:s /old/new/c | 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 |