中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

主流網(wǎng)站風(fēng)格精品成品網(wǎng)站入口

主流網(wǎng)站風(fēng)格,精品成品網(wǎng)站入口,鄭州公司網(wǎng)站建設(shè)服務(wù),鶴壁市建設(shè)工程交易中心網(wǎng)站Day1:Linux發(fā)展史與安裝 一、Linux發(fā)展史 1、Linux前身-Unix 1968年 Multics項目 MIT、Bell實驗室、美國通用電氣有限公司走到了一起,致力于開發(fā)Multics項目。到后期由于開發(fā)進度不是很好,MIT和Bell實驗室相繼離開這個項目的開發(fā),最終導(dǎo)致項目…

Day1:Linux發(fā)展史與安裝

一、Linux發(fā)展史

1、Linux前身-Unix

1968年 Multics項目

MIT、Bell實驗室、美國通用電氣有限公司走到了一起,致力于開發(fā)Multics項目。到后期由于開發(fā)進度不是很好,MIT和Bell實驗室相繼離開這個項目的開發(fā),最終導(dǎo)致項目擱淺。

1970年(Unix元年,時間戳) Unix誕生

當時在開發(fā)Multics項目的時候,實驗室中有一個開發(fā)成員開發(fā)了一款游戲(travel space:遨游太空),因為兩個實驗室相繼離開項目開發(fā),導(dǎo)致這名開發(fā)人員沒法玩游戲,后來他提議組織人員重新在Multics項目之上重新的開發(fā),也就出現(xiàn)了1970年的Unix。當時Unix操作系統(tǒng)是使用的匯編語言(機器語言)開發(fā)的。

1973年 用C語言重寫Unix

因為匯編語言有一個最大的局限性:對于計算機硬件過于依賴。導(dǎo)致移植性不好,所以后期在1973年使用了C語言對其進行重新開發(fā)。

1975年 Bell實驗室允許大學(xué)使用Unix。

1975年,bell實驗室允許大學(xué)使用Unix操作系統(tǒng)用于教學(xué)作用,而不允許用于商業(yè)用途。

2、Linux誕生

人物 Linus

Linux的開發(fā)作者,Linux之父,李納斯·托瓦茲。Linux誕生時是荷蘭在校大學(xué)生。

1991年 0.0.1版本

李納斯當時學(xué)校使用的就是Unix操作系統(tǒng),然后其對系統(tǒng)的底層代碼進行了修改,放到了學(xué)校為學(xué)生開放的網(wǎng)站上,原先他把文件命名寫成了Linus’s Unix,后期網(wǎng)絡(luò)管理發(fā)現(xiàn)之后覺得這個名字不好,自己手動的將名字改成Linux。隨后其他同學(xué)下載之后發(fā)現(xiàn)這個版本還是挺好用的,隨后都把自己代碼貢獻給李納斯。

1992年 0.0.2版本

1994年 1.0版本

2003年 2.6版本

上述所提及的版本號并不是分支版本,而是指Linux的內(nèi)核版本。

3、開源文化

Linux是開源的操作系統(tǒng)。所謂開源就是指開放源代碼。

人 物 Stallman 斯特曼,開源文化的倡導(dǎo)人。

1983年 GNU計劃

1985年 FSF基金會

1990年 Emacs、GCC(c語言的編譯器)、程序庫

1991年 Stallman去找Linus,商談讓Linux加入其開源計劃(GNU計劃)

1992年 GNU/Linux

4、Linux系統(tǒng)特點

開放性(開源)、多用戶、多任務(wù)、良好的用戶界面、優(yōu)異的性能與穩(wěn)定性

多用戶多任務(wù):

單用戶:一個用戶,在登錄計算機(操作系統(tǒng)),只能允許同時登錄一個用戶;

單任務(wù):一個任務(wù),允許用戶同時進行的操作任務(wù)數(shù)量;

多用戶:多個用戶,在登錄計算機(操作系統(tǒng)),允許同時登錄多個用戶進行操作;

多任務(wù):多個任務(wù),允許用戶同時進行多個操作任務(wù);

Windows屬于:單用戶、多任務(wù)。

Linux屬于:多用戶、多任務(wù)。

5、Linux分支

分支:Linux分支有很多,現(xiàn)在比較有名的ubuntu、debian、centos(Community Enterprise Operating System、redhat、suse等等。

二、Linux系統(tǒng)的安裝

1、安裝方式

目前安裝操作系統(tǒng)方式有2種:真機安裝、虛擬機安裝。

真機安裝:使用真實的電腦進行安裝,像安裝windows操作系統(tǒng)一樣,真機安裝的結(jié)果就是替換掉當前的windows操作系統(tǒng);

虛擬機安裝:通過一些特定的手段,來進行模擬安裝,并不會影響當前計算機的真實操作系統(tǒng)

如果是學(xué)習(xí)或者測試使用,強烈建議使用虛擬機安裝方式。

2、虛擬機軟件(了解)

什么是虛擬機?

虛擬機,有些時候想模擬出一個真實的電腦環(huán)境,礙于使用真機安裝代價太大,因此而誕生的一款可以模擬操作系統(tǒng)運行的軟件。

虛擬機目前有2個比較有名的產(chǎn)品:vmware出品的vmware workstation、oracle 出品的virtual Box。

3、虛擬機的安裝

3.1、VMware Workstation的安裝

①打開安裝程序

②進行下一步開始安裝

③同意許可協(xié)議

④根據(jù)需要決定是否需要更改軟件的安裝位置

點擊下一步:

⑤用戶體驗設(shè)置

⑥快捷方式創(chuàng)建的步驟

⑦點擊安裝按鈕

⑧點擊完成

最重要的地方,在安裝完之后需要檢查,檢查虛擬機軟件是否有安裝2個虛擬網(wǎng)卡

如果沒有這2個網(wǎng)卡的話,則會影響后期windows系統(tǒng)與虛擬機其中操作系統(tǒng)之間的相互通信(比如共享網(wǎng)絡(luò)、文件傳輸?shù)?#xff09;。

3.2、Virtual Box的安裝

①運行安裝程序

②點擊下一步

③選擇性更改安裝的位置

④安裝的選項設(shè)置

⑤斷網(wǎng)警告,點擊是即可

⑤點擊安裝按鈕

⑥完成

⑦檢查是否有對應(yīng)的虛擬網(wǎng)卡存在

兩個軟件安裝完成之后在桌面上都有對應(yīng)的快捷方式

4、Linux版本的選擇

版本選擇:CentOS 6.5 【鏡像一般都是xxx.iso文件】

問題:為什么不選擇最新版的7.x版本?

6.x目前依然是主流

6.x的各種系統(tǒng)操作模式是基礎(chǔ)

7.x實際上也支持大多數(shù)6.x的操作形式

官網(wǎng):https://www.centos.org/

從官網(wǎng)下載得到的鏡像文件

5、新建虛擬機

5.1、使用VMware Workstation(重點)

①點擊“文件”菜單,選擇“新建虛擬機…”選項,選擇“自定義”點擊下一步

②選擇兼容性,默認即可,直接下一步

③選擇鏡像文件的時候選擇“稍后….”,點擊下一步

④選擇需要安裝的操作系統(tǒng)

⑤選擇虛擬機的名稱(名稱將會后期出現(xiàn)在左側(cè))和設(shè)置虛擬系統(tǒng)的安裝位置

⑥cpu設(shè)置

⑦分配內(nèi)存

⑧選擇網(wǎng)絡(luò)類型,選擇nat即可

NAT:配置好之后windows即可和虛擬機進行互相通信,但是教室內(nèi)的其他同學(xué)是訪問不了的,只能自己可以訪問虛擬機中的操作系統(tǒng);

橋接:配置好之后其他同學(xué)也可以訪問你的虛擬機操作系統(tǒng);

⑨后續(xù)默認的步驟,直接下一步

⑩點擊完成

5.2、使用Virtual Box(了解)

①點擊左上角的新建按鈕

②選擇操作系統(tǒng),由于centos在列表中是沒有的,所以選擇centos對應(yīng)的主線redhat 32位

③選擇內(nèi)存大小

④創(chuàng)建磁盤,默認即可

⑤選擇磁盤類型,默認即可

⑥選擇磁盤大小的分配方式,方式為動態(tài)分配即可

⑦設(shè)置磁盤的位置和大小確認

6、Linux操作系統(tǒng)安裝

6.1、使用VMware workstation進行安裝

a. 由于之前沒有指定iso鏡像文件,因此此處需要先指定系統(tǒng)鏡像文件

b. 運行此虛擬機

注意:如果開機之后鼠標點進去虛擬機出不來,則可以按下組合快捷鍵“ctrl+alt”。

如果啟動之后出現(xiàn)類似提示框(不是錯誤框)則勾選不再提示,并且確定即可:

如果在啟動時候出現(xiàn)下述錯誤,則說明電腦沒有開啟cpu的虛擬化,如果需要開啟,則需要重啟計算機,并且在開啟的時候進入主板的BIOS設(shè)置開啟虛擬化,然后保存設(shè)置重啟電腦:

c. 選擇升級/安裝已經(jīng)存在的系統(tǒng)(通過↑/↓方向鍵)按下回車

d. 在檢測到光盤(disc)之后選擇跳過完整性檢測直接進行安裝

隨后提示不支持的硬件,忽略直接下一步

e. 點擊下一步

f. 選擇在安裝過程中使用的語言

g. 選擇鍵盤類型,美國式英語

h. 選擇存儲設(shè)備類型

i. 對磁盤進行空白盤的初始化操作,選擇“是,忽略所有的數(shù)據(jù)”

j. 設(shè)置網(wǎng)卡自動連接,依次應(yīng)用– 關(guān)閉– 下一步

k. 設(shè)置時區(qū),默認亞洲/上海

l. 設(shè)置密碼,設(shè)置好了之后下一步

m. 使用全部的磁盤空間來安裝Linux系統(tǒng),點擊下一步

n. 選擇安裝的Linux類型

o. 選擇開發(fā)– 開發(fā)工具,前面復(fù)選框√,點擊下一步

p. 等待軟件包的安裝

等待完成,點擊重新引導(dǎo)

q. 重新引導(dǎo)之后點擊“前進”

r. 在協(xié)議許可界面選擇同意,然后點擊前進

s. 創(chuàng)建普通用戶帳號(可選),然后點擊前進

t. 時間設(shè)置,設(shè)置好之后前進

u. 關(guān)于kdump,之后點擊完成

v. 登錄界面

如果需要使用非列出的用戶進行登錄則點擊其他,否則雙擊列出的用戶名即可,隨后輸入密碼。

w. 使用root帳號登錄之后的提示

x. 看到的桌面

6.2、使用virtual Box安裝Linux(了解)

a. 選擇需要安裝的系統(tǒng)鏡像

b. 啟動虛擬機

注意:如果鼠標在虛擬機中想退出到windows,則需要按下ctrl+alt組合鍵(空格右側(cè)的)

c. 后續(xù)全部操作按照上面6.1章節(jié)中的步驟繼續(xù)安裝即可。

PS6.3PS:ubuntu

安裝ubuntu也是一樣的操作,直接下一步下一步,內(nèi)存選2G、普通用戶磁盤空間選30/40G就差不多了。

7、終端

問題:在目前的桌面系統(tǒng)中,如果需要關(guān)機可以通過“系統(tǒng)”“關(guān)機”進行關(guān)機,那么后期服務(wù)器都是命令行模式的,屆時這種方式將不好用,那會要怎么關(guān)機呢?

答:可以通過命令行方式進行關(guān)機。命令的輸入需要在終端中進行輸入。

所謂終端,其實類似于windows下cmd命令行模式。在終端中可以輸入需要執(zhí)行的一些指令,同樣可以通過終端進行關(guān)機(注意:以后在工作中很少會去使用關(guān)機命令,會使用重啟比較多)。

終端的形式:

終端組成部分:

如何使用終端命令進行關(guān)機?

在Linux中關(guān)機命令有以下幾個:shutdown -h now(正常關(guān)機)、halt(關(guān)閉內(nèi)存)、init 0

8、使用VMware備份操作系統(tǒng)

在vm中備份方式有2種:快照、克隆。

快照:又稱還原點,就是保存在拍快照時候的系統(tǒng)的狀態(tài)(包含了所有的內(nèi)容),在后期的時候隨時可以恢復(fù)?!?span id="vxwlu0yf4" class="kdocs-bold" style="font-weight:bold;">側(cè)重在于短期備份,需要頻繁備份的時候可以使用快照,做快照的時候虛擬的操作系統(tǒng)一般處于開啟狀態(tài)】

①在菜單“虛擬機”-“快照”-“拍攝快照”

輸入相關(guān)信息,點擊拍攝快照

②搞事情

③使用快照恢復(fù)搞事情之前的狀態(tài)

路徑:虛擬機– 快照– 快照管理器

恢復(fù)好之后的狀態(tài):

克隆:就是復(fù)制的意思?!?span id="vxwlu0yf4" class="kdocs-bold" style="font-weight:bold;">側(cè)重長期備份,做克隆的時候是必須得關(guān)閉】

路徑:先關(guān)機– 右鍵需要克隆的虛擬機– 管理– 克隆

上述的名稱和位置與之前新建虛擬機的時候是一樣的含義。

等待克隆完成

克隆好的服務(wù)器相關(guān)密碼帳號等信息與被克隆的系統(tǒng)一致。

三、Linux系統(tǒng)的文件

1、文件與文件夾(目錄)

什么是文件?

一般都是一個獨立的東西,可以通過一些特定的工具進行打開,并且其中不能在包含除了文字以外的東西。例如:

什么是文件夾?

可以在其中包含其他文件的東西。

為什么先講文件?

1:日常運維工作中,有近一半以上的工作內(nèi)容精力其實都是對文件的操作。

2: Linux 本身也是一個基于文件形式表示的操作系統(tǒng)。

Linux一切皆文件。

①在windows是文件的,在Linux下同樣也是文件;

②在windows不是文件的,在Linux下也是以文件的形式存儲的;

日常學(xué)習(xí)中和日常工作中,對于文件的操作的都有哪些種類?

創(chuàng)建文件、編輯文件、保存文件、關(guān)閉文件、重命名文件、刪除文件、恢復(fù)文件。

2、Linux系統(tǒng)的文件目錄結(jié)構(gòu)

目錄結(jié)構(gòu):

Bin:全稱binary,含義是二進制。該目錄中存儲的都是一些二進制文件,文件都是可以被運行的。

Dev:該目錄中主要存放的是外接設(shè)備,例如盤、其他的光盤等。在其中的外接設(shè)備是不能直接被使用的,需要掛載(類似windows下的分配盤符)。

Etc:該目錄主要存儲一些配置文件。

Home:表示“家”,表示除了root用戶以外其他用戶的家目錄,類似于windows下的User/用戶目錄。

Proc:process,表示進程,該目錄中存儲的是Linux運行時候的進程。

Root:該目錄是root用戶自己的家目錄。

Sbin:全稱super binary,該目錄也是存儲一些可以被執(zhí)行的二進制文件,但是必須得有super權(quán)限的用戶才能執(zhí)行。

Tmp:表示“臨時”的,當系統(tǒng)運行時候產(chǎn)生的臨時文件會在這個目錄存著。

Usr:存放的是用戶自己安裝的軟件。類似于windows下的program files。

Var:存放的程序/系統(tǒng)的日志文件的目錄。

Mnt:當外接設(shè)備需要掛載的時候,就需要掛載到mnt目錄下。

Day2:Linux的基本指令

一、指令與選項

什么是Linux的指令?

指在Linux終端(命令行)中輸入的內(nèi)容就稱之為指令。

一個完整的指令的標準格式:Linux通用的格式

#指令主體(空格)[選項](空格)[操作對象]

一個指令可以包含多個選項

操作對象也可以是多個

例如:需要讓張三同學(xué)幫忙去樓下小賣鋪買一瓶農(nóng)夫山泉水和清風(fēng)餐巾紙,在這個指令中“買東西”是指令的主體,買的水和餐巾紙是操作的對象,農(nóng)夫山泉、清風(fēng)是操作的選項。

二、基礎(chǔ)指令(重點)

1、ls指令

含義:ls (list)

用法1:#ls

含義:列出當前工作目錄下的所有文件/文件夾的名稱

用法2:#ls 路徑

含義:列出指定路徑下的所有文件/文件夾的名稱

關(guān)于路徑(重要):

路徑可以分為兩種:相對路徑、絕對路徑。

相對路徑:相對首先得有一個參照物(一般就是當前的工作路徑);

相對路徑的寫法:在相對路徑中通常會用到2個符號“./”【表示當前目錄下】、“../”【上一級目錄下】。

絕對路徑:絕對路徑不需要參照物,直接從根“/”開始尋找對應(yīng)路徑;

用法3:#ls 選項 路徑

含義:在列出指定路徑下的文件/文件夾的名稱,并以指定的格式進行顯示。

常見的語法:

#ls-l 路徑

#ls-la 路徑

選項解釋:

-l:表示list,表示以詳細列表的形式進行展示

-a:表示顯示所有的文件/文件夾(包含了隱藏文件/文件夾)

上述列表中的第一列字符表示文檔的類型,其中“-”表示改行對應(yīng)的文檔類型為文件,“d”表示文檔類型為文件夾。

在Linux中隱藏文檔一般都是以“.”開頭。

用法4:#ls -lh 路徑

含義:列出指定路徑下的所有文件/文件夾的名稱,以列表的形式并且在顯示文檔大小的時候以可讀性較高的形式顯示

參數(shù)含義:

2、pwd指令

用法:#pwd (print working directory,打印當前工作目錄)

3、cd指令

命令:#cd (change directory,改變目錄)

作用:用于切換當前的工作目錄的

語法:#cd 路徑

案例:當前在“/”下,需要使用絕對路徑切換到/usr/local。

案例:當前在/usr/local下,需要使用相對路徑切換目錄到home目錄下的Linux123用戶家目錄中去。

補充:

在Linux中有一個特殊的符號“~”,表示當前用戶的家目錄。

切換的方式:#cd ~

4、mkdir指令

指令:mkdir (make directory,創(chuàng)建目錄)

語法1:#mkdir 路徑 【路徑,可以是文件夾名稱也可以是包含名稱的一個完整路徑】

案例:在當前路徑下創(chuàng)建出目錄“yunweihenniux”

注意:ls列出的結(jié)果顏色說明,其中藍色的名稱表示文件夾,黑色的表示文件,綠色的其權(quán)限為擁有所有權(quán)限

案例:在指定路徑下創(chuàng)建出一個文件夾“yunweihenniux”

語法2:#mkdir -p路徑

含義:當一次性創(chuàng)建多層不存在的目錄的時候,添加-p參數(shù),否則會報錯

語法3:#mkdir 路徑1 路徑2 路徑3 …. 【表示一次性創(chuàng)建多個目錄】

5、touch指令

指令:touch

作用:創(chuàng)建文件

語法:#touch 文件路徑 【路徑可以是直接的文件名也可以是路徑】

案例:使用touch來在當前路徑下創(chuàng)建一個文件,命名為Linux.txt

案例:使用touch來同時創(chuàng)建多個文件

案例:使用touch來在“Linux123”用戶的家目錄中創(chuàng)建文件,Linux.txt

6、cp指令

指令:cp (copy,復(fù)制)

作用:復(fù)制文件/文件夾到指定的位置

語法:#cp 被復(fù)制的文檔路徑 文檔被復(fù)制到的路徑

案例:使用cp命令來復(fù)制一個文件

注意:Linux在復(fù)制過程中是可以重新對新位置的文件進行重命名的,但是如果不是必須的需要,則建議保持前后名稱一致。

案例:使用cp命令來復(fù)制一個文件夾

注意:當使用cp命令進行文件夾復(fù)制操作的時候需要添加選項“-r”【-r表示遞歸復(fù)制】,否則目錄將被忽略

7、mv指令

指令:mv (move,移動,剪切)

作用:移動文檔到新的位置

語法:#mv 需要移動的文檔路徑 需要保存的位置路徑

確認:移動之后原始的文件還在不在原來的位置?原始文件是不在原始位置的

案例:使用mv命令移動一個文件

案例:使用mv命令移動一個文件夾

補充:在Linux中重命名的命令也是mv,語法和移動語法一樣。

8、rm指令

指令:rm (remove,移除、刪除)

作用:移除/刪除文檔

語法:#rm 選項需要移除的文檔路徑

選項:

-f:force,強制刪除,不提示是否刪除

-r:表示遞歸

案例:刪除一個文件

在刪除的時候如果不帶選項,會提示是否刪除,如果需要確認則輸入“y/yes”,否則輸入“n/no”按下回車。

注意:如果在刪除的時候不想頻繁的確認,則可以在指令中添加選項“-f”,表示force(強制)。

案例:刪除一個文件夾

注意:刪除一個目錄的時候需要做遞歸刪除,并且一般也不需要進行刪除確認詢問,所以移除目錄的時候一般需要使用-rf選項。

案例:刪除多個文檔

案例:要刪除一個目錄下有公共特性的文檔,例如都以Linux開頭

其中*稱之為通配符,意思表示任意的字符,Linux*,則表示只要文件以Linux開頭,后續(xù)字符則不管。

9、vim指令

指令:vim (vim是一款文本編輯器)

語法:#vim 文件的路徑

作用:打開一個文件(可以不存在,也可以存在)

案例:使用vim來打開文件

退出打開的文件:在沒有按下其他命令的時候,按下shift+英文冒號,輸入q,按下回車即可

10、輸出重定向

一般命令的輸出都會顯示在終端中,有些時候需要將一些命令的執(zhí)行結(jié)果想要保存到文件中進行后續(xù)的分析/統(tǒng)計,則這時候需要使用到的輸出重定向技術(shù)。

>:覆蓋輸出,會覆蓋掉原先的文件內(nèi)容

>>:追加輸出,不會覆蓋原始文件內(nèi)容,會在原始內(nèi)容末尾繼續(xù)添加

語法:#正常執(zhí)行的指令> / >> 文件的路徑

注意:文件可以不存在,不存在則新建

案例:使用覆蓋重定向,保存ls -la 的執(zhí)行結(jié)果,保存到當前目錄下的ls.txt

案例:使用追加重定向,保存ls -la的執(zhí)行結(jié)果到ls.txt中

11、cat指令

作用1:cat有直接打開一個文件的功能。

語法1:#cat 文件的路徑

作用2:cat還可以對文件進行合并

語法2:#cat 待合并的文件路徑1 待合并的文件路徑2 …. 文件路徑n > 合并之后的文件路徑

例如,合并3個文件,并存到一個文件中【配合輸出重定向使用】

三、進階指令(重點)

1、df指令

作用:查看磁盤的空間

語法:#df -h -h表示以可讀性較高的形式展示大小

2、free指令

作用:查看內(nèi)存使用情況

語法:#free -m -m表示以mb為單位查看

剩余的真實可以用的內(nèi)存為1665mb。

Swap:用于臨時內(nèi)存,當系統(tǒng)真實內(nèi)存不夠用的時候可以臨時使用磁盤空間來充當內(nèi)存。

3、head指令

作用:查看一個文件的前n行,如果不指定n,則默認顯示前10行。

語法:#head -n 文件路徑 【n表示數(shù)字】

4、tail指令

作用1:查看一個文件的未n行,如果n不指定默認顯示后10行

語法:#tail -n 文件的路徑 n同樣表示數(shù)字

作用2:可以通過tail指令來查看一個文件的動態(tài)變化內(nèi)容【變化的內(nèi)容不能是用戶手動增加的

語法:#tail -f 文件路徑

該命令一般用于查看系統(tǒng)的日志比較多。

5、less指令

作用:查看文件,以較少的內(nèi)容進行輸出,按下輔助功能鍵(數(shù)字+回車、空格鍵+上下方向鍵)查看更多

語法:#less 需要查看的文件路徑

在退出的只需要按下q鍵即可。

6、wc指令

作用:統(tǒng)計文件內(nèi)容信息(包含行數(shù)、單詞數(shù)、字節(jié)數(shù))

語法:#wc -lwc 需要統(tǒng)計的文件路徑

-l:表示lines,行數(shù)

-w:表示words,單詞數(shù) 依照空格來判斷單詞數(shù)量

-c:表示bytes,字節(jié)數(shù)

7、date指令(重點)

作用:表示操作時間日期(讀取、設(shè)置)

語法1:#date 輸出的形式:2018年3月24日星期六15:54:28

語法2:#date +%F (等價于#date “+%Y-%m-%d” ) 輸出形式:2018-03-24

語法3:#date “+%F %T” 引號表示讓“年月日與時分秒”成為一個不可分割的整體

等價操作#date “+%Y-%m-%d%H:%M:%S”

輸出的形式:2018-03-24 16:01:00

語法4:獲取之前或者之后的某個時間(備份)

#date -d “-1 day” “+%Y-%m-%d %H:%M:%S”

符號的可選值:+(之后)或者- (之前)

單位的可選值:day(天)、month(月份)、year(年)

%F:表示完整的年月日

%T:表示完整的時分秒

%Y:表示四位年份

%m:表示兩位月份(帶前導(dǎo)0)

%d:表示日期(帶前導(dǎo)0)

%H:表示小時(帶前導(dǎo)0)

%M:表示分鐘(帶前導(dǎo)0)

%S:表示秒數(shù)(帶前導(dǎo)0)

8、cal指令

作用:用來操作日歷的

語法1:#cal 等價于 #cal -1 直接輸出當前月份的日歷

語法2:#cal -3 表示輸出上一個月+本月+下個月的日歷

語法3:#cal -y 年份 表示輸出某一個年份的日歷

9、clear/ctrl + L指令

作用:清除終端中已經(jīng)存在的命令和結(jié)果(信息)。

語法:clear 或者快捷鍵:ctrl + L

需要注意的是,該命令并不是真的清除了之前的信息,而是把之前的信息的隱藏到了最上面,通過滾動條繼續(xù)查看以前的信息。

10、管道(重要)

管道符:|

作用:管道一般可以用于“過濾”,“特殊”,“擴展處理”。

語法:管道不能單獨使用,必須需要配合前面所講的一些指令來一起使用,其作用主要是輔助作用。

①過濾案例(100%使用):需要通過管道查詢出根目錄下包含“y”字母的文檔名稱。

#ls /| grep y

針對上面這個命令說明:

①以管道作為分界線,前面的命令有個輸出,后面需要先輸入,然后再過濾,最后再輸出,通俗的講就是管道前面的輸出就是后面指令的輸入;

②grep指令:主要用于過濾

②特殊用法案例:通過管道的操作方法來實現(xiàn)less的等價效果(了解)

之前通過less查看一個文件,可以#less 路徑

現(xiàn)在通過管道還可以這么:#cat 路徑|less

③擴展處理:請使用學(xué)過的命令,來統(tǒng)計某個目錄下的文檔的總個數(shù)?

答:#ls / | wc -l

Day3:Linux的基本指令(2)

一、高級指令

1、hostname指令

作用:操作服務(wù)器的主機名讀取、設(shè)置)

