歡迎您光臨本站 註冊首頁

linux總結

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

第一章 LINUX簡介及安裝 一、LINUX介紹 Linux:Linux是由芬蘭大學的Linus Torvald李納斯發起創建的開源軟體項目. 版本號xx.yy.zz :①.xx表為主版本號,yy為次版本號,zz為修訂的版本號.②.次版本號中,單數代表測試版,雙數代表正式發行版 開源軟體: ①源代碼開放. ②GPL協議:主要是以源代碼形式發布,任何人都可以得到源碼 但不提供任何擔保,不限制商業性質的發行和包裝. ③LGP許可協議:允許在使用者自己的應用程序中使用程序庫,即使不公開自己的源代碼. 二、LINUX安裝 1. RHEL4是由RED HAT公司發布的 2. Linux硬碟概念: ① 可以分為主分區、擴展分區、邏輯分區. ② 硬碟採用hdX格式表示,X表示a.b.c.d. ③ 系統最多只有4個IDE設備,其中第一個IDE設備名稱為hda,第4個為hdd. 3主分區:①一個硬碟最多只能4個主分區. ②主分區採用hdXN的格式,hdX為硬碟,N是1-4的數字,分別表示4個主分區,第一個硬碟的第一個主分區表示為hda1,以此類推. 4擴展分區:擴展分區作為特殊的主分區需要佔用硬碟分區表中4個分區記錄中的1個記錄 5邏輯分區:①邏輯分區只能建立在擴展分區中,可以建立文件系統.邏輯分區同樣採用了hdXN的格式,區別在於,邏輯分區的N是從5開始算的,第一個硬碟的第2個邏輯分區就為hda6. 6文件系統:①EXT2和EXT3都是Linux操作系統默認使用的文件系統,EXT3屬於日誌文件系統,比較出色. ②swap文件系統在Linux系統的交換分區中使用,也是Linux系統默認支持的,一般設置為主機系統內存的2倍大小. ③其他的文件系統包裹xfs、jfs等,這些大多使用與商業的UNIX系統. ④FAT文件系統Linux可以讀寫,NTFS中能讀,不能寫. 最經典的分配方案:/boot 、swap和 / 3個目錄. 三、LINUX目錄 Linux系統使用樹形目錄結構,所有文件都在根目錄( / )下. /bin

bin是binary的縮寫.這個目錄沿襲了UNIX系統的結構,存放著使用者最經常使用的命令.例如cp、ls、cat,等等. /boot 這裡存放的是啟動Linux時使用的一些核心文件. /dev dev是device(設備)的縮寫.這個目錄下是所有Linux的外部設備,其功能類似DOS下的.sys和Win下的.vxd.在Linux中設備和文件是用同種方法訪問的.例如:/dev/hda代表第一個物理IDE硬碟. /etc 這個目錄用來存放系統管理所需要的配置文件和子目錄. /etc/gateways 設定路由器 /etc/sysconfig/ network-scripts /ifcfg-eth0 設置IP /etc/resolv.conf 設置DNS /etc/fstab記錄開機要mount的文件系統(做磁碟配額的時候用過這個文件) /etc/inittab 設定系統啟動時init進程把系統設置成什麼樣的runlevel(第六章有用過) /etc/group 設定用戶的組名與相關信息 /etc/passwd 帳號信息 /etc/shadow 密碼信息 /etc/exports 設定NFS系統用的 /home 用戶的主目錄,比如說有個用戶叫wang,那他的主目錄就是/home/wang也可以用~wang表示. /lib 這個目錄里存放著系統最基本的動態鏈接共享庫,其作用類似於Windows里的.dll文件.幾乎所有的應用程序都須要用到這些共享庫. /lost found 這個目錄平時是空的,當系統不正常關機后,這裡就成了一些無家可歸的文件的避難所.對了,有點類似於DOS下的.chk文件. /mnt 這個目錄是空的,系統提供這個目錄是讓用戶臨時掛載別的文件系統. /proc 這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息.也就是說,這個目錄的內容不在硬碟上而是在內存里. /root

系統管理員(也叫超級用戶)的主目錄.作為系統的擁有者,總要有些特權啊!比如單獨擁有一個目錄. /sbin s就是Super User的意思,也就是說這裡存放的是系統管理員使用的管理程序. /tmp 這個目錄不用說,一定是用來存放一些臨時文件的地方了. /usr 這是最龐大的目錄,我們要用到的應用程序和文件幾乎都存放在這個目錄下.其中包含以下子目錄; /usr/X11R6 存放X-Window的目錄; /usr/bin 存放著許多應用程序; /usr/sbin 給超級用戶使用的一些管理程序就放在這裡; /usr/doc 這是Linux文檔的大本營; /usr/include Linux下開發和編譯應用程序需要的頭文件,在這裡查找; /usr/lib 存放一些常用的動態鏈接共享庫和靜態檔案庫; /usr/local 這是提供給一般用戶的/usr目錄,在這裡安裝軟體最適合; /usr/man man在Linux中是幫助的同義詞,這裡就是幫助文檔的存放目錄; /usr/src Linux開放的源代碼就存在這個目錄/var 這個目錄中存放著那些不斷在擴充著的東西,為了保持/usr的相對穩定,那些經常被修改的目錄可以放在這個目錄下,實際上許多系統管理員都是這樣乾的.順帶說一下系統的日誌文件就在/var/log目錄中. 四、總結來說: ? 用戶應該將文件存在/home/user_login_name目錄下(及其子目錄下). ? 本地管理員大多數情況下將額外的軟體安裝在/usr/local目錄下並符號連接在/usr/local/bin下的主執行程序. ? 系統的所有設置在/etc目錄下. ? 不要修改根目錄(“/”)或/usr目錄下的任何內容,除非真的清楚要做什麼.這些目錄最好和LINUX發布時保持一致. ? 大多數工具和應用程序安裝在目錄:/bin, /usr/sbin, /sbin, /usr/x11/bin,/usr/local/bin. ? 所有的文件在單一的目錄樹下.沒有所謂的“驅動符”. 第二章 常用命令及帳戶管理 一、linux命令格式 1、linux命令的通用格式 命令字 [命令選項] [命令參數] (註:三者之間要用空格隔開.其中命令選項分短格式和長格式:短格式使用“-”符號,如:-l;而長格式使用“--”符號,如:--help;還可以使用組合命令選項:如:-a –l可以組合成--al或--la.) 2、命令提示符 “$”普通用戶 “#”管理員 3、回車的使用 我們輸完一個命令后,則要以回車符作為所輸入命令的結束 4、獲得命令幫助 (1)help 命令

