标签: bashrc

将 git branch 添加到雪豹的 bash 提示

我正在使用这个:

$(__git_ps1 '(%s)')
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是当我更改目录或签出新分支时它不会更新。我也有这个别名:

alias reload='. ~/.bash_profile'
Run Code Online (Sandbox Code Playgroud)

示例运行:

user@machine:~/dev/rails$cd git_folder/
user@machine:~/dev/rails/git_folder$reload
user@machine:~/dev/rails/git_folder(test)$git checkout master
Switched to branch 'master'
user@machine:~/dev/rails/git_folder(test)$reload
user@machine:~/dev/rails/git_folder(master)$
Run Code Online (Sandbox Code Playgroud)

如您所见,它设置正确,但前提是我重新加载 bash_profile。我在这上面浪费了很多时间。我在雪豹上使用 bash。请帮忙!

编辑:您可以在 github 上看到我的 dotfiles 以及在此处设置 PS1 的文件

bash git osx-snow-leopard bashrc macos

8
推荐指数
1
解决办法
1893
查看次数

如何在 bashrc 别名中转义命令?

我需要偶尔使用当前时间戳作为文件名的文件。我会这样做:

touch `date "+%Y-%m-%d_%H-%M"`.txt
Run Code Online (Sandbox Code Playgroud)

但是,我想为此定义一个别名。当我尝试添加到 bashrc 时:

alias td="touch `date \"+%Y-%m-%d_%H-%M\"`.txt"
Run Code Online (Sandbox Code Playgroud)

结果是文件名在整个会话期间是相同的,因为在登录期间只计算了一次“日期..”...

仅当我调用别名时,如何才能让命令展开?或者我必须为此使用一个函数?

谢谢

linux bashrc

8
推荐指数
1
解决办法
5953
查看次数

bash:来自 URL 的来源

除了我自己的电脑,我有时会在学校使用 Ubuntu 集群。与其手动保持我的 .bashrc 同步,我想让学校集群的 .bashrc 源通过 URL 从 DropBox 成为我的个人 .bashrc 。但是,当我天真地尝试时source http://myurl,我只会收到一个错误:http://myurl: No such file or directory. 如何从位于在线的脚本中获取 bash 源代码?

最坏的情况是,我可以卷曲到一个命名管道并获取它。还有更优雅的吗?

unix bash shell-script curl bashrc

8
推荐指数
1
解决办法
4797
查看次数

如何在不写完整路径的情况下从控制台执行python脚本?

我在 /usr/share/scripts/ 上有一些我经常使用的 python 脚本,我希望能够通过只写名称而不是完整路径来执行它们,我该怎么做?

echo $PATH 显示我:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer
Run Code Online (Sandbox Code Playgroud)

所以我尝试在终端上写:

PATH="/usr/share/scripts/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer"
export
Run Code Online (Sandbox Code Playgroud)

没有显示错误并且 echo $PATH 现在显示我的新脚本路径,但是当我运行scriptName时,我找不到命令。

我究竟做错了什么?

linux terminal bash console bashrc

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

不使用 bash 命令恢复 ~/.bashrc

我想我在添加路径时有一个错字~/.bashrc,在我找到它之后,我不能再使用 bash 命令了。

现在我想恢复正常~/.bashrc,但是我发现的大部分讨论(例如如何修复被错误编辑的 .bashrc?)需要使用 bash 命令,例如cp

clam@cuerei:~# cp /etc/skel/.bashrc ~
cp: /home/cltam/script/lib/libc.so.6: version `GLIBC_2.17' not found (required by cp)
Run Code Online (Sandbox Code Playgroud)

我可以知道如何在~/.bashrc不使用 bash 命令的情况下进行恢复吗?

谢谢你。

linux bashrc

8
推荐指数
2
解决办法
1057
查看次数

运行 .bashrc 与新登录

我在 .bashrc 中添加了新别名

运行 .bashrc 不会创建该别名,但新登录是。

你能解释一下为什么会这样,我如何测试新的 .bashrc 是否可以在不进行测试登录的情况下工作?

linux bashrc

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

gnome-terminal:打开新标签时如何保留工作目录的符号链接?

如果我gnome-terminal在路径包含符号链接的工作目录中使用,并且我打开一个新选项卡,则符号链接将扩展到新选项卡工作目录中的目标位置。

打开新标签页时,有没有办法保留符号链接?

linux gnome bash bashrc gnome-terminal

7
推荐指数
2
解决办法
1255
查看次数

如何停止自动更改 iterm 选项卡标题?

在切换到使用.bashrc而不是.bash_profile(我不喜欢默认终端如何使用一个配置文件和实用程序screen与另一个一样)后,iterm2 的行为发生了变化。以前,当我手动设置选项卡标题时,除非我ssh进入另一台服务器,否则它们将保留在那里,此时标题将更改为username@otherservername: /location/in/other/servers/filesystem. 现在,当我更改选项卡标题时,它们将保持不变,直到我在该选项卡中执行的第一个命令。一旦我运行了一些东西,选项卡标题就会切换到myusername@mymacname: /my/location/in/my/mac/filesystem.

使用命令行参数echo -ne "\e]1;tab title\a"并没有帮助。它确实切换了(足够慢以注意到屏幕上的标题更改),但是当命令退出时,标题又回到了原来的位置:myusername@mymacname: /my/location/in/my/mac/filesystem

理想情况下,我希望标签标题永远不会自动切换,包括当我ssh进入另一台服务器时。如果这不可能,我想回到以前的行为:只要我在本地机器上,就保留我设置的标签标题。可以做到吗?

这是我的 .bashrc 文件:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
# don't overwrite …
Run Code Online (Sandbox Code Playgroud)

tabs iterm bashrc osx-lion iterm2

7
推荐指数
3
解决办法
9572
查看次数

.vimrc 和 .bashrc 等文件名中的“rc”是什么意思?

名称中包含“rc”的文件有很多,但是“rc”是什么意思呢?

linux vimrc bashrc

7
推荐指数
0
解决办法
405
查看次数

为什么人们从 bashrc 获取 bash_profile 而不是相反?

听起来大多数终端模拟器默认情况下不会以登录身份运行本地会话,因此它们将加载 bashrc 而不是 bash_profile。那么为什么大多数人将所有内容都放在 bash_profile 中并让 bashrc 提供它,而不是相反呢?“大多数人”是指迄今为止我见过的大多数人。也许它没有我想象的那么普遍。

与其将我们的配置放在那里并拥有 bashrc 源 bash_profile,将所有内容都放在 bashrc 中并拥有 bash_profile 源不是更有意义并且与 linux 社区更一致吗?

我听说过关于 iTerm2 的好消息,听起来是这样,几乎所有其他终端仿真器(默认的 OSX 终端除外)都会在我本地运行时加载 bashrc。并不重要,只要一个来源另一个,但我很困惑为什么更喜欢 bash_profile 是标准?

次要注意事项:我对 iTerm2 有误解。它默认运行登录会话,就像 Terminal.app 一样,尽管两个模拟器似乎都有一个选项可以让你改变它。

linux terminal bash shell bashrc

7
推荐指数
1
解决办法
9207
查看次数