精华内容
下载资源
问答
  • 一个进程需要从某个位置读取输入并将输出写入屏幕或文件。从 shell提示符运行的命令通常会从键盘读取其输入,并将输出发送其终端窗口。 进程使用称为文件描述符的编号通道来获取输入并发送输出。所有进程在开始...

    标准输入、标准输出和标准错误

    一个进程需要从某个位置读取输入并将输出写入到屏幕或文件。从 shell提示符运行的命令通常会从键盘读取其输入,并将输出发送到其终端窗口。
    进程使用称为文件描述符的编号通道来获取输入并发送输出。所有进程在开始时之前需具有三个文件描述符。标准输入(通道 0)从键盘读取输入。标准输出(通道 1)将正常输出发送到终端。标准错误(通道 2)将错误消息发送到终端。如果程序打开连接至其他文件的单独连接,则可能要使用更大编号的文件描述符。
    在这里插入图片描述

    编号通道名称描述默认连接用法
    0stdin标准输入键盘仅读取
    1stdout标准输出终端仅写入
    2stderr标准错误终端仅写入
    3filename其他文件读取/写入

    重定向输出到文件

    I/O 重定向将默认通道目标位置替换为代表输出文件或设备的文件名。利用重定向,通常发送到终端窗口的进程输出和错误消息可以捕获为文件内容、发送到设备或者丢弃。
    重定向 stdout 可以阻止进程输出显示在终端上。如下表所示,仅重定向 stdout 不会阻止stderr 错误消息显示在终端上。如果文件不存在,则会创建文件。如果文件确实存在,但是所需的重定向没有附加到文件,则该文件的内容将被覆盖。特殊文件/dev/null 以静默方式丢弃重定向到其自身的通道输出,并且始终是空文件。
    在这里插入图片描述
    在这里插入图片描述
    重定向操作的顺序非常重要。以下序列将标准输出重定向到 file,然后将标准错误作为标准输出重定向到相同位置(file)。
    > file 2>&1
    但是,下一个序列以相反的顺序执行重定向。这会将标准错误重定向到标准输出的默认位置(终端窗口,因此没有任何更改),然后仅将标准输出重定向到 file。
    2>&1 > file
    因此,某些人更倾向于使用合并重定向运算符:
    &>file 而不是 >file 2>&1
    &>>file 而不是 >>file 2>&1(在 Bash 4/RHEL 6 和更高版本中)

    展开全文
  • Linux实时将所有输出重定向到文件

    千次阅读 2020-08-24 18:07:21
    我们经常需要在服务器上挂起一个服务程序后台运行,然后将该程序的所有输出重定向到某个文件,这样即使我们注销了用户,程序依然在linux服务器上运行着,log等信息都能够实时的写到文件中。 但是重定向的输出经常...

    Linux的重定向机制十分好用,除了编写代码本身的重定向,shell本身支持重定向的功能。

    我们经常需要在服务器上挂起一个服务程序后台运行,然后将该程序的所有输出重定向到某个文件,这样即使我们注销了用户,程序依然在linux服务器上运行着,log等信息都能够实时的写到文件中。

    但是重定向的输出经常无法实时刷新到指定文件中,当我们调试程序时,这将给我们带来巨大的困扰。其实只需要关闭重定向输出的缓冲,即可实现实时刷新的效果。

    命令如下:

    nohup unbuffer command > file.out 2>&1 &

    命令的说明如下:

    上面的unbuffer命令需要额外安装expect-devel,用来实时刷新。

    nohup命令用来忽略所有挂断(SIGHUP)信号,让你的程序即使在用户注销后依然继续运行。

    command是任何一段你想要执行的shell命令。

    > file.out 代表将command运行结果重定向到当前目录下的file.out文件中(如果要每次运行的结果追加到file.out后面,可以用>>而不是>)。

    2 >&1表示将标准错误输出cerr的所有输出也都重定向到标准输出cout中,这样file.out中就会记录command命令运行过程中所有标准输出。(参见shell脚本的重定向)

    最后一个&表示后台运行该command。

    展开全文
  • linux常用命令-重定向与管道操作 重定向输出>和>> > 重定向输出,覆盖原有内容;>>重定向输出,又追加功能;示例: cat /etc/passwd > a.txt 将cat /etc/passwd 输出的内容添加a.txt中 cat /etc/...

    linux常用命令-重定向与管道操作



    重定向输出>和>>

    >  重定向输出,覆盖原有内容;>>重定向输出,又追加功能;示例:

    cat /etc/passwd > a.txt          将cat /etc/passwd 输出的内容添加到a.txt中

    cat /etc/passwd >> a.txt       将cat/etc/passwd 输出的内容追加到a.txt

    ifconfig > ifconfig.txt        将ifconfig输出的内容写入到添加到ifconfig.txt中

     将内容输出到终端

    管道 |

    管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。示例

    ls --help | more  分页查询帮助信息

    ps –ef | grep java  查询名称中包含java的进程,ps -ef查询所有进程;

    ifconfig | more

    cat index.html | more

    &&命令执行控制:

    命令之间使用&& 连接,实现逻辑与的功能。

    只有在&& 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。 

    只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。

    mkdir test && cd test 创建test目录并进入test目录。



    linux常用命令-系统管理命令(ps kill)

    重点掌握ps kill 命令即可。

    date 显示或设置系统时间

    date  显示当前系统时间

    date -s “2014-01-01 10:10:10“  设置系统时间

    NTP服务器(上海) :ntp.api.bz

    美国:time.nist.gov 

    微软公司授时主机(美国) :time.windows.com 
    台警大授时中心(台湾):asia.pool.ntp.org

    df 显示磁盘信息

    df –h  友好显示大小

    free 显示内存状态

    free –m 以mb单位显示内存组昂头

    top 显示,管理执行中的程序

    ps 正在运行的某个进程的状态

    ps –ef  查看所有进程

    ps –ef | grep ssh 查找某一进程

    kill 杀掉某一进程

    kill 2868 杀掉2868编号的进程

    kill -9 2868 强制杀死进程

    du 显示目录或文件的大小。

    du –h 显示当前目录的大小

    who 显示目前登入系统的用户信息。

    uname 显示系统信息。

    uname -a 显示本机详细信息。


    依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称






    展开全文
  • linux常用命令——重定向

    千次阅读 2013-04-14 10:36:08
    重定向能够实现Linux命令的输入输出与文件之间重定向,以及实现将多个命令组合起来实现更加强大的命令。这部分涉及的比较多的命令主要有: cat:连接文件sort:排序文本行uniq:忽略或者报告重复行wc:统计文件...

    转自:http://www.cnblogs.com/wawlian/archive/2012/12/16/2820351.html

    重定向能够实现Linux命令的输入输出与文件之间重定向,以及实现将多个命令组合起来实现更加强大的命令。这部分涉及到的比较多的命令主要有:

    • cat:连接文件
    • sort:排序文本行
    • uniq:忽略或者报告重复行
    • wc:统计文件的行数、词数、字节数
    • grep:打印匹配制定模式的行
    • head:输出文件的头部
    • tail:输出文件的尾部
    • tee:从标准输入读,并往标准输出或者文件写

    1.重定向标准输出

    使用>可以将本来出现在屏幕的标准输出信息重定向到一个文件中。我们需要将某个目录下所有文件及目录的列表保存在一个文本文件中:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    jerry@ubuntu:~$ ls  -l /usr/  > ls .txt
    jerry@ubuntu:~$ cat  ls .txt
    total 64
    drwxr-xr-x   2 root root 20480 2012-12-08 17:33 bin
    drwxr-xr-x   2 root root  4096 2012-02-03 17:21 games
    drwxr-xr-x  37 root root  4096 2012-12-08 17:33 include
    drwxr-xr-x  58 root root 20480 2012-12-08 17:33 lib
    lrwxrwxrwx   1 root root     3 2012-12-08 01:29 lib64 -> lib
    drwxr-xr-x  11 root root  4096 2012-12-08 02:38 local
    drwxr-xr-x   2 root root  4096 2012-12-08 02:25 sbin
    drwxr-xr-x 106 root root  4096 2012-12-08 02:18 share
    drwxrwsr-x   4 root src   4096 2012-12-08 01:33 src

    现在我们ls一个不存在的目录,并且重定向到文本文件中:

    ?
    1
    2
    jerry@ubuntu:~$ ls -l /usr/notexist > ls.txt
    ls: cannot access /usr/notexist: No such file or directory

    这时我们看到错误信息。再看看文件ls.txt,我们会发现:

    ?
    1
    2
    jerry@ubuntu:~$ ls  -l ls .txt
    -rw-r--r-- 1 jerry jerry 0 2012-12-15 22:22 ls .txt

    我们可以看到,这个文件中没有任何内容。一方面,ls以及很多Linux命令的错误信息会打印到标准输出文件中,而这里的内容是不会被>操作符重定向到文件中的。另一方面,我们看到,之前在ls.txt文件中的内容也没了,也就是说>操作符是会覆盖原有内容的。

    使用>>可以在实现重定向时不覆盖原有内容,而是在文件末尾追加内容。我们可以看一下例子:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    jerry@ubuntu:~$ ls  -l /usr/  >> ls .txt
    jerry@ubuntu:~$ ls  -l /usr/  >> ls .txt
    jerry@ubuntu:~$ cat  ls .txt
    total 64
    drwxr-xr-x   2 root root 20480 2012-12-08 17:33 bin
    drwxr-xr-x   2 root root  4096 2012-02-03 17:21 games
    drwxr-xr-x  37 root root  4096 2012-12-08 17:33 include
    drwxr-xr-x  58 root root 20480 2012-12-08 17:33 lib
    lrwxrwxrwx   1 root root     3 2012-12-08 01:29 lib64 -> lib
    drwxr-xr-x  11 root root  4096 2012-12-08 02:38 local
    drwxr-xr-x   2 root root  4096 2012-12-08 02:25 sbin
    drwxr-xr-x 106 root root  4096 2012-12-08 02:18 share
    drwxrwsr-x   4 root src   4096 2012-12-08 01:33 src
    total 64
    drwxr-xr-x   2 root root 20480 2012-12-08 17:33 bin
    drwxr-xr-x   2 root root  4096 2012-02-03 17:21 games
    drwxr-xr-x  37 root root  4096 2012-12-08 17:33 include
    drwxr-xr-x  58 root root 20480 2012-12-08 17:33 lib
    lrwxrwxrwx   1 root root     3 2012-12-08 01:29 lib64 -> lib
    drwxr-xr-x  11 root root  4096 2012-12-08 02:38 local
    drwxr-xr-x   2 root root  4096 2012-12-08 02:25 sbin
    drwxr-xr-x 106 root root  4096 2012-12-08 02:18 share
    drwxrwsr-x   4 root src   4096 2012-12-08 01:33 src

    2.重定向标准错误信息到文件

    没有单纯的一个操作符可以将标准错误信息重定向到文件中。要实现这一点有两种办法。第一种使用文件描述符,在shell中,默认用数字0,1,2分别代表标准输入、标准输出、标准错误。要将标准错误信息重定向到文件中,可以如下操作:

    ?
    1
    2
    3
    jerry@ubuntu:~$ ls  /usr/notexist  2>lserr.txt
    jerry@ubuntu:~$ cat  lserr.txt
    ls : cannot access /usr/notexist : No such file  or directory

    如果要同时将标准输出和标准错误信息同时输出到文件中,则需要如下操作:

    ?
    1
    2
    3
    jerry@ubuntu:~$ ls  -l /usr/notexist  > lsboth.txt 2>&1
    jerry@ubuntu:~$ cat  lsboth.txt
    ls : cannot access /usr/notexist : No such file  or directory

    在比较新的shell中,还可以有另一种办法如下:

    ?
    1
    2
    3
    jerry@ubuntu:~$ ls  -l /usr/notexist  &> lsboth.txt
    jerry@ubuntu:~$ cat  lsboth.txt
    ls : cannot access /usr/notexist : No such file  or directory

    3.屏蔽不想看到的信息

    Linux中有一个特殊的文件/dev/null,这个文件叫做bit bucket,可以接受输入信息但是什么都不做。因此要抑制命令的输出信息,只需要如下操作:

    ?
    1
    ls  /usr/  > /dev/null

    4.重定向标准输入

    cat命令可以接受一组文件为参数,将这些文件复制到标准输出。我们前面的例子中已经多次使用到cat命令来将文本文件的内容读取到屏幕上。cat还有一个很重要的功能:接受一组文件,然后通过重定向将他们重新组合到一个文件中。我们看一个例子:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    jerry@ubuntu:~$ cat  ls1
    aaaaaaaaaaaaaaaaaaaaaaaa
    jerry@ubuntu:~$ cat  ls2
    bbbbbbbbbbbbbbbbbbbbbbbb
    jerry@ubuntu:~$ cat  ls1 ls2 > ls
    jerry@ubuntu:~$ cat  ls
    aaaaaaaaaaaaaaaaaaaaaaaa
    bbbbbbbbbbbbbbbbbbbbbbbb

    cat ls1 ls2 > ls这个命令将ls1和ls2文件中的内容合并到ls文件中了。cat命令的这种功能不仅仅适用于文本文件,同样对二进制文件有效。这个场景主要在将多个压缩包文件合并到一个压缩包中用到。

    cat也可以不传递参数,这种情况下,cat会重定向标准输入到标准输出。我们看一个例子:

    ?
    1
    2
    3
    4
    5
    jerry@ubuntu:~$ cat
    aaaaaaaaaaa
    aaaaaaaaaaa
    bbbbbbbbbbbbbb            
    bbbbbbbbbbbbbb

    在这个例子中,键入一行文本,按下回车键之后,刚才输入的内容会立刻显示到屏幕,因此我们看到每两行文本都是一样的。当然我们可以使用<来表示输入重定向。我们要想将文件内容重定向到输出,可以使用cat < file,只是这种方式不如直接cat file来得直接。

    5.管道

    Linux提供|操作符,该操作符可以将一个命令的输出作为另一个命令的输入,这样通过多个命令的协作来完成一些比较复杂的内容。比如,我们可以通过uniq命令来排除重复的行。但是uniq命令往往需要和sort命令配合使用。因为uniq接收一组排好序的文本,而刚好sort可以将文本行排序。我们看下面的例子:

    ?
    1
    2
    3
    4
    5
    6
    7
    jerry@ubuntu:~$ cat  ls
    aaaaaaaaaaaaaaaaaaaaaaaa
    bbbbbbbbbbbbbbbbbbbbbbbb
    aaaaaaaaaaaaaaaaaaaaaaaa
    jerry@ubuntu:~$ cat  ls  | sort  | uniq
    aaaaaaaaaaaaaaaaaaaaaaaa
    bbbbbbbbbbbbbbbbbbbbbbbb

    我们还可以对uniq命令加上-d选项来查看重复的行,如下:

    ?
    1
    2
    jerry@ubuntu:~$ cat  ls  | sort  | uniq  -d
    aaaaaaaaaaaaaaaaaaaaaaaa

    使用wc命令可以统计文本的行数、单词书和字节数。可以和例如ls命令的输出一起组成管道命令:

    ?
    1
    2
    jerry@ubuntu:~$ ls  /bin  /usr/bin/  | sort  | uniq  | wc
         764     763    6347

    如果仅仅想要统计行数,只需要在wc命令后面添加-l选项即可。wc命令常用来统计代码的行数。

    ?
    1
    find  cn/ -name "*.php"  | xargs  cat | wc  -l

    上面这个例子统计了cn目录下所有php文件的行数之和。

    grep命令用来查找匹配的模式,并且打印包含该模式的行。举个例子:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    jerry@ubuntu:~$ ls  /bin  /usr/bin/  | sort  | uniq  | grep  zip
    bunzip2
    bzip2
    bzip2recover
    funzip
    gpg-zip
    gunzip
    gzip
    unzip
    unzipsfx
    zipgrep
    zipinfo

    在这个例子中,zip就是一个模式,表示包含字符串zip。我们在/bin和/usr/bin目录下找出名字带有zip的程序,并且打印这些程序的名字。grep命令可以使用正则表达式,功能也非常强大,这里我们不侧重介绍。

    head和tail命令也常常用于组成管道命令。head可以查看文件或者文本的前面部分。tail查看文件或者文本的末尾部分。二者都可以接收-n选项,表示显示的行数。看例子:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    jerry@ubuntu:~$ ls  /bin/  | head  -n 5
    bash
    bunzip2
    busybox
    bzcat
    bzcmp
    jerry@ubuntu:~$ ls  /bin/  | tail  -n 5
    zforce
    zgrep
    zless
    zmore
    znew

    tail还有一个重要的用处,就是实时显示某些程序的日志文件。tail能接受一个选项-f,实时显示出新添加到文件末尾的行数。这样一旦有新的行追加到日志文件的末尾,就会被实时显示在后面。

    ?
    1
    2
    jerry@ubuntu:~$ tail  -f /var/log/messages
    Dec 16 06:40:20 ubuntu rsyslogd: [origin software= "rsyslogd"  swVersion= "4.2.0"  x-pid= "533"  x-info= "http://www.rsyslog.com" ] rsyslogd was HUPed, type  'lightweight' .

    最后再介绍一个tee命令,它可以接收标准输入的内容并且同时将内容重定向到标准输出以及一个或者多个文件中,直接看例子:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    jerry@ubuntu:~$ ls  /bin/  | tee  tee .txt | grep  zip
    bunzip2
    bzip2
    bzip2recover
    gunzip
    gzip
    jerry@ubuntu:~$ cat  tee .txt
    bash
    bunzip2
    busybox
    bzcat
    bzcmp
    bzdiff
    bzegrep
    bzexe
    bzfgrep
    bzgrep
    bzip2
    bzip2recover
    bzless
    bzmore
    cat
    checkpassword
    chgrp
    chmod
    chown
    chvt
    cp
    cpio
    dash
    date
    dd
    df
    dir
    dmesg
    dnsdomainname
    domainname
    dumpkeys
    echo
    ed
    egrep
    false
    fgconsole
    fgetty-login
    fgetty-login2
    fgrep
    fuser
    fusermount
    grep
    gunzip
    gzexe
    gzip
    hostname
    ip
    kbd_mode
    kill
    less
    lessecho
    lessfile
    lesskey
    lesspipe
    ln
    loadkeys
    login
    ls
    lsmod
    mkdir
    mknod
    mktemp
    more
    mount
    mountpoint
    mt
    mt-gnu
    mv
    nano
    nc
    nc.openbsd
    netcat
    netstat
    nisdomainname
    ntfs-3g
    ntfs-3g.probe
    ntfs-3g.secaudit
    ntfs-3g.usermap
    open
    openvt
    pidof
    ping
    ping6
    plymouth
    ps
    pwd
    rbash
    readlink
    rm
    rmdir
    rnano
    run-parts
    sed
    setfont
    setupcon
    sh
    sh.distrib
    sleep
    static-sh
    stty
    su
    sync
    tailf
    tar
    tempfile
    touch
    true
    ulockmgr_server
    umount
    uname
    uncompress
    unicode_start
    vdir
    which
    ypdomainname
    zcat
    zcmp
    zdiff
    zegrep
    zfgrep
    zforce
    zgrep
    zless
    zmore
    znew

     

     

    参考书:

    《The Linux Command Line》    William E. Shotts, JR.    no starch press




    1重定向


    1.1      重定向符号

    >               输出重定向到一个文件或设备 覆盖原来的文件
    >!              输出重定向到一个文件或设备 强制覆盖原来的文件
    >>             输出重定向到一个文件或设备 追加原来的文件
    <               输入重定向到一个程序 

    1.2标准错误重定向符号

    2>             将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件  b-shell
    2>>           将一个标准错误输出重定向到一个文件或设备 追加到原来的文件
    2>&1         将一个标准错误输出重定向到标准输出 注释:1 可能就是代表 标准输出
    >&             将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件  c-shell
    |&              将一个标准错误 管道 输送 到另一个命令作为输入

    1.3命令重导向示例

    在 bash 命令执行的过程中,主要有三种输出入的状况,分别是:
    1. 标准输入;代码为 0 ;或称为 stdin ;使用的方式为 <
    2. 标准输出:代码为 1 ;或称为 stdout;使用的方式为 1>
    3. 错误输出:代码为 2 ;或称为 stderr;使用的方式为 2>


    [test @test test]# ls -al > list.txt
    将显示的结果输出到 list.txt 文件中,若该文件以存在则予以取代!


    [test @test test]# ls -al >> list.txt
    将显示的结果累加到 list.txt 文件中,该文件为累加的,旧数据保留!


    [test @test test]# ls -al  1> list.txt   2> list.err
    将显示的数据,正确的输出到 list.txt 错误的数据输出到 list.err


    [test @test test]# ls -al 1> list.txt 2> &1
    将显示的数据,不论正确或错误均输出到 list.txt 当中!错误与正确文件输出到同一个文件中,则必须以上面的方法来写!不能写成其它格式

    [test @test test]# ls -al 1> list.txt 2> /dev/null
    将显示的数据,正确的输出到 list.txt 错误的数据则予以丢弃! /dev/null ,可以说成是黑洞装置。为空,即不保存。

    1.4为何要使用命令输出重导向

    • 当屏幕输出的信息很重要,而且我们需要将他存下来的时候;
    • 背景执行中的程序,不希望他干扰屏幕正常的输出结果时;
    • 一些系统的例行命令(例如写在 /etc/crontab 中的文件)的执行结果,希望他可以存下来时;
    • 一些执行命令,我们已经知道他可能的错误讯息,所以想以『 2> /dev/null 』将他丢掉时;
    • 错误讯息与正确讯息需要分别输出时。

    2   管线命令 ( pipe )

    就如同前面所说的, bash 命令执行的时候有输出的数据会出现,那么如果这群数据必需要经过几道手续之后才能得到我们所想要的格式,应该如何来设定?这就牵涉到管线命令的问题了( pipe ),管线命令使用的是『 | 』。


    例子:简单的管线命令
    假设我们要读取 last 这个指令中,那个 root 登入的『次数』应该怎么作?
    那么我所进行的步骤是:
    1. 执行 last ,将所有这个月的所有人登入数据取出来;
    2. 使用 grep 将上面的输出数据(stdout)当中的 root 撷取出来,其它的不要;
    3. 使用 wc 这个可以计算行数的指令将上一步的数据计算行数!
    由于 last 的输出是一行代表一次登入,所以只要计算几行就代表登入几次的意思,经由上面三个步骤,将 last 数据逐步的筛选,就可以得到我们的数据了!整个命令可以写成如下: [test @test bin]# last | grep root | wc -l
    这个管线命令『 | 』仅能处理经由前面一个指令传来的正确信息,也就是standard output ( STDOUT ) 的信息,对于 stdandard error 并没有直接处理的能力。

    2.1基本的管线命令指令介绍

    • cut
    语法:[root @test /root ]# cut -d "分隔字符" [-cf] fields
    参数说明:
    -d :后面接的是用来分隔的字符,预设是『空格符』
    -c :后面接的是『第几个字符』
    -f :后面接的是第几个区块?
    范例:[root @test /root]# cat /etc/passwd | cut -d ":" -f 1
    将 passwd 这个文件里面,每一行里头的 : 用来作为分隔号,而列出第一个区块!也就是姓名所在啦!
    [root @test /root]# last | cut -c1-20
    将 last 之后的数据,每一行的 1-20 个字符取出来!
    • sort
    语法:[root @test /root ]# sort [-t 分隔符] [(+起始)(-结束)] [-nru]
    参数说明:
    -t 分隔符:使用分隔符来隔开不同区间,预设是 tab
    +start -end:由第 start 区间排序到 end 区间
    -n :使用『纯数字』排序(否则就会以文字型态来排序)
    -r :反向排序
    -u :相同出现的一行,只列出一次!
    范例:[root @test /root]# cat /etc/passwd | sort将列出来的个人账号排序!
    [root @test /root]# cat /etc/passwd | sort -t: +2n将个人账号中,以使用者 ID 来排序(以 : 来分隔,第三个为 ID ,但第一个代号为 0 之故)
    [root @test /root]# cat /etc/passwd | sort -t: +2nr反相排序啰!
    • wc
    语法:[root @test /root ]# wc [-lmw]
    参数说明:
    -l :多少行
    -m :多少字符
    -w :多少字
    范例:[root @test /root]# cat /etc/passwd | wc -l这个文件里头有多少行?
    [root @test /root]# cat /etc/passwd | wc -w这个文件里头有多少字!?
    • uniq这个指令用来将『重复的行删除掉只显示一个』
    语法:[root @test /root ]# uniq
    范例:[root @test /root]# last | cut -d" " -f1 | sort | uniq
    • tee命令重定向到文件的同时将数据显示在屏幕上
    语法:[root @test /root ]# last | tee last.list | cut -d " " -f1
    范例:[root @test /root]# last | tee last.list | cut -d " " -f1
    • tr
    语法:[root @test /root ]# tr [-ds] SET1
    参数说明:
    -d :删除 SET1 这个字符串  
    -s :取代掉重复的字符!
    范例:[root @test /root]# last | tr '[a-z]' '[A-Z]' <==将小写改成大写
    [root @test /root]# cat /etc/passwd | tr -d : <== : 这个符号在 /etc/passwd 中不见了!
    [root @test /root]# cat /home/test/dostxt | tr -d '\r' > dostxt-noM
    • split
    语法:[root @test /root ]# split [-bl] 输入文件 输出文件前导字符
    参数说明:
    -b :以文件 size 来分
    -l :以行数来分
    范例:[root @test /root]# split -l 5 /etc/passwd test <==会产生 testaa, testab, testac... 等等的文件
    说明:在 Linux 底下就简单的多了!你要将文件分割的话,那么就使用 -b size 来将一个分割的文件限制其大小,如果是行数的话,那么就使用 -l line 来分割!
    管线命令在 bash 的连续的处理程序中是相当重要的!另外,在 log file 的分析当中也是相当重要的一环。
    管道输送到一个命令的标准输入可以使用标准输入参数”-“ 进行更仔细的控制.如cat命令的示例
    eg:  sort mylist | more
    sort mylist | cat –n | lpr
    pwd | cat – mylist | lpr

     

    摘自:http://hi.baidu.com/suchshow/blog/item/972286fb6467ae1a6d22eb9e.html






    展开全文
  • Linux重定向机制十分好用,我们经常需要在服务器上挂起一个服务程序,然后将该程序的所有输出重定向到某个文件,这样即使我们注销了用户,程序依然在linux服务器上运行着。 但是重定向的输出经常无法实时刷新...
  • 所以,想要将对应信息输出到某个文件中,就用对应的数字加上重定向符号'>',实现将这些信息,重新定向对应的文件中,即可。 用法示例: 1.想要把make输出的全部信息,输出到某个文件中,最常见的办法就是: make ...
  • 执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >a.txt,这时我们就不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了。tee命令读取标准输入,把这些...
  • 当在Linux系统中打开一个文件时,标准输入、标准输出、标准错误输出是默认打开的 指定重定向 文件file_redirect、file_stdout(必须是已经存在的) 为了验证是否实验成功可以事先在文件中写入一句话:Successful ...
  • 命令:nohup java ... 说明:  1)将cn.aofeng.LoopApplication设置成后台运行,并且将标准输出的日志重定向文件Loop.log。  2)nohup 表示不挂断运行,&表示以后台方式运行。
  • Linux命令学习(重定向)

    2018-04-07 20:32:32
    1.重定向概念 标准输入,输出,和错误目前为止,我们用到的许多程序都会产生某种输出。这种输出,经常由两种类型组成。 第一,程序运行结果;这是说,程序要完成的功能。第二,我们得到状态和错误信息, 这些告诉我们程序...
  • Linux下的输出重定向

    2016-07-18 14:48:36
    Linux下的输出重定向
  • 1. 按固定周期执行命令:  while true do  cmd(shell 命令)  sleep x(x为秒数) done n=0; while(($n&lt;=100)); do top -n 1; n=$((n + 1)); sleep 10; done 2.获取当前时间 date "+%Y-%m-%d %....
  • 1.想要把make输出的全部信息,输出到某个文件中,最常见的办法就是: make xxx > build_output.txt 此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到的。 2....
  • 在window上可能存在想要将执行cmd命令的结果在屏幕输出的同时保持到某个文件中,以便后续查看,下面即可实现上述功能: 1)因后面会用到指令tee,而tee为Liunx指令,所以首先需下载UnxUtils.zip...
  • linux 文件重定向

    万次阅读 2018-08-25 23:11:41
    我们通过只前的博客对文件io有了一定的了解。...将原来要输出标准输出的内容,从新定向输出指定的其他文件中。 举个比方:这个贴着1 的盒子原来放糖果用,后来你不想放糖果了,把糖果倒了出来...
  • Linux 六 管道、重定向

    2017-05-09 20:55:05
    概述:在Linux系统中,大多数命令功能都很简单,每个命令往往只实现一个或几个很简单的功能,我们可以通过将多个命令组合在一起使用,以达到完成某个复杂功能的目的; Linux中,几乎所有的命令的返回数据都是纯文本...
  • linux 输入/输出重定向

    2018-02-24 11:10:18
    文件描述符(fd)是与某个打开的文件或数据流相关联的整数。文件描述符0,1,2是系统预留的。0 ---- stdin(标准输入) 1 ---- stdout(标准输出) ...重定向到文件mkdir /tmp/10 cd /tmp/10 echo "123" >
  • 输出重定向,用来将输出道屏幕的数据,重定向到一个指定位置(一般是指一个文件) 不管制定的文件是否存在,都会创建新文件保存数据 >> 输出重定向,区别使用 >> 是追加数据 2.查看文件内容 和 ...
  • 1. 标准输入与输出  我们知道,执行一个shell命令行时通常会自动... 我们以cat命令为例,cat命令的功能是从命令行给出的文件中读取数据,并将这些数据直接送标准输出。若使用如下命令:  $ cat config  将会
  • linux重定向内容文本文件

    千次阅读 2012-01-10 11:51:19
    echo 仅仅是输出到文件中  tee 除了输出到文件中,还得输出控制台 AWK介绍 0.awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。 1.awk语言的最基本功能是在文件或字符串中基于指定规则...
  • 将原本要输出屏幕的数据信息,重新定向到某个指定的文件中。比如:每天凌晨定时备份数据,希望将备份数据的结果保存到某个文件中。这样第二天通过查看文件的内容就知道昨天备份的数据是成功还是失败。 2.为何要...
  • 不要重复发明轮子 开源文化的核心理念之一就是不要重复发明轮子,很多的开源软件都是现有...在Linux系统中,大多数命令都很简单,很少出现复杂功能的命令,每个命令往往只实现一个或者几个很简单的功能,我们可以通...
  • cmd 2> file 把 stderr 重定向到 file 文件中 cmd 2>> file 把 stderr 重定向到 file 文件中(追加) cmd >> file 2>&1 把 stderr 和 stderr 一起重定向到 file 文件中 cmd < file >file2 cmd 命令以 file 文件作为 ...
  • Linux后台执行命令

    2019-10-29 10:04:42
    如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中: command > log.out 2>&1 & 这样,所有的标准输出和错误输出都将被重定向到一个叫做log.out的文件中。 ...
  • Linux 输入输出重定向

    2017-01-23 20:43:57
    数据重定向就是将某个命令执行后应该要出现在屏幕上的数据传输其他地方。涉及标准输入、标准输出和标准错误输出,它们的设备、设备文件名、文件描述符具体如下表: (1) 输出重定向 输出重定向分为...
  • Linux 后台执行命令

    2014-12-22 11:58:56
    拿scp命令举例 1 nohup scp -r /home/...(2>&1 将错误输出重定向到标准输入,这里的标准输入是/dev/null ,也可以写到某个文件中 ) 2 Ctrl+z 暂停命令 3. bg 后台运行 4 ps -ef | grep scp 查看命令是否
  • Linux数据流重定向

    2018-10-31 16:11:54
    文章目录一、Linux命令执行过程的数据传输情况二、示例三、命令输出重定向的应用场景 一、Linux命令执行过程的数据传输情况 标准输入标准输出标准错误文件命令文件/设备文件/设备 系统执行一个命令的时候,这个命令...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,062
精华内容 16,824
关键字:

linux执行某个命令重定向到文件

linux 订阅