【鸟叔的Linux私房菜】4-首次登录与在线求助

4.1 首次登陆系统

不正常的关机会导致文件系统错乱,数据损毁,Linux主机一般会加挂一个UPS不间断电源的缘故。

隐藏文件:文件名开头是小数点

重新启动X Window的快捷键:

  • 直接注销,再重新登录
  • alt + ctrl + backspace

命令行界面终端界面TerminalConsole
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
  1. 打开终端:在 Linux 桌面环境中,你可以通过快捷键(通常是 Ctrl + Alt + T)或者从应用菜单找到“终端”来打开它。

  2. 运行 bc:在终端中输入 bc 并按回车键,这将启动 bc 并进入其交互模式。

退出bc:quit

基本计算

一旦你在 bc 中,可以直接输入数学表达式进行计算,然后按回车得到结果。例如:

  • 加法:5 + 3
  • 减法:10 - 4
  • 乘法:6 * 7
  • 除法:20 / 4
  • 指数:2^32^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版权信息或软件许可协议声明

显示命令说明时出现的数字代表的意义:

数字章节名称内容概要
1User Commands用户在shell环境中可以操作的命令或可执行文件,如 ls, cd, vim
2System Calls操作系统内核提供的低级接口,系统调用,如 open(), read()
3Library Functions编程库中的函数,如C库函数 printf(), malloc()
4Special Files特殊文件和设备文件,如 /dev/null, 硬件设备节点,null。
5File Formats各种文件格式的说明,如配置文件 /etc/passwd, 日志文件格式。
6Games系统自带的游戏和娱乐软件文档。
7Miscellaneous杂项,包括不属于其他分类的文档和信息。
8System Admin系统管理命令和工具,面向系统管理员使用,如 crontab, useradd
9Kernel 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 页面通常以一种树状结构组织,从一个顶层菜单开始,用户可以导航到不同的“节点”去阅读特定主题的内容。每个节点可能包含文本、子节点链接、菜单项以及指向其他相关节点的交叉引用。
在这里插入图片描述

以下是一些关键组成部分及其意义:

  1. Top Node (顶级节点)

    • 这是进入 info 文档时首先进入的页面,提供了文档的总体介绍,以及通向主要章节或“节点”的入口。
  2. Menu (菜单)

    • 菜单显示了一系列可选的子节点或章节标题,允许用户通过选择其中一个条目来深入阅读特定主题。
  3. Nodes (节点)

    • 每个节点是一个独立的主题或章节,包含了关于特定功能、命令、概念的详细信息。节点间通过超链接相互连接,形成层次结构。
  4. Cross-references (交叉引用)

    • 文档中提及的其他节点或相关主题的链接,用户可以通过这些链接直接跳转到相关节点。
  5. Key Bindings (键盘绑定)

    • 通常在顶部或帮助信息中列出,介绍了在阅读 info 页面时可以使用的键盘命令,如导航、搜索等。
  6. Commands/Functions Description (命令/函数描述)

    • 类似于 man 页面中的 SYNOPSIS 和 DESCRIPTION,这部分会详细描述命令或函数的使用方法、选项、参数及功能。
  7. Examples (示例)

    • 提供实际操作或编程示例,帮助用户理解如何应用命令或函数。
  8. Files (文件)

    • 如果相关,会列出重要的配置文件、库文件或系统文件及其位置。
  9. Bugs (错误)

    • 可能会提到已知问题或局限性。
  10. See Also (另请参阅)

    • 指向其他相关节点或外部文档的链接,供进一步阅读。
  11. 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/ 中查找信息:

  1. 手动浏览

    • 你可以直接使用文件浏览器或命令行工具(如 ls, cd)浏览 /usr/share/doc/ 目录及其子目录,寻找你需要的软件文档。
  2. 使用 find 命令

    • 如果你知道要找的软件包名称,可以使用 find 命令快速定位,如 find /usr/share/doc -name "nginx-*" 来查找所有与 nginx 相关的文档目录。
  3. 查看索引或 README 文件

    • 许多软件的 /usr/share/doc/ 目录下会有 READMEINDEX 文件,提供了该软件文档的概览或目录结构,有助于快速定位所需信息。
  4. 使用文档浏览器

    • 对于某些系统,可能还预装了文档浏览器(如 yelp 在 GNOME 桌面环境下),可以直接从这些应用中浏览 /usr/share/doc/ 下的文档。

记得,由于这个目录是系统级别的,可能需要管理员权限(通过 sudo 或以 root 身份)才能访问或修改其中的内容。

总结

总结上面的三个东西(man、info、usr/share/docl/),请记住:

  1. 在命令行模式中,如果你知道某个命令,但却忘记了相关选项与参数,请先使用【–help】
    的功能来查询相关信息;
  2. 当有任何你不知道的命令或文件格式这种玩意儿,但是你想要了解它,请赶快使用man或
    是info来查询;
  3. 如果你想要架设一些其他的服务,或想要利用一整组软件来完成某项功能时,请赶快到/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 nowsudo 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系统中,reboothaltpoweroff 是三个与系统重启和关机相关的常用命令,它们各有侧重:

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系统中运行级别的简明表格概述:

运行级别状态描述
0Halt关机模式,系统停止所有服务并关闭电源或进入可引导状态。
1Single-User Mode单用户模式,仅允许root登录,无网络服务,用于系统维护和修复。
2Multi-User No NW多用户模式,无网络服务,适用于不需网络的多用户文本界面环境。
3Multi-User完整的多用户模式,含网络服务,标准的无图形界面工作环境。
4User-Defined (*)未指定,默认通常等同于3,但可根据需要自定义配置。
5Multi-User GUI多用户图形界面模式,包含网络服务及图形登录界面。
6Reboot重启模式,系统执行重启操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值