Questions tagged «bash»

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

3
ssh <host>是登录shell,但是ssh <host> <command>不是吗?
我注意到,当我使用ssh &lt;host&gt; &lt;command&gt;语法直接在SSH主机上运行命令时,看到的.bashrc是.bash_profile(或.profile)的输出,但看不到。 例如,如果我将以下命令放在两个文件的顶部, echo ${BASH_SOURCE[0]} 和手动来源.bash_profile(.bashrc依次来源),我将看到 $ . .bash_profile .bash_profile .bashrc 如果使用ssh &lt;host&gt;命令的形式通过SSH远程登录到此计算机,则这与我看到的输出相同。(如果我.bash_profile暂时存放在其他地方,则这两行都不会被回显。) 但是,如果我直接在远程计算机上以的ssh &lt;host&gt; &lt;command&gt;形式执行命令ssh,则输出如下所示: $ ssh &lt;host&gt; echo foo /home/rlue/.bashrc foo 我的理解是.bash_profile和之间的区别.bashrc是,前者用于登录shell,而后者用于交互式非登录shell。 我得出以下结论: ssh &lt;host&gt;仅来源.bash_profile,而 ssh &lt;host&gt; &lt;command&gt;仅来源.bashrc,这意味着 前者是登录外壳,而后者不是。 这些结论正确吗?为什么将其ssh &lt;host&gt; &lt;command&gt;视为交互式非登录外壳?SSH是否仍然登录到远程计算机以执行命令?


2
“杀死%1”中的%1是什么意思?
我知道$!存储最后一个(后台)进程的pid,但这是什么%1意思?我经常将其与一起使用kill,并且具有与相同的效果kill $!。有人可以给我提示吗?(这么小的字词很难用Google搜索:-/)
12 bash  kill 

5
如何查找文件及其总大小?
我想查找一系列文件(基于通配符表达式)并总计其磁盘使用情况。 像这样: $ find . -name 'flibble*' -ctime +90 -exec du -sh {} \; 2.1G ./flibble_116.log 2.1G ./flibble_83.log 2.1G ./flibble_211040_157.log 2.1G ./flibble3747_51.log 这项工作。但这不会产生我想要的结果。它列出了每个文件所使用的空间,并find在它们之间进行迭代。 我想要的是du找到的所有文件的总数。
12 linux  bash 

1
Heredoc中的新行在文件中消失
我在文件中回显了一个Heredoc,但是换行符丢失了 运行此脚本 #!/bin/bash NAME="$1" mkdir -p $NAME FILE=$(cat &lt;&lt;SETVAR name = "$NAME" type = "test" SETVAR ) echo $FILE &gt; $NAME/$NAME.txt 使用arg:foo,将导致foo / foo.txt中的文件包含 name = "foo" type = "test" 有任何想法吗?谢谢
12 bash  newlines 



5
如何在shell中测试变量是否等于数字
我有这个无效的shell脚本。 输入: Server_Name=1 if [ $Server_Name=1 ]; then echo Server Name is 1 else echo Server Name is not 1 fi 输出: Server Name is 1 但是,如果我改变了Server_Name=2,输出是: Server Name is 1 当我更改Server_Name为时2,我想说:Server Name is 2。 我知道这是if [ $Server_Name=1 ];一部分。 我如何解决它?


3
无法在tmux中启动应用程序
当我尝试从tmux启动Sublime Text或SourceTree时出现此错误: $ subl Unable to launch Sublime Text 2 $ stree Unable to open SourceTree 似乎我无法打开os x应用程序: $ open MPlayerX.app LSOpenURLsWithRole() failed with error -10810 for the file /Applications/MPlayerX.app. 我正在使用Yosemite OS X 10.10(14A388a),iTerm 2和zsh,tmux 1.0a。使用bash有同样的问题。知道发生了什么事吗?

1
我可以在bash中创建一个自定义的“目录别名”,如“〜”吗?
在bash中,我可以cd ~使用任何命令进入我的主目录并实际参考我的主目录~。 我可以创建新的自定义“目录别名”(?)来引用其他目录吗?假设的例子: make_alias "~~" /mnt/photon/work/foo_project/ cp ~/home.png ~~/set_8/home_4.png 如果可以的话怎么办?如果不能,是设计还是为什么呢? 很高兴:在哪里以及如何~设置并绑定到这个“〜”?
11 bash 


3
Windows 10 bash和mintty
我刚刚在Windows 10中安装了新的Linux子系统。访问Ubuntu存储库真的很不错,但我绝对讨厌默认的终端程序。Cygwin带有MinTTY,它非常好用,效果很好,但我找不到MinTTY的独立包。有没有办法在启动任何快捷方式时将MinTTY作为WSL的默认终端? 编辑:要清楚,我不想安装Cygwin。我想使用新的Linux子系统及其bash shell,但我想使用mintty作为我的终端。


5
并行外壳循环
我想处理许多文件,并且由于这里有很多核心,所以我想并行执行: for i in *.myfiles; do do_something $i `derived_params $i` other_params; done 我知道一个Makefile 解决方案,但是我的命令需要将这些参数从shell列表中删除。我发现的是: &gt; function pwait() { &gt; while [ $(jobs -p | wc -l) -ge $1 ]; do &gt; sleep 1 &gt; done &gt; } &gt; 要使用它,所有要做的就是在作业和pwait调用之后放置&,该参数给出并行进程的数量: &gt; for i in *; do &gt; do_something $i &amp; &gt; …

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.