如何使用shopt定制bashshell

如果您使用shopt微调bashshell的行为,您可以控制超过50个设置。我们将向您展示如何按照您喜欢的方式定制您的Linux系统。...

如果您使用shopt微调bashshell的行为,您可以控制超过50个设置。我们将向您展示如何按照您喜欢的方式定制您的Linux系统。

shopt内置

shopt内置是bashshell所有版本的一部分,因此不需要安装任何东西。多年来,shopt提供的选项数量稳步增加。所以,Bash的版本越旧,shopt选项的列表就越短。

如果您的机器上似乎有什么不工作,请检查Bash的手册页条目,并验证您的shopt版本中是否提供了该选项。

我们提供以下所有购物选择。我们还介绍了如何使用它,并分享了一些例子。在那里,您可以查看Bash手册页或gnubash参考手册,看看这些选项听起来是否有用或吸引人。

一些shopt选项在默认情况下是启用的,并且是Bash默认行为的一部分。您可以启用shopt选项作为Bash的短期更改。当您关闭shell时,它将恢复为默认行为。

但是,如果希望在每次启动bashshell时都可以使用修改后的行为,可以将更改永久化。

shopt选项

有53个shopt选项。如果在没有任何选项的情况下使用shopt命令,它会列出这些选项。如果我们通过wc命令输出,它将为我们计算行、字和字符。因为每个shopt选项都在自己的行上,所以行数就是选项数。

我们键入以下内容:

shopt | wc

如何使用shopt定制bashshell

要查看所有选项,可以通过column命令将输出管道化,以列形式显示选项名称,也可以将其管道化为较少的列。

我们键入以下内容:

shopt | column

如何使用shopt定制bashshell

在linux手册中查找shopt

讨论shopt及其选项的部分在Linux手册的Bash部分。Bash段超过6000行。你可以通过大量的滚动找到shopt的描述,也可以在手册中搜索它。

为此,请打开Bash部分的手册:

man bash

如何使用shopt定制bashshell

在手册中,按/开始搜索。键入以下内容,然后按Enter键:

assoc_expand_once

如何使用shopt定制bashshell

shoptoption部分的开头将出现在man窗口中。

如何使用shopt定制bashshell

相关:如何使用Linux的man命令:隐藏的秘密和基础

设置和取消设置选项

要设置和取消设置shopt选项,请使用以下命令:

  • -s:设置或启用。
  • -u:取消设置或禁用。

因为有些选项是默认启用的,所以检查哪些选项是启用的也很方便。可以使用-s和-u选项,而不使用选项名。这会导致shopt列出打开和关闭的选项。

键入以下内容:

shopt -s

如何使用shopt定制bashshell

shopt -u | column

您可以在不使用-s或-u命令的情况下使用shopt选项来查看每个选项的打开或关闭状态。

例如,我们可以键入以下内容来检查histverify选项的设置:

shopt histverify

我们可以键入以下内容将其设置为打开:

shopt -s histverify

然后,我们可以键入以下内容再次检查:

shopt histverify

如何使用shopt定制bashshell

histverify选项更改history命令的一个方面的操作方式。通常,如果您要求历史通过编号引用命令来重复该命令,例如!245,从命令历史中检索命令并立即执行。

如果希望查看命令以确保它是您期望的命令,并对其进行编辑(如果需要),请键入以下命令以将shopt histverify选项设置为启用:

!245

如何使用shopt定制bashshell

命令将被检索并显示在命令行上。您可以通过按Enter键删除、编辑或执行它。

相关:如何在Linux上使用history命令

autocd选项

在autocd选项设置为on的情况下,如果在命令行中键入目录名并按Enter键,它将被视为前面键入了cd。

我们键入以下命令以打开autocd选项:

shopt -s autocd

然后,键入目录名:

Documents

如何使用shopt定制bashshell

cdspell选项

当cdspell选项打开时,Bash将自动更正目录名中的简单拼写错误和打字错误。

我们键入以下内容来设置cdspell选项:

shopt -s cdspell

要尝试更改为小写的目录,该目录应具有大写字母首字母,请键入以下内容:

cd documents

然后,我们可以键入以下内容来尝试在目录名中添加一个额外的“t”的目录名:

cd ../Picttures

如何使用shopt定制bashshell

Bash将更改为每个目录,而不考虑拼写错误。

xpg\u echo选项

当xpg\u echo选项设置为on时,echo命令将遵循转义字符,例如\n表示新行,\t表示水平制表符。

首先,键入以下内容以确保已设置该选项:

shopt -s xpg_echo

然后在要传递给echo的字符串中包含\n:

echo "This is line one\nThis is line two"

如何使用shopt定制bashshell

转义的新行字符强制在输出中换行。

这将产生与-e(启用转义解释)echo选项相同的行为,但是xpg\u echo允许它作为默认操作。

相关:如何在Linux上使用Echo命令

dotglob选项

应该谨慎对待dotglob选项。它允许以句点(.)开头的文件和目录包含在名称扩展或“globbing”中,这些文件和目录称为“点文件”或“点目录”,它们通常是隐藏的。dotglob选项忽略其名称开头的点。

首先,我们将通过键入以下内容来搜索以“geek”结尾的文件或目录:

ls *geek

找到并列出一个文件。然后,我们将通过键入以下内容来启用dotglob选项:

shopt -s dotglob

我们发出相同的ls命令来查找以“geek”结尾的文件和目录:

ls *geek

如何使用shopt定制bashshell

这次找到并列出了两个文件,其中一个是点文件。当dotglob选项设置为on时,您需要小心rm和mv。

nocaseglob选项

nocaseglob选项与dotglob选项类似,只是nocaseglob会导致在名称扩展中忽略文件名和目录中大小写字母的差异。

