第二章、文件和目录管理
文章目录
一、Linux目录结构
■树形目录结构
■根目录
所有分区、目录、文件等的位置起点
整个树形目录结构中,使用独立的一个“/”表示
■常见的子目录
/root #root的宿主目录
/bin #所有用户可执行的命令
/boot #系统内核,启动文件
/dev #设备文件
/etc #配置文件
/home #普通用户的宿主目录
/var #日志文件等
/usr #应用程序
/sbin #管理员可执行的管理命令
二、查看及检索文件
cat命令
语法
读取文件内容的命令
-n 参数 显示每一行的行号
cat功能
功能 | 说明 |
---|---|
查看文件内容 | cat file.txt |
多个文件合并 | cat file.txt file2.txt>file3.txt |
非交互式编辑或追加内容 | cat >>file.txt<<EOF 欢迎来到这里 EOF |
清空文件内容 | cat/dev/null>file.txt【/dev/null是linux系统的黑洞文件】 |
参数
用法:cat【选项】【文件】...
将【文件】或标准输入组合输出到标准输出。
清空文件内容,慎用
>文件名
-A,--show-all 等价于-vET
-b,--number-nonblank 对非空输出行编号
-e 等价于-vE
-E,--show-ends 在每行结束处显示$
-n,--number 对输出的所有行编号
-s,--squeeze-blank 不输出多行空行
-t 与-vT等价
T.--show-tabs 将跳格字符显示为^I
-U (被忽略)
V,--show-nonprinting 使用A和M-引用,除了LFD和TAB之外
--help 显示此帮助信息并退出
-version 输出版本信息并退出
如果【文件]缺省,或者【文件】为一,则读取标准输入。
案例
cat的功能参数用法
1,查看文本内容,以及功能参数
【root@chen tmp】#cat gushi,txt
2,对非空行显示行号
cat -b gushi.txt
3.对所有行显示行号
cat -n gushi.txt
4.在每行结尾加上$符
cat -n -E gushi.txt
5,减少空行数量,多个空行,减为1个
[root@chen tmp]#cat -s gushi.txt
cat命令合并多个文件
合并多个文件内容,写入到新的文件中
cat douyin.txt gushi,txt > /抖音和古诗的文本内容,txt
cat非交互式的写入文件内容
[root@chen tmp]# cat >> chen.txt << EOF
>AAA
>BBB
>EOF
cat 清空文件的用法
1.直接清空文件,留下一个空行
echo > gushi.txt
2.直接清空文件内容,不留空行
> gushi.txt
3.利用cat 读取一个黑洞文件,然后清空其他文本
cat /dev/null > gushi.txt
##/dev/null 空设备,黑洞文件
tac命令
与cat命令查看文件内容相反
more less
分屏查看大文本内容的命令
语法
more 文件名 #分屏显示文件内容
enter 回车是下一行
空格是向下滚动一个屏的大小
=显示当前行号
按下q 是退出more
----------------------------
less命令使用方法与more命令基本类似,但是比more更好的是,less命令结合管道符号"|”分屏查看执行命令时输出的信息时,既可以向下翻页,也可以向上翻页。而more命令只能向下翻页,不能向上翻页。
Page Up向上翻页,Page Down向下翻页
按“”键查找内容,”n”下一个内容,“N”上一个内容
其他功能与more命令基本类似
head和tail命令
head命令用于查看文件开头的n行
语法
head -5 文件名 # 输出前五行
head 文件名 #默认显示10行
-c参数 #指定字符数量,显示字符数
head -c5 文件名 #输出这个文件中的5个字符
--------------------
tail默认从后向前10行,也可以指定行数
-f 实时刷新文件内容变化
-P 不断的打开文件,一般和-f 结合实用
1.实时查看网卡后1000行文件内容
tail -f -n 1000 ifcfg-ens33
grep命令
过滤字符串信息的命令 在文件中查找并显示包含指定字符串的行
grep[选项]...查找条件 目标条件
常用命令选项
-i #忽略大小写
-v #反向查找,输出与查找条件不相符的行
查找条件设置
要查找的字符串以双引号括起来
^…… #表示以……为开头查找
……$ #表示以……为结尾
^$ #表示空行
案例
1.grep -i onboot ifcfg-ens33
ONBOOT=yes
#查找在infcg-ens33中字符为onboot(忽略大小写)的内容
2.grep -v "^#" ifcfg-ens33
#反向过滤注释部分
wc命令
wC命令用于统计文件的行数、单词、字节数
-c,--bytes #打印字节数
-m,--chars #打印字符数
-l,--11ne8 #打印行数
-L,--max-line-length #打印最长行的长度
-W,--words #打印单词数
案例
1.统计文件的行数
wc -l file.txt
16 file.txt
2.统计单词的数量
echo "alex wupeiqi mjj cunzhang chaoge"wc -w
3.统计字符数量
echo "chaoge" | wc -m
7
-----------------
为什么chaoge字符是7个呢?而不是6个呢?
因为字符串结尾有一个$符
echo "chaoge” | cat -E进行验证思想
4.输出最长行的字符数
cat file.txt| wc -L
5.
who | wc -l
三、备份及恢复文档
在 Linux操作系统中,最简单的文件和目录备份工具就是
cp(复制)命令。但是当需要备份的文件、目录数量较多时,仅仅使用cp命令就显得"力不从心",并且备份的文件数量及其所占用的磁盘空间都可能会对服务器产生不小的压力。因此,有必要对需要备份的数据进行归档和压缩。
这里所说的归档操作实际上相当于"打包",即将许多个文件和目录合并保存为一个整体的包文件,以方便传递或携带。而压缩操作可以进一步降低打包后的归档文件所占用的磁盘空间,充分提高备份介质的利用率。
Linux操作系统中较常用的压缩命令工具包括 gzip、bzip2,最常用的归档命令工具为tar。使用tar命令可以通过特定选项自动调用gzip 或bzip2程序,以完成归档、压缩的整套流程,当然也可以完成解压、释放已归档文件的整套流程。下面分别介绍压缩和归档命令的使用方法。
gzip命令、bzip2命令
制作压缩文件、解开压缩文件
操作系统中使用最多的两个压缩工具,这两个命令都可以压缩指定的文件,或者将已经压缩过的文件进行解压。两者使用的压缩算法各不相同,但命令使用格式基本类似,一般来说bzi2的压缩效率要好一些。
------------------------------------------
压缩比例:1-9 越大压缩后文件越小,但是占用资源越大
gzip -9文件名.. ##制作压缩文件(压缩比为9)
bzip2 -9文件名..
gzip -d .gz格式的压缩文件 ##解开压缩文件
gunzip
bzip2 -d .bz2格式的压缩文件
bunzip2
tar命令
tar命令在linux系统里,可以实现对多个文件进行,压缩、打包、解包
语法:
tar(选项)(参数)
-A或--catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c或--create:建立新的备份文件,.tar格式压缩;
-C<目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x或--extracti或--get:从备份文件中还原文件;
-t或--11st:列出备份文件的内容;
-z或--gzip或--ungzip:通过gzip指令处理备份文件;
-Z或--compress或--uncompress:通过compress指令处理备份文件;
-f<备份文件>或--f1le=<备份文件>:指定备份文件;
-v或--verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-U:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bzip2解压文件;
-V:显示操作过程;
-l:文件系统边界设置;
上课教案:
-c:创建( Create) .tar 格式的包文件。
-C:解压时指定释放的目标文件夹。
-f:表示使用归档文件。
-j:调用bzip2程序进行压缩或解压。tar cfj nginx.bz2.tar nginx
-p:打包时保留文件及目录的权限。
-P:打包时保留文件及目录的绝对路径。
-t:列表查看包内的文件。
-V:输出详细信息、(Verbose ) 。
-X:解开.tar格式的包文件。
-z:调用gzip程序进行压缩或解压。
案例
#解压命令
tar zxvf #调用gzip解开tar归档文件
tar jxvf #调用bzip2解开tar归档文件
#压缩命令
tar zcvf #调用gzip创建tar压缩文件
tar jcvf #调用bzip2创建tar压缩文件
1.制作归档备份文件
制作归档及压缩包(备份文件)时,tar命令的基本格式如下
tar [选预]...归档及压缩文件名需要归档的源文件或目录
tar jcvf nginx.tar.bz2 nginx
tar jxvf nginx.tar.bz2 [-C path路径]
如果需要对制作的归档文件进行压缩,可以通过"-z"或"-j"选项自动调用压缩工具(分别对应 gzip、bzip2命令程序)进行压缩。例如,以下操作将会对/etc和/boot目录进行备份,在当前目录下生成名为 sysfile.tar.gz的归档压缩包,执行过程中可以看到被归档的文件列表信息。需要注意的是,在备份恢复目录或文件时,最好先将工作路径切换至目标目录或文件的所在路径,然后在执行备份命令时使用相对路径,以防输入命令时因手误而导致根目录"/"
下重要文件损坏。|
四、VI文本编辑器
yum install vim -y
echo “nameserver 114.114.114.114” >> /etc/resolv.conf
vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计。vi与vim之间的区别
vim是vi升级版
配置文件是 Linux操作系统的显著特征之一,其作用有点类似于windows操作系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式。本节将学习如何使用Linux字符操作界面中的文本编辑器—vi,以便更好地管理和维护系统中的各种配置文件。
vi编辑器有三种模式,分别是命令模式、编辑模式与末行模式。
命令模式(command mode)
以vi打开一个文件就直接进入一般指令模式了(这是默认的模式,也简称为一般模式)。在这个模式中, 可以使用上下左右按键来移动光标,可以使用删除字符或删除整行来处理文件内容, 也可使用复制、粘贴来处理文件数据。
编辑模式(insert mode)
编辑模式可以对内容进行编辑,按下i, I, o, O, a, A, r, R等任何一个字母之后即可进入编辑模式。如果要回到一般指令模式时, 则必须要按下Esc这个按键即可退出编辑模式。
i 在光标所在字符前开始输入文字并进入插入模式
a 在光标所在字符后开始输入文字并进入插入模式
o (字母o) 在光标所在行的下面单独开一新行来输入文字并进入插入模式
s 删除光标所在的字符并进入插入模式
I 在行首开始输入文字并进入插入模式。此行首指第一个非空白字符处。如果行首有空格,则在空格之后输入文字并进入插入模式
A 在行尾开始输入文字并进入插入模式。这个好用,您不必管光标在此行的什麽地方,只要按 A 就会在行尾等着您输入文字。
O (大写字母O) 在光标所在行的上面单独开一新行来输入文字并进入插入模式。
S 删除光标所在行并进入插入模式
末行模式(command-line mode)
在一般模式当中,输入:, /, 三个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你搜寻资料的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的。
在任何模式下,只要按下 Esc 键就可以返回命令模式。
可视模式(visual-mode)
可视模式具有子模式,以行为单位进行选取的可视行模式,使用“V”键进入(也就是Shift+v);和以块为单位进行选取的可视块模式,使用“Ctrl+v”键进入。
vi是一个功能强大的全屏幕文本编辑工具,一直以来都作为类UNIX操作系统的默认文本编辑器。vim是vi文本编辑器(简称vi编辑器)的增强版本,在vi编辑器的基础上扩展了很多实用的功能,但是习惯上也将vim称为vi。为了使用方便,可以设置一个命令别名,将 vi指向vim程序(本书中以vim程序为例),具体操作如下:
vim命令
#语法是
1.vim 文件名 #打开文件
2.输入字母i,进入编辑模式,代表insert
输入字母0,在光标下一行开始编辑
3.写完代码之后,按下esc,退出编辑模式
4.此时输入冒号,进入底线命令模式,然后输入
:wg!强制写入文件内容且退出vim, write quit!强制性的
:q!不保存直接退出
5.注意输入的冒号得是英文输入法的状态
vim快捷键
vim提供的上下左右
h向左
j向下
k向上
1向右
----------------------
移动光标的快捷键
W 移动到下一个单词
b 移动到上一个单词
数字0 移动到行首
字符$ 移动到行尾
按下g 移动到文章的开头
按下G 移动到文章的结尾
按下H 移动到屏幕的开头
按下L 移动到屏幕的结尾
按下M 移动到屏幕的中间
文件内跳转行:
末行模式:直接输入行数,回车
命令模式I(ECS):shift +g 末行
shift+G(双击) or 1+G
命令模式的查找
向下查找 /你要找的内容
/love 我要查找love相关的信息,按下n跳转到下一个单词
向上查找 ?你要找的内容 ,按下n寻找下一个单词
命令模式下的复制,粘贴,删除
输入yy 复制光标所在行
输入4yy 复制4行内容
输入p 打印粘贴的内容
输入dd 删除光标当前行(相当于剪切)
输入D 删除光标当前位置到行尾的内容
输入x 删除光标当前字符,向后删除
输入X 删除光标当前字符,向前删除
输入u 撤销上一步的动作
shift+insert 粘贴剪贴板信息
快捷操作
输入大写C 删除光标所在位置,到行尾的内容,且进入编辑模式,
输入o 在当前光标的下一行开始编辑
输入大写O 在光标的上一行开始编辑
输入大写A 快速进入行尾,且进入编辑模式
输入zz 快速保存退出
批量快捷操作
步骤
快捷删除
1.输入ctrl+v进入可视块模式
2.用上下左右命令,选择你选操作的块
3.选中块后,输入d删除块内容
快捷插入多行
4.选中块后,输入大写的I,进行写代码
5.按下esc两次,会自动生成多行代码
五、文件属性
1、文件含义
2、文件扩展名
扩展名
Liunx文件的扩展名只是方便阅读,对文件类型不影响
Liunx通过文件属性区分文件类型
- txt文本类型
- conf.cfg.configure配置文件
- sh.bas脚本后缀
- py脚本后缀
- rpm红帽系统二进制软件包名
- tar .gz .zip压缩后缀
3、文件类型
普通文件
通过如下命令生成都是普通文件(windows中各种扩展名的文件,放入inux也是普通文件类型)
echo
touch
cp
cat
重定向符号>
普通文件特征就是文件类型是,”.“开头,以内容区分一般分为
纯文本,可以用cat命令读取内容,如字符、数字、特殊符号等
二进制文件(binary).,Linux中命令属于这种格式,例如ls、cat等命令
文件夹
文件权限开头带有d字符的文件表示文件夹,是一种特殊的Liux文件
mkdir
cp拷贝文件夹
链接文件
ln
软链接、硬链接
8312695)]
2、文件扩展名
扩展名
Liunx文件的扩展名只是方便阅读,对文件类型不影响
Liunx通过文件属性区分文件类型
- txt文本类型
- conf.cfg.configure配置文件
- sh.bas脚本后缀
- py脚本后缀
- rpm红帽系统二进制软件包名
- tar .gz .zip压缩后缀
3、文件类型
[外链图片转存中…(img-0d4X1SVF-1652628312695)]
普通文件
通过如下命令生成都是普通文件(windows中各种扩展名的文件,放入inux也是普通文件类型)
echo
touch
cp
cat
重定向符号>
普通文件特征就是文件类型是,”.“开头,以内容区分一般分为
纯文本,可以用cat命令读取内容,如字符、数字、特殊符号等
二进制文件(binary).,Linux中命令属于这种格式,例如ls、cat等命令
文件夹
文件权限开头带有d字符的文件表示文件夹,是一种特殊的Liux文件
mkdir
cp拷贝文件夹
链接文件
ln
软链接、硬链接