Linux:目录、文件管理
文件系统
Linux 系统中的所有文件存储在文件系统中,它们被组织到一个颠倒的目录树中,称为文件系统层次结构。这棵树是颠倒的,因为树根在该层次结构的顶部,树根的下方延伸出目录和子目录的分支。
Linux遵循开源协议,所以任何人都可以根据Linux的核心代码制作和发行版本。如
果每个人都按自己的喜好,在/目录下创建目录、存放文件,将导致其他人无法快速
使用他人的linux系统。
为避免这样的情况,FHS就应运而生,对linux文件系统目录结构进行规范化。
“/”目录是根目录,位于文件系统层次结构的顶部。“/”字符还用作文件名中的目录分隔符
/的子目录用于标准化的用途,以便根据文件和用途组织文件。这可以方便查找文件。
FHS
FHS(Filesystem Hierarchy Standard)采用树形结构组织文件,定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。
FHS定义了两层规范:
-
定义了 / 下面的各个目录应该要放什么文件数据。例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。
-
针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。
Linux 重要目录
位置 | 用途 |
---|---|
/usr | 系统安装的软件、共享的库。重要的子目录有:1./usr/bin: 用户命令。2./usr/sbin: 系统管理命令。3./usr/local: 本地自定义软件。 |
/etc | 系统配置文件。 |
/var | 系统可变数据,在系统启动之间保持永久性,如数据库、 缓存目录、日志文件、打印机后台处理文档和网站内容。 |
/run | 自本次系统启动以来运行中的进程的运行数据,包括进程ID文件和锁定文件,等等。此目录中的内容在重启时重新创建此目录合并了早期版本的RHEL中的/var/run和/var/lock。 |
/home | 主目录是普通用户存储其个人数据和配置文件的位置。 |
/root | 管理员root的主目录。 |
/tmp | 供临时文件使用的全局可写空间。 10天内未访问、未更改或未修改的文件将自动从该目录中删除。还有一个临时目录/var/tmp,该目录中的文件如果在30天内未曾访问、更改或修改过, 将被自动删除。 |
/boot | 开机启动过程所需的文件。 |
/dev | 包含特殊的设备文件,供系统用于访问硬件。 |
文件名规范
在标准的linux文件系统中,一个文件的名称:
-
包括/字符在内的所有字符长度,不能超过4095 bytes。
-
两个/之间的字符数不能超过255 bytes,一个字符占用一个字节大小。
-
文件名称可以使用UTF-8中任意字符和ASCII中单个字节的字符,但不能包含/和NUL字符。
-
标准的linux文件系统包括但不限于ext4 XFS文件系统。
-
Linux也支持一些非linux文件系统的其他文件系统,例如VFAT,NTFS。
-
Linux文件系统文件名称是区分大小写。VFAT和NTFS不区分大小写。
常用命令
查看文件内容
- cat
car [选项] <文件> ##命令格式cat -n <文件> ##对所有输出的行数编号cat -b <文件> ##对于空白行不编号cat -s <文件> ##将所有的连续的多个空行替换为一个空行
- more
more [选项] <文件> ##命令格式more +n <文件> ##从笫n行开始显示more -n <文件> ##定义一页(一次)大小为n行more -p <文件> ##通过清除窗口而不是滚屏来对文件进行换页
回车、空格往下翻,b/q上下翻页,到底就退出;配合管道符号时不能向上翻页
可与“cat"组合——cat <文件> | more [选项]
- less
less [选项] <文件> ##命令格式less -e <文件> ##当文件显示结束后,自动离开
上下方向键、pageup/pagedn翻页;“ / ”可查找内容,n查看下一个内容,N查看上一个内容
可与“cat"组合——cat <文件> | less [选项]
- head
head [选项] <文件> ##命令格式head -n N/-N <文件> ##查看文件前N行的内容/除了N行后的所有内容
可与“cat"组合——cat <文件> | head [选项]
- tail
tail [选项] <文件> ##命令格式tail -n N/-N <文件> ##查看文件后N行的内容/除了N行前的所有内容
可与“cat"组合——cat <文件> | tail [选项]
统计和检索文件内容
- wc
wc [选项] <文件> ##命令格式wc -l <文件> ##统计行数wc -w <文件> ##统计字数,一个字被定义为由空白、跳格或换行字符分隔的字符串wc -c <文件> ##统计字节数
>可与“cat"组合——cat <文件> | wc [选项]
- grep
grep [选项] <文件> ##命令格式grep -A n <文件> ##即#显示匹配行和它下面的n行;grep -B n <文件> ##即#显示匹配行和它上面的n行;grep -C n <文件> ##即#匹配行和它前后各n行;
可与“cat"组合——cat <文件> | grep [选项]
压缩
tar
归档和压缩文件对于创建备份和通过网络传输数据非常有用。
用于创建和使用备份存档的最古老和最常用的命令之一是tar命令。
使用tar,可以将大量文件集合到一个文件(存档)中。
tar存档是一个结构化的文件数据序列,包含有关每个文件和索引的元数据。
可以提取单个文件,也可以使用gzip,bzip2或xz压缩来压缩存档。
tar命令支持三种压缩方法:
-
gzip:-z, --gzip 文件名通常以.tar.gz结尾。最快,最老,使用最广泛。
-
bzip2:-j, --bzip2 文件名通常以.tar.bz2结尾。压缩后比gzip小,没gzip使用广泛。
-
xz:-J, --xz 文件名通常以.tar.xz结尾。比较新,更好的压缩比。
压缩的效果取决于被压缩的对象,例如已经压缩的图片或者rpm包,压缩效果不明显。
tar命令
tar [选项] <参数> <源路径>
选项 | 描述 | |
---|---|---|
操作选项 | -c | –create 创建一个新存储 |
操作选项 | -t | –list 列出存档的目录 |
操作选项 | -x | –extract 从现有存档提取 |
一般选项 | -v | –verbose 详细信息 |
一般选项 | -f | –file 文件名 |
一般选项 | -p | –preserve-permissions 在提取存档时保留文件和目录的权限,而不去除umask |
编辑文件
linux中编辑器选择
linux中一个重要的设计原则,大部分信息存储在基于文本的文件中,包括无格式的文本文件(例如/etc/中的配置文件)和有格式的文本文件(如XML YAML等)。文本文件的优点:可以在系统之间共享,无需转换,而且可以通过简单的文本编辑器进行查看和编辑。
每一个系统管理员都有一个偏爱的文本编辑器。有的管理员偏爱gedit,有的偏爱nano,甚至有的偏爱emacs。即使已经有偏爱的编辑器,了解vim还是有必要的。因为vim可以安装在任何系统。