Questions tagged «bash»

Bash(Bourne-Again SHell)是默认情况下在Ubuntu命令行界面中使用的shell。


8
如何获得较长的命令行以换行到下一行?
长期以来,我在Ubuntu中注意到的一件令我感到沮丧的事情是,当我在命令行输入比终端宽度更长(更宽)的命令时,它没有换行,而是返回到新行。同一行上的第1列,并开始覆盖命令行的开头。(它实际上不会覆盖实际的命令,但是在视觉上,它会覆盖显示的文本)。 很难不看就难以解释,但可以说我的终端宽20个字符(我的终端更像是120个字符-只是为了举例),我想回显英文字母。我输入的是这样的: echo abcdefghijklmnopqrstuvwxyz 但是在按下键之前,我的终端看起来是: pqrstuvwxyzghijklmno 当我按下回车键时,它回显 abcdefghijklmnopqrstuvwxyz 所以我知道命令已正确接收。它只是在“ o”后面加上了我的输入内容,然后从同一行开始。 如果我在只有20个字符的终端上键入此命令,将会发生以下情况: echo abcdefghijklmno pqrstuvwxyz 背景:我正在使用bash作为外壳,并且〜/ .bashrc中有以下行: set -o vi 以便能够使用VI命令浏览命令行。我当前正在使用Ubuntu 10.10服务器,并使用Putty连接到服务器。 在我工作过的任何其他环境中,如果键入长命令行,当命令的长度超过终端宽度时,它将在正在处理的行下添加新行,并且当我继续键入时,我可以看到命令2条不同的线。但只要我记得使用Ubuntu,我的长命令仅占用1行。 当我返回历史记录中的先前命令时也会发生这种情况(我按Esc,然后按“ K”以返回先前的命令)-当我获得的长度大于终端宽度的先前命令时,命令行乱了,我无法告诉我命令中的位置。 我发现看到整个长命令的唯一解决方法是单击“ Esc-V”,这会在VI编辑器中打开当前命令。 我认为.bashrc文件中没有奇怪的地方。我注释掉了“ set -o vi”这一行,但仍然有问题。 我下载了一份新的Putty副本,但未对配置进行任何更改-我只是键入主机名以进行连接,但仍然存在问题,因此我认为Putty无关紧要(除非我需要进行一些配置更改) 还有其他人有这个问题吗?有人可以考虑如何解决这个问题吗? 编辑 这是我的.bashrc文件。我已经在机器之间复制了相同的配置文件,并且在$ PS1中使用了特殊字符,这些特殊字符会以某种方式将其丢弃。我现在坚持使用我的$ PS1的标准bash变量。 感谢@ændrük在.bashrc上的提示! ...结束编辑...
108 command-line  bash 

7
如何在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 ... # Add git branch if …
107 command-line  bash  git 

7
无法执行.sh文件:/ bin / bash ^ M:错误的解释器
我想执行一个shell脚本: -rwxr-x--x 1 root root 17234 Jun 6 18:31 create_mgw_3shelf_6xIPNI1P.sh 我尝试执行标准过程,但出现此错误: ./create_mgw_3shelf_6xIPNI1P.sh localhost 389 -l /opt/fews/sessions/AMGWM19/log/2013-06-06-143637_CLA-0 DEBUG cd/etc/opt/ldapfiles/ldif_in ; ./create_mgw_3shelf_6xIPNI1P.sh localhost 389 -l /opt/fews/sessions/AMGWM19/log/2013-06-06-143637_CLA-0 **ERROR sh: ./create_mgw_3shelf_6xIPNI1P.sh: /bin/bash^M: bad interpreter: No such file or directory** 这是什么意思?我是root该root小组的用户。 这是否意味着该文件没有root用户的正确权限?

11
脚本如何检查它是否以root身份运行?
我正在编写一个简单的bash脚本,但是我需要它来检查它是否以root身份运行。我知道可能有一个非常简单的方法来做到这一点,但我不知道如何做。 只需说明一下: 编写脚本foo.sh以便命令./foo.sh输出0和命令sudo ./foo.sh输出的简单方法是什么1?
104 bash  scripts  root 

3
在终端命令提示符下更改用户,主机,目录信息的颜色
是否可以在命令提示符中更改的颜色user@computer,以及提示符显示的当前目录和命令部分的颜色? 我已经看过OSX用户所做的类似事情,但是我不知道如何在gnome终端中做同样的事情(我只能更改前景色和背景色)。 例如,在尝试编译有错误的程序时,这将非常有用,因为长而未格式化的消息使您很难区分哪些行是命令,哪些行是输出。


9
如何在Shell脚本中运行别名?
我有一个可执行文件mpiexec,其完整路径为~/petsc-3.2-p6/petsc-arch/bin/mpiexec。由于我想在其他目录中执行此命令(而不必重新输入整个路径),因此我在主.bashrc文件中设置了一个别名: alias petsc="~/petsc-3.2-p6/petsc-arch/bin/mpiexec" mpiexec通过键入以下命令,我可以在命令提示符下轻松执行此文件: petsc myexecutable 我尝试script使用新别名petsc作为命令编写名为的Shell脚本文件。给我的Shell脚本适当的权限(使用chmod)后,我尝试运行该脚本。但是,它给了我以下错误: ./script: line 1: petsc: command not found 我知道我可以只写mpiexec文件的完整路径,但是每次我想编写新脚本时都要写完整路径是很麻烦的。有没有办法可以petsc在脚本文件中使用别名?有没有一种方法可以编辑我的代码.bashrc或.bash_profile使其实现?
101 bash  scripts  alias 



4
箭头键,主页键,结束键,制表符完成键在外壳中不起作用
我已经在我的vm上安装了ubuntu minimal(mini.iso)。然后,我使用恢复模式以root用户身份登录并使用创建帐户,useradd -m admin然后使用设置密码passwd admin。 当我登录新帐户时,没有看到通常的提示,而是看到一个$标志。如果我尝试使用制表符补全命令或文件名,则会打印一个普通的制表符。如果我尝试使用它打印箭头键^[[A,^[[B,^[[C或^[[D。同样,ls不再添加颜色。 这些问题都没有处于恢复模式。我怎样才能解决这个问题?

2
按Enter会产生^ M而不是换行符
例如,如果我正在tail -f文件或read用户输入,<Enter>它将^M在终端中生成而不是结束read或向stdout添加换行符。^J工作正常。 ssh如果有的话,我正在研究ubuntu系统。这在zsh和bash中都发生在我身上。我玩过的一种解决方案是在zsh中重新映射^Mto ^J,但似乎无法解决根本问题。有人知道这可能是什么造成的吗? 编辑:要回答一些问题,我ssh将从OSX进入Ubuntu。我正在使用iTerm和zsh。我也忘记提及我在Ubuntu计算机上使用tmux。 编辑2:错过了一个问题。当我键入时,Ctrl-V Enter我得到^M(在OSX和Ubuntu上)。 编辑3:在OSX和Ubuntu上echo $TERM产生screen-256color。
94 command-line  bash  zsh 

13
您可以在.ssh / config中设置密码以允许自动登录吗?
我正在使用Ubuntu 11.10。我ssh每天都用于连接许多服务器,因此我将它们的参数放在.ssh/config文件中,如下所示: Host Home User netmoon Port 22 HostName test.com 有没有一种方法可以在此文件中为每个连接放置密码,以便在服务器要求输入密码时,终端输入密码并将其发送给服务器? 我需要这样做,因为有时我会离开PC,回去时,键入密码,然后按Enter终端上的CONNECTION CLOSED。 PS我不想使用公钥/私钥对。



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.