学分高考 IT技术

linux shell是什么意思

发布时间: 2022-03-17 17:06:01

linux shell是什么意思?shell是一个用户接口。基于文本的shell也可用作命令行解释器。在Linux中,shell是一个解释程序,它允许我们用各种命令与Linux进行交互。只要有合适的文件权限,我们就可以在脚本文件中设置命令,需要时甚至可以在深更半夜时执行这些脚本文件。

Linux shell可以按各种顺序处理命令,这取决于我们如何管理每个命令的输入和输出。每个shell对命令所做的解释一定程度上取决于它所使用的变量和参数。

Linux中默认的shell是bash,也称为Bourne-Again shell,但是也存在很多其他的shell,而且它们也有很多用户。只要能安装相应的RPM程序包,用户就可以启动任何一个shell。需要时可以在/etc/passwd文件中改变每个用户的默认shell。

1、其他shell


RHEL 7中有4种命令行shell,用户可以选择其中任何一种。虽然bash是默认的shell,但是长期使用Linux和Unix的用户可能喜欢其他shell:

● bash 默认的Bourne-Again shell,它以Stephen Bourne最早开发的命令行解释程序为基础。

● ksh 即Korn shell,由贝尔实验室的David Korn在20世纪80年代开发,结合了Bourne和C shell的最佳功能。

● tcsh Unix C shell的增强版。

● zsh 一个高级shell,类似于Korn shell。

这些shell都在/bin目录中配置。如果用户想把其中一个作为默认的shell,则并非难事。最直接的方法是在/etc/passwd文件中修改默认shell。例如,此文件中应用于一位作者的一个普通账户的一行内容是:

例如,要把默认的shell改为ksh,只需要把/bin/bash改为/bin/ksh。另外还需要为Korn shell安装对应的RPM程序包。

考试提示

尽管对大多数Linux用户来说很容易,但是RHCSA一个认证目标的一部分是“访问shell提示符”。现在你应该知道如何访问不同的shell提示符窗口。

2、虚拟终端


如果能访问RHEL系统的控制台,就可以使用6个虚拟终端来打开6个独立的登录会话。但是,默认情况下只激活一个虚拟终端。当切换到未使用的终端时,其他登录提示符会动态启动。虚拟终端由/etc/systemd目录中的logind.conf文件定义。

观察该文件,可看到一个名为NAutoVTs的选项,它定义了可被激活的最大虚拟终端数。虚拟终端与设备文件/dev/tty1通过/dev/tty6关联。当系统配置了一个GUI,则它使用/dev/tty1。我们可以配置更多的虚拟终端,但是受/etc/securetty文件中为root管理员用户分配的虚拟终端数量的限制。

通常情况下,为在虚拟终端之间切换,要按下Alt和对应终端关联的功能键。例如,Alt+F2键可以切换到第二个控制台。但在RHEL GUI中,Alt+Fn键组合用来提供其他功能,例如Alt+F2可启动Run Application工具。因此,在GUI中需要按Ctrl+Alt+Fn才可以切换到第n个虚拟控制台。

登录文本控制台时会看到如下提示信息,但是具体内容可能会因RHEL的版本、内核的版本号以及系统的主机名而稍有差异:

用图形模式登录时会更加直观,如图1所示,但需要安装GNOME显示管理程序(GNOME Display Manager,GDM)。

图1 第一个UI登录控制台

3、GUI shell接口


登录到GUI后,访问bash shell就很容易。如果我们使用默认的GNOME桌面环境,则单击Applications | Utilities | Terminal。

传统上,管理员总是从控制台控制计算机的。但在许多情况下从GUI环境访问命令行控制台可能会更加方便,特别当多个控制台并排出现在屏幕上时。

右击GUI终端界面可以在不同的窗口或者选项卡中打开另外的终端窗口。需要时它还支持终端窗口之间的复制与粘贴。

4、普通用户与管理员用户的区别


在命令行窗口中可以执行的命令取决于登录账户所拥有的权限。现在有两个基本的提示符。下面是普通用户登录后看到的提示符:

注意,屏幕上出现了用户名、本地系统的主机名、当前目录和$提示符。$是普通用户的标准提示符。

与此相反,在同一个系统上来看看root管理员用户的提示符。它与普通用户的提示信息相似,除账户名不同外,唯一的区别是提示符:

root管理员账户执行命令的显示结果如下:

5、文本流与命令重定向


Linux使用三个基本数据流。数据输入流、数据输出流和向另一个方向发送的错误。这些流分别被称为标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。通常情况下,输入来自键盘,而标准输出和标准错误则发送到屏幕。在下例中,当执行cat filename这个命令时,系统把文件的内容作为标准输出发送到屏幕(就像发送任何错误一样)。

也可以把这些流重定向到文件,或从文件重定向这些流。例如,有一个名为database的程序和一个包含大量数据的数据文件。用左重定向箭头(<)可以把此数据文件的内容发送到这个数据库程序。如下所示,这里的数据文件(datafile)被当作标准输入:

标准输入也可以来自某个命令的左侧。例如,当我们需要翻页浏览引导信息时,可用管道把dmesg和less两个命令组合在一起:

这里把dmesg命令的输出重定向为less的标准输入。后者对前者的输出内容进行翻页浏览,就像它是一个独立文件一样。标准输出重定向也一样容易。例如,下面的命令用右重定向符(>)把ls命令的标准输出发送到名为filelist的文件中。

还可以用双重定箭头命令(如ls>>filelist)在当前文件的末尾添加标准的输出流。如果想将某个程序的错误消息保存到一个文件中,则用下面的命令重定向此程序的错误流:

有时候会想要丢弃所有错误。通过将错误流重定向到特殊的设备文件/dev/null可实现此目的:

&>是另一个有用的重定向符,它将标准输出和错误发送到一个文件或设备。下面给出了一个示例:

考试提示>、 >>、 2> 和 | 等命令重定向符在RHCSA认证目标中属于“输入/输出重定向符”。

温馨提示:
本文【linux shell是什么意思】由作者教培参考提供。该文观点仅代表作者本人,学分高考系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系管理员或作者进行删除。
我们采用的作品包括内容和图片部分来源于网络用户投稿,我们不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系我站将及时删除。
内容侵权、违法和不良信息举报
Copyright @ 2024 学分高考 All Rights Reserved 版权所有. 湘ICP备17021685号