Linux是一個自由的,免費的,源碼開放的操做系統。也是開源軟件中最著名的例子。其最主要的目的就是爲了創建不受任何商品化軟件版權制約的,全世界都能使用的類Unix兼容產品.而咱們將服務器部署在Linux將會更加的穩定、安全、高效以及出色的性能這時windows沒法比的。html
1.2.Linux做者前端
林納斯·本納第克特·託瓦茲(Linus Benedict Torvalds, 1969年~ ),著名的電腦程序員、黑客。Linux內核的發明人及該計劃的合做者。託瓦茲利用我的時間及器材創造出了這套當今全球最流行的操做系統(做業系統)內核之一。現受聘于開放源代碼開發實驗室(OSDL:Open Source Development Labs, Inc),全力開發Linux內核。java
1.3.Linux 發行版python
發行版是基於 Linux 內核的一個操做系統。它帶有用戶可使用的軟件集合。更多的,它還包含系統管理包。目前有許多 Linux 發行版。由於咱們不能數清目前全部的 Linux 發行版,因此咱們來看一下一些有名的版本: Ubuntu、Fedora、Opensuse、Red hat Linux 和 Debian 等是幾個很是受歡迎的 Linux 發行版。linux
開放性,多用戶,多任務,豐富的網絡功能,可靠的系統安全,良好的可移植性,具備標準兼容性程序員
大多數服務器的容量(CPU,內存,磁盤等)利用率不足 30%,這不只致使了資源浪費,也加大了服務器的數量。實現服務器虛擬化後,多個操做系統能夠做爲虛擬機在單臺物理服務器上運行,而且每一個操做系統均可以訪問底層服務器的計算資源,從而解決效率低下問題。web
Vmware虛擬機化技術由此誕生,它能夠將一臺服務器虛擬化出多臺虛擬機,供多人同時使用,提升資源利用率。正則表達式
詳細見vmware安裝文檔shell
詳細參照網上教程,不少
apache
1.編輯配置文件,添加修改如下內容
vi /etc/sysconfig/network-scripts/ifcfg-eth0
按i 進入文本編輯模式,出現遊標,左下角會出現INSERT,便可以編輯
應包含如下配置,
DEVICE=eth0 #網卡設備名,請勿修更名字
TYPE=Ethernet #網絡類型,以太網
BOOTPROTO=static #啓用靜態IP地址
ONBOOT=yes #開啓自動啓用網絡鏈接
IPADDR=192.168.78.100 #設置IP地址
NETMASK=255.255.255.0 #設置子網掩碼
GATEWAY=192.168.78.2 #設置網關
DNS1=114.114.114.114 #設置備DNS
按ESC退出編輯模式
:wq #保存退出
2.修改完後執行如下命令
service network restart #重啓網絡鏈接
ifconfig #查看IP地址
3.驗證是否配置成功:
虛擬機能ping通虛擬網關
虛擬機與物理機(筆記本)相互可ping通
虛擬機與公網上的百度網址相互可ping通(此步ping通,才說明網絡配置成功,Ctrl鍵+C中止)
命令:ping www.baidu.com
注意:
a.保證VMware的虛擬網卡沒有被禁用
b.網關IP不能被佔用
除了安裝路徑須要修改,其餘一直下一步。
1. 打開xshell軟件新建一個會話
2. 填寫所要鏈接的虛擬機IP,會話名稱可改可不改,點擊肯定。
3.鏈接虛擬機。
4.輸入root用戶名,能夠勾選」記住用戶名」
5.填寫密碼,能夠勾選「記住密碼」
6.登陸成功。
Linux文件系統中的文件是數據的集合,文件系統不只包含着文件中的數據並且還有文件系統的結構,全部Linux 用戶和程序看到的文件、目錄、軟鏈接及文件保護信息等都存儲在其中。
Linux目錄結構:
bin 存放二進制可執行文件(ls,cat,mkdir等)
boot 存放用於系統引導時使用的各類文件
dev 用於存放設備文件
etc 存放系統配置文件
home 存放全部用戶文件的根目錄
lib 存放跟文件系統中的程序運行所須要的共享庫及內核模塊
mnt 系統管理員安裝臨時文件系統的安裝點
opt 額外安裝的可選應用程序包所放置的位置
proc 虛擬文件系統,存放當前內存的映射
root 超級用戶目錄
sbin 存放二進制可執行文件,只有root才能訪問
tmp 用於存放各類臨時文件
usr 用於存放系統應用程序,比較重要的目錄/usr/local 本地管理員軟件安裝目錄
var 用於存放運行時須要改變數據的文件
命令:cd + 目錄的路徑
查看當前目錄的完整路徑 :pwd
命令 cd .. 返回到父目錄
3.1.2新建目錄
命令:mkdir + 目錄名字
查看當前目錄下擁有的子目錄和文件: ls
3.1.3拷貝目錄
cp source dest -r
3.1.4刪除目錄
rmdir directory
注意:rmdir只能刪除空目錄,若要刪除非空目錄則用rm命令
rm -rf dir
移動文件或目錄:mv + 目錄/文件名字 + 其餘路徑
mv test / 將test目錄移動到 根目錄/ 下
更改文件或目錄的名字:mv + 舊目錄名字 + 新目錄名字。
3.2.文件操做
touch web.log 建立一個空文件。
3.2.2 複製文件
cp web.log web_cp.log
複製文件,加個-r 參數,表明遍歷複製,此時可用於複製一個目錄。
rm web_cp.log
此時須要手動輸入y ,表明確認刪除。可加 –f參數,直接刪除,無需確認。當須要一個目錄下全部東西時,加-r參數,表明遍歷刪除。
rm -f web.log
3.2.4 查看
ls / ll
命令 ls -l 等價於 ll
查看目錄下的全部東西(包括隱藏文件)
命令:ls –al 等價於 ll –a
3.2.4.2查看文件內容
cat filename: 一次性顯示整個文件的內容
注意:當文件較大時,文本在屏幕上迅速閃過(滾屏),用戶每每看不清所顯示的內容。
所以,通常用more等命令分屏顯示.
more filename 該命令一次顯示一屏文本,滿屏後停下來,而且在屏幕的底部出現一個提示信息,給出至今己顯示的該文件的百分比。
按Space鍵,顯示文本的下一屏內容。
按Enier鍵,只顯示文本的下一行內容。
按B鍵,顯示上一屏內容。
按Q鍵,退出。
less命令 與 more命令 很是相似
less filename:
h 顯示幫助界面
Q 退出less 命令
u 向後滾動半頁
d 向前翻半頁
空格鍵 滾動一頁
b 向後翻一頁
回車鍵 滾動一行
[pagedown]: 向下翻動一頁
[pageup]: 向上翻動一頁
以及上下鍵,向上一行,向下一行
3.2.4.3從頭打印文件內容
head -10 filename 打印文件1到10行
3.2.4.4從尾部打印文件內容
tail -10 filename 打印文件最後10行
注意:tail 還常常能夠拿來查看文件的內容變化
加-f參數,tail –f filename
find pathname –name filename
例子:find / -name profile
該命令表示爲,在/目錄下查找 名字爲profile的文件或目錄,最後列出它的絕對路徑
最後發現,linux系統根目錄/ 下 一共有兩個名字爲profile,其中/etc/profile是一個文件,/etc/lvm/profile爲目錄
還能夠按正則表達式來查找,且pathname越精確,查找的範圍越小,速度越快。
find /etc -name pro*
該命令表示爲:在/etc目錄下查找以pro開頭的文件或目錄。
4、文本編輯
編輯模式
vi filename :打開或新建文件,並將光標置於第一行首
vi +n filename :打開文件,並將光標置於第n行首
vi + filename :打開文件,並將光標置於最後一行首
vi +/pattern filename:打開文件,並將光標置於第一個與 pattern匹配的串處
命令行模式
• w保存
• q退出
• q!:不保存文件並退出vi
– 在VI的命令模式下輸入「:set nu」,就有行號了。
– 在VI的命令模式下輸入「:set nonu」,取消行號。
通常模式
• yy 複製光標所在行(經常使用)
• nyy 複製光標所在行的向下n行,例如, 20yy則是複製20行(經常使用)
• p,P p爲複製的數據粘貼在光標下一行, P則爲粘貼在光標上一行(經常使用)
G:光標移至第最後一行
nG:光標移動至第N行行首
n+:光標下移n行
n-:光標上移n行
H :光標移至屏幕頂行
M :光標移至屏幕中間行
L :光標移至屏幕最後行
• dd:刪除 行
x或X:刪除一個字符,x刪除光標後的,而X刪除光標前的
• u 恢復前一個動做(經常使用)
刪除第N行到第M行:
:N,Md
Vim是從 vi 發展出來的一個文本編輯器。代碼補完、語法高亮、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被普遍使用.
安裝vim 軟件
yum install vim
按y確認, 這中間一共要按兩次確認
能夠在書寫命令時就加y,這樣就不用逐一確認。
yum install vim -y
用vim 打開/etc/profile 文件,會發現編輯器對文本的內容進行了高亮,使整個文件的內容可讀性大大增強
命令:vim /etc/profile
scp local_file remote_username@remote_ip:remote_folder
第一次遠程拷貝時,須要在箭頭1初輸入yes確認一下,驗證一下遠程主機。而後在箭頭2處輸入一下遠程主機的密碼。
5.1.2將本地目錄複製到遠程機器
scp -r local_folder remote_username@remote_ip:remote_folder
在test目錄下建立一個myfile文件,而後將test目錄遠程拷貝到192虛擬機的根目錄下。
5.2.上傳
需先安裝好lrzsz : yum install lrzsz -y
安裝好後,輸入上傳的命令rz,彈出一下界面:
選擇一個windows系統裏的文件上傳至虛擬機的當前目錄下,而後ll命令,查看結果
下載命令爲sz,sz命令只能下載文件,不能是目錄,可先將目錄壓縮成一個包,再下載至windows系統。下載完以後,按ctrl+c結束。
除了能夠用rz sz命令進行本地windows系統和虛擬機之間的文件傳輸,還可使用XFTP軟件。
命令:ifconfig
箭頭1指向的是本機IP,箭頭2爲廣播地址,箭頭3位子網掩碼。
命令:ping remote_ip
輸入ping 192.168.78.192表明測試本機和192主機的網絡狀況,箭頭1表示一共接收到了3個包,箭頭2表示丟包率爲0,表示二者之間的網絡順暢。注意:linux系統的ping命令會一直髮送數據包,進行測試,除非認爲的按ctrl + c中止掉,windows系統默認只會發4個包進行測試,如下爲windows的dos命令。
命令:netstat
-a (all)顯示全部選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的所有轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示創建相關連接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。
提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到
若要修改主機名字,可在/etc/sysconfig/network文件裏修改.
vim /etc/sysconfig/network
機器重啓才能生效
hosts文件的做用至關於DNS,提供IP地址hostname的對應,可在這個文件裏添加映射。域名解析
vi /etc/hosts
測試:直接ping 主機名
/etc/resolv.conf 爲DNS服務器的地址文件
Linux系統的環境變量是在/etc/profile文件裏配置。
首先考慮一個問題,問什麼咱們先前敲的yum, service,date,useradd等等,能夠直接使用,系統怎麼知道這些命令對應的程序是放在哪裏的呢?
這是因爲不管是windows系統仍是linux系統,都有一個叫作path的系統環境變量,當咱們在敲命令時,系統會到path對應的目錄下尋找,找到的話就會執行,找不到就會報沒有這個命令。以下圖:
咱們能夠查看一下,系統一共在哪些目錄裏尋找命令對應的程序。
命令:echo $path
能夠看到path裏有不少路徑,路徑之間有冒號隔開。當用戶敲命令時,系統會從左往右依次尋找對應的程序,有的話則運行該程序,沒有的就報錯,command not found.
那若是我寫了一個腳本(腳本後面會專門講),我該怎樣運行它呢?
對test.sh添加可執行權限,chmod 700 test.sh
運行方法有三種:
一種是到腳本的目錄下執行:
運行命令 : ./test.sh ,表明執行當前目錄裏的腳本test.sh
一種是敲腳本的絕對路徑:/usr/test/test.sh
以上兩種運行方式都不是很簡便,由於先前咱們執行yum service命令等,都是直接敲對應的命令的。因此咱們也能夠參照這樣子作,只要咱們配一個環境變量就好。
編輯: vim /etc/profile 將test.sh所在目錄添加到path裏就OK,我這裏test.sh是在/usr/test目錄下。
編輯完以後,執行source /etc/profile命令,從新加載環境變量,此時會發現PATH路徑多了一個/usr/test。
最後驗證一下,直接執行test.sh
命令:chkconfig
查詢操做系統在每個執行等級中會執行哪些系統服務,其中包括各種常駐服務。
各數字表明的系統初始化級別含義:
0:停機狀態
1:單用戶模式,root帳戶進行操做
2:多用戶,不能使用net file system,通常不多用
3:徹底多用戶,一部分啓動,一部分不啓動,命令行界面
4:未使用、未定義的保留模式
5:圖形化,3級別中啓動的進程都啓動,而且會啓動一部分圖形界面進程。
6:中止全部進程,卸載文件系統,從新啓動(reboot)
這些級別中一、二、4不多用,相對而言0、三、五、6用的會較多。3級別和5級別除了桌面相關的進程外沒有什麼區別。爲了減小資源佔用,推薦都用3級別.
注意 :linux默認級別爲3,不要把initdefault 設置爲0 和 6
service 服務名 start/stop/status/restart
例子:對防火牆服務進行操做,防火牆的服務名爲:iptables.
查看防火牆服務運行狀態。
關閉防火牆.
開啓防火牆
service iptables start/stop/status
注:學習期間直接把防火牆關掉就是,工做期間也是運維人員來負責防火牆的。
chkconfig --level 2345 name off|on
若不加級別,默認是2345級別
命令:chkconfig name on|off
命令: ps -aux
-a 列出全部
-u 列出用戶
-x 詳細列出,如cpu、內存等
- e
-f
命令: ps - ef | grep ssh
查看全部進程裏CMD是ssh 的進程信息。
其中箭頭所指的是sshd服務進程的進程號(PID)
Kill
用法 kill pid
-9:強制殺死
ps 命令先查出對應程序的PID或PPID ,而後殺死掉進程。
10、 其餘經常使用命令
yum是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件包,無須繁瑣地一次次下載、安裝。
因爲centos系統的yum默認是到國外網站下載,有時下載速度會很慢,故咱們能夠換一個yum的下載源,這裏咱們換一個國內的下載源 阿里雲鏡像。
第一步:備份你的原鏡像文件,以避免出錯後能夠恢復。
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步:下載新的CentOS-Base.rep到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
下載完以後,vim /etc/yum.repos.d/CentOS-Base.repo 查看一下文件內容。
第三步:運行yum makecache生成緩存
查看當前源
yum list | head -50
10.2 wget
wget 是一個從網絡上自動下載文件的自由工具,支持經過 HTTP、HTTPS、FTP 三個最多見的 TCP/IP協議 下載,並可使用 HTTP 代理
需先安裝 yum install wget –y
wget用法:wget [option] 網址 -O 指定下載保存的路徑
wget 工具還能夠用來作一些簡單的爬蟲,這裏不是咱們的學習重點,若是想作爬蟲,能夠用java或python語言來作。
10.3 tar包
tar
-z gzip進行解壓或壓縮,帶.gz須要加,壓縮出來.gz也須要加
-x 解壓
-c 壓縮
-f 目標文件,壓縮文件新命名或解壓文件名
-v 解壓縮過程信息打印
解壓命令:tar -zvxf xxxx.tar.gz
例子:先用rz命令或wscp上傳一個tar包,而後解壓。
解壓後:
壓縮命令:tar -zcf 壓縮包命名 壓縮目標
例子:tar -zcf tomcat.tar.gz apache-tomcat-7.0.61
將 apache-tomcat-7.0.61 目錄壓縮成tomcat.tar.gz包。
11、JDK部署
http://www.oracle.com/technetwork/java/javase/downloads/index.html
用wscp將jdk包上傳到linux系統裏,我這裏上傳到/usr/soft目錄下。
而後解壓: tar -zxf jdk-7u80-linux-x64.tar.gz
配置全局JAVA_HOME,並在path路徑里加入java_home/bin.
注意:新的path路徑必需要包含舊的path路徑,且每一個路徑之間以冒號隔開,而不是分號
vim /etc/profile
JAVA_HOME= /usr/soft/jdk1.7.0_75
PATH=$PATH:$JAVA_HOME/bin
從新加載環境變量:source /etc/profile
java -version
如出現上圖,則表示java環境變量配置成功。
下載tomcat
我這裏上傳至/usr/soft目錄下,而後解壓。
在tomcat的bin目錄下有個startup.sh 腳本能夠直接啓動tomcat服務
關閉tomcat服務,能夠用shutdown.sh命令。
或者ps -ef | grep tomcat 查看出tomcat進程號後,用kill命令。
jps是JDK 1.5提供的一個顯示當前全部java進程pid的命令,簡單實用,很是適合在linux/unix平臺上簡單察看當前java進程的一些簡單狀況。
如上圖所示,jps命令顯示出了,系統當前運行在jvm上的進程狀況。其中Bootstrap是tomcat的進程名字,1996是tomcat的PID
先把防火牆關了,而後訪問虛擬機IP的8080端口