标签: bash

Bash 快捷方式不起作用

我经常通过 ssh 连接到具有 Bash shell 的服务器。以前所有正常的快捷方式都有效,即up最后一个命令,ctrl+r允许我搜索以前的命令。

但是我今天登录,这些不再工作,例如up现在显示^[Actrl+r显示^R。我怎样才能将它恢复到以前的状态?

bash

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

xterm 没有正确包装文本

我正在配置我的 gnome-terminal 和 xterm 列(我还没有选择我将使用其中的哪一个),我有几个问题要解决:

  • 打字区似乎比显示区更小(列更少)
  • 输入的文本在到达末尾时不会换行到下一行 - 它只是在同一行上继续返回,覆盖提示

(我已经用 PS1 设置了一个自定义的 bash 提示,以防万一)

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.1 (wheezy)
Release:    7.1
Codename:   wheezy
$ echo $TERM
xterm
$ stty -a
[peter@mine ~] $ stty -a
speed 38400 baud; rows 52; columns 126; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; …
Run Code Online (Sandbox Code Playgroud)

linux debian bash xterm bashrc

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

通过多个grep命令过滤tail命令以分隔文件

我想要做的是基于 grep 过滤器将一个日志文件的输出过滤为单独的日志文件。

tail -f test.log | tee >(grep "Error" > error.log) >(grep "Warning""> warning.log)

这样所有“错误”条目都在一个文件中,所有“警告”条目都在一个单独的文件中。

我知道这在概念上是有效的,因为如果我使用cat而不是tail,我会得到正确的文件输出,但无法实时跟踪更改(我需要这样做,因为我正在查看主动运行的测试的输出日志)

此外,如果我从grep命令中删除“>”文件重定向器,它会将各个 grep 输出正确输出到控制台;但是,我也想要一个录音文件。

回答:

写入文件时,grep的输出被缓冲。使用带有--line-buffer选项的egrep修复了该行为。

新命令如下所示:

tail -f test.log | tee >(egrep --line-buffered "ERROR" > error.log) >(egrep --line-buffered "WARNING" > warning.log)

linux bash grep tail

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

为路径的所有目录添加读取权限

我想为下面写的路径中的所有目录添加(而不是修改其他文件权限)。就像是chmod -R xx4 /home/mDB/admin/KNUCKLES/dbs/

路径

/home/mDB/admin/KNUCKLES/dbs/
Run Code Online (Sandbox Code Playgroud)

我尝试使用我在论坛中找到的这个命令,但对我不起作用。

chmod +r /home/mDB/admin/KNUCKLES/dbs/ -R
Run Code Online (Sandbox Code Playgroud)

我只想更改所有用户的权限,而不是文件/目录所有者或组的权限。

提前致谢。

linux bash chmod file-permissions

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

在 Linux 中从 .XML 文件中获取价值

  • 任何人都有一个很好的解决方案:

  • 我想要值:/PlayDirList/PlayDir.1378803204来自这个 XML。

    <settings>
    
        <setting id="ask_set_logo_to_bg" value="false" />
        <setting id="check_update_interval" value="0" />
        <setting id="clientid" value="DMDS-MVG-0001" />
        <setting id="guinotify" value="false" />
        <setting id="pil_is_broken" value="false" />
        <setting id="playdir" value="/PlayDirList/PlayDir.1378803204" />
        <setting id="runonstartup" value="true" />
        <setting id="schedule_poweroff" value="false" />
        <setting id="schedule_poweroff1" value="false" />
        <setting id="schedule_poweroff2" value="false" />
        <setting id="schedule_poweroff_custom" value="false" />
        <setting id="schedule_poweroff_from_day0" value="1" />
        <setting id="schedule_poweroff_from_day1" value="5" />
        <setting id="schedule_poweroff_from_day2" value="5" />
        <setting id="schedule_poweroff_hour0" value="23" />
        <setting id="schedule_poweroff_hour1" value="23" />
        <setting id="schedule_poweroff_hour2" value="23" />
        <setting id="schedule_poweroff_min0" value="0" />
        <setting id="schedule_poweroff_min1" …
    Run Code Online (Sandbox Code Playgroud)

linux bash

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

如何从bash自动使用用户名和密码linux ssh

我正在尝试使用提供的用户名和密码进行 ssh。

限制:
1. 我不想为我试图通过 ssh 连接的每台服务器设置一个公钥。
2. 我不想/无权安装 sshpass 工具。

尝试:

echo examplePassword | ssh exampleUser@exampleServer
ssh exampleUser@exampleServer < password.txt (contains password)
Run Code Online (Sandbox Code Playgroud)

linux ssh bash

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

为什么子shell不继承导出变量(PS1)?

我正在使用startx启动图形环境。我有一个非常简单的.xinitrc东西,我会在设置环境时添加一些东西,但现在它如下:

catwm & # Just a basic window manager, for testing.

xterm
Run Code Online (Sandbox Code Playgroud)

我之所以背景WM和前景终端,而不是周围的其他方法经常做,是因为我希望能够打字回来后给虚拟文本控制台exitxterm。这似乎像描述的那样工作。

问题是PS1当前设置为我偏好的变量/etc/profile.d/user.sh(来自/etc/profile发行版提供),似乎没有传播到上述环境中xterm。相关进程树如下:

\_ -bash
    \_ xinit /home/user/.xinitrc -- /etc/X11/xinit/xserverrc :0 -auth /tmp/serverauth.ggJna3I0vx
        \_ /usr/bin/X -nolisten tcp :0 -auth /tmp/serverauth.ggJna3I0vx vt1
        \_ sh /home/user/.xinitrc
            \_ /home/user/catwm
            \_ xterm
                \_ bash
Run Code Online (Sandbox Code Playgroud)

由 启动的 shellxterm似乎是交互式的,但执行的 shell.xinitrc不是。我对两者都满意,关于交互性的假设似乎完全有效,但现在我有一个非交互式 shell,它间接生成了一个交互式 shell,而交互式 shell 没有机会自动继承提示,因为提示未设置或以其他方式使流程树的更高位置不可用。我该如何恢复我的提示?

bash environment-variables sh

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

Go-lang go 工具适用于 Bash 但不适用于 Fish

对于那些不知道 Fish 是什么的人:http : //fishshell.com/

同样,如果您不熟悉 Go 编码环境,但仍想尝试解决这个小难题,这里有一些信息:http : //golang.org/doc/code.html

无论如何,所以我正在尝试建立一个 Go-lang 开发人员。我正在尝试使用 Fish 的新机器上的环境。

所以我$GOPATH设置为/home/<me>/workspace/go-workspace在这两个bashfish。这意味着该go工具需要一个binpkgsrc最底下目录。哪个在那里。

但是,go get在带有一些代码(通常会下载它的依赖项)的目录中输入时会产生

package code.google.com/p/go.crypto/openpgp: cannot download, $GOPATH not set. For more details see: go help gopath
package code.google.com/p/go.crypto/openpgp/armor: cannot download, $GOPATH not set. For more details see: go help gopath
package code.google.com/p/go.crypto/ssh: cannot download, $GOPATH not set. For more details see: go help gopath …
Run Code Online (Sandbox Code Playgroud)

linux bash environment-variables fish

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

如何在 Windows 资源管理器上下文菜单中恢复 git bash

我的机器上运行 git 已经一年多了。我的C根目录中有一个名为的文件夹gitRepo,其中包含我所有的各种存储库。出于某种原因,仅对于一个 repo,git bash右键单击上下文菜单中突然缺少该命令。这是一个工作仓库的截图: 在此处输入图片说明

这是“非工作”回购: 在此处输入图片说明

git bash非工作命令中缺少该命令。(是的,我知道我可以从工作窗口打开一个 bash 窗口,然后只是cd ../用来更改目录,所以我在正确的存储库中,但这只是自找麻烦,因为我经常为多个存储库打开 bash 窗口。 )

屏幕截图中不可见的是,“坏”存储库中也缺少整个顶部菜单块(打开 - 使用 VLC 媒体播放器播放);该顶部块中唯一可用的项目是 7-Zip。

是什么导致了这种情况,我该如何取回条目?

windows-7 bash git context-menu

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

使用 sed 从具有多个 URL 的文本中提取 URL

我有一个带有文本和几个 URL 的字符串。如何使用 sed 提取一个特定的 URL(特定域的)?例如,我有这个:

Text foo bar Text foo bar <br /><br /> http://www.this.file <br />http://another.file <br />http://mine.com/this.html <br />http://myURL.net/files/IWANTthis <br />http://www.google.com/thisnot
Run Code Online (Sandbox Code Playgroud)

sed应返回: http://myURL.net/files/IWANTthis

linux bash sed

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