一、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. wordpress重力表单实时提醒功能教程(亲测可用)

    小七在写项目的时候遇到了一个需求:用户在填写完成表单的各个字段后要提交到后台,但是后台程序狗不能一直守着后台吧,程序狗也需要陪女朋友啊,好做一个即时提醒的功能吧,再也不担心用户提交的内容被错过了,第一 ...

  2. Spring Boot 入门之缓存和 NoSQL 篇(四)

    原文地址:Spring Boot 入门之缓存和 NoSQL 篇(四) 博客地址:http://www.extlight.com 一.前言 当系统的访问量增大时,相应的数据库的性能就逐渐下降.但是,大多 ...

  3. CentOS 7 named配置forward

    上文在CentOS 7中安装配置了bind.有时我们只需要一个DNS的proxy来转发DNS的请求.这时,我们就需要配置forword. forword在named.conf中的添加: forward ...

  4. 学习FPGA,踏上一步台阶

    学习FPGA的过程中,要想踏上一步台阶,需要注意一下几点: 时序约束的原因和使用方法,能熟练正确的应用最基本的时钟周期约束,时序例外约束,异步时钟域约束,同步复位的约束,高扇出约束. 清楚FPGA芯片 ...

  5. bzoj4353: Play with tree

    Description 给你一棵包含N个节点的树,设每条边一开始的边权为0,现在有两种操作:   1)给出参数U,V,C,表示把U与V之间的路径上的边权变成C(保证C≥0)   2)给出参数U,V,C ...

  6. linux tcp server demo

    #include <sys/types.h> #include <sys/socket.h> #include <string.h> #include <ne ...

  7. mysql命令之二:查看mysql版本的四种方法

    1:在终端下:mysql -V. 以下是代码片段: [shengting@login ~]$ mysql -V mysql Ver 14.7 Distrib 4.1.10a, for redhat-l ...

  8. Ubuntu16下编译linux内核,报"mkimage" command not found错的解决

    "mkimage" command not found - U-Boot images will not be built /work/system/linux-3.4.20/ar ...

  9. Git版本控制:Github的使用之 多人协作及参与项目

    版权声明:本文为博主皮皮http://blog.csdn.net/pipisorry原创文章,未经博主允许不得转载.   目录(?)[-] Git多人协作 从远程库克隆 使用GitHub参与开源项目- ...

  10. 04——wepy框架搭建

    wepy官方文档:https://tencent.github.io/wepy/document.html#/ 1.项目下载 # .安装wepy-cli npm install wepy-cli -g ...