* [一、常用操作以及概念](#一常用操作以及概念) * [求助](#求助) * [关机](#关机) * [查看进程](#查看进程) * [查看端口](#查看端口) * [PATH](#path) * [运行等级](#运行等级) * [sudo](#sudo) * [GNU](#gnu) * [包管理工具](#包管理工具) * [常见发行版本](#常见发行版本) * [二、分区](#二分区) * [磁盘的文件名](#磁盘的文件名) * [分区表](#分区表) * [开机检测程序](#开机检测程序) * [挂载](#挂载) * [三、文件权限与目录配置](#三文件权限与目录配置) * [文件权限概念](#文件权限概念) * [文件属性以及权限的修改](#文件属性以及权限的修改) * [目录的权限](#目录的权限) * [文件默认权限](#文件默认权限) * [目录配置](#目录配置) * [四、文件与目录](#四文件与目录) * [文件时间](#文件时间) * [文件与目录的基本操作](#文件与目录的基本操作) * [获取文件内容](#获取文件内容) * [指令与文件搜索](#指令与文件搜索) * [五、磁盘与文件系统](#五磁盘与文件系统) * [文件系统的组成](#文件系统的组成) * [inode](#inode) * [目录的 inode 与 block](#目录的-inode-与-block) * [实体链接与符号链接](#实体链接与符号链接) * [六、压缩与打包](#六压缩与打包) * [压缩](#压缩) * [打包](#打包) * [七、Bash](#七bash) * [Bash 特性](#bash-特性) * [变量操作](#变量操作) * [指令搜索顺序](#指令搜索顺序) * [数据流重定向](#数据流重定向) * [管线指令](#管线指令) * [八、正规表示法与文件格式化处理](#八正规表示法与文件格式化处理) * [grep](#grep) * [printf](#printf) * [awk](#awk) * [九、vim 三个模式](#九vim-三个模式) * [参考资料](#参考资料) # 一、常用操作以及概念 ## 求助 ### 1. --help 指令的基本用法与选项介绍。 ### 2. man man 是 manual 的缩写,将指令的具体信息显示出来。 当执行 man date 时,有 DATE(1) 出现,其中的数字代表指令的类型,常用的数字及其类型如下: | 代号 | 类型 | | -- | -- | | 1 | 用户在 shell 环境中可以操作的指令或者可执行文件 | | 5 | 配置文件 | | 8 | 系统管理员可以使用的管理指令 | ### 3. info info 与 man 类似,但是 info 将文档分成一个个页面,每个页面可以进行跳转。 ## 关机 ### 1. sync 为了加快对磁盘上文件的读写速度,位于内存中的文件数据不会立即同步到磁盘上,因此关机之前需要先进行 sync 同步操作。 ### 2. shutdown ```html # /sbin/shutdown [-krhc] [时间] [警告讯息] -k : 不会关机,只是发送警告讯息,通知所有在线的用户 -r : 将系统的服务停掉后就重新启动 -h : 将系统的服务停掉后就立即关机 -c : 取消已经在进行的 shutdown 指令内容 ``` ### 3. 其它关机指令 reboot、halt、poweroff。 ## 查看进程 ```html ps aux | grep threadx ``` ## 查看端口 ```html netstat -anp | grep 80 ``` ## PATH 可以在环境变量 PATH 中声明可执行文件的路径,路径之间用 : 分隔。 ```html /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin ``` ## 运行等级 - 0:关机模式 - 1:单用户模式(可用于破解 root 密码) - 2:无网络支持的多用户模式 - 3:有网络支持的多用户模式(文本模式,工作中最常用的模式) - 4:保留,未使用 - 5:有网络支持的 X-windows 多用户模式(桌面) - 6:重新引导系统,即重启 ## sudo 使用 sudo 允许一般用户使用 root 可执行的命令,只有在 /etc/sudoers 配置文件中添加的用户才能使用该指令。 ## GNU GNU 计划,又译为革奴计划,它的目标是创建一套完全自由的操作系统,称为 GNU,其内容软件完全以 GPL 方式发布。其中 GPL 全称为 GNU 通用公共许可协议,包含了以下内容: - 以任何目的运行此程序的自由; - 再复制的自由; - 改进此程序,并公开发布改进的自由。 ## 包管理工具 RPM 和 DPKG 为最常见的两类软件包管理工具。RPM 全称为 Redhat Package Manager,最早由 Red Hat 公司制定实施,随后被 GNU 开源操作系统接受并成为很多 Linux 系统 (RHEL) 的既定软件标准。与 RPM 进行竞争的是基于 Debian 操作系统 (UBUNTU) 的 DEB 软件包管理工具- DPKG,全称为 Debian Package,功能方面与 RPM 相似。 YUM 基于 RPM 包管理工具,具有依赖管理功能,并具有软件升级的功能。 ## 常见发行版本 Linux 发行版是 Linux 内核及各种应用软件的集成版本。 | 基于的包管理工具 | 商业发行版 | 社区发行版 | | --- | --- | --- | | DPKG | Ubuntu | Debian | | RPM | Red Hat | Fedora / CentOS | # 二、分区 ## 磁盘的文件名 Linux 中每个硬件都被当做一个文件。 常见磁盘的文件名: - SCSI/SATA/USB 磁盘:/dev/sd[a-p] - IDE 磁盘:/dev/hd[a-d] 其中文件名后面的序号的确定与磁盘插入的顺序有关,而与磁盘所插入的插槽位置无关。 ## 分区表 磁盘分区表主要有两种格式,一种是限制较多的 MBR 分区表,一种是较新且限制较少的 GPT 分区表。 ### 1. MBR MBR 中,第一个扇区最重要,里面有主要开机记录(Master boot record, MBR)及分区表(partition table),其中 MBR 占 446 bytes,partition table 占 64 bytes。 分区表只有 64 bytes,最多只能存储 4 个分区,这 4 个分区为主分区(Primary)和扩展分区(Extended)。其中扩展分区只有一个,它将其它空间用来记录分区表,因此通过扩展分区可以分出更多分区,这些分区称为逻辑分区。 Linux 也把分区当成文件,分区文件的命名方式为:磁盘文件名 + 编号,例如 /dev/sda1。注意,逻辑分区的编号从 5 开始。 ### 2. GPT 不同的磁盘有不同的扇区大小,例如 512 bytes 和最新磁盘的 4 k。GPT 为了兼容所有磁盘,在定义扇区上使用逻辑区块地址(Logical Block Address, LBA)。 GPT 第 1 个区块记录了 MBR,紧接着是 33 个区块记录分区信息,并把最后的 33 个区块用于对分区信息进行备份。 GPT 没有扩展分区概念,都是主分区,最多可以分 128 个分区。