Questions tagged «shell»

Shell是Unix的命令行界面。您可以交互地在外壳程序中键入命令,也可以编写脚本来自动执行任务。使用此标记可解决适用于/ bin / sh和大多数兼容shell(ash,bash,ksh,zsh等)的问题。对于有错误的Shell脚本,请在此处发布之前在http://shellcheck.net中对其进行检查。

5
为什么回声会忽略我的引号字符?
这个问题是从Server Fault 迁移过来的,因为可以在Unix&Linux Stack Exchange上回答。 迁移 8年前。 该echo命令未包含我提供的完整文本。例如,如果我这样做: $ echo ' echo PARAM=` grep $ARG /var/tmp/setfile | awk '{print $2}' ` ' 它输出: echo PARAM=` grep $ARG /var/tmp/setfile | awk {print } ` '我的echo命令中的单引号()不包括在内。如果我改用双引号: $ echo " echo PARAM=` grep $ARG /var/tmp/setfile | awk '{print $2}' ` " echo根本不输出任何东西!为什么在第一个示例中省略单引号而在第二个示例中不输出任何内容?如何获得与输入内容完全相同的输出?
24 shell  quoting  echo 

16
bash的“书签”
浏览多层嵌套目录通常很麻烦。在Firefox上,这很容易,因为它们具有书签。因此,我想对文件添加书签的方法是键入: $ go --add classes "repo/www/public/util/classes" 然后,要转到该目录,请输入: $ go classes 以前,我使用符号链接来实现类似的目的,但是我不想弄乱自己的主目录。还有许多其他功能可能被证明是有用的。例如,我希望能够开始键入go cl,然后点击制表符以自动完成。有时我签出了一个存储库的多个副本,因此该程序允许我创建多个上下文并相对于上下文基础目录设置书签会很有用。 因此,在我开始拼凑自己的一组脚本之前,已经有这样的东西吗?
24 bash  shell 

1
有没有一种方法可以重定向程序的输出并将其输出到stdout?
好的。如果我想将程序的输出重定向到文件,请执行以下操作 prog > file 如果我想将stdout和stderr都重定向到该文件,那么我会做 prog > file 2>&1 如果您希望输出到文件中,这一切都很好。但是,如果您希望输出转到文件中却仍然转到stdout / stderr,该怎么办?因此,输出保存在文件中,但是当程序正在运行时,您仍然可以在控制台上看到它。有没有办法做到这一点?如果是这样,怎么办?

4
在zsh和bash之间共享别名和PATH设置
我通常使用的外壳是zsh。我有一些别名,可以在ls和程序中启用颜色grep。我还设置了自定义路径,以便可以在非标准位置(例如在中~/bin/)执行程序。 我不会将root的shell更改为zsh,但是我想共享这些设置,以便root也可以拥有它。我发现这zsh不是采购/etc/profile。我可以在中获取它/etc/zsh/zprofile,但我想使用其他更“适当”的方式。
24 shell  bash  zsh  path  alias 

8
当文件已经在两面时,有什么方法可以同步目录结构?
我有两个具有相同文件的驱动器,但是目录结构完全不同。 有什么办法可以“移动”目标端的所有文件,使其与源端的结构相匹配?也许有脚本? 例如,驱动器A具有: /foo/bar/123.txt /foo/bar/234.txt /foo/bar/dir/567.txt 而驱动器B具有: /some/other/path/123.txt /bar/doo2/wow/234.txt /bar/doo/567.txt 有问题的文件很大(800GB),所以我不想重新复制它们;我只想通过创建必要的目录并移动文件来同步结构。 我在考虑一个递归脚本,该脚本将在目标位置找到每个源文件,然后将其移动到匹配的目录,并在必要时创建它。但是-那超出了我的能力! 这里给出了另一个优雅的解决方案:https : //superuser.com/questions/237387/any-way-to-sync-directory-structure-when-the-files-are-already-on-both-sides/238086

4
在bash脚本中回答是
我正在尝试git clone通过bash脚本进行处理,但是第一次运行该脚本并且不知道服务器,但该脚本失败了。我有这样的事情: yes | git clone git@github.com:repo/repoo.git The authenticity of host 'github.com (207.97.227.239)' can't be established. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. Are you sure you want to continue connecting (yes/no)? 但是它忽略了yes。您知道如何强制git clone将密钥添加到已知主机吗?
24 shell  ssh  scripting  git 

4
经过一定时间后运行命令?
如果执行的过程很长,有什么方法可以执行一些基于时间的命令? 例如,我正在运行一个非常长的过程,大约需要10分钟。 5分钟后,我想运行一个单独的命令。为了说明起见,单独的命令可以是:echo 5 minutes complete (注意:我不希望命令完成方面的进展,而只是在指定间隔后执行命令。) 可能吗?

15
'ls -1':如何列出不带扩展名的文件名
ls -1 像这样列出我的元素: foo.png bar.png foobar.png ... 我希望它没有.png类似的列出: foo bar foobar ... (目录仅包含.png文件) 有人可以告诉我grep在这种情况下如何使用吗? 目的:我有一个文本文件,其中列出了所有名称而没有扩展名。我想制作一个脚本,将文本文件与文件夹进行比较,以查看缺少哪个文件。
24 shell  grep  ls 

5
我正在使用`&`:为什么该进程未在后台运行?
我知道我可以追加&命令以在后台运行该过程。 我正在SSH进入Ubuntu 12.04机器并使用$python program.py &- 运行python程序,但是当我关闭终端窗口时,我收到一条消息,说关闭终端会终止正在运行的进程。 为什么是这样?我正在使用&符在后台运行该过程。无论我是否使用SSH,如何才能使其运行?

6
如何在外壳中向.bash_profile / .profile / bashrc添加功能?
我有一个将纪元时间转换为日期的函数。这是定义 date1(){ date -d @$1 } 我希望能够写: $ date1 xxxyyy 其中xxxyyy是我传递给函数的参数,因此我可以获得相应的日期。我明白我必须将它添加在任.bash_profile,.profile或.bashrc然后它来源: $ source file 但是,我不确定要放入哪个文件。目前,我在中.profile。但是要运行它,我必须source .profile每次都做。 理想情况下,当计算机像环境变量一样启动时,它应该使它可用。
24 bash  shell  function  profile 

6
mkdir -p用于文件
这个问题是从Stack Overflow 迁移过来的,因为可以在Unix&Linux Stack Exchange上回答。 迁移 6年前。 mkdir -p将创建一个目录;它还将根据需要创建父目录。 文件是否存在类似的命令,该命令将根据需要创建文件和父目录?
24 shell  directory 



4
以多种表达方式进行就地辩论
我正在尝试通过使用替换文件中的多个单词 sed -i #expression1 #expression2 文件 Something 123 item1 Something 456 item2 Something 768 item3 Something 353 item4 输出(所需) anything 123 stuff1 anything 456 stuff2 anything 768 stuff3 anything 353 stuff4 试用 我可以使用sed -i2次获得以下输出。 sed -i 's/Some/any/g' file sed -i 's/item/stuff/g' file 我可以用任何可能的方式使它成为单个就地命令吗? sed -i 's/Some/any/g' -i 's/item/stuff/g' file 当我尝试上述代码时,它将s/item/stuff/g作为文件并尝试对其进行处理。


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.