語法1:#hostname 含義:表示輸出完整的主機名

語法2:#hostname -f 含義:表示輸出當前主機名中的FQDN(全限定域名

2、id指令

作用:查看一個用戶的一些基本信息(包含用戶id,用戶組id,附加組id…),該指令如果不指定用戶則默認當前用戶。

語法1:#id 默認顯示當前執(zhí)行該命令的用戶的基本信息

語法2:#id 用戶名 顯示指定用戶的基本信息

驗證上述信息是否正確?

驗證用戶信息:通過文件/etc/passwd

驗證用戶組信息:通過文件/etc/group

3、whoami指令

作用:“我是誰?”顯示當前登錄的用戶名,一般用于shell腳本,用于獲取當前操作的用戶名方便記錄日志。

語法:#whoami

4、ps -ef指令(重點)

指令:ps

作用:主要是查看服務(wù)器的進程信息

選項含義:

-e:等價于“-A”,表示列出全部的進程

-f:顯示全部的列(顯示全字段)

執(zhí)行結(jié)果:

列的含義:

UID:該進程執(zhí)行的用戶id;

PID:進程id;

PPID:該進程的父級進程id,如果一個程序的父級進程找不到,該程序的進程稱之為僵尸進程(parent process ID);

C:Cpu的占用率,其形式是百分數(shù);

STIME:進行的啟動時間;

TTY:終端設(shè)備,發(fā)起該進程的設(shè)備識別符號,如果顯示“?”則表示該進程并不是由終端設(shè)備發(fā)起;

TIME:進程的執(zhí)行時間;

CMD:該進程的名稱或者對應(yīng)的路徑;

案例:(100%使用的命令)在ps的結(jié)果中過濾出想要查看的進程狀態(tài)

#ps-ef|grep “進程名稱”

再例如查看火狐瀏覽器的進程:

5、top指令(重點)

作用:查看服務(wù)器的進程占的資源(100%使用)

語法:

進入命令:#top (動態(tài)顯示)

退出命令:按下q鍵

輸出的結(jié)果:

表頭含義:

PID:進程id;

USER:該進程對應(yīng)的用戶;

PR:優(yōu)先級;

VIRT:虛擬內(nèi)存;

RES:常駐內(nèi)存;

SHR:共享內(nèi)存;

計算一個進程實際使用的內(nèi)存 = 常駐內(nèi)存(RES)- 共享內(nèi)存(SHR)

S:表示進程的狀態(tài)status(sleeping,其中S表示睡眠,R表示運行);

%CPU:表示CPU的占用百分比;

%MEM:表示內(nèi)存的占用百分比;

TIME+:執(zhí)行的時間;

COMMAND:進程的名稱或者路徑;

在運行top的時候,可以按下方便的快捷鍵:

M:表示將結(jié)果按照內(nèi)存(MEM)從高到低進行降序排列;

P:表示將結(jié)果按照CPU使用率從高到低進行降序排列;

1:當服務(wù)器擁有多個cpu的時候可以使用“1”快捷鍵來切換是否展示顯示各個cpu的詳細信息;

6、du -sh指令

作用:查看目錄的真實大小

語法:#du -sh 目錄路徑

選項含義:

-s:summaries,只顯示匯總的大小

-h:表示以高可讀性的形式進行顯示

案例:統(tǒng)計“/root/yunweihenniux”目錄的實際大小

案例:統(tǒng)計“/etc”目錄實際大小

7、find指令

作用:用于查找文件(其參數(shù)有55個之多)

語法:#find 路徑范圍 選項 選項的值

選項:

-name:按照文檔名稱進行搜索(支持模糊搜索)

-type:按照文檔的類型進行搜索

文檔類型:“-”表示文件(在使用find的時候需要用f來替換),“d”表示文件夾

案例:使用find來搜索httpd.conf

#find / -name httpd.conf

案例:搜索etc目錄下所有的conf后綴文件

#find /etc -name *.conf

案例:使用find來搜索/etc/sane.d/目錄下所有的文件

#find /etc/sane.d/ -type f

案例:使用find來搜索/etc/目錄下所有的文件夾

#find /etc -type d

8、service指令(重點)

作用:用于控制一些軟件的服務(wù)啟動/停止/重啟

語法:#service 服務(wù)名 start/stop/restart

例如:需要啟動本機安裝的Apache(網(wǎng)站服務(wù)器軟件),其服務(wù)名httpd

#service httpd start

通過ps命令來檢查httpd服務(wù)是否啟動:

9、kill指令(重點)

作用:表示殺死進程 (當遇到僵尸進程或者出于某些原因需要關(guān)閉進程的時候)

語法:#kill 進程PID (語法需要配合ps一起使用)

案例:需要kill掉Apache的進程

與kill命令作用相似但是比kill更加好用的殺死進程的命令:killall

語法:#killall 進程名稱

10、ifconfig指令(重點)

作用:用于操作網(wǎng)卡相關(guān)的指令。

簡單語法:#ifconfig (獲取網(wǎng)卡信息)

Eth0表示Linux中的一個網(wǎng)卡,eth0是其名稱。Lo(loop,本地回還網(wǎng)卡,其ip地址一般都是127.0.0.1)也是一個網(wǎng)卡名稱。

注意:inet addr就是網(wǎng)卡的ip地址。

11、reboot指令

作用:重新啟動計算機

語法1:#reboot 重啟

語法2:#reboot -w 模擬重啟,但是不重啟(只寫關(guān)機與開機的日志信息)

12、shutdown指令

作用:關(guān)機 (慎用)

語法1:#shutdown -h now “關(guān)機提示” 或者 #shutdown -h 15:25 “關(guān)機提示”

案例:設(shè)置Linux系統(tǒng)關(guān)機時間在12:00

如果想要取消關(guān)機計劃的話,則可以按照以下方式去嘗試:

①針對于centos7.x之前的版本:ctrl+c

②針對于centos7.x(包含)之后的版本:#shutdown -c

除了shutdown關(guān)機以外,還有以下幾個關(guān)機命令:

#init0

#halt

#poweroff

13、uptime指令

作用:輸出計算機的持續(xù)在線時間(計算機從開機到現(xiàn)在運行的時間

語法:#uptime

14、uname指令

作用:獲取計算機操作系統(tǒng)相關(guān)信息

語法1:#uname 獲取操作系統(tǒng)的類型

語法2:#uname -a all,表示獲取全部的系統(tǒng)信息(類型、全部主機名、內(nèi)核版本、發(fā)布時間、開源計劃)

15、netstat -tnlp指令

作用:查看網(wǎng)絡(luò)連接狀態(tài)

語法:#netstat -tnlp

選項說明:

-t:表示只列出tcp協(xié)議的連接;

-n:表示將地址從字母組合轉(zhuǎn)化成ip地址,將協(xié)議轉(zhuǎn)化成端口號來顯示;

-l:表示過濾出“state(狀態(tài))”列中其值為LISTEN(監(jiān)聽)的連接;

-p:表示顯示發(fā)起連接的進程pid和進程名稱;

16、man指令

作用:manual,手冊(包含了Linux中全部命令手冊,英文)

語法:#man 命令 (退出按下q鍵)

案例:通過man命令查詢cp指令的用法

#man cp

二、練習(xí)題

1、如何通過命令行重啟linux操作系統(tǒng)? #reboot

2、如何在命令行中快速刪除光標前/后的內(nèi)容? 前:ctrl + u 后:ctrl + k

3、如何刪除/tmp下所有A開頭的文件? #rm-f /tmp/A*

4、系統(tǒng)重要文件需要備份,如何把/etc/passwd備份到/tmp目錄下?

#cp /etc/passwd /tmp/

5、如何查看系統(tǒng)最后創(chuàng)建的3個用戶?

#tail -3 /etc/passwd

6、什么命令可以統(tǒng)計當前系統(tǒng)中一共有多少賬戶?

#wc -l /etc/passwd #cat /etc/passwd|wc -l

7、如何創(chuàng)建/tmp/test.conf文件?

#touch /tmp/test.conf

8、如何通過vim編輯打開/tmp/test.conf?

#vim /tmp/test.conf

9、如何查看/etc/passwd的頭3行和尾3行?

#head -3 /etc/passwd

#tail -3 /etc/passwd

10、如何一次性創(chuàng)建目錄/text/1/2/3/4?

#mkdir -p /text/1/2/3/4

11、如何最快的返回到當前賬戶的家目錄?

#cd ~ #cd

12、如何查看/etc所占的磁盤空間?

#du -sh /etc

13、如何刪除/tmp下所有的文件?

#rm -rf /tmp/*

14、嘗試啟動Apache的服務(wù),并且檢查是否啟動成功。

#service httpd start

#ps -ef|grep httpd

15、使用已學(xué)命令殺死Apache的進程。

#killall httpd

Day4:編輯器之神——vim編輯器

一、vi介紹

Vi編輯器是所有Unix及Linux系統(tǒng)下標準的編輯器,類似于windows系統(tǒng)下的notepad(記事本)編輯器,由于在Unix及Linux系統(tǒng)的任何版本,Vi編輯器是完全相同的,因此可以在其他任何介紹vi的地方都能進一步了解它,Vi也是Linux中最基本的文本編輯器,學(xué)會它后,我們將在Linux的世界里暢行無阻,尤其是在終端中

關(guān)于vim:

vi和vim都是Linux中的編輯器,不同的是,vim比較高級,可以視為vi的升級版本。vi使用于文本編輯,但是vim更適用于coding(寫代碼的)。

Vim重點是光標的移動,模式切換,刪除,查找,替換,復(fù)制,粘貼,撤銷命令的使用

二、vim三種模式(重點)

Vim中存在三種模式(大眾的認知):命令模式、編輯模式(輸入模式)、末行模式(尾行模式)。

命令模式:在該模式下是不能對文件直接編輯,可以輸入快捷鍵進行一些操作(刪除行,復(fù)制行,移動光標,粘貼等等)【打開文件之后默認進入的模式】;

編輯模式:在該模式下可以對文件的內(nèi)容進行編輯;

末行模式:可以在末行輸入命令來對文件進行操作(搜索、替換、保存、退出、撤銷、高亮等等);

Vim的打開文件的方式(4種,要求掌握的就前三種):

#vim 文件路徑 作用:打開指定的文件

#vim +數(shù)字 文件的路徑 作用:打開指定的文件,并且將光標移動到指定行

#vim +/關(guān)鍵詞 文件的路徑 作用:打開指定的文件,并且高亮顯示關(guān)鍵詞

#vim 文件路徑1 文件路徑2 文件路徑3 作用:同時打開多個文件

重點:先復(fù)制出一個/etc/passwd文件,復(fù)制當前家目錄下(千萬不要在etc下直接修改!!!)

后續(xù)一切vim命令都是基于/root/passwd文件進行操作。

退出方式:輸入:q按下回車即可

三、命令模式

注意:該模式是打開文件的第一個看到的模式(打開文件即可進入)

1、光標移動

①光標移動到行首

按鍵:shift + 6 或^(T字母上面的6,不要按小鍵盤的6)

②光標移動到行尾

按鍵:shift + 4 或$(R字母的左上角的4,不是小鍵盤的4)

③光標移動到首行

按鍵:gg

④光標移動到末行

按鍵:G

⑤翻屏

向上翻屏:按鍵ctrl + b (before) 或 PgUp

向下翻屏:按鍵ctrl + f (after) 或 PgDn

2、復(fù)制操作

①復(fù)制光標所在行

按鍵:yy

粘貼:在想要粘貼的地方按下p鍵

②以光標所在行為準(包含當前行),向下復(fù)制指定的行數(shù)

按鍵:數(shù)字yy

可視化復(fù)制

按鍵:ctrl + v(可視塊)或V(可視行)或v(可視),然后按下↑↓←→方向鍵來選中需要復(fù)制的區(qū)塊,按下y鍵進行復(fù)制,最后按下p鍵粘貼

3、剪切/刪除

①剪切/刪除光標所在行

按鍵:dd (刪除之后下一行上移)

注意:dd嚴格意義上說是剪切命令,但是如果剪切了不粘貼就是刪除的效果。

②剪切/刪除光標所在行為準(包含當前行),向下刪除/剪切指定的行

按鍵:數(shù)字dd (刪除之后下一行上移)

③剪切/刪除光標所在的當前行之后的內(nèi)容,但是刪除之后下一行不上移

按鍵:D (刪除之后當前行會變成空白行)

④可視化刪除

按鍵:ctrl + v(可視塊)或V(可視行)或v(可視),上下左右移動,按下D表示刪除選中行,d表示刪選中塊

4、撤銷/恢復(fù)

撤銷:輸入:u (不屬于命令模式) 或者 u (undo)

恢復(fù):ctrl + r 恢復(fù)(取消)之前的撤銷操作

5、擴展1:光標的快速移動

①快速將光標移動到指定的行

按鍵:數(shù)字G

②以當前光標為準向上/向下移動n行

按鍵:數(shù)字↑,數(shù)字↓

③以當前光標為準向左/向右移動n字符

按鍵:數(shù)字←,數(shù)字→

④末行模式下的快速移動方式:移動到指定的行

按鍵:輸入英文“:”,其后輸入行數(shù)數(shù)字,按下回車

四、模式間的切換(重點)

五、末行模式

進入方式:由命令模式進入,按下“:”或者“/(表示查找)”即可進入

退出方式:

a.按下esc

b.連按2次esc鍵

c.刪除末行全部輸入字符

①保存操作(write)

輸入:“:w” 保存文件

輸入:“:w 路徑” 另存為

②退出(quit)

輸入:“:q” 退出文件

③保存并退出

輸入:“:wq” 保存并且退出

④強制(!)

輸入:“:q!” 表示強制退出,剛才做的修改操作不做保存

⑤調(diào)用外部命令(了解)

輸入:“:!外部命令”

例如:

當外部命令執(zhí)行結(jié)束之后按下任意鍵回到vim編輯器打開的內(nèi)容

⑥搜索/查找

輸入:“/關(guān)鍵詞”

例如:我想在passwd文件中搜索“sbin”關(guān)鍵詞

在搜索結(jié)果中切換上/下一個結(jié)果:N/n (next)

如果需要取消高亮,則需要輸入:“:nohl”【no highlight】

⑦替換

:s/搜索的關(guān)鍵詞/新的內(nèi)容 替換光標所在行的第一處符合條件的內(nèi)容

:s/搜索的關(guān)鍵詞/新的內(nèi)容/g 替換光標所在行的全部符合條件的內(nèi)容

:%s/搜索的關(guān)鍵詞/新的內(nèi)容 替換整個文檔中每行第一個符合條件的內(nèi)容

:%s/搜索的關(guān)鍵詞/新的內(nèi)容/g 替換整個文檔的符合條件的內(nèi)容

%表示整個文件

g表示全局(global)

⑧顯示行號(臨時)

輸入:“:set nu”[number]

如果想取消顯示,則輸入:“:set nonu”

⑨擴展2:使用vim同時打開多個文件,在末行模式下進行切換文件

查看當前已經(jīng)打開的文件名稱:“:files”

在%a的位置有2種顯示可能

%a:a=active,表示當前正在打開的文件;

#:表示上一個打開的文件

切換文件的方式:

a. 如果需要指定切換文件的名稱,則可以輸入:“:open 已經(jīng)打開的文件名”

b. 可以通過其他命令來切換上一個文件/下一個文件

輸入:“:bn”切換到下一個文件(back next)

輸入:“:bp”切換到上一個文件(back prev)

六、編輯模式

重點看前2個進入方式:i(insert)、a(after)。

退出方式:按下esc鍵

七、實用功能

1、代碼著色

案例:首先創(chuàng)建簡單的c語言程序

如何控制著色顯示與否?

顯示:“:syntax on” syn

tax:語法

關(guān)閉顯示:“:syntax off”

2、vim中計算器的使用

當在編輯文件的時候突然需要使用計算器去計算一些公式,則此時需要用計算器,但是需要退出,vim自身集成了一個簡易的計算器。

a. 進入編輯模式

b. 按下按鍵“ctrl + R”,然后輸入“=”,此時光標會變到最后一行

c. 輸入需要計算的內(nèi)容,按下回車

八、擴展(3)

1、vim的配置(重點)

Vim是一款編輯器,編輯器也是有配置文件的。

Vim配置有三種情況:

a.在文件打開的時候在末行模式下輸入的配置(臨時的)

b.個人配置文件(~/.vimrc,如果沒有可以自行新建)

c.全局配置文件(vim自帶,/etc/vimrc)

①新建好個人配置文件之后進入編輯

②在配置文件中進行配置

比如顯示行號:set nu

配置好之后vim打開文件就會永遠顯示行號

問題:如果某個配置項,在個人配置文件與全局配置文件產(chǎn)生沖突的時候應(yīng)該以誰為準?

測試步驟:在兩個配置文件中針對同一個配置項設(shè)置不同的值

①先在全局的配置中設(shè)置不顯示行號,在個人的配置文件中設(shè)置顯示行號,觀察結(jié)果

最后顯示行號:說明以個人為準

②先在全局中配置顯示行號,在個人中設(shè)置不顯示行號,觀察結(jié)果

最后的顯示是不顯示行號,說明以個人為準

結(jié)論:如果針對同一個配置項,個人配置文件中存在,則以個人配置文件為準,如果個人配置文件中不存在這一項,則以全局配置文件為準。

2、異常退出

什么是異常退出:在編輯文件之后并沒有正常的去wq(保存退出),而是遇到突然關(guān)閉終端或者斷電的情況,則會顯示下面的效果,這個情況稱之為異常退出:

解決辦法:將交換文件(在編程過程中產(chǎn)生的臨時文件)刪除掉即可

#rm -f.passwd.swp

3、別名機制(實用)

作用:相當于創(chuàng)建一些屬于自己的自定義命令

例如:在windows下有cls命令,在Linux下可能因為沒有這個命令而不習(xí)慣清屏。現(xiàn)在可以通過別名機制來解決這個問題,可以自己創(chuàng)造出cls命令

別名機制依靠一個別名映射文件:~/.bashrc

#vim ~/.bashrc

注意:如果想新創(chuàng)造的命令生效,必須要重新登錄當前用戶。

4、退出方式

回顧:之前vim中退出編輯的文件可以使用“:q”或者“:wq”。

除了上面的這個語法之外,vim還支持另外一個保存退出方法“:x”。

說明:

①“:x”在文件沒有修改的情況下,表示直接退出,在文件修改的情況下表示保存并退出;

②如果文件沒有被修改,但是使用wq進行退出的話,則文件的修改時間會被更新;但是如果文件沒有被修改,使用x進行退出的話,則文件修改時間不會被更新的;主要是會混淆用戶對文件的修改時間的認定。

因此建議以后使用“:x”來進行對文件的保存退出。

但是:不要使用X,不要使用X,不要使用X,X表示對文件進行加密操作。

九、作業(yè)

1、參考作業(yè)文件“httpd-vhosts.conf”的描述;

2、使用別名機制,創(chuàng)建出一個快捷命令“kj”,要求實現(xiàn)按下“kj”回車之后能夠?qū)崿F(xiàn):

統(tǒng)計出Apache的服務(wù)進程數(shù)量。

Day5:Linux自有服務(wù)(1)

自有服務(wù),即不需要用戶獨立去安裝的軟件的服務(wù),而是當系統(tǒng)安裝好之后就可以直接使用的服務(wù)(內(nèi)置)。

一、運行模式

運行模式也可以稱之為運行級別。

在linux中存在一個進程:init (initialize,初始化),進程id是1。

查看進程:#ps -ef|grep init

該進程存在一個對應(yīng)的配置文件:inittab(系統(tǒng)運行級別配置文件,位置/etc/inittab)

文件的主要內(nèi)容:

根據(jù)上述的描述,可以得知,Centos6.5中存在7中運行級別/模式。

0 — 表示關(guān)機級別(不要將默認的運行級別設(shè)置成這個值)

1 — 單用戶模式

2 — 多用戶模式,不帶NFS(Network File Syetem)

3 — 多用戶模式,完全的多用戶模式(不帶桌面的,純命令行模式)

4 — 沒有被使用的模式(被保留模式)

5 — X11,完整的圖形化界面模式

6 — 表示重啟級別(不要將默認的運行級別設(shè)置成這個值)

與該級別相關(guān)的幾個命令:

#init 0 表示關(guān)機

#init 3 表示切換到不帶桌面的模式

#init 5 切換到圖形界面

#init 6 重啟電腦

注意:init指令需要超級管理員的權(quán)限,普通用戶無法執(zhí)行。

這些命令其實都是調(diào)用的init進程,將數(shù)字(運行級別)傳遞給進程,進程去讀配置文件執(zhí)行對應(yīng)的操作。

