bash及其特性

进程

程序在内存中执行称为进程
进程:在每个进程看来,当前主机上只有内核和当前进程
进程是程序的副本,进程是程序的执行实例。
用户工作环境:
bash:
  #:管理员
  $:普通用户
shell,子shell进程:bash中可以在开启一个bash进程

bash特性:

  1. 命令历史、命令补全
  2. 管道、重定向
  3. 命令别名
  4. 命令行编辑
  5. 命令行展开
  6. 文件名通配
  7. 变量
  8. 编程 (shell脚本)

1. 命令行编辑:

1) 光标跳转:
Ctrl +a:跳到命令行首
Ctrl + e:跳到命令行尾
Ctrl +右箭头:向右跳一个单词
Ctrl + 左箭头:向左跳一个单词
Ctrl +f :向前一个字符
Ctrl + b:向后一个字符
2) 删除内容:
Ctrl +u:删除光标至命令行首的内容
Ctrl +k:删除光标至命令行行尾的内容
3) other:
Ctrl +l :清屏

2. 命令历史:

上下箭头切换命令历史

1) 查看命令历史:history

    -c:清空命令历史
    -d OFFSET [n]:删除指令位置的命令历史
    -w:保存命令历史至历史文件中(.bash_history)

    环境变量
    PATH:命令搜索路径
    HISTSIZE:命令历史缓冲区大小

2) 命令历史的使用技巧:
  1. !n:执行命令历史中第n条命令
  2. !-n: 执行命令历史中倒数第n条命令
  3. !!: 执行上一条命令
  4. !string:执行命令历史中最近一个以指定字符串开头额命令
  5. !$:引用前一个命令的最后一个参数;
  6. Esc . :引用前一个命令的最后一个参数;
  7. Alt + . :引用前一个命令的最后一个参数;
3) 命令补全:

PATH:环境变量下查找
Tab:敲一下补全唯一命令,两下显示开头的所有命令

4) 路径补全:

打头的路径下查找
Tab:敲一下补全唯一路径,两下显示开头的所有路径

3. 命令别名

alias CMDALIAS='COMMAND [option] [arguments]'
在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围仅在当前shell进程
ualias CMDALIAS:取消命令别名
\CMD:使用命令本意

4. 命令替换 $(COMMAND)\反引号 `COMMAND`

把命令中某个子命令替换为其执行结果的过程
echo "This directory is (date +%F-%H-%M-%S).txt

5. bash支持的引号

` `:命令替换
" ":弱引用,可以实现变量替换
' ': 强引用,不完成变量替换

6. 文件名通配,globbing

  • : 任意长度的任意字符
    ?:任意个字符
    [ ]:匹配指定范围内的任意个字符
    [abc],[a-m],[a-z],[A-Z],[0-9],[a-zA-Z]
    [:space:]:空白字符集
    [:punct:]:标点符号
    [:lower:]:小写字母
    [:upper:]:大写字母
    [:alpha:]:大小写字母
    [:digit:]:数字
    [:alnum: ]:数字和大小写字母
    [^]:匹配指定范围之外的任意单个字符
    [[:alpha:]]*[[:space:]]*[^[:alpha:]]:字母开头,非字母结尾,中间有空格。

man 7 glob 获取特殊字符说名

你可能感兴趣的:(bash及其特性)