Questions tagged «bash»

Bash是来自GNU Project的类Unix操作系统的免费外壳。


1
使用emacs键绑定在命令行中交换字符的简单方法?
如果我使用的是vi,并且看到我已经换位了两个字符,则可以通过将光标放在第一个字符上,x然后p在命令模式下键入,轻松解决该问题。 在emacs模式下的bash命令行上是否有类似的技巧可用?我意识到我可以设置为vi键绑定,但是鉴于emacs键绑定是我生命中许多命令行的默认设置,因此我不愿意这样做。

2
gnome终端中无法区分的活动选项卡
我在Debian Sid上运行Gnome 2.30.2和Gnome Terminal 3.0.1,最近,活动选项卡与其他选项卡几乎无法区分。它实际上是相同的颜色。更改主题并没有多大帮助,仅使用高对比度主题会有所作为,这是我不想使用的主题。 已经在尝试〜/ .gtkrc-2.0脚本,但是即使重新启动X-Server之后,这似乎也不起作用。 style "gnome_terminal_notebook" { #fg[NORMAL] = "#00ff00" bg[NORMAL] = shade (1.25, "#3c3b37") } widget "*TerminalWindow.*.GtkNotebook*" style "gnome_terminal_notebook" 任何人都可以阐明如何使活动标签更具区别性吗?

3
您如何确定传送给您的实际命令?
假设我有一个名为的bash脚本log.sh。在此脚本中,我想从管道中读取输入,但我也想知道用于将输入管道输送给我的命令。例: tail -f /var/log/httpd/error | log.sh 在shell脚本中,我想知道命令tail -f /var/log/httpd/error。
9 linux  bash  pipe 

1
如何修复我的bash提示换行?
我已经定义了一个bash提示符(使用PROMPT_FUNCTION),如下所示: function get_hg_prompt_prefix() { local APPLIED_COLOR=$1; shift local UNAPPLIED_COLOR=$1; shift local ALERT_COLOUR=$1; shift local TEXTCOLOR=$1; shift local mercurial_prompt_line="{{patches|join(:)|pre_applied(${APPLIED_COLOR})|post_applied(${TEXTCOLOR})|pre_unapplied(${UNAPPLIED_COLOR})|post_unapplied(${TEXTCOLOR})}\n\r}" local mercurial_status_prompt="{ ${ALERT_COLOUR}{status}${TEXTCOLOR}}" echo "$(hg prompt "${mercurial_prompt_line}" 2>/dev/null)$(hg prompt "${mercurial_status_prompt}" 2>/dev/null)" } function set_prompt() { bright='\[[01m\]' colors_reset='\[[00m\]' HOSTCOLOR=${colors_reset}='\[[34m\]' USERCOLOR=${colors_reset}='\[[01m\]' TEXTCOLOR=${colors_reset}='\[[32m\]' APPLIED_COLOR=${colors_reset}='\[[32m\]' UNAPPLIED_COLOR=${colors_reset}='\[[37m\]' ALERT_COLOUR=${colors_reset}='\[[31m\]' hg_status="$(get_hg_prompt_prefix $APPLIED_COLOR $UNAPPLIED_COLOR $ALERT_COLOUR $TEXTCOLOR)" ps1_prefix="${hg_status}$colors_reset($bright$(basename $VIRTUAL_ENV)$colors_reset) " PROMPTEND='$' …
9 bash 

3
哪些安装文件应用于通过bash设置环境变量?
正如我在此处和此处所获得的答案一样,PATH变量具有不同的路径名,具体取决于应用程序的激活方式。 无论我如何使用bash启动软件,应使用哪个设置文件(.bashrc,.profile,...)来具有相同的PATH变量?
9 bash  path 

3
如何检查命令行是否连接了电源线?
我正在笔记本电脑上运行ubuntu,并且需要一种方法(从命令行)检查电源线是否已连接。是否有任何系统文件记录此日志?还是有bash命令可以帮助我? 我需要一个脚本,脚本的行为根据电源线是否插入而有所不同。
9 ubuntu  bash  battery 

3
Bash自动完成功能在文件名后添加尾部斜杠
我最近将我的系统从Etch升级到Lenny。现在,当我使用自动完成功能时,文件名(而不是目录)会在命令行上带有斜杠。 它似乎与多个(全部?)命令有关。我尝试了一些: aj@mmdev0:~/loadtest$ vi pyloadtools3.py/ aj@mmdev0:~/loadtest$ cat pyloadtools3.py/ aj@mmdev0:~/loadtest$ file pyloadtools3.py/ aj@mmdev0:~/loadtest$ ls -al pyloadtools3.py/ 我该如何解决?

1
bash完成处理变坏了,怎么调试?
一切始于简单 alias gv='gvim --remote-quiet' 现在gv Space Tab,在通常应提供文件名的位置没有提供任何内容。奇怪, alias gvi='gvim --remote-quiet' 可以正常工作。我显然有解决方法,但是我想知道是什么使我受到gv特殊处理。compopt没有任何帮助,因为它们gv共享与ls正确完成文件名相同的设置。 $compopt gv compopt +o bashdefault +o default +o dirnames -o filenames +o nospace +o plusdirs gv $ compopt ls compopt +o bashdefault +o default +o dirnames -o filenames +o nospace +o plusdirs ls 该complete命令稍有帮助,但并没有告诉我为什么我的两个字符被挑出来进行更改: $ complete -p gv complete …

2
我该如何设置BASH历史记录滚动来按我已经键入的内容进行过滤?
给定命令的历史记录: 1 pwd 2 mysql -u root -p 3 ps -ef | more 4 top 5 mysql -h 192.168.1.101 -u root -p 当您按下向上箭头时,您将在所有这些命令中滚动。我之前已经读过它(并在我的工作PC上完成了它),您可以设置BASH,这样当我第一次键入p然后按向上箭头时,它将仅滚动浏览历史记录中以“ p”开头的所有命令。 (pwd和ps -ef | more)。当我键入mysql然后按Up时,它将仅滚动浏览所有以“ mysql”开头的命令。 我想将笔记本电脑设置为可以使用此功能,但是我无法再次找到说明。
9 linux  bash  history 


4
Bash Shell教程[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新的问题,所以这是对话题的超级用户。 6年前关闭。 有什么好的bash教程?我想了解更多有关bash shell命令以及如何使用它们的信息。

3
如何获得Bash Shell历史记录范围
如何获取/过滤特定范围内的历史记录条目? 我的历史记录文件很大,经常使用 history | grep somecommand 现在,我的记忆力很差,我还想看看在输入命令前后我还做了些什么。 现在我这样做:得到比赛4992 somecommand,然后说,然后我 history | grep 49[0-9][0-9] 通常这已经足够好了,但是我宁愿做得更精确,那就是看到从4972到5012的命令,即之前的20条命令和之后的20条命令。 我想知道是否有更简单的方法?我怀疑自定义脚本是正确的,但是也许其他人以前做过类似的事情。
9 linux  bash  history  grep 

2
在git bash脚本中使用cygwin可执行文件
我有一个.sh脚本,双击该脚本可在Windows的git中执行该脚本。 现在我需要convert来自cygwin(已安装)的(imagemagick),并使用其绝对路径调用它/c/cygwin64/bin/convert.exe--但我得到: 致命错误-检测到cygheap基本不匹配。此问题可能是由于使用了不兼容的cygwin DLL版本。 将实际convert通话包装在cygwin bash通话中,甚至在cmd.exe通话中也无济于事。这有点奇怪,因为有时我会在.cmd脚本中直接使用cygwin可执行文件,而且这种方法一直有效。 我能做什么?最好将我的程序限制为一个文件的解决方案。 (我知道我可能只可以安装Windows原生imagemagick。但是第二天,我需要在git-for-Win-Shellscript中使用另一个cygwin工具。如果可能,我可能会使我的工作场所中的Windows的git过时了)
9 windows  bash  git  cygwin 

4
使用“源”运行脚本时如何正确还原设置?
我正在编写一个脚本,该脚本需要使用来执行source,因为它的任务是修改环境。在脚本执行过程中,我要使用脚本,set -e以便任何错误都可以停止脚本。该脚本如下所示: #!/bin/bash set -e # do something cd somewhere source anotherScript 问题在于set -e脚本完成后自然仍然有效。set在脚本停止时(以任何方式-通过成功完成或发生错误),如何确保更改后的选项正确恢复到其上一个值?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.