①切換到純命令行模式下(臨時切換,重啟之后又恢復(fù)

#init 3

切換之后需要輸入用戶名和密碼,在輸入密碼的時候沒有“*”提示輸入,只要自己確認輸入的密碼沒有錯誤,按下回車即可。

②回到桌面模式

#init 5

③設(shè)置模式永久為命令行模式

將/etc/inittab文件中的initdefault值設(shè)置成3,然后重啟操作系統(tǒng)。

二、用戶與用戶組管理(重點)

Linux系統(tǒng)是一個多用戶多任務(wù)的操作系統(tǒng),任何一個要使用系統(tǒng)資源的用戶,都必須首先向系統(tǒng)管理員申請一個賬號,然后以這個賬號的身份進入系統(tǒng)。

用戶的賬號一方面可以幫助系統(tǒng)管理員對使用系統(tǒng)的用戶進行跟蹤,并控制他們對系統(tǒng)資源的訪問;另一方面也可以幫助用戶組織文件,并為用戶提供安全性保護。

每個用戶賬號都擁有一個惟一的用戶名和各自的密碼。

用戶在登錄時鍵入正確的用戶名和密碼后,就能夠進入系統(tǒng)和自己的主目錄。

要想實現(xiàn)用戶賬號的管理,要完成的工作主要有如下幾個方面:

用戶賬號的添加、刪除、修改以及用戶密碼的管理。

用戶組的管理。

注意三個文件:

/etc/passwd 存儲用戶的關(guān)鍵信息

/etc/group 存儲用戶組的關(guān)鍵信息

/etc/shadow 存儲用戶的密碼信息

1、用戶管理

①添加用戶

常用語法:#useradd 選項用戶名

常用選項:

-g:表示指定用戶的用戶主組,選項的值可以是用戶組的id,也可以是組名

-G:表示指定用戶的用戶附加組,選項的值可以是用戶組的id,也可以是組名

-u:uid,用戶的id(用戶的標識符),系統(tǒng)默認會從500之后按順序分配uid,如果不想使用系統(tǒng)分配的,可以通過該選項自定義【類似于騰訊QQ的自選靚號情況】

-ccomment:添加注釋

案例:創(chuàng)建用戶zhangsan,不帶任何選項

驗證是否成功:

a.驗證/etc/passwd的最后一行,查看是否有zhangsan的信息;

b.驗證是否存在家目錄(在Centos下創(chuàng)建好用戶之后隨之產(chǎn)生一個同名家目錄);

擴展:認識passwd文件

用戶名:密碼:用戶ID:用戶組ID:注釋:家目錄:解釋器shell

用戶名:創(chuàng)建新用戶名稱,后期登錄的時候需要輸入;

密碼:此密碼位置一般情況都是“x”,表示密碼的占位;

用戶ID:用戶的識別符;

用戶組ID:該用戶所屬的主組ID;

注釋:解釋該用戶是做什么用的;

家目錄:用戶登錄進入系統(tǒng)之后默認的位置;

解釋器shell:等待用戶進入系統(tǒng)之后,用戶輸入指令之后,該解釋器會收集用戶輸入的指令,傳遞給內(nèi)核處理;

注意:在不添加選項的時候,執(zhí)行useradd之后會執(zhí)行一系列的操作

a. 創(chuàng)建同名的家目錄;

b. 創(chuàng)建同名的用戶組;

案例:添加選項,創(chuàng)建用戶lisi,讓lisi屬于501主組,附加組500,自選靚號666。

注意:查看用戶的主組可以查看passwd文件,查看附加組可以查看group文件。

②修改用戶

常用語法:#usermod 選項用戶名

Usermod:user modify,用戶修改

常用選項:

-g:表示指定用戶的用戶主組,選項的值可以是用戶組的id,也可以是組名

-G:表示指定用戶的用戶附加組,選項的值可以是用戶組的id,也可以是組名

-u:uid,用戶的id(用戶的標識符),系統(tǒng)默認會從500之后按順序分配uid,如果不想使用系統(tǒng)分配的,可以通過該選項自定義【類似于騰訊QQ的自選靚號情況】

-l:修改用戶名

案例:修改zhangsan用戶主組為500,附加組改為501

#usermod -g 500 -G 501 zhangsan

案例:修改zhangsan用戶用戶名,改為wangerma

#usermod -l 新的用戶名 舊的用戶名

#usermod -l wangerma zhangsan

③設(shè)置密碼

Linux不允許沒有密碼的用戶登錄到系統(tǒng),因此前面創(chuàng)建的用戶目前都處于鎖定狀態(tài),需要設(shè)置密碼之后才能登錄計算機。

常用語法:#passwd 用戶名

案例:設(shè)置wangerma用戶的密碼

在設(shè)置密碼的時候也是沒有任何輸入提示的,放心輸入,確保兩次輸入的密碼一致,按下回車即可。

也可以使用弱密碼,但是不建議,否則會看到以下的提示:

設(shè)置密碼之后shadow文件中的體現(xiàn):能夠看出lisi用戶沒有密碼的。

在設(shè)置用戶密碼之后可以登錄帳號,例如此處需要登錄wangerma

切換用戶命令:#su [用戶名] (switchuser)

如果用戶名不指定則表示切換到root用戶。

切換用戶需要注意的事項:

a. 從root往普通用戶切換不需要密碼,但是反之則需要root密碼;

b. 切換用戶之后前后的工作路徑是不變的;

c. 普通用戶沒有辦法訪問root用戶家目錄,但是反之則可以;

④刪除用戶

常用語法:#userdel 選項用戶名

Userdel:user delete(用戶刪除)

常用選項:

-r:表示刪除用戶的同時,刪除其家目錄;

案例:刪除wangerma用戶

注意:已經(jīng)登錄的wangerma用戶刪除的時候提示刪除失敗,但是沒有登錄的lisi用戶可以正常刪除。

解決辦法:簡單粗暴,kill對應(yīng)用戶的全部進程

提示:所有跟用戶操作的命令(除passwd外)只有root超級管理員有權(quán)限執(zhí)行。

2、用戶組管理

每個用戶都有一個用戶組,系統(tǒng)可以對一個用戶組中的所有用戶進行集中管理。不同Linux 系統(tǒng)對用戶組的規(guī)定有所不同,如Linux下的用戶屬于與它同名的用戶組,這個用戶組在創(chuàng)建用戶時同時創(chuàng)建。

用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group文件的更新。

文件結(jié)構(gòu):

用戶組名:密碼:用戶組ID:組內(nèi)用戶名

密碼:X表示占位符,雖然用戶組可以設(shè)置密碼,但是絕大部分的情況下不設(shè)置密碼;

組內(nèi)用戶名:表示附加組是該組的用戶名稱;

①用戶組添加

常用語法:#groupadd 選項用戶組名

常用選項:

-g:類似用戶添加里的“-u”,-g表示選擇自己設(shè)置一個自定義的用戶組ID數(shù)字,如果自己不指定,則默認從500之后遞增;

案例:使用groupadd指令創(chuàng)建一個新的用戶組,命名為Administrators

②用戶組編輯

常用語法:#groupmod 選項用戶組名

常用選項:

-g:類似用戶修改里的“-u”,-g表示選擇自己設(shè)置一個自定義的用戶組ID數(shù)字

-n:類似于用戶修改“-l”,表示設(shè)置新的用戶組的名稱

案例:修改Administrators用戶組,將組ID從502改成520,將名稱改為admins

③用戶組刪除

常用語法:#groupdel 用戶組名

注意:當如果需要刪除一個組,但是這個組是某個用戶的主組時,則不允許刪除;如果確實需要刪除,則先從組內(nèi)移出所有用戶。

三、網(wǎng)絡(luò)設(shè)置

首先知道網(wǎng)卡配置文件位置:/etc/sysconfig/network-scripts

在目錄中網(wǎng)卡的配置文件命名格式:ifcfg-網(wǎng)卡名稱

ONBOOT:是否開機啟動

BOOTPROTO:ip地址分配方式,DHCP表示動態(tài)主機分配協(xié)議

HWADDR:硬件地址,MAC地址

如果后續(xù)需要重啟網(wǎng)卡怎么去操作呢?

#servicenetwork restart

在有的分支版本中可能沒有service命令來快速操作服務(wù),但是有一個共性的目錄:/etc/init.d

這個目錄中放著很對服務(wù)的快捷方式。

此處重啟網(wǎng)卡命令還可以使用:

#/etc/init.d/networkrestart

擴展1:如果修改網(wǎng)卡的配置文件,但是配置文件的目錄層次很深,此時可以在淺的目錄中創(chuàng)建一個快捷方式(軟連接),方便以后去查找

#ln -s 原始文件的路徑 快捷方式的路徑

通過ls -l可以列出如下的效果:

其中,文件類型位置的“l(fā)”表示其類型為link(連接類型),后面的“->”指向的是原始文件路徑。

擴展2:如何去重啟單個網(wǎng)卡?

停止某個網(wǎng)卡:#ifdown 網(wǎng)卡名

開啟某個網(wǎng)卡:#ifup 網(wǎng)卡名

例如:需要停止-啟動(重啟)eth0網(wǎng)卡,則可以輸入

#ifdown eth0

#ifup eth0

提示:在實際工作的時候不要隨意禁網(wǎng)卡。

四、ssh服務(wù)(重點)

ssh(secure shell,安全外殼協(xié)議),該協(xié)議有2個常用的作用:遠程連接協(xié)議、遠程文件傳輸協(xié)議。

協(xié)議使用端口號:默認是22

可以是被修改的,如果需要修改,則需要修改ssh服務(wù)的配置文件:

#/etc/ssh/ssh_config

端口號可以修改,但是得注意2個事項:

a. 注意范圍,端口范圍是從0-65535;

b. 不能使用別的服務(wù)已經(jīng)占用的端口;

服務(wù)啟動/停止/重啟

#service sshd start/stop/restart

#/etc/init.d/sshd start/stop/restart

1、遠程終端

終端工具主要幫助運維人員連接遠程的服務(wù)器,常見終端工具有:Xshell、secureCRT、Putty等。以putty為例:

①獲取服務(wù)器ip地址,可以通過ifconfig命令進行查看,然后順手測試ip的連接相通性

②打開putty,輸入相關(guān)的信息

③在彈出key確認的時候點擊“是”,以后不會再提示

④輸入登錄信息

2、SSH服務(wù)文件傳輸

可視化的界面?zhèn)鬏敼ぞ?#xff1a;Filezilla

安裝好之后可以查看到桌面圖標:

①選擇“文件”- “站點管理器(Ctrl + S)”

②點擊“文件”菜單下方的“▽”選擇需要連接的服務(wù)器,連接好之后的效果

③從本地windows上傳文件到linux中方式

支持直接拖拽文件,也可以右鍵本地需要上傳的文件,然后點選“上傳”即可

④下載linux文件到本地

支持服務(wù)器文件直接拖拽到本地,也可以在右側(cè)窗口選擇需要下載的文件,右鍵,點選“下載”。

擴展3:通過命令行工具來傳輸文件/文件夾

工具:PSCP.exe(必須通過cmd命令行打開),為了使用方便可以將其放到環(huán)境變量目錄中

如果不清楚哪些路徑是環(huán)境變量路徑,只需要將其放到C:/Windows目錄下即可。

用法:

a. pscp 選項 用戶名@linux主機地址:資源路徑 windows本地的地址 (下載到win)

b. pscp 選項 資源路徑 用戶名@linux主機地址:遠程路徑 (上傳到linux)

c.pscp 選項 -ls 用戶名@linux主機地址(列出遠程路徑下結(jié)構(gòu))

①下載到本地windows

要求將遠程linux服務(wù)器下的/etc整個目錄下載到本地E:\tmp下

#pscp -r root@192.168.21.128:/etc E:\tmp

在CMD中輸入之后輸入密碼

②上傳文件到linux

將“E:\coursedocs\運維學(xué)科\北京運維01期\01-基礎(chǔ)班\20180329_Linux自有服務(wù)”所有的內(nèi)容傳輸?shù)絣inux下root用戶的家目錄

#pscp -r “E:\coursedocs\運維學(xué)科\北京運維01期\01-基礎(chǔ)班\20180329_Linux自有服務(wù)” root@192.168.21.128:/root

五、作業(yè)

1、能夠分別使用Filezilla和PSCP工具傳輸給定文件到“/usr/src/data”目錄下,如目錄不存在則自行創(chuàng)建。

Day6:Linux自有服務(wù)(2)

自有服務(wù),即不需要用戶獨立去安裝的軟件的服務(wù),而是當系統(tǒng)安裝好之后就可以直接使用的服務(wù)(內(nèi)置)。

一、設(shè)置主機名

回顧:

#hostname

#hostname -f FQDN(全限定域名)

①臨時設(shè)置主機名(立竿見影),需要切換用戶使之生效

#hostname 設(shè)置的主機名

②永久設(shè)置主機名(需要重啟)

先找到一個文件

/etc/sysconfig/network 【主機名的配置文件】

修改其中的HOSTNAME為自己需要設(shè)置的永久主機名

③修改linux服務(wù)器的hosts文件,將yunwei指向本地(設(shè)置FQDN)

Hosts文件的位置:/etc/hosts

問題:不設(shè)置FQDN會怎么樣?

①很多開源服務(wù)器軟件(例如Apache)則無法啟動,或出現(xiàn)報錯;

②方便記憶,看到主機名對其作用有一個初步判斷;

③如果不設(shè)置則會影響本地的域名的解析(本地訪問);

二、chkconfig

作用:相當于windows下“安全衛(wèi)士”、“電腦管家”之類的安全輔助工具提供“開機啟動項”的一個管理服務(wù)

在linux下不是所有的軟件安裝完成之后都有開機啟動服務(wù),有的可能需要自己去添加。除此之外還可以查看和刪除。

①開機啟動服務(wù)查詢

#chkconfig --list

其中0-6表示各個啟動級別

例如:以httpd為例,其3級別為關(guān)閉(off),則表示其在3啟動形式下默認開機不啟動

5對應(yīng)的也是關(guān)閉,則表示其在桌面環(huán)境下也是開機不啟動。

再例如:kdump服務(wù),在2,3,4,5的級別下默認開機啟動的,其他級別下默認開機不啟動

②刪除服務(wù)

#chkconfig --del 服務(wù)名

例如刪除httpd服務(wù)

③添加開機啟動服務(wù)

#chkconfig --add 服務(wù)名 【必須要保證服務(wù)正常運行,才可以添加】

④設(shè)置服務(wù)在某個級別下開機啟動/不啟動【重點命令】

#chkconfig--level 連在一起的啟動級別服務(wù)名on/off

案例:設(shè)置httpd服務(wù)在3,5級別下默認開機啟動

案例:設(shè)置httpd服務(wù)在5的級別下默認開機不啟動

三、ntp服務(wù)

作用:ntp主要是用于對計算機的時間同步管理操作。

時間是對服務(wù)器來說是很重要的,一般很多網(wǎng)站都需要讀取服務(wù)器時間來記錄相關(guān)信息,如果時間不準,則可能造成很大的影響。

例如:當前虛擬機里的linux時間就是不準確的

同時服務(wù)器時間方式有2個:一次性同步(手動同步)、通過服務(wù)自動同步。

上游的概念:

①一次性同步時間(簡單)

#ntpdate時間服務(wù)器的域名或ip地址

Ip地址查看可以訪問:http://www.ntp.org.cn/pool.php

②設(shè)置時間同步服務(wù)

服務(wù)名:ntpd

啟動ntpd服務(wù)

#servicentpd start 或者 /etc/init.d/ntpd start

設(shè)置ntpd服務(wù)開機啟動:

# chkconfig --list|grep ntpd

# chkconfig --level 35 ntpd on

四、防火墻服務(wù)

防火墻:防范一些網(wǎng)絡(luò)攻擊。有軟件防火墻、硬件防火墻之分。

防火墻選擇讓請求通過,從而保證網(wǎng)絡(luò)安全性。

在當前的centos6.5中防火墻有一個名稱:iptables【7.x中默認使用的是firewalld】

①查看iptables是否開機啟動

②iptables服務(wù)啟動/重啟/關(guān)閉

#service iptables start/restart/stop

/etc/init.d/iptables start /restart/stop

③查看iptables的狀態(tài)(規(guī)則)

]# service iptables status

如果iptables沒有啟動,則提示服務(wù)沒啟動,如果已經(jīng)啟動,則顯示防火墻的相關(guān)的規(guī)則信息

④查看規(guī)則的命令

#iptables -L -n

含義:

-L:表示列出規(guī)則

-n:表示將單詞表達形式改成數(shù)字形式顯示

⑤簡單設(shè)置防火墻規(guī)則

例如,需要允許80端口通過防火墻,則規(guī)則可以用以下的命令來設(shè)置

#iptables -I INPUT -p tcp --dport 80 -j ACCEPT #允許訪問80端口

Iptables:主命令

-I:表示將規(guī)則放到最前面

-A:add,添加規(guī)則(最后)

INPUT:進站請求【出站output】

-p:protocol,指定協(xié)議(icmp/tcp/udp)

--dport:指定端口號

-j:指定行為結(jié)果,允許(accept)/禁止(reject)/丟棄(drop)

添加完成之后需要保存操作:

/etc/init.d/iptables save

測試80端口訪問:

五、rpm管理(重點)

作用:rpm的作用類似于windows上的電腦管家中“軟件管理”、安全衛(wèi)士里面“軟件管家”等產(chǎn)品,主要作用是對linux服務(wù)器上的軟件包進行對應(yīng)管理操作,管理分為:查詢、卸載、安裝。

①查詢某個軟件的安裝情況

#rpm-qa|grep 關(guān)鍵詞

選項:

-q:查詢,query

-a:全部,all

案例:查詢linux上是否安裝firefox

案例:查詢是否安裝qq

②卸載某個軟件

#rpm -e 軟件的名稱

火狐卸載的時候是沒有依賴關(guān)系的,所以可以直接卸載。

但是在卸載Apache的時候提示無法卸載:

當存在依賴關(guān)系的時候又不想去解決這個問題的時候可以:

#rpm -e軟件包名--nodeps

③軟件的安裝

