1. 程式人生 > 其它 >CSS(04)文字

CSS(04)文字

注:筆記記錄於B站韓順平老師的Linux課程

個人感受:該課程比較適合小白(保姆式),Shell的篇章講得不是很好,想進一步提高Linux水平還需要另尋它路

第 1 章Linux 開山篇

1.1 本套 Linux 課程的內容介紹

1.2 Linux 的學習方向

1.2.1 Linux 運維工程師

1.2.2Linux 嵌入式開發工程師

1.2.3在 linux 下做各種程式開發

1.2.4示意圖

1.3 Linux 的應用領域

1.3.1 個人桌面應用領域

此領域是傳統 linux 應用最薄弱的環節,傳統 linux 由於介面簡單、操作複雜、應用軟體少的缺點,一直被 windows 所壓制,但近些年來隨著 ubuntu、fedora [fɪˈdɔ:rə] 等優秀桌面環境的興起,同時各大硬體廠商對其支援的加大,linux 在個人桌面領域的佔有率在逐漸的提高。

1.3.2伺服器應用領域

linux 在伺服器領域的應用是最強的。linux 免費、穩定、高效等特點在這裡得到了很好的體現,近些年來 linux 伺服器市場得到了飛速

的提升,尤其在一些高階領域尤為廣泛

1.3.3嵌入式應用領域

近些年來 linux 在嵌入式領域的應用得到了飛速的提高
linux 執行穩定、對網路的良好支援性、低成本,且可以根據需要進行軟體裁剪,核心最小可以達到幾百 KB 等特點,使其近些年來在嵌入式領域的應用得到非常大的提高

主要應用:機頂盒、數字電視、網路電話、程控交換機、手機、PDA、智慧家居、智慧硬體等都是其應用領域。以後再物聯網中應用會更加廣泛

1.4 學習 Linux 的階段(高手進階過程)

linux 是一個開源、免費的作業系統,其穩定性、安全性、處理多併發已經得到業界的認可,目前很多中型,大型甚至是叢集專案都在使用 linux,很多軟體公司考慮到開發成本都首選 linux,在中國軟體公司得到廣泛的使用。

學習 linux 流程為:
第 1 階段:linux 環境下的基本操作命令,包括 檔案操作命令(rm mkdir chmod, chown) 、編輯工具使用(vi vim)、linux 使用者管理(useradd userdel usermod)等
第 2 階段:linux 的各種配置(環境變數配置,網路配置,服務配置)
第 3 階段:linux 下如何搭建對應語言的開發環境

(大資料,JavaEE, Python 等)
第 4 階段:能編寫 shell 指令碼,對 Linux 伺服器進行維護。
第 5 階段:能進行安全設定,防止攻擊,保障伺服器正常執行,能對系統調優。
第 6 階段:深入理解 Linux 系統(對核心有研究),熟練掌握大型網站應用架構組成、並熟悉各個環節的部署和維護方法

第 2 章 Linux 入門

2.1 Linux 介紹

  1. Linux 怎麼讀 【裡紐克斯,利尼克斯,里納克斯】

  2. Linux 是一款作業系統,免費,開源, 安全,高效,穩定, 處理高併發非常強悍,現在很多的企業級的專案都部署到 Linux/unix 伺服器執行。

  3. Linux 創始人-linux 林納斯

  1. Linux 的吉祥物
    企鵝 tux
  1. Linux 的主要的發行版
  1. 目前主要的作業系統有
    windows, android ,Mac,車載系統,linux 等。

2.2 unix 是怎麼來的

2.3 Linux 是怎麼來的

2.4 linux 和 unix 關係一覽圖

2.5 linux 和 Windows 比較

1、 免費與收費
Windows需要付費購買;
 
Linux 免費或少許費用。
 
2、軟體與支援
Windows平臺:數量和質量的優勢,不過大部分為收費軟體;由微軟官方提供重要支援和服務;
 
Linux平臺:大都為開源自由軟體,使用者可以修改定製和再發布,由於基本免費沒有資金支援,部分軟體質量和體驗欠缺;由全球所有的 Linux 開發者和自由軟體社群提供支援。
 

3、安全性
Windows 平臺:三天兩頭打補丁安裝系統安全更新,還是會中病毒木馬;
 
Linux 平臺:要說 Linux 沒有安全問題,那當然是不可能的,這一點仁者見仁智者見智,相對來說肯定比 Windows 平臺要更加安全,使用 Linux 您也不用裝某防毒、某毒霸。
 
 
4、使用習慣
Windows:普通使用者基本都是純圖形介面下操作使用,依靠滑鼠和鍵盤完成一切操作,使用者上手容易,入門簡單;
 
Linux:兼具圖形介面操作(需要使用帶有桌面環境的發行版)和完全的命令列操作,可以只用鍵盤完成一切操作,新手入門較困難,需要一些學習和指導(這正是我們要做的事情),一旦熟練之後效率極高。
 
 
5、可定製性
Windows:這些年之前算是全封閉的,系統可定製性很差;

Linux:您想怎麼做就怎麼做,Windows 能做到得它都能,Windows 做不到的,它也能。
 
 
6、應用範疇
或許您之前不知道 Linux ,要知道,您之前在 Windows 使用百度、谷歌,上淘寶,聊 QQ 時,支撐這些軟體和服務的,是後臺成千上萬的 Linux 伺服器主機,它們時時刻刻都在忙碌地進行著資料處理和運算,可以說世界上大部分軟體和服務都是執行在 Linux 之上的。
 
 
7、Linux的優點
1)極其穩定 
2)效能卓越 
3)安全性和漏洞的快速修補 
4)多使用者
5)使用者和使用者組的規劃 
6)相對較少的系統資源佔用 
7)可定製裁剪,移植到嵌入式平臺(如安卓裝置) 
8)可選擇的多種圖形使用者介面(如 GNOME,KDE)
 
 
8、Windows的優點
1)微軟公司強大的支援
2)足夠的遊戲娛樂支援度
3)足夠的專業軟體支援度

2.6什麼是發行版

發行版是指某些公司、組織或個人把Linux核心、原始碼以及相關的應用程式組織在一起進行二次開發,然後發行。

發行版說簡單點就是將 Linux 核心與應用軟體做一個打包

第 3 章 VM 和 Linux 系統(CentOS)安裝

vm 和 Centos的關係

CentOS 下載

下載方案一:官網下載

https://www.centos.org/download/

各個版本的ISO映象檔案說明:

下載方案二:迅雷下載(CentOS 6.5 映像)

點選連結或複製連結到迅雷即可開始下載

32 位 CentOS 6.5 映像下載:http://archive.kernel.org/centos-vault/6.5/isos/i386/CentOS-6.5-i386-bin-DVD1.iso
64 位 CentOS 6.5 映像下載:http://archive.kernel.org/centos-vault/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso

下載方案三:資源欄目下載

http://mirrors.sohu.com/centos/7.7.1908/isos/x86_64/

安裝VMWare12

VMware 有兩個版本,分別是 VMware Workstation Pro 和 VMware Workstation Player
Player 是免費版本,只能用於非商業用途,適合個人學習
Pro 是商業版本,功能最強大,付費以後才能使用

安裝CentOS 6.8

1 檢查BIOS虛擬化支援

2 新建虛擬機器

3 新建虛擬機器嚮導

4 建立虛擬空白光碟

5 安裝Linux系統對應的CentOS版

6 虛擬機器命名和定位磁碟位置

7 處理器配置,看自己是否是雙核、多核;虛擬機器處理器數量可以根據自己的機器配置來定,檢視電腦的屬性即可

8 設定記憶體為2GB(記憶體的大小要根據自己機器的記憶體來定,建議2G)

9 網路設定NAT(說明及其示意圖的演示)

10 選擇IO控制器型別

11 選擇磁碟型別

IDE: 老的磁碟型別

SCSI: 伺服器上推薦使用的磁碟型別,串列埠。

SATA: 也是串列埠,也是新的磁碟型別。

12 新建虛擬磁碟

13 設定磁碟容量

14 你在哪裡儲存這個磁碟檔案

15 新建虛擬機器嚮導配置完成

16 VM設定

17 載入ISO

18 安裝配置CentOS

19 啟動後初始化歡迎進入頁面

回車選擇第一個開始安裝配置,此外,在Ctrl+Alt可以實現Windows主機和VM之間視窗的切換

20 是否對CD媒體進行測試,直接跳過Skip

21 CentOS歡迎頁面,直接點選Next

22 選擇簡體中文進行安裝

23 選擇語言鍵盤

24 選擇儲存裝置

25 給計算機起名

26 設定網路環境(安裝成功後再設定)

27 選擇時區

28 設定root密碼 (一定記住)

29 硬碟分割槽-1

30 Boot分割槽設定

31swap分割槽設定

32 根分割槽設定

分割槽完成

說明:也可以使用將除去 /boot 和 swap 分割槽的所有空間分配給 / 根分割槽的方式來玩)

34 程式引導,直接下一步

35 現在定製系統軟體

說明:軟體包的安裝就使用預設的即可,但是可以給同學們演示說明一把。

36 Web環境

37 可擴充套件檔案系統支援

38 基本系統(不要去勾選java平臺,因為後面我們自己需要安裝)

39 應用程式

40 開發、彈性儲存、資料庫、伺服器(可以都不勾,有需要,以後使用中有需要再手動安裝)

41 桌面(除了KDE,其他都選就可以了)。

42 語言支援

43 系統管理、虛擬化、負載平衡器、高可用性可以都不選

44 完成配置,開始安裝CentOS

45 等待安裝完成,等待等待等待等待……20分鐘左右

46 安裝完成,重新引導

47 歡迎引導頁面

48 許可證

49 建立使用者,可以先不建立,用root賬戶登入就行

50 時間和日期

51 Kdump,去掉

52 重啟後用root登入

53 配置可以上網

54 使用火狐瀏覽器連線網路,看看是否可以連通

安裝Centos7

和上面的安裝Centos6大同小異

抽出比較重要的講講

自定義分割槽

手動新增/boot掛接點;設定期望容量200

手動新增/swap掛接點;設定期望容量2048

手動新增/掛接點;設定期望容量18231

** 檢視3個分割槽;點選完成**

點選接收更改

軟體選擇(這裡預設點選最小安裝)

