linux_cmd 筆記
主鍵盤(pán)快捷鍵
bash的快捷鍵和emacs保持一致碴犬,用慣其中之一再用另一個(gè)程序會(huì)很順手的蠢古。請(qǐng)記住一條原則:盡量使用主鍵盤(pán)快捷鍵而不使用移動(dòng)光標(biāo)鍵和編輯鍵奏窑。因?yàn)槭植槐仉x開(kāi)主鍵盤(pán)是效率最高的仿荆,這樣在你一生之中所節(jié)省的來(lái)回移動(dòng)手的時(shí)間絕對(duì)可以用星期來(lái)計(jì)算朱躺,是絕對(duì)值得你花十分鐘的時(shí)間記住這些快捷鍵的雇锡。
功能 | 快捷鍵 | 助記 |
---|---|---|
上 | Ctrl-p | previous |
下 | Ctrl-n | next |
左 | Ctrl-b | backward |
右 | Ctrl-f | forward |
Del | Ctrl-d | delete光標(biāo)后面的 |
Home | Ctrl-a | the first letter |
End | Ctrl-e | end |
Backspace | Backspace | delete光標(biāo)前面的 |
Clear | Ctrl-l | clear清屏 |
輸入bind -P可以查看所有的鍵盤(pán)綁定
bash
CTRL相關(guān)的快捷鍵
Ctrl-A 相當(dāng)于HOME鍵箫锤,用于將光標(biāo)定位到本行最前面
ctrl+B: 光標(biāo)左移一個(gè)字母
ctrl+C: 殺死當(dāng)前進(jìn)程
ctrl+D: 退出當(dāng)前Shell
Ctrl-E 相當(dāng)于End鍵贬蛙,即將光標(biāo)移動(dòng)到本行末尾
Ctrl+F: 相當(dāng)于右箭頭鍵,用于將光標(biāo)向右移動(dòng)一格
ctrl+H: 刪除光標(biāo)前一個(gè)字符谚攒,同backspace鍵相同
Ctrl+J: 相當(dāng)于回車(chē)鍵
ctrl+K: 清除光標(biāo)后至行尾的內(nèi)容
ctrl+L: 清屏阳准,相當(dāng)于clear
Ctrl+P 相當(dāng)于上箭頭鍵,即顯示上一個(gè)命令
Ctrl+N 相當(dāng)于下箭頭鍵馏臭,即顯示下一個(gè)命令
ctrl+R: 搜索之前打過(guò)的命令野蝇。會(huì)有一個(gè)提示,根據(jù)你輸入的關(guān)鍵字進(jìn)行搜索bash的history
ctrl+U: 清除光標(biāo)前至行首間的所有內(nèi)容
ctrl+W: 移除光標(biāo)前的一個(gè)單詞
ctrl+T: 交換光標(biāo)位置前的兩個(gè)字符
ctrl+Y: 粘貼或者恢復(fù)上次的刪除
ctrl+D: 刪除光標(biāo)所在字母;注意和backspace以及ctrl+h的區(qū)別括儒,這2個(gè)是刪除光標(biāo)前的字符
ctrl+F: 光標(biāo)右移
ctrl+Z: 把當(dāng)前進(jìn)程轉(zhuǎn)到后臺(tái)運(yùn)行绕沈,使用fg命令恢復(fù),或者使用bg命令后臺(tái)運(yùn)行
目錄和文件
類(lèi)Unix系統(tǒng)目錄結(jié)構(gòu)
ubuntu沒(méi)有盤(pán)符這個(gè)概念帮寻,只有一個(gè)根目錄/乍狐,所有文件都在它下面
/ 根目錄
bin //系統(tǒng)可執(zhí)行程序,如命令
boot //內(nèi)核和啟動(dòng)程序固逗,所有和啟動(dòng)相關(guān)的文件都保存在這里
grub //引導(dǎo)器相關(guān)文件
dev //設(shè)備文件
etc //系統(tǒng)軟件的啟動(dòng)和配置文件浅蚪,系統(tǒng)在啟動(dòng)過(guò)程中需要讀取的文件都在這個(gè)目錄。如LILO參數(shù)抒蚜、用戶賬戶和密碼掘鄙。
home //用戶的主目錄耘戚。下面是自己定義的用戶名的文件夾
lib //系統(tǒng)程序庫(kù)文件,這個(gè)目錄里存放著系統(tǒng)最基本的動(dòng)態(tài)鏈接共享庫(kù)嗡髓,類(lèi)似于Windows下的system32目錄,幾乎所有的應(yīng)用程序都需要用到這些共享庫(kù)收津。
media //掛載媒體設(shè)備饿这,如光驅(qū)、U盤(pán)等
mnt //目錄是讓用戶臨時(shí)掛載別的文件系統(tǒng)撞秋,如掛載Windows下的某個(gè)分區(qū)长捧,ubuntu默認(rèn)還是掛載在/media目錄。
opt //可選的應(yīng)用軟件包(很少使用)
proc //這個(gè)目錄是系統(tǒng)內(nèi)存的映射吻贿,我們可以直接訪問(wèn)這個(gè)目錄來(lái)獲取系統(tǒng)信息串结。也就是說(shuō),這個(gè)目錄的內(nèi)容不在硬盤(pán)上而是在內(nèi)存里。
sbin //管理員系統(tǒng)程序
selinux
srv
sys //udev用到的設(shè)備目錄樹(shù)肌割,/sys反映你機(jī)器當(dāng)前所接的設(shè)備
tmp //臨時(shí)文件夾
usr //這是個(gè)最龐大的目錄卧蜓,我們要用到的很多應(yīng)用程序和文件幾乎都存放在這個(gè)目錄下。]
bin //應(yīng)用程序
game //游戲程序
include //add by ray 應(yīng)用程序的庫(kù)的頭文件
lib //應(yīng)用程序的庫(kù)文件
lib64
local //包含用戶程序等
sbin //管理員應(yīng)用程序
用戶目錄
位于/home/user把敞,稱(chēng)之為用戶工作目錄或家目錄,表示方式:
/home/user
~
相對(duì)路徑和絕對(duì)路徑
絕對(duì)路徑
從/目錄開(kāi)始描述的路徑為絕對(duì)路徑弥奸,如:
cd /home
ls /usr
相對(duì)路徑
從當(dāng)前位置開(kāi)始描述的路徑為相對(duì)路徑,如:
cd ../../
ls abc/def
.和..
每個(gè)目錄下都有.和..奋早;. 表示當(dāng)前目錄盛霎;.. 表示上一級(jí)目錄,即父目錄耽装;根目錄下的.和..都表示當(dāng)前目錄
ls [OPTION]… [FILE]…
ls是英文單詞list的簡(jiǎn)寫(xiě)愤炸,其功能為列出目錄的內(nèi)容。這是用戶最常用的一個(gè)命令剂邮,因?yàn)橛脩粜枰粫r(shí)地查看某個(gè)目錄的內(nèi)容摇幻。該命令類(lèi)似于DOS下的dir命令。 對(duì)于每個(gè)目錄挥萌,該命令將列出其中的所有子目錄與文件绰姻。對(duì)于每個(gè)文件,ls將輸出其文件名以及所要求的其他信息引瀑。默認(rèn)情況下狂芋,輸出條目按字母順序排序。當(dāng)未給出目錄名或是文件名時(shí)憨栽,就顯示當(dāng)前目錄的信息帜矾。
主要的OPTION有:
-a 列出隱藏文件,文件中以“.”開(kāi)頭的均為隱藏文件屑柔,如:~/.bashrc
-l 列出文件的詳細(xì)信息
-R 連同子目錄中的內(nèi)容一起列出
用ls -l命令顯示的信息中屡萤,開(kāi)頭是由10個(gè)字符構(gòu)成的字符串,其中第一個(gè)字符表示文件類(lèi)型掸宛,它可以是下述類(lèi)型之一:
- 普通文件
d 目錄
l 符號(hào)鏈接
b 塊設(shè)備文件
c 字符設(shè)備文件
s socket文件死陆,網(wǎng)絡(luò)套接字
p 管道
后面的9個(gè)字符表示文件的訪問(wèn)權(quán)限,分為3組唧瘾,每組3位措译。第一組表示文件屬主的權(quán)限,第二組表示同組用戶的權(quán)限饰序,第三組表示其他用戶的權(quán)限领虹。每一組的三個(gè)字符分別表示對(duì)文件的讀、寫(xiě)和執(zhí)行權(quán)限求豫。各權(quán)限如下所示:
r 讀
w 寫(xiě)
x 可執(zhí)行塌衰。對(duì)于目錄诉稍,表示進(jìn)入權(quán)限。
s 當(dāng)文件被執(zhí)行時(shí)最疆,把該文件的UID或GID賦予執(zhí)行進(jìn)程的UID(用戶ID)或GID(組 ID)均唉。
t 設(shè)置標(biāo)志位(sticky bit)。如果是有sticky bit的目錄肚菠,在該目錄下任何用戶只要有適當(dāng)?shù)臋?quán)限即可創(chuàng)建文件舔箭,但文件只能被超級(jí)用戶、目錄擁有者或文件屬主刪除蚊逢。如果是有stickybit的可執(zhí)行文件层扶,在該文件執(zhí)行后,指向其正文段的指針仍留在內(nèi)存烙荷。這樣再次執(zhí)行它時(shí)镜会,系統(tǒng)就能更快地裝入該文件。
- 沒(méi)有相應(yīng)位置的權(quán)限终抽。
訪問(wèn)權(quán)限后面的數(shù)字表示與該文件共享inode的文件總數(shù)戳表,即硬鏈接數(shù)(參見(jiàn)下面ln命令)。
which
功能說(shuō)明:查找文件昼伴、顯示指定命令路徑
語(yǔ) 法:which 可執(zhí)行文件名稱(chēng)
補(bǔ)充說(shuō)明:which指令會(huì)在PATH變量指定的路徑中匾旭,搜索某個(gè)系統(tǒng)命令的位置,并且返回第一個(gè)搜索結(jié)果
-
參 數(shù):
-n 指定文件名長(zhǎng)度圃郊,指定的長(zhǎng)度必須大于或等于所有文件中最長(zhǎng)的文件名价涝。 -p 與-n參數(shù)相同,但此處的包括了文件的路徑持舆。 -w 指定輸出時(shí)欄位的寬度色瘩。 -V 顯示版本信息
示 例:which ls
pwd 查看當(dāng)前所在路徑
mkdir
命令功能:命令用來(lái)創(chuàng)建指定的名稱(chēng)的目錄,要求創(chuàng)建目錄的用戶在當(dāng)前目錄中具有寫(xiě)權(quán)限逸寓,并且指定的目錄名不能是當(dāng)前目錄中已有的目錄(區(qū)分大小寫(xiě))居兆。
語(yǔ) 法:mkdir [OPTION] DIRECTORY…
-
命令參數(shù):
-m, --mode=模式,設(shè)定權(quán)限<模式> (類(lèi)似 chmod)竹伸,而不是 rwxrwxrwx 減 umask -p, --parents 可以是一個(gè)路徑名稱(chēng)泥栖。此時(shí)若路徑中的某些目錄尚不存在,加上此選項(xiàng)后,系統(tǒng)將自動(dòng)建立好那些尚不存在的目錄,即一次可以建立多個(gè)目錄; -v, --verbose 每次創(chuàng)建新目錄都顯示信息 --help 顯示此幫助信息并退出 --version 輸出版本信息并退出
示 例:mkdir -p test2/test22
rmdir
功能說(shuō)明:該命令從一個(gè)目錄中刪除一個(gè)或多個(gè)子目錄項(xiàng),刪除某目錄時(shí)也必須具有對(duì)父目錄的寫(xiě)權(quán)限
語(yǔ) 法:rmdir [OPTION]… DIRECTORY…
補(bǔ)充說(shuō)明:不能刪除非空目錄
參 數(shù):
-p 遞歸刪除目錄dirname佩伤,當(dāng)子目錄刪除后其父目錄為空時(shí)聊倔,也一同被刪除晦毙。如果整個(gè)路徑被刪除或者由于某種原因保留部分路徑生巡,則系統(tǒng)在標(biāo)準(zhǔn)輸出上顯示相應(yīng)的信息。
-v, --verbose 顯示指令執(zhí)行過(guò)程
示 例:rmdir -p logs
rm
功能說(shuō)明:刪除一個(gè)目錄中的一個(gè)或多個(gè)文件或目錄见妒,如果沒(méi)有使用-r選項(xiàng)孤荣,則rm不會(huì)刪除目錄。如果使用 rm 來(lái)刪除文件,通常仍可以將該文件恢復(fù)原狀盐股。
語(yǔ) 法:rm [選項(xiàng)] 文件…
補(bǔ)充說(shuō)明: rm是一個(gè)危險(xiǎn)的命令钱豁,使用的時(shí)候要特別當(dāng)心,尤其對(duì)于新手疯汁,否則整個(gè)系統(tǒng)就會(huì)毀在這個(gè)命令(比如在/(根目錄)下執(zhí)行rm * -rf)牲尺。
-
參 數(shù):
-f, --force 忽略不存在的文件,從不給出提示幌蚊。 -i, --interactive 進(jìn)行交互式刪除 -r, -R, --recursive 指示rm將參數(shù)中列出的全部目錄和子目錄均遞歸地刪除谤碳。 -v, --verbose 詳細(xì)顯示進(jìn)行的步驟 --help 顯示此幫助信息并退出 --version 輸出版本信息并退出
示 例:rm -- -f 刪除以-f開(kāi)頭的文件
touch
功能說(shuō)明:touch命令不常用,一般在使用make的時(shí)候可能會(huì)用到溢豆,用來(lái)修改文件時(shí)間戳蜒简,或者新建一個(gè)不存在的文件
語(yǔ) 法:touch [選項(xiàng)]... 文件...
補(bǔ)充說(shuō)明: touch命令參數(shù)可更改文檔或目錄的日期時(shí)間,包括存取時(shí)間和更改時(shí)間漩仙。
-
參 數(shù):
-a 或--time=atime或--time=access或--time=use 只更改存取時(shí)間搓茬。 -c 或--no-create 不建立任何文檔。 -d 使用指定的日期時(shí)間队他,而非現(xiàn)在的時(shí)間卷仑。 -f 此參數(shù)將忽略不予處理,僅負(fù)責(zé)解決BSD版本touch指令的兼容性問(wèn)題麸折。 -m 或--time=mtime或--time=modify 只更改變動(dòng)時(shí)間系枪。 -r 把指定文檔或目錄的日期時(shí)間,統(tǒng)統(tǒng)設(shè)成和參考文檔或目錄的日期時(shí)間相同磕谅。 -t 使用指定的日期時(shí)間私爷,而非現(xiàn)在的時(shí)間。
-
示 例:
touch log2012.log log2013.log 創(chuàng)建不存在的文件 touch -r log.log log2012.log 更新log.log的時(shí)間和log2012.log時(shí)間戳相同 touch -t 201211142234.50 log.log 設(shè)定文件的時(shí)間戳
mv
功能說(shuō)明:用來(lái)移動(dòng)文件或者將文件改名
語(yǔ) 法:mv [選項(xiàng)] 源文件或目錄 目標(biāo)文件或目錄
補(bǔ)充說(shuō)明: 視mv命令中第二個(gè)參數(shù)類(lèi)型的不同(是目標(biāo)文件還是目標(biāo)目錄)膊夹,mv命令將文件重命名或?qū)⑵湟浦烈粋€(gè)新的目錄中衬浑。在跨文件系統(tǒng)移動(dòng)文件時(shí),mv先拷貝放刨,再將原有文件刪除工秩,而鏈至該文件的鏈接也將丟失。
-
參 數(shù):
-b :若需覆蓋文件进统,則覆蓋前先行備份助币。 -f :force 強(qiáng)制的意思,如果目標(biāo)文件已經(jīng)存在螟碎,不會(huì)詢問(wèn)而直接覆蓋眉菱; -i :若目標(biāo)文件 (destination) 已經(jīng)存在時(shí),就會(huì)詢問(wèn)是否覆蓋掉分! -u :若目標(biāo)文件已經(jīng)存在俭缓,且 source 比較新克伊,才會(huì)更新(update) -t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目標(biāo)目錄华坦,該選項(xiàng)適用于移動(dòng)多個(gè)源文件到一個(gè)目錄的情況愿吹,此時(shí)目標(biāo)目錄在前,源文件在后惜姐。
-
示 例:
mv test.log test1.txt 文件改名 mv test1.txt test3 移動(dòng)文件
find
- 功能說(shuō)明:
- 語(yǔ) 法:
- 補(bǔ)充說(shuō)明:
- 參 數(shù):
- 示 例:
find
- 功能說(shuō)明:
- 語(yǔ) 法:
- 補(bǔ)充說(shuō)明:
- 參 數(shù):
- 示 例:
cd change dir 改變當(dāng)前所在路徑
pwd 查看當(dāng)前所在路徑