(對於內部命令) 如:help pwd (2)--help 命令選項 (對於外部命令) 如:touch --help (3)man 命令 (用於行冊頁) (4)info 命令 (用於信息頁) 二、常用命令 1、目錄操作命令 (1)ls 列目錄命令 ls –l 則顯示文件和目錄的列表 ls –al 則顯示所有(包括隱藏的)文件和目錄的列表 (2)pwd 顯示當前目錄 (3)cd 目錄更改命令 (註:相對路徑是以“.”或“..”開始的目錄表示形式;而絕對路徑是以“/”開始的路徑表示形式) (4)mkdir 新建目錄命令 mkdir [options] 目錄名 -m, --mode=模式:設定許可權<模式>,與chmod類似. -p, --parents:需要時創建上層目錄;如果目錄早已存在,則不當作錯誤. -v, --verbose:每次創建新目錄都顯示信息. --version:顯示版本信息后離開 (5)rmdir 冊除空目錄命令 (6) grep grep命令可以指定文件中搜索特定的內容,並將含有這些內容的行標準輸出. grep [options] [options]主要參數: -c:只輸出匹配行的計數. -I:不區分大小寫(只適用於單字元). -h:查詢多文件時不顯示文件名. -l:查詢多文件時只輸出包含匹配字元的文件名. -n:顯示匹配行及行號. -s:不顯示不存在或無匹配文本的錯誤信息. -v:顯示不包含匹配文本的所有行. 2、文件操作命令 (1)file 文件類型查看命令 (2)touch 新建文件命令 (3)cp 複製文件或目錄命令 cp –R 複製非空目錄 cp file1 file2 將file1的內容複製到目標文件file2中,目標文件 得到新的生成日期和inode編號. cp file* Dir1

將多個文件複製到一個目錄 cp -f file1 file2 如果文件file2已經存在,則這個命令覆蓋其內容時 不發出提示. cp -i file1 file2 如果文件file2已經存在,則這個命令覆蓋其內容 會先發出提示. cp -p file1 file2 將file1內容複製到目標文件file2中,目標文 件持原有的生成日期和inode編號. cp -r Dir1 Dir2 將目錄Dir1及其子目錄內容複製到Dir2.(遞歸效果) cp -u file1 file2 如果文件file2已經存在,但file1更新,則這個命令 覆蓋其內容是不發出提示. 說明:從一個分區向另一個分區複製文件時,不能使用cp -p file1 file2命令. 絕對路徑的法: 如果要從當前目錄中複製到目標目錄,目標目錄寫明詳細目標絕對路徑; 如果要從其它目錄中複製到當前目錄,那麼其它目錄要為詳細目標絕對路徑 (4)rm 刪除文件命令 rm –r 強制刪除目錄並會出現提示 rm –rf 強制刪除目錄但不出現提示 (5)mv 文件移動與文件重命名 mv file1 file2 將文件從file1變成file2,如果源與目標文件 在同一卷中,則文件的inode號不變. mv file* Dir1 將多個文件移動到一個目錄. mv -f file1 file2 如果文件file2已經存在,則這個命令覆蓋其時 不發出提示. mv -i file1 file2 如果文件file2已經存在,則這個命令覆蓋其內 容時會先發出提示 (6)find 查找文件命令 find / -amin -10 #查找在系統中最后10分鐘訪問的文件   find / -atime -2 #查找在系統中最后48小時訪問的文件   find / -empty #查找在系統中為空的文件或者文件夾   find / -group cat #查找在系統中屬於groupcat的文件   find / -mmin -5 #查找在系統中最后5分鐘里修改過的文件   find / -mtime -1 #查找在系統中最后24小時里修改過的文件   find / -nouser #查找在系統中屬於作廢用戶的文件   find / -user fred #查找在系統中屬於FRED這個用戶的文件 (7)whereis [應用程序名] 查找應用程序名的路徑 (8) # which ls

