网站建设公司河南,优秀公司网站,图门市建设局网站,建设工程消防监督管理规定网站1重定向1.1 重定向符号 输出重定向到一个文件或设备 覆盖原来的文件! 输出重定向到一个文件或设备 强制覆盖原来的文件 输出重定向到一个文件或设备 追加原来的文件1.2标准错误重定向符号2 将一个…1重定向1.1 重定向符号 输出重定向到一个文件或设备 覆盖原来的文件! 输出重定向到一个文件或设备 强制覆盖原来的文件 输出重定向到一个文件或设备 追加原来的文件1.2标准错误重定向符号2 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 b-shell2 将一个标准错误输出重定向到一个文件或设备 追加到原来的文件21 将一个标准错误输出重定向到标准输出 注释:1 可能就是代? 标准输出 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 c-shell| 将一个标准错误 管道 输送 到另一个命令作为输入1.3命令重导向示例在 bash 命令执行的过程中主要有三种输出入的状况分别是1. 标准输入代码为 0 或称为 stdin 使用的方式为 2. 标准输出代码为 1 ?称为 stdout使用的方式为 13. 错误输出代码为 2 ?称为 stderr使用的方式为 2[test test test]# ls -al list.txt将显示的结果输出到 list.txt 文件中若该文件以存在则予以取代[test test test]# ls -al list.txt将显示的结果累加到 list.txt 文件中该文件为累加的旧数据保留[test test test]# ls -al 1 list.txt 2 list.err将显示的数据正确的输出到 list.txt 错误的数据输出到 list.err[test test test]# ls -al 1 list.txt 2 1将显示的数据不论正确或错误均输出到 list.txt 当中错误与正确文件输出到同一个文件中?则必须以上面的方法来写?能写成其它格式[test test test]# ls -al 1 list.txt 2 /dev/null将显示的数据正确的输出到 list.txt 错误的数据则予以丢弃 /dev/null 可以说成是黑洞装置。为空即不保存。1.4为何要使用命令输出重导向当屏幕输出的信息很重要而且我们需要将他存下来的时候背景执行中的程序不希望他干扰屏幕正常的输出结果时一些系统的例行命令(例如写在 /etc/crontab 中的文件)的执行结果希望他可以存下来时一些执行命令我们已经知道他可能的错误讯息所以想以『 2 /dev/null 』将他丢掉时错误讯息与正确讯息需要分别输出时。2 管线命令 ( pipe )就如同前面所说的 bash 命令执行的时候有输出的数据会出现那么如果这群数据必需要经过几道手续之后才能得到?们所想要的格式应该如何来设定这就牵涉到管线命令的问题了( pipe )管线命令使用的是『 | 』。例子简单的管线命令假设我们要读取 last 这个指令中那个 root 登入的『次数』应该怎么作么我所进行的步骤是1. 执行 last 将所有这个月的所有人登入数据取出来2. 使用 grep 将上面的输出数据(stdout)当中的 root 撷取出来其它的不要3. 使用 wc 这个可以计算行数的指令将上一步的数据计算行数由于 last 的输出是一行代表一次登入所以只要计算几行就代表登入几次的意思经由上面三个步骤将 last 数据逐步的筛选就可以得到我们的数据了整个命令可以写成如下 [test test bin]# last | grep root | wc -l这个管线命令『 | 』仅能处理经由前面一个指令传来的正确信息也就是standard output ( STDOUT ) 的信息对于 stdandard error 并没有直接处理的能力。2.1基本的管线命令指令介绍cut语法[root test /root ]# cut -d 分隔字符 [-cf] fields参数说明-d 后面接的是用来分隔的字符预设是『空格符』-c 后面接的是『第几个字符』-f 后面接的是第几个区块范例[root test /root]# cat /etc/passwd | cut -d : -f 1将 passwd 这个文件里面每一行里头的 : 用来作为分隔号而列出第一个区块也就是姓?所在啦[root test /root]# last | cut -c1-20将 last 之后的数据每一行的 1-20 个字符取出来sort语法[root test /root ]# sort [-t 分隔符] [(起始)(-结束)] [-nru]参数说明-t 分隔符使用分隔符来隔开不同区间预设是 tabstart -end由第 start 区间排序到 end 区间-n 使用『纯数字』排序(否则就会以文字型态来排序)-r 反向排序-u 相同出现的一行只列出一次范例[root test /root]# cat /etc/passwd | sort将列出来的个人账号排序[root test /root]# cat /etc/passwd | sort -t: 2n将个人账号中以使用者 ID 来排序(以 : 来分隔第三个为 ID 但第一个代号为 0 之故)[root test /root]# cat /etc/passwd | sort -t: 2nr反相排序啰? wc语法[root test /root ]# wc [-lmw]参数说明-l 多少行-m 多少字符-w 多少字范例[root test /root]# cat /etc/passwd | wc -l这个文件里头有多少行[root test /root]# cat /etc/passwd | wc -w这个文件里头有多少字uniq这个指令用来将『重复的行删除掉只显示一个』语法[root test /root ]# uniq范例[root test /root]# last | cut -d -f1 | sort | uniqtee命令重定向到文件的同时将数据显示在屏幕上语法[root test /root ]# last | tee last.list | cut -d -f1范例[root test /root]# last | tee last.list | cut -d -f1tr语法[root test /root ]# tr [-ds] SET1参数说明-d 删除 SET1 这个字符串-s 取代掉重复的字符范例[root test /root]# last | tr [a-z] [A-Z] 将小写改成大写[root test /root]# cat /etc/passwd | tr -d : : 这个符号在 /etc/passwd 中不见了[root test /root]# cat /home/test/dostxt | tr -d dostxt-noMsplit语法[root test /root ]# split [-bl] 输入文件 输出文件前导字符参数说明-b 以文件 size 来分-l 以行数来分范例[root test /root]# split -l 5 /etc/passwd test 会产生 testaa, testab, testac... 等等的文件说明在 Linux 底下就简单的多了你要将文件分割的话那么就使用 -b size 来将一个分割的文件限制其大小如果是行数的话那么就使用 -l line 来分割管线命令在 bash 的连续的处理程序中是相当重要的另外在 log file 的分析当中也是相当重要的一环。管道输送到一个命令的标准输入可以使用标准输入参数”-“ 进行更仔细的控制.如cat命令的示例eg: sort mylist | moresort mylist | cat –n | lprpwd | cat – mylist | lpr