Questions tagged «shell»

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

8
Linux中基于文本的超轻量级编程环境的建议设置
我正在寻找针对我的特定需求的安装建议。自从上大学以来,我并没有做太多的Linux,并且想重新回到它的爱好。我有一些功能不太强大的硬件(512 MB内存,单核)。我想通过基于文本的shell和编辑器(例如vim)来完成所有操作。我的目标是永远不要触摸鼠标。 我需要具有一次打开多个外壳的能力,一个运行Web服务器,一个运行vim,一个运行我的应用程序构建管道,另一个运行临时外壳命令(例如wget,grepping和untarring等)。我需要能够打开新外壳并使用键盘快速在外壳之间切换。 但是,即使我需要多个外壳,也不需要图形桌面环境。我永远不想动动鼠标。我的目的之一是迫使自己学习执行各种任务的命令行方式。 我还希望能够利用大型监视器运行vim,并在其中浸入数百列。 这可能吗?

3
为什么运行新的shell时$ SHELL不变?
$ echo $SHELL /bin/bash $ /bin/ksh93 $ echo $SHELL /bin/bash $ file /bin/ksh93 /bin/ksh93: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped $ getent passwd test111 test111:x:1008:1008:,,,:/tmp:/bin/ksh93 $ ssh test@localhost test@localhost's password: $ echo $SHELL /bin/ksh93 $ bash $ echo $SHELL …

