1.shell简介

  • 命令从广义上是用户向系统内核发出的控制信号请求,是与之交互的文本流
  • shell命令是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互
  • shell脚本是集成了若干个命令并集合了控制语句的之后的几何体,交给shell批量执行
  • Linux中的shell命令详见 Linux常用命令大全

1)执行流程

  • 用户在命令行提示符下键入命令文本,开始与shell进行交互
  • 之后。shell将用户的命令或者按键转化为内核所能理解的指令
  • 控制操作系统做出响应,将命令传递到控制相关硬件设备
  • 然后,shell将输出结构通过shell提交给用户

2)shell命令格式

  • 通常一条命令包含三个要素:命令名称、选项、参数。命令名称是必须具备的,选项和参数都可能是可选项

  • $ command [options] argument1 argument1	
    
    • 注意
      • shell提示符号中"$“表示为其他用户,”#"为超级用户
      • command命令需要严格区分大小写
      • options参数由"-"引导
  • 一条命令的三要素用空格隔开如sudo apt-get install rxvt

  • 若将多个命令在一行书写,用分号(;)将各个命令隔开如sudo apt-get upgrade;sudo apt-get update

  • 如果一条命令不能在一行写完,在行尾使用反斜杠(\)标明该条命令还未结束

  • 使用TAB键可以补全命令,按两下TAB键可以查看同名命令或者文件;使用上下键,查看历史命令记录

2.shell中的特殊字符

1)通配符

  • shell中的通配符:用于处理查找一组名称类型相同的文件,提高效率
通配符含义实例
星号(*)匹配任意长度的字符串用file_*.txt,匹配file_zhang.txt,file_le.txt,file_wang.txt等同类型文件
问号(?)匹配一个长度的字符用file_?.txt,匹配file_1.txt,file_2.txt,file_3.txt文件
方括号([…])匹配其中指定的一个字符用file_[otr].txt,匹配file_o.txt,file_t.txt,file_r.txt特定字符
方括号([ - ])匹配指定的一个字符范围用file_[a-z].txt,匹配file_a.txt,file_b.txt,file_c.txt,… ,file_z.txt范围内的字符
方括号([^ …)除了其中指定的单个字符,均可匹配用file_[ ^ otr ].txt,匹配除了file_o.txt,file_t.txt,file_r.txt特定字符以外的其他字符

操作应用如下图,这里创建了三个file类名文件

在这里插入图片描述

2)管道

  • shell中的管道可以将一些列命令连接起来,表示为第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又作为第三个命令的输入,以此类推,通常使用"|"符号连接命令管道

    • 如下所示可以借助管道命令,将ls命令作为wc命令的输入,得到该目录下的文件数目

    • ls /usr/bin | wc -w
      

在这里插入图片描述

  • 通过管道和grep命令的结合,可以查看文档和终端的信息,

  • ps -ef | grep bash
    

在这里插入图片描述

3)输入输出重定向

  • 输入/输出重定向目的在于改变shell命令或者程序默认的标准输入/输出目标。重新定向到新的目标
  • Linux中的默认的标注输入定义为从键盘输入,标准输出定义为从终端窗口输出
  • 用于为当前操作改变输入或者输出,迫使某人特定命令的输入或者输出来源为外部文件
重定向符号含义实例
>file将file文件重定向为输出源,新建模式ls /usr >lsoutput.txt,将ls /usr命令的执行结果,写到lsoutput.txt中去,如没有此文件将新建,若存在此文件,将覆盖
>>file将file文件重定向为输出源,追加模式ls /usr >>lsoutput.txt,将ls /usr命令的执行结果,追加到lsoutput.txt文件已有的内容之后
<file将file文件重定向为输入源wc < file1,将file1中的内容作为输入源传给wc命令
2>或&>将由命令产生的错误信息输入到文件中ls notexistfile.txt 2>err.log,使用ls命令查看一个不存在的文件名的时候,将系统错误信息提示保存在err.log文件中

使用举例
如下图为重定向输入
在这里插入图片描述
如下图为重定向新建和追加
在这里插入图片描述
如下图为重定向查看
在这里插入图片描述

4)命令置换

  • 命令置换就是将一个命令的输出作为另一个命令的参数,如

  • ls `pwd`			   # 列出当前目录下的文件
    echo "today is 'date'"  # 写入当前时间
    

出作为另一个命令的参数,如

  • ls `pwd`			   # 列出当前目录下的文件
    echo "today is 'date'"  # 写入当前时间
    
Logo

更多推荐