一、shell prompt(PS1) 命令行提示符

1. 游标(coursor)

当你成功登录进一个文字界面之后,大部份情形下,你会在荧幕上看到一个不断闪烁的方块或底线(视不同版本而别),我们称之为"游标"(coursor)。

游标的作用就是告诉你接下来你从键盘输入的按键所插入的位置,且每输入一键游标便向右边移动一个格子,若连续输入太多的话,则自动接在下一行输入。假如你刚完成登录还没输入任何按键之前,你所看到的游标所在位置的同一行的左边部份,我们称之为"提示符号"(prompt)。一般来说,就最接近游标的一个可见的提示符号来分析,通常是如下两者之一:

$:给一般使用者账号使用

#:给  root (管理员)账号使用

2. shell prompt的意义

shell prompt 的意思很简单是shell告诉使用者:您现在可以输入命令行了。

二、CR(Carriage Return,由Enter键产生),回车字符

CR 的意思也很简单:是使用者告诉shell:可以执行命令行了。

三、IFS(Internal Field Seperator)内部字段分隔符

把单个数据流划分成不同的数据元素的定界符,内部字段分隔符就是用于特定用途的定界符。可以由一个及多个如下按键组成:

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

四、命令行

(1) 在shell prompt与CR字符之间所输入的文字。

(2) 一般情况下,一个标准的命令行格式为如下所列:

    Command-name  Options  Argument

(3) shell会依据IFS将命令行所输入的文字给拆解为"字段"(word)。 然后再针对元字符(meta)先作处理,最后再重组整行命令行。

系统可接受的命令名称(command-name)可以从如下途径获得:
* 明确路径所指定的外部命令
* 命令别名(alias)
* 自定功能(function)
* shell 内建命令(built-in)
* $PATH 之下的外部命令

(4) 简单而言,命令行的每一个字符分为如下两种:

  • literal:也就是普通纯文字,对 shell 来说没特殊功能。
  • meta:对 shell 来说,具有特定功能的特殊保留字符。

literal 没甚么好谈的,凡举 abcd、123456 这些"文字"都是 literal

meta包括 :

  • IFS:由space或tab或enter三者之一组成(我们常用 space )。
  • CR:由enter产生。

IFS是用来拆解命令行的每一个词(word)用的,因为命令行是按词来处理的。而CR则是用来结束命令行用的。除了 IFS 与 CR ,常用的 meta 还有:

  • = : 设定变量。
  • $ : 作变量或运算替换(请不要与 shell prompt 搞混了)。
  • > :重导向 stdout。
  • < :重导向 stdin。
  • |:命令管线。
  • & :重导向 file descriptor ,或将命令置于后台执行。
  • ( ):将其内的命令置于 nested subshell 执行,或用于运算或命令替换。
  • { }:将其内的命令置于 non-named function 中执行,或用在变量替换的界定范围。
  • ; :在前一个命令结束时,而忽略其返回值,继续执行下一个命令。
  • && :在前一个命令结束时,若返回值为 true,继续执行下一个命令。
  • || :在前一个命令结束时,若返回值为 false,继续执行下一个命令。
  • !:执行 history 列表中的命令

五、参考

1. 《shell十三问》

(完)

linux系统命令行基本组成元素的更多相关文章

  1. Linux 系统命令总结

    自己收集到的Linux系统命令大全! 1,查看apache2的连接状态: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S ...

  2. 部分linux系统命令(shell 命令)和hadoop命令

    linux系统命令(shell 命令): ls :  只列出文件/目录 ls -l :  会显示文件的详情,如大小等 ls -lh :  会显示文件的详情,但大小以k或者M为单位 ls ../ :  ...

  3. 第一部分 linux系统命令

    一.linux系统命令 pwd 当前目录位置 / 根目录 cd (change direcory) cd ..返回上一层目录 ls 显示当前目录下文件 ls -l 显示目录下详细文件信息 ls -lh ...

  4. Python执行Linux系统命令方法

    Python执行Linux系统命令的4种方法 (1) os.system 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 复制代码代码如下: system(command) -> ...

  5. PHP面试题及答案解析(7)—Linux系统命令

    1.请解释下列10个shell命令的用途.top.ps.mv.find.df.cat.chmod.chgrp.grep.wc top:该命令提供了实时对系统处理器状态的监控,它能够实时显示系统中各个进 ...

  6. PHP执行linux系统命令

    本文是第一篇,讲述如何在PHP中执行系统命令从而实现一些特殊的目的,比如监控服务器负载,重启MySQL.更新SVN.重启Apache等.第二篇<PHP监控linux服务器负载>:http: ...

  7. Linux系统命令基础

    Linux系统命令基础 前面咱们已经成功安装了Linux系统--centos7,那么现在奔向Linux命令行的世界. Linux命令格式 1.一般情况下,[参数]是可选的,一些情况下[文件或路径]也是 ...

  8. Linux系统命令与脚本开发

    系统命令 # cat EFO cat >> file << EOF neirong EOF # 清空 >file 清空文件 [root@Poppy conf]# sed ...

  9. linux系统命令笔记

    一.linux系统目录 /bin 系统命令目录 /dev 设备目录 /home 每个系统用户在home下都有一个目录, 每个用户登录到系统后会自动登录到这个目录下, root用户会在/root文件夹下 ...

随机推荐

  1. 什么是Spark(三)数据的加载和保存

    Spark内置了一些常见的文件格式的处理,包括text/json,csv,sequence等:Spark对于文件处理保持了开放性,还提供了可以通过InputFormat,OutputFormat来进行 ...

  2. 亚马逊MWS开发套路演示

    MWS是商城网络服务的缩写,具体介绍看这里http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_IfNew.html.MWS就是一组A ...

  3. SharePoint2010基于表单验证方法总结(转载)

    系统环境: win2008r2+ sql2008r2 +Visual Studio2010+sharepoint 2010 A.如果已经建立了web application  例如名字为: http: ...

  4. 搭建基于hyperledger fabric的联盟社区(九) --检索状态数据库

    一.启动elasticsearch服务 官网下载压缩包解压,进入bin目录启动: ./elasticsearch 通过ip访问 localhost:9200,可以看到如下信息 { name: &quo ...

  5. ubuntu :扩充虚拟机的磁盘容量

    前言: 开始建立虚拟机的时候给的容量是20G,给了10G的交换空间,所以后来有点不够用了,现在安装软件会出现提示磁盘空间不足,所以需要扩充一下磁盘的容量. 步骤:     1.因为我用的是Vmware ...

  6. VoIP常见编码的带宽计算

    voip带宽计算VOIP计算方法与所选用的编码方法有关,而与哪个厂家的没有什么关系,公式如下: 带宽=包长度×每秒包数=包长度×(1/打包周期)=(Ethernet头+IP头+UDP头+RTP头+有效 ...

  7. 杂项:Hadoop

    ylbtech-杂项:Hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储.Ha ...

  8. 初学者手册-Sublime Text常用快捷键

    Alt + F3 :找出当前文档中所有被划选的词语,若文档很大的话,可能会导致Sublime Text崩溃. Ctrl + kkk :删除当前行光标至行尾的所有内容. End: 光标跳至行尾. Hom ...

  9. 微信APP支付整体流程记录备忘

      支付整体流程见文档:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3   商户系统和微信支付系统主要交互说明:     步骤1: ...

  10. 018:InnoDB 存储引擎、表空间

    目录 一.InnoDB 存储引擎 1. InnoDB的历史 2. InnoDB的特点 3. InnoDB存储引擎的文件 3.1 概述 3.2 InnoDB - 表空间 3.3 General表空间 3 ...