操作系统7- shell
2015-11-13 17:10
337 查看
用户体验:命令执行(the
shell)
一旦操作系统加载之后,他就开始等待命令。命令可以通过CLI(Command
Line
Interface)
或者GUI
(Graphical
User
Interface)输入。
命令输入会进入一个命令的解析器(在Unix世界这个叫做shell)。Shell
用自己的规则解析命令之后执行命令。
一个经典shell流程:
终端提示 -》
输入命令 -》
shell
解析命令 -
》
shell
请求内核执行,shell进入睡眠状态直到内存执行完毕。 -》
shell
显示执行结果和等待下个命令。
一些通用的shell:
Bourne
Shell /bin/sh ,
Bourne
Again
Shell /bin/bash,
Cshell /bin/csh, Korn Shell /bin/ksh
MSDOS
和Windows
的
shell
叫
COMMAND
或者
CMD。
通过Shell
是一个解析器,shell很快做一些复杂的任务。事实shell
是一个很强的编程环境。第一个shell可以做解析特殊字符。这些特殊字符叫通配符。这些特殊字符影响输出和执行shell命令。
常用的通配符有: *,?
,[],
shell的变量
当你登陆到Unix系统,你会面对一个定义好的环境变量的shell。这个环境变量叫shell
变量。很多东西被定义在一个文件(.proflie)里。可以通过命令env,查看自己的shell变量。
$env
其中一个变量是HOME,这个变量定义你的主目录的绝对路径。这些shell变量可以被用于任何一个命令。例如:
$cd $HOME
表示回到自己的主目录
Unix Shell
管道(pipes)
及其更改
unix所有程序都有文件描述(file descriptors)来表示它的输入输出。默认的文件描述:
标准输入(0),标准输出(1)
和标准错误(2).
一个程序将会用fscanf(2c)或者cin直到EOF(^D),通过标准输入读取数据.
文件描述默认是连接到一个设备,例如:标准输入是连接到键盘。如果你不想你的程序通过键盘读取输入,想从文件中读取输入。Unix运行更改管道。就是你可以改变标准输入,输出,错误来自哪里或者到哪里去。
操作符 > ,
改变程序STDOUT到一个文件,这个文件会被覆盖,例子:
ls > foo.txt
cat a.txt b.txtc.txt > foo.txt
操作符<,
改变程序STDIN
这样程序可以读取文件,
例子:
cat </etc/hosts
1/11/20151/11/2015
操作符>> ,改变程序STDOUT到一个文件,这个文件不会被覆盖
Unix的一些特殊文件
/dev/urandom,
如果你改变通过这个文件读取你获得随机数据。这个通常用来当做随机数产生器。
/dev/null,
如果你改变输出到这个文件,数据会消失
/dev/zero,
如果你通过这文件读取,你会获得0。通常用来初始化
数据。
道(pipes)的合并:
n>&m, 2>&1,
表示标准输出和标准错误合并一起。
Shell
的
pipes
简单的可以这样:
复杂一点:
参考:
(什么是shell),
http://www.dnxxj.com/questions/475738a3445d72/什么是shell?.html
(系统的环境变量是什么) ,
http://www.dnxxj.com/questions/47577b40904540/系统的环境变量是什么%3F.html
shell)
一旦操作系统加载之后,他就开始等待命令。命令可以通过CLI(Command
Line
Interface)
或者GUI
(Graphical
User
Interface)输入。
命令输入会进入一个命令的解析器(在Unix世界这个叫做shell)。Shell
用自己的规则解析命令之后执行命令。
一个经典shell流程:
终端提示 -》
输入命令 -》
shell
解析命令 -
》
shell
请求内核执行,shell进入睡眠状态直到内存执行完毕。 -》
shell
显示执行结果和等待下个命令。
一些通用的shell:
Bourne
Shell /bin/sh ,
Bourne
Again
Shell /bin/bash,
Cshell /bin/csh, Korn Shell /bin/ksh
MSDOS
和Windows
的
shell
叫
COMMAND
或者
CMD。
通过Shell
是一个解析器,shell很快做一些复杂的任务。事实shell
是一个很强的编程环境。第一个shell可以做解析特殊字符。这些特殊字符叫通配符。这些特殊字符影响输出和执行shell命令。
常用的通配符有: *,?
,[],
shell的变量
当你登陆到Unix系统,你会面对一个定义好的环境变量的shell。这个环境变量叫shell
变量。很多东西被定义在一个文件(.proflie)里。可以通过命令env,查看自己的shell变量。
$env
其中一个变量是HOME,这个变量定义你的主目录的绝对路径。这些shell变量可以被用于任何一个命令。例如:
$cd $HOME
表示回到自己的主目录
Unix Shell
管道(pipes)
及其更改
unix所有程序都有文件描述(file descriptors)来表示它的输入输出。默认的文件描述:
标准输入(0),标准输出(1)
和标准错误(2).
一个程序将会用fscanf(2c)或者cin直到EOF(^D),通过标准输入读取数据.
文件描述默认是连接到一个设备,例如:标准输入是连接到键盘。如果你不想你的程序通过键盘读取输入,想从文件中读取输入。Unix运行更改管道。就是你可以改变标准输入,输出,错误来自哪里或者到哪里去。
操作符 > ,
改变程序STDOUT到一个文件,这个文件会被覆盖,例子:
ls > foo.txt
cat a.txt b.txtc.txt > foo.txt
操作符<,
改变程序STDIN
这样程序可以读取文件,
例子:
cat </etc/hosts
1/11/20151/11/2015
操作符>> ,改变程序STDOUT到一个文件,这个文件不会被覆盖
Unix的一些特殊文件
/dev/urandom,
如果你改变通过这个文件读取你获得随机数据。这个通常用来当做随机数产生器。
/dev/null,
如果你改变输出到这个文件,数据会消失
/dev/zero,
如果你通过这文件读取,你会获得0。通常用来初始化
数据。
道(pipes)的合并:
n>&m, 2>&1,
表示标准输出和标准错误合并一起。
Shell
的
pipes
简单的可以这样:
复杂一点:
参考:
(什么是shell),
http://www.dnxxj.com/questions/475738a3445d72/什么是shell?.html
(系统的环境变量是什么) ,
http://www.dnxxj.com/questions/47577b40904540/系统的环境变量是什么%3F.html
相关文章推荐
- SSH免密码登录方法
- shell批量重命令文件脚本
- shell循环
- linux shell中FS、OFS、RS、ORS图解
- Kafka-2.11学习笔记(二)Shell脚本介绍
- SSH Secure Shell Client 工具的使用
- shell脚本-if内判断
- linux中shell变量$#,$@,$0,$1,$2的含义解释
- Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
- shell中的重定向 1>&2 2>&1 >&2
- shellExcute 与shellExcuteex 的一些东西
- Linux系统下通过bash配置文件的方式将用户执行的命令写入syslog
- shell调用shell
- Shell脚本文件操作
- shell基础之脚本执行,命令别名以及快捷键等
- powershell excel 导入 sqlserver
- linux学习基础---bash命令行基本操作
- unix shell: ksh fundamental(Korn Shell)
- 纯shell程序实现base64编码
- Xshell远程连接Linux服务器出错——Could not connect to '114.214.166.5' (port 22): Connection failed.