1. Linux基礎 1.1. Unix 1965年,AT&T貝爾電話實驗室、通用電氣公司、麻省理工學院MAC課題組一塊兒聯合開發一個稱爲Multics的新操做系統。該項目目的是讓大型主機能夠同時提供300臺以上的終端機鏈接使用。其被設計運行在GE-645大型主機上。 貝爾實驗室認爲該項目不可能成功以後,便退出了該項目,其中一位開發者──肯•湯普遜則繼續爲GE-645開發軟件,並最終編寫了一個太空旅行遊戲「Space Travel」。發現遊戲速度很慢並且耗費昂貴。正好有一部閒置的PDP-7。使用尼斯•裏奇的幫助下,湯普遜用PDP-7的彙編語言重寫了這個遊戲,並使其在DEC PDP-7上運行起來。 湯普遜的File Server System。此次經歷加上Multics項目的經驗,促使湯普遜開始了一個DEC PDP-7上的新操做系統項目。湯普遜和裏奇領導一組開發者,開發了一個新的多任務操做系統。在1970年時,那部PDP-7卻只能支持兩個使用者,當時,實驗室的人就開玩笑地戲稱他們的系統實際上是:「UNiplexed Information and Computing System」,縮寫爲「UNICS」。後來,你們取其諧音這個名字被改成UNIX。 最初的Unix是用匯編語言編寫的,一些叫作B語言的解釋型語言和彙編語言混合編寫的。B語言在進行系統編程時不夠強大,因此湯普遜和裏奇對其進行了改造,並於1971年共同發明了C語言。1973年湯普遜和裏奇用C語言重寫了Unix。在當時,爲了實現最高效率,系統程序都是由彙編語言編寫,因此湯普遜和裏奇此舉是極具大膽創新和革命意義的。用C語言編寫的Unix代碼簡潔緊湊、易移植、易讀、易修改,爲此後Unix的發展奠基了堅實基礎。 注意:1979年貝爾實驗室出於商業考慮,收回了版權而且規定「不可對學生提供源碼」。 Ken Thompson肯·湯普遜 C語言之父Dennis Ritchie 丹尼斯·裏奇 2000年12月時,湯普遜退休, 在2011年10月12日,他在長期患病後逝世, 離開貝爾實驗室,成爲了一名飛行員。 享年70歲。 1.2. MINIX 荷蘭阿姆斯特丹的Vrije大學計算機科學系的Andrew S. Tanenbaum(譚寧幫)教授爲了可以教導學生學習UNIX,本身動手寫了一個Minix,是一個Mini的UNIX系統。MINIX是一個廉價的小型類Unix操做系統,是爲在計算機科學用做教學而設計的,能夠在80286的Intel芯片上運行。 安德魯·斯圖爾特·塔能鮑姆 Andrew S. Tanenbaum Linus Torvalds 林納斯·託瓦茲 1.3. Torvalds的linux 1991年,芬蘭人林納斯•託瓦茲在赫爾辛基大學上學,對操做系統很好奇,而且對MINIX只容許在教育上使用很不滿(其不容許任何商業使用),因而開始寫他本身的操做系統,這就是後來的Linux內核。 1991年9月Linux的第一個版本0.0.1版本發佈,Linux只具備操做系統內核的勉強的雛形,甚至不能運行,你必須在有Minix的機器上編譯之後才能玩,時僅有10000行程序碼,仍必須執行於Minix操做系統之上。10月份第二個版本(0.02版)發佈了94年初,Linux 1.0誕生 。Linux 1.0已是一個功能完備的操做系統,並且內核寫得緊湊高效,能夠充分發揮硬件的性能,在4M內存的80386機器上也表現得很是好Linux的發展歷程上還有一件重要的事 Linux加入GNU並遵循公共版權許可證 (GPL)。 Linux吉祥物 理查德•斯托曼 GNU計劃形象照 1.4. GNU項目 目標在於創建一個徹底相容於UNIX的自由軟件環境。發展GNU系統的計劃,最先由理查德•斯托曼在1983 年啓動,它是自由軟件基金會最先致力的目標。最近一個GNU系統版本,是於2011年4月1日釋出的GNU 0.401,採用GNU Hurd做爲操做系統內核。其餘的內核,最著名的是Linux kernel,也被應用在GNU系統中。GNU是「GNU's Not Unix」的遞歸縮寫。這個項目的目的是建立一個自由的開放的操做系統。 Linux 1.4.1. GPL GNU的通用公共許可證GPL爲了不GNU開發的軟件被其餘人利用成爲專利軟件,推出了通用公共許可證GPL(General Public License)並稱之爲Copyleft(專利軟件是Copyright)就是用戶得到GNU 軟件後能夠自由使用和修改,可是用戶在散佈GNU軟件時,必須讓下一個用戶有得到源代 碼的權利而且必須告知他這一點。這一條看似古怪的規定是爲了防止有些別有用心的人或 公司將GNU軟件稍加修改就去申請版權,說成是本身的產品。其目的就是要讓GNU永遠 是免費和公開的。 http://www.gnu.org/ 1.5. Linux Linux是一種自由和開放源碼的類UNIX操做系統,使用Linux內核。目前存在着許多不一樣的Linux發行版,可安裝在各類各樣的電腦硬件設備,從手機、平板電腦、路由器和影音遊戲控制檯,到桌上型電腦,大型電腦和超級電腦。 Linux是一個領先的操做系統,世界上運算最快的10臺超級電腦運行的都是Linux操做系統。 Linux操做系統也是自由軟件和開放源代碼發展中最著名的例子。只要遵循GNU通用公共許可證,任何人和機構均可以自由地使用Linux的全部底層源代碼,也能夠自由地修改和再發布。嚴格來說,Linux這個詞自己只表示Linux內核,但在實際上人們已經習慣了用Linux來形容整個基於Linux內核,而且使用GNU 工程各類工具和數據庫的操做系統(也被稱爲GNU/ Linux)。一般狀況下,Linux被打包成供桌上型電腦和服務器使用的Linux發行版本。一些流行的主流Linux發行版本,包括Debian(及其衍生版本Ubuntu),Fedora和openSUSE等。Kernel+Softwares+Tools 就是linux distribution 著名linux 發行版 Red Hat、Fedora Mandriva Novell SuSE Debian Slackware Gentoo Ubuntu CentOS 1.5.1. Linux特色 開放性,多用戶,多任務,豐富的網絡功能,可靠的系統安全,良好的可移植性,具備標準兼容性,良好的用戶界面(命令界面,圖形界面等),出色的速度性能。 1.5.2. Linux的組成 一、內核:是系統的心臟,是運行程序和管理像磁盤和打印機等硬件設備的核心程序。 二、Shell:是系統的用戶界面,提供了用戶和內核進行交互操做的一種接口。它接收用戶輸入的命令並把它送入內核去執行,是一個命令解釋器。但它不只是命令解釋器,並且仍是高級編程語言,shell編程。 三、文件系統:文件系統是文件存放在磁盤等存儲設備上的組織方法,Linux支持多種文件系統,如ext3,ext2,NFS,SMB,iso9660等。 四、應用程序:標準的Linux操做系統都會有一套應用程序例如X-Window,Open Office等。 1.5.3. Linux版本 一、內核:Linux內核Kernel目前最新穩定版 3.4 http://www.kernel.org/ 二、發行版本:是一些廠商將Linux系統內核與應用軟件和文檔包裝起來,並提供一些安裝界面和系統設定管理工具的一個軟件包的集合,例如RedHat Linux,Debian,Ubuntu, Novell/SuSE Linux等。 三、ubuntu Ubuntu版本號由該次發佈的年份和月份組成,並未反映其實際版本.首次發行 是在2004年10月,所以該版本爲4.10。於2009年4月23日發佈,所以版本號爲9.04。 最新的版本爲Ubuntu 12.04。 1.5.4. Linux發展與將來 如今有不少公司都在使用Linux操做系統,Linux操做系統從桌面到服務器,從操做系統到嵌入式系統,從零散的應用到整個產業都初見雛形 。Linux服務器操做系統在整個服務器操做系統市場格局中佔據了愈來愈多的市場份額,而且造成了大規模的應用局面。 1.5.5. android Android是一種以Linux爲基礎的開放源代碼操做系統 2. Ubuntu的安裝 2.1. vaware 虛擬機 (Virtual Machine)指經過軟件模擬的具備完整硬件系統功能的、運行在一個徹底隔離環境中的完整計算機系統。先安裝vmware虛擬機。 2.2. vmware虛擬機中安裝ubuntu。 參看Ubuntu安裝過程.doc 3. linux目錄結構 3.1. linux 基本目錄結構 bin 存放二進制可執行文件(ls,cat,mkdir等) boot 存放用於系統引導時使用的各類文件 dev 用於存放設備文件 etc 存放系統配置文件 home 存放全部用戶文件的根目錄 lib 存放跟文件系統中的程序運行所須要的共享庫及內核模塊 mnt 系統管理員安裝臨時文件系統的安裝點 opt 額外安裝的可選應用程序包所放置的位置 proc 虛擬文件系統,存放當前內存的映射 root 超級用戶目錄 sbin 存放二進制可執行文件,只有root才能訪問 tmp 用於存放各類臨時文件 usr 用於存放系統應用程序,比較重要的目錄/usr/local 本地管理員軟件安裝目錄 var 用於存放運行時須要改變數據的文件 4. linux經常使用指令介紹 4.1. 文件目錄操做命令 ls 顯示文件和目錄列表 -l 列出文件的詳細信息 -a 列出當前目錄全部文件,包含隱藏文件 mkdir 建立目錄 -p 父目錄不存在狀況下先生成父目錄 cd 切換目錄 touch 生成一個空文件 echo 生成一個帶內容文件 echo abcd>a.txt cat、tac 顯示文本文件內容 cp 複製文件或目錄 rm 刪除文件 -r 同時刪除該目錄下的全部文件 -f 強制刪除文件或目錄 刪除文件夾 rmdir 文件夾不能爲空 刪除文件夾 rm -rf 目錄名字-r 就是向下遞歸,無論有多少級目錄,一併刪除-f 就是直接強行刪除,不做任何提示的意思 mv 移動文件或目錄、文件 mv aaa bbb 將aaa更名爲bbb find 在文件系統中查找指定的文件 -name 文件名 wc 統計文本文檔的行數,字數,字符數 grep 在指定的文本文件中查找指定的字符串 rmdir 刪除空目錄 tree 顯示目錄目錄更名樹 pwd 顯示當前工做目錄 ln 創建連接文件 more、less 分頁顯示文本文件內容 head,tail分別顯示文件開頭和結尾內容 4.1.1. Linux 通道 簡單地說,一個通道接受一個工具軟件的輸出,而後把那個輸出輸入到其它工具軟件。使用UNIX/Linux的詞彙,這個通道接受了一個過程的標準輸出,並把這個標準的輸出做爲另外一個過程的標準輸入。若是你沒有從新定向這個輸出,這個輸出就在屏幕上顯示出來。使用一個通道,你能夠從新定向這個輸出,這樣它就變成了另外一個工具軟件的標準的輸入。 例如:grep best /home/* | more grep 命令在指定文件查找指定字符串 在home目錄全部文件下查找best字符 此時的結果可能特別多,要分頁。那麼使用more能夠分頁查看 4.2. 系統管理命令 stat 顯示指定文件的相關信息,比ls命令顯示內容更多 who 顯示在線登陸用戶 hostname 顯示主機名稱 uname顯示系統信息 d top 顯示當前系統中耗費資源最多的進程 ps 顯示瞬間的進程狀態 du 顯示指定的文件(目錄)已使用的磁盤空間的總量 df 顯示文件系統磁盤空間的使用狀況 free 顯示當前內存和交換空間的使用狀況 ifconfig 顯示網絡接口信息 ping 測試網絡的連通性 netstat 顯示網絡狀態信息 man 命令幫助信息查詢 clear 清屏 kill 殺死一個進程 4.3. 關機/重啓命令 shutdown系統關機 shutdown 命令能夠安全的關閉Linux系統,shutdown命令必須有超級用戶才能執行。Shutdown命令執行後會以廣播的形式通知正在系統中工做的全部用戶, - r 關機後重啓 - h 關機後不從新啓動 - now 當即關機 - 12:30 指定關機時間 halt 關機後關閉電源 reboot 從新啓動 4.4. 備份壓縮命令 gzip 壓縮(解壓)文件或目錄,壓縮文件後綴爲gz bzip2 壓縮(解壓)文件或目錄,壓縮文件後綴爲bz2 tar 文件、目錄打(解)包 4.4.1. gzip命令 命令格式: gzip [選項] 壓縮(解壓縮)的文件名 參數: -d 將壓縮文件解壓。 -l 對每一個壓縮文件,顯示壓縮文件的大小,未壓縮文件的大小,壓縮比,未壓縮文件的名字 -v 對每個壓縮和解壓的文件,顯示文件名和壓縮比。 -num 用指定的數字num調整壓縮的速度,-1或--fast表示最快壓縮方法(低壓縮比),-9或--best表示最慢壓縮方法(高壓縮比)。系統缺省值爲6 4.4.2. bzip2命令 命令格式: bzip2 [-cdz] 檔名 參數: -d :解壓縮的參數 -z :壓縮的參數 -num 用指定的數字num調整壓縮的速度,-1或--fast表示最快壓縮方法(低壓縮比),-9或--best表示最慢壓縮方法(高壓縮比)。系統缺省值爲6 4.4.3. tar命令 命令格式: tar [-cxzjvf] 壓縮打包文檔的名稱 欲打包目錄 參數: -c :創建一個歸檔文件的參數指令 -x :解開一個歸檔文件的參數指令! -z :是否須要用 gzip 壓縮? -j :是否須要用 bzip2 壓縮? -v :壓縮的過程當中顯示文件 -f :使用檔名,在 f 以後要當即接檔名 -tf :查看歸檔文件裏面的文件 tar -xvzf linux-software-1.3.1.tar.gz 5. dpkg軟件包管理工具 Ubuntu是由Debian發展而來的,因此也採用了Debin的軟件包管理機制。 5.1. dpkg軟件包管理 要想駕輕就熟管理Ubuntu軟件包,就必須熟悉其中最重要的軟件包管理程序dpkg工具是Ubuntu軟件包管理工具的基礎。使用dpkg工具能夠實現軟件包的安裝、卸載、查詢、編譯、打包等功能。 dpkg(Debian Package)管理工具 ,Ubuntu 相關的軟件包文件使用 .deb 後綴,就是由於Ubuntu 與 Debian GNU/Linux 發行版有着緊密的關係。要安裝 .deb 文件 能夠打開一個終端並輸入: sudo dpkg -i package_file.deb 來安裝 .deb 文件。 如需卸載 .deb 文件輸入: sudo dpkg -r package_name dpkg命令參數 -i 安裝軟件包。 -r 卸載軟件包,可是不刪除軟件包的配置文件。 -P 徹底刪除軟件包,包括相關配置文件。 -l 查看當前系統中已安裝軟件包信息。 -L 查看當前系統中指定軟件包的所安裝的相關文件。 -s 查詢已安裝指定軟件包的相關信息。 -S 查詢系統中摸個文件所屬的軟件包。 案例 查看軟件包所包含的內容 sudo dpkg -c tree_1.5.3-1_i386.deb 查看軟件包詳細信息 dpkg -I tree_1.5.3-1_i386.deb 安裝軟件包 sudo dpkg -i tree_1.5.3-1_i386.deb 刪除軟件包 sudo dpkg -r tree 6. APT軟件包管理 APT (Advanced Packaging Tool高級軟件包工具) 是一個強大的包管理系統,而那些圖形化程序如 添加/刪除 應用程序 都是創建 在它的基礎之上的。有了dpkg後,Debian再次開發了apt,它能自動處理依賴文件並維護已有的配置文件,快速,實用,高效 6.1. APT 使用的一些經常使用命令 安裝軟件包: sudo apt-get install packagename 刪除軟件包: sudo apt-get remove packagename 獲取新的軟件包列表: sudo apt-get update 升級有可用更新的系統: sudo apt-get upgrade 列出更多命令和選項: apt-get help 經過apt能夠直接經過網絡安裝。 經常使用的APT命令參數 apt-cache search package 搜索包 apt-cache show package 獲取包的相關信息,如說明、大小、版本等 sudo apt-get install package 安裝包 例如: sudo apt-get install eclipse sudo apt-get install sun-java6-jdk 下載安裝程序到你的/var/cache/apt文件夾裏面而後進行安裝。 sudo apt-get install package - - reinstall 從新安裝包 sudo apt-get -f install 修復安裝"-f = ――fix-missing" sudo apt-get remove package 刪除包 sudo apt-get remove package - - purge 刪除包,包括刪除配置文件等 sudo apt-get update 更新源 sudo apt-get upgrade 更新已安裝的包 sudo apt-get dist-upgrade 升級系統 sudo apt-get dselect-upgrade 使用 dselect 升級 apt-cache depends package 瞭解使用依賴 apt-cache rdepends package 是查看該包被哪些包依賴 sudo apt-get build-dep package 安裝相關的編譯環境 apt-get source package 下載該包的源代碼 sudo apt-get clean && sudo apt-get autoclean 清理無用的包 sudo apt-get check 檢查是否有損壞的依賴 /var/cache/apt/archives. 7. VIM編輯器的使用 VIM的運行模式 編輯模式:等待編輯命令輸入 插入模式:編輯模式下,輸入 i 進入插入模式,插入文本信息 命令模式:在編輯模式下,輸入 「:」 進行命令模式 7.1. VIM 使用的命令 :q 直接退出vi :wq 保存後退出vi ,並能夠新建文件 :q! 強制退出 :w file 將當前內容保存成某個文件 :set number 在編輯文件顯示行號 :set nonumber 在編輯文件不顯示行號 8. 用戶和組帳戶管理 linux操做系統是一個多用戶操做系統,它容許多用戶同時登陸到系統上並使用資源。系統會根據帳戶來區分每一個用戶的文件,進程,任務和工做環境,使得每一個用戶工做都不受干擾。 8.1. 用戶帳戶 A.普通用戶帳戶:普通用戶在系統上的任務是進行普通操做 B.超級用戶帳戶:管理員在系統上的任務是對普通用戶和整個系統進行管理。對系統具備絕對的控制權,可以對系統進行一切操做。 一、超級管理員 用root表示,root用戶在系統中擁有最高權限,默認下Ubuntu用戶的root用戶是不能登陸的若是想要root登陸,能夠執行sudo passwd root 二、安裝時建立的系統用戶 此用戶建立時被添加到admin組中,在Ubuntu中,admin組中的用戶默認是可使用sudo命令來執行只有管理員才能執行的命令的。若是不使用sudo就是一個普通用戶。 三、普通用戶 8.2. 組帳戶 A. 私有組:當建立一個用戶時沒有指定屬於哪一個組,Linux就會創建一個與用戶同名的私有組,此私有組只含有該用戶。 B.標準組:當建立一個用戶時能夠選定一個標準組,若是一個用戶同時屬於多個組時,登陸後所屬的組爲主組,其餘的爲附加組。 8.3. 帳戶系統文件 A./etc/passwd 每一行表明一個帳號,衆多帳號是系統正常運行所必須的,例如bin,nobody 每行定義一個用戶帳戶,此文件對全部用戶可讀。每行帳戶包含以下信息: 用戶名:口令:用戶標示號(UID):組標示號(GID):註釋:宿主目錄(主 文件夾):命令解釋器(shell) root:x:0:0:root:/root:/bin/bash 一、 用戶名: 就是帳號。用來對應UID。root UID是0口令。 二、 口令: 密碼,早期UNIX系統密碼存在此字段,因爲此文件全部用戶均可以讀取,密碼容易泄露,後來這個字段數據就存放到/etc/shadow中,這裏只能看到X。 三、 用戶標識號(UID): 系統內惟一,root用戶的UID爲0,普通用戶從1000開始,1-999是系統的標準帳戶,500-65536是可登錄帳號。 四、 組標識號(GID): 與 /etc/group 相關用來規定組名和GID相對應。 五、註釋: 註釋帳號 六、宿主目錄: 用戶登陸系統後所進入的目錄root 在/root itcast在:/home/itcast 七、命令解釋器: 指定該用戶使用的shell ,默認的是/bin/bash B./etc/shadow 爲了增長系統的安全性,用戶口令一般用shadow passwords保護。只有root可讀。每行包含以下信息: 用戶名:口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌 root:$6$E3SMKoCF$U.A3zuKnBTCzZS5i.ZzHfzq2R5mk6m0iKtWr0B8QdA1VphZcQPaSqKKQWDA.mkptemLBIKPAw/.kik2287ZiM1:15504:0:99999:7::: itcast:$1$ktRolYMY$Fb0kTjAcNUEceLWMzbj2M/:15470:0:99999:7::: 一、帳號名稱: 須要和/ etc/passwd 一致。 二、密碼: 通過加密,雖然加密,但不表示不會被破解該文件默認權限以下 -rw-r----- 1 root shadow 1196 2012-06-13 05:40 shadow 只有root能都讀寫。 三、最近修改密碼日期: 最後一次修改時間:從1970-1-1起,到用戶最後一次更改口令的天數 四、密碼最小時間間隔: 最小時間間隔:從1970-1-1起,到用戶能夠更改口令的天數 五、密碼最大時間間隔: 最大時間間隔:從1970-1-1起,必須更改的口令天數 六、密碼到期警告時間: 警告時間:在口令過時以前幾天通知 七、密碼到期後帳號寬限時間 八、密碼到期禁用帳戶時間: 不活動時間:在用戶口令過時後到禁用帳戶的天數 九、保留 C./etc/group 用戶組的配置文件 root:x:0: 一、 用戶組名稱 二、 用戶組密碼 給用戶組管理員使用一般不用。 三、 GID 用戶組的ID 四、 此用戶支持的帳號名稱 一個帳號能夠加入多個用戶組,例如想要itcast 加入root 這個用戶組,將該帳號填入該字段便可,root:x:0:root,icast 將用戶進行分組是 Linux對用戶進行管理及控制訪問權限的一種手段。一個 中能夠有多個用戶,一個用戶能夠同時屬於多個組。該文件對全部用戶可讀。 D./etc/gshadow 該文件用戶定義用戶組口令,組管理員等信息只有root用戶可讀。 root:::root 一、 用戶組名 二、 密碼列 三、 用戶組管理員的帳號 四、 用戶組所屬帳號 8.4. 使用命令行工具管理帳戶 useradd 用戶名 useradd –u(UID號) useradd –p(口令) useradd –g(分組) useradd –s(SHELL) useradd –d(用戶目錄) 使用usermod修改用戶信息 usermod –u(新UID) usermod –d(用戶目錄) usermod –g(組名) usermod –s(SHELL) usermod –p(新口令) usermod –l(新登陸名) usermod –L (鎖定用戶帳號密碼) usermod –U (解鎖用戶帳號) userdel 用戶名 (刪除用戶帳號) userdel –r 刪除帳號時同時刪除目錄 sudo usermod –u 1007 –g group2 –G root thinkpad 將thinkpad用戶uid修改成1007,默認組改成系統中已經存在的group2,而且加入到系統管理員(GID 0)組。 組帳戶維護命令 groupadd 組帳戶名 (建立新組) groupadd –g 指定組GID groupmod –g 更改組的GID groupmod –n 更改組帳戶名 groupdel 組帳戶名 (刪除指定組帳戶) 口令維護命令 passwd 用戶帳戶名 (設置用戶口令) passwd –l 用戶帳戶名 (鎖定用戶帳戶) passwd –u 用戶帳戶名 (解鎖用戶帳戶) passwd –d 用戶帳戶名 (刪除帳戶口令) gpasswd –a 用戶帳戶名 組帳戶名 (將指定用戶添加到指定組) gpasswd –d 用戶帳戶名 組帳戶名 (將用戶從指定組中刪除) gpasswd –A 用戶帳戶名 組帳戶名 (將用戶指定爲組的管理員) 8.5. 用戶和組狀態命令 su 用戶名 切換用戶帳戶 su root su – root su 須要瞭解新切換的用戶密碼。 id 用戶名 顯示用戶的UID,GID whoami 顯示當前用戶名稱 groups 顯示用戶所屬組 sudo cat /etc/sudoers sudo只須要知道本身的密碼,sudo並非每個用戶均可以執行僅有/ect/sudoers內的用戶纔可以執行sudo命令。 sudo是容許系統管理員讓普通用戶執行一些或者所有的root命令的一個工具,如halt,reboot,su等等。這樣不只減小了root用戶的登錄和管理時間,一樣也提升了安全性。sudo不是對shell的一個代替,它是面向每一個命令的。它的特性主要有這樣幾點: sudo可以限制用戶只在某臺主機上運行某些命令。 sudo提供了豐富的日誌,詳細地記錄了每一個用戶幹了什麼。它可以將日誌傳到中心主機或者日誌服務器。 sudo使用時間戳文件來執行相似的「檢票」系統。當用戶調用sudo而且輸入它的密碼時,用戶得到了一張存活期爲5分鐘的票(這個值能夠在編譯的時候改變)。 sudo的配置文件是sudoers文件,它容許系統管理員集中的管理用戶的使用權限和使用的主機。它所存放的位置默認是在/etc/sudoers,屬性必須爲0411。 使用root 經過visudo 編輯sudoers 案例: 新增用戶: 8.5. 文件權限管理 文件權限是指對文件的訪問權限,包括多文件的讀、寫、刪除和執行。在linux下每一個用戶都有不一樣的權限,普通用戶只能在本身的主目錄下進行寫操做,在主目錄以外,普通用戶只能進行查找,讀取操做。 三種基本權限 R 讀權限 W 寫權限 X 執行權限 8.1. 查看文件和目錄的權限 ls –al 使用ls不帶參數只顯示文件名稱,經過ls –al能夠顯示文件或者目錄的權限信息。 ls –l 文件名 顯示信息包含:文件類型(d 目錄,- 普通文件,l 連接文件),文件權限,文件的屬主,文件的所屬組,文件的大小,文件的建立時間,文件的名稱 -rw-r--r-- 1 itcast users 2254 2006-05-20 13:47 tt.htm 從第二個字符起rw-是說用戶itcast有讀、寫權,沒有運行權,接着的r--表示用戶組users只有讀權限,沒有運行權,最後的r--指其餘人(others)只有讀權限,沒有寫權和運行權。 drwxr-xr-x 2 itcast itcast 4096 2014-06-12 01:10 software drwxr-xr-x 2 itcast itcast 4096 2014-06-12 01:10 software 文檔類型及權限 鏈接數 文檔所屬用戶和用戶組 文檔大小 文檔最後被修改日期 文檔名稱 一、第一列 第一列顯示文檔類型與執行權限,分爲4部分 每一個所表明的含義 d rwx r-x r—x 文檔類型 文檔全部者權限(user) 文檔所屬用戶組權限(group) 其餘用戶權限(other) (1)文檔類型: d 表示目錄 ,l 表示軟鏈接 – 表示文件,c表示串行端口字符設備文件,b表示可供存儲的塊設備文件。餘下的字符3個字符爲一組。r 只讀,w 可寫,x可執行,- 表示無此權限爲空。 (2)User 文檔全部者user權限的設定, rwx表示用戶對sofeware 目錄有讀寫執行的權限。 (3)Goup 文檔所屬組權限的設定,r-x 表示用戶組對software有讀和運行的權限可是沒有寫的權限。 (4)Other 文檔擁有者以外的其餘用戶權限的設定,r-x表示其餘用戶或者用戶組對software只有讀和運行的權限,沒有寫的權限。 文檔的操做權限是能夠指定和更改的,經過chmod命令。 二、文檔鏈接數 第二列顯示的是文檔鏈接數,是指硬連接,多少個文件指向同一個索引節點。 三、第3列顯示文檔所屬的用戶和組,就是文檔屬於哪一個用戶和用戶組。文件所屬用戶和組是能夠更改的,經過chown 四、第4列顯示的是文檔的大小,默認是bytes 5.第5列顯示文檔最後一次修改日期,一般以月日年時分方式顯示 六、顯示文檔名稱,Linux下以 .開頭的文件時隱藏文件,一樣以 . 開頭的目錄是隱藏目錄。必須以ls –a才能顯示。 8.2. 更改操做權限 一、chown 改變用戶和組 chown 是change owner的意思,主要做用就是改變文件或者目錄全部者,全部者包含用戶和用戶組 chown [ -R] 用戶名稱 文件或者目錄 chown [-R] 用戶名稱:用戶組名稱 文件或目錄 -R :進行遞歸式的權限更改,將目錄下的全部文件、子目錄更新爲指定用戶組權限。 注意:執行操做確保指定的用戶及用戶組在系統中是存在的。 二、chmod 改變訪問權限 chmod字符設置法 chmod [who] [+ | - | =] [mode] 文件名 (1)who : 表示操做對象能夠是如下字母的一個或者組合 u 表示 用戶 user ,g表示用戶組group,o表示其餘用戶,a表示全部用戶是系統默認的。 (2)操做符號: + 表示添加某個權限 - 表示取消某個權限 = 賦予給定的權限,取消文檔之前的全部權限。 (3)mode 表示可執行的權限,能夠是 r、w、x 4)文件名 文件名可使空格分開的文件列表。 chmod 【u 屬主 g 所屬組用戶 o 其餘用戶 a 全部用戶】 【+ 加權限 – 減權限 =加權限同時將原有權限刪除】 【rwx】 文件或目錄名 -R 下面的子目錄作相同權限操做 itcast@ubuntu://home/itcast$ ls -al itcast -rw-r--r-- 1 itcast itcast 16 2012-06-13 01:44 itcast itcast@ubuntu://home/itcast$ chmod u=rwx,g+r,o+r itcast itcast@ubuntu://home/itcast$ ls -al itcast -rwxr--r-- 1 itcast itcast 16 2012-06-13 01:44 itcast itcast@ubuntu://home/itcast$ su thinkpad Password: $ ls abc Downloads itcast Public Test.class workspace Desktop examples.desktop Music software Test.java Documents home Pictures Templates Videos $ cat itcast this is testing $ rm itcast rm: remove write-protected regular file `itcast'? y rm: cannot remove `itcast': Permission denied chmod 數字設定法 數字設定法中數字表示的含義,0表示沒有任何權限,1表示有可執行=x,2表示有可執行權限=w,4表示有可讀權限=r。 也能夠用數字來表示權限如 chmod 755 file_name r w x r – x r - x 4 2 1 4 - 1 4 - 1 user group others chmod 755 file_name r 4 w 2 x 1 若要rwx屬性則4+2+1=7; 若要rw-屬性則4+2=6; 若要r-x屬性則4+1=5; itcast@ubuntu://home/itcast$ echo "this is test">itcast.txt itcast@ubuntu://home/itcast$ ls abc Downloads itcast.txt Public Test.class workspace Desktop examples.desktop Music software Test.java Documents home Pictures Templates Videos itcast@ubuntu://home/itcast$ cat itcast.txt this is test itcast@ubuntu://home/itcast$ ls -al itcast.txt -rw-r--r-- 1 itcast itcast 13 2012-06-13 02:05 itcast.txt itcast@ubuntu://home/itcast$ chmod 700 itcast.txt itcast@ubuntu://home/itcast$ ls -al itcast.txt -rwx------ 1 itcast itcast 13 2012-06-13 02:05 itcast.txt itcast@ubuntu://home/itcast$ su thinkpad Password: $ ls abc Downloads itcast.txt Public Test.class workspace Desktop examples.desktop Music software Test.java Documents home Pictures Templates Videos $ cat itcast.txt cat: itcast.txt: Permission denied 9.5. jdk+tomcat+eclipse安裝 10.5. 遠程管理控制ssh 傳統的網絡服務程序,FTP、POP、telnet 本質上都是不安全的,由於它們在網絡上經過明文傳送口令和數據,這些數據很是容易被截獲。SSH叫作Secure Shell。經過SSH,能夠把傳輸數據進行加密,預防攻擊,傳輸的數據進行了壓縮,能夠加快傳輸速度。 10.1. OpenSSH簡介 SSH是芬蘭一家公司開發。可是受到版權和加密算法限制,如今不少人都使用OpenSSH。OpenSSH是SSH的替代軟件,免費。 OpenSSH由客戶端和服務端組成。 OpenSSH提供兩種級別的驗證方式。 (1)基於口令的安全驗證:知道服務器的賬號密碼便可遠程登陸,口令和數據在傳輸過程當中都會被加密。 (2)基於密鑰的安全驗證:此時須要在建立一對密鑰,把公有密鑰放到遠程服務器上本身的宿主目錄中,而私有密鑰則由本身保存。 2.軟件安裝 sudo apt-cache policy openssh-client openssh-server檢查軟件是否安裝 服務端:sudo apt-get install openssh-server 客戶端:sudo apt-get install openssh-client(ubuntu10.10以安裝) OpenSSH服務器的主要配置文件爲/etc/ssh/sshd_config,幾乎全部的配置信息都在此文件中。 注意:遇到以下以下錯誤: Package vim is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source 執行:sudo apt-get update 而後繼續 sudo apt-get install openssh-server 10.2. Windows 下的SSH客戶端 在平常Linux系統管理中,會使用SSH工具鏈接服務器,之因此SSH鏈接主要是爲了安全,傳統的telnet鏈接方式是以明文傳輸,很不安全,網絡中若是又熱竊聽抓包,密碼將要泄露。在衆多SSH鏈接中,Putty功能強大,配置簡單。 Putty正常顯示中文,使用putty鏈接服務器沒法顯示中文,也不能輸入中文字符,顯示亂碼。此時須要設置環境變量 export LC_ALL=itcast_CN.UTF-8。將當前所有字符集設置爲中文,修改putty顯示設置 Change Setting – Translation UTF-8 使用WinSCP Putty作遠程管理,上傳下載,可使用WinSCP比較方便。 打開WinSCP程序,直接輸入地址、用戶名、密碼就能夠登陸Linux系統, 最後: 關於su命令:剛裝完linux要用到超級用戶模式的時候出現這個錯誤。 su: Authentication failure $ su - root Password: su: Authentication failure Sorry. 這時候輸入 $ sudo passwd root Enter new UNIX password: Retype new UNIX password: passwd: password updated successfullyjava