标签: bashrc

将“screen -r”放在我的 .bashrc 中是个好主意吗?

我想使用 screen 使 ssh 会话在我的服务器上保持活动状态。如果我可以在登录时为我的用户自动恢复任何正在运行的会话,那就太好了。这样做的直接方法是将“screen -r”添加到我的 .bashrc 中,这似乎工作正常。我只是想知道这是否会在我尚未测试的条件下破坏任何东西。任何有经验的人都可以告诉我这是否是我应该做的?

linux ssh debian gnu-screen bashrc

18
推荐指数
1
解决办法
7854
查看次数

我的主目录中没有 bashrc 文件

以下是我从演讲中记下的:

  • .bashrc在您的主目录中查找文件
  • vi .bashrc
  • 当您将应用程序文件夹放在某处时,请确保其地址在路径变量中。

问题是.bashrc我的主目录中没有文件。.bash_history我家只有一个文件。

如果我转到根目录,那里有一个etc/bash.bashrc文件,但我认为它会对所有用户进行更改,而不仅仅是对我。我想为自己添加这条路径。应该不会影响到其他人。$PATH那个 bashrc 文件中也没有变量,所以我更加困惑。

bash bashrc

18
推荐指数
3
解决办法
14万
查看次数

当我登录到服务器时,Bash 提示更改颜色

有没有办法使 bash 提示动态化,以便在登录服务器时改变颜色?

所以我希望在我的系统上颜色为绿色,并在连接到服务器时更改为红色。我有大量的服务器,我不想.bashrc在所有这些服务器上添加不同的内容。

bash shell colors bashrc

16
推荐指数
3
解决办法
6382
查看次数

bash 完成使 bash 启动缓慢

在我的 ubuntu 系统上启动 bash 大约需要 2 秒。如果我删除 .bashrc 中的加载 /etc/bash_completion 它会立即启动。当然,我不想放弃完成,我不认为加载该文件是延迟 2 秒的正当理由。

任何想法如何找出问题所在或如何加快速度。

performance bashrc ubuntu tab-completion

15
推荐指数
3
解决办法
5299
查看次数

bash:执行命令行中给出的命令并且不退出

我如何在 bash 的命令行上指定一个命令,该命令应在读取 ~/.bashrc 后在新 bash 中执行一次——但是所有这些都不让 bash 在命令完成后退出?

我正在摆弄终止符的“启动配置”,其中一些拆分应该在启动后启动一些应用程序(vim、mutt、irrsi)。但是我仍然希望在后台使用正常的外壳(ctrl-z 等等...)所以在退出应用程序后,我拥有与电子应用程序生命周期相同的外壳...

什么对我不起作用(基于给定的答案)

 ( bash; vim )              # vim waits for the exit of bash...
 bash -c vim                # bash exits after vims exit...
 bash -c 'vim; exec bash'   # bash is executed _after_ vim... ctrl-z won't work
 echo vim | bash -s         # "Vim: Warning: Input is not from a terminal"     
Run Code Online (Sandbox Code Playgroud)

手动将“vim”附加到临时 bashrc 也不起作用。vim 正确启动,但仍然没有 ctrl-z 将我带到的背景 bash。

有什么建议?

boot bash bashrc terminator

15
推荐指数
1
解决办法
1万
查看次数

Bash,如何全局修复 ^H 和 ^?退格问题

我想解决这个常见问题,远程服务器上的 shell 认为我的终端的退格键是^?,有时它认为是^H,并且碰巧不正确并在我按下退格键时输出错误的字符。如果我将其设置为 ^H 或 ^?用stty erase ^Hstty erase ^?在我的.bashrc文件,并使用一些其他的终端访问服务器,它往往最终是错误的。所以stty erase [whatever]当我发现退格键错误时,我不得不手动输入来修复它。

我想要做的是同时绑定^?^H退格,因为如果我能做到这一点,我可以将它添加到我所有的 .bashrc 文件中,它肯定会结束这场噩梦。这可能吗?如果是这样,如何?

linux terminal bash shell bashrc

15
推荐指数
1
解决办法
3万
查看次数

覆盖与系统命令同名的用户定义函数

这个函数存在于我的一个用户的 ~/.bashrc 中:

function rm()
{
        ls $*
        echo "rm?"
        read ans
        if [ "$ans" == 'y' ]; then
                /bin/rm $*
        fi
}
Run Code Online (Sandbox Code Playgroud)

