前言
現代世界在很大程度上要歸功於開源軟件和 Internet,而後者的原始基礎正是UNIX。
Internet 最初是通過 UNIX 才誕生於世。與當時複雜的專有操作系統截然不同,UNIX 保留其極簡、工具驅動以及可移植性等特性,在那些想要與他人分享工作的人群中得到了廣泛使用。我們今天所謂的開源軟件在 UNIX 和 Internet 的早期就已經無處不在了,只是沒有名頭而已。
現如今,有關UNIX和Linux 的知識太多太多,由手冊、博客、期刊、圖書以及其他參考資料構成了浩如煙海的知識庫。今天小編要分享的是一份系統管理領域內當之無愧的聖經!實乃入門進階必備啊!
由於篇幅限制,本文只顯示部分內容,有需要完整版的朋友,文末有免費獲取方式
如何學Linux
說回到學習linux本身,新手想要入門Linux,必須得了解在每個階段應該學習什麼知識,以及怎樣學習這些知識。
通常在linux初級入門,你需要掌握:
1、Linux基礎知識、基本命令(起源、組成、常用命令如cp、ls、file、mkdir等常見操作命令)
2、Linux用戶及權限基礎
3、Linux系統進程管理進階
4、linux高效文本、文件處理命令(vim、grep、sed、awk、find等命令)
5、shell腳本入門(可邊練習邊學習)
這個時候,建議避免工具控,比如為了學習vim,就一直在練習vim的命令,建議是根據問題來,可以自己在linux下寫個小程序,然後在編碼過程中,有針對性的去尋找命令的用法,這樣做可以讓自己對命令牢記深刻,然後編譯程序,調試程序。在這個過程自然而然你會去學習gcc、gdb、makefile。這個過程很慢,但你走完一遍,你就會學到很多東西。
進入linux中級進階後,你需要在充分了解linux原理和基礎知識之上,對上層的應用和服務進行深入學習,說到服務肯定涉及到網絡的相關知識,是需要花時間學習的。
這一階段你應該掌握以下知識:
1、TCP/IP網絡基礎(差不多CCNA、NP的知識就夠用)
2、Linux企業常用服務(如dns、http、ftp、mail、nfs等)
3、Linux企業級安全原理和防範技巧(系統性能/安全、安全威脅模型和保護方法
4、 加密/解密原理及數據安全、系統服務訪問控制及服務安全基礎
5、iptables安全策略構建
6、shell腳本進階(主要是結合一些應用,寫一些案例)
7、MySQL應用原理及管理入門(能管理和搭建一個個人博客站點)
學到這裡,掌握的基本技能,已經夠用了,已經能做一些基礎的運維工作和簡單維護了。此時你可以多在linux下寫程序,這樣你的linux方面入門命令之類的基礎就有了。接著一定去看看linux相關的書籍,過一遍系統基礎知識,以便以後再用linux時出現問題能夠快速定位找答案。
接著你可以折騰一下自己,可以試著部署服務器,試著去做點和應用有關的事情,從中發現問題,自己想辦法解決,逐漸的,linux 系統就熟悉起來。
高級進階階段,你需要掌握:
1、http服務代理緩存加速(其中主要學習varnish、nginx緩存系統,要對CDN的知識有所瞭解。)
2、企業級負載集群(其中主要學習nginx、haproxy、lvs要對主要知識熟練掌握,對負載均衡算法有清晰認識,)
3、企業級高可用集群 (其中需要對keepalived,heartbeat等進行深入講解)
4、運維監控zabbix詳解(主要是zabbix、cacti、nagios等監控系統,現在用的比較多的是zabbix)
5、運維自動化學習(需要學一些開源運維自動化工具的使用如ansible、puppet、cobbler等運維自動化工具)
如果你有一定的操作系統的基礎,算法和數據結構基礎,可以嘗試著閱讀linux內核等知識,然後整個linux內核體系就能逐漸構建起來了。
系統管理員新手易犯的錯誤
當剛步入Linux管理大門時,新手管理員們常常會犯一些容易忽視的小錯誤,如果不避免這些常見的錯誤,就容易給單位的網絡或系統帶來安全風險。
下面這5個Linux系統管理員新手易犯的錯誤,看看你有中箭嗎?
一:忽視更新
許多Linux管理員在運行了Linux之後,以為這就足夠安全可靠、日後都不用做什麼了。其實,新的更新可以為一些新的漏洞打上補丁。維持更新可以在一個易受損的系統與一個安全的系統之間構造分水嶺。Linux的安全來自於不斷地維護。為了實現安全性,為了使用一些新的特性和穩定性,任何管理員都應當跟上Linux的更新步伐。
二:將服務器啟動進入到X
當一臺機器是專用服務器時,你可能會想到安裝X,這樣一些管理任務就會簡單一些。不過,這並不意味著用戶需要將服務器啟動進入到X,這樣會浪費珍貴的內存和CPU資源。相反地,你應當在級別3上停止啟動過程,進入命令行模式。這樣做不但會將所有的資源留給服務器,而且還會防止洩露機器的機密。要登錄到X,用戶只需要以命令行方式登錄,然後鍵入startx進入到桌面。
三:隨意許可,原因是不理解許可
如果對許可配置不當,就會給黑客留下機會。處理許可問題的最簡單方法是使用所謂的RWE方法,即Read(讀取)、Write(寫入)、Execute(執行)。假設你想讓一個用戶能夠讀取一個文件但不能寫入文件。
為此,你可以執行:chmod u+w,u-rx 文件名。一些新用戶可能會看到一個錯誤,說他們沒有使用文件的許可,因此他們就使用了:Chmod 777 文件名,以為這樣能夠避免問題。但這樣做實際上會導致更多的問題,因為它給了文件的可執行的權限。記住這一點:777將一個文件的讀取、寫入、執行的許可給了所有用戶;666將一個文件的讀取、寫入權限給了所有用戶;555將文件的讀取、執行權限給了所有用戶;還有444、333、222、111等等......
四:沒有備份關鍵的配置文件
許多管理員都有這樣的體會,在升級到某個X版本,如X11之後,卻發現新版本破壞了你的xorg.conf配置文件,以至於你再也無法使用X。建議你在升級X之前,先對以前的/etc/x11/xorg.conf作一個備份,以免升級失敗。
當然,X的升級程序會設法為用戶備份xorg.conf文件,但它卻在/etc/x11目錄內備份。即使這種備份看起來不錯,你最好還是自己做一個備份吧。比如將其備份到/root目錄中,這樣,用戶就可以知道只有根(root)用戶能夠訪問此文件。記住,安全第一。這裡的方法也適用於其它的關鍵備份,如Samba、Apache、Mysql等。
五:以根用戶身份登錄
這是一種很危險的錯誤。如果用戶需要根特權來執行或配置一個應用程序,可以在一個標準的用戶賬戶中使用su切換到root用戶。登錄到root為什麼不是一件好事兒?在用戶以標準用戶身份登錄時,所有正在運行的X應用程序仍擁有僅限於此用戶的訪問權。如果用戶以根用戶身份登錄,X就擁有了root的許可。這就會導致兩個問題,一、如果用戶由GUI犯了一個大錯,這個錯誤對系統來說,有可能是一個巨大的災難。二、以根用戶的身份運行X使得系統更易於遭受攻擊。
避免這些錯誤將會使管理工作更加安全、穩健。
技術在進步,學習最新的linux相關知識
早期的 UNIX 和 Internet 公司都在努力僱用非常優秀的人才,拿出最具創新性的功能,但同時往往犧牲了軟件的可移植性。但最後你就會發現,系統管理員必須所有的事情都要知道一些,因為沒有哪兩款 UNIX 風格的操作系統會完全相同。
很難相信我們曾經在卡車般大小的計算機身上耗費了幾十千瓦的電力,這些計算機的功能遠比不上現在的 Android 智能手機;同樣很難相信我們曾經使用像 rdist 這樣早已過時的技術來運行成百上千臺服務器和臺式計算機。
面對新技術的發展,我們要麼去適應,要麼就退出。現在很多聰明且成功的技術專家,他們不需要在設備機架後面佈線,也沒見過 RS-232 電纜。但你卻可能還在學習那個時代的知識。
學習最新的linux相關知識,這篇文章相信你不白看。
基本管理技術
基本管理技術部分從系統管理員的角度全面介紹UNIX 和Linux。
下面各小節簡要介紹了要求系統管理員履行的一些主要任務。這些職責未必是由一個人來執行的,在許多地方,這項工作會分配給幾個人。不過,確實至少要有--個人懂得全部工作,並確保每項任務都能正確完成。
1.從何處入手
- 系統管理員的基本任務
- 讀者的知識背景·
- UNIX 和Linux之間的摩擦
- Linux的發行版本
- 本書使用的示例系統
- 特定於系統的管理工具
- 表示法和印刷約定
- 單位
- 手冊頁和其他聯機文檔
- 其他的權威文檔
- 其他的信息資源
- 查找和安裝軟件的途徑
- 重壓下的系統管理員
2.腳本和shell
好的系統管理員都要寫腳本。腳本以標準和自動的方式履行系統管理員的繁雜事務,藉此把管理員的時間節省出來,以花在更重要和更有意思的任務上。從某種意義上講,腳本也是一種低質量的文檔,因為它們充當了一種權威提綱,提綱裡列出完成特殊任務所需的步驟。
- shell的基礎知識
- bash腳本協程·
- 正則表達式
- Perl 編程
- Python腳本編程
- 腳本編程的最佳實踐
3.引導和關機
和大多數事物--樣,UNIX系統的啟動和關機已經發展得很成熟,啟動和關機過程可以仔細配置,以適應很多可能的情形。作為系統管理員,我們要處理好錯綜複雜的引導過程,做到能夠防止和排查問題。高效的系統管理員首先要掌握這方面的基礎知識。
- 引導
- 引導PC
- GRUB:全面統一的引導加載程序
- 引導進入單用戶模式
- 啟動腳本
- 引導Solaris
- 重新引導和關機
4.訪問控制和超級權限
訪問控制是人們積極研究的一個領域,它長期以來一直是操作系統設計上主要的難題之一。
- 傳統的UNIX訪問控制
- 現代的訪問控制
- 實際中的訪問控制
- root之外的其他偽用戶
5.進程控制
進程是 UNIX和Linux用來表示正在運行的程序的一種抽象概念。程序的內存使用、處理器時間和1/O資源就是通過這個對象進行管理和監視的。
- 進程的組成部分
- 進程的生命週期
- 信號
- kil:發送信號
- 進程的狀態
- nice和renice:影響調度優先級
- ps:監視進程
- 用top、prstat和topas動態監視進程
- /proc文件系統
- strace.truss和tusc:追蹤信號和系統調用
- 失控進程
6.文件系統
- 路徑名稱
- 掛載和卸載文件系統
- 文件樹的組織
- 文件類型
- 文件屬性
- 訪問控制列表
7.添加新用戶
添加和刪除用戶是大多數系統上例行的管理工作。
- /etc/passwd文件
- /etc/shadow和Vetc/secrity/passwd文件
- /etc/group文件
- 添加用戶:基本步驟
- 用useradd添加用戶
- 用newusers成批添加用戶(Linux)
- 刪除用戶
- 禁止登錄
- 用系統的專門工具管理用戶
- 用PAM降低風險
- 集中管理賬號
8.存儲
我們討論在其間各個層次上所做的管理任務和決策。
- 只想加一塊硬盤!
- 存儲硬件
- 存儲硬件接口
- 層層剖析:存儲上的軟件
- 硬盤的安裝和底層管理
- 磁盤分區
- RAID:廉價磁盤冗餘陣列
- 邏輯卷管理
- 文件系統
- ZFS:解決所有存儲問題
- 存儲區域網絡
9.週期性進程
- cron:按時間表執行命令
- crontab文件的格式
- crontab管理
- Linux及其Vixie-CRON的擴展
- cron的常見用途
10.備份
- 備份基本原理
- 備份設備和介質
- 節省空間和時間與增量備份
- 用dump建立備份機制
- 為系統升級而執行轉儲和恢復
- 使用其他存檔程序
- 使用同一卷磁帶上的多個文件
- Bacula
- 商用備份產品
11.系統日誌與日誌文件
- 日誌文件的位置
- syslog:系統事件的日誌程序
- AIX:日誌記錄和出錯處理
- .logrotate:管理日誌文件
- 分析日誌文件
- 日誌記錄的策略
12.軟件安裝和管理
- 安裝Linux和 OpenSolaris
- 安裝Solaris
- 安裝HP-UX
- 使用NIM安裝ALX
- 軟件包管理
- Linux的高級軟件包管理系統
- UNILX的軟件包管理
- 版本控制
- 軟件的本地化和配置
- 軟件的本地化和配置
- 配置管理工具
- 通過NFS共享軟件
13.驅動程序和內核
- 內核的適應性
- 驅動程序和設備文件
- 配置Linux內核
- 配置Solaris內核
- 配置HP-UX內核
- 管理AIX內核
- 可加載內核模塊
- Linux udev的意義和作用
網絡管理技術
網絡管理技術部分描述了UNIX系統使用的各種協議,介紹了用來配置、擴展和維護網絡以及面向因特網的服務器所使用的各種技術。
1.TCP/IP網絡
- TCP/P和 Internet
- 連網技術概述
- 分組地址
- IP地址詳解
- 路由選擇
- ARP:地址解析協議
- DHICP:動態主機L配置協議
- 安全問題
- PPP:點對點協議
- 基本的網絡配置
- 特定於系統的網絡配置·
- Linux連網.
- Solaris連網
- HP-UX連網
- AIX連網
2.路由選擇
- 近觀包轉發
- 路由守護進程和路由協議
- 路由協議巡禮
- 路由策略的選擇標準
- 路由守護進程
- 思科路由器
3.網絡硬件
- 以太網:連網技術中的瑞士軍刀
- 無線:流動人士的LAN
- DSL和 CM:最後一英里
- 網絡測試和調試
- 建築物佈線
- 網絡設計問題
- 管理問題
- 推薦的廠商
4.DNS:域名系統
誰需要DNS.
DNS的工作原理·
DNS 速成
域名服務器
DNS 名字空間
5.網絡文件系統
6.共享系統文件
7.電子郵件
8.網絡管理和調試
9.安全
10.Web主機託管
其他管理技術
其他管理技術部分包含各種各樣的補充信息。
虛擬化技術
×窗口系統
打印
數據中心基礎
綠色IT
性能分析
同Windows協作
串行設備和串行終端
管理、政策與政治
最後
這篇文章將海量的知識以幽默風趣的形式展現給大家,適用範圍廣泛,無論是Linux的初學者還是具有豐富經驗的Linux專業技術人員都能從中獲益。
獲取方式:轉發+關注,私信小編“666”即可獲取資料免費領取方式。