要想裝軟件,和windows下一樣,先得找到安裝包。

軟件包的獲得方式:

a.去官網(wǎng)去下載;

b.不介意老版本的話,可以從光盤(或者鏡像文件)中讀取;

此處以光盤文件為例:

查看塊狀設(shè)備的信息:

#lsblk (list block devices) 查看塊狀設(shè)備的信息

Name:名稱

Size:設(shè)備大小

Type:類型

MountPoint:掛載點(類似windows下盤符)

擴展:光盤的掛載和解掛

a. 解掛操作

命令:umount

語法:#umount 當前設(shè)備的掛載點(路徑)

此時,相當于U盤在windows上已經(jīng)被彈出了,但是沒有拔下電腦USB接口。

b. 掛載光盤

命令:mount

語法:#mount 設(shè)備原始地址 要掛載的位置路徑

設(shè)備原始地址:地址統(tǒng)一都在/dev下,然后根據(jù)大小確定具體name值,拼湊在一起組成原始地址,例如當前:“/dev/sr0”

要掛載的位置路徑:掛載目錄一般都在mnt下,也可以在mnt下建目錄,此處以“/mnt/dvd”為例

安裝軟件的命令:

#rpm -ivh 軟件包完整名稱

選項:

-i:install,安裝

-v:顯示進度條

-h:表示以“#”形式顯示進度條

六、cron/crontab計劃任務(wù)(重點)

作用:操作系統(tǒng)不可能24小時都有人在操作,有些時候想在指定的時間點去執(zhí)行任務(wù)(例如:每天夜里2點去重新啟動Apache),此時不可能真有人每天夜里2點去執(zhí)行命令,此時可以交給計劃任務(wù)程序去執(zhí)行操作。

語法:#crontab 選項

常用選項:

-l:list,列出指定用戶的計劃任務(wù)列表

-e:edit,編輯指定用戶的計劃任務(wù)列表

-u:user,指定的用戶名,如果不指定,則表示當前用戶

-r:remove,刪除指定用戶的計劃任務(wù)列表

①列出

②編輯計劃任務(wù)(重點)

計劃任務(wù)的規(guī)則語法格式,以行為單位,一行則為一個計劃:

分 時 日 月 周 需要執(zhí)行的命令

例如:如果想要每天的0點0分執(zhí)行reboot指令,則可以寫成

0 0 * * * reboot

取值范圍:

分:0~59

時:0~23

日:1~31

月:1~12

周:0~7,0和7表示星期天

四個符號:

*:表示取值范圍中的每一個數(shù)字

-:做連續(xù)區(qū)間表達式的,要想表示1~7,則可以寫成:1-7

/:表示每多少個,例如:想每10分鐘一次,則可以在分的位置寫:*/10

,:表示多個取值,比如想在1點,2點6點執(zhí)行,則可以在時的位置寫:1,2,6

問題1:每月1、10、22日的4:45重啟network服務(wù)

45 4 1,10,22 * * service network restart

問題2:每周六、周日的1:10重啟network服務(wù)

10 1 * * 6,0 service network restart

問題3:每天18:00至23:00之間每隔30分鐘重啟network服務(wù)

*/30 18-23 * * * service network restart

問題4:每隔兩天的上午8點到11點的第3和第15分鐘執(zhí)行一次重啟

3,15 8-11 */2 * * reboot

案例:真實測試案例,每1分鐘往root家目錄中的RT.txt中輸入當前的時間信息,為了看到效果使用追加輸出

計劃任務(wù):*/1 * * * * ls ~>>/root/RT.txt

Crontab權(quán)限問題:本身是任何用戶都可以創(chuàng)建自己的計劃任務(wù)。

但是超級管理員可以通過配置來設(shè)置某些用戶不允許設(shè)置計劃任務(wù):

配置文件位于(黑名單):

/etc/cron.deny 里面寫用戶名,一行一個

還有一個配置文件:(白名單)

/etc/cron.allow (本身不存在,自己創(chuàng)建)

注意:白名單優(yōu)先級高于黑名單,如果一個用戶同時存在兩個名單文件中,則會被默認允許創(chuàng)建計劃任務(wù)。

Day7:Linux的權(quán)限管理操作

Linux的權(quán)限操作與用戶、用戶組是兄弟操作。

一、權(quán)限概述

總述:Linux系統(tǒng)一般將文件可存/取訪問的身份分為3個類別:owner、group、others,且3種身份各有read、write、execute等權(quán)限。

1、權(quán)限介紹

什么是權(quán)限?

在多用戶(可以不同時)計算機系統(tǒng)的管理中,權(quán)限是指某個特定的用戶具有特定的系統(tǒng)資源使用權(quán)力,像是文件夾、特定系統(tǒng)指令的使用或存儲量的限制。

在Linux中分別有讀、寫、執(zhí)行權(quán)限:

讀權(quán)限:

對于文件夾來說,讀權(quán)限影響用戶是否能夠列出目錄結(jié)構(gòu)

對于文件來說,讀權(quán)限影響用戶是否可以查看文件內(nèi)容

寫權(quán)限:

對文件夾來說,寫權(quán)限影響用戶是否可以在文件夾下“創(chuàng)建/刪除/復(fù)制到/移動到”文檔

對于文件來說,寫權(quán)限影響用戶是否可以編輯文件內(nèi)容

執(zhí)行權(quán)限:

一般都是對于文件來說,特別腳本文件。

2、身份介紹

Owner身份(文件所有者,默認為文檔的創(chuàng)建者)

由于Linux是多用戶、多任務(wù)的操作系統(tǒng),因此可能常常有多人同時在某臺主機上工作,但每個人均可在主機上設(shè)置文件的權(quán)限,讓其成為個人的“私密文件”,即個人所有者。因為設(shè)置了適當?shù)奈募?quán)限,除本人(文件所有者)之外的用戶無法查看文件內(nèi)容。

例如某個MM給你發(fā)了一封Email情書,你將情書轉(zhuǎn)為文件之后存檔在自己的主文件夾中。為了不讓別人看到情書的內(nèi)容,你就能利用所有者的身份去設(shè)置文件的適當權(quán)限,這樣,即使你的情敵想偷看你的情書內(nèi)容也是做不到的。

Group身份(與文件所有者同組的用戶)

與文件所有者同組最有用的功能就體現(xiàn)在多個團隊在同一臺主機上開發(fā)資源的時候。例如主機上有A、B兩個團體,A中有a1,a2,a3三個成員,B中有b1,b2兩個成員,這兩個團體要共同完成一份報告F。由于設(shè)置了適當?shù)臋?quán)限,A、B團體中的成員都能互相修改對方的數(shù)據(jù),但是團體C的成員則不能修改F的內(nèi)容,甚至連查看的權(quán)限都沒有。同時,團體的成員也能設(shè)置自己的私密文件,讓團隊的其它成員也讀取不了文件數(shù)據(jù)。在Linux中,每個賬戶支持多個用戶組。如用戶a1、b1即可屬于A用戶組,也能屬于B用戶組【主組和附加組】

Others身份(其他人,相對于所有者)

這個是個相對概念。打個比方,大明、二明、小明一家三兄弟住在一間房,房產(chǎn)證上的登記者是大明(owner所有者),那么,大明一家就是一個用戶組,這個組有大明、二明、小明三個成員;另外有個人叫張三,和他們?nèi)龥]有關(guān)系,那么這個張三就是其他人了。

同時,大明、二明、小明有各自的房間,三者雖然能自由進出各自的房間,但是小明不能讓大明看到自己的情書、日記等,這就是文件所有者(用戶)的意義。

Root用戶(超級用戶)

在Linux中,還有一個神一樣存在的用戶,這就是root用戶,因為在所有用戶中它擁有最大的權(quán)限,所以管理著普通用戶。

3、Linux的權(quán)限介紹

要設(shè)置權(quán)限,就需要知道文件的一些基本屬性和權(quán)限的分配規(guī)則。在Linux中,ls命令常用來查看文件的屬性,用于顯示文件的文件名和相關(guān)屬性。

#ls -l路徑 【ls -l 等價于 ll】

標紅的部分就是Linux的文檔權(quán)限屬性信息。

Linux中存在用戶、用戶組和其他人概念,各自有不同的權(quán)限,對于一個文檔來說,其權(quán)限具體分配如下:

十位字符表示含義:

第1位:表示文檔類型,取值常見的有“d表示文件夾”、“-表示文件”、“l(fā)表示軟連接”、“s表示套接字”等等;

第2-4位:表示文檔所有者的權(quán)限情況,第2位表示讀權(quán)限的情況,取值有r、-;第3位表示寫權(quán)限的情況,w表示可寫,-表示不可寫,第4位表示執(zhí)行權(quán)限的情況,取值有x、-。

第5-7位:表示與所有者同在一個組的用戶的權(quán)限情況,第5位表示讀權(quán)限的情況,取值有r、-;第6位表示寫權(quán)限的情況,w表示可寫,-表示不可寫,第7位表示執(zhí)行權(quán)限的情況,取值有x、-。

第8-10位:表示除了上面的前2部分的用戶之外的其他用戶的權(quán)限情況,第8位表示讀權(quán)限的情況,取值有r、-;第9位表示寫權(quán)限的情況,w表示可寫,-表示不可寫,第10位表示執(zhí)行權(quán)限的情況,取值有x、-。

權(quán)限分配中,均是rwx的三個參數(shù)組合,且位置順序不會變化。沒有對應(yīng)權(quán)限就用–代替。

例如:以下一個文檔權(quán)限是怎么樣的?

a. 其是文件夾類型

b. 所有者:擁有全部權(quán)限(讀寫執(zhí)行)

c. 同組用戶:可讀、可執(zhí)行

d. 其他用戶:可讀、可執(zhí)行

二、權(quán)限設(shè)置

語法:#chmod 選項 權(quán)限模式 文檔

注意事項:

常用選項:

-R:遞歸設(shè)置權(quán)限 (當文檔類型為文件夾的時候)

權(quán)限模式:就是該文檔需要設(shè)置的權(quán)限信息

文檔:可以是文件,也可以是文件夾,可以是相對路徑也可以是絕對路徑。

注意點:如果想要給文檔設(shè)置權(quán)限,操作者要么是root用戶,要么就是文檔的所有者。

1、字母形式

給誰設(shè)置:

u:表示所有者身份owner(user)

g:表示給所有者同組用戶設(shè)置(group)

o:表示others,給其他用戶設(shè)置權(quán)限

a:表示all,給所有人(包含ugo部分)設(shè)置權(quán)限

如果在設(shè)置權(quán)限的時候不指定給誰設(shè)置,則默認給所有用戶設(shè)置

權(quán)限字符:

r:讀

w:寫

x:表示執(zhí)行

-:表示沒有權(quán)限

權(quán)限分配方式:

+:表示給具體的用戶新增權(quán)限(相對當前)

-:表示刪除用戶的權(quán)限(相對當前)

=:表示將權(quán)限設(shè)置成具體的值(注重結(jié)果)【賦值】

例如:需要給anaconda-ks.cfg文件(-rw-------.)設(shè)置權(quán)限,要求所有者擁有全部的權(quán)限,同組用戶擁有讀和執(zhí)行權(quán)限,其他用戶只讀權(quán)限。

答案:

①#chmod u+x,g+rx,o+r anaconda-ks.cfg

②#chmod u=rwx,g=rx,o=r anaconda-ks.cfg

提示:當文檔擁有執(zhí)行權(quán)限(任意部分),則其顏色在終端中是綠色。

#chmodug=rwx 形式,如果有兩部分權(quán)限一樣則可以合在一起寫的

例如:如果anaconda-ks.cfg文件什么權(quán)限都沒有,可以使用root用戶設(shè)置所有人都有執(zhí)行權(quán)限,則可以寫成

①#chmod +x anaconda-ks.cfg

②#chmod a=x anaconda-ks.cfg

③#chmod a+x anaconda-ks.cfg

2、數(shù)字形式

經(jīng)常會在一些技術(shù)性的網(wǎng)頁上看到類似于#chmod 777 a.txt 這樣的一個權(quán)限,這種形式稱之為數(shù)字形式權(quán)限(777)。

讀:r 4

寫:w 2

執(zhí)行:x 1

沒有任何權(quán)限:0

例如:需要給anaconda-ks.cfg設(shè)置權(quán)限,權(quán)限要求所有者擁有全部權(quán)限,同組用戶擁有讀執(zhí)行權(quán)限,其他用戶只讀。

全部權(quán)限(u):讀+寫+執(zhí)行=4+2+1=7

讀和執(zhí)行(g):讀+執(zhí)行=4+1=5

讀權(quán)限(o):讀=4

由上得知權(quán)限為:754

#chmod 754 anaconda-ks.cfg

面試題:用超級管理員設(shè)置文檔的權(quán)限命令是#chmod-R 731 aaa,請問這個命令有沒有什么不合理的地方?

擁有者:7=4+2+1=讀+寫+執(zhí)行

同組用戶:3=2+1=寫+執(zhí)行

其他用戶:1=1=執(zhí)行

注意:在寫權(quán)限的時候千萬不要設(shè)置類似于上面的這種“奇葩權(quán)限”。如果一個權(quán)限數(shù)字中但凡出現(xiàn)2與3的數(shù)字,則該權(quán)限有不合理的情況。

3、注意事項

使用root用戶創(chuàng)建一個文件夾(/oo),權(quán)限默認,權(quán)限如下:

需要在oo目錄下創(chuàng)建文件(oo/xx.txt),需要給777權(quán)限:

切換到test用戶(不是文檔所有者,也不是同組用戶,屬于other部分):

問題1:test用戶是否可以打開oo/xx.txt文件?【能打開】

問題2:test用戶是否可以編輯oo/xx.txt文件?【可以】

問題3:test用戶是否可以刪除oo/xx.txt文件?【不可以,同樣還不允許創(chuàng)建文件/文件夾、移動文件、重命名文件】

在Linux中,如果要刪除一個文件,不是看文件有沒有對應(yīng)的權(quán)限,而是看文件所在的目錄是否有寫權(quán)限,如果有才可以刪除。

三、屬主與屬組設(shè)置

屬主:所屬的用戶(文件的主人)

屬組:所屬的用戶組

前面的那個root就是屬主

后面的那個root就是屬組

這兩項信息在文檔創(chuàng)建的時候會使用創(chuàng)建者的信息(用戶名、用戶所屬的主組名稱)。

如果有時候去刪除某個用戶,則該用戶對應(yīng)的文檔的屬主和屬組信息就需要去修改。

1、chown(重點)

作用:更改文檔的所屬用戶

語法:#chown -R username文檔路徑

案例:將剛才root用戶創(chuàng)建的oo目錄,所有者更改為test

#chown test oo/

2、chgrp(了解)

作用:更改文檔的所屬用戶組

語法:#chgrp -R groupname 文檔的路徑

案例:將剛才root用戶創(chuàng)建的oo目錄,所有者更改為test,并且將所屬用戶組也改為test

#chgrp test oo/

思考,如何通過一個命令實現(xiàn)既可以更改所屬的用戶,也可以修改所屬的用戶組呢?

答:可以實現(xiàn)的,通過chown命令

語法:#chown -R username:groupname 文檔路徑

案例:要求只使用chown指令,將oo目錄的所屬用戶和用戶組改回成root,并且包含其子目錄

四、擴展(1)

問題:reboot、shutdown、init、halt、user管理,在普通用戶身份上都是操作不了,但是有些特殊的情況下又需要有執(zhí)行權(quán)限。又不可能讓root用戶把自己的密碼告訴普通用戶,這個問題該怎么解決?

該問題是可以被解決的,可以使用sudo(switch user do)命令來進行權(quán)限設(shè)置。Sudo可以讓管理員(root)事先定義某些特殊命令誰可以執(zhí)行。

默認sudo中是沒有除root之外用戶的規(guī)則,要想使用則先配置sudo。

Sudo配置文件:/etc/sudoers

a. 配置sudo文件請使用“#visudo”,打開之后其使用方法和vim一致

b. 配置普通用戶的權(quán)限

Root表示用戶名,如果是用戶組,則可以寫成“%組名”

ALL:表示允許登錄的主機(地址白名單)

(ALL):表示以誰的身份執(zhí)行,ALL表示root身份

ALL:表示當前用戶可以執(zhí)行的命令,多個命令可以使用“,”分割

案例:本身test用戶不能添加用戶,要求使用sudo配置,將其設(shè)置為可以添加用戶,并且可以修改密碼(但是不能修改root用戶密碼)。

注意:在寫sudo規(guī)則的時候不建議寫直接形式的命令,而是寫命令的完整路徑。

