4.1 首次登陆系统

4.1.1-4.1.2 GNOME 图形接口

GNOME 桌面分三大区域:上方工具列(应用程序/位置/状态区)、桌面(主文件夹+垃圾桶)、下方工作列(多任务切换 + 虚拟桌面,默认 4 个)。

几个要点:

  • 隐藏文件:文件名以 . 开头的就是隐藏文件,不是特殊权限,纯粹命名规则
  • “活动总览”:左上角点开,能看到所有虚拟桌面和运行中的应用,比在任务栏找快
  • 虚拟桌面:默认 4 个,用”调校工具”(Tweak Tool)可以改成 6 个
  • GNOME 动画:虚拟机里可能很卡,关掉:gsettings set org.gnome.desktop.interface enable-animations false
  • 屏幕锁定:默认 5 分钟自动锁屏。练习机嫌烦可以在设置→电源里改成”永不”
  • 重启 X Window 的秘诀:Ctrl+Alt+Backspace(需先在调校工具里启用,否则组合键无效)

💡 鸟哥被 GNOME 的求助窗口骗了——长得像浏览器但其实不是,学生直接在”网址栏”输 URL 当然打不开。这算是 GUI 时代的”假熟悉感”陷阱。

4.1.3 X Window 与文字模式切换

Linux 默认有 6 个终端(terminal/console):

按键进入
Ctrl+Alt+F1图形接口(如果装了且默认启动)
Ctrl+Alt+F2~F6纯文字终端 tty2~tty6
  • CentOS 7 默认只启动 tty1,切到 F2 才动态创建 tty2
  • 纯命令行下启动 X:startx(前提:X 装了、没有其他 X 已启动、有窗口管理器)
  • CentOS 7 已废除 SystemV 的 run level,改用 systemd 管理服务(graphical.target 决定是否默认图形界面),不再有 /etc/inittab

4.1.4 文字模式登陆信息解读

CentOS Linux 7 (Core)
Kernel 3.10.0-229.el7.x86_64 on an x86_64
study login: dmtsai       ← 主机名只取第一个点前的部分
Password:                 ← 输入时不回显!不是键盘坏了!
Last login: ... on tty1   ← 上次登录记录,要看看是不是自己
[dmtsai@study ~]$ _       ← dmtsai=当前用户, study=主机名, ~=家目录, $=普通用户