在我要求用户运行的 ksh 脚本中,我有这样一行:

[[ "$KEEP" = "" ]] && \rm $FILE
Run Code Online (Sandbox Code Playgroud)

虽然反斜杠转义用户定义的别名,但它不会阻止脚本运行具有相同名称的用户定义函数。结果,我的用户的 rm() 函数被调用而不是系统函数。

我发现了这个超级用户问题问题和回复,但该解决方案仅适用于内置函数,而不适用于系统命令。

强制调用 rm 命令而不是别名或函数的最佳方法是什么?我是否必须指定 rm 的完整路径以及我想确保正确执行的每个系统命令?有没有更好的办法?

bash alias ksh bashrc

14
推荐指数
1
解决办法
8502
查看次数

Putty以手动方式曝光

我想在PuTTY 中使用日光化配色方案。棘手的部分是在这台机器上没有管理员权限。所以我必须通过更改设置 > 窗口 > 颜色手动更改默认颜色。

我正在寻找带有日晒RGB颜色和PuTTY颜色名称的对应表:

  • 默认前景
  • 默认粗体前景
  • 默认背景
  • 默认粗体背景
  • 光标文本
  • 光标颜色
  • ANSI 黑色
  • ANSI 黑色粗体
  • ANSI红
  • ANSI 红色粗体
  • ANSI绿色
  • ANSI 绿色粗体
  • ANSI黄
  • ANSI 黄色粗体
  • ANSI 蓝
  • ANSI 蓝色粗体
  • ANSI洋红色
  • ANSI 洋红色粗体
  • ANSI青色
  • ANSI 青色粗体
  • ANSI 白色
  • ANSI 白色粗体

我也接受任何比 PuTTY 的默认配色更好的配色方案......

编辑:

一个更明智的方法是勾选所有的框Settings -> Windows -> Colour,然后在远程机器中添加该行

export TERM=xterm-256color
Run Code Online (Sandbox Code Playgroud)

或者

export TERM=xterm
Run Code Online (Sandbox Code Playgroud)

~/.bashrc和创建文件~\.XresourcesSolarized配色方案

putty bashrc solarized

13
推荐指数
2
解决办法
2万
查看次数

有什么作用。.bashrc 究竟有没有用?

当我输入一个例如。在我的.bashrc文件中添加了一个新别名我无法立即在该终端窗口中使用它,直到最近我认为我必须重新启动终端才能重新加载.bashrc文件。然后我在某处发现如果我写

. .bashrc
Run Code Online (Sandbox Code Playgroud)

这将.bashrc在当前窗口中重新加载文件,我不必重新启动。这对鳍有效,但实际发生了什么?为什么这会重新加载.bashrc文件?

linux terminal bash command-line bashrc

13
推荐指数
1
解决办法
2118
查看次数

`ssh <host>` 是登录 shell,而 `ssh <host> <command>` 不是?

我注意到,当我使用ssh <host> <command>语法直接在 SSH 主机上运行命令时,我看到的是输出,.bashrc但没有看到.bash_profile(或.profile)的输出。

例如,如果我将以下命令放在两个文件的顶部,

echo ${BASH_SOURCE[0]}
Run Code Online (Sandbox Code Playgroud)

和手动来源.bash_profile.bashrc依次来源),我会看到

$ . .bash_profile
.bash_profile
.bashrc
Run Code Online (Sandbox Code Playgroud)

这与我使用ssh <host>命令的形式通过 SSH 远程登录到这台计算机时看到的输出相同。(如果我.bash_profile暂时存放在其他地方,这两行都不会得到回应。)

但是,如果我直接在远程机器上以ssh <host> <command>形式执行命令ssh,则输出如下所示:

$ ssh <host> echo foo
/home/rlue/.bashrc
foo
Run Code Online (Sandbox Code Playgroud)

我的理解是,之间的区别.bash_profile,并.bashrc就在于前者是登录shell而后者则是互动的,非登录shell

我得出了以下结论:

  1. ssh <host>仅来源.bash_profile,而
  2. ssh <host> <command>仅来源.bashrc,这意味着
  3. 前者是登录shell,后者不是。

这些结论是否正确?为什么被ssh <host> <command>视为交互式、非登录 shell?SSH不是还在登录远程机器执行命令吗?

linux ssh bash bashrc .bash-profile

13
推荐指数
1
解决办法
6085
查看次数