侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux runlevel命令教程:查看和切换运行级别(附实例详解和注意事项)

Linux runlevel 命令介绍

runlevel(运行级别)是一种用于表示 Linux 系统操作状态的单个数字。不同的运行级别可以启动不同的系统服务和进程。运行级别通常有七个,从 0 到 6,分别对应不同的系统功能。例如,运行级别 0 表示关机,运行级别 6 表示重启,运行级别 1 表示单用户模式,运行级别 5 表示多用户模式并启动图形界面。

runlevel 命令可以用来查看或修改当前的运行级别。它可以显示系统从启动到现在经历的所有运行级别的变化,也可以切换到指定的运行级别。runlevel 命令是 init 程序的一个接口,init 程序是 Linux 系统启动后的第一个进程,负责管理其他进程的启动和停止。

Linux runlevel 命令适用的 Linux 版本

runlevel 命令适用于大多数使用 System V 风格初始化的 Linux 系统,如 Debian、Ubuntu、RedHat、CentOS、Fedora 等。但是,一些 Linux 系统已经使用 systemd 替代了 init 程序,因此 runlevel 命令可能不再有效。例如,Arch Linux、openSUSE、Kali Linux 等。在这些系统中,可以使用 systemctl 命令来查看或修改系统状态 。

如果您的 Linux 系统没有安装 runlevel 命令,您可以根据您的系统类型选择以下命令来安装它:

# 对于基于 apt 的发行版(如 Debian、Ubuntu、Raspbian、Kali Linux 等):
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install sysvinit-utils

# 对于基于 yum 的发行版(如 RedHat,CentOS 7 等):
[linux@bashcommandnotfound.cn ~]$ sudo yum install sysvinit-tools

# 对于基于 dnf 的发行版(如 Fedora,CentOS 8 等):
[linux@bashcommandnotfound.cn ~]$ sudo dnf install sysvinit-tools

# 对于基于 apk 的发行版(如 Alpine Linux):
[linux@bashcommandnotfound.cn ~]$ sudo apk add --update sysvinit

# 对于基于 pacman 的发行版(如 Arch Linux):
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S sysvinit

Linux runlevel 命令的基本语法

runlevel 命令的基本语法格式如下:

runlevel [OPTIONS] [NEW_RUNLEVEL]

其中,OPTIONS 是可选的参数,用来控制 runlevel 命令的行为。NEW_RUNLEVEL 是可选的参数,用来指定要切换到的新的运行级别。如果不指定 NEW_RUNLEVEL,runlevel 命令只会显示当前的运行级别和上一个运行级别。

Linux runlevel 命令的常用选项或参数说明

runlevel 命令的常用选项或参数如下表所示:

选项或参数说明
-h, --help显示帮助信息
-V, --version显示版本信息
0切换到运行级别 0,即关机
1切换到运行级别 1,即单用户模式
2切换到运行级别 2,即多用户模式,不启动网络服务
3切换到运行级别 3,即多用户模式,启动网络服务,不启动图形界面
4切换到运行级别 4,即用户自定义的模式
5切换到运行级别 5,即多用户模式,启动网络服务和图形界面
6切换到运行级别 6,即重启

Linux runlevel 命令实例详解

以下是一些使用 runlevel 命令的常见实例:

实例1:查看当前的运行级别和上一个运行级别

如果不指定任何参数,runlevel 命令会显示当前的运行级别和上一个运行级别。例如:

[linux@bashcommandnotfound.cn ~]$ runlevel
N 5

上面的输出表示,当前的运行级别是 5,即多用户模式,启动网络服务和图形界面。上一个运行级别是 N,即没有上一个运行级别,表示系统是从关机状态启动的。

实例2:切换到单用户模式

如果要切换到单用户模式,可以使用 runlevel 1 命令。这个命令会让系统进入最小化的状态,只有 root 用户可以登录,不启动网络服务或其他进程。这个模式通常用于系统维护或紧急修复。例如:

[linux@bashcommandnotfound.cn ~]$ runlevel 1

执行上面的命令后,系统会提示输入 root 密码,然后进入单用户模式。在这个模式下,可以执行一些系统管理的命令,如 fsck、mount、umount 等。如果要退出单用户模式,可以使用 exit 命令或者 runlevel 命令切换到其他运行级别。

实例3:切换到多用户模式,启动网络服务,不启动图形界面

如果要切换到多用户模式,启动网络服务,但不启动图形界面,可以使用 runlevel 3 命令。这个命令会让系统进入命令行界面,允许多个用户登录,启动网络服务和其他进程。这个模式通常用于服务器或者不需要图形界面的场合。例如:

[linux@bashcommandnotfound.cn ~]$ runlevel 3

执行上面的命令后,系统会切换到运行级别 3,显示登录提示符,可以输入用户名和密码登录。在这个模式下,可以执行一些网络相关的命令,如 ping、ssh、curl 等。如果要切换到图形界面,可以使用 startx 命令或者 runlevel 5 命令。

实例4:切换到多用户模式,启动网络服务和图形界面

