Questions tagged «shell»

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

3
仍然有/ bin / sh二进制文件的系统吗?
/bin/sh,创建于1977年的Bourne shell曾经是Unix系统的默认shell。 时至今日,该文件仍然存在,但主要是指向系统上安装的默认POSIX兼容shell的符号链接: 在RHEL / CentOS上,它指向/bin/bashBourne Again shell 在Ubuntu Linux上,它指向/bin/dashDebian Almquist shell 在Debian上它指向/bin/dash(6.0及更高版本;较旧的Debian版本将其指向/bin/bash) 这让我很好奇:有没有一个Unix系统或Linux发行版,仍然提供了一个二进制的/bin/sh?



2
$ {PATH:+:$ {PATH}}是什么意思?
我最近在cygwin个人资料中注意到了以下内容: /usr/local/bin:/usr/bin${PATH:+:${PATH}} 这是什么意思?为什么不只是$ PATH?这是否是“如果$ PATH存在,然后添加:$ PATH”?我的目的是交换订单并将cygwin路径放在Windows路径后面。过去我会 $PATH:/usr/local/bin:/usr/bin 但这使我感到困惑。也许我应该做 PATH="${PATH:+${PATH}:}/usr/local/bin:/usr/bin" 在$ PATH的末尾附加:?



3
从Shell重命名当前目录-可以吗?
是否可以从外壳中重命名当前工作目录(在我的特殊情况下为Bash)?如果我尝试以简单的方式执行此操作,则会导致错误: nathan@nathan-desktop:/tmp/test$ mv . test2 mv: cannot move ‘.’ to ‘test2’: Device or resource busy 还有另一种方法可以在不更改当前目录的情况下执行此操作吗?我意识到可以轻松地通过更改到父目录来完成此操作,但是我很好奇是否有必要。毕竟,如果我从另一个外壳程序重命名目录,那么以后仍然可以在原始外壳程序中创建文件。
24 shell  rename 

3
如何将“时间”输出和命令输出重定向到同一管道?
假设我有一个名为的二进制文件foo。 如果我想将输出重定向foo到其他进程bar,我可以写./foo | bar。 另一方面,如果我想对timefoo进行重定向,然后重定向其输出,则time可以编写time (./foo) | bar。 我的问题是,我如何将输出的内容粘贴到输出time的末尾foo并通过同一管道传输? 以下解决方案不是我想要的解决方案,因为它启动了流程的两个单独实例bar,而我希望将单个共享管道连接到的单个实例bar。 time (./foo | bar) | bar 对于任何好奇的人,不想启动两个实例的bar原因是因为它bar可以是网络客户端,所以我希望将定时信息http POST作为与过程输出相同的消息的一部分发送到服务器。

4
以bash开头:-lt和-gt参数
我从bash开始,发现以下内容: if test $first -lt $second then echo $first is lower than $second else if test $first -gt $second then echo $first is higher than $second else echo $first and $second are equals fi fi 对于阅读脚本并执行它,我知道它的作用,但不知道-lt和-gt的作用。 有人可以告诉我这种“工具”的名称是什么,它们(-lt和-gt)的作用是什么?谢谢!
24 bash  shell  test 

8
如何获取另一个进程的环境变量?
如果我检查/proc/1/environ一下,可以看到进程1的环境变量的以空字节分隔的字符串。我想将这些变量带入当前环境。是否有捷径可寻? 该proc手册页给我一个片段,这有助于将打印出每个环境变量一行一行地的基础(cat /proc/1/environ; echo) | tr '\000' '\n'。这可以帮助我验证内容是否正确,但是我真正需要做的是将这些变量输入到当前的bash会话中。 我怎么做?

1
查找并rsync?
我希望能够搜索超过14天和超过10k的文件,而不是将那些找到的文件rsync到目的地。 有没有办法组合这两个命令? find ./ -mtime +14 -size +10k rsync --remove-sent-files -avz /src /dest
24 bash  shell  find  pipe  rsync 

2
如何记录每个键入的命令
您如何记录有人输入到Shell中的每个命令? 我是在保护自己的基础上询问您是否已登录到他人的服务器并且出现故障,或者是否有人(有意或恶意地)登录到您的服务器。 即使新手也能够分流历史与unset history或创建一个新的外壳,以隐藏自己的踪迹。 我很好奇Linux高级管理员如何跟踪已输入的命令/对系统所做的更改。


8
Linux最通用的脚本语言是?
这个问题是从Stack Overflow 迁移过来的,因为可以在Unix&Linux Stack Exchange上回答。 迁移 7年前。 我们正在为Linux系统编写脚本,关于使用哪种最普遍的Linux当前脚本语言一直存在一些争论。Bash,SH,Posix?什么?

3
在Bash中调用subshel​​l的规则?
我似乎误解了Bash创建子shell的规则。我认为括号总会创建一个子外壳,该子外壳将作为其自身的进程运行。 但是,事实并非如此。在代码片段A(如下)中,第二条sleep命令未在单独的外壳程序中运行(由pstree另一个终端确定)。但是,在代码片段B中,第二个sleep命令确实在单独的外壳中运行。这些代码段之间的唯一区别是第二个代码段在括号内有两个命令。 有人可以解释一下创建子外壳的规则吗? 代码片段A: sleep 5 ( sleep 5 ) 代码片段B: sleep 5 ( x=1 sleep 5 )

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.