* [常用操作以及概念](#常用操作以及概念) * [求助](#求助) * [关机](#关机) * [查看进程](#查看进程) * [查看端口](#查看端口) * [PATH](#path) * [运行等级](#运行等级) * [sudo](#sudo) * [GNU](#gnu) * [包管理工具](#包管理工具) * [常见发行版本](#常见发行版本) * [分区](#分区) * [磁盘的文件名](#磁盘的文件名) * [分区表](#分区表) * [1. MBR](#1-mbr) * [2. GPT](#2-gpt) * [开机检测程序](#开机检测程序) * [1. BIOS](#1-bios) * [2. UEFI](#2-uefi) * [挂载](#挂载) * [文件权限与目录配置](#文件权限与目录配置) * [文件权限概念](#文件权限概念) * [文件属性以及权限的修改](#文件属性以及权限的修改) * [1. 修改文件所属群组](#1-修改文件所属群组) * [2. 修改文件拥有者](#2-修改文件拥有者) * [3. 修改权限](#3-修改权限) * [目录的权限](#目录的权限) * [文件默认权限](#文件默认权限) * [目录配置](#目录配置) * [文件与目录](#文件与目录) * [文件时间](#文件时间) * [文件与目录的基本操作](#文件与目录的基本操作) * [1. ls](#1-ls) * [2. cp](#2-cp) * [3. rm](#3-rm) * [4. mv](#4-mv) * [获取文件内容](#获取文件内容) * [1. cat](#1-cat) * [2. tac](#2-tac) * [3. more](#3-more) * [4. less](#4-less) * [5. head](#5-head) * [6. tail](#6-tail) * [7. od](#7-od) * [8. touch](#8-touch) * [指令与文件搜索](#指令与文件搜索) * [1. which](#1-which) * [2. whereis](#2-whereis) * [3. locate](#3-locate) * [4. find](#4-find) * [4.1 与时间有关的选项](#41-与时间有关的选项) * [4.2 与文件拥有者和所属群组有关的选项](#42-与文件拥有者和所属群组有关的选项) * [4.3 与文件权限和名称有关的选项](#43-与文件权限和名称有关的选项) * [磁盘与文件系统](#磁盘与文件系统) * [文件系统的组成](#文件系统的组成) * [inode](#inode) * [目录的 inode 与 block](#目录的-inode-与-block) * [实体链接与符号链接](#实体链接与符号链接) * [1. 实体链接](#1-实体链接) * [2. 符号链接](#2-符号链接) * [压缩与打包](#压缩与打包) * [压缩](#压缩) * [1. gzip](#1-gzip) * [2. bzip2](#2-bzip2) * [3. xz](#3-xz) * [打包](#打包) * [Bash](#bash) * [Bash 特性](#bash-特性) * [变量操作](#变量操作) * [指令搜索顺序](#指令搜索顺序) * [数据流重定向](#数据流重定向) * [管线指令](#管线指令) * [1. 提取指令:cut](#1-提取指令cut) * [2. 排序命令:sort、uniq](#2-排序命令sortuniq) * [3. 双向输出重定向:tee](#3-双向输出重定向tee) * [4. 字符转换指令:tr、col、expand、join、paste](#4-字符转换指令trcolexpandjoinpaste) * [5. 分区指令:split](#5-分区指令split) * [正规表示法与文件格式化处理](#正规表示法与文件格式化处理) * [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 个分区。