路徑可以使用which命令來查看

語法:#which 指令名稱

在添加好對應(yīng)的規(guī)則之后就可以切換用戶,切換到普通用戶test,再去執(zhí)行:

此時要想使用剛才的規(guī)則,則以以下命令進行:

#sudo 需要執(zhí)行的指令

在輸入sudo指令之后需要輸入當前的用戶密碼進行確認的操作(不是root用戶密碼),輸入之后在接下來5分鐘內(nèi)再次執(zhí)行sudo指令不需要密碼。

特別注意:此處按照案例要求,不能讓test用戶修改root密碼,因此規(guī)則還需要調(diào)整,不然其可以修改root密碼的:

禁止修改root密碼的配置(先允許全部,再拒絕root密碼設(shè)置):/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root

補充:在普通用戶下怎么查看自己具有哪些特殊權(quán)限呢?

#sudo -l

最后:sudo不是任何Linux分支都有的命令,常見centos與ubuntu都存在sudo命令。

作業(yè):給普通用戶設(shè)置一個關(guān)機命令執(zhí)行權(quán)限。

Day8:Linux的網(wǎng)絡(luò)基礎(chǔ)

一、網(wǎng)絡(luò)相關(guān)概述

1、網(wǎng)絡(luò)發(fā)展

信息傳遞

遠古時期,人們就通過簡單的語言、壁畫等方式交換信息

千百年來,人們一直在用語言、圖符、鐘鼓、煙火、竹簡、紙書等傳遞信息

古代人的烽火狼煙、飛鴿傳信、驛馬郵遞

現(xiàn)代社會中,交通警的指揮手語、航海中的旗語等

這些信息傳遞的基本方式都是依靠人的視覺與聽覺

電的產(chǎn)生

1831年,法拉第制出了世界上最早的第一臺發(fā)電機

1866年,德國人西門子(Siemens)制成世界上第一臺大功率發(fā)電機

1837年,美國人塞繆樂·莫樂斯成功地研制出世界上第一臺電磁式電報機

1844年5月24日,莫樂斯在國會大廈聯(lián)邦最高法院會議廳進行了“用莫爾斯電碼”發(fā)出了人類歷史上的第一份電報,從而實現(xiàn)了長途電報通信

網(wǎng)絡(luò)誕生

1957年,前蘇聯(lián)發(fā)射了第一顆人造衛(wèi)星,震驚了美國

1958年美國成立了國防部高級研究計劃署(ARPA,Advanced Research Projects Agency),應(yīng)對冷戰(zhàn)形勢,ARPA是一個管理機構(gòu),沒有實驗室和科學(xué)家

1969年,ARPANET(阿帕網(wǎng))開始聯(lián)機,因此1969年被稱為Internet元年

網(wǎng)絡(luò)分類(記憶)

局域網(wǎng)(Local Area Network,LAN)是指范圍在幾百米到十幾公里內(nèi)辦公樓群或校園內(nèi)的計算機相互連接所構(gòu)成的計算機網(wǎng)絡(luò)。

城域網(wǎng)(Metropolitan Area Network,MAN)所采用的技術(shù)基本上與局域網(wǎng)相類似,只是規(guī)模上要大一些。城域網(wǎng)既可以覆蓋相距不遠的幾棟辦公樓,也可以覆蓋一個城。

廣域網(wǎng)(Wide Area Network,WAN)通??缃雍艽蟮奈锢矸秶?#xff0c;如一個國家。

除了上述的劃分,網(wǎng)絡(luò)還可以按照所有者分為公網(wǎng)、私網(wǎng)是兩種Internet的接入方式。公網(wǎng)接入方式:上網(wǎng)的計算機得到的IP地址是Internet上的非保留地址,公網(wǎng)的計算機和Internet上的其他計算機可隨意互相訪問。私網(wǎng)則反之。

2、ip地址(重點記憶)

IP是英文Internet Protocol的縮寫,意思是“網(wǎng)絡(luò)之間互連的協(xié)議”,也就是為計算機網(wǎng)絡(luò)相互連接進行通信而設(shè)計的協(xié)議。

IP地址類型分為:公有地址、私有地址。

公有地址

公有地址(Public address)由Inter NIC(InternetNetwork Information Center因特網(wǎng)信息中心)負責(zé)。這些IP地址分配給注冊并向Inter NIC提出申請的組織機構(gòu)。通過它直接訪問因特網(wǎng)。

私有地址(重點)

私有地址(Private address)屬于非注冊地址,專門為組織機構(gòu)內(nèi)部使用。以下列出留用的內(nèi)部私有地址:

A類 10.0.0.0--10.255.255.255

B類 172.16.0.0--172.31.255.255

C類192.168.0.0--192.168.255.255

IP地址按類型可以分為三類:

類別

最大網(wǎng)絡(luò)數(shù)

IP地址范圍

最大主機數(shù)

私有IP地址范圍

A

126(2^7-2)

1.0.0.0-127.255.255.255

16777214

10.0.0.0-10.255.255.255

B

16384(2^14)

128.0.0.0-191.255.255.255

65534

172.16.0.0-172.31.255.255

C

2097152(2^21)

192.0.0.0-223.255.255.255

254

192.168.0.0-192.168.255.255

網(wǎng)絡(luò)運維相關(guān)技能:ip分類、子網(wǎng)劃分、劃分vlan、ACL、綜合布線、各種Serve的搭建。

127.0.0.1 本機ip

3、網(wǎng)卡

網(wǎng)卡是一個網(wǎng)絡(luò)組件,屬于硬件范疇,主要負責(zé)計算機之間數(shù)據(jù)的封裝和解封。

MAC地址:網(wǎng)卡的物理地址,網(wǎng)卡設(shè)備的編號,默認情況是全球唯一的(16進制)。

與IP地址的區(qū)別:

長度不同。IP地址為32位,MAC地址為48位。

分配依據(jù)不同。

網(wǎng)絡(luò)尋址方式不同。OSI參考模型,ip地址是基于第三層工作(網(wǎng)絡(luò)層),mac地址是第二層(數(shù)據(jù)鏈路層)

4、網(wǎng)線

網(wǎng)線是連接局域網(wǎng)必不可少的。在局域網(wǎng)中常見的網(wǎng)線主要有雙絞線(RJ45接口)、銅軸電纜、光纜三種。

5、交換機

交換機(Switch)意為“開關(guān)”,是一種用于電(光)信號轉(zhuǎn)發(fā)的網(wǎng)絡(luò)設(shè)備,交換機它可以為接入交換機的任意兩個網(wǎng)絡(luò)節(jié)點提供獨享的電信號通路。

目前,交換機品牌比較有名的是:華為、華三(h3c)、思科、銳捷。

6、路由器

路由器(Router)又稱網(wǎng)關(guān)設(shè)備(Gateway)是用于連接多個邏輯上分開、相對獨立的網(wǎng)絡(luò)

7、拓撲結(jié)構(gòu)圖(擴展)

所謂“拓撲”就是把實體抽象成與其大小、形狀無關(guān)的“點”,而把連接實體的線路抽象成“線”,進而以圖的形式來表示這些點與線之間關(guān)系的方法,其目的在于研究這些點、線之間的相連關(guān)系。表示點和線之間關(guān)系的圖被稱為拓撲結(jié)構(gòu)圖。

常見的幾種拓撲結(jié)構(gòu)圖:

二、網(wǎng)絡(luò)相關(guān)命令

1、ping

作用:檢測當前主機與目標主機之間的連通性(不是100%準確,有的服務(wù)器是禁ping)

語法:#ping 主機地址(ip地址、主機名、域名等)

例如:測試和baidu.com之間的連通性。

該命令可以跨平臺,windows下也可以使用,語法一致。(區(qū)別在于Linux下默認一直發(fā)送,windows下默認發(fā)送4個數(shù)據(jù)包)

2、netstat

作用:表示查看網(wǎng)絡(luò)的連接信息

語法:#netstat -tnlp (-t:tcp協(xié)議,-n:將字母轉(zhuǎn)化成數(shù)字,-l:列出狀態(tài)為監(jiān)聽,-p:顯示進程相關(guān)信息)

#netstat -an (-a:表示全部,-n:將字母轉(zhuǎn)化為數(shù)字)

TCP/IP協(xié)議需要使用這個命令。

3、traceroute

作用:查找當前主機與目標主機之間所有的網(wǎng)關(guān)(路由器,會給沿途各個路由器發(fā)送icmp數(shù)據(jù)包,路由器可能會不給響應(yīng))。

該命令不是內(nèi)置命令,需要安裝,但是目前的已經(jīng)安裝好了(之前選了開發(fā)工具)。

語法:#traceroute 主機地址

類似于查看快遞的跟蹤路由:

擴展:在windows下也有類似的命令:tracert 主機地址

在線工具網(wǎng)址:http://tool.chinaz.com

4、arp

地址解析協(xié)議,即ARP(Address Resolution Protocol),是根據(jù)IP地址獲取(MAC)物理地址的協(xié)議。

當一個主機發(fā)送數(shù)據(jù)時,首先查看本機MAC地址緩存中有沒有目標主機的MAC地址, 如果有就使用緩存中的結(jié)果;如果沒有,ARP協(xié)議就會發(fā)出一個廣播包,該廣播包要求查詢目標主機IP地址對應(yīng)的MAC地址,擁有該IP地址的主機會發(fā)出回應(yīng),回應(yīng)中包括了目標主機的MAC地址,這樣發(fā)送方就得到了目標主機的MAC地址。如果目標主機不在本地子網(wǎng)中,則ARP解析到的MAC地址是默認網(wǎng)關(guān)的MAC地址。

常用語法:#arp -a 查看本地緩存mac表

#arp -d 主機地址 刪除指定的緩存記錄

該命令在windows下同樣適用。

5、tcpdump(了解)

作用:抓包,抓取數(shù)據(jù)表

常用語法:

#tcpdump協(xié)議 port 端口

#tcpdump協(xié)議 port 端口 host 地址

#tcpdump-i 網(wǎng)卡設(shè)備名

查看22端口(ssh)的數(shù)據(jù)包:

00:09:17.xxxx 監(jiān)聽數(shù)據(jù)的時分秒

IP:使用的協(xié)議類型

192.168.21.1 數(shù)據(jù)包的一個方向(來自)

> 數(shù)據(jù)的流向

192.168.21.136 數(shù)據(jù)包的另外一個方向(到達)

三、項目上線流程(必須掌握)

1、服務(wù)器選配購買

項目上線服務(wù)器必須是外網(wǎng)服務(wù)器。

一般服務(wù)器有2種情況:購買真實服務(wù)器、購買云服務(wù)器

購買真實服務(wù)器一次性成本過高,所以現(xiàn)在基本都是選擇云服務(wù)器。

云服務(wù)的廠商:阿里云、騰訊云、知道創(chuàng)宇(加速樂)、華為云、盛大云、新浪云(sae)、亞馬遜云等等。

以后以阿里云為例:

官網(wǎng):http://www.aliyun.com

①打開阿里云官網(wǎng),選擇產(chǎn)品中的“云服務(wù)器ECS”

在頁面上點擊“立即購買”:

②選擇具體的配置

安全組需要先在控制面板中創(chuàng)建,創(chuàng)建好之后才能在這里進行選擇(安全組類似于防火墻,可以設(shè)置相關(guān)規(guī)則):

進入后臺查看信息:

需要重置密碼的話,則可以選擇右側(cè)“更多”選擇“重置密碼”,然后重啟服務(wù)器,最后可以通過遠程終端連接服務(wù)器:

2、域名購買

①在首頁產(chǎn)品中找到域名注冊

域名注冊得先查看是否可以注冊:

選擇需要的域名:

確認購買信息:

購買之后就可以在后臺控制面板中去查看域名情況。

3、域名備案

備案:當申請域名的人要想在國內(nèi)使用域名,則需要向當?shù)氐耐ㄐ殴芾砭?#xff08;省級)去申請報備。

備案前提:想要使用境內(nèi)服務(wù)器的話,則必須得備案。

在管理后臺點擊“ICP備案系統(tǒng)”

點擊新增主體備案:

填寫完基本信息之后點擊增加網(wǎng)站:

備案服務(wù)號可以在控制臺頂部去獲取:

申請到備案服務(wù)號之后填寫繼續(xù):

會讓用戶下載一個圖片:網(wǎng)站真實性核驗單

下載打印,填寫好上傳到阿里云備案系統(tǒng)中。

后面等待初審,初審?fù)ㄟ^之后繼續(xù)下一步(初審時間一般1天即可)

拍照

上傳照片

等待管局審核(到這個步驟基本是已經(jīng)通過,審核周期一般是15個工作日)。

等待審核通過,就會收到工信部發(fā)送的短信與郵件通知,郵件中有備案號和備案密碼(備案密碼用于注銷備案)。

4、域名解析

點擊“解析”

解析:將域名綁定到一個服務(wù)器地址的操作

DNS:domain name server,用于將域名轉(zhuǎn)化成ip地址的服務(wù)器。

點擊右上角的添加記錄:

選擇記錄:

例如:需要將www.linux123.xyz解析到之前購買的云主機上,則解析可以設(shè)置如下:

解析之后可以通過在線ping命令檢測效果:

5、配置生產(chǎn)環(huán)境(最后1天)

6、上傳代碼

此時需要使用上傳工具:pscp,filezilla。

和之前使用的方式一樣。

Day9:Shell基礎(chǔ)

一、關(guān)于shell

1、什么是shell

什么是shell?

Shell(外殼)是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言又是一種程序設(shè)計語言。

Shell 是指一種應(yīng)用程序,這個應(yīng)用程序提供了一個界面,用戶通過這個界面訪問操作系統(tǒng)內(nèi)核的服務(wù)。

什么是腳本?

腳本簡單地說就是一條條的文字命令,這些文字命令是可以看到的(如可以用記事本打開查看、編輯)。

常見的腳本:JavaScript(JS,前端),VBScript,ASP,JSP,PHP(后端),SQL(數(shù)據(jù)庫操作語言),Perl,Shell,python,Ruby,JavaFX,Lua等。

為什么要學(xué)習(xí)和使用shell?

Shell屬于內(nèi)置的腳本

程序開發(fā)的效率非常高,依賴于功能強大的命令可以迅速地完成開發(fā)任務(wù)(批處理)

語法簡單,代碼寫起來比較輕松,簡單易學(xué)

常見的shell種類?

在linux中有很多類型的shell,不同的shell具備不同的功能,shell還決定了腳本中函數(shù)的語法,Linux中默認的shell是/bin/bash(重點),流行的shell有ash、bash、ksh、csh、zsh等,不同的shell都有自己的特點以及用途。

csh

C shell 使用的是“類C”語法,csh是具有C語言風(fēng)格的一種shell,其內(nèi)部命令有52個,較為龐大。目前使用的并不多,已經(jīng)被/bin/tcsh所取代。

ksh

Korn shell 的語法與 Bourne shell 相同,同時具備了 C shell的易用特點。許多安裝腳本都使用 ksh ,ksh有42條內(nèi)部命令,與bash相比有一定的限制性。

tcsh

tcsh是csh的增強版,與 C shell 完全兼容。

sh

是一個快捷方式,已經(jīng)被/bin/bash所取代。

nologin

指用戶不能登錄

zsh

目前Linux里最龐大的一種shell:zsh。它有84個內(nèi)部命令,使用起來也比較復(fù)雜。一般情況下,不會使用該shell。

bash

大多數(shù)Linux系統(tǒng)默認使用的shell,bash shell 是 Bourne shell 的一個免費版本,它是最早的 Unix shell,bash還有一個特點,可以通過help命令來查看幫助。包含的功能幾乎可以涵蓋shell所具有的功能,所以一般的shell腳本都會指定它為執(zhí)行路徑。

2、shell入門

編寫規(guī)范:

代碼規(guī)范:

#!/bin/bash [指定告知系統(tǒng)當前這個腳本要使用的shell解釋器]

Shell相關(guān)指令

文件命名規(guī)范:

文件名.sh .sh是linux下bash shell 的默認后綴

使用流程:

①創(chuàng)建.sh文件 touch/vim

②編寫shell代碼

③執(zhí)行shell腳本 腳本必須得有執(zhí)行權(quán)限

案例1:創(chuàng)建test.sh,實現(xiàn)第一個shell腳本程序,輸出hello world.

輸出命令:#echo 123

注意:輸出的內(nèi)容如果包含字母和符號(不包含變量),則需要用引號包括起來。如果是純數(shù)字可以包也可以不包。

