Amazon Best VPN GoSearch

OnWorks 网站图标

bsd-csh - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 bsd-csh

这是命令 bsd-csh,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


长山壕 — 一个类似 C 语法的 shell(命令解释器)

概要


长山壕 [-bcefimnstVvXx[论点 ...]
长山壕 [-l]

商品描述


长山壕 是一个包含历史机制的命令语言解释器(见 发展历程
换人),作业控制设施(见 工作机会)、交互文件名和用户名
完成(见 文件 姓名 完成) 和类似 C 的语法。 它既用作
交互式登录 shell 和 shell 脚本命令处理器。

争论 名单 加工
如果 shell 的第一个参数(参数 0)是一个破折号('-'),那么这是一个登录 shell。
也可以通过使用以下命令调用 shell 来指定登录 shell -l 标记为唯一
论据。

其余的标志参数解释如下:

-b 此标志强制从选项处理中“中断”,导致任何进一步的 shell
参数被视为非选项参数。 剩下的参数不会是
解释为外壳选项。 这可用于将选项传递给 shell 脚本
没有混淆或可能的诡计。 shell 不会运行 set-user-ID
没有这个选项的脚本。

-c 命令从必须存在的(单个)以下参数中读取。 任何
剩余的参数放在 精液.

-e 如果任何调用的命令异常终止或产生非零值,shell 将退出
退出状态。

-f shell 将启动得更快,因为它既不会搜索也不会执行命令
从文件 .cshrc 在调用者的主目录中。 注意:如果环境
变量 HOME 未设置,默认为快速启动。

-i shell 是交互式的并提示输入它的顶级输入,即使它看起来没有
成为一个终端。 如果 shell 的输入和
输出是终端。

-l 外壳是登录外壳(仅适用于 -l 是唯一指定的标志)。

-m 阅读 .cshrc,无论其所有者和组如何。 这个选项很危险,应该
仅由 su(1)。

-n 命令会被解析,但不会被执行。 这有助于外壳的语法检查
脚本。 交互使用时,可以通过按 control-D 来终止 shell
(文件结束符),因为 出口 不管用。

-s 命令输入取自标准输入。

-t 单行输入被读取并执行。 反斜杠 ('\') 可用于转义
该行末尾的换行符并继续到另一行。

-V 导致 详细 变量要在之前设置 .cshrc 被执行。

-v 导致 详细 要设置的变量,具有回显命令输入的效果
历史替换后。

-X 导致 回音 变量要在之前设置 .cshrc 被执行。

-x 导致 回音 要设置的变量,以便命令在之前立即回显
执行。

处理标志参数后,如果参数保留但没有 -c, -i, -s-t
给出了选项,第一个参数被视为要执行的命令文件的名称
执行。 shell 打开这个文件,并保存它的名字以便可能的重新替换
'$0'。 由于许多系统使用标准的第 6 版或第 7 版外壳,它们的外壳
脚本与此 shell 不兼容,shell 将执行这样的“标准”shell
如果脚本的第一个字符不是井号 ('#'); 即,如果脚本没有
从评论开始。 剩余参数初始化变量 精液.

一个实例 长山壕 从执行文件中的命令开始 /etc/csh.cshrc 并且,如果这是
登录外壳, /etc/csh.login. 然后它执行来自 .cshrc 在主目录中
调用者的,如果这是一个登录 shell,文件 。登录 在同一个位置。 这是
典型的 CRT 用户放置命令 姿势 CRT 在他们的 。登录 文件,并且还
调用 预设(1) 那里。

在正常情况下,shell 将开始从终端读取命令,提示
'% .' 参数的处理和使用 shell 来处理包含命令的文件
脚本将在后面描述。

shell 重复执行以下操作:读取一行命令输入并
分解成“词”。 这个单词序列被放置在命令历史列表中,并且
解析。 最后执行当前行中的每个命令。

当登录 shell 终止时,它会执行文件中的命令 。登出 在用户家中
目录和 /etc/csh.logout.

词法 结构体
除了以下例外,shell 将输入行拆分为空格和制表符处的单词。
字符 '&'、'|'、';'、'<'、'>'、'(' 和 ')' 形成单独的单词。 如果加倍
'&&'、'||'、'<<' 或 '>>',这些对形成单个单词。 这些解析器元字符可能
成为其他词的一部分,或通过在它们前面加上
反斜杠 ('\')。 以“\”开头的换行符等效于空格。

包含在匹配的引号对中的字符串,'''、'`' 或 '"',构成单词的一部分;
这些字符串中的元字符(包括空格和制表符)不会形成单独的单词。
这些引用具有稍后描述的语义。 在成对的 ''' 或 '"' 内
字符,以“\”开头的换行符给出了真正的换行符。

当 shell 的输入不是终端时,字符“#”会引入注释
继续到输入行的末尾。 这种特殊含义在前面时被阻止
'\' 以及使用 '`'、''' 和 '"' 的引号。

命令
一个简单的命令是一个单词序列,其中第一个指定要执行的命令
执行。 一个简单的命令或一系列由“|”分隔的简单命令人物
形成管道。 管道中每个命令的输出都连接到
下一个。 流水线的序列可以用';'分隔,然后依次执行。
可以在不立即等待它终止的情况下执行一系列管道
在它后面加上一个“&”。

上面的任何一个都可以放在'('')'中形成一个简单的命令(可能是一个组件
的管道,例如)。 也可以用'||'分隔管道或者 '&&'
表明,就像在 C 语言中一样,只有在第一个失败或
分别成功。 (看 表达式.)

工作机会
外壳关联一个 工作 每个管道。 它保留了一张当前作业的表,由
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 工作 命令,并为它们分配小整数。 作业开始时
与 '&' 异步,shell 打印如下一行:

[1] 1234

显示异步启动的作业是作业号 1 并且有一个(顶部-
level) 进程,其进程 ID 为 1234。

如果您正在从事一项工作并希望做其他事情,您可能会遇到 ^Z (控制-Z),其中
向当前作业发送 SIGSTOP 信号。 然后外壳通常会显示该作业
已“停止”,并打印另一个提示。 然后你可以操纵它的状态
工作,把它放在 背景bg 命令,或运行一些其他命令和
最终将工作带回 前景fg 命令。 一种 ^Z 生效
立即,就像一个中断,挂起的输出和未读的输入被丢弃
当它被输入时。 还有一个特殊的键 ^Y 不会产生 SIGSTOP 信号
直到一个程序试图 (2) 它。 当您
已经为您希望在阅读它们后停止的作业准备了一些命令。

如果它尝试从终端读取,则在后台运行的作业将停止。
通常允许后台作业产生输出,但这可以通过给
命令 姿势 停止. 如果您设置此 tty 选项,则后台作业将在以下时间停止
他们试图产生输出,就像他们试图读取输入时所做的那样。

有多种方法可以在 shell 中引用作业。 字符 '%' 介绍工作
姓名。 如果您希望引用作业编号 1,您可以将其命名为“%1”。 只是命名一个工作
把它带到前台; 因此 %1 是同义词 fg %1,将工作编号 1 带回
前景。 同样,说 %1 & 在后台恢复工作编号 1。 工作可以
如果这些前缀是
明确的; 因此 %前任 通常会重新启动挂起的 ex(1) 工作,如果只有一个
名称以字符串“ex”开头的暂停作业。 也可以说 %?细绳,
它指定了一个作业,其文本包含 绳子,如果只有一项这样的工作。

Shell 维护当前和以前作业的概念。 在关于工作的输出中,
当前作业用“+”标记,上一个作业用“-”标记。 缩写“%+”
指的是当前作业,'%-' 指的是之前的作业。 为了与
的语法 历史 机制(如下所述),'%%' 也是当前的同义词
工作。

作业控制机制要求 姿势(1) 选项 被设置。 这是一个神器
允许生成中断字符的 tty 驱动程序的实现
从键盘告诉作业停止。 看 姿势(1) 有关设置选项的详细信息
新的 tty 驱动程序。

状态 报告
每当进程改变状态时,shell 就会立即学习。 它通常会通知您
每当工作被阻止以致无法进一步推进时,但仅在此之前
它打印一个提示。 这样做是为了不打扰您的工作。 如果,
但是,您设置了 shell 变量 通知, shell 会立即通知您更改
后台作业中的状态。 还有一个shell命令 通知 这标志着一个
处理,以便立即报告其状态更改。 默认情况下 通知 分数
当前进程; 简单地说 通知 在启动后台作业以对其进行标记后。

当您在作业停止时尝试离开 shell 时,您将收到警告:“您已经
停止工作”。 您可以使用 工作 命令看看它们是什么。 如果您再次尝试退出
立即,外壳不会再次警告您,暂停的作业将
终止。

文件 姓名 完成
通过设置shell变量启用文件名补全功能时 文件 (见
), 长山壕 将从唯一前缀交互式地完成文件名和用户名时
它们是从终端输入的,后跟转义字符(转义键,或
控制-[)。 例如,如果当前目录看起来像

DSC.OLD bin cmd lib xmpl.c
DSC.NEW Chaosnet cmtest 邮件 xmpl.o
工作台类开发 mbox xmpl.out

输入是

% vi ch

长山壕 将前缀“ch”补全到唯一匹配的文件名“chaosnet”,改变
输入线到

% vi 混沌网络

但是,鉴于

% vi D

长山壕 只会将输入扩展到

% vi DSC。

并会响起终端铃声,表示扩展未完成,因为有
是与前缀“D”匹配的两个文件名。

如果部分文件名后跟文件结束符(通常是 control-D),则,
而不是完成名称, 长山壕 将列出与前缀匹配的所有文件名。 为了
例如,输入

% vi D

导致列出所有以 'D' 开头的文件:

DSC.新 DSC.OLD

而输入线保持不变。

相同的转义和文件结束系统也可用于扩展部分用户名,如果
要完成(或列出)的单词以波浪号字符 ('~') 开头。 例如,
键入

cd ~ro

可能会产生膨胀

光盘〜根

可以通过以下方式禁止使用终端铃来表示错误或多次匹配
设置变量 没有哔哔声.

通常,特定目录中的所有文件都是名称补全的候选对象。 文件
通过设置变量,可以排除带有某些后缀的 忽略
要忽略的后缀列表。 因此,如果 忽略 由命令设置

% 设置忽略 = (.o .out)

然后打字

% vi x

将导致完成

%vi xmpl.c

忽略文件“xmpl.o”和“xmpl.out”。 然而,如果唯一的完成可能
要求不要忽略这些后缀,那么它们就不会被忽略。 此外, 忽略
不影响 control-D 列出文件名。 列出所有文件,无论它们是什么
后缀。

替换
我们现在按以下顺序描述 shell 对输入执行的各种转换
他们发生。

发展历程 换人
历史替换将先前命令输入中的单词作为新命令的一部分,
使重复命令变得容易,在当前命令中重复上一个命令的参数
命令,或修复上一个命令中的拼写错误,只需少量输入和高
置信度。 历史替换以字符 '!' 开头并可能开始
分析数据 在输入流中(附带条件是他们这样做 而不去 巢)。 这个 '!' 或许
前面有一个 '\' 以防止其特殊含义; 为方便起见,“!” 字符被传递
后跟空白、制表符、换行符、'=' 或 '(' 时保持不变。(历史替换
当输入行以“^”开头时也会发生。 这个特殊的缩写将被描述
稍后。)任何包含历史替换的输入行都会在终端上回显之前
它的执行就像在没有历史替换的情况下输入的那样。

从终端输入的由一个或多个单词组成的命令保存在历史记录中
列表。 历史替换从这些保存的命令中重新引入单词序列
进入输入流。 历史列表的大小由 历史 变量;
无论历史变量的值如何,前一个命令总是被保留。
命令从 1 开始按顺序编号。

为了确定性,请考虑以下输出 历史 命令:

09 写迈克尔
10 前 write.c
11 猫 oldwrite.c
12 差异 *write.c

这些命令与其事件编号一起显示。 通常不需要使用事件
数字,但当前事件编号可以通过放置“!”作为提示的一部分在里面
提示字符串。

对于当前事件 13,我们可以通过事件编号 '!11' 来引用之前的事件,相对
如在 '!-2'(指同一个事件)中,通过命令字的前缀,如在 '!d' 中
事件 12 或事件 9 的 '!wri',或命令中单词中包含的字符串,如
“!?麦克风?” 也指事件 9。这些形式没有进一步变化,只是重新引入
指定事件的单词,每个单词由一个空格分隔。 作为特例,
'!!' 指上一条命令; 因此 '!!' 只有一个 重做.

要从事件中选择单词,我们可以按照事件规范使用“:”和
所需词的指示符。 输入行的单词从 0 开始编号,第一个
(通常是命令)字为 0,第二个字(第一个参数)为 1,依此类推。基本
单词指示符是:

0 第一个(命令)字
n n'第一个论点
^ 第一个参数; 即,'1'
$最后一个参数
% 匹配的单词(紧接在前面)?s? 搜索
XY 词的范围
-y 缩写'0-y'
* 缩写 '^-$',如果事件中只有 1 个单词,则什么都没有
x* 缩写“x-$”
x- 像 'x*' 但省略单词 '$'

将事件规范与单词指示符分隔的“:”可以省略,如果
参数选择器以“^”、“$”、“*”、“-”或“%”开头。 在可选词之后
指示符,可以放置一系列修饰符,每个修饰符前面都有一个“:”。 下列
修饰符定义为:

h 删除尾部路径名组件,留下头部。
r 删除尾随的 '.xxx' 组件,保留根名称。
e 删除除扩展名“.xxx”部分之外的所有内容。
s/升/转/ 替代 l HPMC胶囊 r.
t 删除所有前导路径名组件,保留尾部。
& 重复之前的替换。
g 在每个单词上应用一次更改,在上面加上前缀; 蛋&'。
a 在单个单词上尽可能多地应用更改,并在
以上。 它可以与 'g' 一起使用以全局应用替换。
p 打印新的命令行但不执行它。
q 引用替换的词,防止进一步替换。
x 类似于 'q',但在空格、制表符和换行符处分成单词。

除非前面有“g”,否则更改仅应用于第一个可修改的单词。 和
替换,没有适用的词是错误的。

替换的左侧不是编辑器意义上的正则表达式,
而是字符串。 任何字符都可以用作分隔符来代替“/”; 一种 '\'
将分隔符引用到 lr 字符串。 右侧的字符“&”
被左边的文本替换。 '\' 也引用了 '&'。 空值 l ('//') 使用
前一个字符串来自 l 或来自上下文扫描字符串 s 在 '!?s\?'。 这
如果换行符紧随其后,则替换中的尾随定界符可以省略
可能尾随 '?' 在上下文扫描中。

可以在没有事件规范的情况下给出历史参考; 例如,'!$'。 在这里,
引用是对前一个命令的引用,除非先前的历史引用发生在
同一行,在这种情况下,这种形式重复了先前的引用。 因此“!?foo?^ !$”给出
匹配“?foo?”的命令的第一个和最后一个参数。

历史参考的特殊缩写出现在第一个非空白字符时
输入行是“^”。 这相当于“!:s^”为
替换上一行的文本。 因此 ^磅^库 修复了“lib”的拼写
上一个命令。 最后,历史替换可以用 '{' 和 '}' 包围,如果
有必要将其与后面的字符隔离开来。 因此,经过 ls -ld ~保罗 我们可能
do !{l}一个 去做 ls -ld ~宝拉,而 !拉 将查找以“la”开头的命令。

语录 - ´ "
''' 和 '"' 对字符串的引用可用于防止所有或部分剩余
替代品。 包含在 ''' 中的字符串被阻止进行任何进一步的解释。
包含在 '"' 中的字符串可以按如下所述进行扩展。

在这两种情况下,结果文本都变成(全部或部分)单个单词; 只在一个特别的
案例(请参阅 命令 换人 下面) 是否有一个 '"' 带引号的字符串产生不止一个的部分
单词; ''' 带引号的字符串永远不会。

别名 代换
shell 维护着一个别名列表,这些别名可以被创建、显示和修改。
别号无别名 命令。 扫描命令行后,将其解析为不同的
命令和每个命令的第一个单词,从左到右,检查它是否有
别名。 如果是,则作为该命令别名的文本将使用
历史机制可用,就好像该命令是前一个输入行一样。 这
结果词替换命令和参数列表。 如果没有参考
历史列表,则参数列表保持不变。

因此,如果“ls”的别名是“ls -l”,则命令 ls 在/ usr 将映射到 ls -l 在/ usr
这里的参数列表不受干扰。 同样,如果“lookup”的别名是“grep !^
/ etc / passwd文件“ 然后 查找 法案 将映射到 grep的 法案 / etc / passwd文件.

如果找到别名,则执行输入文本的单词转换并
混叠过程在重新调整的输入线上再次开始。 循环被阻止,如果第一个
通过标记新文本的单词与旧文本相同,以防止进一步混淆。
检测到其他循环并导致错误。

请注意,该机制允许别名引入解析器元语法。 这样,我们可以 别号
打印 '公关 \!* | lpr' 发出命令 pr是它对行式打印机的参数。

请按需咨询 代换
shell 维护一组变量,每个变量都有一个零个或多个列表作为值
字。 其中一些变量由 shell 设置或由它引用。 例如,
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 精液 variable 是 shell 参数列表的图像,以及这个变量的单词
值以特殊方式引用。

变量的值可以通过使用 未设定 命令。
在 shell 引用的变量中,有一个数字是切换; 外壳不在乎什么
他们的价值是,只有他们是否被设置。 例如, 详细 变量是一个
导致命令输入被回显的切换。 该变量的设置源于
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 -v 命令行选项。

其他操作以数字方式处理变量。 这 @ 命令允许数值计算
执行并将结果分配给变量。 然而,变量值总是
表示为(零个或多个)字符串。 出于数值运算的目的,null
字符串被认为是零,多字值的第二个字和附加字是
忽略了。

输入行别名解析后,每条命令执行前,变量
执行替换,以 '$' 字符为键。 可以通过以下方式阻止这种扩展
在 '$' 前面加上一个 '\',除了在双引号 (`"') 内,它 时刻 发生,并且
在单引号 (`'') 内,它 决不要 发生。 反引号 (` `) 引用的字符串是
稍后解释(见 命令 代换 下面),所以“$”替换不会发生在那里
直到以后,如果有的话。 如果后跟空格、制表符或结尾,则“$”将保持不变
线。

输入/输出重定向在变量扩展之前被识别,并且是可变的
分别展开。 否则,扩展命令名称和整个参数列表
一起。 因此,第一个(命令)词(到目前为止)可以生成更多
不止一个词,第一个变成命令名,剩下的变成
参数。

除非包含在 '"' 中或给定了 ':q' 修饰符,变量替换的结果可能
最终被命令和文件名取代。 在 '"' 中,一个变量的值包括
多个单词的扩展为(一部分)单个单词,变量的单词
由空格分隔的值。 当 ':q' 修饰符应用于替换变量时
将扩展为多个单词,每个单词用空格分隔并引用以防止
稍后命令或文件名替换。

提供了以下元序列用于将变量值引入 shell
输入。 除非另有说明,否则引用未设置的变量是错误的。

$名称
${姓名}
被替换为变量值的话 姓名, 每个由一个
空白的。 牙套绝缘 姓名 从以下字符,否则将
一部分。 Shell 变量的名称最多由 20 个字母组成,并且
以字母开头的数字。 下划线字符被认为是
信。 如果 姓名 不是shell变量,而是环境中设置的,那么
返回该值(但 ':' 修饰符和下面给出的其他形式是
此处不可用)。
$name[选择器]
${名称[选择器]}
可用于仅从值中选择部分单词 姓名。 该
选择器受“$”替换并且可能由单个数字组成
或以“-”分隔的两个数字。 变量值的第一个字是
编号为“1”。 如果省略了范围的第一个数字,则默认为“1”。
如果省略范围的最后一个数字,则默认为“$#name”。 这
选择器 '*' 选择所有单词。 如果范围为空,则不是错误
第二个参数被省略或在范围内。
$#名称
${#名字}
给出变量中的单词数。 这对于以后在
“$argv[选择器]”。
$0 替换从中读取命令输入的文件的名称。 一个
如果名称未知,则会发生错误。
$号
${号码}
相当于“$argv[number]”。
$* 相当于“$argv[*]”。

修饰符 ':e'、':h'、':t'、':r'、':q' 和 ':x' 可以应用于替换
上面可能有“:gh”、“:gt”和“:gr”。 如果大括号 '{' '}' 出现在命令表单中,则
修饰符必须出现在大括号内。 当前的实现只允许一个 ':'
每个 '$' 扩展的修饰符。

以下替换不能用“:”修饰符修改。
$?名字
${?名称}
如果设置了名称,则替换字符串“1”,否则替换为“0”。
$?0 如果当前输入文件名已知,则替换为“1”,否则替换为“0”。
$$ 替换(父)shell 的(十进制)进程号。 做 不是 使用
这种生成临时文件名的机制; 看 临时表(1) 代替。
$! 替换上次启动的后台进程的(十进制)进程号
通过这个壳。
$< 替换标准输入中的一行,没有进一步的解释。
它可用于在 shell 脚本中从键盘读取。

命令 文件名 代换
其余的替换,命令和文件名替换,有选择地应用于
内置命令的参数。 选择性地,我们的意思是表达的部分
未评估的不受这些扩展的影响。 对于不是的命令
在 shell 内部,命令名称与参数列表分开替换。
这发生得很晚,在执行输入-输出重定向之后,并且在
主壳。

命令 代换
命令替换由包含在“`”中的命令显示。 这样一个命令的输出
通常在空格、制表符和换行符处分成单独的词,空词是
丢弃; 此文本然后替换原始字符串。 在双引号 (`"') 内,仅
换行强制新词; 保留空白和制表符。

在任何情况下,单个最终换行符都不会强制出现新单词。 请注意,它是这样的
命令替换可能只产生单词的一部分,即使命令
输出完整的一行。

文件名 代换
如果单词包含任何字符 '*'、'?'、'[' 或 '{',或以字符开头
'~',则该词是文件名替换的候选词,也称为“globbing”。
这个词然后被视为一个模式,并替换为按字母顺序排序的列表
与模式匹配的文件名。 在指定文件名替换的单词列表中
没有模式匹配现有文件名是一个错误,但不是每个模式都需要
要匹配的模式。 只有元字符 '*'、'?' 和 '[' 表示模式匹配,
字符 '~' 和 '{' 更类似于缩写。

在匹配文件名中,字符“.” 在文件名的开头或立即
跟在 '/' 之后,以及字符 '/' 必须显式匹配。 人物 '*'
匹配任何字符串,包括空字符串。 人物 '?' 匹配任何
单个字符。

序列“[...]”匹配所包含的任何一个字符。 在“[...]”中,一对
由 '-' 分隔的字符匹配词法上介于两者之间(包括在内)的任何字符。
在“[...]”中,一个 字符 括在 '[:' 和 ':]' 中代表列表
属于该类的所有字符。 支持的字符类:

alnum cntrl 下空间
字母数字印花鞋面
空白图形 punct xdigit

这些使用指定的宏匹配字符 CTYPE(3). 字符类可能不是
用作范围的端点。

文件名开头的字符“~”指的是主目录。 常设
单独,即“~”,它扩展到调用者的主目录,如值所反映的
变量 主页. 后跟由字母、数字和“-”组成的名称时
字符,shell 会搜索具有该名称的用户并替换其家
目录; 因此,“~ken”可能会扩展为“/usr/ken”,而“~ken/chmach”可能会扩展为“/usr/ken/chmach”。
如果字符 '~' 后跟不是字母或 '/' 的字符,或者没有
出现在单词的开头,它不受干扰。

元符号“a{b,c,d}e”是“abe ace ade”的简写。 从左到右的顺序是
保留,匹配结果在低级别单独排序以保留此
命令。 该构造可以嵌套。 因此,“~source/s1/{oldls,ls}.c”扩展为
“/usr/source/s1/oldls.c /usr/source/s1/ls.c” 如果主目录没有错误的机会
“源”是“/usr/source”。 类似地,“../{memo,*box}”可能会扩展为“../memo ../box
../mbox”。 (请注意,“备忘录”并未按照“*box”的匹配结果进行排序。)作为
特殊情况“{”、“}”和“{}”不受干扰地传递。

输入输出
命令的标准输入和标准输出可以通过以下方式重定向
句法:

< 名称 打开文件 姓名 (这是第一个变量、命令和文件名扩展)作为
标准输入。
<< 字
将 shell 输入读取到与以下相同的行 . 是不是
受变量、命令或文件名替换,以及每个输入行
在输入行上进行任何替换之前。
除非引用 '\'、'"'、''' 或 '`' 出现在 , 变量和命令
在中间行上执行替换,允许 '\' 引用 '$',
'\' 和 '`'。 被替换的命令全部为空格、制表符和
保留换行符,除了最后一个换行符被删除。 这
结果文本被放置在一个匿名临时文件中,该文件提供给
命令作为其标准输入。
> 姓名
>! 姓名
>&姓名
>&! 姓名
该文件 姓名 用作标准输出。 如果文件不存在,则
它被创建; 如果文件存在,则将其截断; 它以前的内容是
丢失。

如果变量 无声无息 已设置,则该文件不得存在或为
字符特殊文件(例如,终端或 的/ dev / null的) 或错误结果。
这有助于防止意外破坏文件。 在这里,“!” 表格可以
用于抑制此检查。

涉及“&”的形式将标准错误输出路由到指定的
文件以及标准输出。 姓名 以与 '<' 相同的方式展开
输入文件名是。
>>名称
>>&姓名
>>! 姓名
>>&! 姓名
使用文件 姓名 作为标准输出; 像 '>' 但将输出放在最后
的文件。 如果变量 无声无息 被设置,那么它是一个错误
文件不存在,除非 '!' 之一形式给出。 否则类似于
'>'。

命令接收由输入修改的 shell 被调用的环境 -
输出参数和命令在管道中的存在。 因此,不同于以往的一些
shells,从 shell 命令文件运行的命令无权访问
默认命令; 相反,它们接收 shell 的原始标准输入。 这
'<<' 机制应该用于呈现内联数据。 这允许 shell 命令脚本
用作管道的组件并允许外壳程序阻止读取其输入。 注意
分离的命令运行的默认标准输入是 而不去 修改为空文件
的/ dev / null的; 相反,标准输入仍然是 shell 的原始标准输入。
如果这是一个终端并且进程尝试从终端读取,则
进程将被阻止并通知用户(请参阅 工作机会 以上)。

标准错误输出可以通过带有标准输出的管道进行定向。 简单地
使用“|&”形式,而不仅仅是“|”。

表达式
几个内置命令(稍后描述)采用表达式,其中
运算符与 C 的运算符相似,具有相同的优先级,但 相反
分组: 右到左。 这些表达式出现在 @, 出口, if 命令。
可以使用以下运算符:

|| && | ↑ & == != =~ !~ <= >= < > << >> + - * / % ! ~ ( )

这里优先级向右增加,'==' '!=' '=~' and '!~', '<=' '>=' '<' and '>',
'<<' 和 '>>'、'+' 和 '-'、'*' '/' 和 '%' 处于同一级别的组中。 '=='
'!=' '=~' 和 '!~' 运算符将它们的参数作为字符串进行比较; 所有其他操作
数字。 运算符 '=~' 和 '!~' 类似于 '!=' 和 '==' 除了右侧
是一个 模式 (包含,例如,*、? 和“[...]”的实例)
手操作数匹配。 这减少了使用 开关 shell中的语句
当真正需要的是模式匹配时,脚本。

以“0”开头的字符串被视为八进制数。 空参数或缺失参数是
视为“0”。 所有表达式的结果都是字符串,代表十进制
数字。 需要注意的是,表达式的两个组成部分不能出现在
同一个词; 除非在语法上与表达式的组件相邻时
对解析器很重要('&'、'|'、'<'、'>'、'('和')'),它们应该被包围
空格。

在表达式中也可用作原始操作数的是包含在“{”中的命令执行
和 '}' 并提交表单的查询 -l 姓名 哪里 l 是其中之一:

r 读取权限
w 写访问
x 执行访问
存在
o 所有权
z 零尺寸
f 普通文件
目录

指定的名称是 command 和 filename 扩展,然后测试它是否具有
与真实用户的特定关系。 如果文件不存在或无法访问,则
所有查询都返回false,即'0'。 命令执行成功,返回真,即
'1',如果命令以状态 0 退出,否则它们会失败,返回 false,即 '0'。
如果需要更详细的状态信息,则应在外部执行命令
表达式和变量 状态 检查。

通过积极争取让商标与其相匹配的域名优先注册来维护
shell 包含几个命令,可用于调节控制流
命令文件(shell 脚本)和(以有限但有用的方式)来自终端输入。 这些
所有命令都通过强制 shell 重新读取或跳过其输入来操作,并且由于
实现,限制一些命令的放置。

- 的foreach, 开关 声明,以及 如果-然后-其他 的形式 if
语句要求主要关键字出现在输入行的单个简单命令中
如下所示。

如果 shell 的输入是不可搜索的,则只要循环被执行,shell 就会缓冲输入
在这个内部缓冲区中读取并执行查找以完成由
环形。 (在允许的范围内,向后跳转将在不可搜索的情况下成功
输入。)

内建的 命令
内置命令在 shell 中执行。 如果内置命令作为任何
除了最后一个管道的组件,然后它在子外壳中执行。

别号
别号 姓名
别号 姓名 词汇表
第一种形式打印所有别名。 第二种形式打印 name 的别名。
最终形式分配指定的 词汇表 作为别名 姓名; 词汇表
是命令和文件名替换。 姓名 不允许是“别名”或
“非别名”。

分配 显示获取的动态内存量,分为已用和空闲
记忆。 用一个参数显示每个块中空闲和使用的块数
尺寸类别。 类别从大小 8 开始,每一步加倍。 这个
命令的输出可能因系统类型而异,因为除
VAX 可能使用不同的内存分配器。

bg
bg %工作 ...
将当前或指定的作业置于后台,如果
他们被拦住了。

打破 导致执行在 end 最近的封闭 的foreach or
. 执行当前行上的其余命令。 多层次
因此,将它们全部写在一行上就可以中断。

断断续续
导致中断 开关, 恢复后 收尾.

案件 标签:
一个标签 开关 声明如下所述。

cd
cd 姓名
目录
目录 姓名
将shell的工作目录更改为目录 姓名. 如果没有参数是
给定然后更改到用户的主目录。 如果 姓名 没有被发现
当前目录的子目录(并且不以“/”、“./”或
'../'),然后是变量的每个组成部分 路径 检查是否有
一个子目录 姓名. 最后,如果所有其他方法都失败了,但是 姓名 是一个shell变量
其值以“/”开头,则尝试查看它是否为目录。

继续
继续执行最近的封闭 or 的foreach。 剩下的
执行当前行上的命令。

默认:
将默认情况标记为 开关 陈述。 默认应该在后面
所有 案件 标签。

迪尔斯 打印目录堆栈; 栈顶在左边,第一个
堆栈中的目录是当前目录。

回音 词汇表
回音 -n 词汇表
指定的词写入 shell 的标准输出,由
空格,并以换行符终止,除非 -n 选项被指定。

其他
end
ENDIF
收尾 见说明 的foreach, if, 开关 下面的陈述。

评估 ARG ...
(如 sh(1).) 参数被读取为 shell 的输入和结果
在当前 shell 的上下文中执行的命令。 这通常用于
执行作为命令或变量结果生成的命令
替换,因为解析发生在这些替换之前。 看 预设(1)
例如使用 评估.

EXEC 命令
指定的命令代替当前 shell 执行。

出口
出口 (表达式)
shell 退出 状态 变量(第一种形式)或
与指定的值 表达式 (第二种形式)。

fg
fg %工作 ...
将当前或指定的工作带到前台,如果
他们被拦住了。

的foreach 姓名 (词汇表)
...
end 变量 姓名 依次设置给每个成员 词汇表
此命令和匹配的命令之间的命令序列 end 被执行。
(都 的foreach end 必须单独出现在不同的行中。)内置
命令 继续 可用于过早地继续循环和内置
命令 打破 提前终止。 当这个命令从
终端,循环被读取一次,提示“?” 在任何声明之前
循环被执行。 如果您在终端输入错误
你可以擦掉它。

水珠 词汇表
喜欢 回音 但没有识别出 '\' 转义符,并且单词由 NUL 分隔
输出中的字符。 对于希望使用 shell 的程序很有用
文件名 展开一个单词列表。

转到
指定的 是文件名和命令扩展以产生一个字符串
形成“标签”。 外壳尽可能多地回绕其输入并搜索
对于“label:”形式的一行,前面可能有空格或制表符。
在指定的行之后继续执行。

哈希统计
打印一个统计行,显示内部哈希表的有效性
在定位命令(并避免 EXEC's)。 一个 EXEC 尝试为每个
的组成部分 其中散列函数指示可能的命中,并且在
每个不以“/”开头的组件。

历史
历史 n
历史 -h n
历史 -r n
显示历史事件列表; 如果 n 给出,只有 n 最近的事件
被打印。 这 -h 选项导致历史列表被打印而不
领先的数字。 这种格式生成的文件适合使用
-h 选项 资源。 该 -r 选项将打印输出的顺序颠倒为最
最近的优先而不是最旧的优先。

if (表达式) 命令
如果指定的表达式计算结果为真,则单个 命令 -
参数被执行。 变量替换 命令 发生得早,在
其余时间也是如此 if 命令。 命令 必须是一个简单的
命令,而不是管道、命令列表或带括号的命令列表。
即使发生输入/输出重定向 表达式 为假,即当命令为
而不去 执行(这是一个错误)。

if (表达式) 然后
...
其他 if (表达式2) 然后
...
其他
...
ENDIF 如果指定 表达式 为真,则直到第一个的命令 其他 旨在
被执行; 否则如果 表达式2 为真,则命令直到第二个 其他
被执行等。任意数量的 否则-如果 成对是可能的; 只有一个 ENDIF
是必需的。 这 其他 部分同样是可选的。 (话 其他ENDIF
必须出现在输入行的开头; 这 if 必须单独出现在其上
输入行或之后 其他.)

工作
工作 -l
列出活动作业; 这 -l 选项除了列出进程 ID
正常信息。

%工作
[-s 信号名称] PID
-信号 PID ...
-l [退出状态]
将 SIGTERM(终止)信号或指定的信号发送到
指定的作业或流程。 信号由数字或名称给出
(如⟨信号.h⟩,去掉前缀“SIG”)。 信号名称是
由“kill -l”列出; 如果 退出状态 被指定,只有相应的
将写入信号名称。 没有默认值; 只说“杀”不
向当前作业发送信号。 如果发送的信号是 SIGTERM
(terminate) 或 SIGHUP (hangup),那么作业或进程将被发送一个 SIGCONT
(继续)信号。

限制
限制 资源
限制 资源 最大使用
限制 -h
限制 -h 资源
限制 -h 资源 最大使用
限制当前进程及其创建的每个进程的消耗
个别不超过 最大使用 在指定的 资源。 如果不
最大使用 给出,然后打印当前限制; 如果不 资源 is
给定,那么所有的限制都给定了。 如果 -h 给了flag,硬
使用限制而不是当前限制。 硬限制强加了一个
当前限制值的上限。 只有超级用户可以提出
硬限制,但用户可以在合法范围内降低或提高当前限制
的特点。

目前可控的资源包括:

时间 每个进程使用的最大 CPU 秒数。

文件大小 可以创建的最大单个文件(以字节为单位)。

数据大小 数据+堆栈区域的最大增长通过 斯布尔克(2) 超越
程序文本的结尾。

堆栈大小 自动扩展堆栈区域的最大大小。

核心转储大小 将要进行的最大核心转储的大小(以字节为单位)
创建。

记忆使用 进程驻留设置的最大大小(以字节为单位)
大小 (RSS) 可能会增长。

记忆锁定 进程可以锁定到内存中的最大大小(以字节为单位)
使用 (2) 功能。

最大进程 此用户 ID 的最大并发进程数。

打开文件 此用户 ID 的最大同时打开文件数。

内存使用 进程的总大小可能达到的最大大小(以字节为单位)
增长。

- 最大使用 可以作为(浮点数或整数)数字给出,后跟
通过比例因子。 对于所有限制,除了 时间 默认比例为“k”
或“千字节”(1024 字节); “m”或“兆字节”的比例因子也可以是
用过的。 为了 时间 默认比例为“秒”; 'm' 的比例因子
分钟或 'h' 表示小时,或“mm:ss”形式的时间给出分钟和
也可以使用秒。

对彼此而言 资源 名称和比例因子,名称的明确前缀
满足。

登录 终止登录 shell,将其替换为 /usr/bin/登录.
这是一种注销方式,包括与 sh(1)。

注销 终止登录 shell。 特别有用,如果 忽略 置。

不错
不错 +号码
不错 命令
不错 +号码 命令
第一种形式将这个 shell 的调度优先级设置为 4。第二种形式
表单将优先级设置为给定的 . 最后两种形式运行命令
在优先级 4 和 分别。 数字越大,CPU越少
进程会得到。 超级用户可以通过使用指定负优先级
“不错的数字……”。 命令 总是在子 shell 中执行,并且
对简单命令的限制 if 声明适用。

诺哈普
诺哈普 命令
第一种形式可以在 shell 脚本中使用来导致挂断被忽略
脚本的其余部分。 第二种形式使指定的命令
在忽略挂断的情况下运行。 所有与“&”分离的进程都是有效的
诺哈普'ed。

通知
通知 %工作 ...
当 shell 的状态发生时,使 shell 异步通知用户
当前或指定的工作变动; 通常通知出现在一个
迅速的。 如果 shell 变量,这是自动的 通知 置。

内存
内存 -
内存 标签
控制外壳对中断的操作。 第一种形式恢复
shell 对中断的默认操作,即终止 shell 脚本
或返回终端命令输入级别。 第二种形式 内存 -
导致所有中断被忽略。 最终形式使外壳
执行一个 转到 标签 当收到中断或子进程时
因为被中断而终止。

在任何情况下,如果外壳正在分离运行并且正在中断
忽略,所有形式的 内存 没有意义,中断继续存在
被 shell 和所有调用的命令忽略。 最后, 内存 陈述是
在禁用中断的系统启动文件中被忽略
(/etc/csh.cshrc, /etc/csh.login).

波普德
波普德 +n
弹出目录栈,返回到新的顶层目录。 带着
论证“+n”丢弃 n堆栈中的第 ´ 个条目。 的成员
目录堆栈从 0 开始从顶部编号。

PUSHD
PUSHD 姓名
PUSHD +n
没有任何争论, PUSHD 交换目录的前两个元素
堆。 给定一个 姓名 论据, PUSHD 更改到新目录(ala cd) 以及
推送旧的当前工作目录(如 电脑) 到目录堆栈。
使用数字参数, PUSHD 旋转 n目录的第一个参数
堆栈周围成为顶部元素并对其进行更改。 的成员
目录堆栈从 0 开始从顶部编号。

重新哈希 导致目录中内容的内部哈希表
要重新计算的变量。 如果将新命令添加到
目录中的 当您登录时。这应该只是
如果您将命令添加到您自己的目录之一,或者如果系统
程序员更改系统目录的内容。

重复 命令
指定的 命令, 受相同的限制
命令 在一行 if 上面的语句,被执行 次。 输入/输出
重定向只发生一次,即使 是0。


姓名
姓名=词
名称[索引]=词
姓名=(词表)
命令的第一种形式显示所有 shell 变量的值。
具有非单个单词作为其值的变量打印为
括号内的单词列表。 第二种形式集 姓名 到空字符串。 这
第三组 姓名 到单身 . 第四种形式设置 指数'th
的组成部分 姓名; 该组件必须已经存在。 最终形式
姓名 到单词列表中 词汇表. 该值始终是命令和
文件名扩展。

可以重复这些参数以在单个集合中设置多个值
命令。 但是请注意,所有参数都会发生变量扩展
在任何设置发生之前。

设定
设定 姓名
设定 姓名 折扣值
第一种形式列出了所有当前的环境变量。 它相当于
打印环境(1). 最后一种形式设置环境变量的值 姓名 成为
折扣值, 单个字符串。 第二种形式集 姓名 到一个空字符串。 这
最常用的环境变量 USER、TERM 和 PATH 是
自动导入和导出 长山壕 变量 用户, 术语
; 没有必要使用 设定 对于这些。

转移
转移 变量
的成员 精液 向左移动,丢弃 精液[1]。 它是一个
错误为 精液 不被设置或少于一个字作为值。 这
第二种形式对指定的变量执行相同的功能。

资源 姓名
资源 -h 姓名
shell 从中读取命令 姓名. 资源 命令可以嵌套; 如果他们
嵌套太深,shell 可能会用完文件描述符。 中的错误
a 资源 在任何级别终止所有嵌套 资源 命令。 正常输入
,我们将参加 资源 命令没有放在历史列表中; 这 -h 选择原因
要放置在历史列表中而不执行的命令。

停止
停止 %工作 ...
停止在后台执行的当前或指定的作业。

暂停
使外壳停止在其轨道上,就像它已被停止
信号与 ^Z. 这最常用于停止由以下人员启动的 shell su(1)。

开关 (绳子)
案件 str1:
...
断断续续
...
默认:
...
断断续续
收尾 每个案例标签依次与指定的匹配 绳子,这是
展开的第一个命令和文件名。 文件元字符'*'、'?' 和
“[...]”可用于变量扩展的案例标签。 如果没有
在找到“默认”标签之前匹配的标签,然后执行
在默认标签之后开始。 每个案例标签和默认标签必须
出现在一行的开头。 命令 断断续续 导致执行
之后继续 收尾. 否则控制可能会通过案例标签和
C 中的默认标签。如果没有标签匹配并且没有默认值,
执行后继续 收尾.


命令
没有参数,此外壳及其子程序使用的时间摘要是
打印。 如果给出了参数,则指定的简单命令是定时的,并且
时间摘要如下所述 变量被打印。 如有必要,
创建一个额外的 shell 来打印命令时的时间统计信息
完成。

遮罩
遮罩 折扣值
显示文件创建掩码(第一种形式)或设置为指定值
(第二种形式)。 掩码以八进制给出。 掩码的常见值是
002 授予对组的所有访问权限以及对其他人的读取和执行访问权限或
022 为组中的用户或其他人授予除写访问权限之外的所有访问权限。

无别名 模式
名称与指定模式匹配的所有别名都将被丢弃。 因此所有
别名被删除 无别名 *. 一无所有不是错误
无别名编辑。

散列 使用内部哈希表来加速执行程序的位置是
禁用。

无限制
无限制 资源
无限制 -h
无限制 -h 资源
取消限制 资源。 如果不 资源 被指定,那么所有
资源 限制被删除。 如果 -h 给定,对应的硬
限制被删除。 只有超级用户可以这样做。

未设定 模式
名称与指定模式匹配的所有变量都将被删除。 因此所有
变量被删除 未设定 *; 这有明显令人反感的一面——
效果。 一无所有不是错误 未设定.

未设置环境 模式
删除名称与指定模式匹配的所有变量
环境。 另见 设定 上面的命令和 打印环境(1)。

等待 等待所有后台作业。 如果 shell 是交互式的,则中断
可以打乱等待。 中断后,shell 打印姓名和作业
已知未完成的所有工作的数量。

命令
显示将由 shell 执行的解析命令。

(表达式)
...
end 当指定的表达式计算为非零时,
和匹配 end 被评估。 打破继续 可能习惯于
提前终止或继续循环。 (这 end 必须出现
单独在他们的输入线上。)第一次通过
循环至于 的foreach 如果输入是终端,则声明。

%工作 将指定的作业带到前台。

%工作 & 在后台继续指定的作业。

@
@ 姓名= 表达式
@ 名称[索引]= 表达式
第一种形式打印所有 shell 变量的值。 第二种形式
设置指定的 姓名 的价值 表达式. 如果表达式包含“<”,
'>'、'&' 或 '|' 那么至少这部分表达式必须放置
之内 '(' ')'。 第三种形式赋值 表达式 以及 指数'th
的论点 姓名。 两 姓名 以及 指数'th 组件必须已经存在。

运算符 '*='、'+=' 等在 C 中可用。
赋值运算符的名称是可选的。 然而,空间是
强制分离组件 表达式,否则将是单身
话。

特殊后缀 '++' 和 '--' 运算符递增和递减 姓名
分别; 即,“@i++”。

预定义 环境 变量
以下变量对 shell 具有特殊意义。 这些, 精液, 电脑, 主页, ,
提示, 状态 总是由外壳设置。 除了 电脑状态, 这个
设置仅在初始化时发生; 除非完成,否则这些变量将不会被修改
由用户明确。

shell 将环境变量 USER 复制到变量中 用户, TERM 成 术语
家成 主页, 并在正常 shell 时将这些复制回环境中
变量被重置。 环境变量 PATH 也同样处理; 这不是必要的
担心它的设置而不是在文件中 .cshrc 作为劣等 长山壕 流程将
导入定义 从环境中,如果您更改它,请重新导出它。

精液 设置为 shell 的参数,正是来自这个变量的位置
参数被替换; 即,“$1”被替换为“$argv[1]”等。

路径 提供搜索的备用目录列表以在其中查找子目录 目录
命令。

电脑 当前目录的完整路径名。

回音 设置时 -x 给出了命令行选项。 导致每个命令及其
在执行之前要回显的参数。 对于非内置命令,所有
扩展发生在回声之前。 内置命令在命令和
文件名替换,因为这些替换是有选择的。

文件 启用文件名补全。

历史字符 可以给一个字符串值来改变历史中使用的字符
代换。 其值的第一个字符用作历史
替换字符,替换默认字符 '!'。 第二
其值的字符在快速替换中替换字符 '^'。

历史文件 可以设置为历史将被保存/恢复的路径名。

历史 可以给定一个数值来控制历史列表的大小。 任何
在这么多事件中被引用的命令不会被丢弃。 也
大值 历史 可能会导致 shell 内存不足。 最后执行
命令总是保存在历史列表中。

主页 调用者的主目录,从环境初始化。 这
“的文件名扩展~”指的是这个变量。

忽略 如果设置,shell 将忽略来自终端的输入设备的文件结尾。
这可以防止 shell 被 control-D 意外杀死。

mail shell 检查邮件的文件。 这个检查是在每个
命令完成将导致提示,如果指定的时间间隔有
过去。 外壳显示“您有新邮件。” 如果文件存在且具有访问权限
时间不大于其修改时间。

如果值的第一个字 mail 是数字,它指定不同的邮件
检查间隔,以秒为单位,而不是默认值,即 10 分钟。

如果指定了多个邮件文件,则 shell 会显示“New mail in 姓名“ 什么时候
文件中有邮件 姓名.

无声无息 如上节所述 输入输出, 限制输出
重定向以确保文件不会被意外破坏,并且“>>”
重定向是指现有文件。

无球 如果设置,文件名扩展被禁止。 这种抑制在 shell 中最有用
不处理文件名的脚本,或在文件名列表之后的脚本
已获得,不希望进一步扩展。

不匹配 如果设置,文件名扩展与任何现有的不匹配不是错误
档案; 而是返回原始模式。 这仍然是一个错误
原始模式畸形; 即,“echo [”仍然给出错误。

通知 如果设置,shell 会异步通知作业完成; 默认是
在打印提示之前显示作业完成。

的每一个字 变量指定命令所在的目录
寻求执行。 空字指定当前目录。 如果有
没有 变量,则只会执行完整路径名。 通常的搜索路径
是 ”。”, ”/箱“”/ usr / bin“”/宾“和”/ usr / sbin”,但这可能与
系统到系统。 对于超级用户,默认搜索路径是“/箱
/ usr / bin“”/宾“和”/ usr / sbin”。 一个既没有给出 -c 也不
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 -t 选项通常会散列目录中的内容
读取后的变量 .cshrc,并且每次 变量被重置。 如果是新的
当 shell 处于活动状态时,命令被添加到这些目录中,它可能是
有必要做一个 重新哈希 否则可能找不到命令。

提示 在从交互式读取每个命令之前打印的字符串
终端输入。 如果一个 '!' 出现在字符串中,它将被替换为
当前事件编号,除非给出了前面的 '\'。 默认为“%”或“#”
超级用户。

救世主 被赋予一个数值来控制历史列表的条目数
保存在 ~/.历史 当用户退出时。 已执行的任何命令
在此引用的许多事件将被保存。 在启动 shell 源期间
~/.历史 进入历史列表,可以跨登录保存历史记录。 也
大值 救世主 将在启动期间减慢外壳速度。 如果 救世主
只是设置,shell 将使用的值 历史.

shell所在的文件。 此变量用于分叉 shell
解释设置了执行位但不能被执行程序执行的文件
系统。 (见说明 非内置 命令 执行 下面。)
初始化到 shell 的(依赖于系统的)home。

状态 最后一条命令返回的状态。 如果它异常终止,则 0200
被添加到状态。 失败的内置命令返回退出状态 1,所有
其他内置命令将状态设置为 0。

控制命令的自动定时。 如果设置,则任何需要更多时间的命令
比这么多 CPU 秒会导致一行给出用户、系统和实时,
以及利用率百分比,即用户加系统时间与实际时间的比率
终止时打印的时间。

详细-v 命令行选项,导致打印每个命令的单词
历史替换后。

非内置 命令 执行
当发现要执行的命令不是内置命令时,shell 会尝试
通过执行命令 执行(2). 变量中的每个单词 从中命名一个目录
shell 将尝试执行该命令。 如果它既没有给出 -c 也不是 -t
选项,shell 会将这些目录中的名称散列到一个内部表中,以便它
只会尝试 EXEC 如果命令可能驻留在目录中
那里。 当许多目录存在于
搜索路径。 如果此机制已关闭(通过 散列),或者如果外壳是
给定一个 -c or -t 参数,并且在任何情况下对于每个目录组件 那确实
不以“/”开头,shell 与给定的命令名称连接以形成路径名称
然后尝试执行的文件。

括号内的命令总是在子 shell 中执行。 因此

(cd; 密码); 密码

打印 主页 目录; 把你留在原地(在回家之后打印这个
目录),而

光盘; 密码

把你留在 主页 目录。 带括号的命令最常用于防止
目录 以免影响当前外壳。

如果该文件具有执行权限但不是系统的可执行二进制文件,则它
假定是一个包含 shell 命令的文件,并且会生成一个新的 shell 来读取它。

如果有别名 然后别名的单词将被添加到参数之前
list 形成 shell 命令。 别名的第一个字应该是完整路径名
外壳(例如,“$shell”)。 请注意,这是一个特殊的、晚发生的情况 别号
替换,并且只允许在不更改的情况下将单词添加到参数列表中。

信号 处理
shell 通常会忽略 SIGQUIT 信号。 运行分离的作业(通过 & 或者 bg or
%... & 命令)不受键盘产生的信号的影响,包括挂断。
其他信号具有外壳从其父级继承的值。 壳的
shell 脚本中中断和终止信号的处理可以通过以下方式控制 内存.
登录 shell 捕获 SIGTERM(终止)信号; 否则这个信号被传递给
来自 shell 父级状态的子级。 登录时不允许中断
shell 正在读取文件 。登出.

限制


字长 - 字数不能超过 1024 个字符。 参数的数量
涉及文件名扩展的命令限制为字符数的 1/6
允许在参数列表中。 命令替换可以替换的字符不超过
允许在参数列表中。 为了检测循环,shell 限制了循环次数 别号
单行替换为 20。

使用 onworks.net 服务在线使用 bsd-csh


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。