1. Shell脚本执行方式

  • 直接运行,需要在脚本文件头部指定解释器,如#!/bin/bash
./myshell.sh
  • 运行时指定shell解释器
bash myshell.sh

2. Shell命令历史

  • 查看所有历史命令
history
  • 执行上一条历史命令
!!
  • 执行历史命令中第n条命令
!n 
  • 执行历史命令中最后一个以"str"字符串开头的命令
# 不建议使用,尤其是创建、修改、删除文件这样的操作
!str
  • 在历史命令中搜索匹配命令
快捷键:control + r

3. 别名

注意:通过命令方式设置别名只对当前shell有效,希望永久生效需要修改~/.bashrc文件

  • 查看别名
alias
  • 定义别名(尽量不要与原始命令重名,避免引起不必要的麻烦)
alias 别名='命令'
  • 删除别名
unalias 别名

4. 快捷键

  • control + a
    光标移动到命令行开头
  • control + e
    光标移动到命令行结尾
  • control + c
    终止当前命令
  • control + u
    删除(剪切)光标之前的命令
  • control + k
    删除(剪切)光标之后的命令
  • control + y
    粘贴control+u或control+k剪切的内容
  • control + r
    在历史命令中搜索匹配命令
  • control + d
    退出当前终端
  • control + s
    暂停屏幕输出
  • control + q
    恢复屏幕输出

5. 输入输出与重定向

参考:IO重定向与管道

6. 多命令顺序执行

  • ;
    命令之间无任何逻辑关系
  • &&
    逻辑与:前面的命令执行成功,后面的命令才会执行
  • ||
    逻辑或:前面的命令执行失败,后面的命令才会执行

7. 通配符

  • ?
    匹配一个任意字符

匹配0个或多个任意字符

  • [xyz...]
    匹配括号中的一个字符(如:[abc]表示匹配a或b或c)
  • [x-y]
    匹配括号中的范围,常见格式如下
[a-z]:一个小写字母( x )
[A-Z]:一个大写字母( x )
[a-z0-9]:所有小写字母和数字( x )
[0-9]:0-9所有数字
[[:upper:]]:所有大写字母
[[:lower:]]:所有小写字母
[[:alpha:]]:所有字母
[[:digit:]]:0-9所有数字
[[:alnum:]]:所有的字母和数字
[[:space:]]:所有空白字符
[[:punct:]]:所有标点符号
  • [^xyz]
    匹配指定范围外的任意单个字符,常见格式如下
[^[:upper:]]:非大写字母
[^[:lower:]]:非大写字母
[^0-9]:非数字
[^[:alnum:]]:非字母和数字

8. 特殊符号

  • ''
    单引号中的所有特殊符号都没有特殊含义
  • ""
    双引号中的所有特殊符号都没有特殊含义(除$、``、\ )
  • `命令`
    反引号表示命令结果
  • $(命令)
    表示命令结果,同`命令`(建议使用这种,避免``与''看不清)
  • $
    $+字符串表示变量,如$PATH
  • **\ **
    转义符