《Linux從入門到精通》筆記,

來源:互聯網
上載者:User

《Linux從入門到精通》筆記,
第一篇 基礎篇 第1章 Linux概述1.1 Linux的起源1991年芬蘭學生Linus Torvalds寫的磁碟驅動和檔案系統開源發布,Linux即“Linus的Minix”。1994年核心1.0版發布,最新核心版本4.14.11。 1.2 追溯到Unix1969年AT&T貝爾實驗室的一個研究項目。1977年加州大學伯克利分校基於源碼發布了Berkeley Unix,發行版通稱為BSD(伯克利軟體發行版)。1979年免費提供給各大學,但擷取原始碼需要繳納許可費。1989年徹底移除AT&T代碼的BSD發布。1995年 4.4BSD-Lite發行,團隊解散,目前大多數BSD如FreeBSD,OpenBSD都從該版本發展而來。同時沿用AT&T代碼的Unix系統有HP-UX、Solaris等。 Linux由全球開發社區對Unix借鑒後重新實現,不屬於BSD和AT&T任何一種。 1.3 開源許可證協議BSD、MIT、Apache 使用者可以修改並保留修改部分的原始碼著作權。GPL linux所遵守,更嚴格,要求使用者將所做的一切修改回饋社區,變成自由軟體。上世紀80年代初期,Richard Stallman發起GNU計劃,即GNU's NOT Unix的縮寫。GPL即GNU公用許可證(GNU Public License),包括四點內容:A、軟體最初的作者保留著作權。B、其他人可以修改、銷售該軟體,也可以此為基礎開發新軟體。但必須保證開源。C、經過修改的軟體仍然受GPL約束。D、軟體使用中引起的損失,開發人員不承擔責任。 1.4 Linux的發行版Linux實際上只定義了一個作業系統核心,這個核心由kernel.org負責維護。不同企業和組織在此基礎上開發了一系列輔助軟體,打包發布自己的“發行版本”。  第2章 Linux安裝2.1 GrubGrub是linux預設的作業系統引導載入器,可以引導windows,linux、FreeBSD等多種作業系統。安裝linux後再安裝windows會覆蓋原有的Grub引導程式。Grub硬碟編號格式hd#(不區分硬碟類型),從數字0開始,如:hd0、hd1。Grub硬碟分區格式(hd#,#),也從數字0開始,主要磁碟分割為0-3,邏輯分區為4開始,如:(hd0,0)。 2.2 Linux硬碟分區hd:IDE硬碟;sd:SCSI硬碟、SATA硬碟。第一塊硬碟編號從小寫字母a開始,如:sda、sdb。每塊硬碟只能存在4個主要磁碟分割,即數字1-4,如:sda1、sda2、sda3、sda4。數字5開始的為邏輯分區,沒有個數限制,如sdb5。作業系統主體可以安裝在主要磁碟分割或邏輯分區,但引導程式必須安裝在主要磁碟分割。swap交換分區不需要掛載點,容量應該大於實際實體記憶體容量。  第3章 案頭環境3.1 X視窗系統X系統基於一種獨特的伺服器/客戶機架構。X伺服器:實際控制輸入和輸出裝置,並定義裝置的抽象介面給X用戶端程式使用。設計意義:與平台無關,讓使用者自由選擇來定製案頭。設定檔為 /etc/X11/xorg.conf 。X用戶端程式:需要向X伺服器請求服務的程式,包括視窗管理器。視窗管理器:負責控制應用程式視窗的各種行為。顯示管理器:一個驗證使用者身份的登入介面,並由它啟動包括X伺服器的所有圖形介面。若關閉,則只能startx命令啟動X伺服器。widget庫:定義一套圖形化使用者介面的編程介面。應用程式開發人員調用它來與X伺服器互動。案頭環境:分為KDE(C++語言實現,基於Qt庫,華麗)和Gnome(C語言實現,基於GTK+widget庫,簡潔,自由,後誕生)兩大類,它將除X伺服器以外的上述所有與X有關的東西打包成大雜燴。但最後處理圖形輸出的仍然是X伺服器。 3.2 X系統啟動過程X系統啟動由顯示管理器來完成,顯示管理器啟動後依次完成如下操作:A、啟動X伺服器。B、提供登入介面,等待驗證使用者身份。C、執行使用者引導指令碼Xsession,視窗管理器是Xsession啟動的唯一前景程式。Xsession一直運行直到使用者退出。 3.3 啟動X程式X伺服器接受來自多個應用程式(含遠程網路主機)的請求,並在本地顯示。環境變數DISPLAY格式:DISPLAY=servername:X伺服器編號(從0開始). 螢幕編號(從0開始)。如:host:3.2,:0.0,:0 。  第二篇 系統管理篇 第4章 Shell基本命令4.1 Shell簡介Shell是一個命令直譯器程式,在使用者和作業系統之間提供一個面向行的可互動介面。Shell種類有BASH、TCSH Shell、Z-Shell等,BASH是Linux預設安裝的,並預設有7個控制台,分別是Ctrl+Alt+F1~F7進入,第7個留給X伺服器。Shell萬用字元為“ * ”,“?”," [ ] "。其中*匹配檔案名稱中任意長度字串,?匹配一個字元,[ ] 匹配所有出現在方括弧中的字元,可以用“-”指定一個字元集範圍。 4.2 常用命令第一批:cd,ls,pwd,cat,more,head,tail,less,[ez]grep,find,location,whereis,who,whoami,uname,man,whatis,apropos,date,hostname,env。第二批:groupadd,useradd,passwd,mkdir,touch,chown,chgrp,chmod,mv,cp,echo,rm,rmdir,ls,>,>>,<,<< EOF\n 。。。\nEOF,| 。第三批:rpm,yum,apt,dpkg,./configure指令碼產生makefile檔案,make,make install。第四批:mount,umount,df,fsck,mkfs,lsusb,gzip,gunzip,bzip2,bunzip2,rar,tar,dd,[r]dump,[r]restore,fdisk,mkswap 。第五批:history,userdel,usermod,id,su,sudo。第六批:ps,kill,top,lsof,nice,renice。第七批:ifconfig,netstat,route。第八批:cut,diff,sort,uniq,tr,wc,substr,seq,source,export。第九批:exportfs,showmount,at,atq,atrm,iptables,nmap。 4.3 find命令格式:find [路徑] [選項]-name 檔案名稱,可含萬用字元。-type 檔案類型,取值:bcdfpl 。b塊裝置檔案,c字元裝置檔案,d目錄檔案,f普通檔案,p具名管道,l符號連結。-atime n 最後一次使用在n天前;+n 大於等於n天前; -n 小於n天前。-mtime n 最後一次修改在n天前。-print 將結果輸出到標準輸出(螢幕)。 #尋找目前的目錄最後一天內修改過的名字尾碼zip的普通檔案$ find . -type f -name *zip -mtime -1 -print location命令尋找檔案資料庫,速度很快,使用updatedb命令更新資料庫。如:location *.doc 。 4.4 uname命令$uname -r #查看核心版本。$uname -a #查看作業系統所有有用資訊。 4.5 ln命令格式:ln [-s] TARGET LINKNAME #預設建立永久連結,-s選項為符號連結。兩者區別:永久連結是直接引用,符號連結通過名稱進行引用。  第5章 磁碟管理5.1 ext3fs檔案系統ext3fs比ext2fs增加了日誌功能,用於災難恢複,提高檔案系統可靠性。原理:檔案寫操作時,先記錄寫前記錄檔,並將日誌儲存到一塊專門地區。swap交換分區,目的是通過作業系統的調度,程式實際可使用的記憶體空間遠遠超過實體記憶體。原理:當記憶體不足時,將暫時不用的資料取出,放到交換分區裡,來為當前程式騰出記憶體空間。 5.2 裝置檔案Linux中每個裝置都映射為一個裝置檔案,使用時需先掛載到檔案系統的一個目錄下。啟動時掛載 /etc/fstab 。塊裝置檔案可以隨機讀寫,如磁碟。字元裝置檔案只能按順序接收字元流,如印表機。 5.3 硬碟管理RAID:獨立磁碟容錯陣列。LVM:邏輯卷管理器。  第6章 使用者管理6.1 ID和檔案UID:使用者唯一標識,32位不帶正負號的整數,root使用者uid為0。GID:使用者組唯一標識,32位不帶正負號的整數,root使用者組gid為0。使用者資訊檔為/etc/passwd,使用者口令檔案為/etc/shadow。使用者組檔案為/etc/group。  第7章 進程管理7.1 ID和檔案PID:進程唯一標識。PPID:父進程的PID。UID:只有進程的建立者和root使用者才能操作進程。EUID:進程的有效使用者ID,用來確定進程對某些資源和檔案的存取權限。情境:setuid類的程式passwd,當普通使用者修改只有root才能操作的shadow檔案,臨時提高許可權。GID:進程的組ID,情境:當進程需要建立一個新檔案時,將採用該進程的GID。EGID:進程的有效組ID。謙讓度:與優先順序相反。/PROC:一個特殊的“檔案系統”目錄,存放核心有關係統狀態的各種有意義資訊。  第8章 網路管理8.1 檔案本地dns資訊儲存到/etc/hosts 。  第9章 傳輸檔案9.1 NFSNFS目前只用於Linux和UNIX主機間共用檔案系統,首先要求對方主機開啟NFS伺服器,就可以掛載到本地 。#掛載NFS共用目錄 mount -o rw,hard,intr,bg IP或host@path localpath/#查看伺服器共用目錄 showmount -e IP或主機#卸載NFS共用目錄umount localpath/ 9.2 SambaSMB:Server Message Block ,伺服器訊息區協議。微軟和英特爾共同研發的windows的共用檔案系統協議。CIFS:Common Internet File System , 公用Internet檔案系統協議,是SMB的升級版本。Samba:1991年澳大利亞人用逆向工程實行的CIFS協議。 Samba包含一個服務端程式和多個用戶端程式。安裝在Linux的服務端向windows提供共用,windows不用安裝任何工具。用戶端程式用於擷取windows的共用內容。命令:smbtree,nmblookup,smbclient,smbmount,mount.cifs 。 9.3 FTPftp:linux內建的一個命令列的FTP工具,採用不加密傳輸方式,格式:ftp host|ip [port] 。ftp>? 登入後,用?列出所有ftp命令。put 上傳檔案,get 下載檔案,cd,ls,pwd,mkdir,rm,quit等。 9.4 sftp和scpsftp:基於SSH的檔案傳輸,首先確保遠程主機開啟了SSH守護進程,格式:sftp user@host|ip [port] 。scp:基於SSH的檔案複製,格式:scp user@host|ip:path localpath/ 。  第10章 遠程登入10.1 SSHtelnet:採用明文口令,已廢棄。SSH:secure shell,安全的shell。SSH會對使用者身份進行驗證,並加密兩台主機的通訊。商業版本為SSH2。開源社區版本是OpenSSH,由FreeBSD負責維護。啟動SSH伺服器命令 /etc/init.d/ssh start 。ssh -l user -p 22 ip|host #ssh登入。exit #ssh退出。 使用SSH秘鑰,用戶端使用rsa私密金鑰,服務端用公開金鑰驗簽。ssh-keygen -t rsa #產生rsa金鑰組,id_rsa和id_rsa_pub兩個檔案自動放到~/.ssh/目錄下。ssh -l user2 host|ip #登入到user2mkdir .sshchmod 700 .sshexitscp ~/.ssh/id_rsa_pub user@host|ip:/home/user2/.ssh/authorized_keys #拷貝公開金鑰到伺服器登入使用者名稱下。 10.2 VNCVNC:Virtual Network Computing,虛擬網路計算,用於圖形化的遠程登入。要求伺服器端運行有X視窗系統,需要先用vncserver命令配置遠端存取密碼。。vncviewer是一款跨平台的VNC用戶端工具, 10.3 跨平台登入windows登入linux:命令列用putty,圖形化用vncviewer。linux登入windows:命令列用rdesktop,圖形化用vnc(windows需裝vnsserver)。  第11章 Linux編程11.1 編輯器vim:vi的增強版本。分為插入和命令兩種模式。格式:vim file。emacs:類似捷徑,幾乎等價於一個作業系統,可以開啟後完成所有工作,直到關機離開。圖形化編輯器:gedit在gnome下,kate在KDE下。 11.2 gcc和gdbgcc:GUN Compiler Collection,可以編譯C、C++、OC、Java等語言。g++:編譯C++時,可以完成編譯和串連,而gcc不能自動和cpp使用的庫串連。gdb:程式調試工具。 11.3 常用shell命令cut -c3-6 file #提取每一行的第3~6位置的字元,首字元位置從1開始。cut -d" " -f2 file #提取每一行按空格分割的第2個欄位,沒有d,則預設TAB為分隔字元。sort -k2 -r file #按第2個欄位倒序排序。uniq #從已排好序的輸入中重複資料刪除行,必須在輸入已排序時才能正確工作。source file #強行讓一個指令檔影響其父shell環境。export key=value #讓指令碼可以影響其子shell環境。 11.4 個人化alias ll='ls -l' #建立命令的別名。~/.bashrc檔案是一個shell指令碼,使用者登入後自動執行。修改後$source .bashrc 立即生效。/etc/bash.bashrc檔案是全域定製shell。  第三篇 伺服器配置篇 第12章 伺服器基礎知識12.1 系統引導按下電源後啟動過程如下:①執行儲存在ROM中的BIOS代碼,目的:根據BIOS設定來擷取引導裝置位置。②載入引導裝置開頭512個位元組段的MBR(Master Boot Record,主引導記錄),目的:根據MBR內容來擷取“引導載入程式”的位置,即Boot Loader,linux最著名的引導載入程式就是Grub。③載入並執行引導載入程式Grub,Grub負責載入作業系統核心。④Grub載入並初始化Linux核心,⑤核心配置並檢測硬體裝置。⑥核心建立自發進程。該進程只執行最基本的硬體操作和調度。⑦由使用者決定是否進入手工引導模式⑧由init進程執行系統啟動指令碼。建立使用者級操作的進程最後都被核心下放給init進程完成。⑨進入多使用者模式。 12.2 init進程和運行級幾乎所有的進程都是由init建立的。init的設定檔為/etc/inittab。init有7個運行級,預設是5,伺服器設定為3。0 系統關閉,1或S 單一使用者模式,2 功能受限的多使用者模式,3 完整的多使用者模式,4 保留自訂,5 多使用者模式,運行X視窗系統,6 重新啟動。telinit 6 #強制系統進入某個運行級,此處為重啟。/etc/init.d/rc指令碼,根據傳入運行級參數尋找對應目錄,執行其中的指令碼。/etc/rc[0-6S].d目錄,儲存各運行級指令碼。/etc/init.d,伺服器守護進程的啟動指令碼全部位於該目錄下。 12.3 守護進程守護進程daemon是一類在後台啟動並執行特殊進程。init是系統第一個啟動、也是最重要的守護進程。守護進程兩種運行方式:standalone模式和inetd/xinetd模式。standalone模式:隨系統啟動而啟動,並持續在後台監聽串連請求,缺點:“沒有事做”的守護進程會大量消耗系統資源。inetd/xinetd模式:接管其他守護進程使用的網路連接埠,在監聽到串連請求後啟動相應守護進程,建立到指定連接埠的IO通道,完成任務後再關閉守護進程。缺點:對於高並發的串連請求,頻繁啟動關閉守護進程會很糟糕。/etc/xinetd.conf 設定檔,/etc/xinetd.d目錄儲存要添加的守護進程服務。  第13章 伺服器搭建13.1 FTP伺服器vsftpd:一款安全性較高的FTP伺服器程式,ftp伺服器應盡量使用inetd/xinetd方式運行。缺點:使用明文口令。FTP兩種串連模式主動串連:預設21和20連接埠,21連接埠處理用戶端的命令,20連接埠檔案傳輸。被動串連:21連接埠和大於1024的非特權連接埠,21連接埠處理命令,另一個檔案傳輸。 /etc/init.d/vsftpd start|stop|restart #啟動ftp服務 13.2 NFSNFS:Network File System,網路檔案系統,基於伺服器/客戶機架構,需要安裝nfs-common,nfs-kernel-server軟體包。NFSv3協議增加非同步寫操作功能,但為無狀態不支援檔案上鎖功能。NFSv4協議有狀態,增加鎖、支援windows客戶機、更高效能。/etc/exports:NFS設定檔,用來設定NFS伺服器的共用檔案清單。用exportfs -a使改動生效。showmount查看掛載情況。NFS使用基於TCP協議的RPC作為傳輸協議。應該使用防火牆、壓制root和匿名映射等方法增加NFS伺服器安全性。nfsstat -s #監視NFS伺服器相關資訊。nfsstat -c #監視NFS客戶機相關資訊。  第三篇 系統安全篇 第14章 任務計劃cron14.1 crontab/etc/crontab:全域任務計劃設定檔,格式為:分鐘 小時 日 月 星期 執行使用者 (執行命令) 。“*”為不限,“-”為連續整數區間,“,”為離散整數。/etc/init.d/cron restart|start|stop:cron守護進程的啟動指令碼。/var/spool/cron/username.cron:使用者個人化cron設定檔。  第15章 防火牆iptables15.1 iptablesiptables是一種典型的包過濾防火牆。通過檢測到達的資料包頭中的資訊,如:目的地址,連接埠,協議號等,來確定哪些資料包可以通過。chain:鏈,一條防火牆規則。table:表,一組功能相似的chain的集合。iptables預設表是filter(過濾器),其中預設包含3條鏈:FORWARD(轉寄),INPUT(發入本機),OUTPUT(本機發出)。其他表還有nat和mangle兩個表。nat表用於網路位址轉譯NAT,mangle則用於修改除了NAT和包過濾之外的網路包。 15.2 nmapnmap用於掃描一組主機的網路連接埠。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.