程序和進程的概念
程序只可能有一個,但是進程可以有多個 ,相當於進程就是程序的副本
for:root 和user 兩個用戶都登陸進了系統 這兩個用戶都具有bash 進程,但是他們共用一個bash程序 ,進程相當於程序的副本,
2.1 允許一個賬號 多次登陸系統 每個登陸的系統的都是一個單獨的進程 而且彼此相互無關聯,進程是程序執行的實例,因此每個進程都是有生命週期的
2.2 bash的特點
1 命令歷史 命令補全
2命令行編輯
3管道 重定向
4命令行展開
5變量
6文件名通配
7編程
8別名
2.3 命令行編輯 ctrl +a 直接跳轉到命令行行首
ctrl+e 跳轉到命令行行尾
ctrl +u刪除光標至行首的問題
ctrl+k 刪除光標至行尾
ctrl +l 清屏
2.4 命令歷史 history
history -c 清空所有命令歷史
history -d 刪除指定的行
history -d 10 10 表示刪除10行後面的10個命令歷史
history -d 10 刪除第10行的命令
history 在用戶輸入命令的同時將命令保存在內存的緩存區裏面,一旦用戶退出就會將歷史命令保存在用戶的家裏目錄下的./.bash_history 文件中。這種是自動保存的還可以使用
history -w 手動保存命令歷史
2.5環境變量
通過命令 printenv 命令可以查看當前所有的環境變量
1 HISTSIZE
2PATH
命令使用技巧
!n 執行命令歷史中第n條命令
!-n 倒數第N條命令
!!執行上一條命令
!$引用上一個命令的最後一個參數
2.6 alias
alias a=’ls -l ’ 此處的單引號 或者雙引號都可以使用 只是使用的範圍不同
alias 顯示當前定義的所有別名
alias 定義後僅僅針對當前的shell進程有效,如果要全局都有效需要配置bash程序,因爲alias 爲系統內建命令是bash程序自有的,
取消別名 unalias
unalias a
2.7 命令替換
所謂命令替換就是講一個命令執行的結果作爲另外一個命令的參數進行顯示的過程
通用格式$()或者是反引號``(~下面的那個引號)*注意用了反引號就
例如在 /tmp/目錄下創建一個以當前時間爲文件名的文件
touch /tmp/$(date +%Y-%m-%d-%H-%M-%S)
bash支持的引號
1 `` 反引號 作用命令替換
2’’ 單引號 強引用 但是變量不替換
3’”” 雙引用 變量替換
2.8 文件名通配(globbing)
1 *匹配任意字符
2 ?匹配任意當個字符
3[] 匹配指定範圍內的任意單個字符
[a-z] , [A-Z] , [0-9] , [a-zA-Z] , [a-zA-Z0-9]
[^]匹配指定範圍外的任何單個字符
特殊用法
[::]字符集合 ; [[::]]字符集合中的單個字符
[:space:] 空白字符集 除空白字符以外的字符集 ^[:space:]
[:punct:]標點符號集 除了標點以外的其他任意字符 [^[:punct:]]
[:alpha:] 字母表 (大小寫字母集合)
[:lower:] 小寫字母集
[:upper:]大寫字母集
[:digit:]數字集合
[:alnum:] 數字和大小寫字母
這種通配符的表現形式也支持^ (取反)