Linux 小常識
1.檔名或資料夾分辨
檔名屬性示意:
-rwxrwxrwx
2 root users
293
Oct 1921:24 test
符號 |
性質 |
備忘 |
-rwxrwxrwx |
檔名屬性 |
具十個屬性: 1.檔名類型: [ d ]為 目錄。 [ - ] 為檔案。 [ l ] 為連結檔(link file)。 [ b ] 裝置中可供儲存之週邊商品。。 [ c ]裝置中之序列埠設備。Ex: 鍵盤、滑鼠。 2.以下三個為一組 第一組(2 第二組(5 第三組(8 3.代號名稱: r:可讀 w:可寫 x:可執行 若沒有某項權限,則以[ - ]取代之。 |
2 |
連結數 |
表連結占用的節點 (I-node) |
root |
檔名擁有者 |
- |
users |
檔名所屬群組 |
- |
293 |
檔名容量 |
- |
Oct 1921:24 |
最後修改時間 |
- |
test |
檔名 |
- |
2.檔名或資料夾操作
linux常用指令
指令 |
操作結果 |
語法 |
chgrp |
改變群組名稱 |
chgrp [群組名稱] [檔名] |
chown |
改變擁有者 |
1. chown [-R] [帳號名稱、檔名或目錄][檔名或目錄] 2. chown [-R]
[ID:群組名稱] [檔名或目錄]: 可同時改變擁有者和組群名稱 3. -R:改變同目錄下所有檔名的擁有者 |
chmod |
改變權限 |
1. 屬性數質 r=4 w=2 x=1 2. chmod [xyz] [檔名] xyz: 屬性數質相加 2. 文字類型 chmod [ugoa] [+ -
=] [rwx] [檔名] u
(user) g (group) o
(others) a
(all) + (加入) - (減去) = (設定) ※不同設定的組別需用逗號分開 3. 預設定拿掉所有人的X屬性則 chmod a- x |
cd |
變換目錄 |
cd [相對或絕對路徑] cd ../home:相對路徑寫法 cd /var/www/html:絕對路徑寫法 cd ..:回到上層目錄 cd :回到使用者家目錄 cd ~:回到使用者家目錄 cd ~[檔名]:回到[檔名]這個使用者之家目錄 |
pwd |
顯示目前所在目錄 |
pwd |
mkdir |
建立目錄 |
mkdir [目錄名稱] ※目錄需一層一層建立 |
rmdir |
刪除裡面室空的目錄 |
rmdir [目錄名稱] ※把所有的目錄下的東都殺掉為 rm-rf |
ls |
顯示檔名名稱屬性 |
ls [-ailS] -a:列出全部檔名(連同隱藏檔) -i:列出inode值 -l:詳細列出檔名大小、屬性資料等 -S:以檔名大小排序 |
cp |
複製檔名或目錄 |
cp [-drsu] [來源檔名] [目的檔名] -d:完全拷貝link這個結徑到目的(落未加-d 則會將link到的原始檔名考被到目的) -r:目錄拷貝 -s:做成連結檔(與ln指令功能相同) -u:當來源檔較新,才會執行拷貝動作 |
rm |
刪除 |
rm [-fir][檔名] -i:提供使用者確認(預設) -r:循環刪除,刪到沒東西為止 -f:強力刪除 |
mv |
移動 |
1.mv [-u] [來源檔] [目的檔] -u;來源檔比目的檔還新才會執行移動動作 2. mv[舊檔名][新檔名] 可用來改名 ※若有兩個檔名要移動,則最後一個才是最終的目標,其他的都是來源 |
cat |
由第一行開始 |
cat [-n] [檔名] -n:顯示時,連行號一同輸出 |
tac |
由最後一行開始 |
tac [檔名] |
more |
一頁一頁 |
more [檔名] |
less |
類似more, |
less [檔名] 可使用[pageup][pagedown] |
head |
顯示檔名頭幾行 |
head [-n 想顯示的行數] [檔名] -n:顯示行(未加-n 預設情況下,顯示頭十行) |
tail |
顯示檔名尾幾行 |
tail [-n想顯示的行數] [檔名] -n:顯示行 |
nl |
顯示的時候順道輸出行號 |
nl[擋名] |
ln |
link |
ln[-s] [來源檔] [目的檔] [-s] : 提供symbolic 的連結,無此參數就屬於 hard link ※hardlink: 來源檔被刪,可正常顯示 Symboliclink: 來源檔被刪,無法正常顯示。 |
umask |
使用者在建立檔案或目錄的時候的屬性預設值 |
1. umask 查看預設值 2. umask [數值] ※該預設值需要減到的權限 |
chattr |
改變檔案特殊屬性 |
chattr [+ - =]
[ASacdijsu] [檔名] +:增加 - :減少 =:設定 A:檔案存取時間 (access) 不可被修改 S:資料同步寫入磁碟中 a:資料只能增加,不能刪除。(root限定) c:存取時自動壓縮,讀取時自動解壓縮 d:備份(dump)程序被執行時,會備份 i:不被刪除、更名、連連結也無法寫入或新增資料 j:寫入時先記錄在journal中 s:完全移出硬碟空間 u:與s相反,資料還在硬體空間 |
lsattr |
查看檔名特殊屬性 |
lsattr [-aR] [檔名] -a:將顯示隱藏檔屬性 -R:連同子目錄屬性的資料列出 |
which |
查看可執行檔名 |
which [檔名] |
whereis |
查看檔名位置 |
whereis [-bmsu] [檔名] -b:只找binary檔名 -m:只找說明檔manual路徑下的檔名 -s:只找source來源檔案 -u:找尋沒有說明的檔名 |
3.Vi編寫
(1) Vi說明圖
ˋ
系統模式 |
進入模式系統 |
可使用操作 |
一般模式 |
進入vi檔案即為一般模式 |
可以利用按鍵來移動游標、複製、貼上、刪除、搜尋 |
編輯模式 |
需按下[i , l, o, O, a , A , r , R ],等字母及可進入編輯膜式。回到一般模式需按下[Esc] |
畫面左下方出現[INSERT 或 REPLACE]可以輸入任意字元 |
指令模式 |
一般模式中輸入[ : 或 / ] |
搜尋資料、讀取、存檔、大量取代字元、離開vi、顯示行號 |
(2)建立vi
語法: vi [檔名]
※此時左下角會若為新檔案顯示[New File];存在的檔案則會顯示目前檔名、行數與自元數.
vi 文書處理指令
Vi指令 |
使用vi進入一般模式 |
一般模式 |
|
ctrl + f |
向前一頁 |
ctrl + b |
向後一頁 |
ctrl + d |
向前半頁 |
ctrl + u |
向後半頁 |
0 |
移動到本行第一個字元 |
$ |
移動到本行最後一個字元 |
Shift+G |
移動到檔案最後一行 |
nG |
移動到檔案第n行 |
n<enter> |
往下移動n行 |
/word |
游標後尋找”word”字串 |
?word |
游標前尋找”word”字串 |
|
|
進入編輯模式 |
|
i I |
插入編輯 |
a A |
增加編輯 |
o O |
插入新的一行 |
r R |
取代編輯 |
Esc |
退出編輯模式 |
指令列命令模式 |
|
:w |
資料寫入硬碟 |
:w! |
資料強制寫入硬碟 |
:q |
離開 |
:q! |
強制離開(修過檔案不想存) |
:wq |
儲存後離開 |
:w [filename] |
儲存成另一個檔名 |
:r [filename] |
讀入 檔案 |
:set nu |
顯示行號 |
:set nonu |
取消行號 |
n1,n2 w [filename] |
將n1~n2儲存成name |
yy |
複製游標所在的那一行(常用) |
nyy |
n 為數字。複製游標所在的向下 n 列,例如 20yy 則是複製 20 列(常用) |
u |
復原前一個動作。(常用) |
[Ctrl]+r |
重做上一個動作。(常用) |
:n1,n2s/word1/word2/g |
n1 與 n2 為數字。在第 n1
與 n2 行之間尋找 word1 這個字串,並將該字串取代為 word2 !舉例來說,在 100 到 200 行之間搜尋 vbird 並取代為 VBIRD 則: |
:1,$s/word1/word2/g |
從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 !(常用) |
:1,$s/word1/word2/gc |
從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 !且在取代前顯示提示字元給使用者確認 (confirm) 是否需要取代!(常用) |