## 管道,IO重定向。
### 计算机体系结构:
* 控制器:CPU,读取系统指令。
* 运算器:CPU,运算。
* 存储器:RAM,(内部存储器:易失性存储器)
* 输入、输出设备。
### 计算机总线:
* 地址总线:负责内存寻址。
* 数据总线:负责创术数据。
* 控制总线:负责控制指令。
* 寄存器:CPU中内部临时存储空间。
* I/O设备:股则计算机内部存储设备和外部存储设备进行交互的设备。
* 程序:指令+数据
* 指令:由程序提供,负责加工数据。
* 数据:系统中的数据可以有多种来源,比如来自自变量,来自文件,来及输入设备等。
* 标准输入设备:键盘(srdin),文件描述符0。
* 标准输出设备:显示器(stdout),文件描述符1。
* 标准错误输出设备:显示器(stdout),文件描述符2.
### 三种数据流:
* 标准输入数据流/标准能输出数据流/标准寻物输出数据流。
* 当在LInux中打开一个文件时,内核会反复调用,对于文件表示就很重要了,用文件描述符来表示文件,文件加载王成用数字标识。
### IO重定向
* 输出重定向:
* >:覆盖输出重定向。
* >>:追加输出重定向。
* 2>:错误覆盖输出重定向。
* 2>>:错误追加输出重定向。
* &>:混合覆盖输出重定向。
* &>:混合追加输出重定向。
* 输入重定向:
* < :输入冲低昂想
* 管道:连接多条命令,把前一条命令的输出结果作为后一条命令的输入条件。
* tr:实现字符转换,不修改源文件。
* tee:
管道、重定向
标准输入设备:键盘(stdin)文件描述为0 输出设备:显示器(stdout)文件描述为1 错误输出设备:显示器(stderr)文件描述为2
IO重定向:把默认输入输出的数据来源重新定向到其他文件或设备
输出重定向:
>:覆盖输出重定向
>>:追加输出重定向
2>:错误覆盖输出重定向
2>>:错误追加输出重定向
&>:混合覆盖输出重定向
&>>;混合追加输出重定向
输出重定向:
<:输入重定向
管道:连接多条命令。前一条命令输出结果作为后一条命令的输入条件
command 1 | command 2 | command 3
shell:
GUI 包括GNOME KDE XFACE
CLI sh csh ksh bash(bash是默认的shell程序)
用户登录完成后,系统自动启动shell程序
进程 应用程序的副本,使用PID区分(在系统中,一个进程只认为自己存在)
shell 父shell程序,子shell程序(父子shell之间设置环境互相独立)
cat /etc/shells 查看当前系统支持的shell程序
yum -y install ksh csh 安装 ksh csh
exit 退出当前shell程序
bash的特性:
1,命令历史:Linux自动记录系统执行的命令,保存在内存的缓存区中。每个用户的家目录下,有个隐藏的文件 .bash_history保存命令历史。
history 查看命令历史
-c 清空命令历史
-d 删除某一条命令位置
-w 将命令历史保存到某个文件中
HISTSIZE 命令历史大小变量
echo $HISTSIZE 查看其值
!n 执行历史中第n条命令
!-n 倒数第n条命令
!Word 执行命令历史中最近一次以Word开始的命令(Word必须唯一标识要执行的命令)
!!执行上一次命令
!$ 引用一个命令的最后一次参数
ESC键 再按 . 同上
2,管道,IO重定向
标准输入设备 键盘(stdin)文件描述符 0
标准输出设备 显示器(stdout)文件描述符 1
标准错误输出设备 显示器(stderr)文件描述符 2
当用户没有为指令指定数据来源时,系统要有默认的数据来源
三种数据流 : 标准输入/出数据流 标准错误输出数据流
Linux打开文件时,内核会反复调用,对文件进行标识,用文件描述符来标识文件,文件加载完成后用数字标识。
fd :file description(文件描述符)
IO重定向 把默认输入出数据来源,重新定向到其他的文件或设备
输出重定向——
> 覆盖输出重定向
>> 追加 重定向
2> 错误覆盖输出重定向
2>> 错误追加 重定向
&> 混合覆盖输出重定向
&>>混合追加重定向
输出重定向——
< 输入重定向
管道:连接多条命令,把前一条命令的输出结果作为后一条命令的输入条件(组合小程序,实现大功能)
tr 实现字符转换,不修改源文件 tr 'a-z' 'A-Z'
cat /etc/login | tr 'a-z' 'A-Z' 输出结果为大写
tee 读取标准输入的数据,并将其内容输出成文件
3,命令别名
alias command=COMMAND(原来的命令,最好用‘’引起来) 只执行alias时,会列出系统中所有已经有别名的命令。
unalias 取消
4,命令行编辑
Ctrl + a 快速跳到命令行首
Ctrl + e 快速跳转到行尾
Ctrl + u 快速删除光标位置到命令行行首的字符
Ctrl + k 快速删除光标位置到命令行行尾的字符
Ctrl + l 清屏
5,命令行展开
命令补齐: 在PATH变量搜索命令并补齐(PATH命令必须正常;tab键补齐)
路径和文件补齐 :在系统路径中查找
命令行补齐功能 不能补齐选项
命令替换:经常用在shell脚本编程中
将命令当中的子命令 替换成子命令执行结果 的过程
---> $(command) 'command'(反撇号)
双引号"",弱引用(可实现变量的替换,把变量名替换为变量值)
反撇号``,命令引用
单引号‘’强引用(不能完成变量替换)
6,命令行通配
* 匹配任意长度的任意字符
? 匹配任意单个字符
[ ] 匹配制定范围内的任意单个字符
--->> [ab] [a-m] [a-zA-Z] [a-zA-Z0-9]
[^] 匹配任意制定范围外的任意单个字符
--->>[^a-z]
[:space:] 表示空格
[:punct:] 所有标点符号
[:lower:] 所有小写字母
[:upper:] 所有大写字母
[:alpha:] 所有字母
[:digit:] 所有数字
[:alnum:] 所有数字和字母
7,变量
8,编程
管道,IO重定向
计算机体系结构:
控制器:CPU,读取系统指令
运算器:CPU,运算
存储器:RAM(内部存储器:易失性存储器)
输入设备:输入数据,如键盘,硬盘等
输出设备:显示指令执行结果的设备,比如显示器音响,硬盘等。
计算机总线:
地址总线:负责内存寻址
数据总线:负责传输数据
控制总线:负责控制指令
寄存器:CPU中内部临时存储空间
I/O设备:负责计算机内部存储设备和外部存储设备(如硬盘,光盘,U盘等)进行交互的设备
程序:指令+数据
指令:由程序提供,负责加工数据
数据:系统中数据可以有多种来源,比如来自变量,来自文件,来自输入设备
当用户没有为指令指定数据来源时,系统要有默认的数据来源
标准输入输出设备:键盘文件描述符为0,显示器文件描述符为1
标准错误输出设备:显示器文件描述符为2
三种数据流
标准输入数据流/标准输出数据流/标准错误输出数据流
当在linux中打开一个文件时。内核会反复调用,对于文件的标识就很重要了,用文件描述符来标识文件,文件加载完成用数字标识
fd:file descriptor(文件描述等)
IO重定向:把默认输入输出数据来源,重新定向到其他的文件和设备
输出重定向:
>:覆盖输出重定向
>>:追加输出重定向
2>:错误覆盖输出重定向
2>>:错误追加输出重定向
&>:混合覆盖输出重定向
&>>:混合追加输出重定向
输入重定向:
<:输入重定向
管道:连接多条命令,把前一条命令的输出结果作为后一条命令是输入条件(组合小程序,完成实现大功能)
commd1 | command2 | commad3 ....
tr:实现字符转换,不会修改源文件