Bash使用除'~';表示主目录?

Bash使用除'~';表示主目录?,bash,shell,sh,zsh,Bash,Shell,Sh,Zsh,bash(甚至zsh)是否可以使用除波浪号(“~”)以外的字符来指定一个人的主目录?例如,“cd~”会将您带到主目录。用我的右小指按shift键,然后用我的左小指同时按~键,对我来说总是很尴尬,特别是因为这是一种使用非常多的击键组合。还有别的办法吗?我也不想一直输入$HOME。理想情况下,我希望能够使用更自然的东西,如shift+$或shift+%,而不是shift+~。这能做到吗?顺便说一句,我不是在寻找像“cd”这样的快捷方式来返回我的主目录。我想让访问主目录下的目录变得更容易。只需使用cd

bash(甚至zsh)是否可以使用除波浪号(“~”)以外的字符来指定一个人的主目录?例如,“cd~”会将您带到主目录。用我的右小指按shift键,然后用我的左小指同时按~键,对我来说总是很尴尬,特别是因为这是一种使用非常多的击键组合。还有别的办法吗?我也不想一直输入$HOME。理想情况下,我希望能够使用更自然的东西,如shift+$或shift+%,而不是shift+~。这能做到吗?顺便说一句,我不是在寻找像“cd”这样的快捷方式来返回我的主目录。我想让访问主目录下的目录变得更容易。

只需使用
cd
而不带参数即可转到
主目录


请参见几项不可行的建议:

  • “shift+~”只是一个符号,而不是一些奇怪的元键组合
  • “shift+%”给出了一个“%”,该“%”已为作业保留 控制
  • “shift+$”给出了一个“$”,该“$”已保留用于变量和生成子进程,如“$(cat blah)”中所示
一些可能有效的想法:

  • 不要使用$HOME,而是在~/.bashrc中定义$H。这只需要2个字符,而且$的输入要简单得多
  • 如果是您的计算机,您可以创建一个指向主目录的符号链接“/h”,这样您就可以键入
    /h/foo/bar
    ,而不是
    ~/foo/bar

您可以在Bash中将backtick
`
重新映射到tilde
~
。使用美式键盘布局,这将为您节省时间:

bind '"`": "~"'

这只影响shell提示符,还有一个额外的好处,就是提醒您始终使用
$(..)
而不是不推荐的
`..
来替换命令

我总是用左手的拇指按shift键,用中指按shift键。顺便说一句,readline库的配置(由bash使用)可以用来将任意按键映射到任意字符……也就是说,我怀疑这是否是本文的主题:StackOverflow的范围是软件开发;与为shell编写脚本相比,配置shell更适合or。@CrisLuengo听起来更糟!;-)@Charles Duffy:由于bash也是一种编程语言,严格来说,问题是:如何在bash中定义一种嵌入式领域特定语言,它允许以更方便的方式访问某些目录?这是一种单符号语言,但仍然…这不能很好地推广到与主目录相关的其他命令或路径?例如“vim~/.bashrc”是什么意思?@AndreyTyukin
cd
,然后
vim.bashrc
;)@Benjamin W.:“cat FILEINIRENTDirectoryBuriedVeryDeepInfileSystem>>~/.bashrc”?我喜欢定义$H的想法,但如果使用这种方法,似乎无法再使用Tab键完成路径。这就是使用符号链接的优点。。。原则上,人们甚至可以重新定义
cd
,这样每当你换到一个目录时,就会生成一个名为
H
到/home/you的链接,这样你就可以像访问
一样访问你的主目录。
。但是,如果你不小心,这可能会很快导致不必要的链接到处都是,这些链接会使各种构建工具变得疯狂(例如,如果源目录结构中存在循环,maven就会崩溃)。@William你是说最近的更改停止了变量的扩展,还是这种安排阻止了它?@Guy My bad,命令行完成仍然有效。@Andreytukin我最喜欢你的方法。我在.bashrc文件中定义了“$h”,并使用该环境变量代替~。