linux系统命令行基本组成元素
一、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系统命令行基本组成元素的更多相关文章
- Linux 系统命令总结
自己收集到的Linux系统命令大全! 1,查看apache2的连接状态: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S ...
- 部分linux系统命令(shell 命令)和hadoop命令
linux系统命令(shell 命令): ls : 只列出文件/目录 ls -l : 会显示文件的详情,如大小等 ls -lh : 会显示文件的详情,但大小以k或者M为单位 ls ../ : ...
- 第一部分 linux系统命令
一.linux系统命令 pwd 当前目录位置 / 根目录 cd (change direcory) cd ..返回上一层目录 ls 显示当前目录下文件 ls -l 显示目录下详细文件信息 ls -lh ...
- Python执行Linux系统命令方法
Python执行Linux系统命令的4种方法 (1) os.system 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 复制代码代码如下: system(command) -> ...
- PHP面试题及答案解析(7)—Linux系统命令
1.请解释下列10个shell命令的用途.top.ps.mv.find.df.cat.chmod.chgrp.grep.wc top:该命令提供了实时对系统处理器状态的监控,它能够实时显示系统中各个进 ...
- PHP执行linux系统命令
本文是第一篇,讲述如何在PHP中执行系统命令从而实现一些特殊的目的,比如监控服务器负载,重启MySQL.更新SVN.重启Apache等.第二篇<PHP监控linux服务器负载>:http: ...
- Linux系统命令基础
Linux系统命令基础 前面咱们已经成功安装了Linux系统--centos7,那么现在奔向Linux命令行的世界. Linux命令格式 1.一般情况下,[参数]是可选的,一些情况下[文件或路径]也是 ...
- Linux系统命令与脚本开发
系统命令 # cat EFO cat >> file << EOF neirong EOF # 清空 >file 清空文件 [root@Poppy conf]# sed ...
- linux系统命令笔记
一.linux系统目录 /bin 系统命令目录 /dev 设备目录 /home 每个系统用户在home下都有一个目录, 每个用户登录到系统后会自动登录到这个目录下, root用户会在/root文件夹下 ...
随机推荐
- Vim使用YouCompleteMe达到类似IDE的代码提示、补全,以及其他实用设置
接触Linux有两年了,vim还是只会简单的操作.最近实在受不了sublime的代码提示,决定花点时间来配置下vim.本文讲自己认为方便的vim配置,称不上完美,只讲究简单实用. 使用 ctags 主 ...
- Proxool抛出的警告 was active for 365172 milliseconds and has been removed automaticaly
WARN cetDB:149 - #0005 was active for 365172 milliseconds and has been removed automaticaly. The Thr ...
- Oracle数据库clob字段导出为sql insert插入语句
oracle数据库的clob字段导出为sql insert插入语句可以分三种情况:1,clob没有换行符:2,clob有换行符但不以分号结尾:3,clob有换行符并且以分号结尾. clob没有换行符使 ...
- 阻塞队列之三:SynchronousQueue同步队列 阻塞算法的3种实现
一.SynchronousQueue简介 Java 6的并发编程包中的SynchronousQueue是一个没有数据缓冲的BlockingQueue,生产者线程对其的插入操作put必须等待消费者的移除 ...
- 杂项:HTML5-2/3-新元素
ylbtech-杂项:HTML5-2/3-新元素 自1999年以后HTML 4.01 已经改变了很多,今天,在HTML 4.01中的几个已经被废弃,这些元素在HTML5中已经被删除或重新定义. 为了更 ...
- 关闭easyui Tabs,有意思的JS异步处理
因业务需要,需要将关闭windows窗口内的所有Tabs关闭掉,因此写了个方法,执行结果把我惊了一下. function closeAllTabs() { var tabsCount = $(&quo ...
- canvas之太阳系效果
星球 变量名 公转周期 光色 暗色 水星 Mercury 87.70 #a69697 #5c3e40 金星 Venus 224.701.70 #c4bbac #1f1315 地球 Earth 365. ...
- Java string String
java.lang.String string这个不是关键字 关String的讲解,参看:http://www.cnblogs.com/octobershiner/archive/2012/04/02 ...
- Vue.js+Koa2移动电商 笔记
一.搭建项目架构: 项目采用Webpack+Vue-router的架构方式,开始安装(基于windows系统) 1.按Win+R,然后在文本框中输入cmd,回车打开命令行,输入vue-cli安装命令: ...
- ie6绝对定位的块会被select元素遮挡的解决方案
RT(已无力吐槽ie),解决方法是:定义一个iframe,与想要显示的绝对定位的块设置为同一大小.放在同一个位置上.我的网页里绝对定位的元素是会随着鼠标移动显示和隐藏的,于是这个frame也要跟着显示 ...