简介
在这个实验中,你将学习如何确定 Linux 环境中当前正在使用的 shell。你将探索不同的方法来检查活动的 shell,包括使用 echo $SHELL
命令显示当前会话的 shell,检查 /etc/passwd
文件以验证用户的默认登录 shell,以及使用 ps
命令检查正在运行的进程以识别 shell 进程。
通过完成这些步骤,你将获得识别和理解 shell 环境的实用技能,这对于在 Linux 中进行有效的命令行交互和脚本编写至关重要。
在这个实验中,你将学习如何确定 Linux 环境中当前正在使用的 shell。你将探索不同的方法来检查活动的 shell,包括使用 echo $SHELL
命令显示当前会话的 shell,检查 /etc/passwd
文件以验证用户的默认登录 shell,以及使用 ps
命令检查正在运行的进程以识别 shell 进程。
通过完成这些步骤,你将获得识别和理解 shell 环境的实用技能,这对于在 Linux 中进行有效的命令行交互和脚本编写至关重要。
在这一步中,你将学习如何识别你在终端中当前使用的 shell。shell 是处理你输入命令的命令行解释器。不同的 shell 具有不同的特性和语法,尽管许多基本命令在它们之间的工作方式是相同的。
LabEx 环境默认使用 zsh
作为 shell。你可以通过检查 $SHELL
环境变量的值来验证这一点。环境变量是影响计算机上进程行为的动态值。$SHELL
变量专门存储用户默认 shell 的路径。
要显示 $SHELL
变量的值,请使用 echo
命令,后跟前缀为美元符号 ($
) 的变量名。
在你的终端中输入以下命令并按回车键:
echo $SHELL
你应该会看到类似以下的输出,表明你当前使用的 shell 是 zsh
:
/usr/bin/zsh
这证实了终端当前正在运行 zsh
shell,这是你 LabEx 环境的默认配置。了解你正在使用的 shell 很重要,因为在你学习 Linux 的过程中,一些高级特性或脚本可能特定于某个 shell。
点击 继续 进入下一步。
在上一步中,你使用 echo $SHELL
查看了你当前使用的 shell。这是为你当前终端会话启动的 shell。然而,系统还会在一个配置文件中记录每个用户的 默认 登录 shell。
这个配置文件是 /etc/passwd
,它包含了系统上所有用户的信息。/etc/passwd
中的每一行代表一个用户账户,并且被冒号 (:
) 分隔成多个字段。每行的最后一个字段指定了用户的默认登录 shell。
要查看 /etc/passwd
的内容,你可以使用 cat
命令。由于我们只对 labex
用户的那一行感兴趣,我们可以将 cat
与 grep
命令结合使用来过滤输出。grep
是一个用于在文件中搜索文本模式的强大工具。
在你的终端中输入以下命令并按回车键:
cat /etc/passwd | grep labex
让我们来分解一下这个命令:
cat /etc/passwd
:此命令读取 /etc/passwd
文件的内容并将其打印到标准输出。|
:这是一个管道符号。它将左边命令 (cat /etc/passwd
) 的输出作为输入传递给右边的命令 (grep labex
)。grep labex
:此命令在接收到的输入中搜索包含字符串 "labex" 的行,并打印这些行。你应该会看到类似以下的单行输出:
labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh
这一行包含了关于 labex
用户的几条信息,由冒号分隔。这些字段(按顺序)分别是:
labex
)x
表示,实际的密码哈希出于安全考虑存储在其他地方)5000
)5000
)LabEx user,,,
)/home/labex
)/usr/bin/zsh
)最后一个字段 /usr/bin/zsh
证实了 labex
用户的默认登录 shell 确实是 zsh
,这与你使用 echo $SHELL
看到的结果一致。
点击 继续 以继续。
在前面的步骤中,你使用 echo $SHELL
识别了当前的 shell,并在 /etc/passwd
中验证了默认登录 shell。现在,让我们查看系统上正在运行的进程,以了解 shell 进程本身。
在 Linux 中,每个正在运行的程序都是一个进程。ps
命令(“process status”的缩写)用于查看当前正在运行的进程的信息。
要查看与你当前终端会话相关的进程,你可以使用带有 -f
选项的 ps
命令,该选项会提供完整格式的列表。
在你的终端中输入以下命令并按回车键:
ps -f
你应该会看到类似以下的输出:
UID PID PPID C STIME TTY TIME CMD
labex XXXX XXXX 0 HH:MM pts/0 00:00:00 zsh
labex YYYY XXXX 0 HH:MM pts/0 00:00:00 ps -f
让我们来看看这些列的含义:
UID
:进程所有者的用户 ID (labex
)。PID
:进程 ID,每个进程的唯一编号。PPID
:父进程 ID。这是启动此进程的进程的 PID。C
:CPU 利用率。STIME
:进程启动的时间。TTY
:与进程关联的终端 (pts/0
表示伪终端,就像你正在使用的这个)。TIME
:进程累积使用的 CPU 时间。CMD
:启动该进程的命令。在输出中,你应该会看到一行 CMD
为 zsh
的记录。这一行代表正在运行你当前终端会话的 zsh
shell 进程。你还会看到 ps -f
命令本身的一行记录,因为在你执行它时,它也是一个正在运行的进程。
这一步向你展示了如何使用 ps
检查正在运行的进程,并确认你的 shell 确实作为系统上的一个进程在运行。
点击 继续 完成此实验。
在这个实验中,你学习了如何检查你在 Linux 中当前使用的 shell。你首先使用 echo $SHELL
命令显示了当前终端会话中运行的 shell 的路径。这表明 LabEx 环境默认使用 zsh
。
然后,你探索了 /etc/passwd
文件,该文件存储了系统用户的信息,包括他们的默认登录 shell。通过查看该文件中你用户条目的最后一个字段,你可以验证登录时分配给你账户的 shell。这些方法提供了不同的方式来确定正在使用的 shell,无论是针对当前会话还是作为用户的默认设置。