獲得ls命令的可執行文件路徑 3、文件查看命令 (1)cat 文本文件查看 (不能分屏顯示) (2)more 文本文件查看 (能分屏顯示) (3)less 文本文件查看 (能分屏顯示,方便反覆瀏覽) (4)head [-數字]顯示文件首部 [指定行] 內容 (5)tail [-數字]顯示文件尾部[指定行]內容 (6)du 查看指定目錄的大小 4、1.光碟的基本使用 (1)光碟驅動器設備文件 /dev/cdrom (2)掛載光碟使用mount命令 # mount -t iso9660 /dev/cdrom /media/cdrom/ 2.光碟內容的讀取 (1)使用命令訪問光碟掛載點目錄 # ls /media/cdrom/ (2)卸載光碟使用umount命令 # umount /dev/cdrom (3) #eject 光碟驅動器托盤的彈出 #eject -t 收回 3.光碟鏡像文件操作 (1)使用cp命令製作光碟鏡像文件 # cp /dev/cdrom mydatacd.iso (2)使用mount命令掛載光碟鏡像文件 # mount -o loop -t iso9660 mydatacd.iso /media/cdrom/ 通過掛載點目錄訪問ISO鏡像文件的內容 # ls /media/cdrom/ (3)使用umount命令卸載光碟鏡像文件 # umount /media/cdrom/ 4.U盤的使用方法 (1)識別USB存儲設備 包括USB硬碟、U盤、MP3播放器等 /dev/sda /dev/sdb …… # fdisk -l (2)使用mount命令掛載U盤 # mount -t vfat /dev/sda1 /mnt/ (3)通過掛載點目錄訪問U盤的內容 # ls /mnt (4)使用umount命令卸載U盤 # umount /mnt 三、用戶管理命令 1、存放文件及意義 Linux環境下的帳戶系統文件主要有/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow四個文件. (1)、/etc/passwd /etc/passwd每行定義一個用戶帳戶,此文件對所有用戶可讀.一行又劃分為多個欄位定義用戶帳號的不同屬性,名欄位間用“:”分隔.

表:/etc/passwd文件中各欄位的含義 欄位 說明 用戶名 用戶登陸系統時使用的用戶名,在系統中是唯一的 口令 存放加密的口令,口令是x,這表明用戶的口令是被/etc/shadow文件保護的 用戶標識號 系統內部用它來標識用戶,每個用戶的UID都是唯一的.root用戶的UID號是0,普通用戶從500開始,從1-499是系統的標準帳戶 組標識號 系統內部用它來標識用戶所屬的組 註釋性描述 例如存放用戶全名等信息 宿主目錄 用戶登陸系統后所進入的目錄 命令解釋器 指示該用戶使用的Shell,Linux默認的是bash (2)、/etc/shadow /etc/passwd文件對任何用戶均可讀,為了增加系統的安全性,用戶的口令通常用shadow passwords保護./etc/shadow只對root用戶可讀 表:/etc/shadow文件中各欄位的含義 欄位 說明 用戶名 用戶的帳戶名 口令 用戶的口令,是加過密的 最后一次修改的時間 從1970年1月1日起,到用戶最后一次更改口令的天數 最小時間間隔 從1970年1月1日起,到用戶可以更改口令的天數 最大時間間隔 從1970年1月1日起,到必須更改口令的天數 警告時間 在口令過期之前多少天提醒用戶更新 不活動時間 在用戶口令過期之後到禁用帳戶的天數 失效時間 從1970年1月1日起,到帳戶被禁用的天數 標誌 保留位 (3)、/etc/group 將用戶進行分組是Linux對用戶進行管理及控制訪問許可權的一種手段.一個組中可以有多個用戶,一個用戶也可以屬於多個組.該文件對所有用戶可讀. 表:/etc/group文件中各欄位的含義 欄位

說明 組名 組的名稱 組口令 用戶組的口令,用x表示 GID組的識別號, 組成員 該組的成員 (4)、/etc/gshadow 該文件用於定義用戶組口令、組管理員等信息,該文件只有root用戶可讀. 表:/etc/gshadow文件中各欄位的含義 欄位 說明 組名 組的名稱 組口令 用戶組的口令,保存已加密的口令 組的管理員帳號 組的管理員帳號,管理員有權對該組添加、刪除帳號 組成員 該組的成員,多個用戶用‘,’分開 2、用戶管理命令 ? adduser 添加用戶賬號 ? passwd 設置(更改)用戶口令 ? userdel 刪除用戶賬號(只能刪除/etc/passwd /etc/shadow /etc/group ,用戶宿主目錄下的信息不能刪除) ? userdel –r 刪除用戶賬號所有信息,包括宿主目錄下的配置文件. ? usermod 設置屬性 ? usermod -L (passwd -l)用戶名 禁用指定用戶賬號 ? usermod -U (passwd -u) 用戶名 開啟指定用戶賬號 ? usermod -g 組名 用戶名 將指定用戶加入某個組 3、用戶組的管理命令及文件 ? groupadd 添加組賬號 ? gpasswd 設置(更改)用戶組口令 ? groupdel 刪除組賬號 ? chmod 給多個訪問對象設置許可權 ? chown 更改文件的屬主和屬組 ? chown -R 用戶名 文件名或目錄名 更改文件或目錄的屬主 ? chgrp -R 工作組名 文件名或目錄名 改變文件或目錄工作組的屬主 -R 表示遞歸修改子目錄中文件 4、口令維護命令 ?

