Linux实操篇-指定运行级别/帮助指令

传送门

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 系统使用 SysVinitUpstart 等初始化系统,运行级别概念一直被使用,尽管现代的系统中,很多分发版使用 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 1runlevel 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 目标描述
0poweroff.target关机
1rescue.target单用户模式
2multi-user.target多用户模式(不带网络)
3multi-user.target多用户模式(带网络)
4无预设用途用户自定义
5graphical.target图形界面模式
6reboot.target重启

4. 总结

  • 传统的 SysVinit 系统使用运行级别(0-6)来表示系统的不同状态。
  • systemd 替代了传统的 init 系统,使用目标(target)来实现类似的功能。每个目标对应不同的系统状态,常见的目标包括 poweroff.targetrescue.targetmulti-user.targetgraphical.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]
  • 示例
    apropos copy
    
    搜索所有与“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
  • 示例
    echo $0
    
    输出当前 shell 的名称,比如 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. dpkgrpm - 软件包管理帮助

对于基于 Debian 的系统(如 Ubuntu),可以使用 dpkg 查看包的详细信息,类似地,基于 Red Hat 的系统(如 CentOS)使用 rpm 命令。

  • Debian 系统:

    dpkg --help
    
  • Red Hat 系统:

    rpm --help
    

总结:

  • 使用 man 来查看命令和程序的详细手册。
  • 使用 --help 获取简短的帮助信息。
  • 使用 info 获取比 man 更详细的信息。
  • 使用 whatis 获取命令的简短描述。
  • 使用 apropos 搜索包含关键字的命令。
  • 使用 help 获取 Bash 内建命令的帮助。

这些命令可以帮助你在使用 Linux 时快速获取所需的信息,解决遇到的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝影铁哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值