当前位置: 技术问答>linux和unix
问一些基本的shell命令
来源: 互联网 发布时间:2016-12-10
本文导语: filter file2 | cat file1 - file3 | lpr filter file2 | cat file1 /dev/fd/0 file3 | lpr 首先查了下 | 管道符号 命令1 | 命令2 机制:上一个的命令输出作为下一个命令的输入 想问下那个事上一个命令呢? 按照我的执行...
filter file2 | cat file1 - file3 | lpr
filter file2 | cat file1 /dev/fd/0 file3 | lpr
首先查了下 | 管道符号
命令1 | 命令2
机制:上一个的命令输出作为下一个命令的输入
想问下那个事上一个命令呢?
按照我的执行来看命令2好像是先执行的,命令2就是上一个命令?
lpr命令这样使用不对吗,执行的结果提示没有目标(no default destination available),man lpr看确实需要有个参数。
但这条命令我是从UNIX环境高级编程中看来的
-符号是啥意思呢?
我建立上个文件file1,file2和file3,文件的内容分别是file1,file2和file3(也就是文件名)
我执行filter file2 | cat file1 - file3 或者filter file2 | cat file1 /dev/fd/0 file3
都如下输出
#filter file2 | cat file1 - file3
file1
command not found
file3
这怎么解释呢?
filter file2 | cat file1 /dev/fd/0 file3 | lpr
首先查了下 | 管道符号
命令1 | 命令2
机制:上一个的命令输出作为下一个命令的输入
想问下那个事上一个命令呢?
按照我的执行来看命令2好像是先执行的,命令2就是上一个命令?
lpr命令这样使用不对吗,执行的结果提示没有目标(no default destination available),man lpr看确实需要有个参数。
但这条命令我是从UNIX环境高级编程中看来的
-符号是啥意思呢?
我建立上个文件file1,file2和file3,文件的内容分别是file1,file2和file3(也就是文件名)
我执行filter file2 | cat file1 - file3 或者filter file2 | cat file1 /dev/fd/0 file3
都如下输出
#filter file2 | cat file1 - file3
file1
command not found
file3
这怎么解释呢?
|
filter file2 | cat file1 - file3
这儿的-表示标准输入
现在管道机制的作用把filter file2的输出作为cat的标准输入了
这儿的-表示标准输入
现在管道机制的作用把filter file2的输出作为cat的标准输入了
|
楼主可以将其简化为“cat -”是什么。
cat a.txt是输出a.txt的内容,那么cat -就是输出标准输入的内容。
Ctrl + D发送EOF或者敲回车看效果。
lpr的命令没用过,不过可以试试xargs:
filter file2 | cat file1 /dev/fd/0 file3 | xargs lpr
xargs简单的说就是这样:
ls a.txt | xargs file等效于file a.txt。即把标准输入的内容作为参数。
cat a.txt是输出a.txt的内容,那么cat -就是输出标准输入的内容。
Ctrl + D发送EOF或者敲回车看效果。
lpr的命令没用过,不过可以试试xargs:
filter file2 | cat file1 /dev/fd/0 file3 | xargs lpr
xargs简单的说就是这样:
ls a.txt | xargs file等效于file a.txt。即把标准输入的内容作为参数。
|
命令1 | 命令2
--------------
管道,这里表示命令1的结果作为命令2 的输入
--------------
管道,这里表示命令1的结果作为命令2 的输入
|
程序执行都是从左至右的,左边的是第一个,右边的其次,依次下去。
“怎么第一个命令没有输出?”因为第一个命令输出的结果,直接传给管道右边的第二个命令去了。并做为了第二个命令所需要的输入。
用比较常用的两个命令来示范一下,这样你会比较容易理解吧:
试一下你就知道了
“怎么第一个命令没有输出?”因为第一个命令输出的结果,直接传给管道右边的第二个命令去了。并做为了第二个命令所需要的输入。
用比较常用的两个命令来示范一下,这样你会比较容易理解吧:
echo abcdefg | less
试一下你就知道了
|
了解一下popen函数或者了解一下父子进程管道通信,你会有所觉悟.