但是:Centos7 使用的最小化按照,導致無圖形介面 所以在安裝過程要注意 介面安裝一定要注意!!!

如果沒有 使用一下方式進行安裝
 
1.首先需要對系統進行更新 (可以不用執行,但是某些系統在直接安裝介面會出問題,建議執行)
 # yum -y upgrade
 
 
2.然後安裝桌面元件包 ,在命令列下輸入下面的命令來安裝 Gnome包,注意字母的大小寫一定不能錯,否則安裝會有問題,出現complete 說明安裝完成
 # set-default granphical.target_
 
 
3. 執行下面命令就可以進入圖形介面 
 # startx 
 
4.雖然這時已經是圖形化介面了 但是系統還是預設啟動時命令介面 所以我們要更改預設啟動項,獲取當前系統啟動模式
 # systemctl get-default
 
 
參考:https://blog.csdn.net/kruie/article/details/88399624

Centos7最小化安裝後如何安裝圖形化桌面?

1.首先安裝X(X Window System),命令為
yum groupinstall "X Window System"
回車(注意有引號)
 
2.安裝圖形介面軟體 GNOME
yum groupinstall "GNOME Desktop"
安裝成功後,會顯示Complete!
 
3.更新系統的預設執行級別
經過上面的操作,系統啟動預設還是命令列頁面的,需要我們進行切換。
如果想要使系統啟動即為圖形化視窗,需要執行下面的命令
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target 
 
3.1補充:
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target 命令列模式
 
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target 圖形介面模式
 
4.重啟系統,當系統再次啟動的時候,就會預設進入圖形介面
reboot
 
5.CentOS7的命令列模式與圖形介面相互切換
5.1 獲取當前系統啟動模式
systemctl get-default 
5.2檢視配置檔案
cat /etc/inittab 
 
 
參考:https://blog.csdn.net/qq_43485197/article/details/84143014
5.3更改模式命令:
systemctl set-default graphical.target  //由命令列模式更改為圖形介面模式
systemctl set-default multi-user.target  //由圖形介面模式更改為命令列模式
5.4更改後驗證是否正確
shutdown -r now 

點選安裝(等待時間有多久-20分鐘左右,具體看配置)

安裝Vmtools&建立共享資料夾

安裝Vmtools

1.介紹&關係示意圖

2.安裝

注意:Centos6需要手動安裝Vmtools,Centos7是自動安裝的

1)點開設定下的裝置

2)裝置下會顯示VMware Vmtools資料夾;點開資料夾

3)複製VMwareTools-10.1.15-6627262.tar到某一個檔案中【可以自定義安裝】

例如,複製到opt目錄下

4)進入終端

進入opt目錄下

5)解壓

6)執行 vmware-install.pl檔案

7)重啟Linux系統

8)從Window拉拽一個檔案到Linux桌面

共享資料夾

關機,再配置共享資料夾,然後再開機

注:Centos7自動安裝的Vmtools,還需要手動在mnt的目錄下新建hgfs目錄,並且需要執行命令手動掛載共享資料夾,比較麻煩而且不一定掛載成功(本人原先就是遭了這樣的罪),所以強烈建議:Centos7要想建立共享資料夾,必須重新安裝Vmtools

第 4 章 Linux 的目錄結構

4.1 基本介紹

linux 的檔案系統是採用級層式的樹狀目錄結構,在此結構中的最上層是根目錄“/”,然後在此目錄下再建立其他的目錄。
深刻理解 linux 樹狀檔案目錄是非常重要的,這裡我給大家說明一下。
記住一句經典的話:在 Linux 世界裡,一切皆檔案

4.2 目錄結構的具體介紹

4.3 Linux 目錄總結一下

  1. linux 的目錄中有且只要一個根目錄 /
  2. linux 的各個目錄存放的內容是規劃好,是約定俗成的,不用亂放檔案。
  3. linux 是以檔案的形式管理我們的裝置,因此 linux 系統,一切皆為檔案

第 5 章 遠端登入 Linux 系統

5.1 為什麼需要遠端登入 Linux

5.1.1示意圖

5.1.2說明

說明: 公司開發時候, 具體的情況是這樣的

  1. linux 伺服器是開發小組共享的.
  2. 正式上線的專案是執行在公網的.
  3. 因此程式設計師需要遠端登入到 centos 進行專案管理或者開發.
  4. 畫出簡單的網路拓撲示意圖(幫助理解)
  5. 遠端登入客戶端有 Xshell5, Xftp5,SecureCRT

5.2 遠端登入 Linux-Xshell5

Xshell 是目前最好的遠端登入到 Linux 操作的軟體,流暢的速度並且完美解決了中文亂碼的問題, 是目前程式設計師首選的軟體。
Xshell 是一個強大的安全終端模擬軟體,它支援 SSH1, SSH2, 以及 Microsoft Windows 平臺的 TELNET 協議。
Xshell 可以在 Windows 介面下用來訪問遠端不同系統下的伺服器,從而比較好的達到遠端控制終端的目的。

特別說明:如果希望安裝好 XShell 5 就可以遠端訪問 Linux 系統的話,需要有一個前提,就是Linux 需要啟用SSHD服務(預設已開啟),該服務會監聽 22號埠。

檢視Linux是否開啟SSHD服務

1.開啟終端輸入命令:setup 
2.選擇系統服務【前面標識了星號表示已經啟用】
3.檢視開啟SSHD服務沒有

5.3 安裝 XShell5 並使用

xshell5漢化破解版 v5.0.1326地址
連結:https://pan.baidu.com/s/1x45UyHXtnXoEHDT5uC1Isg 
提取碼:w5wd 


xshell6
連結:https://pan.baidu.com/s/1A2Vk7V_dDnSb5dfNP46ENQ 
提取碼:xdi5

傻瓜式安裝,一路next就行...

XShell5 的關鍵配置

點選名稱;再點選連線

接受並儲存

輸入使用者名稱和密碼

5.4 遠端上傳下載檔案 Xftp5

XFtp 軟體介紹

是一個基於 windows 平臺的功能強大的 SFTP、FTP 檔案傳輸軟體。使用了 Xftp 以後,windows使用者能安全地在 UNIX/Linux 和 Windows PC 之間檔案傳輸。(示意圖)。

軟體的安裝

過於簡單,一路next...

Xftp5 的配置和使用

使用者身份驗證輸入密碼,點選確定

連線成功

如何解決XFTP中文亂碼問題

第 6 章 vi 和 vim 編輯器

6.1 vi 和 vim 的基本介紹

所有的 Linux 系統都會內建 vi 文字編輯器
Vim 具有程式編輯的能力,可以看做是 Vi 的增強版本,可以主動的以字型顏色辨別語法的正確性,方便程式設計。程式碼補完、編譯及錯誤跳轉等方便程式設計的功能特別豐富,在程式設計師中被廣泛使用。

6.2 vi 和 vim 的三種常見模式

6.2.1正常模式

在正常模式下,我們可以使用快捷鍵。以 vim 開啟一個檔案就直接進入一般模式了(這是預設的模式)。在這個模式中,你可以使用『上
下左右』按鍵來移動游標,你可以使用『刪除字元』或『刪除整行』來處理檔案內容, 也可以使用『複製、貼上』來處理你的檔案資料。

(1)i 切換到輸入模式,以輸入字元。
(2)x 刪除當前游標所在處的字元。
(3): 切換到底線命令模式,以在最底一行輸入命令。

i 切換到輸入模式,以輸入字元
x 刪除當前游標所在處的字元
: 切換到底線命令模式,以在最底一行輸入命令

6.2.2插入模式/編輯模式

在模式下,程式設計師可以輸入內容。
按下 i, I, o, O, a,A, r, R 等任何一個字母之後才會進入編輯模式, 一般來說按 i 即可

字元按鍵以及Shift組合 輸入字元
ENTER 回車鍵,換行
BACK SPACE 退格鍵,刪除游標前一個字元
方向鍵 在文字中移動游標
DEL 刪除鍵,刪除游標後一個字元
HOME/END 移動游標到行首/行尾
Page Up/Page Down 上/下翻頁
Insert 切換游標為輸入/替換模式,游標將變成豎線/下劃線
ESC 退出輸入模式,切換到命令模式

6.2.3命令列模式

在這個模式當中, 可以提供你相關指令,完成讀取、存檔、替換、離開 vim 、顯示行號等的動作則是在此模式中達成的!

:wq 寫並退出
:q 直接退出
:q!強制退出不儲存

q 退出程式
w 儲存檔案

6.3 vi 和 vim 三種模式的相互轉化圖

6.4快捷鍵的使用案例

  1. 拷貝當前行 yy , 拷貝當前行向下的 5 行 5yy,並貼上(p)。
  1. 刪除當前行 dd , 刪除當前行向下的 5 行 5dd
  2. 在檔案中查詢某個單詞 [ 按/進入命令列模式,然後輸入關鍵字,並且回車查詢 , 輸入 n鍵 就是查詢下一個 ],查詢hello.
  1. 設定檔案的行號,取消檔案的行號.[命令列下 : set nu 和 :set nonu]
  1. 使用快捷鍵到底文件的最末行[G]和最首行[gg],注意這些都是在正常模式下執行的。
  1. 在一個檔案中輸入 "hello" ,然後又撤銷這個動作,再正常模式下輸入 u
  2. 將游標移動到 第 20 行 shift+g

​ 第一步進入正常模式

​ 第二步:輸入 20 這個數
​ 第三步: 輸入 shift+g

6.5 vim 和 vi 的快捷鍵鍵盤一覽圖(瞭解即可)

第 7 章 開機、重啟和使用者登入登出

7.1 關機&重啟命令

7.1.1基本介紹

注:當我們關機或者重啟時,都應該先執行以下 sync 指令,把記憶體的資料寫入磁碟,防止資料丟失

7.2 使用者登入和登出

7.2.1基本介紹

  1. 登入時儘量少用 root 帳號登入,因為它是系統管理員,最大的許可權,避免操作失誤。可以利用普通使用者登入,登入後再用”su - 使用者名稱命令來切換成系統管理員身份.
  2. 在提示符下輸入 logout 即可登出使用者

7.2.2使用細節

1)logout 登出指令在圖形執行級別無效,在 執行級別 3 下有效.

