首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

分享:Linux标准输入/输出和重定向

1. 标准输入与输出 我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 我们以cat命令为例,cat命令的功能是从命令行给出的文件中读取数据,并将这些数据直接送到标准输出。若使用如下命令: $ cat config 将会把文件config的内容依次显示到屏幕上。但是,如果cat的命令行中没有参数,它就会从标准输入中读取数据,并将其送到标准输出。例如: $ cat Hello world Hello world Bye Bye $ 用户输入的每一行都立刻被cat命令输出到屏幕上。 另一个例子,命令sort按行读入文件正文(当命令行中没有给出文件名时,表示从标准输入读入),将其排序,并将结果送到标准输出。下面的例子是从标准输入读入一个采购单,并将其排序。 $ sort bananas carrots apples apples bananas carrots $ 这时我们在屏幕上得到了已排序的采购单。 直接使用标准输入/输出文件存在以下问题: 输入数据从终端输入时,用户费了半天劲输入的数据只能用一次。下次再想用这些数据时就得重新输入。而且在终端上输入时,若输入有误修改起来不是很方便。 输出到终端屏幕上的信息只能看不能动。我们无法对此输出作更多处理,如将输出作为另一命令的输入进行进一步的处理等。 为了解决上述问题,Linux系统为输入、输出的传送引入了另外两种机制,即输入/输出重定向和管道。 输入重定向 输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。也就是说,输入可以不来自键盘,而来自一个指定的文件。所以说,输入重定向主要用于改变一个命令的输入源,特别是改变那些需要大量输入的输入源。 例如,命令wc统计指定文件包含的行数、单词数和字符数。如果仅在命令行上键入: $ wc wc将等待用户告诉它统计什么,这时shell就好象死了一样,从键盘键入的所有文本都出现在屏幕上,但并没有什么结果,直至按下<ctrl+d>,

03

分享17个Linux系统日常使用心得技巧

1、sagane@sagane-ThinkPad-Edge:~$ mii-tool,网络不通时可用此命令查看物理链接是否正常。 2、ssagane@sagane-ThinkPad-Edge:~$ ssh root@192.168.1.43 ,以root用户登录ip地址为192.168.1.43的机器,输入root用户的密码后,可远程控制此机器,甚至可以在windows环境下安装xshell等软件,模拟linux下终端远程控制服务器。 3、sagane@sagane-ThinkPad-Edge:~$ scp -r root@192.168.1.2:/home/sagane ./,以root用户登录ip地址为192.168.1.2的机器,将sagane文件夹下的内容拷贝到当前目录下。 4、root@sagane-ThinkPad-Edge:/home/sagane/advio# tailf /var/log/boot.log,实时显示boot.log中内容的变化。 5、用updatedb命令和locate命令查找文件,是最快的查找方式,此两个命令要结合使用。 6、find . -type d,在当前目录下查找目录文件 -user sagane ,查找用户名为sagane的文件 -name “ ” -mmin -10,搜索10分钟内更改过的文件,+10搜索10分钟前更改过的文件 -mtime -10,搜索10天前更改过的文件 通配符*:代表多个字符 通配符?:代表1个字符 7、用鼠标中间滑轮巧妙实现粘帖,这也是喜欢用桌面终端的其中一个原因。 8、sagane@sagane-ThinkPad-Edge:~$ less examples.desktop ,用less命令实现在终端下显示文件内容。 9、sagane@sagane-ThinkPad-Edge:~$ df -h 查看硬盘使用情况。 10、root@sagane-ThinkPad-Edge:/home# du -sh sagane/,查看sagane文件夹的大小。 11、vim命令: shift+n:向上查找,n:向下查找; :1,$s/a/b/gc 将文件中的a替换为b,加g后将对文件中出现的地方全部替换,不加g只替换第一行出现的地方,加c说明是交互式替换; d:剪切选中部分,dd剪切某行,y复制选中部分,yy复制某一行 p:在光标处的上面粘帖,P:在光标处的下面粘帖 多窗口显示 12、root@sagane-ThinkPad-Edge:/home/sagane# find . -name "test.c" -exec ls -lh {} ; 以上命令输入时不要漏下最后的分号,将find命令找到的test.c文件放入后面大括号,再次运行。 13、root@sagane-ThinkPad-Edge:/home/sagane# grep -r ai test.c ,在test.c文件中查找字符ai。 grep -E "^root" /etc/passwd 在passwd文件中,每行的行首搜索root字符 grep -E "bash$" /etc/passwd 行尾搜索bash字符 grep -E "r..t" /etc/passwd .代表1个字符 grep -E "r.*t" /etc/passwd .*代表任意个字符,同* grep -E "root|sagane" /etc/passwd 搜索root或sagane字符串 grep -E "roo[a-z,A-Z,0-9]" /etc/passwd 锁定一个字符的范围 grep -E "roo[^a-z,A-Z,0-9]" /etc/passwd ^是除了某些字符串 grep -E -v root /etc/passwd 除了root外的内容 14、> 重定向 >> 追加重定向 2> 错误重定向 2>> 错误追加重定向 15、root@sagane-ThinkPad-Edge:/home/sagane/advio# grep -v main race.c | grep ai 从race.c文件中搜索除main以外的内容,并将输出结果输出到后面指令再次查找有没有ai字符。 16、tty命令查看当前终端 17、压缩文件命令: gzip file gunzip file bzip2 file bunzip2 file 对目录的操作: tar cvf *.tar test 将test目录打包 xvf 解压包 tar tvf *.tar 显示压缩文件的内容 tar rvf *.tar test 将目录test追加到*.tar包里 tar xvf *.tar -C test 将*.tar 解压缩到test目录 tar zcvf *.tar.gz test 将test文件压缩成*.tar.gz文件 tar jcvf *.tar.gz

01

Frp命令大全

说明: 其中,>为输出重定向符号,>/dev/null 2>&1。这条命令其实分为两命令,一个是>/dev/null,另一个是2>&1。 1. >/dev/null 这条命令的作用是将标准输出1重定向到/dev/null中。/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。 2. 2>&1 这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。 linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。

04
领券