zoukankan      html  css  js  c++  java
  • linux shell 脚本攻略学习4

    1.cat命令详解

    cat 是concatnate(拼接)的简写.

    语法:

    cat file1 file2 file3 ....

    作用:将文件内容拼接在一起进行输出

    具体应用:

    1).压缩空白行

    加上-s参数压缩连续的空白行

    amosli@amosli-pc:~/learn$ cat mutil_blank.txt 
    this
    
    is 
    
    
    
    
    
    
    blank!
    amosli@amosli-pc:~/learn$ cat -s mutil_blank.txt #压缩连续的空白行
    this
    
    is 
    
    blank!

    移除所有的空白行,

    tr -s "
    "
    amosli@amosli-pc:~/learn$ cat mutil_blank.txt | tr -s "
    "
    this
    is 
    blank!

    2).将制表符显示为^|

    -T 参数

    amosli@amosli-pc:~/learn$ cat file.py 
    def function():
        var = 5;
            next = 6;
        third = 7;
    
    amosli@amosli-pc:~/learn$ cat -T file.py # 加上参数-T,即可将制表符标示出来!
    def function():
    ^Ivar = 5;
    ^I^Inext = 6;
    ^Ithird = 7;

    3).显示行号

    -n参数

    amosli@amosli-pc:~/learn$ cat -n file.py #加上参数-n即可显示行号
         1    def function():
         2        var = 5;
         3            next = 6;
         4        third = 7;
         5    

    2.录制与回放终端会话

    amosli@amosli-pc:~/learn$ script -t 2> timing.log -a output.session#开始录制
    Script started, file is output.session
    amosli@amosli-pc:~/learn$ hello1
    No command 'hello1' found, did you mean:
     Command 'hello' from package 'hello-debhelper' (main)
     Command 'hello' from package 'hello' (main)
    hello1: command not found
    amosli@amosli-pc:~/learn$ who
    amosli   tty7         2013-12-19 22:58
    amosli   pts/1        2013-12-19 22:59 (:0.0)
    amosli   pts/2        2013-12-19 23:16 (:0.0)
    amosli@amosli-pc:~/learn$ time
    
    real    0m0.000s
    user    0m0.000s
    sys    0m0.000s
    amosli@amosli-pc:~/learn$ date
    2013年 12月 20日 星期五 01:06:41 CST
    amosli@amosli-pc:~/learn$ exit
    exit #结束录制
    Script done, file is output.session

    播放录制:

    amosli@amosli-pc:~/learn$ scriptreplay timing.log output.session #按播放命令序列输出
    amosli@amosli-pc:~/learn$ hello1
    No command 'hello1' found, did you mean:
     Command 'hello' from package 'hello-debhelper' (main)
     Command 'hello' from package 'hello' (main)
    hello1: command not found
    amosli@amosli-pc:~/learn$ who
    amosli   tty7         2013-12-19 22:58
    amosli   pts/1        2013-12-19 22:59 (:0.0)
    amosli   pts/2        2013-12-19 23:16 (:0.0)
    amosli@amosli-pc:~/learn$ time
    
    real    0m0.000s
    user    0m0.000s
    sys    0m0.000s
    amosli@amosli-pc:~/learn$ date
    2013年 12月 20日 星期五 01:06:41 CST
    amosli@amosli-pc:~/learn$ exit
    amosli@amosli-pc:~/learn$ 

    进行多个用户之间进行广播视频会话:打开两个终端

    (1)在终端1中输入以下命令:

    mkfifo scriptfifo

    (2)在终端2中输入以下命令:

    cat scriptfifo

    (3)返回终端1,输入以下命令:

    script -f scriptfifo
    commands...

    这样就实现了广播,在线课堂类的作用,非常神奇!!

    我自己实验的输出:

    终端1:
    amosli@amosli-pc:~$ mkfifo scriptfifo
    amosli@amosli-pc:~$ script -f scriptfifo 
    Script started, file is scriptfifo
    amosli@amosli-pc:~$ who
    amosli   tty7         2013-12-19 22:58
    amosli   pts/1        2013-12-19 22:59 (:0.0)
    amosli   pts/2        2013-12-20 01:14 (:0.0)
    amosli   pts/4        2013-12-20 01:16 (:0.0)
    amosli   pts/5        2013-12-20 01:20 (:0.0)
    amosli   pts/6        2013-12-20 01:20 (:0.0)
    amosli@amosli-pc:~$ 
    
    终端2:
    amosli@amosli-pc:~$ cat scriptfifo
    Script started on 2013年12月20日 星期五 01时21分19秒
    amosli@amosli-pc:~$ who
    amosli   tty7         2013-12-19 22:58
    amosli   pts/1        2013-12-19 22:59 (:0.0)
    amosli   pts/2        2013-12-20 01:14 (:0.0)
    amosli   pts/4        2013-12-20 01:16 (:0.0)
    amosli   pts/5        2013-12-20 01:20 (:0.0)
    amosli   pts/6        2013-12-20 01:20 (:0.0)
    amosli@amosli-pc:~$ 
  • 相关阅读:
    149、你知道空类的大小是多少吗?
    hdoj--2682--Tree()
    hdoj--5053--the Sum of Cube(水)
    Codeforces--602A--Two Bases(水)
    poj--1637--Sightseeing tour(网络流,最大流判断混合图是否存在欧拉图)
    poj--1149--PIGS(最大流经典建图)
    poj--1459--Power Network(最大流,超级源超级汇)
    hdoj--3549--Flow Problem(最大流)
    poj--1237--Drainage Ditches(最大流)
    nyoj--38--布线问题(克鲁斯卡尔)
  • 原文地址:https://www.cnblogs.com/amosli/p/3483143.html
Copyright © 2011-2022 走看看