Questions tagged «bash»

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

1
使用封装命令创建.bashrc函数
我正在尝试创建一个函数.bashrc来快捷我的MAMP命令。我想做这样的事情: mamp config 打开MAMP的httpd.conf文件进行编辑。 mamp restart 重新启动MAMP服务器。 我创建了一个函数.bashrc调用mamp(): function mamp { if [$1 == "config"]; then nano /Applications/MAMP/conf/apache/httpd.conf fi if [$1 == "restart"]; then /Applications/MAMP/Library/bin/apachectl restart fi } 但这似乎不起作用。 我收到这个错误 -bash: [config: command not found
2 macos  bash  bashrc 

3
我需要在PS *中使用哪些转义码来确保终端在shell提示符下恢复正常设置?
有时我偶然cat会有一些二进制数据; 有时一些ncurses程序崩溃 - 由于充足的原因终端可能最终处于不良状态,需要手动reset。这种情况经常发生。 这种糟糕的状态可能是无回声,或将所有东西都转换成中国垃圾或许多其他东西。 有什么简单的方法可以确保当shell恢复控制时终端(没有硬重置,清洁屏幕等)设置被恢复? 它是bash,Terminal.app但我猜这个问题非常普遍。

1
与浏览器一起执行SSH端口转发
我已经在Pale Moon中通过SSH成功​​建立了动态​​端口转发,并ssh-forward在.bashrc中添加了别名。 现在我必须执行这两个ssh-forward并palemoon通过此隧道访问Internet。 我实际上想要组合那些只需执行palemoon的命令,并为它编辑.desktop文件,以便在单击时执行这两个命令。 这也涉及ssh-forward在后台运行,从而为它创建一个PID。 设置它的最佳方法是什么?我特意寻找一个快速的终端解决方案,我只需点击图标,或从终端执行palemoon。

3
如何在OS X中从终端打开Goog​​le Chrome中的非http网址(Chrome扩展程序)?
我正在尝试添加一个快捷方式来打开Chrome,其中包含来自bash脚本的非http网址。这就是我所拥有的: /usr/bin/open -a "/Applications/Google Chrome.app" 'chrome-extension://hgmloofddfasdfasdffgcellkdadsfadsfbjeloo/RestClient.html#RequestPlace:saved/2' 由于参数不以“http”开头,因此Chrome会尝试将其作为文件打开,这当然不存在,也不是我想要的。 有没有办法让Chrome将其视为网址? 编辑: @mjb - 那差不多了。谢谢。 扩展(Advanced Rest Client)在本地安装。但是,将它作为文件加载并使用“chrome-extension://”加载它会有所不同。当我将其作为文件加载时,我不会获得已保存为应用程序一部分的数据(我的其余请求)。没有它,它就没用了。 这是我从bash运行的: /usr/bin/open -a /Applications/Google\ Chrome.app /Users/me/Library/Application\ Support/Google/Chrome/Default/Extensions/hgmloofdphfgcellkdfbfbjeloo/3.1.7_0/RestClient.html 它加载我的应用程序,它出现 - 只是没有我的上下文/数据。当我点击Chrome中的扩展程序时,它会使用以下网址: chrome-extension://hgmloofdphfgcellkdfbfbjeloo/RestClient.html#RequestPlace:saved/2 请注意,最后的哈希没有区别。UUID与本地目录相同。 我也尝试加载它: https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffgcellkdfbfbjeloo/RestClient.html 这只会打开此应用的Chrome网上应用店页面。 我想要使​​用的数据确实出现在此扩展的数据库文件中,该文件位于: /Users/me/Library/Application Support/Google/Chrome/Default/databases/chrome-extension_extension_hgmloofddffdnphfgcellkdfbfbjeloo_0/5 有任何想法吗?

1
在cygwin中更新bashrc后,光标从列0开始而不是在提示后
问题是,如果我在bashrc中更新PS1,我会发现默认情况下光标将位于列0而不是提示符后,并且如果我键入任何内容,它将开始覆盖提示符。我通过删除bashrc文件,启动新会话并在终端中输入PS1字符串来手动测试了相同的PS1字符串,它工作得很好。 我找到了这个问题的答案,但花了我整整一整天,经过大量的搜索,我没有找到确切的答案。基本问题是bashrc文件格式。在我的情况下,文件是DOS格式,行尾两个字符。解决方法是将文件从DOS转换为UNIX格式,此后开始工作。但是我不知道文件格式到底是怎么引起的,即使整个文件中只有“ PS1 ='XXX'”,并且没有任何新行,它也无法正常工作。 以下链接提供了有关如何转换文件的信息:http : //cs.nyu.edu/~yap/prog/cygwin/FAQs.html#bashrc
2 bash  cygwin  bashrc 

1
如何从剪贴板管道到Firefox?
这可能是一个业余问题。但是管道有问题。我想通过终端通过管道将剪贴板发送到Firefox。在我的剪贴板中是一个https://www.google.com之类的URL 。比我想要像打开Firefox firefox https://www.google.com 现在,我想用剪贴板中的内容替换Google URL。我试图用管道输送它,例如: xclip -o -selection clipboard | firefox xclip -o -selection clipboard > url ; firefox url xclip -o -selection clipboard > url ; cat url | firefox /dev/fd/0 所有三个都不工作。 关于如何解决这个问题有什么建议吗?

1
查找和重命名文件
我大约有1000个文件包含*名称中的字符。我需要找到这些文件,并替换*了-。我正在使用HP UX v11。我正在使用以下命令 find . -type f -name '*\**' -exec bash -c 'f="$1"; mv "$f" "${f//\*/-}"' - '{}' \; 有人告诉我它可以工作,但是对我来说,它会将完整文件重命名为,-而不是替换*。 GNU bash版本2.04.0(1)-发行版(hppa2.0w-hp-hpux11.00)


2
如何通过.ssh / config中的主机进行迭代
在某些远程服务器上,我使用Git来使常用脚本保持同步。我想拥有一个本地脚本,可以触发该脚本来更新一个域范围内的所有远程服务器。这是我的伪代码: for every Host in .ssh/config do if Hostname is similar to *.uberspace.de ssh Host git -C bin pull fi done 我将如何使用bash脚本优雅地做到这一点?
2 bash  ssh 

0
无法恢复以root身份运行的编辑器
多年以来,当我一直在通过SSH连接工作时,我将运行sudo vi ...以编辑配置文件。如果需要在命令行上执行某些操作,则fg可以按Ctrl + Z挂起编辑器,执行操作,然后返回到它。 但这不再按预期工作(据我所知,截至Ubuntu 14.04)。编辑器暂停得很好,但是我第一次尝试恢复时好像没有任何反应(或者它可能会暂时恢复,然后又会暂停)。如果fg第二次尝试,编辑器似乎会继续,但是我按的任何键只会在控制台上回显。但是,此时按Ctrl + Z确实会挂起它,并使我返回外壳。 我不知道如何重新获得对编辑器的控制权。我通常只需要按sudo kill进程ID(它kill %1会抛出“不允许的操作”,这是我所期望的,因为编辑器以root身份运行)。 请不要建议使用screen和/或分开使用终端,因为我已经这样做了。我想知道是否有解决此特定问题的方法,因为按Ctrl + Z是一种根深蒂固的习惯,以至于我一直在不加思索地去做。Ubuntu最近更改了某些安全模型吗? 更新 我仍然没有弄清楚这个问题,但是我认为这与挂起嵌套进程有关。我不确定它是否特定于sudo。我一直无法可靠地复制它,但这是最常见的序列: sudo vifilename Ctrl+ Z暂停vi vianother-filename Ctrl+Z fg 1尝试恢复以root身份运行的vi。此时,shell会简单地说[1]+ Stopped sudo vi filename。fg 1再次尝试似乎可以恢复vi,但是任何击键都会简单地回显到控制台。 似乎正在发生的事情是,当我暂停时sudo vi,sudo和vi进程都停止了。当我fg第一次时,仅sudo恢复。当我fg第二次时,sudo停止了,但是vi恢复了。在正常情况下,应恢复两个过程。
2 linux  bash  process  sudo 

2
bash或bash_profile JAVA_HOME永久导出
我试图导出JAVA,用这个 JAVA_HOME=/etc/jdk1.7.0_07/ export JAVA_HOME export PATH=$PATH:$JAVA_HOME/bin 似乎在关闭控制台后必须再次执行此操作一段时间。如何永久安装它。
2 java  linux  bash 

2
用vim中的bash执行脚本
我试图让vim执行我正在用键映射(例如ctrl+)编辑的脚本x,所以我在vimrc :map <C-x> :!exec_file %<CR> 要将文件名传递给我编写的脚本,该脚本可解析扩展名并调用适当的解释器,到目前为止,此方法效果很好。 但是,我想知道是否可以bash直接使用脚本名称来调用它并执行它,因为我编辑的大多数脚本都有一个shebang行,所以我尝试使用此映射: :map <C-x> :!bash %<CR> 但这不起作用,是否可以通过将其名称传递给bash来执行脚本?
2 bash  vim 

1
创建别名-在Bash中?
如何-在Bash中创建一个别名?没有下列作品: alias -='cd -' alias \-='cd -' alias '-'='cd -' 错误: bash: alias: -=: invalid option alias: usage: alias [-p] [name[=value] ... ]

2
使用bash脚本批量折叠文本文件
我很难做一些简单的事情。我大约有2000个.txt文件,这些文件由单行数字组成。我想使用fold命令将单行折叠为多行的一列,并使用此新的折叠版本覆盖原始文件。我的尝试: #!/bin/bash for i in *.txt ; do fold -w 1 $file > $file done 不起作用 救命?谢谢。

1
Anaconda不会在Linux中安装
我正在尝试在运行最新版本的Elementary OS的笔记本电脑上安装Anaconda。我按照官方网站上的步骤进行操作。http://docs.anaconda.com/anaconda/install/linux/但是,当我到达流程结尾并重新启动终端时,出现以下几行: bash: /home/anton/.bashrc: line 171: syntax error near unexpected token `added' bash: /home/anton/.bashrc: line 171: esac# added by Anaconda3 5.3.0 installer' 当我键入anaconda-navigator希望它能打开时,出现错误: anaconda-navigator: command not found 我是Linux的新手,您的帮助将不胜感激。
2 linux  bash 

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.