一、内容回顾
1、计算机的五大部件:
运算器、控制器:CPU
存储器:RAM
输入设备、输出设备;
2、程序包含:指令和数据;
3、地址总线作用:内存寻址;
4、数据总线作用:传输数据;
5、控制总线作用:控制指令;
6、寄存器:CPU暂时存储器:如:计算数字加减时,在被加数到来前加数就被放在寄存器里面;
如:计算数字加减时,在被加数到来前加数就被放在寄存器里面等待;
7、计算机的核心部件:
运算器、控制器和存储器;
8、I/O(输入/输出设备):
计算机RAM中的数据易失,因此要保存数据必须使用外置存储器;
计算机的核心部件和外置设备相交互的时候就需要使用到I/O设备;
系统通过I/O设备,来获取输入输出数据。
9、系统设定
默认输出设备:标准输出,STDOUT,描述符:1,如:显示器;
默认输入设备:标准输入,STDIN,描述符:0,如:键盘设备;
标准错误输出:STDERR,描述符:2,如:显示器;
二、Linux的I/O输出重定向
1、>:覆盖输出;
这样覆盖很容易造成已经存在的很重要的文件被覆盖掉,所以可以通过set命令开启和关闭Linux系统的一些功能;
如:set -C,禁止对已存在文件使用覆盖重定向;
如果强制覆盖输出,则使用>|;
set +C:关闭上述功能;
2、>>:追加输出,如:cat /etc/inittab >> /tmp/test.out;
3、2>:重定向错误输出;
4、2>>:追加错误输出;
5、重定向标准和错误输出,如:ls /var > /tmp/var.out 2> /tmp.err.out;
6、&>:重定向标准输出或错误输出至同一个文件,如:ls /var &> /tmp/var.out,ls /varerr &> /tmp/var.out;
三、Linux的I/O输入重定向
1、<:输入重定向,如:cat < /etc/fstab;tr 'a-z' 'A-Z' < /etc/issue;
<<:Hero Document,如:cat << END,结束也输入END;
cat >> /tmp/myfile.txt << EOF;
四、管道符
1、命令1 | 命令2:命令1的输出当作命令2的输入,如:echo “hello world.” | tr 'a-z' 'A-Z';
2、tee:既能输出内容到屏幕又能把输出内容指定输入到文件中;
如:echo “Hello,World!” | tee /tmp/hello.txt;
3、如何只显示文件的行号;
如:wc -l /etc/passwd | cut -d' ' -f1;
4、如何显示目录的行号:
如:ls /etc | head -1 | cut -d' ' -f2;
练习:
1、统计/usr/bin/目录下的文件个数;
# ls /usr/bin | wc -l;
2、取出当前系统上所有用户的shell,要求:每种shell只显示一次,并且按顺序显示;
# cut -d: -f7 /etc/passwd | sort -u;
3、思考:如何显示/var/log目录下每个文件的内容类型?
# file /var/log/*或者[root@localhost log]# file `ls /var/log`;
4、取出/etc/inittab文件的第6行;
# head -6 /etc/inittab | tail -1
5、取出/etc/passwd文件中倒数第9个用户的用户名和shell,显示到屏幕上并将其保存至/tmp/users文件中;
# tail -9 /etc/passwd | head -1 | cut -d: -f1,7 | tree /tmp/users
6、显示/etc目录下所有以pa开头的文件,并统计其个数;
# ls -d /etc/pa* | wc -l
7、不使用文本编辑器,将alias cls=clear一行内容添加至当前用户的.bashrc文件中。
# echo "alias cls=clear" >> ./.bashrc
Linux哲学思想:组合小命令,完成复杂任务。