目录
一.目录层次
1.常见目录
2.Linux /usr目录
3.Linux /var 目录
4.重点目录注意点
5.文件系统的目录结构
二.七类常见的linux的文件
三.查看文件显示命令
1.cat:查看文件内容;上下合并文件
2.more:全屏方式分页显示文件内容
3.less:全屏方式分页显示文件内容(更好用)
4.head:查看文件开头部分内容(默认10行)
5.tail:查看文件结尾部分内容(默认10行)
6.wc:统计文件内字节数、字数、行数
7.grep:过滤文件内容中的关键字
8.tr:基本功能转换
9.cut:可以提取文本文件数据的指定列
10.paste:左右合并文件
11.sort:整理过的文本排序显示在屏幕上
12.uniq:去重
四.压缩与解压缩
1.gzip和bzip2
2.归档tar
五.vi编辑器
一级目录 (都在根下) |
功能(作用) |
---|---|
/bin/ | 存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式也可以执行 (普通用户的命令) |
/boot/ | 系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等 (启动需要的文件) |
/dev/ | 设备文件保存位置 (外来的硬件设备 硬盘 光驱 u盘) |
/etc/ | 配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等 (配置文件) |
/home/ | 普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming |
/lib/ | 系统调用的函数库保存位置 |
/media/ | 挂载目录。系统建议用来挂载媒体设备,如软盘和光盘 |
/mnt/ | 挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区 |
/misc/ | 挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘,都是可以的 |
/opt/ | 第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件 |
/root/ | root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下 |
/sbin/ | 保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看 |
/srv/ | 服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据 |
/tmp/ | 临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空 |
usr,全称为 Unix Software Resource,此目录用于存储系统软件资源。
FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。
Linux 系统中,所有系统默认的软件都存储在 /usr 目录下。
子目录 | 功能(作用) |
---|---|
/usr/bin/ | 存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行 |
/usr/sbin/ | 存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。 |
/usr/lib/ | 应用程序调用的函数库保存位置 |
/usr/XllR6/ | 图形界面系统保存位置 |
/usr/local/ | 手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置 |
/usr/share/ | 应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录 |
/usr/src/ | 源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中 |
/usr/include | C/C++ 等编程语言头文件的放置目录 |
/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。通常,此目录下建议包含如表 4 所示的这些子目录。
/var子目录 | 功能(作用) |
---|---|
/var/lib/ | 程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中 |
/var/log/ | 登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。 (日志文件目录) |
/var/run/ | 一些服务和程序运行后,它们的 PID(进程 ID)保存位置 |
/var/spool/ | 里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。 |
/var/www/ | RPM 包安装的 Apache 的网页主目录 |
/var/nis和/var/yp | NIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录 |
/var/tmp | 一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除 (临时文件) |
boot 系统内核、启动文件
dev 硬件文件(黄色)
etc 配置文件等同于windows 注册表,一般都是文本文件
var/log日志文件,数据变化的
root系统管理员的家目录上 /root
以 . 开头的文件均为隐藏文件
路径用/分开 / 不在第一位就是分隔符
文件名最长 255个字符
区分大小写 linux 注意事项
不要太华丽
七大文件类型(在上一章也有提及)
第一个字符 | 文件类型 |
---|---|
- | 普通文件,包括纯文本文件、二进制文件、各种压缩文件等。 |
d | 目录,类似 Windows 系统中的文件夹。 |
b | 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。 |
c | 字符设备文件,例如键盘、鼠标等。 |
s | 套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。 |
p | 管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。 |
l | 链接文件,类似 Windows 系统中的快捷方式。 |
格式:
cat 文件名(文件名可以是单个也可以是多个)
选项 | 效果 |
---|---|
-n | 显示行号包括空行 |
-b | 跳过空白行编号 |
-s | 将所有的连续的多个空行替换为一个空行(压缩成一个空行) |
-A | 显示隐藏字符 |
cat /etc/fstab |grep '^#'
#找出/etc目录下fstab文件中以#号开头的行
问题:如何将两个文件 合并成一个文件?
1.使用cat
cat 1.txt 2.txt > 3.txt
#将文件1、2上下合并为文件3
2.使用paste
paste 1.txt 2.txt > 3.txt
#将文件1、2左右合并为文件3
格式:
more [选项] 文件名
基本操作:
空格下一行 到文末后自动退出
b上一行
enter一行一行滚动
自动退出
q退出
局限性:不可以向上翻页,更建议使用less命令
格式:
less [选项] 文件名
基本操作:
可以使用/ 查找 n向下 N向上查找
Page Up 向上翻页,Page Down 向下翻页
其余参考more
格式:
head [选项] [文件]
head -n 具体数字 文件名 (不加具体的数字,默认开头十行)
[root@localhost test]# head -n -3 3.txt
#-3 不显示最后3行
格式:
head [选项] [文件]
tail -n -3 3.txt
#-3 只显示最后三行
head -n +3 3.txt
#就只显示前三行
tail -n +3 3.txt #
#从第三行开始
tail -f /var/log/messages
#实时显示 /var/log/messages 文件的后10行
格式:
wc [选项] 目标文件
-l:统计行数
-w:统计单词个数
-c:统计字节数
[root@localhost ~]# cat a.txt
dasdasdads
[root@localhost ~]# wc a.txt
1 1 11 a.txt
[root@localhost ~]# cat a.txt
das dasdads
[root@localhost ~]# wc a.txt
1 2 12 a.txt
格式:
grep [选项] 查找条件 目标文件
-i:查找时忽略大小写
-v:反向查找,输出与查找条件不相符的行(反选)
-o 只显示匹配项
-f 对比两个文件的相同行
-c 匹配的行数
-r 递归 快速过滤 不过滤软链接
-w 把字符串看成单词
cat /etc/fstab |grep '^#'
#找出/etc目录下fstab文件中以#号开头的行 先cat显示再接管道grep查找
grep 需要 配合正则表达式
^ 开头
$ 结尾
^$ 空行 开头结尾中间什么也没有叫空行
问题:
我现在有一个文件夹里有很多文件,请快速过滤出这个文件夹下 所有含有 root 字符串 的文件
grep -rw 文件夹
grep -v “^$” 文件
格式
tr [选项] SET1 [SET2]
SET 是一组字符串,一般都可按照字面含义理解
-d 删除
-s 压缩
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
[root@localhost ~]#tr 123 abc
#只要出现123 就转换成abc
格式:
cut [选项] [文件]
-d (Delimiter): 指明分隔符,默认tab
-f 想要获取的字段
#: 第#个字段,例如 3
#,#[,#]:离散的多个字段,例如 1,3,6
#-#:连续的多个字段, 例如 1-6
混合使用:1-3,7
-c 取字符
-d | 指定分隔符 |
-s | 不使用平行的行目输出模式,而是每个文件占用一行 |
问题:如何将两个文件 合并成一个文件?
1.使用cat
cat 1.txt 2.txt > 3.txt
#将文件1、2上下合并为文件3
2.使用paste
paste 1.txt 2.txt > 3.txt
#将文件1、2左右合并为文件3
把整理过的文本显示在屏幕上,不改变原始文件
uniq命令 常和 sort命令 一起配合使用,先排序后再去重
-0-9 压缩级别 数字越大压缩级别越大
-d 解压缩
gzip(z) | bzip2(j) |
---|---|
gzip [-9] 文件名 提高压缩比例,但是文件较大时效率会低 |
bzip2 [-9] 文件名 |
gzip -d .gz格式的压缩文件 d就是解压 |
bzip2 -d .bz2格式的压缩文件 |
gzip的压缩率 要高于bzip2 | gzip的压缩率 要高于bzip2 |
格式:
tar [选项] 归档文件名 源文件或目录
tar [选项] 归档文件名 [-C 目标目录]
tar 选项 你自定义的名字 你要归档文件
选项 | 功能 |
---|---|
-c | 创建(Create).tar 格式的包文件 |
-C | 解压时指定释放的目标文件夹 |
-x | 解开.tar 格式的包文件 |
-f | 表示使用归档文件 (一般都要带上表示使用tar) |
-p | 打包时保留文件及目录的权限 |
-P | 打包时保留文件及目录的绝对径 |
-t | 列表查看包内的文件 (要和f一起使用)在不解压的情况查看归档文件内容 |
-v | 输出详细信息 (Verbose) |
-j | 调用 bzip2 程序进行压缩或解压 |
-z | 调用 gzip 程序进行压缩或解压 |
注意点:
1.tar 一定要加 f 选项
2.加了 - f 选项在最后 不加无所谓
3.解压的时可以不考虑 gz 还是 bzip2
Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。
linux中常见的 文本 还有 nano gedit 知道
推荐使用 Vi 文本编辑器的原因有很多,比如说:
几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在;
Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计 接口
三种模式:输入模式 和 末行模式 之间无法相互转换, 必须退回 命令模式
输入模式 | 末行模式 | 命令模式 |
会有 插入: 提示符 |
最后一行会有 冒号 |
最后一行什么也没有 |
命令模式下 按 i o 会切换到 输入模式 |
命令模式下 按英文冒号 会切换到 末行模式 |
移动光标 基本操作 |
(本章简单介绍vi编辑器的三种模式,下一章将展开介绍vi编辑器相关操作命令)