1. 程式人生 > >** 多使用者多工作業系統_Linux [web基礎day25] *

** 多使用者多工作業系統_Linux [web基礎day25] *

Linux

LInux的概念

1.什麼是Linux?
	* Unix是一個強大的多使用者、多工作業系統。於1969年在貝爾實驗室開發。
	* UNIX的商標權由國際開放組織(The open Group) 所擁有。
	* UNIX作業系統是商業版,需要收費,價格比Microsoft Windows正版要貴一些。
	
1.1.2 : Linux的概述:
	* Linux是基於UNix的
	* Linux是一種自由和開放原始碼的作業系統,存在著許多不同的Linux版本。它可安裝在各種計算機裝置中,比如手機、平板電腦、路由器、臺式計算器
	* LInux誕生於1991年10月5日。是由芬蘭赫爾辛基大學大學生Linus Torvalds和後來加入的眾多愛好者共同開發完成,後來釋出於芬蘭最大的ftp伺服器上,使用者可以免費下載,所以它的周邊的程式越來越多,Linux本身也逐漸壯大起來,之後Linux在不到三年的時間裡稱為一個功能完善,穩定可靠的作業系統。
1.1.3: Linux系統的應用:
	* 伺服器系統
		* Web應用伺服器,資料庫伺服器,介面伺服器,DNS、FTP等待。
	* 嵌入式系統
		* 路由器、防火牆、手機、PDA、IP、分享器、交換器、家電用品的微電腦控制器等等。
	* 高效能運算、計算密集型應用
		* Linux有強大的運算能力。
	* 桌面應用系統
	* 移動手持系統。
1.1.4  Linux的版本
	* 核心版本是指在Linus領導下的核心開發小組開發維護的系統核心的版本號;
	* 發行版本是一些組織和公司根據自己發行版的不同而定的;
1.1.5 Linux的主流版本
	* 桌面版   ubuntu(乾淨整潔)  fedora(做的最好,有特效)  
	* 命令列   redhat		CentOs(基於紅帽系列的發行版,但紅帽是收費的,CentOs是免費的。)   CentOs是redHat的分支,redHat軟體免費,服務收費。
	* 國產     中標麒麟   紅旗(已倒閉)
1.2.1:虛擬機器安裝
	* 虛擬機器: 一臺虛擬的電腦
	* 虛擬機器軟體:
		* VmWare:收費的
		* VirtualBox: 免費的
	* 安裝VmWare     --> 參考《虛擬軟體vmware安裝.doc》
	* 安裝CentOs     --> 參考《CentOs6 詳細安裝文件.doc》
1.2.3: Linux 的目錄結構:       /   :斜槓代表根路徑
	* bin (binaries)  存放二進位制可執行檔案
	* sbin(super user binaries)  存放二進位制可執行檔案,只有root才能訪問
	* etc (etcetera)  存放系統配置檔案
	* usr  (unix shared resources)  用於存放共享的系統資源
	* home 存放使用者檔案的根目錄
	* root 超級使用者目錄
	* dev(devices) 用於存放裝置檔案
	* lib(library)存放跟檔案系統中的程式執行所需要的共享庫及核心模組
	* mnt (mount)  系統管理員安裝臨時檔案系統的安裝點
	* boot 存放用於系統引導時使用的各種軟體
	* tmp (temporary) 用於存放各種臨時檔案
	* var (variable)  用於存放執行時需要改變資料的檔案
xshell  

Linux的使用

