您的位置:首页 > 其它

管理以及io重定向

2015-12-29 15:21 323 查看
计算机的组成:
运算器,控制器(合起来就是cpu)

存储器,输入输出设备,总线

程序的组成:指令和数据

总线:
地址总线:寻址

数据总线:传输数据

控制总线:控制指令

(为了精简线路这三类总线往往是同一条,通过附加额外几根线加以区别数据流)

寄存器:cpu暂时存储器

问题:为什么会有寄存器,有什么作用?

假设我们要cpu进行一次加法运算,当第一个加数被传到cpu的时候,它必须等待另一个被加数的传输,此时如果没有额外的存储器,当被加数传输过来的时候就会覆盖加数,所以这个临时存放加数的地方就是寄存器。

系统设定

默认输出设备:标准输出,stdout,1(最常见的是显示器)

默认输出设备:标准输入,stdin,0(键盘)

标准错误输出,stderr,2 (显示器)

i/o重定向:
>:覆盖输出重定向
>>:附加输出重定向(不修改原来的内容)
set -c:禁止对已经存在的文件使用覆盖重定向;

强制使用覆盖重定向则使用>|

+c:关闭上述功能

示例:
[root@logstach tmp]# set -C
[root@logstach tmp]# cat /etc/passwd >a
-bash: a: cannot overwrite existing file
[root@logstach tmp]# set +C
[root@logstach tmp]# !cat
cat /etc/passwd >a

2>:重定向错误输出
2>>:追加方式
&>:相当于>和2>一起用,重定向标准输出或错误输出到同一个文件(没有&>>,要附加用>>和2>>)
示例:
[root@logstach tmp]# cat /etc/passwd >a.txt 2>a.txt
[root@logstach tmp]# cat a.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@logstach tmp]# cat /etc/passwd11 >a.txt 2>a.txt
[root@logstach tmp]# cat a.txt
cat: /etc/passwd11: No such file or directory
[root@logstach tmp]# cat a.txt &>b.txt
[root@logstach tmp]# cat b.txt
cat: /etc/passwd11: No such file or directory
[root@logstach tmp]# cat a123.txt &> b.txt
[root@logstach tmp]# cat b.txt
cat: a123.txt: No such file or directory

<:输入重定向

<<:here document
示例:
[root@logstach tmp]# cat > c <<EOF
> hello world
> i miss you
> EOF
[root@logstach tmp]# cat c
hello world
i miss you

管道:| 前一个命令的输出作为后一个命令的输入
命令1|命令2|命令3|...

tee:从标准输入读取数据显示在屏幕上并且保存在某个文件中
-a:附加方式

-i:忽视中断信号

练习:

统计/usr/bin/目录下的文件个数

取出当前系统上所有用户的shell,要求,各种shell只显示一次,并且按顺序进行显示

思考:如何显示/var/log目录下每个文件的内容类型?

取出/etc/inittab文件的第6行;

取出/etc/passwd 文件中倒数第9个用户的用户名和shell,显示到屏幕上并保存到/tmp/user文件中。

显示/etc目录下所有以pa开头的文件,并统计其个数;

不使用文本编辑器,将alias cls=clear 一行内容添加至当前用户的~/.bashrc文件中

答案:
ls /usr/bin/|wc -l

cat /etc/passwd|cut -d: -f7|sort -u

file /var/log/* 或者cd /var/log && file `ls /var/log` (先cd /var/log是因为如果使用file `ls /var/log/`它会在当前路径下查找ls出来的文件,而不是到/var/log,所以会提示错)

cat /etc/inittab |head -6 |tail -1

cat /etc/passwd|tail -9|head -1|cut -d: -f1,7|tee /tmp/user

ls -d /etc/pa* |wc -l(这里注意ls 要加-d参数)

echo `alias cls=clear` >> ~/.bashrc

本文出自 “单季稻” 博客,请务必保留此出处http://linzb.blog.51cto.com/5192423/1729550
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: