ITPub博客

首页 > Linux操作系统 > Linux操作系统 > linux之shell 输入输出

linux之shell 输入输出

原创 Linux操作系统 作者:liqilin0429 时间:2011-01-24 14:26:21 0 删除 编辑

如果希望创建一个新文件,并向其中输入一些内容,只需使用cat命令把标准输出重定向到该文件中,这时cat命令的输入是标准输入—键盘,你输入一些文字,输入完毕后按< C T R L - D >结束输入。这真是一个非常简单的文字编辑器!
[root@oracle10g qilin]# cat sujuan.txt
falfkajlfkafkafjalfaklfa
fadklfalfafkaflakjfka
fadkfajflkafa[root@oracle10g qilin]#
显示frist.sh funtest.sh grep.sh这三个文件
[root@oracle10g qilin]# cat frist.sh funtest.sh grep.sh
#!/bin/bash
#this is test
name=admin
echo "${name}liqilin welcome"
#!/bin/bash
#a simple shell script. example
#a Function
function say Hello()
{
echo "Enter you name:"
read name
echo "Hello() $name"
}
如果希望创建一个名为b i g f i l e的文件,该文件包含上述三个文件的内容,可以把上面命令的输出重定向到新文件中:
[root@oracle10g qilin]# cat frist.sh funtest.sh grep.sh >bigfile
使用c a t命令来显示控制字符。这里有一个对从 D O S机器上f t p过来的文件进行检察的例子,在这个例子中,所有的控制字符< C T R L - M >都在行末显示了出来。

引号是一个特殊字符,所以必须要使用反斜杠 \来使s h e l l忽略它的特殊含义
[root@oracle10g qilin]# echo "\"/dev/rmt0"\"
"/dev/rmt0"
可以追加到一个文件的末尾,这意味着不覆盖原有的内容:
$ echo "$LOGNAME carried them out at `date`">>myfile
列出系统中所有的文件系统,可以使用管道把df命令的输出传递给awk命令,awk显示出其中的第一列。你还可以再次使用管道把 awk的结果传递给grep命令,去掉最上面的题头f i l e s y s t e m。
[root@oracle10g qilin]# df -k |awk '{print $1}' |grep -v "Filesystem"
/dev/sda1
tmpfs
[root@oracle10g qilin]# df -k |awk '{print $1}'
Filesystem
/dev/sda1
tmpfs
tee命令作用可以用字母 T来形象地表示。它把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中。如果希望在看到输出的同时,也将其存入一个文件,那么这个命令再合适不过了。它的一般形式为:tee -a files 其中,- a表示追加到文件末尾
[root@oracle10g qilin]# who |tee who.out
root     pts/1        2010-08-11 10:52 (192.168.12.187)
command < filename >filename2 把c o m m a n d命令以f i l e n a m e文件作为标准输入,以 f i l e n a m e 2文件作为标准输出
[root@oracle10g qilin]# sort sujuan.out
command < filename 把c o m m a n d命令以f i l e n a m e文件作为标准输入
[root@oracle10g qilin]# sort #!/bin/bash
echo " PID is $$"
echo "this name 3 is $1"
echo "this name 4 is $2
echo "this name 5 is $3"
echo "this name 6 is $4"
echo "this name 7 is $5"
echo "this name  is $0"
[root@oracle10g qilin]# sort who.out
root     pts/1        2010-08-11 10:52 (192.168.12.187)
g r e p命令没有找到该文件,缺省地向终端输出了一个错误信息。现在让我们把错误重定向到文件/ d e v / n u l l中(实际就上是系统的垃圾箱):
[root@oracle10g qilin]# grep "wang" qilin1 2>/dev/null 这样所有的错误输出都输送到了/ d e v / n u l l,不再出现在屏幕上。
在对更重要的文件进行操作,可能会希望保存相应的错误。下面就是一个这样的例子,这一次错误被保存到g r e p . e r r文件中:
[root@oracle10g qilin]# grep "wang" qilin1 2>juan.err

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20976446/viewspace-684541/,如需转载,请注明出处,否则将追究法律责任。

上一篇: linux之shell find
下一篇: linux之shell 其他
请登录后发表评论 登录
全部评论

注册时间:2010-08-13

  • 博文量
    100
  • 访问量
    196884