zoukankan      html  css  js  c++  java
  • Shell prompt(PS1) 与 Carriage Return(CR) 的关系?-- Shell十三问<第二问>

    Shell prompt(PS1) 与 Carriage Return(CR) 的关系?-- Shell十三问<第二问>

    当你成功登录进一个文字界面之后,大部份情形下,你会在荧幕上看到一个不断闪烁的方块或底线(视不同版本而别),我们称之为游标(coursor)。游标的作用就是告诉你接下来你从键盘输入的按键所插入的位置,且每输如一键游标便向右边移动一个格子,若连续输入太多的话,则自动接在下一行输入。

    假如你刚完成登录还没输入任何按键之前,你所看到的游标所在位置的同一行的左边部份,我们称之为提示符号(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
    说明:
    Command-name    #命令名字
    Options         #指令参数
    Argument        #实际参数和命令对象
    

    若从技术细节来看,shell 会依据 IFS(Internal Field Seperator(字段分隔符:通常指空格或者其他mate)) 将 command line 所输入的文字给拆解为"字段"(word)。然后再针对特殊字符(meta)先作处理,最后再重组整行 command line 。
    (注意:请务必理解上两句话的意思,我们日后的学习中会常回到这里思考。)

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

    • 空格键(White Space)
    • 表格键(Tab)
    • 回车键(Enter)

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

    • 明确路径所指定的外部命令
    • 命令别名(alias)
    • 自定功能(function)
    • shell 内建命令(built-in)
    • $PATH 之下的外部命令

    每一个命令行均必需含用命令名称,这是不能缺少的。

  • 相关阅读:
    TortoiseGit
    申请成功
    web.xml文件中配置ShallowEtagHeaderFilter需注意的问题
    消息队列调研
    二阶段提交
    ACID CAP BASE介绍
    SQL NULL Values
    HTTPS原理
    ID生成器详解
    如何变得更聪明
  • 原文地址:https://www.cnblogs.com/passzhang/p/12200814.html
Copyright © 2011-2022 走看看