2)執行級別這個概念,後面給大家介紹

第 8 章 使用者管理

8.1 基本介紹

說明

  1. Linux 系統是一個多使用者多工的作業系統,任何一個要使用系統資源的使用者,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。

  2. Linux 的每個使用者需要至少要屬於一個組或多個組

8.2 新增使用者

基本語法useradd [選項] 使用者名稱

cd 表示 change directory 切換目錄

細節說明

  1. 當建立使用者成功後,會自動的建立和使用者同名的家目錄

  2. 也可以通過 useradd -d 指定目錄 新的使用者名稱,給新建立的使用者指定家目錄

8.3 給使用者指定或者修改密碼

基本語法passwd 使用者名稱

  1. 給 xiaoming 指定密碼

1.當你輸入密碼時看不到:這是正常的,系統設定密文
2.在工作中,密碼必須寫複雜

常見問題解決辦法,修改它的密碼檢查策略

進入 /etc/pam.d/目錄,修改password-auth檔案

8.4 刪除使用者

  1. 刪除使用者,但是要保留家目錄:userdel 使用者名稱

  2. 刪除使用者 以及使用者主目錄:userdel -r 使用者名稱

在刪除使用者時,我們一般不會將家目錄刪除。

8.5 查詢使用者資訊

基本語法id 使用者名稱

當用戶不存在時,返回”無此使用者”

8.6 切換使用者

在操作 Linux 中,可以通過 su - 使用者名稱,切換到其他使用者

許可權高的使用者切換到許可權低的使用者,不需要輸入密碼,反之需要

當需要返回到原來的使用者時,使用exit命令

8.7檢視當前使用者/登入使用者

whoami或者who am i

8.8使用者組

8.8.1 介紹

類似於角色,系統可以對有共性的多個使用者進行統一的管理

8.8.2 增加組

命令:groupadd 組名

8.8.3 刪除組

命令:groupdel 組名

8.8.4 增加使用者時直接加上組

命令:useradd -g 使用者組 使用者名稱

8.9 修改使用者的組

基本語法:usermod -g 使用者組 使用者名稱

8.10 使用者和組的相關檔案

/etc/passwd 檔案

使用者(user)的配置檔案,記錄使用者的各種資訊

每行的含義:使用者名稱:口令:使用者標識號:組標識號:註釋性描述:主目錄:登入 Shell

/etc/shadow 檔案

口令的配置檔案
每行的含義:登入名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌

/etc/group 檔案

組(group)的配置檔案,記錄 Linux 包含的組的資訊
每行含義:組名:口令:組標識號:組內使用者列表

第 9 章 實用指令

9.1 指定執行級別

執行級別說明:
0 :關機
1 :單使用者【找回丟失密碼】
2:多使用者狀態沒有網路服務
3:多使用者狀態有網路服務
4:系統未使用保留給使用者
5:圖形介面
6:系統重啟
常用執行級別是 3 和 5 ,要修改預設的執行級別可以修改檔案/etc/inittab 的 id:5:initdefault:這一行中的數字

執行級別的示意圖:

9.2 切換到指定執行級別的指令

基本語法init [012356]

面試題:如何找回 root 密碼,如果我們不小心,忘記 root 密碼,怎麼找回。

​ 思路: 進入到 單使用者模式,然後修改 root 密碼。因為進入單使用者模式,root 不需要密碼就可以登入。

​ 步驟:開機->在引導時輸入 回車鍵-> 看到一個介面輸入 e -> 看到一個新的介面,選中第二行(編輯核心)在輸入 e-> 在這行最後輸入 1 ,再輸入 回車鍵->再次輸入 b ,這時就會進入到單使用者模式。這時,我們就進入到單使用者模式,使用 passwd 指令來修改 root 密碼。

9.3 幫助指令

當我們對某個指令不熟悉時,我們可以使用 Linux 提供的幫助指令來了解這個指令的使用方法。

基本語法:

man [命令或配置檔案] (功能描述:獲得幫助資訊)

help 命令(功能描述:獲得 shell 內建命令的幫助資訊)

linux幫助命令help、man、info 三者區別

一、help命令

help檢視幫助工具在內部命令與外部命令上是有區別的。

help <command> 只能用於內部命令,不能用於外部命令。例如:help cd

<command> --help 用於外部命令。例如:ls --help

內建命令實際上是 shell 程式的一部分,其中包含的是一些比較簡單的 Linux 系統命令,這些命令是寫在bash原始碼的builtins裡面的,由 shell 程式識別並在 shell 程式內部完成執行,通常在 Linux 系統載入執行時 shell 就被載入並駐留在系統記憶體中。而且解析內部命令 shell 不需要建立子程序,因此其執行速度比外部命令快。比如:history、cd、exit 等等。

外部命令是 Linux 系統中的實用程式部分,因為實用程式的功能通常都比較強大,所以其包含的程式量也會很大,在系統載入時並不隨系統一起被載入到記憶體中,而是在需要時才將其調入記憶體。雖然其不包含在 shell 中,但是其命令執行過程是由 shell 程式控制的。外部命令是在 Bash 之外額外安裝的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。

我們可以使用type 命令來區分命令是內建的還是外部的。

$ type cd
cd is a shell builtin	# 得到這樣的結果說明是內建命令,正如上文所說內建命令都是在 bash 原始碼中的 builtins 的.def中
$ type vim
vim is /usr/bin/vim		# 得到這樣的結果說明是外部命令,正如上文所說,外部命令在/usr/bin or /usr/sbin等等中
$ type ls
ls is an alias for ls --color=tty	# 若是得到alias的結果,說明該指令為命令別名所設定的名稱

二、man命令

得到的內容比用help更多更詳細,而且man沒有內建與外部命令的區分,因為man工具是顯示系統手冊頁中的內容,也就是一本電子版的字典,這些內容大多數都是對命令的解釋資訊,還有一些相關的描述。通過檢視系統文件中的man也可以得到程式的更多相關資訊和 Linux 的更多特性。

使用上面這個命令時我們會發現最左上角顯示“ LS (1)”,在這裡,“ LS ”表示手冊名稱,而“(1)”表示該手冊位於第一章節。

man手冊中一共有下面幾個章節:

1 Standard commands (標準命令)

2 System calls (系統呼叫)

3 Library functions (庫函式)

4 Special devices (裝置說明)

5 File formats (檔案格式)

6 Games and toys (遊戲和娛樂)

7 Miscellaneous (雜項)

8 Administrative Commands (管理員命令)

9 其他(Linux特定的), 用來存放核心例行程式的文件。

開啟手冊之後我們可以通過pguppgdn或者上下鍵來上下翻看,可以按q退出當前頁面。這裡最好記住上面的章節數和說明。

三、info命令

得到的資訊比 man 還要多,info 來自自由軟體基金會的 GNU 專案,是 GNU 的超文字幫助系統,能夠更完整的顯示出 GNU 資訊。所以得到的資訊當然更多

man 和 info 就像兩個集合,它們有一個交集部分,但與 man 相比,info 工具可顯示更完整的 GNU 工具資訊。若 man 頁包含的某個工具的概要資訊在 info 中也有介紹,那麼 man 頁中會有“請參考 info 頁更詳細內容”的字樣。

9.4 檔案目錄類

pwd

pwd :print working directory(功能描述:顯示當前工作目錄的絕對路徑)

ls

ls [選項] [目錄或是檔案]

​ ls --->list directory contents

​ 常用選項:

​ -a (all):顯示當前目錄所有的檔案和目錄,包括隱藏的。ls -a

​ -l (list):以列表的方式顯示資訊 ls -l

ll

ll並不是linux下一個基本的命令,它實際上是ls -l的一個別名。

cd

基本語法:

cd [引數] :change directory(功能描述:切換到指定目錄)

常用引數:絕對路徑和相對路徑

cd ~ 或者cd:回到自己的家目錄

cd .. :回到當前目錄的上一級目錄

mkdir

mkdir 指令用於建立目錄(make directory)

基本語法:mkdir [選項] 要建立的目錄

常用選項:

-p :建立多級目錄

rmdir 指令

介紹:rmdir (remove directory)指令刪除空目錄

基本語法:rmdir [選項] 要刪除的空目錄

使用細節:rmdir 刪除的是空目錄,如果目錄下有內容時無法刪除的。如果需要刪除非空目錄,需要使用 rm -rf (remove recursion force)要刪除的目錄

touch 指令

介紹:touch 指令建立一個或多個空檔案

基本語法:touch 檔名稱

cp 指令

介紹:cp 指令拷貝檔案到指定目錄

基本語法:cp [選項] source dest

常用選項
-r :遞迴複製整個資料夾

案例1:將 /home/hello.txt 拷貝到 /home/bbb 目錄下[拷貝單個檔案]

案例 2: 遞迴複製整個資料夾

注意,強制覆蓋不提示的方法:\cp

rm 指令

介紹:移除【刪除】檔案或目錄

基本語法:rm [選項] 要刪除的檔案或目錄

常用選項
-r :(recursive)遞迴刪除整個資料夾
-f : (force)強制刪除不提示

mv 指令

介紹:移動檔案或重新命名

基本語法:

mv oldNameFile newNameFile :(功能描述:重新命名)

mv /temp/movefile /targetFolder :(功能描述:移動檔案)

cat 指令

介紹:cat 檢視檔案內容,是以只讀的方式開啟

基本語法:cat [選項] 要檢視的檔案

常用選項
-n :顯示行號

cat 只能瀏覽檔案,而不能修改檔案,為了瀏覽方便,一般會帶上 管道命令 | more,cat -n 檔名 | more

more 指令

介紹:more 指令是一個基於 VI 編輯器的文字過濾器, 它以全螢幕的方式按頁顯示文字檔案的內容。more指令中內建了若干快捷鍵

基本語法:more 要檢視的檔案

less 指令

介紹:less 指令用來分屏檢視檔案內容,它的功能與 more 指令類似,但是比 more 指令更加強大,支援各種顯示終端。less 指令在顯示檔案內容時,並不是一次將整個檔案載入之後才顯示,而是根據顯示需要載入內容,對於顯示大型檔案具有較高的效率

基本語法:less 要檢視的檔案

> 指令 和 >> 指令