8
如何仅删除目录的内容?
我在一个文件夹中:/var/myfolder。 里面还有一些其他文件夹,例如:/var/myfolder/A/ /var/myfolder/B/ `/var/myfolder/C/etc。 每个文件中都有一些带有随机名称的文件。如何从内部所有文件夹中删除所有文件/var/myfolder? 结构(内部的所有目录,例如A,B,C等/var/myfolder)应保持完整。
14 shell  files 

3
将十进制打印为ASCII字符,我的命令未按预期输出
我想使用以下命令输出所有ascii字符的字符串 for i in `seq 32 127`; do printf "%c" $i; done 上面命令的输出是: 33333334444444444555555555566666666667777777777.............. 它是每个数字的第一个(从左到右)数字。 通过这个站点,我遇到了问题的答案如何在CLI中打印所有可打印的ASCII字符?,但是我仍然不明白为什么我的原始代码片段没有按预期输出ascii字符。

4
从ncurses应用程序调用的脚本输出中的转义序列
我目前正在我的家庭服务器上的tmux会话中将mcabber作为我的Jabber客户端(使用ncurses)运行。我在本地将iTerm2作为终端仿真器运行,它支持通过字符转义序列触发咆哮通知。 注意:echo此问题中的所有内容都类似printf %b,或echo -e在bash和GNU中工作echo。 例如,echo "\e]9;foobar\007"使iTerm2发送带有文本“ foobar”的Growl消息。 但是,在tmux会话中,转义序列会被吃掉。因此,\Ptmux可以像这样使用专有字符转义序列: echo "\ePtmux;\e\e]9;foobar\007\e\\" 这会在tmux会话中触发咆哮消息。 但是,当我在收到新消息时触发的mcabber事件脚本中使用此命令时,不会触发任何通知,就像将回声发送到错误的终端一样。 我想这与触发脚本的mcabber有关,它是一个ncurses应用程序,因此我普通bash脚本的输出丢失了,而iTerm 2却看不到它。 在回应发现的一些想法之前,我还尝试打电话给打sm而未成功 tput smcup echo "\ePtmux;\e\e]9;$FROM: $MSG\007\e\\" tput rmcup 我想这不起作用,因为问题不是切换回“真实终端窗口”,而是将输出直接定向到ncurses窗口。 关于这个有什么想法吗?

1
在带有管道的多行bash命令中的单独行上可读的注释?
使用管道创建Shell脚本并使用反斜杠继续行时,我想以健壮,可读和可移植的方式在单独的行上插入注释。 例如,给出以下未注释的多行命令(为清晰起见,从@DigitalRoss盗取): echo abc | tr a-z A-Z | sort | uniq ...从美学上讲,以下内容与我要完成的工作最接近,但是出于明显的原因,它不起作用...是的,我很清楚,这通常不值得评论: # Perform critical system task. # NOTE - An example of what does *not* work. echo abc | # Convert lowercase to uppercase. tr a-z A-Z | # Sort the results. sort | # Only show unique …
14 bash  shell  pipe 


2
如何在Ubuntu中使用Bash for sh
我正在安装一个巨大的程序,该程序具有作为rpm文件的资源。它卡在了 #!/bin/sh SCITEGICPERLBIN=`dirname $0` SCITEGICPERLHOME=`dirname $SCITEGICPERLBIN` if [ $SCITEGICPERLHOME == "." ] 显然,sh可以bash使用这种语法在Red Hat Linux中工作,但是会unexpected operator在Ubuntu中产生错误。 我无法将脚本更改bash为脚本来自rpm软件包。我可以提取并重新rpm打包程序包,但是可能有很多这样的脚本。 有没有一种方法可以将Shell默认值更改#!/bin/sh为as bash或其他任何可以处理[操作符的方法?

4
在某些情况下,bash(或其他shell)脚本中的空格数量确实很重要
有人告诉我空格在bash其他shell脚本中很重要,除非我知道自己在做什么,否则不要更改空格的存在。“改变存在”是指在两个非空格字符之间插入一个空格,或者在两个非空格字符之间删除一个空格,例如更改var="$val"为var ="$val",反之亦然。我想问一下 在shell脚本中使用单个空格或使用多个连续空格会有所不同吗?。 (当然,在引号中插入/删除空格会有所不同,例如从更改为echo "a b",echo "a b"反之亦然。我正在寻找除此琐碎示例以外的示例。) 我遇到了这个问题,但是那是关于在两个非空格字符之间添加和删除空格的问题,我知道很多例子会有所作为。 任何帮助,将不胜感激。如果可能,包括更多种类的贝壳。

3
带有set -e的Bash脚本不会在`…&&…`命令上停止
我使用set -e到的第一个错误停止bash脚本。 一切正常,除非我在以下命令中使用命令&&: $ cat script set -e cd not_existing_dir && echo 123 echo "I'm running! =P" $ $ ./script ./script: line 2: cd: not_existing_dir: No such file or directory I'm running! =P $ 和....相比: $ cat script set -e cd not_existing_dir echo "I'm running! =P" $ $ ./script ./script: …


1
exec 3 <&1做什么?
我知道exec可以在当前shell上进行I / O重定向,但是我只会看到类似的用法: exec 6&lt;&amp;0 # Link file descriptor #6 with stdin. # Saves stdin. exec 6&gt;&amp;1 # Link file descriptor #6 with stdout. # Saves stdout. 据此,我了解&lt;输入流,&gt;输出流。那怎么exec 3&lt;&amp;1办? PS:我从Bats源代码中找到了这个

5
使用mkdir创建许多目录
我想使用创建许多目录mkdir。每个目录名称将由一个前缀(一个字符串)和一个索引(一个整数)组成。假设我希望前缀为“ s”,索引范围为1到50。这意味着我想创建名为: s1,s2,... s49,s50 有没有一种方法可以自动使用mkdir?谢谢你的时间。
14 shell  directory 

5
列出目录中的X个随机文件
有没有一种方法可以使用标准Linux命令从目录中列出一组30个随机文件?(在中zsh) 这里描述的最佳答案对我sort不起作用(无法识别该选项-R)
14 shell  files  zsh 

1
我可以限制用户使用特殊程序吗?
是否可以添加用户并限制其运行特殊程序? 例如,该用户登录后,他只能打开Firefox才能使用Internet,并且该用户无法运行其他程序。 例如,在终端中,删除$ HOME之类的环境变量时将无法访问命令。 但是是否可以避免在图形外壳程序(例如Gnome)中运行程序?如果是,怎么办?

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.