您的位置:首页 > 运维架构 > Shell

shell prompt(PS1)与Carriage Return(CR)关系(转自:shell十三问)

2015-06-25 10:42 471 查看
当你成功登陆一个shell终端的文件界面之后,大部分的情形下,你会在屏幕上看到一个不断闪烁的方块或者底线(视不同的版本而别),我们称之为游标(cursor).cursor作用就是告诉你接下来你从键盘输入的按键所插入的位置,且每输入一个键,cursor便向右移动一个格子,如果连续输入太多的话,则自动接在下一行输入。

加入你刚完成登陆,还没有输入任何按键之前,你所看到的cursor所在的位置的同一行的左边部分,我们称之为提示符(prompt).

提示符的格式或因不同的版本而各有不同,在linux上,只需要留意最近游标的一个提示符,通常是如下两者之一:

·$:给一般用户账号使用

·#:给root账号使用

事实上,shell prompt的意思很简单:告诉shell使用者,你现在可以输入命令行了。

我们可以说,使用者只有在得到shell prompt才能打开命令行,而cursor是指示键盘在命令行的输入位置,使用者每输入一个键,cursor就往后移动一个格,知道碰到命令行读进CR(Carriage Return, 由Enter键产生)字符为止。CR的意思也很简单:使用者告诉shell:老兄,你可以执行我的命令行了。严格来说:所谓的命令行,就是shell prompt与CR之间所输入的文字。

(为什么我们在这里坚持使用CR字符而不说Enter按键呢?)

不同的命令可以接受的命令的格式各有不同,一般情况下,一个标准的命令行格式为如下所列:

command-name options argument

如从技术的细节上来看,shell会根据IFS(Internal Field Seperator)将command line所输入的文字给拆解为字段,然后再针对特殊的字符先做处理,最后重组整行command line。

其中IFS是shell预设使用的字段位分隔符,可以由一个及多个如下按键组成:

·空白键

·表格键(Tab)

·回车键

系统可以接受的命令的名称command-name可以从如下途径活的:

·确定的路径所指定的外部命令

·命令的别名(alias)

·shell内建命令(built-in)

·$PATH之下的外部命令

名一个命令必须包含命令的名称,这是不能缺少的。

原文链接:https://github.com/ftylove/13_questions_of_shell.git
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 键盘 cursor