注意,這里在運行時一定要寫成 ./test.sh,而不是 test.sh,運行其它二進制的程序也一樣,直接寫 test.sh,Linux 系統(tǒng)會去 PATH(環(huán)境變量) 里尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的當前目錄通常不在 PATH 里,所以寫成 test.sh 是會找不到命令的,要用 ./test.sh 告訴系統(tǒng)說,就在當前目錄找。

案例2:使用root用戶帳號創(chuàng)建并執(zhí)行test2.sh,實現(xiàn)創(chuàng)建一個shelltest用戶,并在其家目錄中新建文件try.html。

腳本執(zhí)行的另外一個方式:/bin/bash 腳本的路徑(了解)

#

Shell腳本分為簡單的寫法(簡單命令的堆積)和復(fù)雜寫法(程序的設(shè)計)

二、shell進階(重點)

1、變量(重點)

1.1、變量的含義

a. 什么是量

量就是數(shù)據(jù).

b. 什么是變量

數(shù)據(jù)可以發(fā)生改變就是變量.

在一個腳本周期內(nèi),其值可以發(fā)生改變的量就是變量.

c. 什么叫做一個腳本周期

一個腳本周期我們可以簡單的理解為當前的shell文件

變量是shell中不可或缺的一部分,也是最基礎(chǔ)、最重要的組成部分。

1.2、變量的定義與使用(重點)

變量,先定義后使用。

定義形如:class_name="yunwe "

使用形如:echo $class_name

變量就是由2部分組成,一個是變量名(左邊),另外一部分是變量的值(右邊)

變量名和變量值是什么關(guān)系??

變量名和變量值是使用和被使用關(guān)系; 我們的變量名來使用變量值;

在使用變量的時候一定需要在變量名前面添加一個$符號,該要求在其他語言中也存在的(例如php)。

變量名的規(guī)范

注意,變量名后面的等號左右不能有空格,這可能和你熟悉的所有編程語言都不一樣。同時,變量名的命名須遵循如下規(guī)則:

命名只能使用英文字母,數(shù)字和下劃線,首個字符不能以數(shù)字開頭。

中間不能有空格,可以使用下劃線“_”。

不能使用標點符號。

不能使用bash里的關(guān)鍵字(可用help命令查看保留關(guān)鍵字)。

問題:以下哪個shell變量名是合法的?

A. var B.?var C. user*name D.echo

案例1:使用變量改寫入門腳本中的第1個shell腳本。

關(guān)于單雙引號的問題:

雙引號能夠識別變量,雙引號能夠?qū)崿F(xiàn)轉(zhuǎn)義(類似于“\*”)

單引號是不能識別變量,只會原樣輸出,單引號是不能轉(zhuǎn)義的

案例2:定義一個變量,輸出當前時間,要求格式為“年-月-日時:分:秒”。

注意:反引號(esc鍵下方的那個鍵),當在腳本中需要執(zhí)行一些指令并且將執(zhí)行的結(jié)果賦給變量的時候需要使用“反引號”。

1.3、只讀變量(了解)

語法:readonly 變量名

案例:定義變量a并且其值為10,隨后設(shè)置其為只讀變量,再去嘗試重新賦值

1.4、接收用戶輸入(重點)

語法:read -p 提示信息 變量名

案例:編寫一個腳本test6.sh,要求執(zhí)行之后提示用戶輸入文件的名稱(路徑),然后自動為用戶創(chuàng)建該文件

1.5、刪除變量(了解)

語法:unset 變量名

案例:定義變量b=20,再輸出b的值,隨后刪除b,最后再輸出下b

2、條件判斷語句

老婆給當程序員的老公打電話:下班順路買一斤包子帶回來,如果看到賣西瓜的,買一個。當晚,程序員老公手捧一個包子進了家門…老婆怒道:你怎么就買了一個包子?!老公答曰:因為看到了賣西瓜的。

把程序員老婆的話當作一段需求分析一下吧。買一斤包子是一個確定無疑的需求項,無論后面是什么情況什么條件,前面這一斤包子是肯定要買的。看到賣西瓜的是一個條件判斷,后面“買一個”是一個模糊不清的需求項,買一個什么呢?需求里沒說啊??蛻舭堰@個當作開發(fā)人員默認了解的內(nèi)容了??墒亲鳛橐粋€成熟合格的程序員,該老婆的丈夫應(yīng)該馬上跟進確認需求“買一個什么?”,要不然程序可怎么寫呢?所以笑話里該程序員是不合格的,起碼是不積極不負責(zé)的。在沒有明確需求的情況下,他只能按照自己的理解來完成工作了。那比較可能的結(jié)果就有如下幾種:

1 看到賣西瓜的,買一個西瓜

如果看到賣西瓜的

那么

買一個西瓜

否則

買一斤包子

2 看到賣西瓜的,買一個包子

如果看到賣西瓜的

那么

買一個包子

3 看到賣西瓜的,買一個賣西瓜的

4 看到賣西瓜的,買一個老婆一直想買的東西

5 看到賣西瓜的,隨便買一個東西

上述1和2下面的條件漢字描述稱之為“偽代碼”,也是屬于條件表達式的語法。

語法1(一個條件):

ifcondition

then

command1

command2

...

fi

單行寫法(一般在命令行中執(zhí)行的時候):if [condition ]; then command; fi

語法2(兩個條件):

ifcondition

then

command1

command2

...

else

command

fi

語法3(多個條件):

ifcondition1

then

command1

elifcondition2

then

command2

else

commandN

fi

3、運算符

在shell中,運算符和其他編程腳本語言一樣,常見的有算數(shù)運算符、關(guān)系運算符、

邏輯運算符、字符串運算符、文件測試運算符

3.1、算數(shù)運算符

下表列出了常用的算術(shù)運算符,假定變量 a 為 10,變量 b 為 20:

運算符

說明

舉例

+

加法

`expr $a + $b` 結(jié)果為 30。

-

減法

`expr $a - $b` 結(jié)果為 -10。

*

乘法

`expr $a \* $b` 結(jié)果為 200。

/

除法

`expr $b / $a` 結(jié)果為 2。

%

取余

`expr $b % $a` 結(jié)果為 0。

=

賦值

a=$b 將把變量 b 的值賦給 a。

==

相等。用于比較兩個數(shù)字,相同則返回 true(真)。

[ $a == $b ] 返回 false(假)。

!=

不相等。用于比較兩個數(shù)字,不相同則返回 true。

[ $a != $b ] 返回 true。

注意:條件表達式要放在方括號之間,并且要有空格,例如: [$a==$b] 是錯誤的,必須寫成 [ $a == $b ]。

原生bash不支持簡單的數(shù)學(xué)運算,但是可以通過其他命令來實現(xiàn),例如 awk 和 expr,expr 最常用。

expr 是一款表達式計算工具,使用它能完成表達式的求值操作。

