標籤:style blog http io color ar os 使用 sp
第三章:基本的bash shell命令
bash程式使用命令列參數來修改所啟動shell的類型
參數 |
描述 |
-c string |
從string中讀取命令並處理他們 |
-r |
啟動限制性shell,限制使用者在預設目錄下活動 |
-i |
啟動互動性shell,允許使用者輸入 |
-s |
從標準輸入讀取命令 |
環境變數PS1、PS2
PS1:控制預設命令列提示符格式
PS2:控制後續命令列提示符格式
bash shell提示符字串中使用的特殊字元
字元 |
描述 |
\a |
警示字元 |
\d |
“日 月 年”格式顯示的日期 |
\e |
ASCII逸出字元 |
\h |
本地主機名稱 |
\H |
完全限定名(FQDN) |
\j |
shell當前管理的任務數 |
\l |
shell的終端裝置名稱中的基名 |
\n |
ASCII分行符號 |
\r |
ASCII斷行符號符 |
\s |
shell的名稱 |
\t |
24小時制HH:MM:SS格式的目前時間 |
\T |
12小時制HH:MM:SS格式的目前時間 |
\@ |
12小時制am/pm格式的目前時間 |
\u |
目前使用者的使用者名稱 |
\v |
bash shell的版本 |
\V |
bash shell的發行版本 |
\w |
當前工作目錄 |
\W |
當前工作目錄的基名 |
\! |
這個命令在bash shell記錄中的位置 |
\# |
這個命令在當前命令列的位置 |
\$ |
普通使用者下的美元符,root使用者下的井號 |
\nnn |
與8進位nnn對應的字元 |
\\ |
反斜線 |
\[ |
開始一個控制字元序列 |
\] |
結束一個控制字元序列 |
Linux檔案系統
Linux PC上安裝的第一塊硬碟為根磁碟機。根磁碟機包含了虛擬目錄的核心,其他目錄都是從那裡開始建立的
掛載點(mount point)是虛擬目錄中用於分配額外存放裝置的目錄
ls
(其餘參數及例子見#2 )
單字母 |
全字 |
描述 |
-A |
--almost-all |
不要輸出“.”和“..”檔案 |
|
--author |
作者 |
-b |
--escape |
輸出不可列印字元的8進位值 |
|
--block-size=size |
按size位元組大小的塊來計算塊大小(塊數) |
-B |
--ignore-backups |
不要列出名稱中包含波浪線(~)的條目(波浪線用來表示備份的副本) |
-F |
--classify |
給條目追加檔案類型標識符 |
|
--file-type |
只在部分檔案類型(非可執行檔)後追加檔案類型標識符 |
|
--format=word |
將輸出格式化成across(交叉)、commas(逗號)、horizontal(水平)、long(長)、single-column(單列)、verbose(詳細)或vertical(垂直) |
|
--group-directories-first |
在檔案之前列出所有目錄 |
-G |
--no-group |
長列表輸出格式下,不要顯示組名(in a long listing, don‘t print group names) |
-h |
--human-readable |
列印大小 |
|
--si |
和-h相同,但進位為1000 |
-i |
--inode |
顯示每個檔案的索引值(inode)(見#1 ) |
-L |
--dereference |
對於連結檔案,顯示原檔案資訊 |
-n |
--numeric-uid-gid |
顯示數字類型的userid和groupid以替代名字 |
-o |
|
長列表輸出格式下,不要顯示組資訊(like -l, but do not list group information) |
-S |
--sort=size |
按檔案大小排序輸出 |
-U |
--sort=none |
不要將輸出排序 |
-v |
--sort=version |
按文本版本排序 |
-x |
|
按行而非列輸出條目 |
-X |
--sort=extension |
按副檔名排序輸出 |
建立檔案(touch) (見#1 )
複製檔案(cp) (見#1 )
cp命令參數
參數 |
描述 |
-a |
歸檔檔案,並保留他們現有的屬性 |
-b |
建立已存在目標檔案的備份,而非覆蓋它 |
-d |
保留 |
-f |
強制覆蓋已存在的目標檔案,不提示 |
-i |
在覆蓋目標檔案之前提示 |
-l |
建立檔案連結而非複製檔案 |
-p |
如果可能,保留檔案屬性 |
-r |
遞迴複製檔案 |
-R |
遞迴複製目錄 |
-s |
建立一個符號連結而非複製檔案 |
-S |
覆蓋預設的備份檔案的尾碼(預設為~) |
-u |
僅在源檔案比目標檔案新的情況下複製 |
-v |
詳細模式,解釋到底發生了什麼 |
-x |
僅限於當前檔案系統的複製 |
(見#1 )
連結檔案 (見#1 )
永久連結會建立一個獨立的檔案,其中包含源檔案的資訊以及位置。引用永久連結檔案等同於引用了源檔案
只能在同種儲存媒體上的檔案之間建立永久連結。不能在不同掛載點下的檔案之間建立永久連結,但是可以建立軟連結
如果用cp複製一個連結到另一個源檔案的檔案,那麼複製的是源檔案的另一個副本,而不是連結檔案
可以建立一個指向源檔案的新連結,而不用複製連結檔案
可以建立指向同一檔案的多個連結,但不要建立指向其他符號連結檔案的多個符號連結(這樣會產生一個連結檔案鏈,容易混淆、斷掉)
重新命名檔案(mv) (見#1 ,#2 )
刪除檔案(rm) (見#1 )
當刪除所有此檔案的永久連結時,此檔案才會被刪除
刪除軟連結指向的檔案後,軟連結指向無效的檔案
建立目錄(mkdir) (見#2 )
刪除目錄(rmdir) (見#2 )
查看檔案統計資訊(stat) (見#1 )
查看檔案類型(file) (見#2 )
查看整個檔案(cat、more、less) (見#16 ,#21 )
cat -T:定位字元用^I代替
more
文法
more [-s ] [file ...]
-s(squeeze,擠壓) :將多個空白行壓縮成一個
基本命令 |
h |
顯示協助資訊 |
<Space>、z |
前進一屏 |
q |
退出程式 |
|
進階命令 |
= |
顯示當前行號 |
<Return>、s |
前進一行 |
d |
前進(向下)半屏 |
f |
前進一屏 |
b |
後退一屏 |
/pattern |
向前搜尋指定模式 |
/ |
重複上次搜尋 |
!command |
執行指定的shell命令 |
v |
使用當前檔案啟動vi編輯器 |
. |
重複執行前一個命令 |
n |
在檔案中尋找下溢出匹配已指定運算式的內容 |
‘ |
跳到指定運算式匹配到的第一處內容 |
CTRL+L |
重繪當前屏 |
|
查看部分檔案(head、tail) (見#16 )
《Linux命令列與shell指令碼編程大全》 第三章 學習筆記