Linux学习 - 输入输出重定向,管道符,通配符

时间:2024-01-01 18:13:39

一、键盘输入读取read

      read [选项] [变量名]

        -p [显示信息]    在等待read输入时,输出提示信息

        -t [秒数]       指定read输入等待时间

        -n [字符数]     指定read只接收n个字符输入

        -s         隐藏输入数据 

      例

      Linux学习 - 输入输出重定向,管道符,通配符

      Linux学习 - 输入输出重定向,管道符,通配符

二、输入输出重定向

  1 标准输入输出

设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出

  2 输出重定向

类型 符号 作用
标准输出重定向 命令 > 文件 命令结果输出到文件,覆盖
命令 >> 文件 命令结果输出到文件,追加
标准错误输出重定向 错误命令 2> 文件 命令错误结果输出到文件,覆盖
错误命令 2>> 文件 命令错误结果输出到文件,追加
     
正确与错误同时保存 命令 > 文件 2>&1 命令正确结果和错误结果都输出到文件,覆盖
命令 >> 文件 2>&1 命令正确结果和错误结果都输出到文件,追加
命令 &>文件 命令正确结果和错误结果都输出到文件,覆盖
命令 &>> 文件 命令正确结果和错误结果都输出到文件,追加
命令 >> 文件1 2>> 文件2 命令正确结果输出到文件1,命令错误结果输出到文件2,追加
     

  3 输入重定向

    wc [选项] < [文件名]

      -c  统计字节数

      -w  统计单词数

      -l   统计行数

    例:wc < anaconda-ks.cfg    统计anaconda-ks.cfg文件的行数、单词数、字节数

      wc -l <anaconda-ks.cfg    只统计anaconda-ks.cfg文件的行数

三、多命令顺序执行与管道符

  1 多命令

多命令执行符 格式 作用
; 命令1 ; 命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1 && 命令2 逻辑与
|| 命令1 || 命令2 逻辑或

  2 管道符

      命令1 | 命令2    命令1的正确输出作为命令2的操作对象

      例:

      netstat -an | grep ESTABLISHED   显示当前系统中的网络连接,提取正在连接的用户

四、通配符与其他特别符号

  1 通配符

通配符 功能 举例
匹配任意一个字符  
* 匹配任意多个字符  
[] 匹配[]中的任意一个字符  
[-] 匹配[]中的字符范围  
[^] 匹配除[]外的任意字符  

  2 特殊符号

符号 功能
' ' 单引号中的所有特殊字符都没有特殊含义
" "

双引号中的“$”、“·”、“\”是有特殊含义

“$”:调用变量的值

“ ·”:引用命令

“ \”:转义符

`` 反引号中的内容是系统命令
$() 与反引号一样,(通常使用这个符号)
# 注释
$ 调用变量的值
\ 转义符