passwd(用戶帳戶名) 設置用戶口令 ? gpasswd -a(用戶帳戶名)(組帳戶名) 將用戶添加到指定組 ? gpasswd -d(用戶帳戶名)(組帳戶名)將用戶從指定組中刪除 ? gpasswd -A(用戶帳戶名)(組帳戶名)將用戶指定為組的管理員 5、用戶和組狀態命令 ? su(用戶名) 切換用戶帳戶 ? id(用戶名) 顯示用戶的UID、GID ? whoami 顯示當前用戶的名稱 ? groups(用戶名) 顯示用戶所屬的組 ? newgrp(用戶所屬的組帳號) 轉換用戶的當前組到制定的組 6、圖形界面 命令行啟動 system-config-users 菜單啟動 Applications-system settings-user and Groups 使用技巧: 1、有關刪除文件和文件夾的技巧:在字元界面執行rm將會徹底刪除,如果加-i,則在要刪除某目錄或者文件時,可以提示用戶是否確定要執行,從而防止誤刪除.如果在xwindows中可以先放回收站,如果以後需要時再恢復. 2、使用rmdir可以刪除空目錄,但是如果非空則報錯,這時可用rm -fr <目錄>來刪除目錄.其中參數-r為將整個目錄全部刪除,包括所有的子目錄.-f則是忽略不存在的文件,不給用戶作任何提示. 3、先使用“gpasswd –a 用戶名 組名”把用戶加入某組才可以使用命令查看某組內所有的成員列表. 4、使用groupdel命令刪除某組的時候不能刪除用戶的主組和有用戶的組 5、使用“usermod –g 組名 用戶名”可以將成員從一個組調到另一個組. 第三章 vi 編輯器 一、Linux 系統中的編輯器知識 Linux 通過用vi對系統配置文件的修改對Linux 系統進行比較細緻管理工作 文本編輯器的分類 根據編輯範圍有:行編輯器、全屏幕編輯器 根據工作界面環境劃分:字元界面編輯器、圖形界面編輯器 1、 vi 最常用的字元界面文本編輯器 2、 Emacs 專為編輯程序源代碼文件而編寫的文本編輯器程序. 3、 nano 可以字元界面提供底端 4、 gedit 運行在Linux圖形環境中 二、vi 的模式 命令模式:可在命令模式下面輸入單字元或組合鍵可以實現相應的編輯命令操作.vi編輯器啟動后默認進入命令模式. 輸入模式:命令模式下按”i”進入輸入模式進行編輯. 末行模式:在命令模式下按”:”進入末行模式,在輸入模式按”Esc” ”:”進入 末行模式下的應用: 三、命令: vi一:基本操作: 1:滑鼠的移動:k(上);j(下);h(左);l(右) 2::q!(強行退出)

:wq(保存退出);“ZZ”等同於:wq 3:“x”刪除游標所在的字元. 4:“i”,在當前游標處進行輸入. vi二:刪除類命令 1:“dw”刪除一個單詞(包括空格);“de”刪除一個單詞(不包括空格) 2:“d$”從當前游標刪除到行末 3:“dd”刪除一整行,“2dd”刪除兩行 4:“u”撤銷最后執行的命令,“U”修正整行,“ctrl+R”連續撤銷 5:“yy”複製當前行. 6:“yw”複製單詞. vi三:置入類命令 1:“p”將最后一次刪除的命令置於游標后.(用dd刪除后,p可以用來粘貼) 2:“r”輸入r和一個字元來替換游標所在位置的字元. 3:“cw”改變一個單詞的部分或者全部,lubw,將游標放在u處,然後cw一個“ine”可以改成“line”. 4:“v”進入可視化視圖,可以移動方向鍵來選中某一段內容. vi四:定位及文件狀態 1:“ctrl+g”將會在底欄顯示文件名和總行數.顯示游標所在行的行數. 2:“shift+G”游標直接跳轉到文件的首行(gg),“shift+g”游標直接跳轉到文件的最后一行(G). 3:輸出停留的行數,按下shift+G直接跳轉. 4:“/”搜索一個字元,輸入/后,然後鍵入想要查找的字元串. 5:“%"可以查找匹配的({[和)}],用於定位反括弧. 6:“:s/old/new/g”改變當前行的字元,替換old為new. 7:“:#,#s/old/new/g”改變兩個行之間的(#,#)字元串,替換old為new. 8:“:%s/old/new/g”替換整個文件中的每個匹配串. 9:“:%s/old/new/gc”加“c”參數可以在替換全文的時候添加對替換的詢問用以讓用戶確認. 10: “:10”游標移動到地10行 vi五:內執行外部命令 1:“:!”,在!後面加入命令,如“:!ls”;“:!dir” 2:“:w test”將改動保存為test文件,“:!rm test”刪除該文件 3:“:#,# w test”保存兩行之間的內容到test 文件中.(行數可以使用ctrl+G來查看 4:“:r test”在當前文件中插入另外一個文件的內容 :r /etc/named.conf,將test中內容插入到該游標處. vi六:打開類命令 1:“o”在游標所在行下方插入一新行,“O”在游標所在行上方插入一新行,並且都以輸入模式進行插入. 2:“shift+O”直接在該行上方新開一行. 3:“$”直接將游標調到行末,“a”可以在游標處插入文本(避免了i),輸入“A”直接在行末插入文本. 4:“R”在游標處輸入R可以連續的替換多個字元.(免i),直至鍵入“ESC”. 5:查找時“/abcde”,然後按“n”可以繼續查找. vi七:幫助l 1:“:help”打開幫助,“:q”退出. 2:F1 第四章 SHELL的使用 一:Shell的環境 Shell程序位於操作系統內核與用戶之間,負責接收用戶輸入的命令,在對已輸入的命令進行解釋后,將需要執行的命令程序傳遞給操作系統內核執行,因此程序充當了一個“命令解釋器”的角色.如OS中的command.exe程序,windows中的cmd.exe程序. 二、Bash的主要功能 (1)Bash功能為用戶提供了方便的命令編輯環境. (2)Bash的命令和文件名補全功能為用戶提供了快速輸入命令和文件名的方式. (3)Bash的命令歷史功能使用戶可以重複執行已使用過的命令. (4)Bash的命令別名功能為用戶提供了快速輸入複雜命令的方法. (5)Bash支持對用戶提交的作業進行控制,提供查看作業信息、調整作業成績的運行方式等功能. (6)Bash允許用戶將常用的命令序列定義為功能鍵,實現一鍵操作的效果. (7)Bash提供了豐富的變數類命令與控制結構,增強了Shell腳本程序的靈活性. 三、Shell變數 1、環境變數 (1)查看環境變數:set命令 如:set | more (2)顯示字元串或Shell變數的值:echo命令 如:echo $PATH (3)常用環境變數介紹 ?

