# CentOS 入门

## 1. CentOS 中的文件管理

### 1.1 CentOS 中根目录下的常用子目录

├─ bin 存放普通用户的可执行指令，普通用户也可以执行 ├─ dev 设备目录，所有硬件设备及周边均放置在这个设备目录中 ├─ boot 开机引导目录，包括 Linux 内核文件与开机所需要的文件 ├─ home 主要存放你的个人数据，具体每个用户的设置文件，用户的桌面文件，还有用户数据都在这里，每个用户都有自己的用户目录，位置为 /home/用户名 root 用户除外 ├─ usr 应用程序放置目录 ├─ lib 开机时常用地动态链接库，bin 及 sbin 指令也会调用对应的 lib 库 ├─ tmp 临时文件存放的目录 └─ etc 各种配置文件目录，大部分配置属性均存放在这里

### 1.2 目录相关的命令

常用的命令：

* 切换目录                          `cd`
* 显示当前目录完整路径               `pwd`&#x20;
* 查看目录下的信息（包括隐藏文件）    `ls (ls -a)` &#x20;
* 列出目录下的文件和详细信息         `ls-l (ll)`
* 创建目录                          `mkdir`
* 创建文件                          `touch`
* 复制文件（文件夹）                 `cp (cp -r)`
* 移动/重命名文件夹和目录            `mv`
* 删除文件（目录）                  `rm (rm -rf)`
* 删除空文件夹                      `rmdir`
* 查找文件                          `find`
* 获得帮助                          `man / info`

几个常用的快捷键：

* 清空至行首         `Ctrl + U`
* 清空至行尾         `Ctrl + K`
* 清屏               `Ctrl + L`
* 终止执行的命令      `Ctrl + C`

## 2. vim 编辑器使用方法

通过 vim <文件名> 的方式可以编辑某文档，如果该文档不存在，那么会新建一个

vim 的三种模式：

* 命令模式 Command mode
* 输入模式 Insert mode
* 底线命令模式 Last line mode

### 2.1 命令模式

启动 vim 后进入命令模式，敲击键盘会认为是命令，而不是输入字符，常用命令：

* `i` 切换到输入模式，输入字符
* `:` 切换到底线命令模式，以在最低一行输入命令
* `a` 切换到输入文字模式

### 2.2 底线命令模式

在命令模式下输入 : 英文冒号进入底线命令模式

基础命令：

* `:q` 退出程序
* `:q!` 放弃对文件内容的修改并退出
* `:w` 保持文件
* `:w /root/xx` 另存为
* `:wq` 保持文件并退出

### 2.3 查看文件内容

常用命令：

* `more / less` 浏览文件全部内容
* `cat (cat -n)` 查看文件内容（显示行号）
* `grep (grep <关键字> <要查找的文件> -n)` 在文本文件中查找字符串（显示行号）

### 2.4 管道符

将一个命令的执行结果作为另一个命令的输入来执行 格式 `cmd1 | cmd2 ... | cmdn`

比如，将一个 /etc 目录中的文件名以 pass 开头的文件列举出来 `ls /etc | grep pass*`

### 2.5 重定向

* `>`  输出重定向，已有原来的文件则替换
* `>>` 输出重定向，如果原来的文件存在则追加在原来的内容之前
* `<`  输入重定向，即命令的输入不通过键盘来完成，而通过其他的方式
* `2>` 错误重定向
* `&>` 输出重定向与错误重定向同时实现

比如，将 `ls /` 命令执行结果输出到 `2.txt` 中 `ls / > 2.txt`

## 3. 进程管理

### 3.1 进程管理

进程是正在执行的一个程序或命令，每一个进程都是一个运行的实体，都有自己的地址空间，并占用一定的系统资源

进程管理最重要的就是 `ps` 命令：

* `ps aux` 查看系统中所有进程，使用 BSD 操作系统格式
* `ps -le` 查看系统中所有进程，使用 Linux 标准命令格式

输出的格式含义：

* USER  该进程由哪个用户产生的
* PID   进程的 ID
* %CPU  进程占用的 CPU 资源的百分比
* %MEM  进程占用物理内存的百分比
* VSZ   进程占用虚拟内存的大小，单位 KB
* RSS   进程占用实际物理内存的大小，单位 KB
* TTY   进程在哪个终端运行的，tty1-tty7 本地控制台终端 tty1-tty6 本地的字符界面终端 tty7 图形终端 pts/0-225 虚拟终端 ? 系统进程
* STAT  进程状态 R-运行 S-睡眠 T-停止 s-包含子进程 +-位于后台
* START 进程启动时间
* TIME  进程占用 CPU 的时间，注意不是系统时间
* COMMAND 产生此进程的命令名
* `pstree` 显示进程树
* `top` 可以查看系统的健康状态，和 Windows 系统的系统管理器类似，在交互模式下可以执行以下命令：

  * `?/h` 显示交互模式的帮助
  * `P` 以 CPU 使用率排序，默认
  * `M` 以内存使用率排序
  * `N` 以 PID 排序
  * `q` 退出 top

  load average 后面的三个数字的意思，分别为系统在之前一分钟，五分钟，十五分钟的平均负载，一本认为小于 CPU 核数，大于表示负荷

  Tasks 后面的 zombie 意思为僵尸进程，一般是进程无法正常运行，也没有正常退出卡住了

  %CPU（s）的 id 是主要需要看的，意为空闲 CPU 的百分比，如果低于 20，那么系统的状态就比较卡了

  **3.2 杀死进程**

  主要命令：

  * `kill` 杀死某个进程
  * `killall` 按照进程杀死进程
  * `pkill` 按照进程名杀死进程，加 `-t` 可以按照终端号踢出用户
