1、教學環境 2、雲計算概念 3、工作崗位與內容 4、linux系統簡介 5、shell概念 6、linux基礎命令 man/help/info/pwd/cd/ls/mkdir/stat/touch/rm/copy/mv/echo/cat/less/more/tty/管道 7、重定向 >,1>,2> ...
1、教學環境 2、雲計算概念 3、工作崗位與內容 4、linux系統簡介 5、shell概念 6、linux基礎命令 man/help/info/pwd/cd/ls/mkdir/stat/touch/rm/copy/mv/echo/cat/less/more/tty/管道 7、重定向 >,1>,2>,&>,<,>> 一、教學環境 Linux + VMware WorkStation 二、雲計算概念 雲計算(cloud computing)是基於互聯網的相關服務的增加、使用和交付模式,通常涉及通過互聯網來提供動態易擴展且經常是虛擬化的資源。雲是網路、互聯網的一種比喻說法。雲計算甚至可以讓你體驗每秒10萬億次的運算能力,擁有這麼強大的計算能力可以模擬核爆炸、預測氣候變化和市場發展趨勢。 雲計算(Cloud Computing)是分散式計算(Distributed Computing)、並行計算(Parallel Computing)、效用計算(Utility Computing)、 網路存儲(Network Storage Technologies)、虛擬化(Virtualization)、負載均衡(Load Balance)、熱備份冗餘(High Available)等傳統電腦和網路技術發展融合的產物。 三、運維工程師、DBA 運維工程師(Operations)在國內又稱為運維開發工程師(Devops),在國外稱為 SRE(Site Reliability Engineering)。負責維護並確保整個服務的高可用性,同時不斷優化系統架構、提升部署效率、優化資源利用率提高整體的ROI。運維工程師面對的最大挑戰是大規模集群的管理問題,如何管理好幾十萬台伺服器上的服務,同時保障服務的高可用性,是運維工程師面臨的最大挑戰。 資料庫管理員(Database Administrator,簡稱DBA),是從事管理和維護資料庫管理系統(DBMS)的相關工作人員的統稱,屬於運維工程師的一個分支,主要負責業務資料庫從設計、測試到部署交付的全生命周期管理。DBA的核心目標是保證資料庫管理系統的穩定性、安全性、完整性和高性能。 四、linux系統簡介 Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程式和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。 Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公佈時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種電腦硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式電腦、大型機和超級電腦。 1、特點: 完全免費;完全相容POSI1.0標準;多用戶、多任務;良好的界面(KDE,gnome,Xfce,LXDE);支持多種平臺(x86、680x0、SPARC、Alpha)。 2、基本思想: Linux的基本思想有兩點:第一,一切都是文件;第二,每個軟體都有確定的用途。 3、文件類型: - 普通文件(regular file):就是一般存取的文件,依照文件的內容,可以分為:純文本文件(ASCII);二進位文件(binary);數據格式的文件(data)。 d 目錄文件(directory):就是目錄。 l 連接文件(link):類似Windows下麵的快捷方式。符號 設備與設備文件(device):與系統外設及存儲等相關的一些文件,通常都集中在 /dev目錄。通常又分為兩種: c 塊設備文件(就是存儲數據以供系統存取的介面設備,簡單而言就是硬碟) b 字元設備文件(即串列埠的介面設備,例如鍵盤、滑鼠等等)。 s 套接字(sockets):這類文件通常用在網路數據連接。可以啟動一個程式來監聽客戶端的要求,客戶端就可以通過套接字來進行數據通信。 p 管道(FIFO,pipe):FIFO也是一種特殊的文件類型,它主要的目的是,解決多個程式同時存取一個文件所造成的錯誤。 # ls / --查看文件結構 bin boot data dev etc home jenkins lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var 五、Shell Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種介面。它接收用戶輸入的命令並把它送入內核去執行。實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令並且把它們送到內核。不僅如此,Shell有自己的編程語言用於對命令的編輯,它允許用戶編寫由shell命令組成的程式。 同Linux本身一樣,Shell也有多種不同的版本。主要有下列版本的Shell: Bourne Shell: 是貝爾實驗室開發的。 BASH: 是GNU的Bourne Again Shell,是GNU操作系統上預設的shell。/bin/bash Korn Shell: 是對Bourne SHell的發展,在大部分內容上與Bourne Shell相容。 C Shell: 是SUN公司Shell的BSD版本。 Z Shell: The last shell you’ll ever need! Z是最後一個字母,也就是終極Shell。它集成了bash、ksh的重要特性,同時又增加了自己獨有的特性。 六、Linux系統常用命令 1、Linux的命令分為內部命令和外部命令: 內部命令在系統啟動時就調入記憶體,是常駐記憶體的,所以執行效率高。 外部命令是系統的軟體功能,用戶需要時才從硬碟中讀入記憶體。系統將會讀取環境變數文件.bash_profile、/etc/profile去找PATH路徑。 # echo $PATH --查看 PATH 包含哪些路徑 # enable -a --查看所有內部命令 # type service --type判斷命令為內部還是外部 # type pwd --service 為外部命令;pwd為內部命令 # enable tree --enable也可判斷 2、linux命令語法規則 command -option file 3、命令幫助——man\help\info # man passwd --使用 man 手冊查找 passwd 命令如何使用 # tree --help --外部命令查詢方式(或 -h);並不是所有命令都支持 # help cd --內部命令查詢方式 # info ls 4、工作目錄切換——pwd\cd 絕對路徑: 一定是以"/"(根)開頭,它是唯一一個絕對能夠描述對象所在的路徑的方式。"/" 根目錄是linux操作系統最頂級的目錄,沒有任何路徑比它還要靠前。他是操作系統所在的目錄(分區)。 相對路徑:路徑是相對的,對象所在的路徑是相對於當前所在路徑而來,當前的所在路徑不一樣,那麼目標對象的相對路徑也不一樣。 # pwd --查看當前所在的工作目錄 # cd /usr/local/ --以絕對路徑的方式去往 /usr/local 目錄 # cd bin/ --以相對的路徑去往 /usr/local/ 目錄下的 bin 目錄。如何使用絕對方式? # cd . --. 代表當前目錄。該命令代表工作目錄沒動 # cd .. --返回當前目錄的父目錄,也就是前一級。也屬於相對路徑 # cd - --返回前次所在的工作目錄 # cd ~ --到當前用戶的家目錄 # cd /usr/local/../lib/../.. --這個到哪了?? 5、列出目錄下內容——ls # ls --查看當前目錄下的文件列表 # ls /bin/ --查看 /bin 目錄下有哪些文件 # ls -l /etc/ --查看 /etc 目錄下文件的詳細信息,參數 -l -rw-r--r--. 1 root root 46 Apr 22 18:56 adjtime '-' 為文件類型,普通文件。文件類型有7類:-dslbcp rw-r--r-- 為文件許可權 # ls -a /root -- 顯示以'.'開頭的隱藏文件,參數 -a # ls -ld /etc/ --查看目錄本身的信息。參數 -d # ls -lt /data/test --按文件的創建/最後修改排序 6、創建目錄——mkdir # mkdir /data --以絕對路徑創建目錄 # mkdir test --以相對路勁創建目錄 # mkdir dir1 dir2 --同時創建好幾個目錄 # mkdir test/a/b/c -p --以相對路勁遞歸創建目錄,參數 -p 7、文件狀態——stat # stat aa File: `aa' --文件名 Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 803h/2051d Inode: 1968262 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-10-19 16:54:56.010977018 +0800 --訪問時間 Modify: 2016-10-19 16:53:34.722976466 +0800 --修改時間 Change: 2016-10-19 16:53:34.722976466 +0800 --狀態改變時間 註意:訪問時間只記錄文件狀態、內容改變後的第一次訪問時間。後面如果修改時間&狀態改變時間沒有發生變化,那麼即使進行了對文件的多次訪問,訪問時間也不會改變 在Linux中,沒有文件創建時間的概念。只有文件的訪問時間、修改時間、狀態改變時間。 如果文件創建後就沒有修改過,修改時間=創建時間; 如果文件創建後,狀態就沒有改變過,那麼狀態改變時間=創建時間; 如果文件創建後,沒有被讀取過,那麼訪問時間=創建時間,這個基本不太可能 8、創建文件——touch # touch /data/a # touch test/a # touch a b c # touch file{1,2,3,} # touch ["a b"]['a b'][a\ b] --創建一個文件 a b # touch -r a aa --使用 a 的屬性時間替換 aa 的屬性時間 # touch -d '2016-10-10 10:10' aa --修改文件的 訪問時間與修改時間。符號 -d # touch -m -d '2016-11-1 11:11' aa --只修改文件的 修改時間。符號 -m # touch -a -d '2016-6-6 6:6' aa --只修改文件的 訪問時間。符號 -a # touch -a -t 201505050555 aa --以該種時間格式修改文件訪問時間。符號 -t 9、刪除文件——rm # rm /root/test/a --刪除普通文件,並且會再讓我們確認下 rm: remove regular empty file `/root/test/a'? y # rm -f /root/test/aa --不用確認,直接刪除普通文件。符號 -f # rm -rf /root/test/ --刪除目錄,並且不用重新確認。符號 -r # rm -rf /root/test1/* --刪除目錄下的所有文件 10、拷貝文件——cp # cp /etc/passwd /root/test/ --拷貝普通文件 # cp /etc/passwd /root/test/password --拷貝普通文件,並且改名 # cp -r /etc/ /root/test --拷貝 /etc/ 目錄到 /root/test 目錄下 # cp -r /etc/* /root/test/bak/ --開唄 /etc/ 目錄下的所有文件到 /root/test/bak/ 目錄下 # cp -a /etc/passwd /root/test/ --將文件的各種屬性儘量完整的拷貝到目的地 11、移動文件——mv # mv /root/test/passwd bak/ --移動文件 # mv /root/test/passwd bak/pass --移動文件並改名 # mv /root/test/bak /root/test/bak-01 --移動目錄並改名 12、輸出——echo/tty # echo 'hello world' --輸出到終端 # tty --查看當前設備名 # echo 'hello world' > /dev/pts/1 --輸出到另外一個終端 # echo -n 'hello world' --輸出到終端後,不換行。符號 -n # echo -e '123\nhello world' --使能反斜杠轉義。符號 -e 常用轉義參數: \n(換行) \t(Tab) \b(退格鍵) \v(換行再Tab) 等等 13、查看文件——cat/more/less # cat /etc/passwd --輸出文件內容 # cat -n /etc/passwd --顯示每一行的行號。符號 -n # cat -nb /etc/passwd --只顯示非空的行。符號 -b # more /etc/passwd -- 一頁一頁的打開文件,空格下一頁,b 上一頁,/ 搜索,q退出 # less /etc/passwd --打開形式與more 類似。f 下一頁,w上一頁,j 下一行,k上一行,/ 搜索,h 幫助,q退出 14、過濾——grep # grep root /etc/passwd --查找文件里符合條件的字元串 # grep -v root /etc/passwd --將不包含root的行過濾出來。 -v # grep -A2 root /etc/passwd --在過濾出符合條件行的同時將其後面的兩行也顯示出來。-A # grep -B2 root /etc/passwd --在過濾出符合條件行的同時將其前面的兩行也顯示出來。-B # grep -C2 root /etc/passwd --在過濾出符合條件行的同時將其前後的兩行也顯示出來。-C # grep -c root /etc/passwd --計算出符合要求的行數。符號 -c # grep -i Root /etc/passwd --忽略字元大小寫。符號 -i # grep root /root/* --大範圍搜索 # grep -R root /root/* --大範圍遞歸搜索,搜索的範圍更加廣。符號 -R # grep -Rl root /root/* --只列出符合要求的文件名,不講內容輸出來。符號 -l # grep -w bin /etc/passwd --只顯示全字元合的列。符號 -w # grep -wo bin /etc/passwd --只顯示符合要求的字元。符號 -o 15、管道—— | 用法:command 1 | command 2 作用:是把第一個命令command 1執行的結果作為command 2的輸入傳給command 2 # cat /etc/passwd -n | less # echo -e 'rootjjjjjjjj\nkkkkkkkk' | grep root # cat /etc/passwd | grep root 七、重定向 作用:將輸出的內容重新定向到別的地方; 輸入為: 標準輸入(0);預設為鍵盤 輸出分為: 標準正確輸出(1) 和 標準錯誤輸出(2);預設為屏幕 相關符號: >,1>,2>,&>,< >> # ls -l /etc/passwd --標準正確輸出;預設到終端 -rw-r--r-- 1 root root 1920 Oct 11 22:37 /etc/passwd # ls -l /etc/kkk --標準錯誤輸出;預設到終端 ls: cannot access /etc/kkk: No such file or directory # echo $? --對上一條執行命令的正確性進行判斷;非0基本會標準錯誤輸出 1、重定向與追加的區別 # echo 'hello world' > george --將本該輸出到終端的內容重定向到george文件 # echo 'hi,george' > george --將新的內容重定向到george文件,發現覆蓋了原來的內容 # echo 'hi,frank' >> george --追加則另起一行,將新的內容寫入。符號 >> 2、標準正確輸出重定向 符號 >,1> # ls -l /etc/passwd 1> george --標準正確輸出重定向到了 george 文件 # ls -l /etc/kkkkk > george --而標準錯誤輸出還是到了我們的終端 ls: cannot access /etc/kkkkk: No such file or directory 3、標準錯誤輸出重定向 符號 2> # ls -l /etc/kkkkk 2> george --標準錯誤輸出重定向到了 george 文件 # ls -l /etc/passwd 2> george --而標準正確輸出還是到了我們的終端 -rw-r--r-- 1 root root 1920 Oct 11 22:37 /etc/passwd 4、標準正確&錯誤輸出重定向 符號 &> # ls -l /etc/jjj /etc/passwd > correct 2> error --將標準正確輸出重定向到 correct;將標準錯誤輸出重定向到 error # ls -l /etc/jjj /etc/passwd &> george --將標準正確&錯誤都重定向到 george 5、標準輸入 符號 < # mail -s 'ooo' root@localhost --使用鍵盤標準輸入 hello , root , wo zai yong jian pan qiao zi. . # mail -s 'ooo' root@localhost < /etc/passwd --使用標準輸入符號進行標準輸入,內容為 /etc/passwd 裡頭的內容