Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

4
如何在$ HOME以外的目录中启动所有Shell会话?
当我在Ubuntu中打开非登录外壳程序时,我当前的工作目录是/home/user_name(我的$HOME环境变量),但是我想更改此目录,以便在启动终端时位于其他目录中。 我已经读过,当我在Ubuntu中启动终端时,会得到一个.bashrc文件。所以我加了 export HOME=/home/user_name/Documents 到我的.bashrc文件。现在,当我打开终端时,我仍然在/home/user_name目录中。 我该如何更改?

3
如何通过bash脚本判断我是否处于tmux会话中?
我喜欢将自己保存bash_profile在git存储库中,然后将其克隆到我可以通过Shell访问的任何计算机上。由于我tmux大部分时间都user@host在状态行中输入字符串,而不是在shell提示符中使用传统字符串。 但是,并非我使用的所有站点都已tmux安装,或者我可能并不总是在使用它。我想检测我何时不参加tmux会话,并相应地调整提示。到目前为止,我的半熟解决方案.bash_profile看起来像这样: _display_host_unless_in_tmux_session() { # ??? } export PROMPT_COMMAND='PS1=$(_display_host_unless_in_tmux_session)${REST_OF_PROMPT}' (每次检查可能都不是最好的方法,因此我愿意提出更好的方法。Bash脚本并不是我的专长。)
53 bash  prompt  tmux 

6
将zsh设为没有root访问权限的默认shell
我正在使用学校的计算机,并且想使用zsh而不是bash。我想将其设置为默认外壳程序,但是$ chsh -s $(which zsh)由于我没有管理员权限,因此无法运行命令。 有什么办法可以放入我的.bashrc东西,或者zsh当它作为解决方法打开时会自动调用的东西吗? 澄清一下,zsh已经安装了。
52 bash  zsh  login  profile 


3
在外壳通配符中使用OR模式
我的目录的内容是 $ ls -lrt total 0 -rw-r--r-- 1 user1 admin 19 Oct 8 12:31 night.txt -rw-r--r-- 1 user1 admin 19 Oct 8 12:31 noon.txt -rw-r--r-- 1 user1 admin 38 Oct 8 12:31 day.txt 我想列出文件名中包含单词的文件的详细信息。 范例: $ ls -lrt *day|night* ls: *day: No such file or directory bash: night.txt: command not …
52 bash  shell  zsh  ls  wildcards 

4
在no_proxy环境变量中设置网络范围
我在使用代理的网络中。我的机器在这里使用很多脚本,并且可以通过HTTP相互访问。 网络为10.0.0.0/8。 我的代理服务器是10.1.1.1:81,因此我进行了相应设置: export http_proxy=http://10.1.1.1:81/ 我想排除自己的范围以使用代理访问。我尝试了任何可用的组合。 export no_proxy='10.*' export no_proxy='10.*.*.*' export no_proxy='10.0.0.0/8' 以上都不是! 我正在测试,wget并且总是尝试查询代理,无论我想连接到哪个IP地址。 由于所有系统中的脚本无处不在,因此该--no-proxy选项实际上不是一个选项。我想将其设置为系统范围。
52 bash  wget  curl  http-proxy 

6
“ su”错误,“由于身份验证错误而拒绝了X11连接”
以root用户身份,我连接到远程主机以执行命令。只有“ standarduser”具有适当的ID文件和正确的.ssh / config,因此我首先切换用户: su standarduser -c 'ssh -x remotehost ./remotecommand' 该命令运行正常,但是尽管我使用了“ -x”(禁用X11-Forwarding)并在中禁用了X11Forwards /etc/ssh/ssh_config,但仍然收到错误消息: X11 connection rejected because of wrong authentication. 当我以“ standarduser”身份登录时,未收到错误消息。 这很烦人,因为我想将命令集成到cron作业文件中。我知道该错误消息是指对根.XAuth文件的错误身份验证,但是我什至没有尝试通过X11连接。 为什么“ ssh -x”不禁用X11连接并抛出错误消息? 更新:该消息仅在我登录屏幕时显示,在本地计算机本身(不带屏幕)上使用上述命令时显示,我不会收到错误消息,因此使用cron也应该没问题。 我还使用了相同的命令-v,甚至在SSH发出状态信息之前,都意外收到了错误消息FIRST: root@localhost:~# su standarduser -c 'ssh -x remotehost ./remotecommand' X11 connection rejected because of wrong authentication. OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb …
52 bash  gnu-screen  su  xauth 

9
终止无限循环
我有一条命令,希望每次终止时都可以自动再次运行,因此我运行了以下命令: while [ 1 ]; do COMMAND; done; 但是如果我不能停止循环,Ctrl-c那只会杀死COMMAND而不是整个循环。 我将如何实现类似的功能,但无需关闭终端就可以停止?
52 bash  signals 

5
运行多个命令并将其作为bash中的一个杀死
我想在单个shell上运行多个命令(进程)。它们都有自己的连续输出并且不会停止。在后台运行它们会中断Ctrl- C。我想将它们作为单个进程(可能是subshel​​l)运行,以便能够使用Ctrl- 停止所有进程C。 具体来说,我想使用mocha(监视模式)运行单元测试,运行服务器并运行一些文件预处理(监视模式),并在一个终端窗口中查看每个单元的输出。基本上,我想避免使用某些任务运行程序。 我可以通过在后台(&)中运行进程来实现这一点,但随后必须将其置于前台以停止它们。我希望有一个包装它们的过程,当我停止该过程时,它将停止其“子代”。

3
$()是subshel​​l吗?
我知道subshel​​l语法为(<commands...>),$()仅仅是可以从中检索变量值的子shell? 注意:这适用于基于其文档中不同措辞的bash 4.4。
51 bash  subshell  syntax 



5
我怎么能别名!!
我正在尝试sudo !!在Bash中设置别名。我尝试过alias sbb='sudo !!',但是它将其解释为文字 !!并打印 sudo: !!: command not found 如果我使用双引号,它将代替字符串本身中的双引号,因此不起作用。 有什么办法可以使这项工作吗?还是其他别名?`

5
如何将一个命令的输出作为命令行参数传递给另一个命令?
所以我有一个脚本,当我给它两个地址时,它将搜索两个HTML链接: echo "http://maps.google.be/maps?saddr\=$1\&daddr\=$2" | sed 's/ /%/g' 我想将其发送到wget,然后将输出保存到名为的文件中temp.html。我试过了,但是没有用。有人可以解释原因和/或给我一个解决方案吗? #!/bin/bash url = echo "http://maps.google.be/maps?saddr\=$1\&daddr\=$2" | sed 's/ /%/g' wget $url

3
如何在管道命令/程序链中使用监视命令
我通常使用watchlinux实用程序每n秒重复观察一次命令的输出,例如watch df -h /some_volume/ 但是我似乎无法使用watch一系列管道命令: $ watch ls -ltr|tail -n 1 如果我这样做的话,watch实际上ls -ltr是在监视并且输出正在传递给tail -n 1它,什么也不会输出。 如果我尝试这样做: $ watch (ls -ltr|tail -n 1) 我懂了 $ watch: syntax error near unexpected token `ls' 并且以下任何一项由于某种原因而失败: $ watch <(ls -ltr|tail -n 1) $ watch < <(ls -ltr|tail -n 1) $ watch $(ls -ltr|tail -n …
50 linux  bash  pipe  watch 

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.