最近半個(gè)月讀完了《linux鳥(niǎo)哥私房菜》這本書(shū)谬返,其實(shí)在研究生的時(shí)候這本書(shū)已經(jīng)讀過(guò)一遍,這次拿出來(lái)讀酌呆,主要是鞏固熟悉一下linux操作系統(tǒng)的相關(guān)概念榔幸。
這本書(shū)整體來(lái)說(shuō)對(duì)于初學(xué)者還是比較合適的。但是里面也有錯(cuò)誤篓吁,同時(shí)書(shū)排版的方式有些地方有些問(wèn)題茫因,但是這些問(wèn)題都不是很大。通過(guò)閱讀這本書(shū)杖剪,對(duì)于linux的了解還是比較深度一些的冻押。如果想要更深入的了解linux,可以看看《Unix & Linux大學(xué)教程》這本書(shū)盛嘿,這本書(shū)對(duì)于命令的介紹和使用會(huì)更加深入些洛巢。
操作系統(tǒng)
操作系統(tǒng)是硬件和在操作系統(tǒng)上面運(yùn)行軟件的一個(gè)中間層。當(dāng)然這里面包括了很多的內(nèi)容次兆,包括如何管理硬盤(pán)稿茉,內(nèi)存,CPU等等一系列內(nèi)容。所以一個(gè)操作系統(tǒng)要包括以下內(nèi)容:文件系統(tǒng)漓库,內(nèi)存管理恃慧,網(wǎng)絡(luò)管理,進(jìn)程線(xiàn)程管理等等渺蒿。下面主要聊一聊讀了《linux鳥(niǎo)哥私房菜》的一些獲得內(nèi)容痢士。
linux命令
在linux中更常用的還是命令行命令,由于在我們平時(shí)的工作中茂装,使用linux主要是作為服務(wù)器良瞧,而服務(wù)器基本上是不提供X Window的。所以掌握l(shuí)inux命令就變得很重要训唱。在linux下面的命令褥蚯,我們要學(xué)會(huì)使用幫助文檔,即如下獲取命令的詳細(xì)使用說(shuō)明况增,其實(shí)就是軟件程序的使用說(shuō)明赞庶。
命令幫助
man [command]
[command] --help(-h)
man的輸出內(nèi)容主要包括以下內(nèi)容:
NAME:簡(jiǎn)短的命令,數(shù)據(jù)名稱(chēng)說(shuō)明
SYNOPSIS:簡(jiǎn)短的命令執(zhí)行語(yǔ)法簡(jiǎn)介
DESCRIPTION:較為完整的說(shuō)明
OPTIONS:針對(duì)SYNOPSIS部分澳骤,所有可用的選項(xiàng)說(shuō)明
COMMANDS:當(dāng)這個(gè)程序在執(zhí)行的時(shí)候歧强,可以在此程序中執(zhí)行的命令
FILES:這個(gè)程序所使用或參考或連接到的某些文件
SEE ALSO:這個(gè)命令有相關(guān)的其他說(shuō)明
EXAMPLE:一些可以參考的使用例子
BUGS:是否有錯(cuò)誤
命令分類(lèi)
因?yàn)樵趌inux中命令太多了,我們不可能全部都記住的为肮,但是一些常用的還是需要記憶一下的摊册,這樣至少我們?cè)谑褂胠inux的時(shí)候可以能夠操作。還有就是我們?cè)谑褂妹畹臅r(shí)候颊艳,可以稍微聯(lián)想一下這個(gè)命令對(duì)應(yīng)的英文單詞茅特,這樣子能夠幫助我們進(jìn)行記憶。比如cd(change directory),mv(move),rm(remove)等等棋枕。而且linux下的很多命令在其他的軟件中都有相同的意思白修。比如在docker操作中,docker rm
也是代表的刪除等意思重斑。其實(shí)外國(guó)人這些簡(jiǎn)寫(xiě)都是根據(jù)相對(duì)應(yīng)的單詞而來(lái)兵睛。當(dāng)然我這里僅僅列舉了較少的一些命令,更多的命令大家還是多多使用linux進(jìn)行探索吧窥浪。
文件與目錄相關(guān)管理命令
這部分命令主要是如何新建文件祖很,目錄;如何復(fù)制漾脂,移動(dòng)文件假颇;如何查看文件,目錄等等符相。常用的命令如下拆融,具體的使用規(guī)則可以使用幫助進(jìn)行查看蠢琳。
cd:切換目錄;ls:列出目錄和文件镜豹;cp:復(fù)制傲须;
rm:刪除;mv:移動(dòng)趟脂;touch:創(chuàng)建文件泰讽;
mkdir:創(chuàng)建文件夾;cat:查看文件內(nèi)容昔期;more:查看文件內(nèi)容(每次輸出一頁(yè))已卸;
less:查看文件內(nèi)容(可以往前翻頁(yè))
磁盤(pán)和文件系統(tǒng)管理
對(duì)于文件系統(tǒng),大家可以找本關(guān)于操作系統(tǒng)原理的書(shū)好好了解一下硼一。了解常規(guī)的文件系統(tǒng)對(duì)于理解分布式文件系統(tǒng)會(huì)比較有幫助累澡。文件系統(tǒng)在我們開(kāi)發(fā)的過(guò)程中是很重要的,特別是現(xiàn)在容器話(huà)般贼,集群化愧哟。在linux文件系統(tǒng)中mount(掛載點(diǎn))的含義,日志系統(tǒng)如何記錄文件的操作哼蛆,inode等等蕊梧。常用命令如下:
df:查看磁盤(pán)整體的情況;
du:查看某一個(gè)目錄的容量情況腮介;
mount:掛載某一個(gè)文件系統(tǒng)肥矢;
ln:創(chuàng)建連接文件(有點(diǎn)類(lèi)似于windows的快捷方式,但是分為軟連接和硬連接)
文件和文件系統(tǒng)的壓縮和打包
在平時(shí)我們linux的過(guò)程中叠洗,tar命令是一個(gè)經(jīng)常出現(xiàn)的命令甘改,掌握tar命令的使用很關(guān)鍵。因?yàn)閠ar命令不光能夠打包文件惕味,同時(shí)還能夠解壓文件楼誓。
tar:打包文件;
gzip:壓縮文件名挥;bzip2:壓縮文件;
dump:備份工具
tar命令能夠壓縮文件是因?yàn)檫@個(gè)命令支持gzip和bzip2軟件主守。對(duì)于tar命令我們要掌握以下常用的命令
壓縮:tar -jcv -f filename.tar.bz2 被壓縮的文件或目錄名稱(chēng)
查詢(xún):tar -jtv -f filename.tar.bz2
,可以查看文件內(nèi)的內(nèi)容
解壓縮:tar -jxv -f filename.tar.bz2 -C 被解壓縮的目錄
其他常用命令
其他常用的命令禀倔,比如管道和數(shù)據(jù)重定向等等,如果我們需要編寫(xiě)shell腳本参淫,這些命令會(huì)非常有用救湖。在linux中掌握shell腳本是很重要的,shell腳本能夠幫助我們做一些自動(dòng)化的事情涎才,代替手工作業(yè)鞋既。
grep:匹配文件力九;sort:排序;
wc:計(jì)數(shù)邑闺,比如統(tǒng)計(jì)文件內(nèi)行數(shù)跌前;history:查看歷史命令
在linux的學(xué)習(xí)中,更重要的還是要多用陡舅。關(guān)記憶這些命令是沒(méi)有用的抵乓,在我們用linux的命令的過(guò)程中,仔細(xì)想想每個(gè)命令的用法靶衍,同時(shí)加深自己對(duì)于這些命令背后的原理以及l(fā)inux系統(tǒng)本身的原理的理解灾炭,相信能夠完全掌握l(shuí)inux的使用的
權(quán)限理解
因?yàn)閘inux是支持多用戶(hù)的,即多個(gè)人可以同時(shí)登陸一臺(tái)linux系統(tǒng)上的颅眶。所以權(quán)限管理就變得非常重要蜈出。如果不考慮特殊權(quán)限的,文件和目錄的權(quán)限主要分為三種涛酗,分別為可讀(r)铡原、可寫(xiě)(w)、可執(zhí)行(x)煤杀,對(duì)應(yīng)的數(shù)字分別為4,2,1眷蜈。
對(duì)于文件,這三個(gè)權(quán)限比較好理解沈自。那么對(duì)于目錄呢酌儒?
目錄可讀:你可以查詢(xún)改目錄下的文件名數(shù)據(jù),即可以利用ls這個(gè)命令將目錄下的內(nèi)容列表顯示出來(lái)枯途。
目錄可寫(xiě):表示你具有更改該目錄結(jié)構(gòu)列表的權(quán)限忌怎,即在該目錄下新建文件和目錄;刪除已經(jīng)存在的文件與目錄(不論文件的權(quán)限如何)酪夷;將已經(jīng)存在的文件或目錄進(jìn)行重命名榴啸;轉(zhuǎn)移該目錄內(nèi)的文件,目錄位置晚岭。
目錄可執(zhí)行:目錄的x代表用戶(hù)能否進(jìn)入該目錄成為工作目錄的用途鸥印。能不能進(jìn)入某個(gè)目錄只與該目錄的x權(quán)限有關(guān)。同時(shí)如果沒(méi)有某個(gè)目錄的x權(quán)限坦报,是無(wú)法執(zhí)行該目錄下的任何命令库说。
常用命令
chmod:改變文件權(quán)限;chown:改變文件所有者片择;chgrp:改變文件所屬用戶(hù)組
linux常用目錄介紹
在linux中潜的,目錄的用途是有具體的規(guī)范的,即FHS標(biāo)準(zhǔn)字管。這個(gè)規(guī)范的目的就是系統(tǒng)讓用戶(hù)可以了解已安裝軟件通常放置與哪個(gè)目錄下啰挪。大家在平時(shí)的使用過(guò)程中最好是遵循這些規(guī)范信不。
FHS主要定義了三層目錄,分別如下:
/(root,根目錄):與開(kāi)機(jī)系統(tǒng)有關(guān)
/usr(UNIX software resource):與軟件安裝/執(zhí)行有關(guān)亡呵,可以看到usr是UNIX軟件資源的縮寫(xiě)
/var(variable):與系統(tǒng)運(yùn)作過(guò)程有關(guān)
根目錄分類(lèi)
根目錄一般情況下會(huì)有這些目錄抽活,目錄的含義如下:
/bin:主要放置在單用戶(hù)維護(hù)模式下還能使用的命令,可以被root和一般用戶(hù)使用政己,主要由cat酌壕,chmod,chown歇由,date卵牍,mv,mkdir沦泌,cp糊昙,bash等
/boot:開(kāi)機(jī)會(huì)用到的文件,包括內(nèi)核文件和開(kāi)機(jī)的配置文件
/dev:因?yàn)閘inux中所有的內(nèi)容都是文件谢谦,而任何設(shè)備和接口設(shè)備都是以文件的形式存在于這個(gè)目錄中释牺。
/etc:系統(tǒng)主要的配置文件。例如用戶(hù)的賬戶(hù)密碼回挽,各種服務(wù)的起始文件等没咙。
/home:系統(tǒng)默認(rèn)的用戶(hù)主文件夾
/lib:開(kāi)機(jī)時(shí)會(huì)用到的函數(shù)庫(kù),以及在/bin,/sbin下面的命令會(huì)調(diào)用的函數(shù)庫(kù)千劈。
/media:可刪除的設(shè)備祭刚,包括軟盤(pán),光盤(pán)墙牌,DVD等
/mnt:如果暫時(shí)掛載某些額外的設(shè)備涡驮,一般建議放置在這個(gè)目錄中
/opt:給第三方軟件放置的目錄
/root:系統(tǒng)管理員的主文件夾
/sbin:主要是開(kāi)機(jī)過(guò)程中需要的,包括開(kāi)機(jī)喜滨、修復(fù)捉捅、還原系統(tǒng)所需要的命令
/srv(service的縮寫(xiě)):一些網(wǎng)絡(luò)服務(wù)啟動(dòng)之后,這些網(wǎng)絡(luò)服務(wù)需要取用數(shù)據(jù)的目錄虽风。如WWW服務(wù)需要的網(wǎng)頁(yè)數(shù)據(jù)就可以放置在/srv/www中
/tmp:放置臨時(shí)文件的目錄棒口,重要一般不建議放在這個(gè)目錄里,因?yàn)檫@個(gè)目錄會(huì)定時(shí)清理
/proc:這個(gè)目錄下的數(shù)據(jù)都在內(nèi)存中辜膝,如系統(tǒng)的內(nèi)核陌凳,進(jìn)程,外部設(shè)備内舟,網(wǎng)絡(luò)狀態(tài)等。
/usr下目錄
/usr/bin/:絕大部分的用戶(hù)可使用命令
/usr/include/:C/C++等程序語(yǔ)言的頭文件與包含文件放置處初橘。
/usr/lib/:包含應(yīng)用軟件的函數(shù)庫(kù)验游、目標(biāo)文件以及不被一般用戶(hù)慣用的執(zhí)行文件或腳本
/usr/local/:系統(tǒng)管理員在本機(jī)自行安裝自己下載的軟件充岛,一般安裝在這個(gè)目錄下
/usr/sbin/:非系統(tǒng)正常運(yùn)行所需要的系統(tǒng)命令
/usr/share/:放置共享文件的地方
/usr/src/:一般源碼放置在這個(gè)目錄下,而內(nèi)核源碼一般放在/usr/src/linux下
/var 下目錄
/var/cache/:應(yīng)用程序本身運(yùn)行過(guò)程中會(huì)產(chǎn)生的一些暫存文件
/var/lib/:程序本身執(zhí)行的過(guò)程中耕蝉,需要使用到的數(shù)據(jù)文件放置的目錄崔梗,比如Mysql數(shù)據(jù)庫(kù)放置在/var/lib/mysql,rpm數(shù)據(jù)庫(kù)主要放到/var/lib/rpm下
/var/log/:登錄文件放置的目錄,如/var/log/wtmp(記錄登錄者的信息)
/var/mail/:放置個(gè)人郵箱的目錄
你有時(shí)候看到的linux系統(tǒng)目錄可能不僅僅包括這些或者不存在其中的某些目錄垒在,這是因?yàn)閘inux系統(tǒng)版本蒜魄,同時(shí)這也是個(gè)規(guī)范,有些linux開(kāi)發(fā)廠(chǎng)商會(huì)依據(jù)這些規(guī)范做些修改场躯。所以不一樣也沒(méi)有關(guān)系谈为。
總結(jié):因?yàn)閘inux系統(tǒng)包括的內(nèi)容太多了,這里我僅僅提到了linux系統(tǒng)下的冰山一角踢关。比如如何關(guān)機(jī)伞鲫,系統(tǒng)的等級(jí),如何在線(xiàn)安裝軟件签舞,如何離線(xiàn)安裝軟件秕脓,如何創(chuàng)建用戶(hù)和用戶(hù)組,SELinux等等內(nèi)容儒搭。大家都可以通過(guò)這本書(shū)學(xué)到吠架。