核心认知

  • ~ 是变量,代表当前用户的主文件夹(dmtsai → /home/dmtsai,root → /root
  • $ = 一般用户,# = root。看提示符就知道自己是谁——这是防手滑的第一道防线
  • 登出:exitCtrl+D(EOF)
  • 登出 ≠ 关机,系统其他任务继续跑

4.2 文字模式下指令的下达

4.2.1 指令语法

command  [-options]  parameter1  parameter2  ...

七个要点:

  1. 第一个输入的一定是指令或可执行文件
  2. 短选项用 -(如 -h),长选项用 --(如 --help
  3. 参数跟在选项后
  4. 空格区分各个部分(不论空几格都当一格)
  5. 按 Enter 立即执行
  6. 太长的指令用 \ 换行
  7. 大小写绝对不同dateDateDATE

4.2.2 基础指令

指令用途示例
date显示/设置日期时间date +%Y/%m/%d2015/05/29
cal显示日历cal 10 2015 → 2015年10月月历
bc命令行计算器进入后算 1+2+3quit 离开;除法默认丢小数,需先 scale=3
locale查看当前语系LANG=zh_TW.utf8 → 繁体中文
LANG=en_US.utf8临时切英文语系避免纯文本终端中文乱码

💡 指令分两种执行模式:执行完立刻回提示符(如 date)、进入软件内部环境(如 bc,要输 quit 才能出来)。判断方法:看光标前面是不是 [user@host ~]$

4.2.3 必学的热键

热键功能重要程度
[Tab]×2命令补全(关键词后)或文件补全(参数位后)⭐⭐⭐
[Ctrl]+C中断当前运行的程序⭐⭐⭐
[Ctrl]+DEOF(键盘输入结束),可替代 exit⭐⭐
[Shift]+[PgUp/PgDn]翻看之前的输出(纯文本界面下)
  • Tab 补全是 Linux Shell 最强功能之一:防打错、防忘记、还能发现新指令
  • CentOS 7 装了 bash-completion 后,Tab 在部分指令后可补齐选项/参数(但这也会让原本的文件补齐失效,鸟哥踩过坑)
  • 啥都不敲直接 [Tab][Tab] 列出所有指令的功能在 7.x 被删了(指令太多)

4.2.4 错误讯息怎么读

bash: DATE: command not found... → 打错字/软件没装/不在 PATH 里。CentOS 7 的 bash 还会提示 Similar command is: 'date'

💡 出错先别看 Google,看屏幕信息。系统一般已经告诉你问题在哪了。

4.3 线上求助——man page 与 info page

4.3.1 —help

几乎所有指令都支持 指令 --help,快速查看选项和参数。适合查你用过的指令的参数,不适合从零学新指令。

4.3.2 man page(最重要)

man 指令 → 详细的说明文档。以 man date 为例,结构如下:

区块内容
NAME指令全称 + 一句话用途
SYNOPSIS语法格式([] 表示可选,... 表示重复)
DESCRIPTION详细说明(建议细读)
OPTIONS所有选项的逐一解释
FILES相关的配置文件路径
SEE ALSO关联资料(“还有哪些可以看”)
EXAMPLES使用范例

man 后面的数字决定了查哪一类(man 1 manman 7 man 内容不同):

代号含义记忆口诀
1用户可用的指令”1”看指令
5配置文件格式”5”看配置
8管理员指令”8”是管理
2系统调用内核开发用
3C函数库编程用
4设备文件/dev 下的文件
7惯例与协定如 ASCII、文件系统

man page 内导航键

功能
空白/Page Down向下翻页
Page Up向上翻页
/关键词向下搜索,n 下一个,N 上一个
?关键词向上搜索
Home / End第一页 / 最后一页
q退出

其他与 man 相关的指令

  • man -f 关键词 = whatis 关键词:精确匹配指令名
  • man -k 关键词 = apropos 关键词:模糊搜索,只要说明文本里有关键词就列出来(需先 mandb 建数据库)
  • 鸟哥的日常用法:记住核心指令→ man 指令 查 SEE ALSO → 指令 --help 查选项 → man 新指令 深入

4.3.3 info page

Linux 特有的说明格式:把文档拆成多个节点(node),节点间有类似网页的超链接,Tab 在链接间跳、Enter 进入、N/P/U 在节点间导航、h 查看帮助。只有用 info 格式写的说明文档才能享受这些超链接功能(/usr/share/info/)。

4.3.4 /usr/share/doc

不属于 man/info 的额外文档都在这。按软件包(package)组织,装了什么软件就来这翻。三个求助渠道总结:

场景方法
用过但忘了参数--help
没见过的新玩意儿maninfo
搭服务/整组软件/usr/share/doc

4.4 超简单文书编辑器:nano

nano 是命令行下的简易文本编辑器,比 vim 友好得多(vim 留给第九章)。

nano text.txt    # 文件存在就打开,不存在就新建

核心快捷键(^ = Ctrl):

功能
Ctrl+G帮助
Ctrl+X退出(修改过会问是否保存)
Ctrl+O保存(Save)
Ctrl+R读入其他文件插入当前位置
Ctrl+W搜索
Ctrl+_跳到指定行号
Ctrl+C显示当前光标所在行列号

4.5 正确的关机方法

为什么不能直接拔电:Linux 是多用户多任务系统,后台随时有人的进程在跑;更致命的是数据为了速度暂存内存(延迟写入),强行断电 → 文件系统可能损坏。

关机前必做

who         # 看看谁在线
netstat -a  # 看看网络连接
ps -aux     # 看看后台进程
sync        # 把内存数据强制写回硬盘(多执行几次!)

虽然现代 shutdown 指令已内置 sync,但老派习惯会手动 sync; sync; sync

shutdown 指令(root 才能用)

shutdown -h now          # 立刻关机
shutdown -h +10          # 10分钟后关机
shutdown -h 20:25        # 指定时间关机
shutdown -r now          # 立刻重启
shutdown -r +30 'Reboot' # 30分钟后重启+广播消息
shutdown -k now '...'    # 只吓人不真关(-k=仅警告)
shutdown -c              # 取消已安排的关机

不加任何参数时默认 1 分钟后关机(CentOS 7 改了,以前会进单人维护模式)。

其他关机指令

halt / poweroff / reboot — 底层都调用同一个 systemctl 命令,选自己顺手的记就行。CentOS 7 已改用 systemd,旧版 init 0/init 6 仅作为相容保留:

systemctl reboot     # 重启
systemctl poweroff   # 关机

💡 “为什么关机这么麻烦”——因为 Linux 假设你的机器不是只给你一个人用的。Windows 单人假多任务随便关,Linux 服务器上可能几十个人在跑任务,直接断电就是在搞破坏。

关键命令

命令用途
date显示/格式化日期时间
cal [月] [年]显示日历(万年历)
bc命令行计算器(scale=N 设小数位,quit 退出)
locale查看语系设置
LANG=en_US.utf8临时切换英文语系(终端中文乱码时用)
startx纯命令行下启动图形界面
指令 --help快速查看指令选项
man 指令详细手册(q 退出,/ 搜索)
man -f 关键词 / whatis精确查找 man 条目
man -k 关键词 / apropos模糊搜索 man 条目
mandb重建 whatis/apropos 数据库(root)
info 指令info page 格式的说明文档
nano 文件名打开简单文本编辑器
who查看当前在线用户
sync强制内存数据写回硬盘
shutdown -h now立即关机
shutdown -r now立即重启
systemctl poweroff / rebootsystemd 方式关机/重启