关于linux中系统输入输出的管理详解

系统中输入输出的管理

1.理解系统的输入输出

linux系统中,1表示正确输出,2表示错误输出

2.管理输入输出的符号

(1)输出重定向(输出到指定的位置)

> ##重定向正确输出
2> ##重定向错误输出
&> ##重定向全部输出

注意:以下实验应在普通用户中完成

find /etc/ -name passwd > file1 ##定向正确输出到file1(会显示未放到文件里的错误输出)
find /etc/ -name passwd 2> file2 ##定向错误输出到file2(会显示未放到文件里的正确输出)
find /etc/ -name passwd &> file3 ##定向所有输出到file3

file ##清空file(因为'>'符号输出时会覆盖源文件,所以> file则是用空白覆盖源文件,即可做到清空的作用)

(2)输出追加

>>  ##追加正确输出到文件最后
2>> ##追加错误输出到文件最后
&>> ##追加所有输出到文件最后

注意: 追加不会覆盖源文件内容

(3)输入重定向

<<EOF

内容

EOF(此处的EOF可以为任意组合,但需要前后相同)

比如:

vim file
输入
passwd student<<EOF
heihei
heihei
EOF

命令行输入file  ##修改student用户密码

3.管道

作用:是将前一条命令的输出变成管道后一条命令的输入

注意:管道只允许正确的输出通过,如果想要错误的输出,应使用2>&1先将错误输出编号变成正确输出编号再输出

| ##把第一条命令的正确输出变成管道后第二条命令的输入
2>&1 ##将编号为2的错误输出变成编号为1的正确输出
tee ##将输出复制到指定位置
举例: ls /bin |wc-l ##统计/bin有多少个文件
   find /etc/ -name passwd 2>&1 | wc -l ##将编号为2错误输出变成编号为1正确
     输出并统计个数
   find/etc/ -name passwd 2>&1 | tee file |wc -l## 将编号为2错误输出
         变成编号为1正确输出一起放入file文件并统计个数

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

(0)

相关推荐

  • linux shell中if的各种判断

    shell编程中使用到得if语句内判断参数 –b当file存在并且是块文件时返回真 -c当file存在并且是字符文件时返回真 -d当pathname存在并且是一个目录时返回真 -e当pathname指定的文件或目录存在时返回真 -f当file存在并且是正规文件时返回真 -g当由pathname指定的文件或目录存在并且设置了SGID位时返回为真 -h当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效 -k当由pathname指定的文件或目录存在并且设置了"粘滞"位时返回真

  • linux shell之控制台打印各种颜色字体和背景的实现方法

    1 问题 控制台打印各种颜色字体和背景 字体颜色 #30:黑 #31:红 #32:绿 #33:黄 #34:蓝色 #35:紫色 #36:深绿 #37:白色 背景颜色 #40:黑 #41:深红 #42:绿 #43:黄色 #44:蓝色 #45:紫色 #46:深绿 #47:白色 echo -e "\e[43;35m chenyu\e[0m hello word" 比如上面的命令,43是背景颜色,35是字体颜色, \e[0m 是还原本色 2 代码实现 这里写的是color.sh文件如下 #!/b

  • linux下搭建go环境的安装配置讲解

    linux下搭建go环境很简单: 1.下载go1.2.1.linux-386.tar.gz,网上到处有类似包,并放到linux目录下. taogeqq@taogeqq-virtual-machine:~/myspace$ ls a.out go1.2.1.linux-386.tar.gz test.cpp test.go taogeqq@taogeqq-virtual-machine:~/myspace$ 2.  切换到root用户,在root下解压,解压即安装,多么绿色的软件啊: root@t

  • 在linux下玩转带有超时时间的connect函数

    在之前的文章中,我们在Windows下玩过带有超时时间的,本文我们在linux下来玩.在某次面试中,还被遇到了这个问题,有意思. 直接上客户端代码: #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string

  • linux shell之通过标识测试文件系统属性的方法示例

    1 通过标识测试文件系统属性 [ -f $file_var ] :如果给定的变量包含正常的文件路径或文件名,则返回真. [ -x $var ] :如果给定的变量包含的文件可执行,则返回真. [ -d $var ] :如果给定的变量包含的是目录,则返回真. [ -e $var ] :如果给定的变量包含的文件存在,则返回真. [ -c $var ] :如果给定的变量包含的是一个字符设备文件的路径,则返回真. [ -b $var ] :如果给定的变量包含的是一个块设备文件的路径,则返回真. [ -w

  • linux下查看so或可执行程序的依赖库

    在linux下查看so或可执行程序的依赖库 Linux下可执行程序包括可执行程序exe和so, 两者文件都是ELF打头的. objdump -x libxxxxx.so | grep NEEDED objdump -x 可执行程序名 | grep NEEDED 或 arm-hisiv300-linux-objdump -x 可执行程序 | grep NEEDED arm-hisiv300-linux-readelf -a 可执行程序 | grep NEEDED linux之如何查看哪些进程在使用

  • linux环境搭建图数据库neo4j的讲解

    Neo4j(Nosql之一)是一个高性能的图数据库(不支持分布式), 在社交关系中经常用到.关于Neo4j的介绍,网上多的是, 故不再赘述.来简要说说安装: 1.安装jdk,不多说: ubuntu@VM-0-15-ubuntu:~$ java -version openjdk version "1.8.0_151" OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12) OpenJDK 6

  • linux shell之pushd、popd和dirs的使用讲解

    1 问题 我们有时候需要保存多个路径,上下键切换不方便,用cd-只能到上个目录,我们可以用dirs和pushd和popd 2 dirs.pushd.popd dirs: 这个命令显示栈里面所有的路径,一定会包含当前路径,常用参数如下 dirs -v 显示栈里面的所有路径和下标,通过下标,我们可以用pushd +下标到这个目录,然后popd+下标把这个路径在栈里面弹出来, dirs -c 清除栈里所有路径,但是当前路径不会删除 pushd:我们可以添加目录到栈(dirs)里面,比如添加当前目录pu

  • 详解linux系统输入输出管理和vim的常用功能

    ####系统中输入输出的管理#### 1.理解系统的输入输出重定向 输入重定向是指把文件导入到命令中,而输出重定向则是把原本要输出到屏幕的数据信息写入到指定文件中. 2.管理输入输出的符号 ##输出重定向 >       ##重定向正确输    2>       ##重定向错误输出    &>       ##重定向所有输出 注意: 重定向会覆盖原文件内容 >>     ##不会覆盖原文件内容    2>>     ##错误输出,不覆盖    &&

  • linux的cut命令用法总结

    要用到,来mark一下: ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt abc abcd ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1 a a ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 2 b b ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-2 ab ab ubuntu@VM-0-15-

随机推荐