USER 表示當前用戶的登錄名稱 ? UID 表示當前用戶的用戶號 ? SHELL 表示當前用戶的登錄的Shell ? HOME 表示當前用戶的登錄的宿主目錄 ? PWD 表示用戶當前所在的目錄 ? PATH 表示當前用戶的命令搜索路徑 ? PS1 表示當前用戶的主提示符 ? PS2 表示當前用戶的輔助提示符 (4)環境變數全局配置文件“profile”和“bashrc” 2、位置變數 3、預定義變數 4、用戶自定義變數 (1)自定義變數的設置 如:DAY=Sunday (2)自定義變數的查看與引用 如:echo $DAY set | grep DAY (3)export 命令用於輸出變數為全局變數 如:export DAY=sunday 則變數名DAY成為了全局變數,全局變數可以應用於所有的子Shell (4)自定義變數的清除 如:unset DAY 四、Bash常用功能 1、命令和文件名補全功能:按Tab鍵 2、命令歷史: history命令 命令歷史查看保存文件:~/.bash.history 命令歷史清除:history -c 可以用以下方式快速地找到歷史列表中的一個命令 $ history | grep cat 3、命令別名: alias 命令別名的顯示: alias 命令別名的定義: alias ss=‘ls –l’ 命令別名取消: alias=ss Alias -a 五、管道與重定向 1、標準輸入輸出 2、重定向: (1)輸入重定向:< (2)輸出重定向:>,>>(追加) 將標準輸出重定向到文件 $ ls /etc/ > etcdir 將標準輸出重定向追加到文件 $ ls /etc/sysconfig/ >> etcdir (3)錯誤重定向: 2>,2>> 將錯誤輸出重定向到文件 $ nocmd 2> errfile (4)

輸出與錯誤重定向的組合使用:&> 將標準輸出和錯誤輸出重定向到文件 $ ls afile bfile &> errfile 3、管道 “|”符用於連接左右兩個命令,將“|”左邊的命令執行結果(輸出)作為“|”右邊命令的輸入.(相當於加工處理) 使用方法:命令1|命令2|命令3……|命令n 使用舉例:$ ls –Rl /etc | more $ cat /etc/passwd | wc $ cat /etc/passwd | grep lrj $ ps –aux |tail -2 | more 六、Shell腳本 1、shell腳本的特點: (1)shell腳本相當於DOS中的批處理文件,是多個命令的集合 (2)shell腳本保存在文本文件中,我們可以對其進行閱讀和編輯 (3)shell腳本由Shell環境解釋執行的,不需要在執行前進行編譯 (4)shell腳本執行Shell程序時,Shell腳本文件需要具有可執行(X)的屬性 2、基本腳本編程 (1)建立Shell文件 如:vi hello.sh (2)腳本運行環境設置 如:#!/bin/bash (註:“#!”與路徑名之間沒有空格) (3)註釋行的使用 以“#”符開始,只是起解釋說明的作用 如:# This is my first HelloWorld program (4)腳本語句 腳本語句的內容就是我們根據需要實現某種功能而輸入的一些命令集合 如:mkdir /root/aaa touch /root/aaa/test echo Hello! 3、腳本運行的方法(如:hello.sh為腳本文件) (1)bash hello.sh (不需要可執行屬性) (2) .hello.sh (不需要可執行屬性) (3)./hello.sh (相對路徑,需要可執行屬性) (4)/root/hello.sh (絕對路徑,需要可執行屬性) 第五章、應用程序安裝與管理 一、Linux應用程序組成 1、 普通執行程序文件,保存在“/usr/bin”目錄中 2、 伺服器執行程序文件和管理程序文件,保存在“/usr/sbin”目錄中 3、應用程序配置文件,保存在“/etc”目錄下 4、應用程序文檔文件,保存在“/usr/share/doc/”目錄下 5、應用程序物冊頁文件,保存在“/usr/share/man”目錄下 二、RPM(Redhat Package Manager)包管理 1、RPM包的查詢命令 ?

rpm –qa 查詢Linux系統中的所有軟體包 ? rpm –q 包名稱 查詢指定名稱軟體包是否安裝 ? rpm –qi 包名稱 查詢指定名稱軟體包的詳細信息 ? rpm –ql 包名稱 查詢指定名稱軟體包包中所包括的文件列表 ? rpm –qf 包名稱 查詢指定文件所屬的軟體包 ? rpm –qpi 包名稱 查詢指定RPM包文件的詳細信息 ? rpm –qpl 包名稱 查詢指定RPM包中包含的文件列表 2、使用rpm命令安裝軟體包 ? rpm –i 安裝包名稱 (這是基本安裝) ? rpm –ivh 安裝包名稱 (安裝時會顯示詳細信息) (註:RPM包的依賴關係,如:A依賴於B,則必須先安裝B再安裝A.) 3、使用rpm命令卸載軟體包 ? rpm –e 軟體包名稱 (註:RPM包的依賴關係,如:A依賴於B,則必須先卸載A再卸載B.) 4、使用rpm命令升級軟體包 ? rpm –U 軟體包名稱 (註:如果該軟體包沒有安裝就直接安裝到當前系統) 三、應用程序的編譯安裝 1、確認當前系統中具備軟體編譯的環境 rpm –qa | grep gcc 2、獲得應用程序的源代碼軟體包的文件夾(掛載光碟文件) 3、釋放源代碼軟體包 tar zxf 包名稱 (該包格式的後綴名為 .tar.bz2) tar jxf 包名稱 (該包格式的後綴名為 .tar.gz) 4、設置安裝路徑 ./configure –prefix=程序安裝目錄的絕對路徑 5、程序編譯過程 make 6、程序安裝過程 make install 7、清理多餘文件

