Shell介紹



Shell 和 Python function的異同
相同點:

都有單元代碼(units of code)和名稱(name)、都接受自變量(arguments)

不同點:

shell以文本形式出示結果,因此,易懂易讀發生什麼操作
shell命令用來運行程序,而函數用來組織程序
shell的命令有點類似函數調用

大多數用shell跑的指令都是為了啟動整個程式中的部分功能(most commands that you run in the shell are actually whole programs that are started up as separate processes on your computer. >>  is a lot like calling a function in program)



Terminal interface 定義



★ prompt (命令提示)




Terminal V.S. Shell

Shell、GNU Bash、python解釋器、TCSH、KSH、Seashell的運行都略有不同,且都具有各種不同的功能。



Shell輸入輸出的判讀



Shell中的特別字符處理

當輸入字串後出現" > "這樣的符號,原本的提示符號($)消失時
輸入內容包含單引號、括號會出現這樣的情況


如要找回Shell的提示符號($)或找出錯誤訊息,需輸入匹配的另一個引號或括號
輸入另一個引號" ' "後,提示訊息就出現了
另一種解決方式:加入"\"
在" ' "符號前面加入" \ ",則Shell可正確判讀

在" ' "或是" ! "符號前面加入" \ ",則Shell可正確判讀
或是直接退出系統:當要退出系統可輸入:exit 或是 CTRL+D

另外,當進入某種奇怪的狀態且不熟悉時可輸入:CTRL+C 或 搜尋解決方案



Shell從Web上下載文件:curl+網址+-o 檔名




Shell指令

查詢下過的指令的歷史紀錄
history:會列出下過的指令
從以前到現在所下過的指令列表(不只是當天)

CTRL+R(又稱reverse I search):使用上下鍵查詢用過的指令
使用上或下鍵查詢過去的指令

打印工作目錄
pwd

增加目錄  mkdir
mkdir 檔案名稱
刪除目錄 rmdir
rmdir 檔案目錄

刪除目錄(檔案中有資料的) rm -r
rm -r 目錄名稱

移動檔案,方法如下:
1. mv 檔案名稱  目錄名稱/檔案名稱
2. mv 檔案名稱  目錄名稱

Globbing(通配)
當想對一堆具有類似名稱的文件進行操作時使用,用於在Unix shell中按照名稱匹配文件,是用於文件名的一種模式匹配

* 可以匹配任意字符串
下命令前globbing資料夾中檔案
ls *匹配字符串

可在同一模式中使用兩個 *
( * 可以與零個字符匹配)
下命令前globbing資料夾中檔案
ls  匹配字符串 * 匹配字符串
* 也可位於模式的中間
下命令前globbing資料夾中檔案

ls 部分匹配字串*部分匹配字串

{} 中的字符將匹配任意備選內容
下命令前globbing資料夾中檔案
ls app.{匹配字符串,匹配字符串}

? 可匹配任意一個字符
下命令前globbing資料夾中檔案
ls 部分匹配字串?部分匹配字串
ls 部分匹配字串??部分匹配字串


[] 內的字符列表,可以匹配這些 [] 中的任意一個字符
下命令前globbing資料夾中檔案
ls 部分匹配字串[部分匹配字串]部分匹配字串

Linux中的文件名區分大小寫,Globbing也同樣,如果兩種都需要則可使用 {}
下命令前globbing資料夾中檔案
ls *匹配字符串(大寫)
ls *匹配字符串(小寫)
ls *{匹配字符串(大小寫)}




參考資料:
Linux Command Line Basics




No comments:

Post a Comment