介紹:> 輸出重定向 : 會將原來的檔案的內容覆蓋>> 追加: 不會覆蓋原來檔案的內容,而是追加到檔案的尾部

基本語法:

​ 1) ls -l >檔案 (功能描述:列表的內容寫入檔案 a.txt 中(覆蓋寫))

說明:ls -l > a.txt , 將 ls -l 的顯示的內容覆蓋寫入到 a.txt 檔案,如果該檔案不存在,就建立該檔案。

  1. ls -al >>檔案 (功能描述:列表的內容追加到檔案 aa.txt 的末尾)
  1. cat 檔案 1 > 檔案 2(功能描述:將檔案 1 的內容覆蓋到檔案 2)

  2. echo "內容" >> 檔案

echo 指令

介紹:echo 輸出內容到控制檯

基本語法:echo [選項] [輸出內容]

head 指令

介紹:head 用於顯示檔案的開頭部分內容,預設情況下 head 指令顯示檔案的前 10 行內容

基本語法:

head 檔案: (功能描述:檢視檔案頭 10 行內容)

head -n 5 檔案 :(功能描述:檢視檔案前 5 行內容,5 可以是任意行數)

tail 指令

介紹:tail 用於輸出檔案尾部的內容,預設情況下 tail 指令顯示檔案的後 10 行內容

基本語法:

  1. tail 檔案 (功能描述:檢視檔案後 10 行內容)

  2. tail -n 5 檔案 (功能描述:檢視檔案後 5 行內容,5 可以是任意行數)

  3. tail -f 檔案 (功能描述:實時追蹤該文件的所有更新,工作經常使用)

ln 指令

介紹:軟連結也叫符號連結,類似於 windows 裡的快捷方式,主要存放了連結其他檔案的路徑

基本語法:ln -s [原檔案或目錄] [軟連結名] :(功能描述:給原檔案建立一個軟連結)

history 指令

介紹:檢視已經執行過歷史命令,也可以執行歷史指令

基本語法:

history :(功能描述:檢視已經執行過歷史命令)

history [數字]:顯示最近使用過的 10 個指令。

!編號:根據歷史指令的編號執行命令

9.5時間日期類

9.5.1 date 指令-顯示當前日期

基本語法

  1. date (功能描述:顯示當前時間)
  2. date +%Y (功能描述:顯示當前年份)
  3. date +%m (功能描述:顯示當前月份)
  4. date +%d (功能描述:顯示當前是哪一天)
  5. date "+%Y-%m-%d %H:%M:%S"(功能描述:顯示年月日時分秒)

9.5.2 date 指令-設定當前日期

基本語法:date -s 字串時間

9.5.3 cal 指令

介紹:檢視日曆指令

基本語法:cal [選項] :(功能描述:不加選項,顯示本月日曆)

常用選項:cal 年份

9.6搜尋查詢類

9.6.1 find 指令

介紹:find 指令將從指定目錄向下遞迴地遍歷其各個子目錄,將滿足條件的檔案或者目錄顯示在終端。

基本語法:find [搜尋範圍] [選項]

選項說明:

案例 1: 按檔名:根據名稱查詢/home 目錄下的 hello.txt 檔案

案例 2:按擁有者:查詢/opt 目錄下,使用者名稱稱為 nobody 的檔案

案例 3:查詢整個 linux 系統下大於 100m 的檔案(+n 大於 -n 小於 n 等於)

案例4:查詢 / 目錄下,所有 .txt 的檔案

9.6.2 locate 指令

介紹:locate 指令可以快速定位檔案路徑。locate 指令利用事先建立的系統中所有檔名稱及路徑的locate 資料庫實現快速定位給定的檔案。Locate 指令無需遍歷整個檔案系統,查詢速度較快。為了保證查詢結果的準確度,管理員必須定期更新 locate 時刻。

基本語法:locate 搜尋檔案

特別說明
由於 locate 指令基於資料庫進行查詢,所以第一次執行前,必須使用 updatedb 指令建立 locate 資料庫

9.6.3 grep 指令和 管道符號 |

介紹:grep 過濾查詢 , 管道符,“|”,表示將前一個命令的處理結果輸出傳遞給後面的命令處理

基本語法:grep [選項] 查詢內容 原始檔

常用選項:

9.7壓縮和解壓類

9.7.1 gzip/gunzip 指令

介紹:gzip 用於壓縮檔案, gunzip 用於解壓的

基本語法:

gzip 檔案 (功能描述:壓縮檔案,只能將檔案壓縮為*.gz 檔案

gunzip 檔案.gz (功能描述:解壓縮檔案命令)

注:當我們使用 gzip 對檔案進行壓縮後,不會保留原來的檔案。

9.7.2 zip/unzip 指令

介紹:zip 用於壓縮檔案, unzip 用於解壓的,這個在專案打包釋出中很有用的

基本語法:

zip [選項] XXX.zip 將要壓縮的內容(功能描述:壓縮檔案和目錄的命令)
unzip [選項] XXX.zip :(功能描述:解壓縮檔案)

zip 的常用選項:

​ -r:遞迴壓縮,即壓縮目錄

unzip 的常用選項:

​ -d<目錄> :指定解壓後文件的存放目錄

9.7.3 tar 指令

介紹:tar 指令 是打包指令,最後打包後的檔案是 .tar.gz 的檔案。

基本語法:tar [選項] XXX.tar.gz 打包的內容 (功能描述:打包目錄,壓縮後的檔案格式.tar.gz)

選項說明:

注:-c 和 -x 不能同時使用,一個是產生打包檔案,一個是解壓縮

案例 1: 壓縮多個檔案,將 /home/a1.txt 和 /home/a2.txt 壓縮成 a.tar.gz

指定解壓到的那個目錄,事先要存在才能成功,否則會報錯。

第 10 章 組管理和許可權管理

10.1 Linux 組基本介紹

在 linux 中的每個使用者必須屬於一個組,不能獨立於組外。在 linux 中每個檔案都有 所有者、所在組、其它組的概念。

  1. 所有者
  2. 所在組
  3. 其它組
  4. 改變使用者所在的組

10.2 檔案/目錄 所有者

一般為檔案的建立者,誰建立了該檔案,就自然的成為該檔案的所有者。

10.2.1 檢視檔案的所有者

  1. 指令:ls -ahl
  2. 應用例項:建立一個組 police,再建立一個使用者 tom,將 tom 放在 police 組 ,然後使用 tom 來建立一個檔案 ok.txt,看看情況如何

10.2.2 修改檔案所有者

指令:chown 使用者名稱 檔名

10.3 組的建立

命令:groupadd 組名

建立一個組monster,建立一個使用者 fox ,並放入到 monster 組中

10.4 檔案/目錄 所在組

當某個使用者建立了一個檔案後,預設這個檔案的所在組就是該使用者所在的組

10.4.1 檢視檔案/目錄所在組

基本指令:ls –ahlll

10.4.2 修改檔案所在的組

基本指令:chgrp 組名 檔名
使用 root 使用者建立檔案 orange.txt ,看看當前這個檔案屬於哪個組,然後將這個檔案所在組,修改到 police 組。

10.5 其它組

除檔案的所有者和所在組的使用者外,系統的其它使用者都是檔案的其它組.

10.6 改變使用者所在組

在新增使用者時,可以指定將該使用者新增到哪個組中,同樣的用 root 的管理許可權可以改變某個使用者所在的組。

改變使用者所在組:usermod –g 組名 使用者名稱

改變該使用者登陸的初始目錄: usermod –d 目錄名 使用者名稱

10.7許可權的基本介紹

ls -l 中顯示的內容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9 位說明
1)第 0 位確定檔案型別(d, - , l , c , b),其中d:目錄-:普通檔案l:軟連結c:字元裝置(鍵盤,滑鼠)b:塊檔案(硬碟)

2)第 1-3 位確定所有者(該檔案的所有者)擁有該檔案的許可權。---User
3)第 4-6 位確定所屬組(同用戶組的)擁有該檔案的許可權,---Group
4)第 7-9 位確定其他使用者擁有該檔案的許可權 ---Other

10.8 rwx 許可權詳解

10.8.1 rwx 作用於檔案

  1. [ r ]代表可讀(read): 可以讀取,檢視
  2. [ w ]代表可寫(write):可以修改,但是不代表可以刪除該檔案,刪除一個檔案的前提條件是對該檔案所在的目錄有寫許可權,才能刪除該檔案.
  3. [ x ]代表可執行(execute):可以被執行

不同的許可權可用數字表示為:r=4,w=2,x=1 因此 rwx=4+2+1=7

10.8.2 rwx 作用於目錄

  1. [ r ]代表可讀(read):可以讀取,ls 檢視目錄內容
  2. [ w ]代表可寫(write): 可以修改,目錄內建立+刪除+重新命名目錄
  3. [ x ]代表可執行(execute):可以進入該目錄

10.9檔案及目錄許可權實際案例

如果 ls -l 中顯示的內容如下:(記住)

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

10 個字元確定不同使用者能對檔案幹什麼
第一個字元代表檔案型別: 檔案 (-),目錄(d),連結(l),其餘字元每 3 個一組(rwx) 讀(r) 寫(w) 執行(x)
第一組 rwx : 檔案擁有者的許可權是讀、寫和執行
第二組 rw- : 與檔案擁有者同一組的使用者的許可權是讀、寫但不能執行
第三組 r-- : 不與檔案擁有者同組的其他使用者的許可權是讀不能寫和執行

可用數字表示為: r=4,w=2,x=1 因此 rwx=4+2+1=7

10.10 修改許可權-chmod

10.10.1 基本說明:

通過 chmod 指令,可以修改檔案或者目錄的許可權

10.10.2 第一種方式:+ 、-、= 變更許可權

u:所有者 g:所有組 o:其他人 a:所有人(u、g、o 的總和)

  1. chmod u=rwx,g=rx,o=x 檔案目錄名
  2. chmod o+w 檔案目錄名
  3. chmod a-x 檔案目錄名

案例1: 給 abc 檔案 的所有者讀寫執行的許可權,給所在組讀執行許可權, 給其它組讀執行許可權

案例2: 給 abc 檔案的所有者除去執行的許可權,增加組寫的許可權

案例3:給 abc 檔案的所有使用者新增讀的許可權

10.10.3 第二種方式:通過數字變更許可權