make clean 8、卸載 make uninstall 四、在圖形界面系統工具完成RPM包安裝 1、命令方式:system-config-packages 2、菜單項啟動方式:Applications → System Settings → Add/Remove Applications 第六章 Linux系統管理 一、啟動過程: ? 開機流程簡介: 1、載入 BIOS 的硬體信息,並取得第一個開機裝置的代號; 2、讀取第一個開機裝置的 MBR 的 boot Loader (亦即是 lilo, grub, spfdisk 等等) 的開機信息; 3、載入 Kernel 操作系統核心信息, Kernel 開始解壓縮,並且嘗試驅動所有硬體裝置; 4、Kernel 執行 init 程序並取得 run-level 信息; 5、init 執行 /etc/rc.d/rc.sysinit 檔案; 6、啟動核心的外掛模塊 (/etc/modprobe.conf); 7、init 執行 run-level 的各個批次檔( Scripts ); 8、init 執行 /etc/rc.d/rc.local 檔案; 9、執行 /bin/login 程序,並等待使用者登入; 10、登入之後開始以 Shell 控管主機. ? 啟動,關機,登入,登出相關命令: <login> 登錄 <logout> 登出 <exit> 登出 <shutdown> 停止系統 <halt> 停止系統 <reboot> 重啟動 <poweroff> 切斷電源 <sync> 把內存里的內容寫入磁碟 <lilo> 安裝lilo啟動管理程序 <grub> 安裝lilo啟動管理程序 二、運行級別: 0:關閉 1:單用戶模式,用於管理員對系統進行維護. 2:多用戶模式,在該模式下不能使用NFS. 3:完全多用戶模式:用於將主機作為伺服器. 4:保留,未分配. 5:圖形登錄的多用戶模式:圖形界面登錄,圖形操作環境. 6:重新啟動系統. 顯示當前的運行級別:runlevel 更改當前的運行級別:init 1 2 3 5

三、系統服務的啟動狀態: 查看服務啟動狀態: chkconfig –list 服務名稱 設置獨立服務的啟動狀態:chkconfig --level 運行級別表 服務名稱 on | off | reset 設置非獨立服務的啟動狀態:chkconfig 服務名稱 on | off | reset 非獨立服務的啟動狀態由xinetd服務在系統中指定運行級別的啟動狀態決定,xinetd服務啟動后才能啟動非獨立服務程序. 當使用chkconfig對非獨立服務程序的啟動狀態進行更改后,需要service xinetd restart重新啟動xinetd服務. INIT的配置文件為:/etc/inittab 系統初始化腳本:系統啟動過程中,執行/etc/rc.d/rc.sysinit后,接著執行/etc/rc.local. 進程:是Linux系統中的基本運行單位,可對其進行查看、調整、啟用和停止操作.進程是程序代碼在處理器中的運行:操作系統在執行程序時,程序代碼被讀取到內存中,駐留在內存中的程序代碼作為進程在處理器中被動態執行.Linux是多進程操作系統,每個程序啟動時都可以創建一個或幾個進程,每個進程都是一個獨立的任務. 查看系統內所有進程:ps aux 簡單顯示當前進程:ps 查看進程樹:pstree,可顯示進程與子進程的詳細列表. USER-用戶 PID—進程號 CPU-CPU佔用率 MEM-內存佔用率 VSZ-虛擬內存大小 RSS-佔用內存 TTY-運行終端 STAT-當前狀態 START-啟動時間 TIME-佔用CPU時間 COMMAND-程序名稱 全屏顯示進程信息:top q鍵退出 P鍵-按CPU排序 N鍵-按打開時間排序 A鍵-按PID號排序 在後台啟動進程:命令后加“ &” 將後台程序調入終端前台執行:fg 後台程序名

Ctrl+C:結束當前進程 將當前終端中運行的程序調入後台並停止執行:Ctrl+Z 查看後台進程:jobs (強制)終止進程:kill (-9) 進程號 系統初始化時調用的腳本:位於/etc/r.d內的rc.sysinit和rc.local 定時啟動任務服務:cron服務程序的軟體包名稱:vixie-cron 查詢服務狀態:service crond status 啟動/重啟服務:service crond start | restart 格式:* * * * * 分 時 天 月 周 查看cron任務:crontab -l 覆蓋原有cron任務:crontab 刪除現有用戶的cron任務:crontab –r 調用文本編輯器:crontab –e 用戶配置cron任務目錄:/var/spool/cron/用戶名 cron啟動腳本:/etc/init.d/crond 系統預設的cron任務配置文件及目錄:/etc/crontab文件,/etc/cron.d目錄. 日誌:應用程序日誌、系統日誌. 存放於/var/log 啟動日誌:boot.log # ls /var/log 查看日誌文件 四、磁碟空間配額: 軟限制-警告值,硬限制-最大值.可對用戶和組的可用磁碟空間和可使用文件數量進行設置. ①修改/etc/fstab,在分區裝載設置中添加usrquota和grpquota. ②重啟系統. ③運行quotacheck –cmug /,建立文件系統配額文件aquota.user和aquota.group. ④edquota -u 用戶名 | -g 組名,編輯用戶/組配額. 設置磁碟配額寬限時間:edquota –t. Filesystem Blocks soft hard indos soft hard /dev/hda3 17636 0 0 0 0 0 ⑤顯示配額信息:quota -u 用戶名 | -g 組名. ⑥啟用配額-quotaon /,停用配額-quotaoff /. ※可以使用虛擬磁碟對所做的磁碟配額進行檢查. 切換用戶:su –u 用戶名 檢查:dd if=/dev/zero of=/tmp/aa bs=1M count=2 五、壓縮命令: *.Z

