Articles of bashrc

bash选项卡完成只适用于root

我build立了一个Ubuntu 12服务器(使用他们的预configuration映像在机架空间云上),并创build了一个非root用户。 当我以标准用户身份login时,在terminal按[TAB]输出一个实际的标签,按[UP]输出^ [[A。 如果我以root身份login,[UP]input最后一个命令,[TAB]自动完成。 两个用户的.bashrc文件看起来完全一样。 我真的不知道在哪里看。

.bashrc或.bash_profile ssh-agent?

哪个configuration文件, .bashrc或.bash_profile是ssh-agent的适当位置? 我正在寻找解释交互式shell和loginshell之间差异的答案。

如何用'tput'命令设置terminal的标题?

我通过这个答案发现,我已经用天真的方式设置terminal颜色多年了。 我现在修改了我的.bashrc来使用'tput'命令来对提示中的各种元素进行着色。 剩下的一个转义代码是这样的: TITLEBAR="\[\033]2; PROD – \u@\h:\w \007\]" 有谁知道是否有一个tput / terminfo属性我可以用来设置我的terminal窗口的标题栏,以便我可以消除逃脱?

如何防止危险的bash命令?

当使用或不使用sudo bash时 ,有很多陷阱。 例如,当以root身份login时 rm -rf ~/bin 和 rm -rf /bin 只有一个angular色,但这种差异会让你很不高兴。 为了保护我自己的一点点灾难,我在/etc/bash.bashrc .bashrc )中使用了这个: if [ $UID -ne 0 ]; then # ask me before deleting alias rm='rm -i' else # do not delete / or prompt if deleting more than 3 files at a time alias rm='rm -I –preserve-root' fi 有了这个,我至less不得不在确认删除才会遇到灾难。 也许有更危险的命令作为rm … […]

如何重置默认的.bashrc(debian wheezy)?

我弄乱了我的.bashrc文件。 我如何到达最初使用主目录创build的默认目录?

crontab环境

我编写了各种脚本来启动Java服务器应用程序,这些应用程序通常在closures之前运行24小时(通过调用具有不同参数的相同脚本)。 该脚本依赖于文件中定义的环境variables: ~/<user>.env ,它来自.bashrc 。 从命令行调用脚本时,这工作正常,但如果我想添加脚本作为crontab条目我遇到的问题,其中.bashrc不读。 我的问题:解决这个问题的最佳做法是什么? 我意识到我可以定义一个crontab条目,如: * * * * 1-5 /usr/bin/bash -c '. /home/myuser/myuser.env && /home/myuser/scripts/myscript.sh' …但这似乎很难看。 或者,我可以在每个脚本的开始处myuser.env ,但这将成为维护的噩梦。 任何帮助赞赏。

修剪PATHvariables中的重复条目

我经常修改我的.bashrc然后来源。 但是,当我在我的文件中export PATH="~/bin:~/perl5/bin:$PATH"时,每次我input文件时, PATH环境variables都会增长。 例如,第一次.bashrc源, PATHvariables由~/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不能在cygwin下读取?

我的.bashrc如下所示: alias name@server="ssh server sname" echo "bashrc read" echo语句只是用来检查是否被读取。 但是回声什么都不做。 我想设置一个更快的ssh的别名到一个盒子做一个特定的命令,这是远程盒子上的工作别名。

直接的方式来运行ssh-agent和ssh-addlogin通过SSH?

我试图通过sshlogin到我的服务器时自动执行以下命令: ssh-agent /bin/bash ssh-add ~/.ssh/id_rsa 我的SSH密钥有一个密码,我很好,每logininput一次。 我试图把这个在我的.bashrc文件,但是我相信,ssh代理启动一个新的bash会话。 当我在.bashrc中尝试login后,它会卡住,我必须键入'exit',然后看到'input密码解锁'提示符 还有其他build议吗? 服务器运行Ubuntu LTS

使用.bashrc而不会破坏sftp

我的问题是,我需要设置一些variables,每次login到ssh shell时输出几行,同时我必须能够使用sf​​tp来通过Filezilla转换文件。 现在,按照http://www.openssh.org/faq.html上的openssh FAQ,如果你的启动脚本回显任何types的输出,它会用sftp搞砸。 所以它要么无限期地延迟,要么出现“连接被服务器closures,退出码为128”的错误。 我已经尝试了将.bashrc移动到.bash_profile或在.bashrc中使用以下代码的解决scheme: if [ "$TERM" != "dumb" ] then source .bashc_real fi 和: if [ "$TERM" = "xterm" ] then source .bashc_real fi 但是,没有任何工作。 我的shellterminal是bash,我用filezilla连接到sftp。