wiki/运维/Linux/笔记/2.系统管理.md
2026-04-08 19:40:00 +08:00

301 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 1、查看系统信息
系统管理中,第一步通常不是直接操作,而是先确认当前系统的基本信息,例如:机器架构、内核版本、发行版信息等。
### 1.1 查看机器架构
```shell
[root@tencentos ~]# arch
x86_64
```
- `x86_64` 表示当前机器是 64 位架构
- `arch` 适合快速查看当前机器架构信息
### 1.2 查看内核版本
```shell
[root@tencentos ~]# uname -r
5.4.119-19.0009.28
```
- `uname -r` 用于查看当前运行中的 Linux 内核版本
- 排查驱动、内核模块、系统兼容性问题时很常用
### 1.3 查看发行版信息
```shell
[root@tencentos ~]# cat /etc/redhat-release
TencentOS Server release 3.1 (Final)
```
这个文件适合快速查看基于 Red Hat 系列系统的版本信息。
```shell
[root@tencentos ~]# cat /etc/os-release
NAME="TencentOS Server"
VERSION="3.1 (Final)"
ID="tencentos"
ID_LIKE="rhel fedora centos"
VERSION_ID="3.1"
PRETTY_NAME="TencentOS Server 3.1 (Final)"
```
- `/etc/os-release` 是更通用的系统发行版信息文件
- 自动化脚本中通常优先读取这个文件
## 2、关机与重启
Linux 中常见的关机和重启命令有 `halt``poweroff``reboot``shutdown`
在现代系统中,最常用、也最推荐的是 `shutdown`,因为它更灵活、更安全。
### 2.1 `halt`
`halt` 会停止系统运行,传统意义上表示“停机”。在不同系统中,具体行为可能受 systemd 或发行版实现影响。
### 2.2 `poweroff`
`poweroff` 会关闭系统并尝试关闭电源,常用于真正意义上的关机。
### 2.3 `reboot`
`reboot` 用于重启系统。
### 2.4 `shutdown`
`shutdown` 是最灵活的关机命令,可以:
- 立即关机
- 定时关机
- 定时重启
- 向当前登录用户发送提示信息
- 取消尚未执行的关机任务
#### 常见用法
```shell
shutdown -h now
```
立即关机。
```shell
shutdown -r now
```
立即重启。
```shell
shutdown -h +10
```
10 分钟后关机。
```shell
shutdown -c
```
取消已经设置的关机或重启任务。
#### 常用参数
- `-h`:关机
- `-r`:重启
- `-c`:取消
#### 时间格式
- `now`:立刻执行
- `+#`:表示若干分钟后执行,例如 `+10`
- `hh:mm`:指定绝对时间,例如 `23:30`
## 3、终端输出与显示信息
在 Shell 脚本中,`echo` 经常用于输出提示信息、控制换行、显示彩色文字等。
### 3.1 `echo` 基本用法
```shell
echo [-neE] [字符串]
```
### 3.2 常用参数
- `-E`:默认值,不解析转义字符
- `-n`:输出结束后不自动换行
- `-e`:启用转义字符解析
### 3.3 常见转义字符
- `\a`:发出提示音
- `\b`:退格
- `\c`:输出后不换行
- `\e`Escape 字符
- `\n`:换行
- `\r`:回车
- `\t`Tab
### 3.4 彩色输出示例
```shell
echo -e "\033[44;31;5mMySQL Server Stop...\033[0m"
```
这段输出的含义:
- `\033`:转义开始
- `44`:背景色为蓝色
- `31`:前景色为红色
- `5`:闪烁效果
- `\033[0m`:恢复默认显示,避免影响后续输出
### 3.5 常见颜色代码
#### 背景色
- `40`:黑
- `41`:红
- `42`:绿
- `43`:黄
- `44`:蓝
- `45`:紫
- `46`:青
- `47`:白
#### 前景色
- `30`:黑
- `31`:红
- `32`:绿
- `33`:黄
- `34`:蓝
- `35`:紫
- `36`:青
- `37`:白
#### 控制码
- `0`:关闭所有属性
- `1`:高亮
- `4`:下划线
- `5`:闪烁
- `7`:反显
- `8`:消隐
## 4、命令行扩展与引用
这一部分属于 Shell 的基础知识,平时写命令和脚本时会经常用到。
### 4.1 单引号
```shell
echo '$HOME'
```
单引号是**强引用**,里面的内容基本原样输出,不会解析变量,也不会执行命令替换。
### 4.2 双引号
```shell
echo "$HOME"
```
双引号是**弱引用**,会解析变量,但不会把普通文本当命令执行。
### 4.3 反引号
```shell
echo `date`
```
反引号表示命令替换,里面必须是可执行命令。不过现在更推荐使用 `$()`,可读性更好。
### 4.4 `$()`
```shell
echo $(date)
```
作用和反引号类似,表示先执行命令,再把结果嵌入当前命令。
### 4.5 花括号扩展
```shell
echo {1..10}
```
输出结果:
```shell
1 2 3 4 5 6 7 8 9 10
```
花括号扩展常用于批量生成字符串、文件名或序列。
## 5、命令补全
Bash 可以通过 Tab 键进行命令补全、路径补全、参数补全。
如果希望有更丰富的补全能力,通常需要安装:
```shell
bash-completion
```
安装后,很多命令可以直接通过 Tab 获得更智能的补全提示。
## 6、命令历史 `history`
Linux 会记录用户执行过的命令,方便重复执行、排查问题和审计操作。
一般流程如下:
- 当前会话中的历史命令先保存在内存中
- 正常退出 Shell 时,再写入历史文件
- 登录新的 Shell 时,再从历史文件中读取回来
默认历史文件通常是:
```shell
~/.bash_history
```
### 6.1 常用参数
- `history`:查看历史命令
- `history 10`:查看最近 10 条历史命令
- `history -c`:清空历史命令
- `history -d 100`:删除第 100 条历史记录
### 6.2 常见环境变量
- `HISTSIZE`:内存中保留的历史记录条数
- `HISTFILE`:历史文件路径
- `HISTFILESIZE`:历史文件中保留的历史记录条数
- `HISTTIMEFORMAT`:设置历史命令显示时间格式
- `HISTCONTROL`:控制哪些命令会被记录
### 6.3 `HISTCONTROL` 常见取值
- `ignoredups`:忽略连续重复命令
- `ignorespace`:忽略以空格开头的命令
- `ignoreboth`:相当于同时启用前两者
- `erasedups`:删除重复命令,只保留最新一条
### 6.4 时间格式示例
```shell
HISTTIMEFORMAT="%F %T "
```
如果你希望 `history` 命令显示执行时间,可以先设置这个变量。
## 7、小结
- `arch``uname -r``cat /etc/os-release` 常用于查看系统基本信息
- `shutdown` 是最常用、最灵活的关机和重启命令
- `echo -e` 可以输出带转义字符或颜色效果的文本
- 单引号、双引号、反引号、`$()` 是 Shell 中非常基础的内容
- `history` 可以帮助你提高操作效率,也有助于问题排查和审计
这篇内容属于 Linux 日常运维和 Shell 入门都非常常见的基础知识。