compress 程序壓縮的檔案; *.bz2 bzip2 程序壓縮的檔案; *.gz gzip 程序壓縮的檔案; *.tar tar 程序打包的數據,並沒有壓縮過; *.tar.gz tar 程序打包的檔案,其中並且經過 gzip 的壓縮 ? compress filename 壓縮文件 加[-d]解壓 ? gzip filename 壓縮 加[-d]解壓 ? bzip2 -z filename 壓縮 加[-d]解壓 ? bzcat filename.bz2 查看壓縮文件內容 ? tar -cvf /home/123.tar /etc 打包,不壓縮 ? tar -xvf 123.tar 解開包 ? tar -zxvf /home/123.tar.gz 以gzip解壓 ? tar -jxvf /home/123.tar.bz2 以bzip2解壓 ? tar -ztvf /tmp/etc.tar.gz 查看tar內容 ? cpio -covB > [file|device] 份份 ? cpio -icduv < [file|device] 還原 文件歸檔:tar cf 歸檔文件名.tar 備份目錄、文件 文件壓縮歸檔:tar czf 歸檔文件名.tar.gz 備份目錄、文件 查看歸檔文件:tar tf 歸檔文件名.tar 查看壓縮歸檔文件:tar tzf 歸檔文件名.tar.gz 恢復歸檔文件:tar xf歸檔文件名.tar –C 指定目錄 恢復壓縮歸檔文件:tar xzf 歸檔文件名.tar.gz –C 指定目錄 解壓bz2文件:tar jxf 文件名.bz2 -v 顯示歸檔進度 第7章 Linux基本網路配置 ? 網路介面:eth0-系統網路介面;lo-環回網路介面127.0.0.1. ? 查看網路介面信息:ifconfig 網路介面名稱 -a 全部網路介面 ? 測試與其它主機的網路連接:ping 目的主機地址 -c指定數據包數量 Ctrl+C結束髮送. ? 測試與其它主機的網路連接路徑:traceroute 目的主機地址 ?

查看當前主機名稱:hostname ? 配置主機名稱:hostname 主機名稱,配置后需要重啟計算機. ? 查詢DNS伺服器域名: 交互模式:nslookup,輸入待解析域名↙,exit退出.用於對DNS伺服器進行測試. 命令模式:nslookup 待解析域名.用於查詢域名對應的IP地址. ? DHCP網路設置:dhclient ? 臨時配置網路: ifconfig 網路介面名稱 ip地址 netmask 子網掩碼 ? 手工配置網路: netconfig ? 添加ip地址: ifconfig 網路介面名稱: ip地址 netmask 子網掩碼 ? 添加默認網關路由:route add default gw 默認網關地址 ? 刪除默認網關路由:route del default gw 默認網關地址 注意:添加默認網關前要確認系統路由表中的默認網關紀錄不存在. route-顯示默認網關 顯示域名解析:nslookup,輸入server. 設置新的解析地址:server 新解析地址. 網路服務啟動腳本:/etc/init.d/network 網路介面配置文件:/etc/sysconfig/network-scripts/中,介面文件名ifcfg-xxx. 啟用網路介面:ifup 網路介面名稱 停止網路介面:ifdown 網路介面名稱 -a 全部網路介面 主機名稱配置文件:/etc/sysconfig/network 重新配置后需要重啟計算機. 本地主機名稱解析文件:/etc/hosts 域名伺服器配置文件:/etc/resolv.conf 可設置3條nameserver配置記錄. 第八章 NFS文件系統 一、NFS的概述和安裝 1、NFS的一般用法 在運行NFS伺服器程序的主機中進行必要的配置,提供NFS共享目錄的輸出 在NFS客戶機掛載NFS伺服器輸出的共享目錄 2、NFS伺服器的安裝 3、查看所需的軟體包是否安裝: #rpm –q nfs-utils portmap 4、NFS的安裝包文件: #cd /media/cdrom/RedHat/RPMS/ #ls nfs-utils* portmap* 5、安裝nfs-utils和portmap兩個軟體包: #rpm –ivh nfs-utils-1.0.6-4.i386.rpm portmap-4.0-6.3.i386.rpm 二、NFS伺服器的配置 1、NFS伺服器的配置文件: #cat /etc/exports 2、NFS伺服器的啟動與停止 查詢伺服器的狀態: Service 服務程序腳本名稱 status 啟動伺服器:

