這一系列的Linux入門都是本人在《鳥哥的Linux私房菜》的基礎上總結的基本內容,主要是記錄下自己的學習過程,也方便大家簡要的了解
Linux Distribution是Ubuntu而不是書本上推薦的CentOS,建議裝雙系統,不要使用虛擬機。
代碼在github上:Linuxpractice
其他內容:
Linux入門篇(一)——基本命令
Linux入門篇(二)——文件
Linux入門篇(三)——文件與目錄
Linux入門篇(四)——Vim的使用與Bash
Linux入門篇(五)——Shell(一)
Shell
一、通配符與特殊符號
通配符 | |
* | 0到無窮個任意的字符 |
? | 一定有一個任意字符 |
[] | 一定由一個[]中的字符 |
[-] | 編碼順序內所有的字符 |
[^] | 一定有一個非[]中的字符 |
特殊符號 | |
# | 批注符號,視為說明,並不執行 |
\ | 轉義字符,將后面的內容還原為原來的意思 |
| | 管道,風格兩個管道命令的界定 |
; | 連續命令的執行 |
~ | 用戶的主文件夾 |
$ | 使用變量的前導符 |
& | 作業控制,命令變成背景下工作 |
! | 邏輯非 |
/ | 目錄符號 |
>,>> | 數據流重定向,輸出 |
<,<< | 數據流重定向,輸入 |
' ' | 無變量置換的變量表示 |
" " | 有變量置換的變量表示 |
` ` | 先執行的命令 |
() | 子shell的起始與結束標志 |
{} | 中間為塊命令的組合 |
二、shell其它指令及功能
- 數據流重定向:某個命令執行后的內容會打印在屏幕上的數據需要傳輸到其它的地方,可以使用 > 和 >>命令輸出到其它的地方(>會覆蓋原有的內容,而>> 不會覆蓋只會累加)。
- 命令質性判斷依據:
cmd1 ; cmd2 執行完cmd1,執行cmd2
cmd1 && cmd2 cmd1正確執行則執行cmd2
cmd1 || cmd2 cmd1正確執行則不執行cmd2
- 管道命令:bash執行命令時會有輸出數據出現,如果這樣的數據需要經過幾道手續才能得到結果,則使用管道命令"|"。后面的命令必須是可以接收STDIN數據的命令。
- 選取命令:
cut可以將一段信息的某一段切出來。
# cut -d ‘分隔字符’ -f field
# cut -c 字符范圍
grep 分析一行的信息
# grep [-acinv] [--color=auto] '字符串' filename
- 排序:
# sort [-fbMnrtuk] [file or stdin]
- 雙向重定向 tee 可以將stdin輸出到屏幕的同時並輸出到文件中 # tee [-a] file
- 字符轉換命令:
# tr [-ds] SET1 ... 刪除一段信息中的文字或者文字替換
# col [-xb] -x tab轉為空格,-b 文字內有轉義字符時直接保留\后的內容
# join [-ti12] file1 file2 兩個文件中相同數據一行加在一起
# paste [-d] file1 file2 不進行對比直接將兩個文件貼在一起
# expand [-t] file tab轉空格
三、Shell Script 程序化腳本
命令行匯整執行,類似與程序的編寫,但是不需要編譯執行,
利用shell的功能所寫的一個純文本的程序,在一些shell語法與命令卸載里面配合正則表達式,管道和重定向達到處理的目的。
shell script執行的方法:
直接命令執行 shell.sh 文件必須具備rx的權限, 以bash進程來執行,通過./she.sh或shell she.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH