Questions tagged «shell»

Shell是一种软件,它使用户通常可以通过在命令行中键入来与操作系统进行交互。

7
有没有类似功能的unix shell?
我(实际上)是函数式编程的新手(实际上只使用python与它联系),但对于shell环境中的一些列表密集型任务来说似乎是一个很好的方法。 我喜欢做这样的事情: $ [ git clone $host/$repo for repo in repo1 repo2 repo3 ] 是否有任何具有这些功能的Unix shell?或者也许是一些功能允许在python中轻松访问shell(命令,env / vars,readline等等)(想法是使用python的交互式解释器作为bash的替代)。 编辑: 也许一个比较例子会澄清。假设我有一个由dir / file组成的列表: $ FILES=( build/project.rpm build/project.src.rpm ) 我想做一个非常简单的任务:将所有文件复制到dist /并将其安装在系统中(它是构建过程的一部分): 使用bash: $ cp $ {files [*]} dist / $ cd dist && rpm -Uvh $(对于$ {files [*]}中的f;执行basename $ f; done)) 使用“pythonic …
19 shell  unix 

2
编写可在任何shell上运行的shell脚本(使用多个shebang行?)
我刚刚开始更深入地了解Shell脚本,而且我一直只是将我的脚本扔到一个文件中,对其进行标记chmod +x,然后完成/path/to/script.sh,然后让任何默认的解释器使用它,我认为这是zsh,因为那是我用我的壳。显然/bin/sh,即使我从zsh提示符执行脚本,这似乎也是默认设置,因为我开始在脚本中放入特定于zsh的内容,除非我运行,否则它会失败zsh /path/to/script.sh。 明确地说,这是我的问题: 当#!/path/to/shell开始没有shebang行()时,哪个shell执行脚本?我假设/bin/sh但无法确认。 在编写可在任何平台上运行的shell脚本方面,什么被称为“最佳实践”?(好的,这是开放式的) 如果zsh不可用,是否有可能编写尝试使用zsh并退回到bash的脚本?我已经尝试过放置两条shebang行,如下所示,但是bad interpreter: /bin/zsh: no such file or directory如果我在没有zsh的计算机上尝试,那只会出错。 #!/bin/zsh #!/bin/bash

5
如何在Linux下将文件切成给定大小?
我想通过蛮力来缩小文件的大小,也就是说,我不在乎其余的,我只想将文件切成一半,然后丢弃其余的。 首先想到的是Perl的truncate。我按照该页面上的示例进行操作,并且做的完全相同: seq 9 > test.txt ls -l test.txt perl -we 'open( FILE, "< ./test.txt" ) && truncate( FILE, 8 ) && close(FILE);' 但是文件仍然具有相同的大小: $ ls -lgG test.txt -rw-rw---- 1 18 2013-08-08 09:49 test.txt 我该如何进行这项工作?
19 linux  ubuntu  shell  perl 


6
如何“撤消”解压缩命令?
我使用“ unzip XXX.zip”解压缩了一个zip文件,不幸的是,我弄错了。 现在,我要删除“ unzip”生成的所有文件和目录。 我该如何撤消呢?
19 linux  shell 

