一 從認(rèn)識操作系統(tǒng)開始
1.1 操作系統(tǒng)簡介
我通過以下四點(diǎn)介紹什么操作系統(tǒng):
- 操作系統(tǒng)(Operation System,簡稱OS)是管理計(jì)算機(jī)硬件與軟件資源的程序贞间,是計(jì)算機(jī)系統(tǒng)的內(nèi)核與基石酷窥;
- 操作系統(tǒng)本質(zhì)上是運(yùn)行在計(jì)算機(jī)上的軟件程序 造虏;
- 為用戶提供一個(gè)與系統(tǒng)交互的操作界面 峻贮;
- 操作系統(tǒng)分內(nèi)核與外殼(我們可以把外殼理解成圍繞著內(nèi)核的應(yīng)用程序雹食,而內(nèi)核就是能操作硬件的程序)缓屠。
1.2 操作系統(tǒng)簡單分類
Windows: 目前最流行的個(gè)人桌面操作系統(tǒng) 奇昙,不做多的介紹,大家都清楚敌完。
-
Unix: 最早的多用戶储耐、多任務(wù)操作系統(tǒng) .按照操作系統(tǒng)的分類,屬于分時(shí)操作系統(tǒng)滨溉。Unix 大多被用在服務(wù)器什湘、工作站,現(xiàn)在也有用在個(gè)人計(jì)算機(jī)上晦攒。它在創(chuàng)建互聯(lián)網(wǎng)闽撤、計(jì)算機(jī)網(wǎng)絡(luò)或客戶端/服務(wù)器模型方面發(fā)揮著非常重要的作用。
image Linux: Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng).Linux存在著許多不同的Linux版本脯颜,但它們都使用了 Linux內(nèi)核 哟旗。Linux可安裝在各種計(jì)算機(jī)硬件設(shè)備中,比如手機(jī)栋操、平板電腦闸餐、路由器、視頻游戲控制臺矾芙、臺式計(jì)算機(jī)舍沙、大型機(jī)和超級計(jì)算機(jī)。嚴(yán)格來講剔宪,Linux這個(gè)詞本身只表示Linux內(nèi)核拂铡,但實(shí)際上人們已經(jīng)習(xí)慣了用Linux來形容整個(gè)基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)葱绒。
二 初探Linux
2.1 Linux簡介
我們上面已經(jīng)介紹到了Linux感帅,我們這里只強(qiáng)調(diào)三點(diǎn)。
- 類Unix系統(tǒng): Linux是一種自由哈街、開放源碼的類似Unix的操作系統(tǒng)
- Linux內(nèi)核: 嚴(yán)格來說留瞳,Linux這個(gè)詞本身只表示Linux內(nèi)核
- Linux之父: 一個(gè)編程領(lǐng)域的傳奇式人物。他是Linux內(nèi)核的最早作者骚秦,隨后發(fā)起了這個(gè)開源項(xiàng)目她倘,擔(dān)任Linux內(nèi)核的首要架構(gòu)師與項(xiàng)目協(xié)調(diào)者璧微,是當(dāng)今世界最著名的電腦程序員、黑客之一硬梁。他還發(fā)起了Git這個(gè)開源項(xiàng)目前硫,并為主要的開發(fā)者。
2.2 Linux誕生簡介
- 1991年荧止,芬蘭的業(yè)余計(jì)算機(jī)愛好者Linus Torvalds編寫了一款類似Minix的系統(tǒng)(基于微內(nèi)核架構(gòu)的類Unix操作系統(tǒng))被ftp管理員命名為Linux 加入到自由軟件基金的GNU計(jì)劃中;
- Linux以一只可愛的企鵝作為標(biāo)志屹电,象征著敢作敢為、熱愛生活跃巡。
2.3 Linux的分類
Linux根據(jù)原生程度危号,分為兩種:
內(nèi)核版本: Linux不是一個(gè)操作系統(tǒng),嚴(yán)格來講素邪,Linux只是一個(gè)操作系統(tǒng)中的內(nèi)核外莲。內(nèi)核是什么?內(nèi)核建立了計(jì)算機(jī)軟件與硬件之間通訊的平臺兔朦,內(nèi)核提供系統(tǒng)服務(wù)偷线,比如文件管理、虛擬內(nèi)存沽甥、設(shè)備I/O等声邦;
-
發(fā)行版本: 一些組織或公司在內(nèi)核版基礎(chǔ)上進(jìn)行二次開發(fā)而重新發(fā)行的版本。Linux發(fā)行版本有很多種(ubuntu和CentOS用的都很多摆舟,初學(xué)建議選擇CentOS)亥曹,如下圖所示:
image
三 Linux文件系統(tǒng)概覽
3.1 Linux文件系統(tǒng)簡介
在Linux操作系統(tǒng)中,所有被操作系統(tǒng)管理的資源盏檐,例如網(wǎng)絡(luò)接口卡歇式、磁盤驅(qū)動器、打印機(jī)胡野、輸入輸出設(shè)備、普通文件或是目錄都被看作是一個(gè)文件痕鳍。
也就是說在LINUX系統(tǒng)中有一個(gè)重要的概念:一切都是文件硫豆。其實(shí)這是UNIX哲學(xué)的一個(gè)體現(xiàn),而Linux是重寫UNIX而來笼呆,所以這個(gè)概念也就傳承了下來熊响。在UNIX系統(tǒng)中,把一切資源都看作是文件诗赌,包括硬件設(shè)備汗茄。UNIX系統(tǒng)把每個(gè)硬件都看成是一個(gè)文件,通常稱為設(shè)備文件铭若,這樣用戶就可以用讀寫文件的方式實(shí)現(xiàn)對硬件的訪問洪碳。
3.2 文件類型與目錄結(jié)構(gòu)
Linux支持5種文件類型 :
Linux的目錄結(jié)構(gòu)如下:
Linux文件系統(tǒng)的結(jié)構(gòu)層次鮮明递览,就像一棵倒立的樹,最頂層是其根目錄:
常見目錄說明:
- /bin: 存放二進(jìn)制可執(zhí)行文件(ls,cat,mkdir等)瞳腌,常用命令一般都在這里绞铃;
- /etc: 存放系統(tǒng)管理和配置文件;
- /home: 存放所有用戶文件的根目錄嫂侍,是用戶主目錄的基點(diǎn)儿捧,比如用戶user的主目錄就是/home/user,可以用~user表示挑宠;
- /usr : 用于存放系統(tǒng)應(yīng)用程序菲盾;
- /opt: 額外安裝的可選應(yīng)用程序包所放置的位置。一般情況下各淀,我們可以把tomcat等都安裝到這里懒鉴;
- /proc: 虛擬文件系統(tǒng)目錄,是系統(tǒng)內(nèi)存的映射揪阿×莆遥可直接訪問這個(gè)目錄來獲取系統(tǒng)信息;
- /root: 超級用戶(系統(tǒng)管理員)的主目錄(特權(quán)階級o)南捂;
- /sbin: 存放二進(jìn)制可執(zhí)行文件吴裤,只有root才能訪問。這里存放的是系統(tǒng)管理員使用的系統(tǒng)級別的管理命令和程序溺健。如ifconfig等麦牺;
- /dev: 用于存放設(shè)備文件;
- /mnt: 系統(tǒng)管理員安裝臨時(shí)文件系統(tǒng)的安裝點(diǎn)鞭缭,系統(tǒng)提供這個(gè)目錄是讓用戶臨時(shí)掛載其他的文件系統(tǒng)剖膳;
- /boot: 存放用于系統(tǒng)引導(dǎo)時(shí)使用的各種文件;
- /lib : 存放著和系統(tǒng)運(yùn)行相關(guān)的庫文件 岭辣;
- /tmp: 用于存放各種臨時(shí)文件吱晒,是公用的臨時(shí)文件存儲點(diǎn);
- /var: 用于存放運(yùn)行時(shí)需要改變數(shù)據(jù)的文件沦童,也是某些大文件的溢出區(qū)仑濒,比方說各種服務(wù)的日志文件(系統(tǒng)啟動日志等。)等偷遗;
- /lost+found: 這個(gè)目錄平時(shí)是空的墩瞳,系統(tǒng)非正常關(guān)機(jī)而留下“無家可歸”的文件(windows下叫什么.chk)就在這里。
四 Linux基本命令
下面只是給出了一些比較常用的命令氏豌。推薦一個(gè)Linux命令快查網(wǎng)站喉酌,非常不錯(cuò),大家如果遺忘某些命令或者對某些命令不理解都可以在這里得到解決。
Linux命令大全:http://man.linuxde.net/
4.1 目錄切換命令
-
cd usr
: 切換到該目錄下usr目錄 -
cd ..(或cd../)
: 切換到上一層目錄 -
cd /
: 切換到系統(tǒng)根目錄 -
cd ~
: 切換到用戶主目錄 -
cd -
: 切換到上一個(gè)操作所在目錄
4.2 目錄的操作命令(增刪改查)
mkdir 目錄名稱
: 增加目錄ls或者ll
(ll是ls -l的別名泪电,ll命令可以看到該目錄下的所有目錄和文件的詳細(xì)信息):查看目錄信息-
find 目錄 參數(shù)
: 尋找目錄(查)示例:
- 列出當(dāng)前目錄及子目錄下所有文件和文件夾:
find .
- 在
/home
目錄下查找以.txt結(jié)尾的文件名:find /home -name "*.txt"
- 同上般妙,但忽略大小寫:
find /home -iname "*.txt"
- 當(dāng)前目錄及子目錄下查找所有以.txt和.pdf結(jié)尾的文件:
find . \( -name "*.txt" -o -name "*.pdf" \)
或find . -name "*.txt" -o -name "*.pdf"
- 列出當(dāng)前目錄及子目錄下所有文件和文件夾:
-
mv 目錄名稱 新目錄名稱
: 修改目錄的名稱(改)注意:mv的語法不僅可以對目錄進(jìn)行重命名而且也可以對各種文件,壓縮包等進(jìn)行 重命名的操作歪架。mv命令用來對文件或目錄重新命名股冗,或者將文件從一個(gè)目錄移到另一個(gè)目錄中。后面會介紹到mv命令的另一個(gè)用法和蚪。
-
mv 目錄名稱 目錄的新位置
: 移動目錄的位置---剪切(改)注意:mv語法不僅可以對目錄進(jìn)行剪切操作止状,對文件和壓縮包等都可執(zhí)行剪切操作。另外mv與cp的結(jié)果不同攒霹,mv好像文件“搬家”怯疤,文件個(gè)數(shù)并未增加。而cp對文件進(jìn)行復(fù)制催束,文件個(gè)數(shù)增加了集峦。
-
cp -r 目錄名稱 目錄拷貝的目標(biāo)位置
: 拷貝目錄(改),-r代表遞歸拷貝注意:cp命令不僅可以拷貝目錄還可以拷貝文件抠刺,壓縮包等塔淤,拷貝文件和壓縮包時(shí)不 用寫-r遞歸
-
rm [-rf] 目錄
: 刪除目錄(刪)注意:rm不僅可以刪除目錄,也可以刪除其他文件或壓縮包速妖,為了增強(qiáng)大家的記憶高蜂, 無論刪除任何目錄或文件,都直接使用
rm -rf
目錄/文件/壓縮包
4.3 文件的操作命令(增刪改查)
touch 文件名稱
: 文件的創(chuàng)建(增)-
cat/more/less/tail 文件名稱
文件的查看(查)-
cat
: 查看顯示文件內(nèi)容 -
more
: 可以顯示百分比罕容,回車可以向下一行备恤, 空格可以向下一頁,q可以退出查看 -
less
: 可以使用鍵盤上的PgUp和PgDn向上 和向下翻頁锦秒,q結(jié)束查看 -
tail-10
: 查看文件的后10行露泊,Ctrl+C結(jié)束
注意:命令 tail -f 文件 可以對某個(gè)文件進(jìn)行動態(tài)監(jiān)控,例如tomcat的日志文件旅择, 會隨著程序的運(yùn)行惭笑,日志會變化,可以使用tail -f catalina-2016-11-11.log 監(jiān)控 文 件的變化
-
-
vim 文件
: 修改文件的內(nèi)容(改)vim編輯器是Linux中的強(qiáng)大組件生真,是vi編輯器的加強(qiáng)版脖咐,vim編輯器的命令和快捷方式有很多,但此處不一一闡述汇歹,大家也無需研究的很透徹,使用vim編輯修改文件的方式基本會使用就可以了偿凭。
在實(shí)際開發(fā)中产弹,使用vim編輯器主要作用就是修改配置文件,下面是一般步驟:
vim 文件------>進(jìn)入文件----->命令模式------>按i進(jìn)入編輯模式----->編輯文件 ------->按Esc進(jìn)入底行模式----->輸入:wq/q! (輸入wq代表寫入內(nèi)容并退出,即保存痰哨;輸入q!代表強(qiáng)制退出不保存胶果。)
-
rm -rf 文件
: 刪除文件(刪)同目錄刪除:熟記
rm -rf
文件 即可
4.4 壓縮文件的操作命令
1)打包并壓縮文件:
Linux中的打包文件一般是以.tar結(jié)尾的,壓縮的命令一般是以.gz結(jié)尾的斤斧。
而一般情況下打包和壓縮是一起進(jìn)行的早抠,打包并壓縮后的文件的后綴名一般.tar.gz。
命令:tar -zcvf 打包壓縮后的文件名 要打包壓縮的文件
其中:
z:調(diào)用gzip壓縮命令進(jìn)行壓縮
c:打包文件
v:顯示運(yùn)行過程
f:指定文件名
比如:加入test目錄下有三個(gè)文件分別是 :aaa.txt bbb.txt ccc.txt,如果我們要打包test目錄并指定壓縮后的壓縮包名稱為test.tar.gz可以使用命令:tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt
或:tar -zcvf test.tar.gz /test/
2)解壓壓縮包:
命令:tar [-xvf] 壓縮文件
其中:x:代表解壓
示例:
1 將/test下的test.tar.gz解壓到當(dāng)前目錄下可以使用命令:tar -xvf test.tar.gz
2 將/test下的test.tar.gz解壓到根目錄/usr下:tar -xvf xxx.tar.gz -C /usr
(- C代表指定解壓的位置)
4.5 Linux的權(quán)限命令
操作系統(tǒng)中每個(gè)文件都擁有特定的權(quán)限撬讽、所屬用戶和所屬組蕊连。權(quán)限是操作系統(tǒng)用來限制資源訪問的機(jī)制,在Linux中權(quán)限一般分為讀(readable)游昼、寫(writable)和執(zhí)行(excutable)甘苍,分為三組。分別對應(yīng)文件的屬主(owner)烘豌,屬組(group)和其他用戶(other)载庭,通過這樣的機(jī)制來限制哪些用戶契耿、哪些組可以對特定的文件進(jìn)行什么樣的操作卧斟。通過 ls -l
命令我們可以 查看某個(gè)目錄下的文件或目錄的權(quán)限
示例:在隨意某個(gè)目錄下ls -l
第一列的內(nèi)容的信息解釋如下:
下面將詳細(xì)講解文件的類型、Linux中權(quán)限以及文件有所有者蓖谢、所在組标锄、其它組具體是什么顽铸?
文件的類型:
- d: 代表目錄
- -: 代表文件
- l: 代表軟鏈接(可以認(rèn)為是window中的快捷方式)
Linux中權(quán)限分為以下幾種:
- r:代表權(quán)限是可讀,r也可以用數(shù)字4表示
- w:代表權(quán)限是可寫鸯绿,w也可以用數(shù)字2表示
- x:代表權(quán)限是可執(zhí)行跋破,x也可以用數(shù)字1表示
文件和目錄權(quán)限的區(qū)別:
對文件和目錄而言,讀寫執(zhí)行表示不同的意義瓶蝴。
對于文件:
權(quán)限名稱 | 可執(zhí)行操作 |
---|---|
r | 可以使用cat查看文件的內(nèi)容 |
w | 可以修改文件的內(nèi)容 |
x | 可以將其運(yùn)行為二進(jìn)制文件 |
對于目錄:
權(quán)限名稱 | 可執(zhí)行操作 |
---|---|
r | 可以查看目錄下列表 |
w | 可以創(chuàng)建和刪除目錄下文件 |
x | 可以使用cd進(jìn)入目錄 |
需要注意的是超級用戶可以無視普通用戶的權(quán)限毒返,即使文件目錄權(quán)限是000,依舊可以訪問舷手。
在linux中的每個(gè)用戶必須屬于一個(gè)組拧簸,不能獨(dú)立于組外。在linux中每個(gè)文件有所有者男窟、所在組盆赤、其它組的概念。
-
所有者
一般為文件的創(chuàng)建者歉眷,誰創(chuàng)建了該文件牺六,就天然的成為該文件的所有者,用ls ‐ahl命令可以看到文件的所有者 也可以使用chown 用戶名 文件名來修改文件的所有者 汗捡。
-
文件所在組
當(dāng)某個(gè)用戶創(chuàng)建了一個(gè)文件后淑际,這個(gè)文件的所在組就是該用戶所在的組 用ls ‐ahl命令可以看到文件的所有組 也可以使用chgrp 組名 文件名來修改文件所在的組。
-
其它組
除開文件的所有者和所在組的用戶外,系統(tǒng)的其它用戶都是文件的其它組
我們再來看看如何修改文件/目錄的權(quán)限春缕。
修改文件/目錄的權(quán)限的命令:chmod
示例:修改/test下的aaa.txt的權(quán)限為屬主有全部權(quán)限盗胀,屬主所在的組有讀寫權(quán)限,
其他用戶只有讀的權(quán)限
chmod u=rwx,g=rw,o=r aaa.txt
上述示例還可以使用數(shù)字表示:
chmod 764 aaa.txt
補(bǔ)充一個(gè)比較常用的東西:
假如我們裝了一個(gè)zookeeper锄贼,我們每次開機(jī)到要求其自動啟動該怎么辦票灰?
- 新建一個(gè)腳本zookeeper
- 為新建的腳本zookeeper添加可執(zhí)行權(quán)限,命令是:
chmod +x zookeeper
- 把zookeeper這個(gè)腳本添加到開機(jī)啟動項(xiàng)里面宅荤,命令是:
chkconfig --add zookeeper
- 如果想看看是否添加成功屑迂,命令是:
chkconfig --list
4.6 Linux 用戶管理
Linux系統(tǒng)是一個(gè)多用戶多任務(wù)的分時(shí)操作系統(tǒng),任何一個(gè)要使用系統(tǒng)資源的用戶膘侮,都必須首先向系統(tǒng)管理員申請一個(gè)賬號屈糊,然后以這個(gè)賬號的身份進(jìn)入系統(tǒng)。
用戶的賬號一方面可以幫助系統(tǒng)管理員對使用系統(tǒng)的用戶進(jìn)行跟蹤琼了,并控制他們對系統(tǒng)資源的訪問逻锐;另一方面也可以幫助用戶組織文件,并為用戶提供安全性保護(hù)雕薪。
Linux用戶管理相關(guān)命令:
-
useradd 選項(xiàng) 用戶名
:添加用戶賬號 -
userdel 選項(xiàng) 用戶名
:刪除用戶帳號 -
usermod 選項(xiàng) 用戶名
:修改帳號 -
passwd 用戶名
:更改或創(chuàng)建用戶的密碼 -
passwd -S 用戶名
:顯示用戶賬號密碼信息 -
passwd -d 用戶名
: 清除用戶密碼
useradd命令用于Linux中創(chuàng)建的新的系統(tǒng)用戶昧诱。useradd可用來建立用戶帳號。帳號建好之后所袁,再用passwd設(shè)定帳號的密碼.而可用userdel刪除帳號盏档。使用useradd指令所建立的帳號,實(shí)際上是保存在/etc/passwd文本文件中燥爷。
passwd命令用于設(shè)置用戶的認(rèn)證信息蜈亩,包括用戶密碼、密碼過期時(shí)間等前翎。系統(tǒng)管理者則能用它管理系統(tǒng)用戶的密碼稚配。只有管理者可以指定用戶名稱,一般用戶只能變更自己的密碼港华。
4.7 Linux系統(tǒng)用戶組的管理
每個(gè)用戶都有一個(gè)用戶組道川,系統(tǒng)可以對一個(gè)用戶組中的所有用戶進(jìn)行集中管理。不同Linux 系統(tǒng)對用戶組的規(guī)定有所不同立宜,如Linux下的用戶屬于與它同名的用戶組冒萄,這個(gè)用戶組在創(chuàng)建用戶時(shí)同時(shí)創(chuàng)建。
用戶組的管理涉及用戶組的添加橙数、刪除和修改尊流。組的增加、刪除和修改實(shí)際上就是對/etc/group文件的更新灯帮。
Linux系統(tǒng)用戶組的管理相關(guān)命令:
-
groupadd 選項(xiàng) 用戶組
:增加一個(gè)新的用戶組 -
groupdel 用戶組
:要刪除一個(gè)已有的用戶組 -
groupmod 選項(xiàng) 用戶組
: 修改用戶組的屬性
4.8 其他常用命令
pwd
: 顯示當(dāng)前所在位置grep 要搜索的字符串 要搜索的文件 --color
: 搜索命令奠旺,--color代表高亮顯示-
ps -ef
/ps aux
: 這兩個(gè)命令都是查看當(dāng)前系統(tǒng)正在運(yùn)行進(jìn)程蜘澜,兩者的區(qū)別是展示格式不同。如果想要查看特定的進(jìn)程可以使用這樣的格式:ps aux|grep redis
(查看包括redis字符串的進(jìn)程)注意:如果直接用ps((Process Status))命令响疚,會顯示所有進(jìn)程的狀態(tài),通常結(jié)合grep命令查看某進(jìn)程的狀態(tài)瞪醋。
-
kill -9 進(jìn)程的pid
: 殺死進(jìn)程(-9 表示強(qiáng)制終止忿晕。)先用ps查找進(jìn)程,然后用kill殺掉
-
網(wǎng)絡(luò)通信命令:
- 查看當(dāng)前系統(tǒng)的網(wǎng)卡信息:ifconfig
- 查看與某臺機(jī)器的連接情況:ping
- 查看當(dāng)前系統(tǒng)的端口使用:netstat -an
shutdown
:shutdown -h now
: 指定現(xiàn)在立即關(guān)機(jī)银受;shutdown +5 "System will shutdown after 5 minutes"
:指定5分鐘后關(guān)機(jī)践盼,同時(shí)送出警告信息給登入用戶。reboot
:reboot
: 重開機(jī)宾巍。reboot -w
: 做個(gè)重開機(jī)的模擬(只有紀(jì)錄并不會真的重開機(jī))咕幻。