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