bash及其特性

shell: 外壳

GUI:Gnome, KDE, Xfce

CLI: sh, csh, ksh, bash, tcsh, zsh

 

Linux允许同一个用户登录多次

root, student

程序:进程

 

进程:在每个进程看来,当前主机上只存在内核和当前进程

进程是程序的副本,进程是程序执行实例

 

用户工作环境:

bash:

         #

         $

        

shell,子shell

bash--bash


命令行编辑:

光标跳转:

         Ctrl+a:跳到命令行首

         Ctrl+e:跳到命令行尾

         Ctrl+u: 删除光标至命令行首的内容

         Ctrl+k: 删除光标至命令行尾的内容

         Ctrl+l: 清屏



令历史特性: history

shell进程会其会话中保存此前用户提交执行过的命令

history是shell的内置命令

1. 命令语法格式:

  history [-c] [-d OFFSET] [n]

  history -anrw [FILENAME]

  history -ps VALUE [VALUE...]

  -c: 清空命令历史;

  -d offset(偏移量):删除指定命令历史,offset为history显示出来的命令数字

  -r: 从文件读取命令历史至历史列表中;

  -w:把历史列表中的命令追加至历史文件中;

  history #:显示最近的#条命令;


环境变量:PATH:命令搜索路径

                   HISTSIZE :命令历史缓冲区大小(echo $HISTSIZE)



对命令历史常用的用法:

!n  :执行命令历史中的第n条命令

!-n  :执行命令历史中的倒数第n条命令

!!   :执行上一条命令

!string :执行命令历史中最近一个以指定字符串开头的命令

!$:引用上一个命令的最后一个参数 =Esc+.和Alt+.


命令补全:Tab键     

    路径补全:Tab键

命令别名:

#alias CMDALIAS(命令别名)=COMMAND(命令)

在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围仅为当前shell进程。

#alias 查看当前所有定义的命令别名。

#unalias  cmdalias

#\CMD 使用不带参数的命令自身。

命令替换:$(command),    反引号:`command`

把命令中某个子命令替换为其执行结果的过程

例:创建一个文件文件名为file-当前时间.txt  # touch file-$(date +%F-%H-%M-%S).txt

例:打印当前目录:#echo “The current directory is $(pwd).”

文件名统配:

*:任意长度的任意字符

?:任意单个字符

[]:  匹配指定范围内的任意单个字符

    [abc] ,[a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-zA-Z]

     [:space:]:空白字符

    [:punct:]:标点字符

    [:lower:]:小写字母

    [:upper:]:大写字母

    [:alpha:]:大小写字母

    [:digit:]:数字

    [:alnum:]:数字和大小写字母   

# man 7 glob  获得以上列表说明

[^]:匹配指定范围外的任意字符