目录
- 传送门
- 前言
- 一、指定运行级别概念
- 二、指定运行级别实战
- 三、帮助指令概念
- 四、帮助指令实战
- 1. **`man` - 手册页(Manual Pages)**
- 2. **`--help` - 命令行帮助**
- 3. **`info` - 更详细的帮助**
- 4. **`whatis` - 快速命令简介**
- 5. **`apropos` - 查找命令和关键字**
- 6. **`type` - 查看命令类型**
- 7. **`which` - 查找命令的路径**
- 8. **`help` - Bash 内建命令帮助**
- 9. **`echo $0` - 查看当前 shell**
- 10. **`alias` - 查看命令别名**
- 11. **`compgen` - 查看可用命令**
- 12. **`tldr` - 简明手册**
- 13. **`dpkg` 和 `rpm` - 软件包管理帮助**
- 总结:
传送门
SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口
前言
不懂点Linux,都不好意思和别人说自己是开发,所以一些基础的必须掌握,同样的也是面试高频。
以下文章不定时更新…
Linux基础篇
Linux实操篇
Linux定制篇
一、指定运行级别概念
有点类似window启动的时候选择boot,然后选择层级1 进入到单用户模式(因为root密码都忘记了,没法登录进去再切换)
二、指定运行级别实战
在 Linux 系统中,运行级别(Runlevel) 用来表示系统的不同状态或模式。每个运行级别决定了哪些服务或进程会被启动,系统的运行环境也随之变化。传统的 Linux 系统使用 SysVinit 或 Upstart 等初始化系统,运行级别概念一直被使用,尽管现代的系统中,很多分发版使用 systemd
来替代传统的 init 系统,但运行级别的概念依然存在,并且在 systemd
中通过目标(target)来实现。
1. 传统的运行级别(SysVinit)
在传统的 SysVinit 系统中,系统会在启动时进入一个特定的运行级别,每个级别对应一个特定的系统状态。运行级别通常由数字(0-6)来表示,每个数字代表不同的系统模式。以下是常见的运行级别:
运行级别定义:
- 0:关机(Runlevel 0 表示关机)。系统会关闭所有服务并完全停止运行。
- 1:单用户模式(Single-user mode)。这是一个只有一个用户(通常是 root)登录的模式,通常用于系统维护和故障排除。没有网络服务、图形界面等,只运行最基本的系统服务。
- 2:多用户模式,不含网络(Multi-user mode without networking)。系统可以有多个用户登录,但没有启用网络服务。
- 3:多用户模式,启用网络(Multi-user mode with networking)。系统可以有多个用户登录,并且启用了网络服务,通常是服务器模式。没有图形界面。
- 4:未使用(Undefined/Not used)。通常这个运行级别没有预设用途,某些系统管理员可能会用来定义自定义的服务。
- 5:图形界面(Graphical mode)。这是大多数桌面 Linux 系统使用的默认级别,除了多用户模式外,还会启动图形用户界面(GUI),比如 X11、GNOME 或 KDE 桌面环境。
- 6:重启(Reboot)。系统会在此运行级别下重启,启动时会重新进入
runlevel 1
或runlevel 5
(依赖于系统的设置)。
运行级别配置:
- 运行级别的配置信息通常存储在
/etc/inittab
文件中(在使用 SysVinit 的系统中)。在该文件中,你可以看到一个initdefault
设置,表示系统启动时默认进入的运行级别。
例如,在 /etc/inittab
中可能会有类似以下的内容:
id:5:initdefault:
这表示系统启动后默认进入运行级别 5(图形界面模式)。
2. systemd 的目标(target)
在现代 Linux 系统中,systemd
替代了传统的 SysVinit 系统。虽然运行级别的概念仍然存在,但在 systemd
中,使用的是 目标(target) 来代替运行级别。每个目标都对应一个或多个运行级别。通过 systemd
的目标,可以实现与传统运行级别相似的功能。
常见的 systemd 目标:
- poweroff.target:关机模式,对应传统的运行级别 0。
- rescue.target:单用户模式,对应传统的运行级别 1。
- multi-user.target:多用户模式,不含图形界面,对应传统的运行级别 3。
- graphical.target:图形界面模式,对应传统的运行级别 5。
- reboot.target:重启模式,对应传统的运行级别 6。
查看当前目标:
可以通过以下命令查看当前 systemd
目标:
systemctl get-default
设置默认目标:
要更改默认启动目标,可以使用 systemctl set-default
命令。例如,设置默认目标为图形界面模式(即传统的运行级别 5):
sudo systemctl set-default graphical.target
切换到特定目标:
可以使用 systemctl isolate
命令临时切换到某个目标。例如,切换到单用户模式(对应传统的运行级别 1):
sudo systemctl isolate rescue.target
3. 运行级别和目标之间的关系
在传统的 SysVinit 系统中,运行级别和目标一一对应。但在 systemd
中,运行级别与目标的对应关系如下:
SysVinit 运行级别 | systemd 目标 | 描述 |
---|---|---|
0 | poweroff.target | 关机 |
1 | rescue.target | 单用户模式 |
2 | multi-user.target | 多用户模式(不带网络) |
3 | multi-user.target | 多用户模式(带网络) |
4 | 无预设用途 | 用户自定义 |
5 | graphical.target | 图形界面模式 |
6 | reboot.target | 重启 |
4. 总结
- 传统的 SysVinit 系统使用运行级别(0-6)来表示系统的不同状态。
- systemd 替代了传统的 init 系统,使用目标(target)来实现类似的功能。每个目标对应不同的系统状态,常见的目标包括
poweroff.target
、rescue.target
、multi-user.target
、graphical.target
等。 - 在
systemd
中,你可以通过systemctl
命令查看、设置或切换目标,从而控制系统的运行状态。
三、帮助指令概念
四、帮助指令实战
在 Linux 系统中,有多个帮助指令可以帮助用户获取命令、工具、配置文件和程序的相关信息。以下是一些常用的帮助指令:
1. man
- 手册页(Manual Pages)
man
命令是 Linux 系统中查看命令、函数和配置文件等详细帮助文档的最常用方式。
-
用法:
man [command]
-
示例:
man ls
显示
ls
命令的手册页。 -
常见选项:
man -k [keyword]
:搜索包含关键字的所有手册页。man -f [command]
:查看命令简短的描述。
2. --help
- 命令行帮助
几乎所有 Linux 命令都支持 --help
选项,显示该命令的简要使用说明、可用的选项和参数。
- 用法:
[command] --help
- 示例:
显示ls --help
ls
命令的简要帮助信息。
3. info
- 更详细的帮助
info
命令用于查看比 man
页更详细的帮助文档。它提供了更结构化的帮助内容,并支持导航。
- 用法:
info [command]
- 示例:
显示info ls
ls
命令的详细帮助信息。
4. whatis
- 快速命令简介
whatis
命令用来获取命令、程序、函数等的简短描述。它通常会显示该命令的一句话简介。
- 用法:
whatis [command]
- 示例:
输出类似于:whatis ls
ls (1) - list directory contents
5. apropos
- 查找命令和关键字
apropos
命令用于搜索系统的手册页,查找包含给定关键字的命令或文档。
- 用法:
apropos [keyword]
- 示例:
搜索所有与“copy”相关的命令和文档。apropos copy
6. type
- 查看命令类型
type
命令用来显示给定命令的类型。例如,是否是内建命令、别名、路径等。
- 用法:
type [command]
- 示例:
输出类似于:type ls
ls is aliased to 'ls --color=auto'
,表示ls
是一个别名。
7. which
- 查找命令的路径
which
命令用于显示给定命令的绝对路径,帮助用户了解该命令来自哪个可执行文件。
- 用法:
which [command]
- 示例:
输出类似于:which ls
/bin/ls
8. help
- Bash 内建命令帮助
如果你想获取 Bash 内建命令的帮助,可以使用 help
命令。它显示的是 Bash 内建命令的帮助信息,而不是外部命令。
- 用法:
help [command]
- 示例:
显示help cd
cd
内建命令的帮助。
9. echo $0
- 查看当前 shell
在使用 shell 时,你有时可能想确认当前正在使用的是哪个 shell(如 bash、zsh 等),可以通过 echo $0
来显示当前使用的 shell 类型。
- 用法:
echo $0
- 示例:
输出当前 shell 的名称,比如echo $0
bash
。
10. alias
- 查看命令别名
alias
命令显示所有的命令别名。你可以查看是否有命令被别名化,以及它们的定义。
- 用法:
alias
- 示例:
输出当前所有设置的别名及其对应的命令。alias
11. compgen
- 查看可用命令
compgen
用于列出所有可用的命令、函数、别名等。你可以通过特定的选项筛选不同类型的内容。
- 用法:
compgen -c
- 示例:
显示所有可用的命令。compgen -c
12. tldr
- 简明手册
tldr
(“Too long; didn’t read”)是一个提供简明帮助文档的工具,目的是让用户更快速地了解常用命令的用法。它比 man
页更简洁,通常包含了命令的简要介绍和常见示例。
- 用法:
tldr [command]
- 示例:
显示简化的tldr ls
ls
命令用法和示例。
注意:
tldr
需要安装并配置tldr
客户端,通常可以通过包管理器进行安装。
13. dpkg
和 rpm
- 软件包管理帮助
对于基于 Debian 的系统(如 Ubuntu),可以使用 dpkg
查看包的详细信息,类似地,基于 Red Hat 的系统(如 CentOS)使用 rpm
命令。
-
Debian 系统:
dpkg --help
-
Red Hat 系统:
rpm --help
总结:
- 使用
man
来查看命令和程序的详细手册。 - 使用
--help
获取简短的帮助信息。 - 使用
info
获取比man
更详细的信息。 - 使用
whatis
获取命令的简短描述。 - 使用
apropos
搜索包含关键字的命令。 - 使用
help
获取 Bash 内建命令的帮助。
这些命令可以帮助你在使用 Linux 时快速获取所需的信息,解决遇到的问题。