規則:r=4 w=2 x=1 ,rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 檔案目錄名--->相當於 chmod 751 檔案目錄名

例如,abc.txt 檔案的許可權修改成 rwxr-xr-x, 使用給數字的方式實現:chmod 755 abc.txt

10.11 修改檔案所有者-chown

10.11.1 基本介紹

chown newowner file :改變檔案的所有者
chown newowner:newgroup file: 改變使用者的所有者和所有組
-R 如果是目錄 則使其下所有子檔案或目錄遞迴生效

  1. 將 abc .txt 檔案的所有者修改成 tom
  1. 將 kkk 目錄下所有的檔案和目錄的所有者都修改成 tom

10.12 修改檔案所在組-chgrp

命令:chgrp newgroup file :改變檔案的所有組

  1. 將 abc .txt 檔案的所在組修改成 bandit (土匪)

  2. 將 kkk 目錄下所有的檔案和目錄的所在組都修改成 bandit(土匪)

第 11 章 crond 任務排程

11.1原理示意圖

crontab 進行 定時任務的設定

11.2 概述

任務排程:是指系統在某個時間執行的特定的命令或程式。
任務排程分類

​ 1.系統工作:有些重要的工作必須周而復始地執行。如病毒掃描等

​ 2.個別使用者工作:個別使用者可能希望執行某些程式,比如對 mysql 資料庫的備份。

11.3 基本語法

命令:crontab [選項]

常用選項:

快速入門:

1)設定個人任務排程。執行 crontab –e 命令。
2)接著輸入任務到排程檔案,由於任務比較簡單,不需要額外編寫shell指令碼,直接在crontab裡面編寫指令即可
如:*/1 * * * * ls –l /etc/ > /tmp/to.txt,每小時的每分鐘執行 ls –l /etc/ > /tmp/to.txt

3)儲存退出後自動執行程式。

引數細節說明

5個佔位符剛好對應 分時天月星期

特殊符號的說明

特定時間執行任務案例

案例 1:每隔 1 分鐘,就將當前的日期資訊,追加到 /home/temp/mydate 檔案

  1. 先編寫一個檔案 /home/temp/mytask1.sh
    date >> /tmp/mydate
  2. 給 mytask1.sh 一個可以執行許可權
    chmod 744 /home/temp/mytask1.sh
  3. crontab -e
  4. */1 * * * * /home/temp/mytask1.sh
  5. 成功

案例 2:每隔 1 分鐘, 將當前日期和日曆都追加到 /home/temp/mycal 檔案中

  1. 先編寫一個檔案 /home/mytask2.sh
    date >> /tmp/mycal
    cal >> /tmp/mycal
  2. 給 mytask2.sh 一個可以執行許可權
    chmod 744 /home/temp/mytask2.sh
  3. crontab -e
  4. */1 * * * * /home/temp/mytask2.sh
  5. 成功

案例 3: 每天凌晨 2:00 將 mysql 資料庫 testdb ,備份到檔案中mydb.bak。

  1. 先編寫一個檔案 /home/mytask3.sh
    /usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
  2. 給 mytask3.sh 一個可以執行許可權

​ chmod 744 /home/mytask3.sh
3) crontab -e
4) 0 2 * * * /home/mytask3.sh
5) 成功

11.4crond 相關指令:

  1. conrtab –r:終止任務排程。
    2) crontab –l:列出當前有那些任務排程
  2. service crond restart [重啟任務排程]

第 12 章 Linux 磁碟分割槽、掛載

12.1 分割槽基礎知識

12.1.1 分割槽的方式:

1) mbr 分割槽:

​ 1.最多支援四個主分割槽
​ 2.系統只能安裝在主分割槽
​ 3.擴充套件分割槽要佔一個主分割槽
​ 4.MBR 最大隻支援 2TB,但擁有最好的相容性

2) gtp 分割槽:

​ 1.支援無限多個主分割槽(但作業系統可能限制,比如 windows 下最多 128 個分割槽)
​ 2.最大支援 18EB 的大容量(1EB=1024 PB,1PB=1024 TB )
​ 3.windows7 64 位以後支援 gtp

12.1.2 windows 下的磁碟分割槽

12.2 Linux 分割槽

12.2.1 原理介紹

1)Linux 來說無論有幾個分割槽,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的檔案結構 , Linux 中每個分割槽都是用來組成整個檔案系統的一部分。
2)Linux 採用了一種叫“載入”的處理方法,它的整個檔案系統中包含了一整套的檔案和目錄,且將一個分割槽和一個目錄聯絡起來。這時要載入的一個分割槽將使它的儲存空間在一個目錄下獲得。
3)示意圖

12.2.2 硬碟說明

1)Linux 硬碟分 IDE 硬碟和 SCSI 硬碟,目前基本上是 SCSI 硬碟
2)對於 IDE 硬碟,驅動器識別符號為“hdx~”,其中“hd”表明分割槽所在裝置的型別,這裡是指 IDE 硬碟了。“x”為盤號(a 為基本盤,b 為基本從屬盤,c 為輔助主盤,d 為輔助從屬盤),“~”代表分割槽,前四個分割槽用數字 1 到 4 表示,它們是主分割槽或擴充套件分割槽,從 5 開始就是邏輯分割槽。例,hda3 表示為第一個 IDE 硬碟上的第三個主分割槽或擴充套件分割槽,hdb2 表示為第二個 IDE 硬碟上的第二個主分割槽或擴充套件分割槽。
3)對於 SCSI 硬碟則標識為“sdx~”,SCSI 硬碟是用“sd”來表示分割槽所在裝置的型別的,其餘則和 IDE 硬碟的表示方法一樣。

12.2.3 使用 lsblk 指令檢視當前系統的分割槽情況

其他例子

2.3 掛載的經典案例

需求是給我們的 Linux 系統增加一個新的硬碟,並且掛載到/home/newdisk

12.3.1 如何增加一塊硬碟

1)虛擬機器新增硬碟
2)分割槽 fdisk /dev/sdb
3)格式化 mkfs -t ext4 /dev/sdb1
4)掛載 先建立一個 /home/newdisk , 掛載 mount /dev/sdb1 /home/newdisk
5)設定可以自動掛載(永久掛載,當你重啟系統,仍然可以掛載到 /home/newdisk) 。

12.4 具體的操作步驟整理

12.4.1 虛擬機器增加硬碟步驟 1

在【虛擬機器】選單中,選擇【設定】,然後裝置列表裡新增硬碟,然後一路【下一步】,中間只有選擇磁碟大小的地方需要修改,至到完成。然後重啟系統(才能識別)!

12.4.2 虛擬機器增加硬碟步驟 2

1)分割槽命令 fdisk /dev/sdb
相關選項
•m 顯示命令列表
•p 顯示磁碟分割槽 同 fdisk –l
•n 新增分割槽
•d 刪除分割槽
•w 寫入並退出
2)輸入m獲取幫助,輸入 n 新增分割槽,然後選擇 p 分割槽型別為主分割槽。兩次回車預設剩餘全部空間。最後輸入 w 寫入分割槽並退出

12.4.3 虛擬機器增加硬碟步驟 3

格式化磁碟mkfs -t ext4 /dev/sdb1
其中 ext4 是分割槽型別

12.4.4 虛擬機器增加硬碟步驟 4

掛載/解除安裝:將一個分割槽與一個目錄聯絡起來,
掛載命令:mount 裝置名稱 掛載目錄,例如: mount /dev/sdb1 /newdisk
解除安裝命令:umount 裝置名稱 或者 掛載目錄,例如: umount /dev/sdb1 或者 umount /newdisk

12.4.5 虛擬機器增加硬碟步驟 5

永久掛載: 通過修改/etc/fstab 實現掛載。

命令:vim /etc/fstab

新增完成後 執行 mount –a 即刻生效

12.5 磁碟情況查詢

12.5.1 查詢系統整體磁碟使用情況

基本語法:df -h(disk free)
查詢系統整體磁碟使用情況

12.5.2 查詢指定目錄的磁碟佔用情況

基本語法:du -h /目錄:(disk use space)查詢指定目錄的磁碟佔用情況,預設為當前目錄

常用選項:

​ -s 指定目錄佔用大小彙總
​ -h 帶計量單位
​ -a 含檔案
​ --max-depth=1 子目錄深度

​ -c 列出明細的同時,增加彙總值

例如,查詢 /opt 目錄的磁碟佔用情況,深度為 1

12.6 磁碟情況-工作實用指令

  1. 統計/home 資料夾下檔案的個數
  1. 統計/home 資料夾下目錄的個數
  1. 統計/home 資料夾下檔案的個數,包括子資料夾裡的
  1. 統計資料夾下目錄的個數,包括子資料夾裡的
  1. 以樹狀顯示目錄結構

第 13 章 網路配置

13.1 Linux 網路配置原理圖(含虛擬機器)

目前我們的網路配置採用的是 NAT

13.2 檢視網路 IP 和閘道器

13.2.1 檢視虛擬網路編輯器

13.2.2 修改 ip 地址(修改虛擬網路的 ip)

13.2.3 檢視閘道器

13.2.4 檢視 windows 環境的中 VMnet8 網路配置 (ipconfig 指令)

  1. 使用 ipconfig 檢視

  2. 介面檢視

13.3 ping 測試主機之間網路連通

基本語法:ping 目的主機 (功能描述:測試當前伺服器是否可以連線目的主機)

13.4 linux 網路環境配置

13.4.1 第一種方法(自動獲取)

缺點: linux 啟動後會自動獲取 IP,缺點是每次自動獲取的 ip 地址可能不一樣。這個不適用於做伺服器,因為我們的伺服器的 ip 需要時固定的。

13.4.2 第二種方法(指定固定的 ip)

直 接 修 改 配 置 文 件 來 指 定 IP, 並 可 以 連 接 到 外 網 ( 程 序 員 推 薦 ) , 編 輯 vi /etc/sysconfig/network-scripts/ifcfg-eth0

注意:centos 6是ifcfg-eth0檔案,centos 7是ifcfg-ens33檔案

要求:將 ip 地址配置為靜態的,ip 地址為 192.168.17.130

修改後,一定要 重啟服務

  1. service network restart
  2. reboot 重啟系統

ifcfg-eth0檔案說明

