我的 .bashrc 看起来像这样:
alias name@server="ssh server sname"
echo "bashrc read"
Run Code Online (Sandbox Code Playgroud)
该echo语句仅用于检查是否已读取。但回声什么也不做。我想为一个更快的 ssh 设置一个别名到一个执行某个命令的盒子中,该命令是远程盒子上的一个工作别名。
我经常修改我的 .bashrc 然后获取它。但是,当export PATH="~/bin:~/perl5/bin:$PATH"我的文件中有类似内容
时,PATH每次获取文件时环境变量都会增加。
例如,第一次获取 .bashrc 时,PATH变量由.bashrc组成~/bin:~/perl5/bin:/usr/bin:/bin。
第二次它由~/bin:~/perl5/bin:~/bin:~/perl5/bin:/usr/bin:/bin.
第三次它由~/bin:~/perl5/bin:~/bin:~/perl5/bin:~/bin:~/perl5/bin:/usr/bin:/bin.
有没有一种简单的方法可以让它只添加任何不在 PATH 中的东西?
我通过这个答案发现,多年来我一直在以一种幼稚的方式在提示中设置终端颜色。
我现在已经修改了我的 .bashrc 以使用 'tput' 命令来为我的提示的各种元素着色。我剩下的一个转义码是这样的:
TITLEBAR="\[\033]2; PROD - \u@\h:\w \007\]"
Run Code Online (Sandbox Code Playgroud)
有谁知道是否有一个 tput/terminfo 属性可以用来设置终端窗口的标题栏,以便我可以消除这种转义?
我搞砸了我的 .bashrc 文件。如何进入最初使用我的主目录创建的默认目录?
.bashrc或.bash_profile哪个配置文件是 ssh-agent 的合适位置?我正在寻找一个答案来解释交互式 shell 和登录 shell 之间的区别。
我设置了一个 Ubuntu 12 服务器(在机架空间云上使用他们的预配置映像)并创建了一个非 root 用户。当我以标准用户身份登录时,在终端上按 [TAB] 会输出一个实际的选项卡,然后按 [UP] 会输出 ^[[A 。但是,如果我以 root 身份登录,[UP] 会输入我的最后一个命令,并且 [TAB] 会自动完成。
.bashrc 文件在两个用户之间看起来完全相同。我真的不知道还能去哪里看。
我刚刚使用 centos/7 框使用 Vagrant 启动了一个全新的 CentOS 7 VM(bash 版本 4.2.46),当我以 vagrant 用户身份登录时,这是我的路径:
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/vagrant/.local/bin:/home/vagrant/bin
Run Code Online (Sandbox Code Playgroud)
以 root 身份登录时,这是 PATH:
/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
Run Code Online (Sandbox Code Playgroud)
我知道这/etc/profile是添加/usr/local/sbin:/usr/sbin(大多数用户在最后,root 用户在开始时),/etc/skel/.bash_profile最终在 vagrant 主目录中的正在添加/home/vagrant/.local/bin:/home/vagrant/bin,但是初始设置来自哪里?
目前我没有解释为什么用户最终会/usr/local/bin:/usr/bin在他们的 PATH 中,而 root 得到其他人。
(坦率地说,根路径的顺序似乎很奇怪,因为/usr/local/sbin与/usr/sbin应在结束时,根据/etc/profile。)
我编写了各种脚本来启动 Java 服务器应用程序,这些应用程序通常在关闭之前运行 24 小时(通过使用不同的参数调用相同的脚本)。
该脚本依赖于文件中定义的环境变量:~/<user>.env,我从.bashrc.
这在从命令行调用脚本时工作正常,但如果我想将脚本添加为 crontab 条目,我会遇到.bashrc无法读取的问题。
我的问题:解决这个问题的最佳实践方法是什么?我意识到我可以定义一个 crontab 条目,例如:
* * * * 1-5 /usr/bin/bash -c '. /home/myuser/myuser.env && /home/myuser/scripts/myscript.sh'
Run Code Online (Sandbox Code Playgroud)
......但这看起来很丑陋。或者,我可以myuser.env在每个脚本的开头获取源,但这将成为维护的噩梦。
任何帮助表示赞赏。
当我通过 ssh 进入服务器 (4.3.3-2-ARCH) 时,我的 .bashrc 没有加载(但是,我可以通过采购它来手动加载它)。
我的主文件夹中没有任何其他文件,例如 .profile。外壳也正确
$ echo $SHELL
/bin/bash
Run Code Online (Sandbox Code Playgroud)
当我使用 登录时ssh -t myserver /bin/bash,我的 .bashrc 已正确加载。
在 SSH 详细模式下,我确实看到 /etc/bash.bashrc 和 ~/.bashrc 是使用最后一个命令加载的。使用默认的 ssh 命令时,它们都没有被加载...
使用默认 ssh 命令时,我应该配置什么来加载 .bashrc(和 /etc/bash.bashrc)?