在我的 .bashrc 中,我想放这样的东西。
alias lst='ls &'
Run Code Online (Sandbox Code Playgroud)
这样我才能做这样的事情。
$ lst /tmp
Run Code Online (Sandbox Code Playgroud)
这将被翻译成
$ ls /tmp &
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到以上几点?
我有一个全新的 Ubuntu 安装。我没有活动的个人点文件。
\e file.sql当我的 .bashrc 中有以下内容时,我在 Psql 中运行失败,因为 Nano 打开而不是 Vim
export VISUAL=/usr/bin/vim
export EDITOR=/usr/bin/vim
export PSQL_EDITOR=/usr/bin/vim
Run Code Online (Sandbox Code Playgroud)
当我用 vim 代替 .bashrc 中的 PATH/vim 来执行上述三个命令时,我运行相同的命令。
例如,vim当我得到时cat $EDITOR。
问题可能出在环境变量上。但是,我不确定在哪里。
如何让 Vim 成为 Psql 的编辑器?
我发现自己总是同时打开许多终端。当我更新我的.bashrc 时,我必须去每个终端并执行
. .bashrc
Run Code Online (Sandbox Code Playgroud)
使用新的.bashrc获取终端。
这是一种痛苦,也很耗时。我想知道是否有一种方法可以使用新的.bashrc文件获取所有打开的终端,而无需逐一访问或注销并重新开始?
在 my 中.bashrc,当我尝试执行scp. 我一直采用的解决方案是手动 ssh 到目标机器,禁用 my .bashrc,进行复制,然后重新启用我的.bashrc. 有没有办法解决这个问题?
过去几周我一直在 Windows 中使用 MobaXterm,我喜欢它。
但是,我还没有弄清楚如何定义我自己的别名以在本地 bash shell 中使用。明显的谷歌搜索似乎没有在这个问题上产生任何结果。
我曾尝试将具有别名定义的文件.profile和.bashrc文件放在与Mobaxterm 可执行文件相同的目录中,但没有骰子。相同的文件位于我的 Windows 'home' 目录中,但 Mobaxterm 看不到它们。
我还注意到终端中已经有很多预定义的别名,但是我无法确定这些别名的定义位置,因此我可以添加自己的...
没有为非交互式/非登录 shell 调用 rc 文件;例如,那些由cron运行的
(我不确定这一点,并且会依靠社区的专业知识)
非交互式shell 需要设置BASH_ENV环境变量,这样才能将其设置为特定的 rc 文件(例如,BASH_ENV=$HOME/.bash_profile)
我不确定是否有过多的 rc 文件可用,所以很好奇是否有我不熟悉的文件。希望找到一个满足以下条件的rc文件:
.bashrc我在通过 SSH 远程登录到服务器时正在试验我的文件。我无意中留下了一个exit,导致所有后续登录立即断开连接。我实际上被锁在门外了。我能够在具有 root 权限的人的干预下恢复访问权限,但是如果没有其他人的帮助,这可能吗?
我尝试做诸如运行ssh <server> 'bash --norc --noprofile'和 之类的事情ssh <server> 'mv .bashrc bashrc-backup',甚至尝试用 强制覆盖它scp empty-file <server>:.bashrc。然而,所有这些选项似乎都依赖于.bashrc在运行命令之前首先找到损坏的源,因此它们都不起作用。
很可能这种情况是没有办法摆脱的。但这是设计使然吗?为什么很容易将自己锁定在系统之外,例如仅通过运行,是否有原因ssh <server> 'echo exit > .bashrc'?有没有办法减少这种错误?
我通常在 bash 提示符 ( PS1='\u@\h:\W$ ') 中只有当前目录的名称,所以如果我在里面,~/projects/superapp/src/我会得到:
hamish@host:src$
Run Code Online (Sandbox Code Playgroud)
但是,我想在没有完整路径的情况下指示完整路径。我看过人们会看到的截图
hamish@host:~/p/s/src$
Run Code Online (Sandbox Code Playgroud)
如果在上面的示例目录中。那么 PS1 的价值是多少呢?或者失败了,我需要什么脚本.bashrc来制作它?
为了“正确”实现我喜欢的 shell 的标准配置bash,以便在多个平台上使用,在处理与他们选择的 shell 启动类型(登录或交互式)不一致的终端时,我遇到了一些困惑)。
从 bash 手册中,我确定了启动文件和它们来源的顺序/案例之间的区别(/etc/profile、~/.bash_profile、~/.bash_login、 和~/.profile登录 shell,以及~/.bashrc交互式非登录 shell)。该文档建议您将特定于 bash 的登录配置存储~/.bash_profile在~/.bashrc. 手册本身甚至建议添加if [ -f ~/.bashrc ]; then source ~/.bashrc; fi到~/.bash_profile文件中,以便登录 shell 继承您的交互式 shell 设置。
从我在手册和各种在线论坛/文档中读到的内容来看,将非 bash 特定的登录配置抽象为明智之举,~/.profile因为其他 shell 可以获取此文件。对于除了 bash 之外还可能使用 Bourne shell 的人来说,这可能是一个边缘情况(这在我的情况下不太可能),但这似乎是一个好习惯。
到目前为止,这一切看起来都非常简单和合乎逻辑,尤其是在各种 shell 启动类型之间的区别很明显的环境中:在命令行是主要界面的系统或终端上,登录 shell 是您的主要会话 shell ,交互式 shell 是在该会话中启动的后续 shell,而您的非交互式 shell 是运行脚本的 shell。
真正令人困惑的是,当您的 shell 从已通过系统身份验证的 GUI 环境中的终端启动时,登录 shell 的构成是什么? …
给定目录:/media/foo/can haz/bar,我尝试使用以下命令编辑bash.rc:
export Foo=/media/foo/can haz/bar
export Foo=/media/foo/can\ haz/bar
export Foo='/media/foo/can haz/bar'
export Foo="/media/foo/can haz/bar"
export Foo='"/media/foo/can haz/bar"'
export Foo="'/media/foo/can haz/bar'"
Run Code Online (Sandbox Code Playgroud)
但每次,我都无法得到类似以下内容的工作(不使用"$Foo"):
cd $Foo
Run Code Online (Sandbox Code Playgroud)
如何在 Linux 系统上设置带有空格的环境变量?