13.4.3第三種方法(指定固定的 ip)

不建議在這裡改,有些機器是沒有圖形介面的,而且在這裡很容易出現下面的不相容問題

不相容問題:

方法1:

mv /var/lib/NetworkManager /var/lib/NetworkManager.bak

然後重啟即可

如果方法1行不通,用方法2

chkconfig network off

chkconfig network on

service NetworkManager stop

service NetworkManager start

第 14 章 程序管理

14.1 程序的基本介紹

1)在 LINUX 中,每個執行的程式(程式碼)都稱為一個程序。每一個程序都分配一個 ID 號。
2)每一個程序,都會對應一個父程序,而這個父程序可以複製多個子程序。例如 www 伺服器。
3)每個程序都可能以兩種方式存在的,前臺與後臺,所謂前臺程序就是使用者目前的螢幕上可以進行操作的。後臺程序則是實際在操作,但由於螢幕上無法看到的程序,通常使用後臺方式執行。
4)一般系統的服務都是以後臺程序的方式存在,而且都會常駐在系統中。直到關機才才結束。

14.2 顯示系統執行的程序

ps命令是用來檢視目前系統中,有哪些正在執行,以及它們執行的狀況。

14.2.1 檢視程序佔用資源的情況

檢視程序佔用資源的情況ps -aux

比如我看看有沒有 sshd 服務,ps –aux|grep ssh

指標說明:

  • System V 展示風格
  • USER:使用者名稱稱
  • PID:程序號
  • %CPU:程序佔用 CPU 的百分比
  • %MEM:程序佔用實體記憶體的百分比
  • VSZ:程序佔用的虛擬記憶體大小(單位:KB)
  • RSS:程序佔用的實體記憶體大小(單位:KB)
  • TT:終端名稱,縮寫 .
  • STAT:程序狀態,其中 S-睡眠,s-表示該程序是會話的先導程序,N-表示程序擁有比普通優先順序更低的優先順序,R-正在執行,D-短期等待,Z-僵死程序,T-被跟蹤或者被停止等等
  • STARTED:程序的啟動時間
  • TIME:CPU 時間,即程序使用 CPU 的總時間
  • COMMAND:啟動程序所用的命令和引數,如果過長會被截斷顯示

14.2.2 ps 檢視父程序

命令:ps -ef:以全格式顯示當前所有的程序,檢視程序的父程序

指標說明:

檢視sshd程序的父程序

14.3 終止程序 kill 和 killall

介紹:若是某個程序執行一半需要停止時,或是已消了很大的系統資源時,此時可以考慮停止該程序。使用 kill 命令來完成此項任務。

基本語法:

kill [選項] 程序號:(功能描述:通過程序號殺死程序)
killall 程序名稱:(功能描述:通過程序名稱殺死程序,也支援萬用字元,這在系統因負載過大而變得很慢時很有用)

常用選項:

​ -9:表示強迫程序立即停止

案例 1:踢掉某個非法登入使用者

案例 2: 終止遠端登入服務 sshd, 在適當時候再次重啟 sshd 服務

重啟命令:(centos6)service sshd restart

​ :(centos7)systemctl restart sshd.service

案例 3: 終止多個 gedit 編輯器 【killall , 通過程序名稱來終止程序】

案例 4:強制殺掉一個終端

14.4 檢視程序樹 pstree

基本語法:pstree [選項] ,可以更加直觀的來看程序資訊

常用選項:

​ -p :顯示程序的 PID

​ -u :顯示程序的所屬使用者

案例 1:請以樹狀的形式顯示程序的 pid

案例 2:請以樹狀的形式顯示程序的使用者 id

14.5 服務(Service)管理

14.5.1 介紹

介紹:服務(service) 本質就是程序,但是是執行在後臺的,通常都會監聽某個埠,等待其它程式的請求,比如(mysql , sshd 防火牆等),因此我們又稱為守護程序,是 Linux 中非常重要的知識點。【原理圖】

14.5.2 service 管理指令

service 服務名 [start | stop | restart | reload | status]

注:在 CentOS7.0 後 不再使用 service ,而是 systemctl

案例1: 檢視當前防火牆的狀況,關閉防火牆和重啟防火牆。

centos6 關閉、開啟防火牆、檢視防火牆狀態

service iptavles stop

service iptavles start

service iptavles status

centos 7 關閉、開啟防火牆命令、檢視防火牆狀態

systemctl stop iptables.service

systemctl start iptables.service

systemctl status iptables.service

這種方式只是臨時生效,當重啟系統後,還是迴歸以前對服務的設定。如果希望設定某個服務自啟動或關閉永久生效,要使用 chkconfig 指令

14.5.3 檢視服務名

方式 1:使用 setup -> 系統服務 就可以看到。

方式 2: /etc/init.d/服務名稱

14.5.4 服務的執行級別(runlevel):

檢視或者修改預設級別: vi /etc/inittab
Linux 系統有 7 種執行級別(runlevel):常用的是級別 3 和 5
•執行級別 0:系統停機狀態,系統預設執行級別不能設為 0,否則不能正常啟動
•執行級別 1:單使用者工作狀態,root 許可權,用於系統維護,禁止遠端登陸
•執行級別 2:多使用者狀態(沒有 NFS),不支援網路
執行級別 3:完全的多使用者狀態(有 NFS),登陸後進入控制檯命令列模式
•執行級別 4:系統未使用,保留
執行級別 5:X11 控制檯,登陸後進入圖形 GUI 模式
•執行級別 6:系統正常關閉並重啟,預設執行級別不能設為 6,否則不能正常啟動

14.5.5 開機的流程說明開機的流程說明

14.5.6 chkconfig 指令

介紹:通過 chkconfig 命令可以給每個服務在各個執行級別設定自啟動/關閉
基本語法:

chkconfig --list:檢視服務

chkconfig --list|grep xxx:檢視服務

chkconfig --level [0 1 2 3 4 5 6] 服務名 on/off :修改服務在各個執行級別的自啟動/關閉

請將 sshd 服務在執行級別為 5 的情況下,不要自啟動。

注:chkconfig 重新設定服務後自啟動或關閉,需要重啟機器 reboot 才能生效.

應用例項:

  1. 案例 1: 請顯示當前系統所有服務的各個執行級別的執行狀態
    bash> chkconfig --list
  2. 案例 2 :請檢視 sshd 服務的執行狀態
    bash> service sshd status
  3. 案例 3: 將 sshd 服務在執行級別 5 下設定為不自動啟動,看看有什麼效果?
    bash> chkconfig --level 5 sshd off
  4. 案例 4: 當執行級別為 5 時,關閉防火牆。
    bash> chkconfig --level 5 iptables off
  5. 案例 5: 在所有執行級別下,關閉防火牆
    bash> chkconfig iptables off
  6. 案例 6: 在所有執行級別下,開啟防火牆
    bash> chkconfig iptables on

14.6 動態監控程序 top

介紹:top 與 ps 命令很相似。它們都用來顯示正在執行的程序。Top 與 ps 最大的不同之處,在於 top 在執行一段時間可以更新正在執行的的程序。

基本語法:top [選項]

選項說明:

互動操作說明

案例 1.監視特定使用者

top:輸入此命令,按回車鍵,檢視執行的程序。
u:然後輸入“u”回車,再輸入使用者名稱,即可

案例 2:終止指定的程序。
top:輸入此命令,按回車鍵,檢視執行的程序。
k:然後輸入“k”回車,再輸入要結束的程序 ID 號

案例 3:指定系統狀態更新的時間(每隔 10 秒自動更新, 預設是 3 秒):

14.7檢視系統網路情況 netstat(重要)

基本語法:netstat [選項],常用命令:netstat -anp

選項說明:

​ -an 按一定順序排列輸出
​ -p 顯示哪個程序在呼叫

第 15 章 RPM 和 YUM

15.1 rpm 包的管理

15.1.1 介紹

一種用於網際網路下載包的打包及安裝工具,它包含在某些 Linux 分發版中。它生成具有.RPM副檔名的檔案。RPM 是 RedHat Package Manager (RedHat 軟體包管理工具)的縮寫,類似 windows的 setup.exe,這一檔案格式名稱雖然打上了 RedHat 的標誌,但理念是通用的。Linux 的分發版本都有采用(suse,redhat, centos 等等),可以算是公認的行業標準了。

15.1.2 rpm 包的簡單查詢指令

查詢已安裝的 rpm 列表: rpm –qa|grep xx

例如,請查詢看一下當前的 Linux 有沒有安裝 firefox .

15.1.3 rpm 包名基本格式

一個 rpm 包名:firefox-45.0.1-1.el6.centos.x86_64.rpm
名稱:firefox
版本號:45.0.1-1

​ 適用作業系統: el6.centos.x86_64,表示 centos6.x 的 64 位系統,如果是 i686、i386 表示 32 位系統,noarch 表示通用。。

15.1.4 rpm 包的其它查詢指令

rpm -qa :(query all)查詢所安裝的所有 rpm 軟體包
rpm -qa | more :[分頁顯示]
rpm -qa | grep X: [rpm -qa | grep firefox ]

rpm -q 軟體包名 :查詢軟體包是否安裝

rpm -qi 軟體包名 :(query information)查詢軟體包資訊

rpm -ql 軟體包名 :查詢軟體包中的檔案
rpm -qf 檔案全路徑名: 查詢檔案所屬的軟體包

15.1.5 解除安裝 rpm 包

基本語法:rpm -e rpm包的名稱,(-e erase)

細節問題:

  1. 如果其它軟體包依賴於您要解除安裝的軟體包,解除安裝時則會產生錯誤資訊。如: $ rpm -e foo

  2. 如果我們就是要刪除 foo 這個 rpm 包,可以增加引數 --nodeps ,就可以強制刪除,但是一般不推薦這樣做,因為依賴於該軟體包的程式可能無法執行,如: rpm -e --nodeps foo

15.1.6 安裝 rpm 包

基本語法:rpm -ivh RPM 包全路徑名稱

引數說明
i=install 安裝
v=verbose 提示
h=hash 進度條

  1. 演示安裝 firefox 瀏覽器
    步驟先找到 firefox 的安裝 rpm 包,你需要掛載上我們安裝 centos 的 iso 檔案,然後到/media/下去找 rpm 找。
    cp firefox-45.0.1-1.el6.centos.x86_64.rpm /opt/