2.LInux的常用命令:    pwd:查詢自己當前在哪個目錄(查詢自己所在路徑)
	1.切換目錄命令
	* 使用:
		* cd app   切換到app目錄
		* cd..  切換到上一層目錄
		* cd / 切換到系統根目錄
		* cd~  切換到使用者主目錄  //直接回家
		* cd-   切換到上一個所在目錄
	2.列出檔案列表: ls ll dir(*****)
		* ls(list)是一個非常有用的命令,用來顯示當前目錄下的內容。配合引數的使用,能以不同的方式顯示目錄內容。
		* 格式:ls(引數)[路徑或檔名]
		* 常用:
			在Linux中以.開頭的都是隱藏的檔案
			* ls
			* ls -a  顯示所有檔案或目錄  (包含隱藏的檔案)     "-a"表示所有,所以帶上這個表示所有,包括隱藏檔案都要顯示。
			* ls -l  縮寫成ll
	3.建立目錄和移除目錄
		1. mkdir(make directory)命令可用來建立子目錄。
			* mkdir app    在當前目錄下建立app目錄
			* mkdir -p app2/test   級聯建立aap2以及test目錄
		2.rmdir(vimremove directory)命令可用來刪除"空"的子目錄:		->只能刪除空目錄
			* rmdir app    刪除app目錄		 rmdir -p test1/test2   刪除多級目錄
	4.瀏覽檔案    只能檢視文字檔案
		1.cat
			* 用於顯示檔案的內容
			* 格式: cat[引數]<檔名>
			* cat yum.conf
		2.more
			* 一般用於要顯示的內容會超過一個畫面長度的情況。按空格鍵顯示下一個畫面。
			* 回車顯示下一行內容
			* 按q鍵退出檢視
			* more yum.conf
			* 空格顯示下一頁資料   回車顯示下一行的資料。
		3.less
			* 用法和more類似,不同的是less可以通過Pgup、PgDn鍵來控制。
			* less yum.conf
			* Pgup和PgDn進行上下翻頁。
		4.tail
			* tail命令是在實際使用過程中使用非常多的一個命令,它的功能是:用於顯示檔案後幾行的內容。
			* 用法:
				* tail -10/etc/passwd     檢視後10行資料
				* tail -f catalina.log    動態檢視日誌   這個非常有用  tail -f   可以動態的檢視日誌
		5.ctrl + c  結束
	5.檔案操作
		1.rm
			1.rm  刪除檔案
				* 用法:rm[選項]...[檔案]...
					* rm a.txt     刪除a.txt檔案
			2.rm 刪除不詢問
				* rm -f a.txt   不詢問,直接刪除a.txt檔案。
			3.rm 刪除目錄
				* rm -r a  遞迴刪除
			4.rm 不詢問遞迴刪除(慎用)
				* rm -rf a 不詢問遞迴刪除
				* rm -rf * 刪除所有檔案
				* rm -rf /* 自殺
	
		2.cp、mv
			1.cp(copy)命令可以將檔案從一處複製到另一處。一般在使用cp命令時將一個檔案複製成另一個檔案或複製到某目錄時,需要指定原始檔名與目標檔名或目錄。
				* cp a.txt b.txt   將a.txt複製為b.txt檔案
				* cp a.txt  ../   將a.txt複製到上一層目錄中
			2.mv 移動或者重新命名
				* mv a.txt  ../  將a.txt 檔案移動到上一層目錄中
					* mv a.txt aaa/  將a.txt檔案移動到當前目錄中aaa目錄內。
				* mv a.txt  b.txt  將a.txt檔案重新命名為b.txt   (所以重新命名的命令也就是這個)
		3.tar  (*****打包或解壓)
			1.tar 命令位於/bin目錄下,它能夠將使用者所指定的檔案或目錄打包成一個檔案,但不做壓縮。一般Linux上常用的壓縮方式是選用tar將許多檔案打包成一個檔案,再以gzip壓縮命令壓縮成xxx.tar.gz(或稱為xxx.tgz)的檔案。
			2.常用引數:
				* -c  建立一個新tar檔案
				* -v  顯示執行過程的資訊
				* -f  指定檔名
				* -z  呼叫gzip壓縮命令進行壓縮
				* -t  檢視壓縮檔案的內容
				* -x  解開tar檔案
			3.打包:
				* tar -cvf xxx.tar ./*
			4.打包並且壓縮:
				* tar -zcvf xxx.tar.gz ./*        只有gz帶上了代表了壓縮。
			5.解壓:
				* tar -xvf xxx.tar
				* tar -xvf xxx.tar.gz -C /usr/aaa
			6.grep  命令			-- 後期可以配合精確查詢,使用較多。
				* 檢視符合條件的字串
				* 用法:grep[選項]...PATTERN [FILE]...
				* 示例:
					* grep lang anaconda-ks.cfg   在檔案中查詢lang
					* grep lang anaconda-ks.cfg  -color 高亮顯示
					* A5  在含有關鍵字的前五行也顯示  After
					* B3  在含有關鍵字的後五行也顯示  Before
					* --color  高亮顯示關鍵字
					* 程式碼演示:
					* grep debug yun.conf --color -A4 -B5  :查詢高亮顯示關鍵字"debug"並且包含它的前四行,後五行一併顯示。
			7.注意:工作中使用這種方式:
				* tar -czvf xxxx.tar.gz 目錄			壓縮
				* tar -xzvf xxxx.tar.gz				解壓
	6.其他常用命令:
		1.pwd: 顯示當前所在目錄
		2.touch: 建立一個空檔案  * touch a.txt
		3.ll-h: 友好顯示檔案大小
		4.wget:下載資料:  
			* 程式碼演示:wget http://nginx.org/download/nginx-1.9.12.tar.gz
			* wget 下載地址

Vi和Vim編輯器

	* 在Linux下一班使用vi編輯器來編輯檔案
	* vi既可以檢視檔案也可以編輯檔案
	* 三種模式:命令列、插入、底行模式。
		* 切換到命令列模式:按ESC鍵
		* 切換到插入模式:按i、o、a鍵
			* i 在當前位置生前插入
			* I 在當前行首插入
			* a 在當前位置後插入
			* A 在當前行尾插入
			* o 在當前行之後插入一行
			* O 在當前行之前插入一行
		* 切換到底行模式:按:(冒號)
	* 更多詳細方法,查詢文件《Vim命令合集.docx》和《vi使用方法詳細介紹.docx》
	* 開啟檔案:vim file
	* 退出: esc  -> :q
	* 修改檔案:輸入i 進入插入模式
	* 儲存並退出 esc -> :wq
	* 不儲存退出: esc -> :q!
	* 3 進入插入模式
	* i 在當前的游標所在處插入   insert
	* o 在當前游標所在的行的下一行插入		
	* a 在游標所在的下一個字元插入		after
	* 快捷鍵:
		* dd - 快速刪除一行
		* R - 替換
		* 在做命令的時候如果在插入模式需要按esc退出插入模式。
4.重定向和輸出
	* >  覆蓋  ifconfig > a.txt   將a.txt 中的原有內容清除,將ifconfig的資訊覆蓋列印進a.txt;
	* >> 追加  ifconfig >> a.txt 保留a.txt中的原有內容,將ifconfig的內容追加進去。
	* cat /etc/passwd >> a.txt 輸出並追加
4. 管道 |
	* 管道是Linux命令中重要的一個概念,其作用是將一個命令的輸出用作另一個命令的輸入。
	* 示例:
		* ls --help | more   分頁查詢幫助資訊
		* ps -ef | grep java   查詢名稱中包含java的程序
		* ifconfig | more  
		* cat index.html |more
		* ps -ef | grep aio
5. && 命令執行控制
	* 命令之間使用&&連線,實現邏輯與的功能
	* 只有在&& 左邊的命令返回true(真)(命令返回值$?==0),&& 右邊的命令才會被執行。
	* 只要有一個命令返回假(命令返回值$?==1),後邊的命令就不會被執行。類似於java中的短路,&&
	* mkdir test&& cd test
6. 網路通訊明明令:
	* ifconfig:顯示或設定網路裝置
		* ifconfig:顯示網路裝置
		* ifconfig eth0 up 啟用eth0網絡卡
		* ifconfig eth0 down 停用eth0 網絡卡
	* ping 探測網路是否通暢
		* ping 192.168.0.1
	* netstat 檢視網路埠
		* netstat -an | grep 3306 查詢3306端口占用情況
7.系統管理命令
	* date顯示或設定系統時間
		* date 顯示當前系統時間
		* date -s "2014-01-01 10:10:10"  設定系統時間
	* df 顯示磁碟資訊
		* df -h 友好顯示大小
	* free 顯示記憶體狀態
		* free -m 以mb單位顯示記憶體租昂頭
	* top 顯示,管理執行中的程式
	* clear 清螢幕
	* ps 正在執行的某個程序的狀態
		* ps 查詢正在執行的程序
		* ps -ef  檢視所有程序
		* ps -ef | grep ssh 查詢某一程序    ps -ef | grep 服務名稱
	* kill 殺掉某一程序
		* kill 2868 殺掉2868編號的程序
		* kill -9 2868 強制殺死程序
	* du 顯示目錄或檔案的大小。
		* du  顯示當前目錄的大小
		* du -h 友好顯示當前目錄的大小
	* who 顯示目前登入系統的使用者資訊
	* hostname 檢視當前主機名
		* 修改:vi/etc/sysconfig/network
	* uname 顯示系統資訊
		* uname -a 顯示本機詳細資訊  檢視linux核心版本
		* 依次為:核心名稱(類別),主機名,核心版本號,核心版本,核心編譯日期,硬體名,處理器型別,硬體平臺型別,作業系統名稱。

Linux的使用者和組

1.使用者的管理
	* useradd 新增一個使用者
		* useradd test 新增test使用者
		* useradd test -d /home/t1  指定使用者home目錄 
		* 新增使用者一定要設定密碼
	* passwd 設定、修改密碼
		* passwd test 為test使用者設定密碼
	* 切換登入
		* ssh -1 test -p 22 192.168.19.128
		* su -使用者名稱
		* userdel 刪除一個使用者
			* userdel test 刪除test使用者(不會刪除home目錄)
			* userdel -r test 刪除使用者以及home目錄
2.組管理
	* 當在建立一個新使用者user時,若沒有指定他所屬於的組,就建立一個和該使用者同名的組。
	* 建立使用者時也可以指定所在組
	* groupadd 建立組
		* groupadd public 建立一個名為public的組
		* useradd ul -g public建立使用者指定組
	* groupdel 刪除組,如果該組有使用者成員,必須先刪除使用者才能刪除組。
	* groupdel public
3.id 、su 命令
	* id命令
		* 功能:檢視一個使用者的UID和GID
		* 用法:id[選項]...[使用者名稱]
		* 直接使用id
		* 直接使用id使用者名稱
	* su命令
		* 功能:切換使用者
		* 使用者:su[選項]...[-] [使用者[引數]...]
		* 示例:
			* su ul 切換到ul使用者
			* su - ul 切換到ul使用者,並且將環境也切換到ul使用者的環境(推薦使用)
	* 賬戶檔案
		* /etc/passwd 使用者檔案
		* /etc/shadow 密碼檔案
		* /etc/group 組資訊檔案
	* 使用者檔案
		* root:x:0:0:root:/root:/bin/bash
		* 賬號名稱:在系統中是唯一的
		* 使用者密碼:此欄位存放加密口令
		* 使用者標識碼(User ID):系統內部用它來標識使用者
		* 組標識碼(Group ID):系統內部用它來標識使用者屬性
		* 使用者相關資訊: 例如使用者全名等
		* 使用者目錄:使用者登入系統後所進入的目錄
		* 使用者環境:使用者的工作的環境
	* 密碼檔案
		* shadow 檔案中每條記錄用冒號間隔的9個欄位組成。
		* 使用者名稱:使用者登入到系統時使用的名字,而且是唯一的。
		* 口令:存放加密的口令。
		* 最後一次修改時間:標識從某一時刻起到使用者最後一次修改時間
		* 最大時間間隔:口令保持有效的最大天數,即多少天后必須修改口令
		* 最小時間間隔:再次修改口令之間的最小間隔
		* 警告時間:從系統開始警告道口令正式失效的天數
		* 不活動時間:口令過期多少天后,該賬號被禁用
		* 失效時間:指示口令失效的絕對天數(從1970年1月1日開始計算)
		* 標誌:未使用
	* 組檔案
		* root:x:0;
		* 組名:使用者所屬組
		* 組口令:一般不用
		* GID:組ID
		* 使用者列表:屬於該組的所有使用者

Linux的許可權命令

1.檔案許可權
	* 讀取權:r
	* 寫入權:w
	* 執行權:x
	* 檔案型別: -
	* 前三:屬主許可權
	* 中間:屬組許可權
	* 最後:其他使用者許可權
2.Linux的三種檔案型別:
	1. 普通檔案:包括文字檔案、資料檔案、可執行的二進位制程式檔案等。
	2. 目錄檔案:Linux系統把目錄看成是一種特殊的檔案,利用它構成檔案系統的樹型結構。
	3. 裝置檔案:Linux系統把每一個裝置都看成是一個檔案
3.檔案型別標識
	* 普通檔案: -
	* 目錄 d
	* 符號連結 (1)
		* 筋肉etc可以檢視,相當於快捷方式
	* 字元裝置檔案 (c)
	* 塊裝置檔案 (s)
	* 套接字 (s)
	* 命名管道 (p)
4.檔案許可權管理
	* chmod 變更檔案或目錄的許可權
		* chmod 755 a.txt
		* chmod u=rwx,g=rx,o=rx a.txt
		* chmod 000 a.txt / chmod 777 a.txt
	* chown 變更檔案或目錄改檔案所屬使用者和組
		* chown ul:public a.txt : 變更當前的目錄或檔案的所屬使用者和組
		* chown -R ul:public dir: 變更目錄中的所有的子目錄及檔案的所屬使用者和組







考認證:
	* rchea
打包:
	* java工程可以打包成jar包
	* web工程可以打包成war包
	* Linux中執行需要將tomcat內的檔案刪除再重新加入進去,有漏洞,安全問題。容易被黑。
	* jstl的jar包需要重新換,sta...d.jar 和另外一個,不然在Linux中無法執行。