Questions tagged «bash»

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

6
有没有办法在外壳中转义单引号?
例如 我想说 perl -e 'print '"'"'Hello, world!'"'"', "\n";' 有没有比较尴尬的方法,例如转义单引号? 是的,我知道我会写 perl -e 'print q[Hello, world!], "\n"' perl -e 'print "Hello, world!\n"' 但是这个问题是关于在shell中引用,而不是在Perl中引用。 我感兴趣的是如何做到这一点的bash,并csh摆在首位。

1
用[AJ]代替[0-9]不适用于sed
我正在使用一个命令,用sed中的相应字母替换所有数字0-9。我知道我做错了什么,但sed并未将替换正则表达式解释为字符串文字。 我正在使用的命令是 sed -r 's/[0-9]/[A-J]/g' log > ~/output.txt 对我来说,这似乎很简单,但是我已经坚持了大约一个小时。我收到的输出仅将0-9替换为字符串“ [AJ]”

1
为什么此软链接无法按预期工作?
bash4.3 # pwd /bin bash4.3 # ll sh lrwxrwxrwx. 1 root root 4 May 17 22:22 sh -> bash bash4.3 # ll bash -rwxr-xr-x. 1 root root 1072056 May 17 22:22 bash bash4.3 # bash bash4.3 # sh sh-4.3# 我的操作系统是fedora 24(默认GNOME版本)。 从示例中我们可以知道:在之下/bin,bash是一个二进制可执行文件;在之下,是一个二进制可执行文件。sh是的软链接bash。 因此,据我所知,type bash and press enter应产生与完全相同的结果type sh and press …
11 linux  bash  shell  fedora  sh 

