标签: bash

如何缩短命令行 (bash) 提示符?

目前是:

michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$
Run Code Online (Sandbox Code Playgroud)

除了重命名我的机器和目录结构......

我怎样才能让它更像:

michael:controllers$
Run Code Online (Sandbox Code Playgroud)

command-line bash prompt bashrc ps1

205
推荐指数
4
解决办法
23万
查看次数

为什么“(base)”出现在我的终端提示前?

我想知道为什么我(base)在终端提示的左侧。

我的提示图片

如果我source ~/.profile在终端中运行,它就会消失。

如果我关闭该终端并重新打开一个新终端,(base)是否又出现了。

我想知道它是什么。

这是我的内容.profile(不包括标准的 $path 东西和其他个性化的东西):

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi
Run Code Online (Sandbox Code Playgroud)

这是我的 .bashrc 的内容

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

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

command-line bash prompt bashrc anaconda

199
推荐指数
4
解决办法
30万
查看次数

Bash 历史搜索,部分 + 向上箭头

我已经搜索过,但没有找到任何关于此的内容。我正在使用终端在 bash 中寻找功能。

回到过去,我有一个用户在 debian 系统上,一个朋友为我设置了一个方便的历史搜索功能(我相信我当时使用了 tcsh),我将在其中输入上一个命令的开头,点击向上箭头,它会根据部分字符串进行搜索。

例如,如果我的历史是:

./script.pl
./script.pl arg1
cat output
cat output | grep yada
Run Code Online (Sandbox Code Playgroud)

然后我输入.,然后按向上箭头,它会显示我:./script.pl arg1。再按一次,它会显示./script.pl,等等。

非常像它会grep在 .bash_history 上执行。有没有办法获得这个功能?

command-line bash history bashrc

192
推荐指数
5
解决办法
11万
查看次数

如何在 Bash 提示中显示带有颜色的 git 分支?

在 git 存储库中工作时,我正在使用本指南在 gnome 终端(Ubuntu 15.10)中显示分支名称。基于以上内容,我现在在 ~/.bashrc 文件中有以下内容:

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes 
Run Code Online (Sandbox Code Playgroud)

...

# Add git branch if its present to PS1
parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes …
Run Code Online (Sandbox Code Playgroud)

command-line bash git

192
推荐指数
5
解决办法
25万
查看次数

如何找到我正在运行的 bash 版本?

(学习 bash)我试图检查 bash 版本,所以我输入了/bin/bash -v.

这会向屏幕输出大量文本(.bashrc 的内容以及源自它的其他文件)。

由于该命令,我是否可以搞砸一些事情(例如覆盖一些配置文件/设置不正确的环境变量等)?

我也找不到有关-v开关用途的文档。

command-line bash

180
推荐指数
4
解决办法
25万
查看次数

如何在不使用文字制表符的情况下 grep 制表符,为什么 \t 不起作用?

当我使用 (e)grep 在文件中搜索选项卡时,我使用了文字选项卡 ( ^v + <tab>)。我不能\t用作正则表达式中选项卡的替代品。使用例如 sed 这个表达式非常有效。

那么是否有可能使用非文字替代品<tab>以及非工作/未解释的背景是什么\t

bash regex grep posix-compliant

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

BASH 脚本设置环境变量不起作用

我编写了以下脚本来在需要时设置一些环境变量。

#!/bin/sh
export BASE=/home/develop/trees
echo $BASE
export PATH=$PATH:$BASE
echo $PATH
Run Code Online (Sandbox Code Playgroud)

在我可以在终端上看到的命令和结果下方:脚本运行,但变量未在最后设置。

~$: ./script.sh
/home/develop/trees
/bin:......:/home/develop/trees
~$: echo $BASE

~$: 
Run Code Online (Sandbox Code Playgroud)

怎么了?提前致谢。米尔科

bash environment-variables

178
推荐指数
3
解决办法
33万
查看次数

无需打开编辑器即可将行附加到文本文件的命令

假设我想在不打开编辑器的情况下将一行添加到文件中。

我怎么能附加这一行

alias list='ls -cl --group-directories-first'
Run Code Online (Sandbox Code Playgroud)

到这个文件

config.fish
Run Code Online (Sandbox Code Playgroud)

command-line bash text-editor scripts redirect

177
推荐指数
3
解决办法
46万
查看次数

如何让 mv (或 * 通配符)移动隐藏文件?

我正在将我的主目录从旧系统迁移到新系统,我制作的 tarball 包含所有内容,包括像 .bashrc 这样的隐藏文件。但是,当我将解压缩的 tarball(位于 /tmp 中)的内容移动到我的新主目录时,隐藏文件不会复制 ( mv /tmp/home/rcook/* /home/rcook/)。我怎样才能让 mv 移动它们?

实际上,我认为问题不在于 mv,而在于 bash 的 globbing。如果我这样做:

mkdir a
mkdir b
touch a/.foo
touch a/bar
mv a/* b/
ls -a a/ b/
Run Code Online (Sandbox Code Playgroud)

我看到这个:

a/:
.  ..  .foo

b/:
.  ..  bar
Run Code Online (Sandbox Code Playgroud)

a/.foo没动。那么如何获取 * 通配符来查找隐藏文件呢?

是的,我想我可以直接解压缩包到我的主目录,但将压缩包解压缩到home/rcook/...了,我要确保我覆盖新.bashrc等与旧,定制版本,并知道如何查找和移动隐藏文件是一项有价值的技能。建议?


一些答案建议做类似的事情mv src/.* dest/。但是,我在我的测试目录上尝试了这个并出现了错误。从...开始:

rcook$ ls -a a/ b/
a/:
.  ..  bar  .foo

b/:
.  ..
rcook$ mv a/.* b/
mv: cannot move 'a/.' to …
Run Code Online (Sandbox Code Playgroud)

command-line bash

174
推荐指数
6
解决办法
19万
查看次数

在终端中每隔 x 时间间隔重复一次命令?

如何在每个时间间隔重复一个命令,以便它允许我运行命令以进行检查监视 目录的?

不需要脚本,我只需要在终端中执行一个简单的命令。

command-line bash scripts monitoring

172
推荐指数
7
解决办法
33万
查看次数