缺點:需要收到安裝其他的依賴包,例如,A軟體包的執行需要依賴於B的軟體包環境,那麼需要先手動安裝B再安裝A

15.2 yum

15.2.1 介紹:

Yum 是一個 Shell 前端軟體包管理器。基於 RPM 包管理,能夠從指定的伺服器自動下載 RPM 包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包。使用 yum 的前提是可以聯網。

15.2.2 yum 的基本指令

查詢 yum 伺服器是否有需要安裝的軟體:yum list|grep xx 軟體名
安裝指定的 yum 包:yum install xxx

15.2.3 yum 應用例項

案例:請使用 yum 的方式來安裝 firefox

  1. 先檢視一下 firefox rpm 在 yum 伺服器有沒有:yum list | grep firefox

  2. 安裝:yum install -y firefox (-y :當安裝過程提示選擇全部為"yes",-q:不顯示安裝的過程)

預設安裝最新版本的軟體。

3)解除安裝:yum remove 軟體名

4)顯示已經安裝的軟體包:yum list installed

5)查詢可以安裝的軟體包 (以 tomcat 為例):yum list tomcat

6)列出軟體包的依賴 (以 tomcat 為例):yum deplist tomcat

第 16 章 搭建 JavaEE 環境

16.1 概述

16.1.1 示意圖

如果需要在 Linux 下進行 JavaEE 的開發,我們需要安裝如下軟體

下載地址:
ORACLE官網地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

16.2 安裝 JDK

  1. 解壓縮到 /opt
  1. 配置環境變數的配置檔案,配置檔案都是放在/etc/profile檔案中, vim /etc/profile
  1. 重新整理配置檔案,使環境變數才能生效。source /etc/profile
  1. 在任何目錄下就可以使用 java 和 javac

5)測試是否安裝成功

編寫一個簡單的 Hello.java 輸出"hello,world!"

16.3 安裝 tomcat

16.3.1 步驟 :

  1. 解壓縮到/opt
  1. 啟動 tomcat ./startup.sh(先進入到 tomcat 的 bin 目錄),使用 Linux 本地的瀏覽是可以訪問到 tomcat
  1. 開放埠 8080 ,這樣外網才能訪問到 tomcat

4)重啟防火牆

5)測試是否安裝成功

在 windows、Linux 下 訪問 http://linuxip:8080

16.4 Eclipse 的安裝

  1. 解壓縮到/opt
  1. 啟動 eclipse,配置 jre 和 server

啟動方法 1: 開啟圖形化介面,找到eclipse,直接執行

啟動方式 2: 進入到 eclipse 解壓後的資料夾,然後執行 ./eclipse 即可

  1. 編寫程式碼,並測試成功!

16.5 mysql 的安裝和配置

通過原始碼安裝mysql 5.6.14版本

1)解除安裝舊版本

使用下面的命令檢查是否安裝有MySQL Server

rpm -qa | grep mysql

whereis mysql

find / -name mysql

有的話通過下面的命令來解除安裝掉

2)安裝MySQL

​ 安裝編譯程式碼需要的環境:yum -y install make gcc-c++ cmake bison-devel ncurses-devel

​ 解壓:tar xvf mysql-5.6.14.tar.gz

​ 進入mysql目錄cd mysql-5.6.14

​ 編譯安裝[原始碼=》編譯]

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

​ 編譯並安裝:make && make install

3)配置MySQL

設定許可權:

groupadd mysql

useradd -g mysql mysql

修改/usr/local/mysql許可權:chown -R mysql:mysql /usr/local/mysql

4)初始化配置

進入安裝路徑,執行初始化配置指令碼,建立系統自帶的資料庫和表:

cd /usr/local/mysql

scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

注:在啟動MySQL服務時,會按照一定次序搜尋my.cnf,先在/etc目錄下找,找不到則會搜尋"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,這是新版MySQL的配置檔案的預設位置!但是,在CentOS 6.8版作業系統的最小安裝完成後,在/etc目錄下會存在一個my.cnf,需要將此檔案更名為其他的名字,如:/etc/my.cnf.bak,否則,該檔案會干擾原始碼安裝的MySQL的正確配置,造成無法啟動。

修改名稱,防止干擾:mv /etc/my.cnf /etc/my.cnf.bak

5)啟動MySQL

新增服務,拷貝服務指令碼到init.d目錄,並設定開機啟動 [注意在 /usr/local/mysql 下執行]

cp support-files/mysql.server /etc/init.d/mysql

chkconfig mysql on

service mysql start --啟動MySQL

修改密碼

cd /usr/local/mysql/bin

./mysql -uroot

mysql> SET PASSWORD = PASSWORD('root');

上面的方法試了好久還是失敗,後來我根據網上一張帖子(https://blog.csdn.net/qq_45408390/article/details/119487953)安裝了mysql7的版本

第 17 章 Shell 程式設計

17.1 為什麼要學習 Shell 程式設計

1)Linux 運維工程師在進行伺服器叢集管理時,需要編寫 Shell 程式來進行伺服器管理。
2)對於 JavaEE 和 Python 程式設計師來說,工作的需要,你的老大會要求你編寫一些 Shell 指令碼進行程式或者是伺服器的維護,比如編寫一個定時備份資料庫的指令碼。
3)對於大資料程式設計師來說,需要編寫 Shell 程式來管理叢集。

17.2 Shell 是什麼

畫一個示意圖:

Shell 是一個命令列直譯器,它為使用者提供了一個向 Linux 核心傳送請求以便執行程式 的介面系統級程式,使用者可以用 Shell 來啟動、掛起、停止甚至是編寫一些程式.

17.3 Shell 指令碼的執行方式

Shell指令碼格式要求

  1. 指令碼以#!/bin/bash 開頭

  2. 指令碼需要有可執行許可權

指令碼的常用執行方式

方式 1(輸入指令碼的 絕對路徑相對路徑)

​ 1)首先要賦予 helloworld.sh 指令碼的+x 許可權
​ 2)執行指令碼

方式 2(sh+指令碼),不推薦
說明:不用賦予指令碼+x 許可權,直接執行即可

17.4 shell 的變數

17.4.1 Shell 的變數的介紹

1)Linux Shell 中的變數分為, 系統變數使用者自定義變數
2)系統變數: $HOME$PWD、​$SHELL、​$USER 等等,比如: echo $HOME 等等..

3)顯示當前 shell 中所有變數:set

17.4.2 shell 變數的定義

基本語法
1)定義變數:變數=值
2)撤銷變數:unset 變數
3)宣告靜態變數:readonly 變數,注意:不能 unset

4)可把變數提升為全域性環境變數,可供其他 shell 程式使用

17.4.3 定義變數的規則

  1. 變數名稱可以由字母、數字和下劃線組成,但是不能以數字開頭

  2. 等號兩側不能有空格(這和java的語法不一樣)

  3. 變數名稱一般習慣為大寫

  4. 將命令的返回值賦給變數(重點)

1)A=`ls -la` 反引號,執行裡面的命令,並把結果返回給變數 A
2)A=$(ls -la) 等價於反引號

17.4 設定環境變數

基本語法

  1. export 變數名=變數值 (功能描述:將 shell 變數輸出為環境變數
  2. source 配置檔案 (功能描述:讓修改後的配置資訊立即生效
  3. echo $變數名 (功能描述:查詢環境變數的值)
  1. 在/etc/profile 檔案中定義 TOMCAT_HOME 環境變數
  1. 檢視環境變數 TOMCAT_HOME 的值
  1. 在另外一個 shell 程式中使用 TOMCAT_HOME

注意:在輸出 TOMCAT_HOME 環境變數前,需要讓其生效: source /etc/profile

17.5 位置引數變數

介紹:
當我們執行一個 shell 指令碼時,如果希望獲取到命令列的引數資訊,就可以使用到位置引數變數,比如 : ./myshell.sh 100 200 , 這個就是一個執行 shell 的命令列,可以在 myshell 指令碼中獲取到引數資訊

基本語法:

案例:

17.6 預定義變數

基本介紹:
就是 shell 設計者事先已經定義好的變數,可以直接在 shell 指令碼中使用

基本語法:

17.7 運算子

基本語法

1) $((運算式)) 或 $[運算式]
2) expr m + n
	注意 帶有expr關鍵字的運算子間要有空格
3) expr m - n
4) expr \*, /, % 乘,除,取餘

1)計算(2+3)*4 的值

  1. $[運算式]
  1. expr

17.8 條件判斷

基本語法:

[ condition ](注意 condition 前後要有空格),非空返回 true,可使用$?驗證(0 為 true,>1 為 false)

案例:

[ atguigu ] 返回 true
[] 返回 false
[ condition ] && echo OK || echo notok 條件滿足,執行後面的語句

常用判斷條件

1)兩個整數的比較

​ -lt 小於
​ -le 小於等於
​ -eq 等於
​ -gt 大於
​ -ge 大於等於
​ -ne 不等於

2)字串的比較

​ = 字串比較

  1. 按照檔案許可權進行判斷
    -r 有讀的許可權 [ -r 檔案 ]
    -w 有寫的許可權
    -x 有執行的許可權

4)按照檔案型別進行判斷
-f 檔案存在並且是一個常規的檔案
-e 檔案存在
-d 檔案存在並是一個目錄

案例

判斷倆個字串是否相等

17.9流程控制

17.9.1 if 判斷

基本語法

if [ 條件判斷式 ];then
	程式
fi

-----------------或者-------------------------

if [ 條件判斷式 ]
then
	程式
elif [條件判斷式]
then
	程式
fi

注意事項:(1)[ 條件判斷式 ],中括號和條件判斷式之間必須有空格 (2) 推薦使用第二種方式

案例:請編寫一個 shell 程式,如果輸入的引數,大於等於 60,則輸出 "及格了",如果小於 60,則輸出 "不及格"

17.9.2 case 語句

基本語法

case $變數名 in
"值 1")
	如果變數的值等於值 1,則執行程式 1
;;
"值 2")
	如果變數的值等於值 2,則執行程式 2
;;
	…省略其他分支…
*)
	如果變數的值都不是以上的值,則執行此程式
;;
esac

案例 1 :當命令列引數是 1 時,輸出 "週一", 是 2 時,就輸出"週二", 其它情況輸出 "other"

