Questions tagged «bashrc»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

3
在shell配置脚本中,如何解释BSD上的coreutils与GNU之间的差异?
到本月为止,我的shell配置非常简单(主要是a .bashrc或.bash_profile主要带有一些别名),但是我一直在对其进行重构,以便根据我是否使用zsh和bash来获得不同的行为。他们首先获取一个通用的shell配置文件,该文件应适用于任何情况,然后专门针对所使用的特定shell(我对此进行符号链接)。 今天ls停止工作时,我感到很惊讶。原来,在重构期间.bashrc,有一个别名 alias ls='ls --color=always' 这ls在OSX的Terminal上用bash 破坏了东西。一旦我看到BSD ls喜欢-G彩色,但是GNU(或Ubuntu上的任何东西)喜欢--color,很明显,很多选择是不同的。 我的问题是,解决BSD和GNU coreutils之间的选项差异的最佳方法是什么?我是否应该在if块中测试一个env变量,以查看正在使用的操作系统并应用正确的行为?还是为每个操作系统制作单独的配置文件更有意义? 尽管对这些问题的回答可能是主观的,但似乎BSD和GNU coreutils之间差异范围的缩小和解决这些问题以使通用配置可在大多数* nix上使用的策略将是相当客观的。
9 bash  bashrc  bsd  gnu 

1
如何检测外壳程序何时归远程SSH会话所有?
我的问题与此类似,但是我正在寻找稍微不同的东西。我有一台笔记本电脑,用于在两种不同情况下访问网络上的Linux机器: 我有直接的有线连接到网络。 我与网络有间接连接。网络上有一台暴露于Internet的网关计算机,我可以使用它来建立到网络主机的SSH隧道。这显然是一个慢得多的,更高延迟的连接。 我的主目录可从所有机器通过网络访问,因此它们共享我的副本.bashrc。我想添加功能以.bashrc检测我处于两种情况中的哪一种并采取相应的措施(从技术上讲,将有三种情况,其中第三种是我登录到本地计算机,但是应该易于处理) )。我想做类似的事情: alias ssh ssh -X 当我在本地网络上,但是我不想在Internet上使用X转发时。 export EDITOR=gvim当我在本地网络上但export EDITOR=vim在远程时。 等等。根据先前的答案,看来我应该能够通过检查SSH_CLIENT(如果存在)的内容并查看客户端IP地址是否与本地计算机上的网络适配器之一匹配来完成类似的操作。我想我会看看是否有一种更流畅或更强大的方法来完成此任务。
9 shell  ssh  bashrc 

3
终端,提示更改为“ -Bash-4.2”,颜色丢失
通常我的终端提示是 username place$ 现在只显示 bash-4.2$ 并且所有的颜色设置都丢失了(在终端配置文件中,我使用相同的配色方案,但是只是不显示颜色) 我不知道会发生什么(我也不知道如何搜索)。 它什么都没有改变,我正在使用Eclipse和Maven,打开了一个新终端,并且新终端没有颜色。 注意:我没有〜/ .bashrc文件,但是我有〜/ .bash_profile。

3
如何判断终端会话是否在屏幕上运行
在运行bash脚本时,我想知道它是否在内运行screen。这可能吗? 我想要这样做,以便.bashrc可以根据会话是否在屏幕内启动来设置命令提示符的颜色。 我的回答一经发现,便找到了此链接:如何知道我是否在屏幕上?


3
SSH参数忽略.bashrc脚本
我有一台服务器,当它启动时,其中的一行会.bashrc执行以下命令/bin/watch ~/checker.bash,如预期的那样,服务器启动时会监视该命令。 我也有一个登录到该计算机的客户端,但是我不希望客户端的会话从中执行相同的命令.bashrc。 我已经看过AcceptEnv传递环境变量,尽管它需要配置服务器,但我想避免这种情况。 我也不想为不同的使用2个不同的用户帐户.bashrc。 还有其他角度可以解决这个问题吗?
8 ssh  bashrc 


1
如何根据登录用户更改屏幕的硬状态颜色?
我已经有一段时间没有编辑/创建.screenrc文件了,但这是我目前正在使用的文件: # Turn off the screen startup message startup_message off # Define format of bottom navigation/status/date/etc. line hardstatus alwayslastline "%{yk}[ %H ] %-Lw%50>%{gk}(%{-}%n-%t%{gk})%{-}%+Lw%< %=%{yk}[ %c %d.%m.%Y ]" # Increase scrollback buffer to 30000 lines defscrollback 30000 老实说,我不记得我的hardstatus行中的所有内容代表什么,但是我想弄清楚如何根据登录的用户更改主机名颜色。这是否可能?现在,当我以任何用户身份登录时,主机名都是黄色。但如果我是root,我希望它是红色的。这可以在我的.bashrc文件中更改吗?我在.bashrc中拥有此功能,可以将新的屏幕窗口名称更改为我连接到的服务器的主机名: # Set screen window title case "$TERM" in screen) PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"' ;; …

2
处理重复的程序名称bash
我想知道是否$PATH 级联条目。在这里,你们所有人都需要与我一起迈出信心的飞跃,但事情确实如此。 假设我们有一个Java可执行文件,/usr/bin/java但此版本非常旧且过时。不幸的是,我们没有su访问权限,所以我们不能仅仅替换它。但是,我们可以在本地下载JRE / JDK的当前版本,并指向更新的版本。我的问题是,当我们有两个或多个具有相同名称但在两个或多个不同位置的可执行文件时,bash如何处理?当我们输入java控制台时,bash是否会以某种方式选择执行哪一个?假设我们/usr/bin还有许多其他可执行文件,那么$PATH看起来像这样的东西如何正常工作? 理想情况下,键入时java -version应该看到: java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode) 代替 java version "1.7.0_45" Java(TM) SE Runtime Environment (build 1.7.0_45-b18) Java HotSpot(TM) Client VM(build 24.45-b08, mixed mode, sharing) 我确定这个问题已经被问过了,并且与它相关联。我在SE,SO和一些论坛上闲逛,但没有发现任何结论。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.