Shell学习笔记...未完待续...

来源:互联网 发布:韩国人觉得中国人知乎 编辑:程序博客网 时间:2024/05/15 23:49

一、cat的用法总结:

cat是一个简单而通用的命令,用来显示内容,创建文件,还可以用来显示控制字符;但是在使用cat是请注意,它不会在文件分页符处停下来,它会一下显示完整个文件。

如果希望每次显示一页,可以使用more或者cat命令的输出通过管道传递到另外一个具有分页功能的命令中:

     cat myfile | more

或者是:

     cat myfile | pg

cat的一般命令形式是

     cat [options] filename1 ... filename2 ...

cat的最有用常见命令是:

-v 显示控制字符;

如果希望可以显示名为myfile的文件,可以用:

     cat myfile

那么希望可以显示多个文件,那么可以用 :

     cat myfile1 myfile2 myfile3 ...

那么假如希望将多个文件中的内容全部输入到另外一个文件中,那么就需要使用重定向:

     cat myfile1 myfile2 myfile3 > bigfile

cat还有一中比较好玩的方式,就是如果你想要去使用一个简单的文字编辑器,那么直接如下命令:

    cat >filename

PS:如果想退出,直接Crtl+Z即可;

二、管道

管道的定义:可以通过管道把一个命令的输出传递给另一个命令作为输入。管道用竖杠“|”表示。

它的一般形式是:

    命令1 | 命令2

命令1的输出作为命令2的输入,就像一个管道一样,左边部分的出口是右边部分的入口,如下图:

     ls | grep quarter1.doc


sed、awk和grep都很适合用管道,特别是在简单的一行命令中。

接下来使用awk作为例子:

    who | awk '{print $1"\t"$2}'

如果你希望列出系统中所有的文件系统,可以使用管道把df命令的输出传递给awk命令,awk命令显示出其中的第一列。

你还可以再次使用管道把awk的结果传递给grep命令,去掉最上面的filesystem。

    $ df -k | awk '{print $1}' | grep -v "filesystem"

    /dev/sda2
    /dev/sda3

如果你还希望将前面的额“/dev/”去掉,那么在最后再次加入一个管道,并使用sed命令:

    df -k | awk '{print $1}' | grep -v "Filesystem" | sed "s/\/dev\///g"

    sda2
    sda3

三、tee命令

tee命令作用可以用字母T来形象的表示。它把输出的一个副本书送到标准输出,另一个副本拷贝到相应的文件中。

如果希望在看到输出的同时,也将其存入另一个文件,那么这个命令再适合不过了。

它的一般形式是:

     tee -a filenames

其中,-a表示追加到文件末尾

例如:我们将who的命令结果,输出到终端屏幕上,同时保存到文件who.out:

    who | tee who.out

使用图来表示这个例子就是:


我们还可以使用-a来将不同的命令使用同一个日志文件:

    echo "test" | tee -a who.out

    echo "test2" | tee -a who.out

    test
    test2


    

PS:未完待续.....


0 0
原创粉丝点击