4.1 首次登陆系统
不正常的关机会导致文件系统错乱,数据损毁,Linux主机一般会加挂一个UPS不间断电源的缘故。
隐藏文件:文件名开头是小数点
重新启动X Window的快捷键:
- 直接注销,再重新登录
alt + ctrl + backspace
称命令行界面
为终端界面
、Terminal
、Console
Linux默认会提供6个终端让用户登录:快捷键:ctrl + alt + F1-F6
ctrl + alt + F1
:图形用户界面
ctrl + alt + F2-F6
:命令行模式登录tty2-tty6终端
命令行环境启动图形界面 命令:startx
注销Linux:exit
4.2命令行模式下命令的执行
命令行模式登录后运行的程序称为壳shell
。
Linux的默认壳程序就是Bash
开始执行命令
command [-option] parameter
- 第一个输入的部分绝对是命令或可执行文件
- 中括号[]表示可选,通常选项前带 - 号,有时会使用选项的完整全名,选项前带 – 符号
- 不论空几格,shell视为一格
- 回车键代表执行命令
- Linux系统。英文大小写不一样
语言的选择
显示目前支持的语言
locale
纯命令行界面,无法显示中文
修改语言为英文
LANG=en.US.utf8
export LC_ALL=en.US.utf8 #同步更新
基础命令操作
date:显示日期和时间
显示系统时间:
date
格式化输出:
date +%Y/%m/%d
cal:显示日历
语法:
cal [month] [year]
列出这个月的日历:
cal
cal 2024 #显示整年的日历
bc:计算器
bc
是 Linux 系统中一个强大的命令行计算器,它的全名是 “Basic Calculator”,但功能远不止基础计算。以下是使用 bc
的一些基本方法:
启动 bc
-
打开终端:在 Linux 桌面环境中,你可以通过快捷键(通常是
Ctrl + Alt + T
)或者从应用菜单找到“终端”来打开它。 -
运行 bc:在终端中输入
bc
并按回车键,这将启动bc
并进入其交互模式。
退出bc:quit
基本计算
一旦你在 bc
中,可以直接输入数学表达式进行计算,然后按回车得到结果。例如:
- 加法:
5 + 3
- 减法:
10 - 4
- 乘法:
6 * 7
- 除法:
20 / 4
- 指数:
2^3
或2^3
- 取模(求余):
17 % 3
使用变量
在 bc
中,你可以定义变量并使用它们:
a = 5
b = 3
a + b
定义函数
bc
还支持函数定义:
sqrt(x) {
return x^(0.5)
}
sqrt(16)
使用 scale 设置精度
默认情况下,bc
的输出是仅输出整数,如果要输出小数点下位数,必须执行scale=number
。如果你想改变小数点后的位数,可以设置 scale
变量:
scale=4
4/3
这会显示 4/3
的结果,保留四位小数。
加载数学库
使用 -l
选项可以加载数学库,提供更高级的数学函数,比如对数和三角函数:
bc -l
scale=10
l(10) # 自然对数
s(1) # 正弦函数
c(1) # 余弦函数
a(1) # 正切函数
从文件读取脚本
你也可以将一系列 bc
命令保存到文件中,然后让 bc
读取并执行这个脚本:
echo "scale=2; 3.14159 * 4^2" | bc
# 或者
bc < script.bc
重要的热键
Tab
键:命令补全和文件补全的功能。可能还有选项参数补全。ctrl+c
键:中断当前程序ctrl+d
键:1、键盘输入结束;2、相当于exit,离开命令行模式shift+page up
:向上翻页shift+page down
:向下翻页
查看错误信息
4.3 linux系统的在线求助man page和info page
–help说明
显示命令的参数和选项
文件格式等,需要用man page
命令
man page
用于查看系统手册页(manual pages)。
man page的数据保存在/usr/share/man中,可以在/etc/man_db.conf修改man page的查找路径
基本用法
要查看某个命令、程序或系统调用的手册页,只需在 man 后面跟上相应的主题名称。
例如,要查看 ls 命令的手册页,你可以输入:
man ls
这将打开 ls 命令的手册页,通常在一个分屏阅读器(如 less)中显示,你可以使用上下箭头浏览内容,按下 /
键进行搜索,n
键查找下一个匹配项,N
键查找上一个匹配项,q
键退出阅读器。
man page大致分为几个部分:
部分 | 内容概要 |
---|---|
NAME | 简短描述命令、函数、文件或概念的名称及基本用途 |
SYNOPSIS | 概要说明命令或函数的使用语法,包括选项、参数等 |
DESCRIPTION | 详细介绍命令、函数或概念的功能、行为、应用场景等 |
OPTIONS | 列出所有可用的命令行选项及其作用,适用于命令说明页 |
COMMANDS / FUNCTIONS | 列出相关子命令或函数及其说明,适用于具有多个子命令的程序或函数库文档 |
FILES | 相关配置文件、数据文件或其他重要文件的位置 |
SEE ALSO | 提供相关联的手册页或其他参考资料的列表 |
EXAMPLES | 提供使用示例,帮助理解命令或函数的实际应用 |
BUGS | 已知错误或限制的说明 |
AUTHOR | 作者或维护者信息 |
REPORTING BUGS | 指导如何向开发者报告发现的问题或错误 |
COPYRIGHT / LICENSE | 版权信息或软件许可协议声明 |
显示命令说明时出现的数字代表的意义:
数字 | 章节名称 | 内容概要 |
---|---|---|
1 | User Commands | 用户在shell环境中可以操作的命令或可执行文件,如 ls , cd , vim 。 |
2 | System Calls | 操作系统内核提供的低级接口,系统调用,如 open() , read() 。 |
3 | Library Functions | 编程库中的函数,如C库函数 printf() , malloc() 。 |
4 | Special Files | 特殊文件和设备文件,如 /dev/null , 硬件设备节点,null。 |
5 | File Formats | 各种文件格式的说明,如配置文件 /etc/passwd , 日志文件格式。 |
6 | Games | 系统自带的游戏和娱乐软件文档。 |
7 | Miscellaneous | 杂项,包括不属于其他分类的文档和信息。 |
8 | System Admin | 系统管理命令和工具,面向系统管理员使用,如 crontab , useradd 。 |
9 | Kernel routines, usually for kernel programming | 针对内核程序的例程等 |
man page常用的按键:
按键 | 功能描述 |
---|---|
h | 显示帮助信息。 |
SPACE | 向下翻一页。 |
b | 向上翻一页(或使用PAGE UP键)。 |
j | 向下滚动一行。 |
k | 向上滚动一行。 |
d | 向下翻半页。 |
u | 向上翻半页。 |
G | 跳转到手册页的末尾。 |
g | 加上行号跳转到指定的行(如 g10 跳转到第10行)。 |
/pattern | 向下搜索指定的文本模式(按n查找下一个)。 |
?pattern | 向上搜索指定的文本模式。 |
q | 退出man页面。 |
Ctrl + L | 清屏并重新绘制屏幕。 |
Ctrl + F | 向前翻页(相当于SPACE)。 |
Ctrl + B | 向后翻页(相当于b)。 |
Ctrl + D | 向下翻半页。 |
Ctrl + U | 向上翻半页。 |
Enter | 当光标在链接上时,跳转到对应的man页面。 |
Home | 移动到当前页面的开头。 |
End | 移动到当前页面的结尾。 |
/string | 从当前光标位置开始向【下】搜索字符串string 。 |
?string | 从当前光标位置开始向【上】搜索字符串string 。 |
n | 在上次搜索的方向上查找下一个匹配项。 |
N | 在上次搜索的相反方向上查找下一个匹配项。 |
- 查找特定命令/文件的man page 说明文件
查找和man 相关的说明文件:-f
需要完全匹配
man -f man
输出:
man (1)
man(7)
可以看到有两个说明文件,指定查找哪个文件:
man 1 man
man 7 man
如果没有指定数字,那么先查找到哪个说明文件,显示哪个。通常先找到数字小的。
查找含有man关键字的:
man -k man
info page
info
页面是 GNU 系统中另一种形式的在线帮助文档系统,它提供了一种层次化的、节点式的文档浏览方式,相比传统的 man
手册页,info
页面能够提供更丰富的结构化信息和交叉引用。
数据在/usr/share/info/目录中
info
页面通常以一种树状结构组织,从一个顶层菜单开始,用户可以导航到不同的“节点”去阅读特定主题的内容。每个节点可能包含文本、子节点链接、菜单项以及指向其他相关节点的交叉引用。
以下是一些关键组成部分及其意义:
-
Top Node (顶级节点)
- 这是进入
info
文档时首先进入的页面,提供了文档的总体介绍,以及通向主要章节或“节点”的入口。
- 这是进入
-
Menu (菜单)
- 菜单显示了一系列可选的子节点或章节标题,允许用户通过选择其中一个条目来深入阅读特定主题。
-
Nodes (节点)
- 每个节点是一个独立的主题或章节,包含了关于特定功能、命令、概念的详细信息。节点间通过超链接相互连接,形成层次结构。
-
Cross-references (交叉引用)
- 文档中提及的其他节点或相关主题的链接,用户可以通过这些链接直接跳转到相关节点。
-
Key Bindings (键盘绑定)
- 通常在顶部或帮助信息中列出,介绍了在阅读
info
页面时可以使用的键盘命令,如导航、搜索等。
- 通常在顶部或帮助信息中列出,介绍了在阅读
-
Commands/Functions Description (命令/函数描述)
- 类似于
man
页面中的 SYNOPSIS 和 DESCRIPTION,这部分会详细描述命令或函数的使用方法、选项、参数及功能。
- 类似于
-
Examples (示例)
- 提供实际操作或编程示例,帮助用户理解如何应用命令或函数。
-
Files (文件)
- 如果相关,会列出重要的配置文件、库文件或系统文件及其位置。
-
Bugs (错误)
- 可能会提到已知问题或局限性。
-
See Also (另请参阅)
- 指向其他相关节点或外部文档的链接,供进一步阅读。
-
Copyright/License (版权/许可)
- 文档的版权信息和使用许可。
以下是 info
页面中一些基本的操作按键和概念:
按键 | 功能描述 |
---|---|
h | 显示帮助信息。 |
Space, Page Down, or f | 向下翻一页。 |
b, Page Up, or p | 返回上一页。 |
n, d, or Down Arrow | 移动到下一个节点(如果当前页面有子节点)。 |
p, u, or Up Arrow | 移动到父节点。 |
m | 切换到菜单。 |
l | 跟随一个交叉引用(类似超链接)。 |
t | 查看当前节点的表标题。 |
g | 跳转到指定的节点,会提示输入节点名。 |
TAB | 在菜单或索引中完成关键字的自动补全。 |
q | 退出 info 浏览器。 |
其他有用的文件documents
数据在/usr/share/doc/目录中
在Linux系统中,/usr/share/doc/
目录主要用于存放软件的文档、说明文件、默认配置示例以及可能的一些许可证信息。当你想要查找某个已安装软件的额外文档或了解更多关于该软件的使用信息时,可以访问这个目录。
该目录下的结构通常是按软件包(packages)来组织的,每个软件包都有自己的子目录,子目录的名称通常包含了软件的名称和版本号。例如,如果你安装了名为 nginx
的 web 服务器,你可能会在这个目录下找到一个名为 nginx-xx.xx.xx
(xx.xx.xx 表示版本号)的目录,里面包含了关于 nginx 的各种文档。
如何在 /usr/share/doc/
中查找信息:
-
手动浏览:
- 你可以直接使用文件浏览器或命令行工具(如
ls
,cd
)浏览/usr/share/doc/
目录及其子目录,寻找你需要的软件文档。
- 你可以直接使用文件浏览器或命令行工具(如
-
使用
find
命令:- 如果你知道要找的软件包名称,可以使用
find
命令快速定位,如find /usr/share/doc -name "nginx-*"
来查找所有与 nginx 相关的文档目录。
- 如果你知道要找的软件包名称,可以使用
-
查看索引或 README 文件:
- 许多软件的
/usr/share/doc/
目录下会有README
或INDEX
文件,提供了该软件文档的概览或目录结构,有助于快速定位所需信息。
- 许多软件的
-
使用文档浏览器:
- 对于某些系统,可能还预装了文档浏览器(如
yelp
在 GNOME 桌面环境下),可以直接从这些应用中浏览/usr/share/doc/
下的文档。
- 对于某些系统,可能还预装了文档浏览器(如
记得,由于这个目录是系统级别的,可能需要管理员权限(通过 sudo
或以 root 身份)才能访问或修改其中的内容。
总结
总结上面的三个东西(man、info、usr/share/docl/),请记住:
- 在命令行模式中,如果你知道某个命令,但却忘记了相关选项与参数,请先使用【–help】
的功能来查询相关信息; - 当有任何你不知道的命令或文件格式这种玩意儿,但是你想要了解它,请赶快使用man或
是info来查询; - 如果你想要架设一些其他的服务,或想要利用一整组软件来完成某项功能时,请赶快到/usr/share/doc/下面查一下有没有该服务的说明文件;
编辑器nano
nano
是一个轻量级、用户友好的文本编辑器,广泛存在于各种类Unix系统中,包括Linux和macOS。它被设计为一个简单易用的替代品,特别适合初学者或需要进行快速编辑的场合。nano
提供了一些基本的文本编辑功能,并在界面底部显示了常用操作的快捷键提示,方便用户记忆和使用。
启动 nano
编辑器
- 打开终端,输入
nano
加上你想要编辑或创建的文件名,例如:nano myfile.txt
。
基本操作快捷键
- 保存文件:
Ctrl + O
,然后按Enter
确认保存。 - 退出 nano:保存后,使用
Ctrl + X
退出编辑器。 - 剪切一行:将光标移到要剪切的行,按
Ctrl + K
。 - 复制一行:将光标移到要复制的行,按
Alt + 6
(或者Alt + ^
),然后使用M-
(即Alt
键加上-
键)来粘贴。 - 搜索:
Ctrl + W
输入搜索词,按回车开始搜索,Ctrl + W
再次按下可以继续查找下一个匹配项。 - 前往行号:
Ctrl + G
输入行号,然后按回车跳转到指定行。 - 显示行号:可以在启动时使用
nano -l myfile.txt
开启行号显示,或者在编辑器内按Alt + C
打开设置菜单,选择 “Display” -> “Show line numbers”。
其他特点
- 简易模式:首次启动或使用
-C
选项时,会显示一个简短的帮助信息。 - 语法高亮:支持多种编程和标记语言的语法高亮显示。
- 鼠标支持:在某些配置下,可以使用鼠标进行文本选择和滚动。
配置
nano
的配置文件通常是~/.nanorc
,用户可以通过编辑此文件来自定义编辑器的行为,如颜色方案、键绑定等。
正确的关机方法
数据同步写入磁盘:sync
在第0章“计算机概论”里面我们谈到过数据在计算机中运行的模式,所有的数据都得要被读入内存后才能够被CU所处理,但是数据又常常需要由内存写回硬盘当中(例如保存的操作)。由于硬盘的速度太慢(相对于内存来说),如果常常让数据在内存与硬盘中来回写入或读出,系统的性能就不会太好。
因此在Liuⅸ系统中,为了加快数据的读取速度,所以在默认的情况中,某些已经加载内存中的数据将不会直接被写回硬盘,而是先暂存在内存当中,如此一来,如果一个数据被你重复改写,那么由于它尚未被写入硬盘中,因此可以直接由内存当中读取出来,在速度上一定是快很多的。
不过,如此一来也造成些许的困扰,那就是万一你的系统因为某些特殊情况造成不正常关机(例如停电
或是不小心碰到电源)时,由于数据尚未被写入硬盘当中,所以就会造成数据的更新不正常。那要怎么办?
这个时候就需要sync这个命令来进行数据的写入操作。直接在命令行模式下输入sync,那么在内存中尚未被更新的数据,就会被写入硬盘中。所以,这个命令在系统关机或重新启动之前,最好多执行几次。
虽然目前的shutdown、reboot、.halt等命令均已经在关机前进行了sync这个程序的调用,不过多做几次总是比较放心点。
常用关机命令:shutdown
shutdown 命令是用于系统关机、重启或改变系统运行级别的强大工具。
下面是一些常用的语法和参数示例:
基础语法
shutdown [OPTIONS] [TIME] [MESSAGE]
参数说明
-
-h, --halt
关机后停止系统(不再重启)。 -
-r, --reboot
关机后重启系统。 -
-c, --cancel
取消已经安排的关机或重启计划。 -
-k, --kill
只发送警告消息给所有用户,但不真正执行关机或重启操作。 -
-f, --force
强制关闭正在运行的应用程序,不等待它们正常退出。 -
-F
重新打开交换分区并重新读取 /etc/fstab 文件(通常与 -r 一起使用)。 -
-H
关机(与 -h 相同)。 -
-P
重启(与 -r 相同)。 -
-t SEC, --time=SEC
设置关机或重启之前的延迟时间(秒)。 -
TIME
指定关机或重启的具体时间,可以是HH:MM格式(小时:分钟)或+MINUTES(几分钟后)。 -
MESSAGE
传递给用户的通知消息,说明关机或重启的原因。
实例
-
立即关机
sudo shutdown -h now
或sudo shutdown -h +0
-
10分钟后关机
sudo shutdown -h +10 "系统将在10分钟后关机,请保存工作。"
-
明天上午8点关机
sudo shutdown -h 08:00
-
立即重启
sudo shutdown -r now
-
5分钟后重启
sudo shutdown -r +5 "系统将在5分钟后重启进行更新。"
-
取消计划的关机或重启
sudo shutdown -c
通过组合这些参数,管理员可以灵活地安排和控制系统的关机与重启过程。
重新启动、关机:reboot、halt、poweroff
在Linux系统中,reboot
、halt
和 poweroff
是三个与系统重启和关机相关的常用命令,它们各有侧重:
1. reboot
- 功能:该命令用于立即重启计算机系统,不进行任何关机前的清理工作。它会跳过正常的关机流程,直接请求内核重新启动。
- 使用场景:适合于需要快速重启系统的情况,比如应用更新后需要重启以应用变更。
2. halt
- 功能:
halt
原本是用于将系统停机至一个可引导状态,即停止所有进程并关闭系统,但不切断电源。在较旧的系统或配置中,它确实只做到这一步。但在现代系统,尤其是使用systemd
的系统上,halt
实际上等同于poweroff
,即会完全关闭电源。 - 使用场景:传统上用于希望系统停机而不自动切断电源的场景,但现在更多作为关机命令的替代。
3. poweroff
- 功能:此命令用于完全关闭计算机电源,执行彻底的关机过程,包括停止所有运行的服务和进程,然后切断电源。它是现代系统中用于关机的标准命令。
- 使用场景:当需要彻底关闭系统,比如维护、长期不使用或响应节能减排策略时使用。
总结来说,reboot
用于快速重启,halt
在历史上用于停机(现代系统中可能等同于 poweroff
),而 poweroff
用于完全关闭系统。选择哪个命令应基于你的具体需求和系统配置。
使用管理工具systemctl关机
reboot、halt、poweroff、shutdown关机,本质都是调用systemctl。
init
命令是Linux系统中的第一个进程,其进程ID(PID)始终为1,负责系统初始化并管理系统的整个生命周期,包括系统启动、运行以及关机过程。
使用init 0
关机
以下是传统SysV init系统中运行级别的简明表格概述:
运行级别 | 状态 | 描述 |
---|---|---|
0 | Halt | 关机模式,系统停止所有服务并关闭电源或进入可引导状态。 |
1 | Single-User Mode | 单用户模式,仅允许root登录,无网络服务,用于系统维护和修复。 |
2 | Multi-User No NW | 多用户模式,无网络服务,适用于不需网络的多用户文本界面环境。 |
3 | Multi-User | 完整的多用户模式,含网络服务,标准的无图形界面工作环境。 |
4 | User-Defined (*) | 未指定,默认通常等同于3,但可根据需要自定义配置。 |
5 | Multi-User GUI | 多用户图形界面模式,包含网络服务及图形登录界面。 |
6 | Reboot | 重启模式,系统执行重启操作。 |