Linux——bash的簡單使用
bash及其特性:
1、bash實質上是一個可執行的程序,一個用戶的工作環境。
2、每一個shell下可以再打開一個shell,新打開的shell稱為子shell,每一個shell之間相互獨立。
3、可以使用pstree命令查看當前shell下的子shell個數
使用:
1、光標跳轉:
Crtl + a : 跳到命令行行首
Crtl + e : 跳到命令行行尾
Crtl + d : 刪除光標所在字符
Crtl + u : 刪除光標到命令行行首的字符
Crtl + k :刪除光標到命令行行尾的字符
Crtl + l : 清屏
Crtl + "左/右箭頭" : 跳過整個單詞
2、命令歷史
bash會自動記錄過去執行的命令,並緩存進內存。
查看歷史命令: history
清空歷史:-c
刪除從第n個命令開始的m個字符,m默認為1:-d + n m
保存命令歷史到歷史文件:-w
顯示並執行第n條命令: !n
執行歷史命令中倒數第n條命令:! -n
執行上一條命令: !!
執行命令歷史中的最近一個以指定字符串開頭的命令:!+"",例如之前有一條命令:source /etc/profile ,想再次執行時只需: ! source 即可。
引用上一個命令的最后一個參數: !$
當用戶正常退出時,內存中的命令歷史會被保存到用戶目錄中的bash history文件中,這是一個隱藏文件,bash history保存的歷史命令數量是有限的,最大為1000條,HISTSIZ 這是一個環境變量,表示命令歷史緩存區大小。
3、命令別名
alias設置命令別名,例如 alias cls= 'clear'
alias NAME = COMMAND [option] 相當於變量賦值。只能在當前shell聲明周期內有效,要想永久生效,需修改root下的.bashrc 文件,vi /root/.bashrc 然后把 alias cls= 'clear' 添加進去,再執行命令 souce /root/.bashrc(是修改立即生效) 即可。
alias : 查看所有已經定義的命令別名
ualias : 取消已經定義的命令別名
如果加一個命令別名與一個命令的名稱相同,則使用時shell下運行的是該別名表示的命令,如果想要使用原命令,則使用\COMMAND表示命令本身。
4、命令替換
將命令中的某個子命令替換為它的執行結果
表示形式:command $(子命令) ,command `子命令` 此處是單反引號而不是單引號
bash支持的引號:` ` 反引號,用於命令替換。" " 雙引號,弱引用,可以實現變量替換。' ' 單引號,強引用,不能實現變量替換。
5、文件通配
* 用於表示任意長度的任意字符串,任意長度包括0
? 用於表示任意單個字符
[] 匹配任意指定范圍內的任意單個字符串
[:space:]表示空白符號
[:punct:]表示標點符號
[:lower:]表示小寫字母
[:upper:]表示大寫字母
[:alpha:]表示所有大小寫字母
[:digit:]表示數字
[:alnum:]表示數字和字母
[^] 表示匹配任意指定范圍外的單個字符
時間
#!/bin/bash
time=$(date "+%Y年%h%d日%H時%M分%S秒")
echo "hello world !開始執行 ${time}"
