提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Linux目录与文件管理
一、Linux目录
- 根目录: 所有分区、目录、文件等的位置起点 整个树形目录结构中,使用一个独立的“/”表示
- 常见子目录:
/root /bin /boot /dev /etc /home /var /usr /sbin
一级目录 功能(作用) /bin/ 存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行 /boot/ 系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等 /dev/ 设备文件保存位置 /etc/ 配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等 /home/ 普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming /media/ 挂载目录。系统建议用来挂载媒体设备,如软盘和光盘 /lib/ 系统调用的函数库保存位置 /mnt/ 挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区 /misc/ 挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定 /opt/ 第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件 /root/ root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下 /sbin/ 保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看 /srv/ 服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据 /tmp/ 临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空 - 根(/)相当于一个入口,文件的总入口,也是唯一入口
- bin (sbin) 二进制文件,可执行文件,也可能存在别处,默认使用较多所有用户软连接文件
- sbin 管理员可使用的二进制文件
- boot 系统内核、启动文件
- dev 硬件文件(黄色)
- etc 配置文件等同于windows 注册表,一般都是文本文件
- run 运行的内存中文件
- tmp 临时文件 -t
- usr应用程序和操作系统相关的文件
- var日志文件,数据变化的
- home 普通用户的家目录的上级目录zhangsan目录会在 home
- root系统管理员的目录上 /root
- lib 动态库文件 类似于windows 的dll文件
- proc 主要保存系统的内核、进程、外部设备状态和网络状态等
- opt 第三方应用程序安装所在目录程序
- media 可移动设备
- mnt 默认挂载点
二、查看及检索文件
1.七种常见的文件类型
文件类型 说明 - 普通文件,包括纯文本文件、二进制文件、各种压缩文件等 b 块设备文件block,就是保存大块数据的设备,比如最常见的硬盘 d 目录文件directory,类似 Windows 系统中的文件夹 c 字符设备character,例如键盘、鼠标等 l 符号链接文件link,类似 Windows 系统中的快捷方式 p 管道文件pipe,其主要作用是解决多个程序同时存取一个文件所造成的错误 s 套接字文件socket,通常用于进程间的网络通信,一般隐藏在 /var/run/ 目录下 2.查看及检索文件——cat命令
- 作用:显示并连接文件内容
基本格式:cat [选项] 文件名...
- 常用选项:
选项 效果 -n 显示行号,包括空行 -s 将所有的连续的多个空行替换为一个空行(压缩成一个空行) -b 跳过空白行编号 -A 显示隐藏字符 - 例如:
查看一个文件内容 - 查看多个文件内容
- 反向查找多个文件内容
- 用-n对所有输出行数标号,包括空白行
- 使用-b对于空白行不编号,跳过空行
- 使用-s将所有的连续的多个空行压缩成一个空行
- 使用-A显示看不见的字符,隐藏字符
- 拓展:hexdump -查看非文本文件内容
[root@localhost /]# hexdump -C -n 512 /dev/sda 00000000 eb 63 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |.c..............| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..| 00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........| 00000050 00 00 00 00 00 00 00 00 00 00 00 80 01 00 00 00 |................| 00000060 00 00 00 00 ff fa 90 90 f6 c2 80 74 05 f6 c2 70 |...........t...p| 00000070 74 02 b2 80 ea 79 7c 00 00 31 c0 8e d8 8e d0 bc |t....y|..1......| 00000080 00 20 fb a0 64 7c 3c ff 74 02 88 c2 52 be 05 7c |. ..d|<.t...R..|| 00000090 b4 41 bb aa 55 cd 13 5a 52 72 3d 81 fb 55 aa 75 |.A..U..ZRr=..U.u| 000000a0 37 83 e1 01 74 32 31 c0 89 44 04 40 88 44 ff 89 |7...t21..D.@.D..| 000000b0 44 02 c7 04 10 00 66 8b 1e 5c 7c 66 89 5c 08 66 |D.....f..\|f.\.f| 000000c0 8b 1e 60 7c 66 89 5c 0c c7 44 06 00 70 b4 42 cd |..`|f.\..D..p.B.| 000000d0 13 72 05 bb 00 70 eb 76 b4 08 cd 13 73 0d 5a 84 |.r...p.v....s.Z.| 000000e0 d2 0f 83 de 00 be 85 7d e9 82 00 66 0f b6 c6 88 |.......}...f....| 000000f0 64 ff 40 66 89 44 04 0f b6 d1 c1 e2 02 88 e8 88 |d.@f.D..........| 00000100 f4 40 89 44 08 0f b6 c2 c0 e8 02 66 89 04 66 a1 |.@.D.......f..f.| 00000110 60 7c 66 09 c0 75 4e 66 a1 5c 7c 66 31 d2 66 f7 |`|f..uNf.\|f1.f.| 00000120 34 88 d1 31 d2 66 f7 74 04 3b 44 08 7d 37 fe c1 |4..1.f.t.;D.}7..| 00000130 88 c5 30 c0 c1 e8 02 08 c1 88 d0 5a 88 c6 bb 00 |..0........Z....| 00000140 70 8e c3 31 db b8 01 02 cd 13 72 1e 8c c3 60 1e |p..1......r...`.| 00000150 b9 00 01 8e db 31 f6 bf 00 80 8e c6 fc f3 a5 1f |.....1..........| 00000160 61 ff 26 5a 7c be 80 7d eb 03 be 8f 7d e8 34 00 |a.&Z|..}....}.4.| 00000170 be 94 7d e8 2e 00 cd 18 eb fe 47 52 55 42 20 00 |..}.......GRUB .| 00000180 47 65 6f 6d 00 48 61 72 64 20 44 69 73 6b 00 52 |Geom.Hard Disk.R| 00000190 65 61 64 00 20 45 72 72 6f 72 0d 0a 00 bb 01 00 |ead. Error......| 000001a0 b4 0e cd 10 ac 3c 00 75 f4 c3 00 00 00 00 00 00 |.....<.u........| 000001b0 00 00 00 00 00 00 00 00 85 ca 09 00 00 00 80 20 |............... | 000001c0 21 00 83 d5 89 8c 00 08 00 00 00 00 a0 00 00 d5 |!...............| 000001d0 8a 8c 8e fe ff ff 00 08 a0 00 00 40 80 03 00 00 |...........@....| 000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200
3.分页查看文件内容——more命令
作用:全屏方式显示分页内容 基本格式:more [选项] 文件名...
操作的方法:
-
List item
-
按Enter键向下逐行滚动
-
按空格键向下翻一屏
-
按b键向上翻一屏
-
List item
-
按q键退出
下翻到最后一页后会自动退出
4.分页查看文件内容——less命令
作用:与more命令相同,但是扩展功能更多 基本格式:less [选项] 文件名...
操作方法
- 可以使用/ 查找 n向下 N向上查找
- Page Up 向上翻页,Page Down 向下翻页
- 空格下一行 到文末后自动退出
- b上一行
- enter一行一行滚动
- 自动退出
- q退出
5.查看开头部分内容——head命令
作用:查看文件开头一部分内容,不加具体的数字 默认10行 head [-n] 文件名 #n为行数
[root@localhost /]# head -5 /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes
6.查看结尾部分内容——tail命令
作用:查看文件结尾一部分内容 tail -n 具体数字 文件名 (不加具体的数字,默认结尾十行) tail -f 具体数字 文件名 实时跟踪最后十行
[root@localhost /]# tail -5 /etc/sysconfig/network-scripts/ifcfg-ens33 ONBOOT=yes IPADDR=192.168.175.101 GATEWAY=192.168.175.2 NETMASK=255.255.255.0 DNS1=8.8.8.8
7.统计文件内容——wc命令
基本格式:wc [选项]...目标文件...
选项 效果 -l 行数 -w 单词数 -c 字节数 8.检索、过滤文件内容——grep
grep awk sed ——文本三剑客,主要处理文本中的字符 作用:在文件中查找并显示包含指定字符串的行 格式:grep [选项]... 查找条件 目标文件
-
- -i:查找时忽略大小写
- -v:反向查找,输出与查找条件不相符的行
- -o 只显示匹配项
- -f 对比两个文件的相同行
- -c 匹配的行数([root@localhost ~]# grep -c root passwd 3)
查找时添加条件设置
- 要查找的字符串以双引号括起来
- “^……”表示以什么开头
- “……$”表示以什么结尾
- “^$”表示空行
[root@test1 opt]# cat 123.txt |grep -v '^$' >123.txt //将非空行写入到123.txt文件 [root@test1 opt]# grep "^b" 123.txt //过滤已b开头 [root@test1 opt]#grep '/$' 123.txt //过滤已/结尾 [root@test1 opt]# grep -v "^$" 123.txt //过滤非空行3 备份与恢
三、压缩与解压缩
1 .gzip、bzip2
- gzip [-9] 文件名… 提高压缩比例,但是文件较大时效率会低 bzip2 [-9] 文件名... 9代表压缩比率, 9最大1最小,使用以上两种压缩源文件不存在了 gzip的压缩率 要高于bzip2
作用:制作压缩文件和解压缩文件 格式:gzip [-9] 文件名 #制作压缩文件 bzip2 [-9] 文件名 #制作压缩文件
[root@test1 opt]# gzip *.txt #压缩后源文件没了 可以使用-k 保留源文件centos8 特性 [root@test1 opt]# ls 123456.txt.gz 123.txt.gz 1.txt.gz 2.txt.gz abc.txt.gz rh test.txt.gz [root@test1 opt]# gzip -d *.txt.gz 解压 [root@test1 opt]# ls 123456.txt 123.txt 1.txt 2.txt abc.txt rh test.txt
(1)
- 当使用gzip压缩一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。
- gzip制作的压缩文件默认的扩展名为".gz" 原始文件不再保留
- bzip2制作的压缩文件默认的扩展名为“.bz2”,原始文件不再保留
(2) 常用命令选项:
- -9:压缩等级,指令的值可为1 (压缩速度最快,最低的压缩质量)至9 (最慢的压缩速度,压缩率
- 最高)之间的整数,其默认值为6 (压缩速度和压缩质量较为平衡的值) -d:用于解压缩已经压缩过的文件,相当于使用gunzip、bunzip2命令
2 .压缩解压缩命令 —— gunzip、bunzip2
基本格式: gzip -d .gz格式的压缩文件 #解开压缩文件 bzip2 -d .gz格式的压缩文件 #解开压缩文件
1.无法压缩文件夹
2.压缩后源文件消失
3.用-k选项,bzip2可保留源文件,gzip不可以3 .制作归档文件命令 —— tar
作用:制作和释放归档文档 格式: tar [选项] ... 归档文件名 源文件或目录 tar [选项] ... 归档文件名 [-C 目标目录]
常见选项
选项 作用 -c 创建 .tar格式的包文件,一般都带; -x 解开 .tar格式的包文件; -v 输出详细信息(Verbose ),制作tar包或解开tar包时。显示过程; -f 表示使用归档文件,-f这个是tar包。无论制作还是解开都要加; -P 打包时,保留原权限; -t 不解开tar包时,列表查看包内的文件; -C 指定解压的目录,解压时指定释放的目标文件夹; -z 调用gzip程序进行压缩或解压。 -j 调用bzip2程序进行压缩或解压; [root@localhost data]# tar -zcvf vm.tar.gz vm1 vm2 zz vm1 vm2 zz/ [root@localhost data]# tar -jcvf vm.tar.gz vm1 vm2 zz [root@localhost data]# tar -zxvf vm.tar.gzip -C /opt vm1 vm2 zz/ [root@localhost zz]# tar -tf vm1.tar.gzip vm1
4.vi编辑器
- Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计接口
- vim是vi的升级版
vim [OPTION]... ... 命令 选项 文件 vim 文件名不存在 是新建 vim 文件名存在 就是修改
- 如果系统提示并未安装vim ,可以使用:
yum install vim -y //进行安装
(1) 常用选项
+# 打开文件后,让光标处于第#行的行首,+默认行尾 ! 打开上一次的文件 +/PATTERN 让光标处于第一个被PATTERN匹配到的行行首用不多 wq 进行保存并推出 q! 强制退出vim编辑
(2)vim三种模式
- 命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本
- 插入(Insert)或编辑模式:用于修改文本
- 扩展命令(extended command )或末行模式:保存,退出等搜索替代
i insert, 在光标所在处输入 I 在当前光标所在行的行首输入 a append, 在光标所在处后面输入 A 在当前光标所在行的行尾输入 o 在当前光标所在行的下方打开一个新行 O 在当前光标所在行的上方打开一个新行
① 命令模式
- 命令模式:此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
单词间跳转 w:下一个单词的词首 e:当前或下一单词的词尾 b:当前或前一个单词的词首 当前页跳转: H:页首 M:页中间行 L:页底 zt:将光标所在当前行移到屏幕顶端 zz:将光标所在当前行移到屏幕中间 zb:将光标所在当前行移到屏幕底端 行首行尾跳转: ^ 跳转至行首的第一个非空白字符 0 跳转至行首 $ 跳转至行尾 行间移动: #G 或者扩展命令模式下 :# 跳转至由第#行 G 最后一行 1G, gg 第一行 删除命令(delete) d 删除命令,可结合光标跳转字符,实现范围删除 d$ 删除到行尾 d^ 删除到非空行首 d0 删除到行首 dw 下一个单词的词首 de 当前或下一个单词的词尾 db 当前或上一个单词的词首 dd: 剪切光标所在的行 D:从当前光标位置一直删除到行尾,等同于d$ 复制命令(yank) y 复制,行为相似于d命令 yy:复制行 Y:复制整行 撤消更改 u 撤销最近的更改,相当于windows中ctrl+z #u 撤销之前多次更改 U 撤消光标落在这行后所有此行的更改 Ctrl-r 重做最后的“撤消”更改,相当于windows中crtl+y . 重复前一个操作 #. 重复前一个操作#次
② 插入/编辑模式
- 插入/编辑模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令,当编辑文件完成后按 Esc 键即可返回命令模式。
快捷键 作用 i 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 l 行首插入命令 o 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 O 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文 a 在当前光标所在位置之后插入随后输入的文本 A 行尾插入命令 ③ 末行模式
- 末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
快捷键 作用 :q 退出不保存 :q! 强制退出不保存 :W 保存 :w 新文件名 另存为新文件 :wq 保存并退出 :e 另存为新文件 :r 在当前文件中读入其他文件内容 # d 删除 第#行 #,# d 删除#到#行 (3) 配置文件定制vim的工作特性
- Vim 启动时,会根据配置文件(.vimrc)来设置 Vim,因此我们可以通过此文件来定制适合自己的 Vim。
Vim 配置文件分为系统配置文件和用户配置文件: - 系统配置文件位于 Vim 的安装目录(默认路径为 /etc/.vimrc);
- 用户配置文件位于主目录 ~/.vimrc,即通过执行 vim ~/.vimrc 命令即可对此配置文件进行合理修改。通常情况下,Vim 用户配置文件需要自己手动创建。
快捷键 作用 :set ai 设置自动缩进 :set nu 显示行号 :set cul 突出显示当前行 :set ts=4 设置tab健宽度为4个空格