17.9.3 for 迴圈

基本語法1

for 變數 in 值1 值2 值3 …
	do
		程式
	done

基本語法 2

for ((  初始值; 迴圈控制條件;化 變數變化 ))
	do
		程式
	done

案例 1 :列印命令列輸入的引數 【會使用到$* $@】

案例 2 :從 1 加到 100 的值輸出顯示

17.9.4 while 迴圈

基本語法

while [ 條件判斷式 ]
	do
		程式
	done

案例 1 :從命令列輸入一個數 n,統計從 1+..+ n 的值是多少?

17.10 read 讀取控制檯輸入

基本語法:read(選項)(引數)

選項:

​ -p:指定讀取值時的提示符;
​ -t:指定讀取值時等待的時間(秒),如果沒有在指定的時間內輸入,就不再等待了。。

引數:
變數:指定讀取值的變數名

案例 1:讀取控制檯輸入一個 num 值
案例 2:讀取控制檯輸入一個 num 值,在 10 秒內輸入。

17.11函式

函式介紹

shell 程式設計和其它程式語言一樣,有系統函式,也可以自定義函式。系統函式中,我們這裡就介紹兩個。

系統函式

basename 基本語法
功能:返回完整路徑最後 / 的部分,常用於獲取檔名

​ 命令:basename [string] [suffix] (功能描述:basename 命令會刪掉所有的字首包括最後一個(‘/’)字元,然後將字串顯示出來。

​ suffix 為字尾,如果 suffix 被指定了,basename 會將 pathname 或 string 中的 suffix 去掉。

dirname 基本語法

​ 功能:返回完整路徑最後 / 的前面的部分,常用於返回路徑部分
​ 命令:dirname 檔案絕對路徑 (功能描述:從給定的包含絕對路徑的檔名中去除檔名(非目錄的部分),然後返回剩下的路徑(目錄的部分))

自定義函式

基本語法

[ function ] funname[()]
{
	Action;
	[return int;]
}
呼叫直接寫函式名:funname [值]

案例 1:計算輸入兩個引數的和(read), getSum

17.12 資料庫備份

需求分析
1)每天凌晨 2:10 備份 資料庫 atguiguDB 到 /data/backup/db
2)備份開始和備份結束能夠給出相應的提示資訊
3)備份後的檔案要求以備份時間為檔名,並打包成 .tar.gz 的形式,比如:2018-03-12_230201.tar.gz
4) 在備份的同時,檢查是否有 10 天前備份的資料庫檔案,如果有就將其刪除。

編寫一個 shell 指令碼。
思路分析:

程式碼實現:

第 18 章 開發平臺 Ubuntu

18.1 Ubuntu 的介紹

Ubuntu(友幫拓、優般圖、烏班圖)是一個以桌面應用為主的開源 GNU/Linux 作業系統,Ubuntu是基於 GNU/Linux,支援 x86、amd64(即 x64)和 ppc 架構,由全球化的專業開發團隊(Canonical Ltd)打造的。
專業的 Python 開發者一般會選擇 Ubuntu 這款 Linux 系統作為生產平臺.
溫馨提示:
Ubuntu 和 Centos 都是基於 GNU/Linux 核心的,因此基本使用和 Centos 是幾乎一樣的,它們的各種指令可以通用,同學們在學習和使用Ubuntu的過程中,會發現各種操作指令在前面學習CentOS都使用過。只是介面和預安裝的軟體有所差別。
Ubuntu 下載地址:http://cn.ubuntu.com/download/

18.2 Ubuntu 的安裝

18.2.1 檢視電腦是否開啟虛擬化

18.2.2 新建虛擬機器

18.2.3 新建虛擬機器嚮導

18.2.4 填寫ubuntu系統資訊

18.2.5 設定安裝ubuntu的位置和虛擬機器的名稱

18.2.6 設定磁碟容量

18.2.7 處理器配置,看自己是否是雙核、多核

18.2.8 設定記憶體為2GB

18.2.9 網路設定NAT

點選完成

18.2.10 聯網情況下自動安裝一些工具

18.2.11 自動啟動,輸入賬號密碼就可登入

18.2.12 檢視python環境

18.2.13 設定中文

預設安裝的 ubuntu 中只有英文語言,因此是不能顯示漢字的。要正確顯示漢字,需要安裝中文語言包。
安裝中文支援步驟:
1.單擊左側圖示欄開啟 System Settings(系統設定)選單,點選開啟 Language Support(語言支援)選項卡。
2.點選 Install / Remove Languages,在彈出的選項卡中下拉找到 Chinese(Simplified),即中文簡體,在後面的選項框中打勾。然後點選 Apply Changes 提交,系統會自動聯網下載中文語言包。(保證ubuntu 是聯網的)。
3.這時“漢語(中國)”在最後一位因為當前第一位是”English”,所以預設顯示都是英文。我們如果希望預設顯示用中文,則應該將“漢語(中國)”設定為第一位。設定方法是拖動,滑鼠單擊“漢語(中國)”,當底色變化(表示選中了)後,按住滑鼠左鍵不鬆手,向上拖動放置到第一位。
4.設定後不會即刻生效,需要下一次登入時才會生效。

18.14 中國化的ubuntu系統優麒麟

http://www.ubuntukylin.com/

近些年來linux在嵌入式領域的應用得到了飛速的提高

l**inux執行穩定、對網路的良好支援性、低成本,且可以根據需要進行軟體裁剪,核心最小可以達到幾百KB等特點\,使其近些年來在嵌入式領域的應用得到非常大的提高

主要應用:機頂盒、數字電視、網路電話、程控交換機、手機、PDA、智慧家居、智慧硬體等都是其應用領域,得到了摩托羅拉、三星、NEC、Google等公司的大力推廣

18.3 Ubuntu 的 roo 使用者

18.3.1 介紹

安裝 ubuntu 成功後,都是普通使用者許可權,並沒有最高 root 許可權,如果需要使用 root 許可權的時候,通常都會在命令前面加上 sudo 。有的時候感覺很麻煩。

我們一般使用su命令來直接切換到root使用者的,但是如果沒有給root設定初始密碼,就會丟擲 su :
Authentication failure 這樣的問題。所以,我們只要給 root 使用者設定一個初始密碼就好了。

18.3.2 給 root 使用者設定密碼並使用

  1. 輸入 sudo passwd 命令,輸入一般使用者密碼並設定 root 使用者密碼。
  2. 設定 root 密碼成功後,輸入 su 命令,並輸入剛才設定的 root 密碼,就可以切換成 root 了。提示符$代表一般使用者,提示符#代表 root 使用者。
  3. 輸入 exit 命令,退出 root 並返回一般使用者
  4. 以後就可以使用 root 使用者了

18.4 Ubuntu 下開發 Python

18.4.1 說明

安裝好 Ubuntu 後,預設就已經安裝好 Python 的開發環境[Python2.7 和 Python3.5]。

18.4.2 在 Ubuntu 下開發一個 Python 程式

第 19 章 apt 軟體管理和遠端登入

19.1 apt 介紹

apt 是 Advanced Packaging Tool 的簡稱,是一款安裝包管理工具。在 Ubuntu 下,我們可以使用 apt 命令可用於軟體包的安裝、刪除、清理等,類似於 Windows 中的軟體管理工具。
unbuntu 軟體管理的原理示意圖:

19.2 Ubuntu 軟體操作的相關命令

sudo apt-get update 更新源
sudo apt-get install package 安裝包
sudo apt-get remove package 刪除包
sudo apt-cache search package 搜尋軟體包
sudo apt-cache show package 獲取包的相關資訊,如說明、大小、版本等
sudo apt-get install package --reinstall 重新安裝包

sudo apt-get -f install 修復安裝
sudo apt-get remove package --purge 刪除包,包括配置檔案等
sudo apt-get build-dep package 安裝相關的編譯環境
sudo apt-get upgrade 更新已安裝的包
sudo apt-get dist-upgrade 升級系統
sudo apt-cache depends package 瞭解使用該包依賴那些包
sudo apt-cache rdepends package 檢視該包被哪些包依賴
sudo apt-get source package 下載該包的原始碼

19.3 更新 Ubuntu 軟體下載地址

19.3.1 原理示意圖

19.3.2 尋找國內映象源
所謂的映象源:可以理解為提供下載軟體的地方,比如 Android 手機上可以下載軟體的安卓市場;iOS 手機上可以下載軟體的 AppStore

清華映象源:https://mirrors.tuna.tsinghua.edu.cn/

19.3.3 修改 Ubuntu 預設的源地址

命令:sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup:備份

echo ' ' > /etc/apt/sources.list:清空檔案裡面的內容

sudo apt-get update:更新源伺服器列表

19.4 使用 ssh 遠端登入 Ubuntu

19.4.1 ssh 介紹

SSH 為 Secure Shell 的縮寫,由 IETF 的網路工作小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。

SSH 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。常用於遠端登入,以及使用者之間進行資料拷貝。幾乎所有 UNIX 平臺—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺,都可執行 SSH。

使用 SSH 服務,需要安裝相應的伺服器和客戶端。客戶端和伺服器的關係:如果,A 機器想被 B機器遠端控制,那麼,A 機器需要安裝 SSH 伺服器,B 機器需要安裝 SSH 客戶端。和 CentOS 不一樣,Ubuntu 預設沒有安裝 SSHD 服務,因此,我們需要手動安裝SSHDf服務才能進行遠端登入。

19.4.2 原理示意圖:

19.4.3 安裝 SSH 和啟用

sudo apt-get install openssh-server:執行指令後,在當前這臺 Linux 上就安裝了 SSH 服務端和客戶端。
service sshd restart:執行指令後,就啟動了 sshd 服務。會監聽埠 22

在 Windows 使用 XShell6/XFTP6 登入 Ubuntu

9.4.4 從 linux 系統客戶機遠端登陸 linux 系統服務機

首先,我們需要在 linux 的系統客戶機也要安裝 openssh-server
基本語法:ssh 使用者名稱@IP
例如:ssh [email protected]
使用 ssh 訪問,如訪問出現錯誤。可檢視是否有該檔案 ~/.ssh/known_ssh 嘗試刪除該檔案解決。
登出命令:exit 或者 logout