我经常通过 ssh 连接到具有 Bash shell 的服务器。以前所有正常的快捷方式都有效,即up最后一个命令,ctrl+r允许我搜索以前的命令。
但是我今天登录,这些不再工作,例如up现在显示^[A和ctrl+r显示^R。我怎样才能将它恢复到以前的状态?
我正在配置我的 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) 我想要做的是基于 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)
我想为下面写的路径中的所有目录添加(而不是修改其他文件权限)。就像是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)
我只想更改所有用户的权限,而不是文件/目录所有者或组的权限。
提前致谢。
任何人都有一个很好的解决方案:
我想要值:/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)我正在尝试使用提供的用户名和密码进行 ssh。
限制:
1. 我不想为我试图通过 ssh 连接的每台服务器设置一个公钥。
2. 我不想/无权安装 sshpass 工具。
尝试:
echo examplePassword | ssh exampleUser@exampleServer
ssh exampleUser@exampleServer < password.txt (contains password)
Run Code Online (Sandbox Code Playgroud) 我正在使用startx启动图形环境。我有一个非常简单的.xinitrc东西,我会在设置环境时添加一些东西,但现在它如下:
catwm & # Just a basic window manager, for testing.
xterm
Run Code Online (Sandbox Code Playgroud)
我之所以背景WM和前景终端,而不是周围的其他方法经常做,是因为我希望能够打字回来后给虚拟文本控制台exit在xterm。这似乎像描述的那样工作。
问题是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 没有机会自动继承提示,因为提示未设置或以其他方式使流程树的更高位置不可用。我该如何恢复我的提示?
对于那些不知道 Fish 是什么的人:http : //fishshell.com/
同样,如果您不熟悉 Go 编码环境,但仍想尝试解决这个小难题,这里有一些信息:http : //golang.org/doc/code.html
无论如何,所以我正在尝试建立一个 Go-lang 开发人员。我正在尝试使用 Fish 的新机器上的环境。
所以我$GOPATH设置为/home/<me>/workspace/go-workspace在这两个bash和fish。这意味着该go工具需要一个bin,pkg和src最底下目录。哪个在那里。
但是,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) 我的机器上运行 git 已经一年多了。我的C根目录中有一个名为的文件夹gitRepo,其中包含我所有的各种存储库。出于某种原因,仅对于一个 repo,git bash右键单击上下文菜单中突然缺少该命令。这是一个工作仓库的截图:

这是“非工作”回购:

git bash非工作命令中缺少该命令。(是的,我知道我可以从工作窗口打开一个 bash 窗口,然后只是cd ../用来更改目录,所以我在正确的存储库中,但这只是自找麻烦,因为我经常为多个存储库打开 bash 窗口。 )
屏幕截图中不可见的是,“坏”存储库中也缺少整个顶部菜单块(打开 - 使用 VLC 媒体播放器播放);该顶部块中唯一可用的项目是 7-Zip。
是什么导致了这种情况,我该如何取回条目?
我有一个带有文本和几个 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