301 lines
6.2 KiB
Markdown
301 lines
6.2 KiB
Markdown
## 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 入门都非常常见的基础知识。 |