第四章、首次登陆与线上求助
4.2 文字模式下指令的下达
4.2.1 开始下达指令
指令格式
command [-options] parameter1 parameter2 ...
-
command (指令) :必须是第一个输入,可以是系统指令(如
cd)或可执行文件(如脚本)。 -
options (选项) :
- 用于调整指令功能。
- 短选项前加
-(例如-h)。 - 长选项前加
--(例如--help)。 - 注:中括号
[]表示可选,实际输入时不需要打出来。
-
parameter (参数) :依附在选项后面,或者直接作为指令的对象。
核心规则
-
空格分隔:指令、选项、参数之间必须用空格区分。不论中间有几个空格,Shell 都视为一个分隔符。空格本身是重要的特殊字符。
长指令换行:若指令太长,可使用反斜线
接 [Enter] 换行。**注意**:后面必须立刻接回车键,不能有空格。 -
大小写敏感:Linux 严格区分英文大小写(例如
cd和CD是不同的指令)。
语系支持 locale
查看当前语系设置
使用 locale 指令可以查看系统当前的所有语系配置。
[dmtsai@study ~]$ locale
LANG=zh_TW.utf8 # 语言语系的输出 决定了整体的语言环境
LC_CTYPE="zh_TW.utf8" # 下面为许多信息的输出使用的特别语系
LC_NUMERIC=zh_TW.UTF-8
LC_TIME=zh_TW.UTF-8 # 时间方面的语系数据
LC_COLLATE="zh_TW.utf8"
....中间省略....
LC_ALL= # 全部的数据同步更新的设置值 设置了这个变量,它会覆盖上面所有的 LC_ 和 LANG 设置。
乱码现象 如果终端不支持当前语系(例如在不支持中文的环境下),执行 date 会显示乱码
[dmtsai@study ~]$ date
? 5??? 14:24:36 CST 2015 # 纯命令行下,无法显示中文字,所以前面是乱码
修改语系
可以通过直接给变量赋值来临时修改语系,常用于解决乱码问题。
# 设置变量
[dmtsai@study ~]$ LANG=en_US.utf8
[dmtsai@study ~]$ export LC_ALL=en_US.utf8
# 注意:LANG 只与输出讯息有关,若需要更改其他不同的讯息,要同步更新 LC_ALL 才行!
在设置变量时,等号 = 两边绝对不能有空格。正确:LANG=en_US.utf8 (连续输入),错误:LANG = en_US.utf8。上述修改方法仅对当前会话有效。永久修改语系通常需要修改配置文件。
以下是针对 4.2.2 基础指令操作的整理笔记,保留了所有关键代码案例与技术细节。
4.2.2 基础指令的操作
显示日期与时间:date
-
基本用法:直接输入
date显示当前系统时间。[dmtsai@study ~]$ date Fri May 29 14:32:01 CST 2015 -
格式化输出:使用
+号后接格式代码。[dmtsai@study ~]$ date +%Y/%m/%d 2015/05/29 [dmtsai@study ~]$ date +%H:%M 14:33注意:选项或参数前除了常见的减号
-,特定情况下(如格式化)也会使用正号+。
显示日历:cal
在较新版本的 Ubuntu(如 22.04+)中,cal 命令默认不再预装。它属于 bsdmainutils 或 ncal 软件包,需要手动安装。
-
基本语法:
cal [month] [year] -
常用案例:
-
显示本月(自动反白显示今日):
[dmtsai@study ~]$ cal May 2015 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -
显示整年:
[dmtsai@study ~]$ cal 2015 2015 ... (显示全年12个月) ... -
显示指定年月:
[dmtsai@study ~]$ cal 10 2015 October 2015 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
-
-
错误处理:输入非法参数(如月份 13)会提示错误信息。
[dmtsai@study ~]$ cal 13 2015 cal: illegal month value: use 1-12
简单计算器:bc
bc 是一个高精度的计算器程序,输入 bc 后会进入软件工作环境。
-
进入环境与基本运算:
[dmtsai@study ~]$ bc bc 1.06.95 ... (版权信息) ... 1+2+3+4 10 7-8+3 2 10*52 520 10%3 1 10/2 5 -
整数除法陷阱与
scale设置: 默认情况下,bc仅输出整数。若需小数,必须设置scale变量。[dmtsai@study ~]$ bc ... 10/100 0 # 默认为整数,结果为0 [dmtsai@study ~]$ bc ... scale=3 # 设置小数位数为3 1/3 .333 240/2349 .102
指令下达的两种环境模式
根据指令执行后的反馈,分为两种情况:
-
直接显示结果:
指令执行 -> 输出信息 -> 立刻回到命令提示符(如
date,cal)。 -
进入软件功能环境:
指令执行 -> 进入软件环境(如
bc) -> 需输入特定结束指令(如quit) -> 回到命令提示符。
以下是根据图片内容整理的 Linux 重要热键笔记,保留了所有关键代码案例:
4.2.3 重要的几个热键
[Tab] 键:命令与文件补全
-
命令补全 (Command Completion) :
-
规则:接在指令的第一个字后面。
-
操作:按一次补全唯一命令;按两次列出所有可能。
-
案例:
[dmtsai@study ~]$ ca[tab][tab] # 系统列出所有以 ca 开头的指令 cacertdir_rehash cairo-sphinx cancel case cache_check cal cancel.cups cat ... (省略) ... caller catman
-
-
文件补全 (File Completion) :
-
规则:接在指令的第二个字(或之后)后面。
-
案例:
[dmtsai@study ~]$ ls -al ~/.bash[tab][tab] # 系统列出 ~/.bash 开头的所有文件 .bash_history .bash_logout .bash_profile .bashrc
-
-
选项/参数补全 (Option/Argument Completion) :
-
规则:接在特定指令的选项位置(通常需安装
bash-completion)。 -
案例:
[dmtsai@study ~]$ date --[tab][tab] # 系统列出 date 指令可用的选项 --date --help --reference --rfc-3339= --universal --date= --iso-8601 --rfc-2822 --set --version
-
[Ctrl]-c 键:中断程序
-
功能:强制中断(Interrupt)当前正在运行的程序。
-
场景:指令输入错误导致程序“跑不停”,或者输出过多不想看了。
-
案例:
[dmtsai@study ~]$ find / ... (一堆东西都省略) ... # 此时屏幕很乱,看不到命令提示字符!直接按下 [Ctrl]-c 即可! [dmtsai@study ~]$ # 此时提示字符回来了,find 程序被中断
[Ctrl]-d 键:键盘输入结束 (EOF)
-
含义:End Of File 或 End Of Input。
-
功能:
- 表示输入结束。
- 替代
exit:在命令行直接按下[Ctrl]-d即可离开终端(相当于输入 exit)。
[Shift] + [Page Up] / [Page Down] 键:屏幕翻页
-
功能:在终端屏幕缓冲区上下翻页。
-
场景:当指令输出信息太长(如
cal 2015或大量find结果),导致前面的内容被挤出屏幕时,可用此组合键往回查看。[Shift] + [Page Up]:往上翻页。[Shift] + [Page Down]:往下翻页。
以下是根据图片内容整理的 Linux 线上求助笔记,重点关注 --help 的使用:
4.3 Linux 系统的线上求助 man page 与 info page
4.3.1 指令的 --help 求助说明
绝大多数 Linux 指令在开发时都内置了帮助信息,使用 --help 选项即可快速查看用法。
command --help
[dmtsai@study ~]# date --help
Usage: date [OPTION]... [+FORMAT]
or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
# 下面是主要的选项说明
-d, --date=STRING display time described by STRING, not 'now'
-f, --file=DATEFILE like -d once for each line of DATEFILE
... (中间省略) ...
-u, --utc, --universal print or set Coordinated Universal Time (UTC)
--help display this help and exit
--version output version information and exit
# 下面是重要的格式 (FORMAT) 的主要项目
FORMAT controls the output. Interpreted sequences are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
... (中间省略) ...
输出内容分析:
-
Usage (语法) :
-
显示了两种主要用法:
date [OPTION]... [+FORMAT]:显示当前时间(配合格式化输出)。date [MMDDhhmm[[CC]YY][.ss]]:设置系统日期时间。
-
-
Options (选项) :列出了主要参数(如
-d,-u)的含义。 -
Format (格式) :解释了
+FORMAT中可用的占位符(如%a,%A),对应之前学过的date +%Y/%m/%d。
--help 的优缺点评价
-
优点:
- 快速便捷:无需离开命令行即可查询。
- 覆盖常用指令:对于
cal,date等指令,信息足够清晰。
-
局限性:
- 信息简略:对于复杂指令(如
bc),可能缺少详细用法说明(例如bc --help不会解释scale用法或+ - * / %等运算符号)。 - 适用范围:主要用于查询“指令”本身,不适合查询“文件格式”或更深层的配置说明。
- 信息简略:对于复杂指令(如
剩余部分略
以下是根据图片内容整理的 Linux 文书编辑器 nano 的笔记:
4.4 超简单文书编辑器:nano
启动指令:直接在指令后加上文件名。
[dmtsai@study ~]$ nano text.txt
若文件存在则打开;若不存在则创建新文件。
进入 nano 后,界面主要分为三部分:
-
第一行:软件版本(如
GNU nano 2.3.1)与当前文件名(File: text.txt)。 -
中间区域:文本编辑区,光标所在位置。
-
底部两行:快捷键功能说明列。
- 符号
^代表键盘上的 [Ctrl] 键。 - 例如
^G Get Help意思就是按Ctrl + G获取帮助。
- 符号
nano 的功能主要通过组合键实现,以下是常用的几个:
| 快捷键 | 功能说明 |
|---|---|
| [Ctrl] + G | 取得线上说明 (Help),很有用! |
| [Ctrl] + X | 离开 nano (Exit)。 |
| [Ctrl] + O | 储存档案 (Write Out)。 |
| [Ctrl] + R | 从其他文件读入数据 (Read File),相当于粘贴。 |
| [Ctrl] + W | 搜寻字串 (Where Is)。 |
| [Ctrl] + C | 显示目前光标所在的行数与列数。 |
| [Ctrl] + _ | 直接输入行号,让光标快速移动到该行。 |
| [Alt] + Y | 校正语法功能打开或关闭 (高亮显示)。 |
| [Alt] + M | 支持鼠标来移动光标。 |
退出与保存流程
-
按下
[Ctrl] + X准备离开。 -
系统判断是否修改过内容:
-
若未修改:直接退出。
-
若已修改:屏幕下方会出现提示:
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ? Y Yes N No ^C Cancel
-
-
选择操作:
-
按
N:不保存,直接离开(刚才写的东西会消失)。 -
按
Y:保存文件。此时屏幕下方会变成:File Name to Write: text.txt- 此处可以修改文件名。
- 直接按
[Enter]:确认保存并离开 nano。
-
以下是根据图片内容整理的 Linux 正确关机方法笔记:
4.5 正确的关机方法
Linux 是多任务操作系统,直接断电(或按电源键强制关机)会导致严重后果:
- 数据丢失:数据通常先缓存在内存(RAM)中,尚未写入硬盘。断电会导致这部分数据丢失。
- 文件系统损坏:正在读写的文件可能因突然中断而损坏,导致系统无法启动。
在关机前,建议先确认系统状态,避免中断他人的工作:
- 查看谁在线:
who - 查看网络连线:
netstat -a - 查看背景进程:
ps -aux
数据同步:sync
-
作用:将内存中尚未写入硬盘的数据强制写入硬盘。
-
重要性:在关机或重启前,务必执行此指令,最好执行多次。
[root@study ~]# sync [root@study ~]# sync [root@study ~]# sync
惯用的关机指令:shutdown
这是最安全、最标准的关机指令,它会通知系统内的进程和服务进行关闭。
-
基本语法:
/sbin/shutdown [-krhc] [时间] [警告讯息] -
常用参数:
-k:不要真的关机,只发送警告讯息。-r:重新启动 (reboot)。-h:停机 (halt),即关机。-c:取消已经执行的 shutdown 指令。时间:可以是now(立刻),10(10分钟后),20:25(特定时间),+10(10分钟后)。
-
代码案例:
-
10分钟后关机并发送讯息:
[root@study ~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins' Broadcast message from root@study.centos.vbird (Tue 2015-06-02 10:51:34 CST): I will shutdown after 10 mins The system is going down for power-off at Tue 2015-06-02 11:01:34 CST! -
立刻关机:
[root@study ~]# shutdown -h now -
特定时间关机 (20:25) :
[root@study ~]# shutdown -h 20:25 -
30分钟后重启:
[root@study ~]# shutdown -r +30 -
只警告不关机:
[root@study ~]# shutdown -k now 'The system will reboot' -
取消关机:
[root@study ~]# shutdown -c
-
其他关机/重启指令
以下指令底层通常也是调用 systemctl,但在紧急情况下或习惯上常被使用:
-
reboot:重新启动。 -
halt:停止系统(屏幕可能保留信息,不一定切断电源)。 -
poweroff:切断电源关机(最彻底的关机)。[root@study ~]# sync; sync; sync; reboot [root@study ~]# halt # 系统停止 [root@study ~]# poweroff # 系统关机,切断电源
使用管理工具 systemctl 关机
在 CentOS 7 及更新版本中,系统管理核心是 systemd,推荐使用 systemctl 进行关机操作。
-
语法:
systemctl [指令] -
常用指令:
halt:停止系统。poweroff:关机(切断电源)。reboot:重启。suspend:休眠。
[root@study ~]# systemctl reboot # 系统重新启动 [root@study ~]# systemctl poweroff # 系统关机
权限提示:关机/重启属于系统级操作,通常需要 root 权限。普通用户可能需要输入 root 密码或使用
sudo。