shell命令是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell命令是啥相关的知识,希望对你有一定的参考价值。

参考技术A 分类: 电脑/网络 >> 软件
解析:

shell不是一个程序.他大意是指对系统的操控权,一个操控接口,

shell的概念是从Unix继承下来的

shell是分等级的,所以就有了提升权限的概念

Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。现在延伸进WINDOWS。

在VB中Shell函数用以执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。

语法

Shell(pathname[,windowstyle])

Shell 函数的语法含有下面这些命名参数:

部分 描述

pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。

Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。

windowstyle 命名参数有以下这些值:

常量 值 描述

vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。

VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。

VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。

VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。

VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。

VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。

说明

如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。

注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。

2.Shell 函数示例

本示例使用 Shell 函数来完成一个用户指定的应用程序。

' 将第二个参数值设成 1,可让该程序以正常大小的窗口完成,并且拥有焦点。

Dim RetVal

RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' 完成Calculator。
参考技术B

Shell是一个作为用户与系统间接口的程序,它允许用户向操作系统输入需要执行的命令。这点与Windows的命令提示符和DOS命令类似,但Linux的shell的功能更强大。Windows现在也有了强大的Powershell。
Shell仿佛是一个接口,出于安全和方便,尽可能利用它进行操作,避免直接操纵底层的内核。
参考资料:《Linux程序设计》

当我们将命令放在美元符号和括号内时,shell 中的含义是啥: $(command)

【中文标题】当我们将命令放在美元符号和括号内时,shell 中的含义是啥: $(command)【英文标题】:What does it mean in shell when we put a command inside dollar sign and parentheses: $(command)当我们将命令放在美元符号和括号内时,shell 中的含义是什么: $(command) 【发布时间】:2013-08-01 20:08:14 【问题描述】:

我只想了解 shell 中的以下代码行。它用于获取当前工作目录。我知道 $(variable) 名称返回变量名称中的值,但 $(command) 应该返回什么?执行命令后是否返回值?在这种情况下,我们可以使用` 来执行命令。

CWD="$(cd "$(dirname $0)"; pwd)"

在不同版本的shell中也可以从以下代码行中获取相同的输出

DIR="$( cd "$( dirname "$BASH_SOURCE[0]" )" && pwd )"

我无法理解$(cd..$(dirname 的含义。

谁能帮我弄清楚这个命令是如何执行的?

【问题讨论】:

这是一个关于$()``的优缺点的问题:***.com/questions/9449778/… 【参考方案1】:

$$HOME 的使用给出了 HOME 的值。像$(echo foo) 一样使用$ 意味着运行子shell 中括号内的任何内容并将其作为值返回。在我的示例中,您会得到 foo,因为 echo 会将 foo 写入标准输出

【讨论】:

是的; $(...) 是一种比尝试使用反引号更好的方法来编写命令。考虑写:gcclib=$(dirname $(dirname $(which gcc)))/lib 使用反引号。甚至在您遇到在 Markdown 中执行此操作的困难之前,它就更难了,因为您必须转义嵌套命令的反引号,而 $(...) 符号则不需要。 技术上,$(echo foo) 创建一个命令替换,而不是一个子shell。当前的另一个答案是正确的。我认为命令替换是在子 shell 中运行的,但它们仍然是不同的概念。 @trysis - 命令替换definitely runs in a subshell,所以值得注意。 我知道反引号产生与 $() 相同的结果,但区别纯粹是装饰性的吗?除了 $() 更易读之外,是否有理由使用一个与另一个? “像 $(echo foo) 这样使用 $ 意味着在子 shell 中运行括号内的任何内容并将其作为值返回。”...这令人困惑,因为此命令$(echo foo) 将尝试运行括号中返回的内容,它将首先运行echo foo,然后尝试运行foo,这会给出错误【参考方案2】:
DIR="$( cd "$( dirname "$BASH_SOURCE[0]" )" && pwd )"

谁能帮我弄清楚这个命令是如何执行的?

让我们看看命令的不同部分。 BASH_SOURCE 是一个包含源文件名的 bash 数组变量。所以"$BASH_SOURCE[0]" 会返回脚本文件的名称。

dirname 是 GNU coreutils 提供的一个实用程序,用于从文件名中删除 最后一个组件。因此,如果您通过说bash foo 执行脚本,"$( dirname "$BASH_SOURCE[0]" )" 将返回.。如果你说bash ../foo,它会返回..;对于bash /some/path/foo,它会返回/some/path

最后,整个命令"$( cd "$( dirname "$BASH_SOURCE[0]" )" && pwd )" 得到包含被调用脚本的绝对目录。

$(...) 允许命令替换,即允许命令的输出替换命令本身并且可以嵌套。

【讨论】:

很抱歉迟到了 3 年,但您能否解释一下为什么该声明有效?你说dirname返回执行文件的路径(相对于当前工作目录或绝对路径),cd将密码更改为该目录,pwd打印出当前工作目录的绝对路径。但是为什么&& 会加入他们呢?如果cd 失败,DIR 会保留什么? @Christian, &&cd 失败时阻止pwd 运行,这样DIR 将是空的,而不是目录不正确。

以上是关于shell命令是啥的主要内容,如果未能解决你的问题,请参考以下文章

shell中,awk命令的$0是啥意思?

Linux里面shell里面fi命令作用是啥?

shell是啥意思阿!!!

请问linux把shell的信息全部输出到文本文件的命令是啥?

linux中Shell历史命令记录文件的路径是啥?

shell中 wc命令 的-m 参数是啥意思? 网上只查到- c,- l 和- w的。