Service 服務程序腳本名稱 start 停止伺服器運行: Service 服務程序腳本名稱 stop 3、設置伺服器的開機啟動狀態: #chkconfig --list portmap #chkconfig --list nfs 4、Showmount 命令: 用於查詢顯示NFS伺服器的相關信息 #showmount –help 顯示主機的NFS伺服器信息 #showmount [NFS伺服器主機地址] 顯示NFS伺服器的輸出目錄列表 #showmount –e [NFS伺服器主機地址] 顯示NFS伺服器中被掛載的共享目錄 #showmount –d [NFSf伺服器主機地址] 顯示NFS伺服器的客戶機與被掛載的目錄 #showmount –a [NFS伺服器主機地址] 5、Exportfs命令: 當系統管理員對/etc/exports文件進行設置修改後,並不會自動在NFS伺服器中生效 重新輸出共享目錄: #exportfs -rv 停止輸出所有目錄: #exportfs -auv 輸出(啟動)所有目錄: #exportfs -av 三、圖形界面的NFS伺服器配置工具: NFS客戶端配置: 在linux中配置使用NFS客戶端 顯示NFS伺服器的輸出: #showmount –e 掛載NFS伺服器中的共享目錄: #mount –t nfs nfs伺服器地址:目錄共享 本地掛載目錄點 顯示當前主機掛載的NFS共享目錄: #mount | grep mnt 卸載系統中已掛載的NFS共享目錄 #umount /mnt/ 系統啟動時自動掛載NFS文件: 需要將NFS的共享目錄掛載信息寫入/etc/fstab/文件,以實現對NFS共享目錄的自動掛載 #tail –l /etc/fstab 192.168.1.163:/home/pub /mnt nfs defaults 0 0 實驗一:編寫腳本 #vi aa.sh #! /bin/bash echo this is "$1" echo Hello world! wq #cat aa.sh #ls -l aa.sh 腳本運行: #bash aa.sh 使用shell命令程序執行腳本 #· aa.sh

使用“·”命令執行腳本 #· ./aa.sh 設置執行屬性執行腳本 實例:關於時間的shell腳本 輸出時間腳本 #!/bin/bash drewline () { echo "***************" echo "hello,$USER,time is " date } drewline 實驗二:編譯安裝程序 #dhclient #ping 172.16.16.1 #ftp 172.16.16.1 登錄名:ftp 密碼:空 ftp>cd shijing.w 進入ftp ftp>ls -l ftp>get bind-9.3.2.tar.gz ftp>bye #tar zxvf bind-9.3.2.tar.gz #ls #cd bind-9.3.2 #./configure prefix=/tmp/bin(安裝路徑) #ls #make #make install #cd /tmp/bin(安裝路徑) #ll ../sbin #ls ../man 安裝apache,觀看試驗效果 實驗三:磁碟配額 #vi /etc/fstab 修改fstab文件 #reboot #quotacheck -cmug /home #ls /aquota.* 或 ls -l 查看 #mkdir abc #edquota -u abc 修改配置 wq保存退出 #edquota -g 組名 為組配額 #edquota -t 修改寬限時間 #quotaon -auvg 激活 # quota -u abc 查看配額(用戶) # quota -g 組名 查看組配額 實驗4:文件壓縮.歸檔 # mkdir aaa # cd aa # mkdir aa bb cc # tar cf aa.tar aa 歸檔文件 # tar czf bb.tar.gz bb 壓縮歸檔文件 # tar tf aa.tar 查看 # tar tzf bb.tar.gz 查看 # tar xf aa.tar 釋放 # tar zxf bb.tar.gz 釋放 # tar xf aa.tar -c cc/將歸檔文件aa釋放到cc 目錄中 實驗5:製作cron 任務 at 任務 # crontab -e 35 16 #35 16 * * * /sbin/init.5 wq 保存退出 # crontab -l 查看 # at -t 12211635 at》touch abc wq 保存退出 實驗六 : NFS 文件系統 伺服器中: #rpm -q nfs-utils portmap 查看包是否安裝 #rpm -ivh nfs-utils-1.0.6-46.i386.rpm portmap-4.0-63.i386.rpm 若未安裝,使用以上命令進行安裝 #cat /etc/exports 查看配置輸出目錄(默認為空) #vi /home/share *(sync,rm) /home/pub *(sync,ro) wq #service portmap status 查看伺服器狀態 #service nfs status 查看伺服器狀態 #service portmap start 若未啟動則啟動伺服器 #service nfs start 同上 #chkconfig --list portmat #chkconfig --list nfs #chkconfig --level 35 nfs on #chkconfig --list nfs 同理將portmat 35 進程啟動 客戶機:#showmount -e 伺服器ip 顯示nfs伺服器的輸出目錄 #mount -t nfs nfsip :共享目錄名 本地掛載點目錄 #mount | grep 掛載點 查看掛載的NFS共享目錄 系統啟動時自動掛載NFS文件 #tail -1 /etc/fstab #mount /mnt/ #mount | grep mnt #mount /mnt/ 實驗7: 安裝RPM軟體包 # rmp i RMP包文件名

將RHEL4第2張安裝盤放入,安裝名為vim-common-6.3.035-3.i386.rpm的軟體包. # rpm-qa | grep vim #rpm | /media/cdrom/RedHat/RPMS/vim-common-6.3.035-3.i386.rpm #rpm -q vim-common 補充命令: # mkdir -p 1/2/3/4 創建嵌套目錄 # rm -rf 目錄名 強制刪除目錄(空及非空) # passwd -d 用戶名 刪除用戶登錄密碼 # tail /etc/shadow 查看密碼 # ln -s aa bb 創建鏈接文件 # ls -a 查看隱藏文件    # ls -li 查看節點 linux 系統的 所有用戶帳號都保存在 /etc/passwd文件中

本文出自 「穆未名博客」 博客,請務必保留此出處http://muweiming.blog.51cto.com/252789/743969


[火星人 ] linux總結已經有765次圍觀

http://coctec.com/docs/linux/show-post-46700.html