** 多使用者多工作業系統_Linux [web基礎day25] *
阿新 • • 發佈:2019-01-02
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中無法執行。