如果要切换到多用户模式,启动网络服务和图形界面,可以使用 runlevel 5 命令。这个命令会让系统进入图形界面,允许多个用户登录,启动网络服务和其他进程。这个模式通常用于桌面或者需要图形界面的场合。例如:

[linux@bashcommandnotfound.cn ~]$ runlevel 5

执行上面的命令后,系统会切换到运行级别 5,显示图形登录界面,可以选择用户名和输入密码登录。在这个模式下,可以使用图形界面的程序,如浏览器、编辑器、游戏等。如果要切换到命令行界面,可以使用 Ctrl+Alt+F1~F6 组合键或者 runlevel 3 命令。

实例5:重启系统

如果要重启系统,可以使用 runlevel 6 命令。这个命令会让系统先停止所有的进程,然后重新启动。这个模式通常用于更新系统或者更改系统配置后生效。例如:

[linux@bashcommandnotfound.cn ~]$ runlevel 6

实例6:关机系统

如果要关机系统,可以使用 runlevel 0 命令。这个命令会让系统先停止所有的进程,然后关闭电源。这个模式通常用于安全地关闭系统。例如:

[linux@bashcommandnotfound.cn ~]$ runlevel 0

执行上面的命令后,系统会切换到运行级别 0,显示关机信息,然后断开电源。

实例7:查看系统启动时的默认运行级别

如果要查看系统启动时的默认运行级别,可以使用 grep 命令搜索 /etc/inittab 文件中的 id: 字符串。这个字符串后面的数字就是默认运行级别。例如:

[linux@bashcommandnotfound.cn ~]$ grep "id:" /etc/inittab
id:5:initdefault:

上面的输出表示,系统启动时的默认运行级别是 5,即多用户模式,启动网络服务和图形界面。

实例8:修改系统启动时的默认运行级别

如果要修改系统启动时的默认运行级别,可以使用 vi 命令编辑 /etc/inittab 文件中的 id: 字符串。将后面的数字改为想要的运行级别,然后保存文件。例如,如果要将默认运行级别改为 3,可以执行以下命令:

[linux@bashcommandnotfound.cn ~]$ sudo vi /etc/inittab
# 将 id:5:initdefault: 改为 id:3:initdefault:
# 保存并退出 vi 编辑器

修改后,需要重启系统才能生效。

实例9:查看系统经历的所有运行级别的变化

如果要查看系统从启动到现在经历的所有运行级别的变化,可以使用 runlevel -v 命令。这个命令会显示每次运行级别的切换的时间和原因。例如:

[linux@bashcommandnotfound.cn ~]$ runlevel -v
N 5 2024-01-26 11:52:23 system boot
5 3 2024-01-26 12:05:34 telinit
3 1 2024-01-26 12:10:12 telinit
1 3 2024-01-26 12:15:45 telinit
3 6 2024-01-26 12:20:18 telinit

上面的输出表示,系统在 2024-01-26 11:52:23 启动时进入运行级别 5,然后在 2024-01-26 12:05:34 通过 telinit 命令切换到运行级别 3,接着在 2024-01-26 12:10:12 通过 telinit 命令切换到运行级别 1,再然后在 2024-01-26 12:15:45 通过 telinit 命令切换到运行级别 3,最后在 2024-01-26 12:20:18 通过 telinit 命令切换到运行级别 6,即重启。

实例10:查看 runlevel 命令的版本信息

如果要查看 runlevel 命令的版本信息,可以使用 runlevel -V 命令。这个命令会显示 runlevel 命令的名称、版本号、版权信息和联系方式。例如:

[linux@bashcommandnotfound.cn ~]$ runlevel -V
runlevel from sysvinit 2.96
Written by Miquel van Smoorenburg and Jim Warner.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

上面的输出表示,runlevel 命令来自于 sysvinit 2.96,由 Miquel van Smoorenburg 和 Jim Warner 编写,是自由软件,没有任何保证。

实例11:查看 runlevel 命令的帮助信息

如果要查看 runlevel 命令的帮助信息,可以使用 runlevel -h 命令。这个命令会显示 runlevel 命令的用法、选项和示例。例如:

[linux@bashcommandnotfound.cn ~]$ runlevel -h
Usage: runlevel [OPTIONS] [NEW_RUNLEVEL]
Prints the previous and current runlevel, or changes the runlevel.

Options:
  -h, --help      display this help and exit
  -V, --version   output version information and exit
  -v, --verbose   print the runlevel changes

Example:
  runlevel 3      changes to runlevel 3

Linux runlevel 命令的注意事项

  • runlevel 命令只适用于使用 System V 风格初始化的 Linux 系统,对于使用 systemd 的系统,需要使用 systemctl 命令代替。
  • runlevel 命令需要 root 权限才能切换运行级别,普通用户只能查看运行级别。
  • runlevel 命令切换运行级别时,会执行相应的启动或停止脚本,这些脚本可以在 /etc/rc.d 目录下找到,也可以根据需要进行修改。
  • 如果执行 runlevel 命令时出现 bash: runlevel: command not found 的错误,表示系统没有安装 runlevel 命令,需要按照上面的方法进行安装。
0

评论区