相关疑难解决方法(0)

说服 grep 输出所有行,而不仅仅是那些匹配的行

假设我有以下文件:

$ cat test

test line 1
test line 2
line without the search word
another line without it
test line 3 with two test words
test line 4
Run Code Online (Sandbox Code Playgroud)

默认情况下,grep返回包含搜索词的每一行:

$ grep test test

test line 1
test line 2
test line 3 with two test words
test line 4
Run Code Online (Sandbox Code Playgroud)

传递--color参数 togrep将使其突出显示与搜索表达式匹配的行部分,但它仍然只返回包含该表达式的行。有没有办法grep输出源文件中的每一行,但突出显示匹配项?

我目前实现这一点的可怕黑客(至少在没有 10000+ 连续行且没有匹配项的文件上)是:

$ grep -B 9999 -A 9999 test test
Run Code Online (Sandbox Code Playgroud)

两个命令的截图

如果grep不能做到这一点,是否有另一个提供相同功能的命令行工具?我摆弄过ack,但它似乎也没有选择。

grep highlighting

140
推荐指数
5
解决办法
6万
查看次数

如何像下面的截图一样创建一个 testcolor.sh?

我在网上找到了这张图,但不知道它是怎么制作的,

在此处输入图片说明

任何人都可以提供样本吗?我也想有一个颜色表。

colors bash shell-script

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

使用目录树/文件名时的紧凑 bash 提示

在带有 Ubuntu 14.04 和 的系统中bash,我的PS1变量以以下内容结尾:

\u@\h:\w\$
Run Code Online (Sandbox Code Playgroud)

以便提示显示为

user@machinename:/home/mydirectory$
Run Code Online (Sandbox Code Playgroud)

然而,有时,当前目录有一个长名称,或者它在长名称的目录中,所以提示看起来像

user@machinename:/home/mydirectory1/second_directory_with_a_too_long_name/my_actual_directory_with_another_long_name$
Run Code Online (Sandbox Code Playgroud)

这将填充终端中的行,光标将转到另一行,这很烦人。

我想获得类似的东西

user@machinename:/home/mydirectory1/...another_long_name$
Run Code Online (Sandbox Code Playgroud)

有没有办法定义PS1变量来“包装”和“压缩”目录名称,永远不会超过一定数量的字符,从而获得更短的提示?

bash prompt directory directory-structure pwd

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

终端,提示更改为“-Bash-4.2”并且颜色丢失

通常我的终端提示是

username place$
Run Code Online (Sandbox Code Playgroud)

现在它只显示

bash-4.2$
Run Code Online (Sandbox Code Playgroud)

并且所有颜色设置都丢失了(在终端配置文件上我有相同的配色方案,但它只是不显示颜色)

我不知道会发生什么(我不知道如何搜索)。

它从无到有,我正在使用 eclipse 和 maven,打开一个新终端,新终端没有颜色。

注意:我没有 ~/.bashrc 文件,但我有 ~/.bash_profile。

bash terminal gnome-terminal bashrc

12
推荐指数
1
解决办法
6万
查看次数

如果返回错误,则在 Bash 提示中显示最后一个命令的退出代码

我已将最后一个命令的返回值添加到PS1我的.bashrc.

现在我只想在值不为零时才显示它。

Android 的外壳有它:

${| local e=$? (( e )) && REPLY+="$e|" return $e }
Run Code Online (Sandbox Code Playgroud)

问题:如何将其转换为 bash?

shell bash prompt

11
推荐指数
3
解决办法
906
查看次数

如何将 STDOUT 和 STDERR 颜色永久更改为灰色?

这个问题类似于 Can I configure my shell to print STDERR and STDOUT in different color?

但我正在寻找一种解决方案,可以让我将STDOUT 和 STDERR 都更改为一种颜色。我不想为 STDOUT 和 STDERR 设置不同的颜色,因为这有问题并且可能会产生问题,在上面链接的答案中提到。

我很抱歉,因为我对 Unix 和 Linux 不太了解。我要寻找一个解决方案,可以让我加几行我.bashrc还是.bash_profile永久改变输出和错误的颜色。

osx shell colors terminal

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

终端底部的状态栏代替 PS1

我突然想到,当我在终端中做事时,我的 PS1 会为每个命令重复几次。我的 PS1 包括 CWD 和 git 分支,所以它可以得到相当长的时间。

有没有一种方法可以将我的 PS1 设置为 $ 美元符号,但将其他信息移到“状态栏”中,或者只是将其保留在终端底部?很像 tmux 的状态栏,但这些位通常构成我的提示的一部分。

理想情况下,我想要一个只涉及更改我的 .bashrc 的解决方案,但任何解决方案都可以。我做了一些谷歌搜索,发现了一个 tmux 的 git branch 东西(但没有 CWD/其他位)和一个非常古怪的“状态栏与时间”并没有真正起作用。

问题示例: 在此处输入图片说明

bash prompt tmux

5
推荐指数
1
解决办法
1364
查看次数

如何让 PS1 提示显示时间、用户、主机、目录和 Git 分支

我见过其他人将所有这些信息添加到他们的 PS1 提示中。

我喜欢对元素进行着色并在最后进行回车的方法。

bash prompt

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