我们键入以下内容以查找以“how”开头的文件或目录:

ls how*

找到并列出一个文件。我们键入以下内容以启用nocaseglob选项:

shopt -s nocaseglob

然后,我们重复ls命令:

ls how*

如何使用shopt定制bashshell

找到两个文件,其中一个包含大写字母。

使更改永久化

我们所做的更改只会持续到关闭当前bashshell。为了使它们在不同的shell会话中永久存在,我们需要将它们添加到“.bashrc”文件中。

在主目录中,键入以下命令以在图形Gedit文本编辑器中打开“.bashrc”文件(或相应地更改它以使用您喜欢的编辑器):

gedit .bashrc

gedit编辑器将打开并加载“.bashrc”文件。你会看到一些shopt条目已经在里面了。

如何使用shopt定制bashshell

你也可以在这里添加自己的shopt选项。添加后,保存更改并关闭编辑器。现在,每当您打开一个新的bashshell时,您的选项都将为您设置。

眼睛所能看到的选项

shopt命令确实有很多选择,但是您不必一次处理所有的选择。因为有这么多,有可能是一些将不感兴趣的你。

例如,有一系列强制Bash以与特定的、较旧的版本兼容的方式进行操作。这可能对某些人有用,但这是一个相当利基的案例。

您可以查看Bash手册页或gnubash参考手册。决定哪些选项会对你产生影响,然后进行实验。只要小心那些会影响文件名和目录名展开方式的选项。试着用一个温和的命令,比如ls,直到你觉得舒服为止。

  • 发表于 2021-04-01 12:30
  • 阅读 ( 175 )
  • 分类:互联网

你可能感兴趣的文章

如何在windows10上获得linux bash shell

... 两者都将显示为“Run命令”,可以选择该命令立即打开bashshell。使用这两种方法的区别在于,它们在/mnt/c/Windows/System32目录中打开。这意味着您可以在Windows10中浏览System32子目录。 ...

  • 发布于 2021-03-21 11:48
  • 阅读 ( 286 )

如何定制mac终端并使其更有用

.../bin/ksh等等。Unix爱好者喜欢使用zsh(或Z)shell,因为它在bashshell之上提供了许多特性,并支持许多插件。 ...

  • 发布于 2021-03-21 20:13
  • 阅读 ( 272 )

如何在linux上使用cd命令

...小又简单。 在使用Linux计算机的第一个小时内,您将学习如何使用Bash和其他shell附带的cd命令。也许您以前有在其他操作系统上使用它的经验,不需要解释。它会改变当前的工作目录,对吗?还有什么要知道的? 好吧,比你想象...

  • 发布于 2021-04-02 08:58
  • 阅读 ( 172 )

如何在linux的bashshell中复制和粘贴文本

要在bashshell的命令行中复制和粘贴吗?我们将向您展示多种技巧,无论您喜欢键盘还是鼠标。无论您是在图形桌面上还是在传统的基于文本的TTY上,这些工具都能工作。 通常的键盘快捷键不起作用 复制和粘贴文本是使用计算...

  • 发布于 2021-04-03 03:36
  • 阅读 ( 243 )

如何使用linux type命令

...速快照。它是whoami、w、free和df的组合。 type pwd pwd命令是bashshell的内置命令。 type elif elif命令是bashshell保留字。 使用多个命令 您可以一次给type多个命令来标识。 type date top ls -t选项 类型将接受的选项都没有名称。所以我们可...

  • 发布于 2021-04-03 10:23
  • 阅读 ( 196 )

如何在windows10的bashshell中启用复制和粘贴键盘快捷键

windows10的bashshell终于有了方便的复制和粘贴键盘快捷键,但由于兼容性的原因,它们在默认情况下被禁用。这些快捷方式在2018年10月的更新中可用,该更新最初的代号为Redstone 5。 要启用复制和粘贴键盘快捷键,请右键单击LinuxB...

  • 发布于 2021-04-06 13:15
  • 阅读 ( 203 )

windows10的新bashshell所能做的一切

...Linux应用程序的完全兼容层。 我们已经介绍了windows10的新bashshell中可以做的很多事情,因此为了方便起见,我们将所有这些指南汇总到一个大列表中。 windows上linux入门 相关:如何在windows10上安装和使用Linux Bash Shell 您可以在...

  • 发布于 2021-04-06 14:44
  • 阅读 ( 264 )

如何在windows10的ubuntubashshell中更改用户帐户

...安装后启动新的Linux发行版来设置它时,系统会要求您为bashshell创建一个用户帐户。Windows将其称为“UNIX用户帐户”。因此,如果您提供名称“bob”和密码“letmein”,则Linux用户帐户的名称为“bob”,并且具有主文件夹“/home/bob...

  • 发布于 2021-04-06 15:47
  • 阅读 ( 186 )

如何在windows中访问ubuntu bash文件(以及bash中的windows系统驱动器)

...中。您可以访问此文件夹来备份和查看文件。您还可以从bashshell访问Windows文件。 更新:从Windows10 2019年5月的更新开始,现在有了一种从Windows应用程序访问Linux文件的正式、安全的方法。 不要用windows工具修改linux文件 Microsoft强...

  • 发布于 2021-04-06 16:05
  • 阅读 ( 198 )

如何在windows10上安装和使用linux bash shell

...dora和更多的Linux发行版很快就要上市了。 关于windows10的bashshell你需要知道什么 相关:Windows10新BashShell的所有功能 这不是一个虚拟机、一个容器或为Windows编译的Linux软件(比如Cygwin)。相反,windows10提供了一个完整的Windows子系...

  • 发布于 2021-04-06 16:32
  • 阅读 ( 248 )
bi8y02
bi8y02

0 篇文章

相关推荐