6
为什么我不能用Shift +箭头键在Linux终端仿真器中突出显示文本?
这些是标准的文本编辑键盘快捷键,无论何时在终端仿真器以外的任何Linux应用程序中编辑文本时,我都会不断使用它们: 左右箭头可左右移动 Ctrl +箭头可移动整个单词 起点/终点移动到行的起点/终点 ctrl + c / ctrl + v复制/粘贴[某些终端可以使用shift-ctrl-C / shift-ctrl-V;这是一个很好的替代品] Shift +箭头突出显示文本 Shift + Ctrl +箭头突出显示整个单词 我从来没有发现过外壳程序与终端仿真器的组合,它允许此列表中的最后两项有效,这让我发疯。显然,终端仿真器支持突出显示(鼠标可以做到),并且它们支持将ctrl和shift键用作修饰符(它们可以用于将光标移动整个单词并分别大写字母; [edit:]它们甚至可以与shift-ctrl-C和shift-ctrl-V一起用于复制/粘贴,那么阻止此功能的问题是什么?我有几个问题: 这是我的终端仿真器还是我的shell(bash,尽管我愿意更改)的问题? 为什么终端仿真器/外壳不符合此通用标准? 如果有实际原因,它是古老且过时的,还是仍然与大量桌面 linux用户相关? 有什么解决方法吗? 我可以使用一些晦涩的程序来支持它吗? 修改gnome-terminal的来源以支持这一点是否可行? 我知道可以用鼠标复制/粘贴文本,这不是我要的。我在问为什么我无法在终端仿真器中使用键盘来完成这些操作。

3
为单个管道命令设置管道失败
我需要从非BASH脚本(即PHP脚本)执行许多管道外壳命令,如下所示: command1 | command2 | command3 因此,如果command1退出代码非零而失败,则其他命令也会失败。到目前为止,我想出的是: set -o pipefail && command1 | command2 | command3 但是,即使它在终端上运行正常,但是如果通过脚本执行,它也会产生此结果: sh:1:设置:非法选项-o pipefail

9
如何从OS X检索任意文件的绝对路径
我正在寻找一个可以在Bash中使用的简单命令,以找到OS X上文件的绝对和规范化路径(类似于Linux下的``readlink -f''`)。 以下示例bash会话描述了一种名为``abspath''的[虚拟]实用程序,该实用程序具有所需的行为: $ pwd /Users/guyfleegman $ ls -lR drwxr-xr-x 4 guyfleegman crew 136 Oct 30 02:09 foo ./foo: -rw-r--r-- 1 guyfleegman crew 0 Oct 30 02:07 bar.txt lrwxr-xr-x 1 guyfleegman crew 7 Oct 30 02:09 baz.txt -> bar.txt $ abspath . /Users/guyfleegman $ abspath foo /Users/guyfleegman/foo $ abspath …

10
命令提示符中的命令别名?
如何像在Windows中那样在Windows的命令提示符中创建命令别名bash? 我是doskey在论坛主题中找到的,所以我可以执行以下操作: doskey ls=dir /b ...现在该命令的ls行为有点像ls在Unix上。(我ls经常在中输入cmd,这甚至不好笑。) 但是,如何使它们在会话之间停留呢?下次我打开时,它消失了cmd.exe。(有类似的东西.bash_profile吗?)


3
如何检查另一个用户的ulimit并更改打开的文件?
我有一个以Gearman用户身份运行的进程,我想进行更改open files以避免出现此讨厌的错误: 错误2014-09-12 17:49:14.000000 [主要]接受(打开的文件太多)-> libgearman-server / gearmand.cc:788 如何在Ubuntu上以其他用户身份运行ulimit并更改打开的文件?我目前没有以Gearman身份登录,但我具有root访问权限。我尝试这样做: su gearman --shell /bin/bash --command "ulimit -n" 如此处的建议,但没有任何输出: $ su gearman --shell /bin/bash --command "ulimit -n" Password: $
18 shell  ulimit 

2
Shell SIGKILL键绑定
如何设置键盘绑定以将A发送SIGKILL到当前前台作业?我已经知道Ctrl+ C是SIGINT和Ctrl+ \是SIGQUIT。我想要一个更严格的选择。 有什么严重不建议的做法吗?

3
如何在命令行中使用正则表达式删除文件?
假设我有20个名为FOOXX的文件,其中XX是文件的编号,例如01、02等。 目前,如果要删除所有小于10的文件,这很容易,我只使用通配符,例如rm FOO0 * 但是,如果我要删除某个范围(例如13-15)中的特定文件,这将变得更加困难。 rm FPP [13-15]不起作用,问我是否要删除所有文件。Likewse rm FOO1 [3-5]希望删除所有以FOO1开头的文件 那么,删除这种文件范围的最佳方法是什么? 我已经尝试过使用bash和zsh,但我认为它们对于这样的基本任务没有太大区别吗?
18 linux  bash  shell  regex  zsh 

4
如何从命令行启动文件属性对话框?
使用ShellExecute可以很容易地以编程方式properties在指示Windows打开文件时指定动词,但是可以通过命令行或运行框来完成此操作吗? 理想情况下,我想在没有外部程序或脚本的情况下执行此操作。 似乎可以ShellExecute通过使用进行调用rundll32.exe,但并非没有正确的参数。


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.