如何自定义Linux Shell环境?
Shell是用户与系统之间的接口。它可以用于执行系统上的任何操作。在Linux中,我们可以使用和交互的Shell类型有很多种。本文将解释如何使用和自定义Shell环境,并介绍一些可以根据您的需求使Shell环境更加自定义的想法。
如果您是Linux新手,您可能只知道bash shell,但这并不是我们唯一可以使用的Shell。还有其他替代方案和其他的Shell,您可能更喜欢它们而不是标准的bash shell。
有时,在运行新机器时,您看到的默认Shell可能不是bash。如果需要,您需要知道如何切换回bash shell。在这里,您将学习如何在Shell环境之间切换并使其为您工作。
在本文中,我们将尝试涵盖您需要更熟悉Shell(尤其是bash shell)的所有基础知识,以便您可以开始探索其他Shell环境及其功能。
默认Shell
在Unix系统上,您应该可以在名为/etc/shells的文件中找到可用的Shell列表。让我们查看此文件,看看我们的系统上有哪些Shell可用:
每当我们登录系统时,我们都会看到默认的Shell,但是我们可以更改它!
您的Shell的二进制文件通常位于/bin目录中。
在命令行工作时,您可能需要知道正在运行哪个Shell。一种方法是使用echo命令,后跟美元符号和全大写的SHELL来检查Shell环境变量。这将告诉您当前正在使用的Shell。
在我的例子中,我使用bash,如果您没有更改Shell,您的也可能是bash。
我们可以使用grep命令查看/etc/passwd文件来检查我们正在使用的默认Shell,如下所示:
grep mead /etc/passwd
此行上的最后一项指示此用户的默认Shell。在本例中,它是/bin/bash Shell环境。
如前所述,Shell二进制文件位于/bin/下,我们可以通过列出此目录来查看系统上已安装的Shell。由于所有Shell都以sh结尾,我们可以像这样列出它们。
ls /bin/*sh
要切换到另一个Shell,键入其名称(例如,sh):
在这里您可以看到,即使更改为sh后,默认Shell仍然显示为bash。这是因为echo $SHELL显示的是默认登录Shell,而不是当前Shell。要查看当前Shell,请使用此技巧来显示正在运行的进程。
ps -p $$
$$显示当前进程的进程ID。如果您在Shell中并且不知道哪个Shell,此技巧将有所帮助。
更改默认Shell
最后一个示例只更改会话的Shell。一旦您退出并重新打开终端,默认Shell(在本例中为bash)将返回。
如果要永久更改Shell环境,请使用chsh命令(代表“更改Shell”)。使用用户名输入它,后跟-s,然后是您想要作为默认值的Shell路径。
chsh mead -s /bin/sh
这将提示输入密码,因为您正在更改用户Shell。输入密码并按Enter键。
现在,如果我们检查/etc/passwd中用户的Shell,我们应该看到sh而不是bash作为登录Shell。
要将其改回,请使用相同的命令。
Bash配置
让我们谈谈如何稍微自定义我们的bash shell环境。在您的主目录中,您会找到几个以点(.)为前缀的文件。除非您使用ls -a列出该目录中的所有文件,否则这些文件不可见。它们通常包含各种Linux应用程序的配置;在这里,我们感兴趣的是.bashrc和.profile,它们包含bash shell配置。
让我们看看这些文件的作用以及我们如何自定义它们。
别名
Linux中的一个有用功能是别名的概念,它允许您为经常使用的命令创建自定义快捷方式。您可以不必每次都键入长命令,而是在.bashrc文件中定义一个别名,例如:
alias up="sudo apt update"
在此示例中,我们将命令sudo apt update替换为up,因此每当我键入up时,系统将执行sudo apt update。
提示符
许多用户想要更改的一件事是在新的终端会话中显示的提示符。此提示符通常显示用户名,以及在您导航时显示当前位置。
我们可以通过修改.bashrc文件中的名为PS1的环境变量来自定义提示符。
例如,将PS1更改为:
PS1="\u\$ "
将显示用户名后跟美元符号。
这只是一种示例;您可以根据需要进行调整。
.bashrc文件包含许多会话配置。我们只对别名和提示符进行了一些更改,但是您可以探索其他选项。
结论
本文简要介绍了Shell自定义以及我们如何使用.bashrc文件中的基本配置使我们的Shell独一无二。我们还介绍了如何切换和获取当前Shell环境。