shell prompt(PS1) 与 Carriage Return(CR) 的关系
时间:2007-09-19 来源:月中井
当你成功登录进一个文字界面之后,大部分情形如下:
你会在屏幕上看到一个不断闪烁的方块或者下划线(视不同的版本而别),我们称之为光标(coursor)。光标的作用就是告诉你接下来你从键盘输入的按键所插入的位置,并且每输入一键光标便向右移动一个格子,如果连续输入超过一行,则自动换行,接在下一行输入。
假如我们刚完成登录还没输入任何按键之前,你所看到的光标所在的位置的同一行的左边部分,我们称之为提示符(prompt)。提示符的格式因不同系统版本而各有不同,在linux上,之需要留意最接近光标的一个可见的提示符号即可,通常是如下两者之一:
$:通常表示登录者身份为普通用户;
#:通常表示登录者身份为管理员(root),具有完全权限。
事实上,shell prompt的意思很简单: * 是shell告诉使用者:你现在可以输入命令行了。 我们可以说,使用者只有在得到shell prompt才能输入命令行,而光标(coursor)是指示键盘命令行所输入的位置,使用者每输入一个键,coursor就往后移动一格,直到碰到命令行读取CR(Carriage Return,通常情况下由 Enter 键产生)字符为止,意思就是本命令行输入结束。 CR的意思也很简单: * 就是使用者告诉shell:老兄你可以执行我的命令行了。 严格来说:所谓的命令行,就是shell prompt与CR字符之间所输入的文字。 (思考:为何我们这里坚持使用CR字符而不说 Enter键呢?)
不同的命令可接受的命令行格式可能不同,一般情况下,一个标准的命令行格式如下所示: command-name options argument 若从技术细节来看,shell会依据IFS(Internel Field Seperator)将command line所输入的文字给拆解为“字段”(word)。然后再针对特殊字符(meta)先做处理,最后重组整行command line。 (注意:请务必理解上面两句话的意思,我们日后的学习中会经常回到这里思考。)
其中的IFS是shell预设的分隔符号,可以由一个及多个如下按键组成: * 空白键(White Space) * 表格键(Tab) * 回车键(Enter)
系统可以接受的命令名称(command-name)可以从如下途径获得: *明确路径所指定的外部命令 *命令别名 *自定义的函数(function) *shell内置命令(build-in) *$PATH之下的外部命令
每一个命令行都必需含有命令名称,这是不能缺少的。
事实上,shell prompt的意思很简单: * 是shell告诉使用者:你现在可以输入命令行了。 我们可以说,使用者只有在得到shell prompt才能输入命令行,而光标(coursor)是指示键盘命令行所输入的位置,使用者每输入一个键,coursor就往后移动一格,直到碰到命令行读取CR(Carriage Return,通常情况下由 Enter 键产生)字符为止,意思就是本命令行输入结束。 CR的意思也很简单: * 就是使用者告诉shell:老兄你可以执行我的命令行了。 严格来说:所谓的命令行,就是shell prompt与CR字符之间所输入的文字。 (思考:为何我们这里坚持使用CR字符而不说 Enter键呢?)
不同的命令可接受的命令行格式可能不同,一般情况下,一个标准的命令行格式如下所示: command-name options argument 若从技术细节来看,shell会依据IFS(Internel Field Seperator)将command line所输入的文字给拆解为“字段”(word)。然后再针对特殊字符(meta)先做处理,最后重组整行command line。 (注意:请务必理解上面两句话的意思,我们日后的学习中会经常回到这里思考。)
其中的IFS是shell预设的分隔符号,可以由一个及多个如下按键组成: * 空白键(White Space) * 表格键(Tab) * 回车键(Enter)
系统可以接受的命令名称(command-name)可以从如下途径获得: *明确路径所指定的外部命令 *命令别名 *自定义的函数(function) *shell内置命令(build-in) *$PATH之下的外部命令
每一个命令行都必需含有命令名称,这是不能缺少的。
相关阅读 更多 +