例如,兩個數(shù)相加(注意使用的是反引號 ` 而不是單引號'):

#!/bin/bash

val=`expr2 + 2`

echo"兩數(shù)之和為 : $val"

兩點注意:

表達式和運算符之間要有空格,例如 2+2 是不對的,必須寫成 2 + 2,這與我們熟悉的大多數(shù)編程語言不一樣。

完整的表達式要被 ` ` 包含,注意這個字符不是常用的單引號,在 Esc 鍵下邊。

3.2、關(guān)系運算符

關(guān)系運算符只支持數(shù)字,不支持字符串,除非字符串的值是數(shù)字。

下表列出了常用的關(guān)系運算符,假定變量 a 為 10,變量 b 為 20:

運算符

說明

舉例

-eq

檢測兩個數(shù)是否相等,相等返回 true。

[ $a -eq $b ] 返回 false。

-ne

檢測兩個數(shù)是否相等,不相等返回 true。

[ $a -ne $b ] 返回 true。

-gt

檢測左邊的數(shù)是否大于右邊的,如果是,則返回 true。

[ $a -gt $b ] 返回 false。

-lt

檢測左邊的數(shù)是否小于右邊的,如果是,則返回 true。

[ $a -lt $b ] 返回 true。

-ge

檢測左邊的數(shù)是否大于等于右邊的,如果是,則返回 true。

[ $a -ge $b ] 返回 false。

-le

檢測左邊的數(shù)是否小于等于右邊的,如果是,則返回 true。

[ $a -le $b ] 返回 true。

-eq:equal

-ne:not equal

-gt:great than

-lt:less than

-ge:great than or equal

-le:less than or equal

案例:使用a=10,b=20來實現(xiàn)本案例

課堂作業(yè):

寫一個腳本,判斷當前輸入的用戶是否存在。如果存在則提示“用戶存在”否則提示“用戶不存在”。

3.3、邏輯運算符

下表列出了常用的布爾運算符,假定變量 a 為 10,變量 b 為 20:

運算符

說明

舉例

!

非運算,表達式為 true 則返回 false,否則返回 true。

[ ! false ] 返回 true。

-o

或(或者)運算,有一個表達式為 true 則返回 true

[ $a -lt 20 -o $b -gt 100 ] 返回 true。

-a

與(并且)運算,兩個表達式都為 true 才返回 true。

[ $a -lt 20 -a $b -gt 100 ] 返回 false。

或運算:一個為真即為真,全部為假才是假

與運算:一個為假即為假,全部為真才是真

3.4、字符串運算符

下表列出了常用的字符串運算符,假定變量 a 為 "abc",變量 b 為 "efg":

運算符

說明

舉例

=

檢測兩個字符串是否相等,相等返回 true。

[ $a = $b ] 返回 false。

!=

檢測兩個字符串是否相等,不相等返回 true。

[ $a != $b ] 返回 true。

-z

檢測字符串長度是否為0,為0返回 true。

[ -z $a ] 返回 false。

-n

檢測字符串長度是否為0,不為0返回 true。

[ -n $a ] 返回 true。

str

檢測字符串是否為空,不為空返回 true。

[ $a ] 返回 true。

案例:將上述的語法驗證下

3.5、文件測試運算符(重點)

文件測試運算符用于檢測 Unix/Linux 文件的各種屬性。

屬性檢測描述如下:

操作符

說明

舉例

-b file

檢測文件是否是塊設(shè)備文件,如果是,則返回 true。

[ -b $file ] 返回 false。

-c file

檢測文件是否是字符設(shè)備文件,如果是,則返回 true。

[ -c $file ] 返回 false。

-d file

檢測文件是否是目錄,如果是,則返回 true。

[ -d $file ] 返回 false。

-f file

檢測文件是否是普通文件(既不是目錄,也不是設(shè)備文件),如果是,則返回 true。

[ -f $file ] 返回 true。

-g file

檢測文件是否設(shè)置了 SGID 位,如果是,則返回 true。

[ -g $file ] 返回 false。

-k file

檢測文件是否設(shè)置了粘著位(Sticky Bit),如果是,則返回 true。

[ -k $file ] 返回 false。

-p file

檢測文件是否是有名管道,如果是,則返回 true。

[ -p $file ] 返回 false。

-u file

檢測文件是否設(shè)置了 SUID 位,如果是,則返回 true。

[ -u $file ] 返回 false。

-r file

檢測文件是否可讀,如果是,則返回 true。

[ -r $file ] 返回 true。

-w file

檢測文件是否可寫,如果是,則返回 true。

[ -w $file ] 返回 true。

-x file

檢測文件是否可執(zhí)行,如果是,則返回 true。

[ -x $file ] 返回 true。

-s file

檢測文件是否為空(文件大小是否大于0),不為空返回 true。

[ -s $file ] 返回 true。

-e file

檢測文件(包括目錄)是否存在,如果是,則返回 true。

[ -e $file ] 返回 true。

案例:測試上述標綠色的效果

注意:權(quán)限幾個判斷,如果只有一個部分符合,則認為是有權(quán)限的。

4、shell腳本附帶選項(重點)

問題描述:在linux shell中如何處理tail -10 access.log這樣的命令行選項?

步驟:

調(diào)用tail指令

系統(tǒng)把后續(xù)選項傳遞給tail

Tail先去打開指定的文件

取出最后10行

問題:自己寫的shell是否也可以像內(nèi)置命令一樣傳遞一些選項呢?

答:可以的,傳遞方式與上述的描述是一樣的,關(guān)鍵是怎么接收。例如:

傳遞:

#./test.sh a b c

接收:

在腳本中可以用“$1”來表示a,“$2”來表示b,以此類推。

接收可以用“$”加上選項對應(yīng)的序號即可。

測試:編寫test14.sh,傳遞a,b,c,輸出其值

其實$1、$2是變量。

練習(xí):創(chuàng)建自定義指令“user”,可以直接執(zhí)行,要求該指令具備以下語法和功能:

a.#user -add 用戶名 【添加用戶】

b.#user -del 用戶名 【刪除用戶及其家目錄】

同時題目中要求是指令,所以可以再去添加個別名:

三、作業(yè)

1、嘗試寫一個shell的簡易計算器功能,實現(xiàn)加減乘除。

2、作業(yè):使用-e文件測試運算符,改寫“1.4接收用戶輸入”的案例,在創(chuàng)建文件的時候需要先判斷是否存在,如果存在則提示用戶并且不執(zhí)行創(chuàng)建操作,如果不存在則創(chuàng)建。

3、嘗試創(chuàng)建一個shell腳本,該腳本要求可以類似于“touch”指令一樣,能夠使用“touch 文件路徑”的形式進行創(chuàng)建文件操作,并且要求創(chuàng)建好的文件權(quán)限默認為755。

Day10:MySQL基礎(chǔ)

一、關(guān)于數(shù)據(jù)庫

1、什么是數(shù)據(jù)庫

如果一個項目是動態(tài)(內(nèi)容會變化的,網(wǎng)頁后綴.jsp、.php、.shtml等)內(nèi)容的話,則數(shù)據(jù)庫是必不可少的一個環(huán)節(jié)。

2、MySQL簡介

MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),2008年被Sun公司收購,目前屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件。其和php是黃金搭檔(LAMP/LNMP)。

3、常見的其他數(shù)據(jù)庫軟件

目前市場上還有:Oracle(重量級的數(shù)據(jù)庫)、MS SQL Server(微軟)、Access(微軟)、PostgreSQL、DB2、Mariadb(MySQL分支,完全兼容MySQL)。

二、MySQL的安裝與初始化

操作之前先確保計算機時間準確。

1、Linux下的軟件安裝方式(初步)

a. 源碼包(建議)

優(yōu)點

開源,如果有足夠的能力,可以修改源代碼

編譯安裝,更加適合自己的系統(tǒng),穩(wěn)定高效

缺點

安裝步驟較多,容易出錯

編譯過程時間較長

案例:使用源碼編譯安裝方式安裝ncurses(一種常用的終端庫)

擴展:解包

常用語法:

#tar -zxvf *.tar.gz (大多數(shù))

#tar -jxvf *.tar.bz2

選項含義:

-z或--gzip或--ungzip:通過gzip指令處理文件;

-x或--extract或--get:從文件中還原文件;

-v:顯示操作過程;

-f或--file:指定一個文件;

-j:支持bzip2解壓文件;

①先將軟件包傳遞到服務(wù)器上“/usr/local/src”

②解壓需要安裝的源碼包

# tar -zxvf ncurses-6.1.tar.gz

③切換到源碼文件夾,然后執(zhí)行后續(xù)操作

配置(config/configure/bootstrap)→編譯(make/bootstrapd)→安裝(make install/bootstrapdinstall)

配置操作主要是指定軟件的安裝目錄、需要的依賴在什么地方、指定不需要可選依賴、配置文件的路徑、通用數(shù)據(jù)存儲位置等等。

指定安裝的路徑:--prefix=路徑

需要依賴的路徑:--with-PACKAGE名=[包所在的路徑]

不需要依賴:--without-PACHAGE名

# ./configure --prefix=/usr/local/ncurses

# make

# make install

成功之后查看目錄(可選):

b. 二進制包(rpm)

優(yōu)點: 包管理系統(tǒng)簡單,只需要幾個命令就可以實現(xiàn)包的安裝,升級,查詢和卸載

缺點: 經(jīng)過編譯,不再可以看到源代碼

回顧rpm相關(guān)指令:

#rpm -qa|grep 關(guān)鍵詞

#rpm -e 關(guān)鍵詞[--nodeps]

#rpm -ivh 完整名稱

#rpm -Uvh 完整名稱

#rpm -qf 文件路徑 【查詢指定文件屬于哪個包】

案例:使用二進制包安裝lynx(一款純命令行的瀏覽器)

在光盤中就有這個包

例如查看百度:#lynx --dump www.baidu.com

c. yum等傻瓜式安裝

優(yōu)點: 安裝簡單,快捷

缺點: 完全喪失了自定義性

注意:如果不更改軟件來源的情況下,是需要聯(lián)網(wǎng)才能使用yum的。

常用的yum指令:

#yum list [installed] 列出當前已經(jīng)裝的和可以裝的軟件(全部)

#yum search 名 搜索指定的關(guān)鍵詞的包

#yum [-y] install 包名 安裝指定的包(-y表示允許不再確認)

#yum [-y] update [包名] 更新指定的包,不指定包則更新全部軟件

#yum [-y] remove 包名 卸載指定的包

案例:使用yum指令卸載火狐瀏覽器

#yum remove firefox

案例:使用yum指令安裝火狐瀏覽器

#yum install firefox

2、安裝MySQL(重點)

注:此處安裝以yum安裝為例

2.1、MySQL安裝

#yum install mysql-server

完成的:

2.2、MySQL初始化

#service mysqld start

查看端口號(默認端口號3306):

# mysql_secure_installation

Entercurrent password for root (enter for none):請輸入當前root用戶的密碼,如果沒有按回車,注意此root并非linux的root用戶。

Setroot password?是否設(shè)置root密碼?

需要設(shè)置的密碼:qhabOfhlluB9

Removeanonymous users?是否移除匿名用戶,選擇移除(Y)

Disallowroot login remotely?是否不允許root遠程登錄(默認不允許)

Removetest database and access to it?是否移除測試數(shù)據(jù)庫(建議先不移除)

Reloadprivilege tables now?是否重新加載權(quán)限表(當我們更改了mysql用戶相關(guān)的信息之后建議去重載權(quán)限)

2.3、MySQL的啟動控制

語法:service mysqldstart/stop/restart

進入mysql的方式:

#mysql -u用戶名 -p

退出MySQL到linux命令行:

mysql> exit

2.4、默認目錄/文件位置(了解)

數(shù)據(jù)庫存儲目錄:/var/lib/mysql

配置文件:/etc/my.cnf

三、MySQL的基本操作(難點)

1、名詞介紹

以Excel文件舉例:

數(shù)據(jù)庫:可以看作是整個excel文件。

數(shù)據(jù)表:可以看作是一個excel文件中的工作表。

行(記錄):可以看作是一個工作表中的一行

列(字段):可以看作是一個工作表總的一列

2、庫操作(重點)

以下命令在MySQL終端命令行中執(zhí)行(大小寫均可):

SHOW DATABASES; 顯示當前MySQL中全部的數(shù)據(jù)庫

CREATE DATABASE 庫名; 創(chuàng)建數(shù)據(jù)庫

DROP DATABASE 庫名; 刪除數(shù)據(jù)庫

USE 庫名; 切換數(shù)據(jù)庫

Show databases效果

創(chuàng)建數(shù)據(jù)庫:創(chuàng)建yunwei數(shù)據(jù)庫

刪除數(shù)據(jù)庫:刪除yunwei數(shù)據(jù)庫

切換數(shù)據(jù)庫:切換到test數(shù)據(jù)庫

3、表操作

SHOW TABLES; 顯示當前數(shù)據(jù)庫中所有的表名(必須先use數(shù)據(jù)庫)

CREATE TABLE 表名稱 在當前數(shù)據(jù)庫下創(chuàng)建數(shù)據(jù)表

(

列名稱1 數(shù)據(jù)類型[NOT NULL AUTO_INCREMENT],

列名稱2 數(shù)據(jù)類型,

列名稱3 數(shù)據(jù)類型,

....,

PRIMARY KEY(主鍵字段名)

);

常見的數(shù)據(jù)類型:int(整型)、char(定長字符)、varchar(不定長字符)。

主鍵一般就是序號所在的那一列(主鍵不能重復(fù))。

DESC 表名; 描述一個數(shù)據(jù)表(查看表結(jié)構(gòu))

DROP TABLE [IF EXISTS] 表名; 刪除一個數(shù)據(jù)表

案例:使用上述的語法

查看所有的數(shù)據(jù)表

創(chuàng)建數(shù)據(jù)表(去test庫中創(chuàng)建)

要求:表名xg,要求有字段如下:

Id字段,11位整型,不為空,自增,主鍵

Username字段,varchar類型,20長度

Password字段,char類型,32長度

SQL(standard query language)語句:

Create table xg(

Idint(11) not null auto_increment,

Usernamevarchar(20),

Passwordchar(32),

Primary key(id)

);

查看表結(jié)構(gòu):

刪除數(shù)據(jù)表:

4、記錄/字段操作(重點)

4.1、增加記錄

語法1:INSERT INTO 表名稱 VALUES (值1, 值2,....);

語法2:INSERT INTO 表名稱 (列1, 列2,...) VALUES (值1, 值2,....);

案例:往數(shù)據(jù)表xg表中新增一個記錄username為zhangsan,password為123456(加密結(jié)果E10ADC3949BA59ABBE56E057F20F883E)

Sql語句:

insert into xg (username,password) v alues(‘zhangsan’,’E10ADC3949BA59ABBE56E057F20F883E’)

要求前面的列名與值要一一對應(yīng)。

4.2、更新記錄

語法:UPDATE 表名稱 SET 列名稱1 = 新值1,列名稱2 = 新值2… WHERE 列名稱 = 某值;

案例:使用更新語句更新id大于等于2的記錄,將其密碼改為:25F9E794323B453885F5181F1B624D0B

SQL語句:

Update xg set password = ‘25F9E794323B453885F5181F1B624D0B’where id >= 2;

以后在執(zhí)行影響行數(shù)的sql操作的時候一定需要注意條件是否寫錯或者漏寫。

4.3、查詢記錄

SELECT列名稱1,列名稱2… FROM 表名稱WHERE 條件;

SELECT * FROM 表名稱WHERE 條件;

案例:查詢剛才新增的記錄

只查詢用戶名和密碼,并且是id=2的:

Select username,password from xg where id =2;

查詢?nèi)?#xff1a;

Select * from xg;

4.4、刪除記錄

DELETEFROM 表名稱 WHERE列名稱 =值;

案例:刪除id為2的記錄

Delete from xg where id = 2;

5、備份與還原(重點)

5.1、備份(導(dǎo)出)

全量備份(數(shù)據(jù)+結(jié)構(gòu)):#mysqldump -uroot-p123456 -A > 備份文件路徑

指定庫備份(數(shù)據(jù)+結(jié)構(gòu)):# mysqldump-uroot -p123456 庫名 > 備份文件路徑

多個庫備份(數(shù)據(jù)+結(jié)構(gòu)):# mysqldump -uroot -p123456 --databases db1db2 > 備份文件路徑

案例:備份整個庫

# mysqldump -uroot -pqhabOfhlluB9 -A >/root/sql_201804061609.sql

案例:每1分鐘自動備份1次test數(shù)據(jù)庫

計劃任務(wù)編寫:

等待幾分鐘觀察目錄情況:

5.2、還原(導(dǎo)入)

還原部分分(1)mysql命令行source方法和 (2)系統(tǒng)命令行方法

1.還原全部數(shù)據(jù)庫:

(1) mysql命令行:mysql> source 備份文件路徑

(2) 系統(tǒng)命令行:#mysql -uroot -p123456 < 備份文件路徑

2.還原單個數(shù)據(jù)庫(需指定數(shù)據(jù)庫)

(1) mysql> use 庫名

mysql> source 備份文件路徑

(2) #mysql -uroot -p123456 庫名< 備份文件路徑

3.還原單個數(shù)據(jù)庫的多個表(需指定數(shù)據(jù)庫)

(1) mysql> use 庫名

mysql> source 備份文件路徑

(2) mysql -uroot -p123456 庫名< 備份文件路徑

4.還原多個數(shù)據(jù)庫,(一個備份文件里有多個數(shù)據(jù)庫的備份,此時不需要指定數(shù)據(jù)庫)

(1) mysql命令行:mysql> source 備份文件路徑

(2) 系統(tǒng)命令行: mysql -uroot -p123456 < 備份文件路徑

案例1:人為刪除xg表(模擬數(shù)據(jù)表丟失),然后通過最后一次備份還原數(shù)據(jù)表。

先刪除數(shù)據(jù)表

還原操作:

案例2:需要還原sql文件到test庫(mobile.sql 31萬條數(shù)據(jù))

設(shè)置Mysql連接字符集:

Mysql>set names utf8; 【三碼一致,服務(wù)器端+傳輸過程中+客戶端

四、擴展

1、mysql的遠程管理工具

分為兩大類:B/S架構(gòu)、C/S架構(gòu)。

B/S:B是指瀏覽器,S是指服務(wù)器。例如:百度搜索應(yīng)用就屬于BS架構(gòu)軟件。

C/S:C是指客戶端,S是指服務(wù)器。例如:QQ、電腦端微信等應(yīng)用程序都是CS架構(gòu)。

在BS中,mysql有個典型的管理工具:PMA(phpMyAdmin)

CS中比較典型的軟件:navicat、mysql workbrach

要解決的問題:允許mysql遠程登錄

a. 先進入數(shù)據(jù)庫選擇mysql數(shù)據(jù)庫;

b. 執(zhí)行sql語句:select host,user fromuser;

c. 將其中的一個記錄的host值改為“%”,表示可以允許任何地方登錄

d. 刷新權(quán)限表或者重啟mysql

刷新權(quán)限:mysql> flushprivileges;

e. navicat登錄成功

五、作業(yè)

1、導(dǎo)入sql文件(mobile.sql)到test數(shù)據(jù)庫,并使用該數(shù)據(jù)表進行數(shù)據(jù)的增刪改查練習(xí)。

2、請編寫一個簡單的shell腳本,文件名為autoBakup.sh,并寫出計劃任務(wù)指令,能夠?qū)崿F(xiàn)每天0點整自動備份整個MySQL數(shù)據(jù)庫。

Day11:Yum項目上線實戰(zhàn) (網(wǎng)站運維)

一、編譯安裝與卸載Nginx

Nginx:是一款比較流行的web服務(wù)器軟件,類似于Apache。

1、安裝nginx

①下載nginx

下載地址:https://nginx.org/en/download.html

使用在服務(wù)器端下載的方式進行下載(此處不使用filezilla):

#wget 地址

例如當前需要下載nginx到“/usr/local/src”

#wget https://nginx.org/download/nginx-1.13.11.tar.gz

②解壓nginx安裝包

# tar -zxvf nginx-1.13.11.tar.gz

③進入nginx解壓目錄

開始進行配置、編譯、安裝操作

在配置時候報錯:沒有PCRE庫

直接yum安裝pcre-devel:

#yum installpcre-devel

報錯缺少zlib庫:

直接使用yum安裝zlib庫:

#yum installzlib-devel

還需要自己去下載一個zlib的源碼包,然后解壓出來:

最終的nginx配置命令:

#./configure--prefix=/usr/local/nginx --with-pcre --with-zlib=/usr/local/src/zlib-1.2.11

開始安裝:

#make

最后安裝:

#make install

安裝好的目錄:

④運行nginx

先停止Apache,然后再運行nginx

#/usr/local/nginx/sbin/nginx 【啟動命令】

#/usr/local/nginx/sbin/nginx-s reload 【重載,重載配置文件】

啟動效果:

⑤了解:卸載編譯安裝的軟件

#rm -rf 軟件的安裝目錄

注意:卸載一個編譯安裝的軟件的時候必須先停止。

二、關(guān)于LAMP

LAMP:Linux + Apache+ MySQL + PHP LAMP架構(gòu)(組合)

LNMP:Linux + Nginx + MySQL + php-fpm LNMP架構(gòu)(組合)

LNMPA:Linux + Nginx + MySQL + PHP + Apache Nginx代理方式

三、LAMP環(huán)境部署

首先登錄控制臺獲取需要連接的主機ip地址:

后續(xù)可以進行遠程登錄。

在整個LAMP中需要自己安裝的也就只有Apache +PHP + Mysql。后續(xù)以yum為例。

1、PHP與Apache的安裝

#yuminstall php 【在安裝好php的同時會一起順帶安裝Apache】

啟動Apache:#service httpd start

此處會有一個警告,無法確定主機的FQDN,如果需要處理,則需要修改Apache的配置文件(/etc/httpd/conf/httpd.conf)

# vim /etc/httpd/conf/httpd.conf

在文件中搜索“ServerName”

將前面的“#”去除,保存退出,重啟apache

測試訪問,在地址欄中輸入ip地址直接訪問(關(guān)閉防火墻):

測試php是否可以運行(默認的Apache站點目錄:/var/www/html):

創(chuàng)建一個index.php文件

運行php看到頁面:

2、MySQL的安裝與初始化

#yum install mysql-server

初始化操作:

#service mysqld start 【啟動】

# mysql_secure_installation

測試進行命令行登錄:

#mysql -uroot -p

如果需要遠程登錄則需要修改登錄主機:

重啟MYSQL或者刷新權(quán)限:

Mysql> flush privileges;

阿里云上的安全組端口放行:

使用navicat進行登錄:

3、項目上線

解壓項目包,將upload其中的內(nèi)容上傳到服務(wù)器站點目錄(/var/www/html)

①使用filezilla上傳需要的代碼文件

②傳完之后打開網(wǎng)站的首頁,會運行DZ的安裝向?qū)?/p>

a. 選擇同意協(xié)議

b. 賦予指定目錄寫權(quán)限

# chmod 777 -R /var/www/html

#yum install php-mysqli

重啟Apache:

重啟之后保證所有的配置項都是綠色的勾才可以下一步。

c. 選擇DZ的安裝方式

d. 填寫數(shù)據(jù)庫與管理員的信息

e. 安裝完成

f. 首頁

http://www.risenshineclean.com/news/35102.html

相關(guān)文章:

  • 網(wǎng)站開發(fā)實訓(xùn)報告參考文獻國內(nèi)真正的永久免費建站
  • 免費看電影的網(wǎng)站是什么快速收錄網(wǎng)
  • 怎樣做網(wǎng)站開發(fā)搜索優(yōu)化seo
  • 網(wǎng)站站長統(tǒng)計代碼百度風(fēng)云搜索榜
  • 蘇州專業(yè)做網(wǎng)站公司有哪些如何進行電子商務(wù)網(wǎng)站推廣
  • 高端做網(wǎng)站做網(wǎng)站要多少錢
  • wordpress網(wǎng)站服務(wù)器深圳市seo點擊排名軟件價格
  • 河北通信建設(shè)有限公司網(wǎng)站搜索引擎優(yōu)化什么意思
  • 上海網(wǎng)站設(shè)計服務(wù)商長尾詞挖掘免費工具
  • 網(wǎng)站開發(fā)論文需要寫什么windows優(yōu)化大師怎么使用
  • wordpress短視頻主題上海整站seo
  • 兼職做調(diào)查哪個網(wǎng)站好溫州seo公司
  • 成都 高端網(wǎng)站建設(shè)如何制作網(wǎng)頁最簡單的方法
  • 網(wǎng)站設(shè)計如何收費上海專業(yè)網(wǎng)絡(luò)推廣公司
  • 公司網(wǎng)站自己可以做嗎外包項目接單平臺
  • 怎么添加網(wǎng)站百度網(wǎng)盤下載電腦版官方下載
  • 建商城網(wǎng)站如何去推廣一個app
  • 上海著名網(wǎng)站設(shè)計公司網(wǎng)絡(luò)營銷品牌
  • 微網(wǎng)站 微官網(wǎng)的區(qū)別嗎最近的新聞大事10條
  • 深色大氣網(wǎng)站模板電腦培訓(xùn)學(xué)校學(xué)費多少
  • web網(wǎng)站開發(fā)的基本流程產(chǎn)品運營方案
  • php網(wǎng)站怎么做測試工具上海網(wǎng)站建設(shè)開發(fā)
  • 網(wǎng)站頂部展出的大幅廣告推廣網(wǎng)站源碼
  • 廣州專業(yè)的網(wǎng)站建設(shè)青島建站seo公司
  • 想象力做網(wǎng)站十大免費最虧的免費app
  • 佛山網(wǎng)站建設(shè)百度一下首頁
  • cpa個人網(wǎng)站怎么做快速seo排名優(yōu)化
  • 網(wǎng)站建設(shè)公司做網(wǎng)站要多少費用農(nóng)產(chǎn)品品牌推廣方案
  • 微信開放平臺登錄好口碑的關(guān)鍵詞優(yōu)化
  • 網(wǎng)站建設(shè) 中企動力南昌產(chǎn)品如何推廣