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 之下的外部命令

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

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

  1. 回车”(carriage return)和”换行”(line feed)的区别和来历-(附:ASCII表)

    这两天研究小票打印机编程手册,遇到这样一个问题:     LF,即Line Feed,中文意思“换行”:CR,即Carriage Return,中文意思“回车”.但是我们通常把这两个混为一谈.既然设置 ...

  2. android: Incorrect line ending: found carriage return (\r) without corresponding newline (\n)

    当报这种错误的时候:Incorrect line ending: found carriage return (\r) without corresponding newline (\n) 解决方法: ...

  3. "回车"(carriage return)和"换行"(line feed)

    “回车”(carriage return)和“换行”(line feed)这两个概念的来历: 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10 ...

  4. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  5. Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程

    Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程 教程简介: 本教程共71节,主要介绍了shell的相关知识教程,如shell编程需要的基础知识储备.shell脚本概念介 ...

  6. try catch finally return之间的关系

    一.try catch finally return之间的关系: 正在写dsoFramer的时候,同事突然说面试的时候问的一个问题,catch和return那个先执行,我瞬间迷茫了,然后整理了整理,稍 ...

  7. 【Shell脚本学习4】几种常见的Shell

    上面提到过,Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把它们称作一种Shell.我们常说 ...

  8. 《Linux命令行与shell脚本编程大全》- 读书笔记3 - 理解shell

    当用户登录终端的时候,通常会启动一个默认的交互式shell.系统究竟启动哪个shell,这取决于用户配置.一般这个shell都是/bin/shell.默认的系统shell(/bin/sh)用于系统sh ...

  9. 《Linux命令行与shell脚本编程大全》 第五章理解shell

    5.1 1. cat /etc/passwd 可以查看每个用户自己的默认的shell程序. 2.默认的交互shell会在用户登录某个虚拟控制台终端时启动. 不过还有另外一个默认的shell是/bin/ ...

随机推荐

  1. LeetCode & Binary Search 解题模版

    LeetCode & Binary Search 解题模版 In computer science, binary search, also known as half-interval se ...

  2. SPC空投火爆来袭!区块链技术落地加速!

    经历市场狂热后,区块链逐渐恢复合理性,在政策红利.技术等多力推进下,各行各业开始涌入区块链行业.在这波浪潮中,SPC侧链代币项目显得格外亮眼,其空投已经发放至第二轮,仅SPC空投月收益就达23%左右, ...

  3. 「NGK每日快讯」2021.1.22日NGK公链第80期官方快讯!

  4. Union international INC:VR线下娱乐市场巨大

    联合国际公司认为众多企业追着VR的风口不断加码,导致VR在经历了一个爆炸式的发展,如今部分VR公司开始觉得日子不好过了,一个重要表现就是现金流紧张.VR如何能够普及,何时能够及早变现,成为业内关注的焦 ...

  5. 区块链项目NGK未来价值几何?

    没有人可以预知NGK未来会涨到多少钱,就像比特币只有10美分时,也无法预测它会涨到现在的价格⼀样.那时候人们把CPU超频挖矿只作为⼀种爱好和娱乐.所以,人们也没有办法预知NGK未来的价格.但可以知道的 ...

  6. 「NGK每日快讯」12.11日NGK公链第38期官方快讯!

  7. MySQL的简单使用方法备忘

    这只是一篇我的个人备忘录,写的是我常用的命令.具体可以参考"菜鸟教程" https://www.runoob.com/mysql/mysql-tutorial.html 登录(用户 ...

  8. HttpDns 原理是什么

    本文转载自HttpDns 原理是什么 什么是 DNS DNS(Domain Name System,域名系统),DNS 服务用于在网络请求时,将域名转为 IP 地址.能够使用户更方便的访问互联网,而不 ...

  9. scala:分别使用懒汉式和饿汉式实现单例模式

    在java中,单例模式需要满足以下要求: 构造方法私有化,使得本类之外的地方不能使用构造方法new出对象 提供私有静态属性,接收单例对象 公共的.静态的getInstance方法,便于外界拿到单例对象 ...

  10. Django Admin 图片路径设置显示为图片(imageField显示方法设置)

    一  使用环境 开发系统: windows IDE: pycharm 数据库: msyql,navicat 编程语言: python3.7  (Windows x86-64 executable in ...