內容簡介
本書以紅帽公司新版本的Red Hat Enterprise Linux 7為藍本,堅持理論夠用,側重實用的原則,用案例/示例來講解每個知識點,對Linux做瞭較為詳盡的闡述,全書結構清晰、通俗易懂,力爭做到使讀者帶著興趣學習Linux。本書是一本比較好的Linux入門教材,針對的是技術型讀者。
本書共8章,主要內容包括: Linux簡介與安裝、Linux的用戶接口與文本編輯器、係統管理、磁盤與文件管理、軟件包管理、係統管理高級、Linux中的Shell編程、網絡服務。
本書適閤作為高等院校計算機及相關專業學生的教材,也可供培養技能型緊缺人纔的機構使用。
內頁插圖
目錄
第1章Linux簡介與安裝1
1.1Linux簡介1
1.1.1Linux的起源2
1.1.2Linux的特點4
1.1.3Linux的版本4
1.2實例: 硬盤安裝Red Hat Enterprise Linux 77
1.3引導工具GRUB的設置與應用13
1.3.1實例: GRUB的設置14
1.3.2實例: GRUB的應用19
1.4引導工具GRUB2的設置與應用21
1.4.1GRUB2與GRUB的區彆21
1.4.2GRUB2配置文件22
1.4.3GRUB2腳本修改25
1.4.4GRUB2刪除多餘引導項27
1.4.5GRUB2命令行環境的常用命令28
1.4.6實例: U盤安裝grub2並且引導Fedora�瞝iveCD、
Win7�瞘host30
1.4.7實例: GRUB2的應用31
1.5RHEL 7的啓動流程32
1.5.1RHEL 7的大概啓動流程32
1.5.2RHEL 7的詳細啓動流程33
1.6本章小結37
1.7習題38
第2章Linux的用戶接口與文本編輯器40
2.1Shell40
2.1.1控製颱與終端41
2.1.2Shell命令行412.1.3命令和文件名的自動補齊功能42
2.1.4曆史命令43
2.1.5命令彆名44
2.1.6通配符與文件名變量45
2.1.7輸入/輸齣重定嚮與管道47
2.1.8Linux快捷鍵50
2.2KDE與GNOME52
2.2.1KDE桌麵環境53
2.2.2GNOME桌麵環境53
2.3Linux中的文本編輯器簡介54
2.3.1KDE與GNOME中的文本編輯器54
2.3.2Vi、Vim與Emacs文本編輯器54
2.4實例: 使用Vim編輯文件55
2.5本章小結62
2.6習題62
第3章係統管理64
3.1用戶管理64
3.1.1用戶管理: useradd、passwd、userdel、usermod、chage64
3.1.2組管理: groupadd、groupdel、groupmod、gpasswd、newgrp69
3.1.3用戶查詢: who、w、id、whoami、last、lastlog72
3.1.4su和sudo命令75
3.2進程管理82
3.2.1監視進程: ps、pstree、top、gnome�瞫ystem�瞞onitor82
3.2.2搜索進程: pgrep、pidof、ps|grep89
3.2.3控製進程: kill、killall、pkill、xkill91
3.2.4進程的優先級: nice、renice93
3.2.5前颱進程與後颱進程: command &、Ctrl+z、jobs、fg、bg95
3.2.6周期性/定時執行任務: crontab、at、batch、watch95
3.2.7以守護進程方式執行任務: nohup101
3.3係統和服務管理101
3.3.1係統和服務管理器: systemd101
3.3.2監視和控製systemd的命令: systemctl104
3.3.3改變目標(運行級彆)106
3.3.4用戶自定義開機啓動腳本109
3.3.5日誌: journalctl110
3.4其他係統管理111
3.4.1查詢係統狀況: uname、hostname、free、uptime、dmidecode111
3.4.2/proc目錄和sysctl命令115
3.4.3係統日誌和dmesg命令126
3.4.4關機等命令: shutdown、halt、reboot、init、runlevel、logout、
startx127
3.4.5其他命令: man、date/hwclock、cal、eject、clear/reset129
3.5本章小結132
3.6習題132
第4章磁盤與文件管理135
4.1磁盤管理135
4.1.1文件係統掛載: fdisk �瞝、mount、umount、blkid、/etc/fstab、
e2label/xfs_admin135
4.1.2查看磁盤空間: df、du142
4.1.3其他磁盤相關命令: fdisk、mkfs、mkswap、fsck、vmstat、iostat145
4.1.4製作鏡像文件: dd、cp、mkisofs155
4.1.5文件係統的備份與還原: dump、restore158
4.1.6數據同步: sync160
4.2文件與目錄管理160
4.2.1Linux文件係統的目錄結構161
4.2.2查看目錄內容: cd、pwd、ls、nautilus163
4.2.3查看文件內容: more、less、cat、tac、nl、head、tail、wc167
4.2.4檢查文件類型: file、stat170
4.2.5文件完整性: cksum、md5sum172
4.2.6文件與目錄的創建、復製、刪除、轉移及重命名: touch、mkdir、
rmdir、mv、rm、cp174
4.2.7文件搜索命令: find、locate、which、whereis、type180
4.2.8文件操作命令: grep、sed、awk、tr184
4.2.9文件的追加、閤並、分割: echo、cat、uniq、cut、paste、join、split191
4.2.10文件的比較、排序: diff、patch、cmp、sort197
4.2.11文件的鏈接: ln202
4.2.12設備文件: mknod203
4.2.13進程與文件: lsof204
4.3文件與目錄的安全207
4.3.1chmod與umask命令207
4.3.2chown命令210
4.3.3chgrp命令212
4.3.4chroot命令212
4.4強製位與粘貼位213
4.5文件的隱藏屬性: lsattr、chattr215
4.6訪問控製列錶(ACL): getfacl、setfacl、chacl217
4.7文件的壓縮與解壓縮223
4.7.1gzip和gunzip命令223
4.7.2bzip2、bunzip2命令225
4.7.3顯示壓縮文件的內容: zcat、zless、bzcat、bzless226
4.7.4tar命令226
4.7.5cpio命令229
4.8本章小結231
4.9習題231
第5章軟件包管理234
5.1RPM234
5.1.1RPM簡介234
5.1.2RPM的使用236
5.2yum245
5.2.1yum簡介246
5.2.2yum的使用246
5.3本章小結251
5.4習題252
第6章係統管理高級253
6.1邏輯捲管理253
6.1.1邏輯捲管理概述253
6.1.2邏輯捲管理的組成部分253
6.1.3邏輯捲創建過程: pvcreate、pvdisplay、vgcreate、vgdisplay、
lvcreate、lvdisplay254
6.1.4拉升與縮小邏輯捲: lvextend、resize2fs、lvreduce257
6.1.5捲組的拉升與清除LVM: vgextend、lvremove、vgremove、
pvremove258
6.2磁盤陣列258
6.2.1RAID概述及常用的RAID規範258
6.2.2SoftWare RAID描述262
6.2.3mdadm管理工具263
6.2.4SoftWare Raid創建過程263
6.2.5SoftWare Raid配置文件263
6.2.6查看、停止與啓動Soft陣列264
6.3磁盤配額264
6.3.1相關命令: quota、quotacheck、edquota、quotaon、quotaoff265
6.3.2實例: 實現磁盤限額267
6.4虛擬技術271
6.5本章小結273
6.6習題273
第7章Linux中的Shell編程275
7.1Shell編程基礎275
7.1.1Shell腳本的建立和執行275
7.1.2有效期與環境配置文件277
7.1.3Shell變量278
7.1.4控製Shell提示符281
7.1.5測試命令: test282
7.1.6算術運算285
7.1.7內部命令286
7.2Shell程序設計的流程控製288
7.2.1復閤結構288
7.2.2條件判斷290
7.2.3循環控製291
7.2.4無條件控製294
7.3Shell腳本中的函數295
7.4Shell腳本的調試296
7.5本章小結298
7.6習題298
第8章網絡服務300
8.1網絡接口配置300
8.1.1GUI方式300
8.1.2CLI方式: ifconfig、dhclient、route、/etc/resolv.conf303
8.1.3NetworkManager、nmcli308
8.2DHCP服務及配置313
8.2.1DHCP概述313
8.2.2實例: 設置DHCP服務器315
8.2.3實例: 設置DHCP客戶機321
8.3Samba服務器的設置322
8.3.1Samba概述322
8.3.2實例: 配置Samba服務器323
8.3.3Samba服務器的配置文件325
8.3.4SELinux: getsebool、setsebool、chcon、restorecon331
8.4WWW服務器的設置336
8.4.1Apache337
8.4.2Apache服務器的默認配置文件337
8.4.3實例: 靜態網站建設347
8.4.4實例: 為每個用戶配置Web站點348
8.4.5實例: 配置基於IP的虛擬主機349
8.4.6實例: 基於主機的授權351
8.4.7實例: 基於用戶的認證352
8.4.8實例: 組織和管理Web站點354
8.4.9CGI運行環境的配置355
8.5FTP服務器的設置356
8.5.1FTP概述357
8.5.2vsftpd358
8.5.3實例: 設置FTP服務器358
8.6本章小結363
8.7習題363
附錄網站資源365
參考文獻366
前言/序言
Linux是一個免費的類似於UNIX的操作係統,它繼承瞭UNIX操作係統的強大功能和極高的穩定性。Linux最初由芬蘭赫爾辛基大學的Linus Torvalds創建,並於1991年首次公布於眾。Linus允許免費和自由地使用該係統的源代碼,並鼓勵其他人進一步對其進行開發。為瞭對Linux的發展有利,根據GNU GPL(General Public Lience,GNU通用公共許可證)的要求對其內核進行發布,這樣就贏得瞭許多專業人員的支持,將GNU項目的許多成果移植到瞭Linux 操作係統上。在許多技術人員、研究人員和眾多Linux愛好者的支持下,原Linux版本中的錯誤逐漸消除,並且不斷添加進新的功能。現在Linux已經成為一個功能強大、穩定可靠的操作係統。
Red Hat Linux是美國Red Hat公司開發的一種Linux發行版本,是當今世界上最流行的Linux發行版之一,其版權遵循GNU GPL。它給PC帶來瞭UNIX工作站的強大功能和靈活性,並且提供瞭全套的因特網應用軟件和功能齊全、簡單易用的GUI桌麵環境。
本書大量介紹瞭在實際項目中常用的知識點和操作技巧,是廣大讀者步入Linux殿堂不可多得的一本指導書,為讀者以後深入學習Linux打下堅實的基礎。
一本好的入門教材可以讓讀者快速領悟Linux的操作方式和係統的基本使用。
目前Linux的入門教材主要針對兩類讀者: 非技術型、技術型。
非技術型讀者: 對Linux不是真的感興趣,隻是用Linux上網、聽音樂、編輯文檔等。針對非技術型用戶的入門教材以插圖為主,講的內容主要是在GUI下的操作(鼠標),所以,這種使用Linux的方式還是Windows的思維方式。
技術型讀者: 對Linux很感興趣,針對技術型用戶的入門教材,一開始就從係統的基本命令開始講解,脫離Windows的思維方式,這樣會給讀者以後的進一步學習帶來很大幫助,也能使讀者逐步領悟Linux的精髓(命令行)所在。
本書針對的是技術型讀者,主要是計算機專業(或相關專業)的學生。本書共有8章,介紹瞭Red Hat Enterprise Linux 7(RHEL 7)的許多方麵。在第1章,主要介紹瞭RHEL 7的詳細安裝過程、引導工具GRUB的使用、RHEL 7的啓動流程。在第2章,介紹瞭Linux中的用戶接口,特彆是命令行,通過這部分的學習,讀者可以真正成為Linux命令行的入門者,然後詳細地介紹瞭Vim編輯器的使用。當遠程維護Linux服務器時,Vim是常用的。Red Hat Linux在係統和文件管理方麵,與標準的UNIX操作係統水平相當,這些功能在第3、4章中介紹。在第5章,主要介紹如何使用rpm和yum命令進行軟件包的管理。第6章介紹瞭Linux係統管理高級的四個方麵的內容: 邏輯捲管理、磁盤陣列、磁盤配額、虛擬技術。在第7章,介紹瞭如何在Shell環境中進行編程,編寫的Shell腳本程序可以被Shell(如bash)解釋執行。一直以來,Linux的長處在於網絡服務方麵。在第8章,對Red Hat Linux中的常用網絡服務進行介紹,這些網絡服務有: DHCP、Samba服務器、WWW以及FTP。
本書的重點在前4章,隻有學好前4章,讀者纔算對Linux的學習真正入門,後麵幾章的學習纔會比較輕鬆,甚至可以自學。隨著讀者學習、掌握越來越多的計算機主要課程的相關知識,就可以在Linux的世界裏縱深發展瞭。因此,本書是一本比較好的入門教材。也希望讀者在學習的過程中重基礎、重理論,切忌浮躁。
《深入理解軟件定義網絡:從原理到實踐》 簡介: 在這個信息爆炸、數據流動的時代,網絡扮演著至關重要的角色。然而,傳統的網絡架構往往固化、僵化,難以適應快速變化的業務需求和技術革新。軟件定義網絡(SDN)的齣現,為我們提供瞭一種全新的網絡構建和管理範式,它將網絡的控製功能從底層硬件中分離齣來,通過軟件進行集中化、智能化的管理,從而賦予網絡前所未有的靈活性、可編程性和自動化能力。 《深入理解軟件定義網絡:從原理到實踐》是一本全麵、深入探討軟件定義網絡技術的著作。本書並非對某一種特定操作係統或發行版的淺嘗輒止,而是著眼於SDN作為一項核心技術,從其産生的背景、演進的曆程、核心的原理,到實際的應用場景和未來發展趨勢,進行全方位的剖析。本書旨在為讀者構建一個清晰、完整的SDN知識體係,幫助讀者理解SDN如何改變網絡的形態,以及如何在實際環境中部署和利用SDN技術。 本書內容詳述: 第一部分:SDN的緣起與核心概念 傳統網絡的挑戰與SDN的誕生: 深入剖析傳統網絡架構的局限性,例如控製平麵與數據平麵耦閤導緻的靈活性差、配置復雜、故障排查睏難等問題。闡述SDN誕生的驅動因素,包括雲計算、大數據、移動互聯網等對網絡提齣的更高要求。 SDN的定義與架構: 清晰界定SDN的核心理念,即“控製與轉發分離”。詳細介紹SDN的三層架構:應用層(Application Plane)、控製層(Control Plane)和基礎設施層(Infrastructure Plane)。 應用層: 介紹各種運行在SDN控製器之上的網絡應用,例如流量工程、安全策略管理、網絡虛擬化等。 控製層: 重點講解SDN控製器的作用,包括全局視圖、策略決策、指令下發等。詳細介紹OpenFlow等南嚮接口協議,以及與設備之間的通信機製。 基礎設施層: 描述SDN網絡中的網絡設備(如交換機、路由器)如何充當數據轉發單元,以及它們如何響應控製器的指令。 SDN的關鍵技術: 詳細探討支撐SDN運行的核心技術。 OpenFlow協議: 深入解讀OpenFlow協議的規範,包括流錶(Flow Table)、消息類型、端口抽象等。通過實例演示,展示OpenFlow如何實現控製平麵與數據平麵的解耦。 ONOS、OpenDaylight等SDN控製器: 介紹當前主流的開源SDN控製器,分析它們的架構設計、功能特點、優勢與劣勢。通過對這些控製器的剖析,幫助讀者理解實際SDN控製器的實現方式。 網絡抽象與編程: 探討SDN如何通過軟件接口屏蔽底層硬件的復雜性,實現網絡的編程化。介紹Python、Java等編程語言在SDN開發中的應用。 第二部分:SDN的深入原理與通信機製 數據平麵與控製平麵的交互: 詳細闡述SDN控製器如何通過南嚮接口(如OpenFlow)與網絡設備進行通信。解釋控製器如何查詢設備信息、配置流錶、監測流量。 北嚮接口與應用開發: 介紹SDN的北嚮接口,以及如何通過北嚮接口允許上層應用與SDN控製器進行交互。展示如何開發自定義的網絡應用,實現特定的網絡功能。 SDN中的網絡視圖: 講解SDN控製器如何構建和維護全局網絡拓撲視圖,以及這個視圖對於網絡管理和優化的重要性。 SDN的演進方嚮: 探討SDN在嚮更高級彆演進過程中所麵臨的挑戰和發展方嚮,例如網絡功能虛擬化(NFV)、服務鏈(Service Chaining)等。 第三部分:SDN在實踐中的應用場景 數據中心網絡: 詳細闡述SDN如何在數據中心實現網絡虛擬化、流量優化、自動化運維。介紹如何利用SDN構建高帶寬、低延遲、可擴展的數據中心網絡。 運營商網絡: 分析SDN在電信運營商網絡中的應用,例如提高網絡靈活性、降低運營成本、加速新業務部署等。討論SDN如何支持5G、SD-WAN等新興技術。 企業網絡: 探討SDN如何為企業構建更安全、更靈活、更易於管理的網絡。介紹SDN在分支機構互聯、安全策略部署、網絡訪問控製等方麵的應用。 SD-WAN: 深入解析SD-WAN的概念、架構和優勢,以及SDN在SD-WAN實現中的關鍵作用。演示如何利用SDN技術構建智能化的廣域網連接。 網絡安全: 闡述SDN如何賦能網絡安全,例如動態策略部署、威脅檢測與響應、流量隔離等。介紹利用SDN構建更具彈性和適應性的安全防護體係。 第四部分:SDN的部署、管理與未來展望 SDN部署策略與挑戰: 探討SDN的部署策略,包括 Greenfield 部署和 Brownfield 遷移。分析SDN部署過程中可能遇到的技術、安全、成本等方麵的挑戰,並提供相應的解決方案。 SDN的網絡管理與自動化: 介紹SDN控製器提供的集中式管理功能,以及如何利用自動化工具簡化網絡配置、監控和故障排除。 SDN的性能優化與可擴展性: 探討如何通過閤理的架構設計和算法優化,提升SDN網絡的性能和可擴展性。 SDN與人工智能/機器學習的融閤: 展望SDN與AI/ML技術的結閤,例如利用AI/ML進行智能流量預測、異常檢測、自主網絡優化等。 SDN的未來趨勢: 探討SDN在未來網絡發展中的作用,例如與雲原生、邊緣計算、物聯網等技術的融閤,以及對下一代網絡架構的影響。 本書特色: 理論與實踐並重: 本書不僅深入講解SDN的理論基礎和核心概念,還通過豐富的案例分析和實際應用場景的介紹,幫助讀者將理論知識轉化為實踐能力。 架構清晰,循序漸進: 本書按照從基礎到深入,從原理到應用的邏輯結構進行編寫,力求讓讀者能夠清晰地理解SDN的體係。 技術前瞻性: 本書緊跟SDN技術發展的最新動態,展望瞭SDN在未來網絡中的重要作用和發展趨勢。 麵嚮廣泛讀者: 本書適閤網絡工程師、係統管理員、網絡架構師、開發人員以及對軟件定義網絡技術感興趣的任何人士閱讀。 《深入理解軟件定義網絡:從原理到實踐》將引領您進入一個更加智能、靈活、可編程的網絡世界,幫助您掌握構建和管理下一代網絡的核心技術。無論您是想深入瞭解SDN的奧秘,還是希望在實際項目中應用SDN技術,本書都將是您不可或缺的得力助手。