3
交互式运行Python后,OS-X终端的行为异常
在os-x终端中运行python repl(2.7.10)并退出后,终端不再回显键入的输入,并且发生了其他一些奇怪的事情。如果python再次运行和exit(),则终端似乎已恢复。现在,我只是关闭选项卡并打开一个新选项卡,因此我没有进行广泛的测试。 我想这与终端设置有关,但这是最近发生的事情,我没有改变任何我记得的东西。macports如果与某些控制台库的不匹配依赖项有关,则Python与一起安装。2.7.10是在不久前安装的,在安装后并没有发生。 裂缝关节并打开terminal [~]: virtualenv-2.7 venv-test [~]: source venv-test/bin/activate [~]: python >>> ^D>>> *(press ctrl-d, the 2nd >>> is strange) [~]: *(type something like `ls-l`, nothing shows on console) [~]: -bash: ls-l: command not found` 此外,再次运行python并ctrl-d在此输出中命中结果: >>> ^D (ctrl-d, then hit enter, doesn't exit) >>> ^D (...) >>> ^D …
11 macos  bash  terminal  python 

2
在Windows的boot2docker中从主机挂载目录
我正在boot2dockerWindows 1.6 操作系统上运行docker 1.6 。当我使用Boot2Docker Start快捷方式时,它将带我到cygwin bash提示符,在这里我可以本地运行docker命令。 我无法从用户文件夹安装目录。我试过了: $ docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe 我得到错误: invalid value "C:\\Users\\someone\\AppData\\Roaming/Bitcoin:/datadir" for flag -v: \Users\someone\AppData\Roaming/Bitcoin:/datadir is not an absolute path See 'c:\Program Files\Boot2DockeForWindows\docker.exe run --help'. 当我通过以下方式称呼它时,我得到相同的结果: $ docker run -d --name abe -v "$APPDATA/Bitcoin":/datadir poliver/bitcoin-abe $ docker run -d --name …

4
Shell函数在Linux上存储在哪里?
刚开始时,我在寻找which某些程序作为参数后不输出任何内容的原因,例如cd。 根据我在这里找到的信息,原因可能是cd我的机器上有一个功能,可以通过运行确认type cd。 TLDR:但是,由于which可以将由于$PATH变量而可以定位的普通程序放在这些$PATH文件夹之一中,因此函数或脚本之类的cd存储在哪里? user@linuxmchine:~$ type cd cd is a function cd () { __zsh_like_cd cd "$@" }

3
在CygWin中使用(自动化)SUDO的实用(接近经典Linux的)方式
能够sudo在CygWin中使用命令是有用的,并且比打开提升的Shell 更快: Luis@Kenobi /cygdrive/c/Users/Luis $ net user /add TestUser System error 5. Access denied. Luis@Kenobi /cygdrive/c/Users/Luis $ sudo net user /add TestUser Command completed successfully. 如上所示,您也可以像Linux一样运行Windows命令/脚本。对我来说是整洁的;在远程(SSH)控制台上工作,并允许组合Windows / Linux命令。因此,能够执行管理任务几乎是必须的。 但是SUDO for CygWin项目的行为可能很危险:它用作服务器/客户端体系结构,实际上,客户端(sudo)在内部(而不是在外部监听)向服务器(sudoserver.py)发送命令请求。本地计算机)端口7070TCP,无需进行用户或权限检查,因此登录到计算机上的任何人(甚至是非特权用户)都可以执行admin(CygWin或Windows)外壳命令或脚本(CygWin或Windows)。如果保留建议的作者方法,则 问题会变得更糟:将“ sudoserver.py”注册为服务,因此它将永久运行。 因此,为了使事情更安全(并非完全),我这样做: 1.-在管理外壳上执行“ sudoserver.py”。 2.-在另一个CygWin shell上执行我的“ sudo”命令。 3.-关闭(Ctrl + C)“ sudoserver.py”和admin shell。 有点讨厌。我正在使用.cmd带有分配的热键的文件来解决该问题,该文件运行“ sudoserver.py”,在我完成管理工作后将其关闭(手动),但仍远未达到 Linux上经典的“ sudo”可用性。 伟大而实用的方法是: **自动打开“ …


6
“ Shell”和“ Bash”这两个术语有什么区别?
“ Shell”和“ Bash”之间的区别是什么?这些术语是什么意思? 据我所知,没有区别。但是我看过很多关于“壳牌”的书,还有一些关于“ Bash”的书! 因此,如果我想在Mac OS X上使用Terminal并编写一些bash脚本,我想知道我应该买哪种书。
11 macos  bash  shell 

2
如何使用笑脸自定义终端bash提示?
我试图弄清楚如何自定义终端的bash提示以使用笑脸。我想要的(如示例打击所示)是将cwd与提示符用\ n隔开,如果命令成功,则显示绿色的笑脸,如果命令失败,则显示红色的悲伤脸。 有任何想法吗? 这是受Peepcode截屏的启发。

4
当目录名称包含空格时,使用bash变量进入目录不起作用
假设我想将以下命令存储在变量中 cd "/cygdrive/c/Program Files/" 所以我这样做 dir="cd \"/cygdrive/c/Program Files/\"" 那应该存储命令以导航到Program Files目录,所以当我键入$ dir时,它将带我到该目录。要检查报价是否已正确转义,我输入 echo $dir 这给了我 cd "/cygdrive/c/Program Files/" 因此,一切都应该正常工作。但是当我打字时 $dir 我懂了 bash: cd: "/cygdrive/c/Program: No such file or directory 我究竟做错了什么?我正在使用Cygwin,但我认为此问题通常适用于bash。
11 linux  bash  cygwin 

2
为什么手动设置bash提示(PS1)会导致root使用$而不是#?
我使用的是CentOS 6.4。默认情况下,root用户的提示符带有#符号,即看起来像[root@myserver ~]# 。 echo $PS1打印出来[\u@\h \W]\$; 但是,如果我这样做了PS1="[\u@\h \W]\$"(不应该改变任何东西,afaics),我最终会看到类似以下的提示:[root@myserver ~]$。 为什么当我尝试自己进行设置(我最终希望将其更改为更有用的功能)时,它会按$字面意义进行解释吗?我几乎可以找到每个页面(例如,“ 如何:更改/设置bash自定义提示(PS1)”),该提示\$应#为根用户使用。
11 bash  prompt 

5
Linux中是否有一条命令等待被终止?
我正在尝试构建Windows批处理文件,该文件通过端口转发启动腻子/链接。到目前为止,Windows部分已准备就绪: start plink.exe -ssh -i key.ppk -L 1234:localhost:80 sampleUser@192.168.0.1 由于我不想允许身份验证后执行其他命令,因此我使用ForceCommand了Match User声明: Match User sampleUser ForceCommand echo 'Success! Close this window to log out.' 问题是,运行批处理文件可以正确启动腻子,但是执行回显指定的文本后,它将立即关闭。 我的想法是使用这样的东西: ForceCommand echo 'Success! Close this window to log out.' && waitTillControlC 这样,putty / SSH应该使连接保持活动状态,并且不会退出我的端口转发。 我想喜欢的命令yes,ping或者read,但他们 向我的终端窗口发送垃圾邮件 实际上正在做东西/产生不必要的CPU负载 如果有人按Enter,可能会意外关闭 在有人用Ctrl + C终止它或通过关闭腻子窗口来关闭SSH连接之前,有没有永远不会做的命令? 我应该做什么用waitTillControlC?
11 linux  bash  ssh  terminal  putty 



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.