學習目標
-
能夠獨立搭建Linux環境
-
能夠安裝SSH Secure客戶端連接Linux
-
能夠使用Linux進行目錄操作的命令
-
能夠使用Linux進行文件操作的命令
-
能夠使用Linux進行目錄文件壓縮和解壓的命令
-
能夠使用Linux進行目錄文件權限的命令
-
能夠使用其它常用的Linux命令
學習Linux的目的
對於windows操作系統而言,大家應該不陌生,這裏我列舉一些windows的不足:
-
個人用戶正版windows需要收費
-
系統長時間運行不穩定,變慢,容易死機
-
windows常招到病毒攻擊
相反,上述windows的不足,恰好是另一款操作系統Linux的優勢所在,這裏我也列舉一些Linux的優點:
-
個人用戶正版Linux不需要收費或安裝特殊功能需要收費
-
系統長時間運行穩定(全字符界面),不會變慢,不容易死機
-
Linux不常招到病毒攻擊,也很難攻擊
總之,做爲一個後端JavaEE程序員,在windows中開發完程序後,得部署到一個相對比較安全穩定的服務器中運行,這臺服務器上安裝的不是windows操作系統,而是Linux操作系統。
爲了順利的操作Linux操作系統,我們得學會:安裝Linux操作系統,對目錄,文件,權限等基本操作命令,所以學會對Linux操作系統的基本操作是後端JavaEE程序員的必修課。
Linux的概念
linux系統是企業內部核心人員玩的,和架構師玩的。這是站在軟件和硬件角度思考問題。運維人員也玩linux,但是他們不懂代碼技術,也就是站在硬件角度思考問題。
-
Linux是基於Unix的開源免費,多用戶,用任務的操作系統,由於系統的穩定性和安全性幾乎成爲程序代碼運行的最佳系統環境。
-
軟件安裝在windows上是直接可以連外網的
-
軟件安裝在linux系統上是不可以直接連外網的,爲了安全。
Linux的分類
根據市場需求不同,分爲兩個方向
- 圖形化界面版:注重用戶體驗,但目前成熟度不夠。安卓手機就是使用linux系統。
- 服務器版(推薦):字符界面。是以在控制檯窗口中輸入命令操作系統的,是我們架設服務器的最佳選擇,類似於DOS界面。
根據原生程度不同,分爲兩個方向
-
內核版本:在Linux之父領導下的內核小組開發維護的系統內核的版本號。
-
發行版本:一些個人/組織/公司在內核版基礎上進行二次開發而重新發行的版本號。
根據發行不同,分爲多個版本
-
ubuntu,擅長界面方面
-
redhat,企業版的收費版本,基礎已有功能不收費,但是系統維護升級和定製功能收費
-
centos,免費的,它是redhat源碼編譯過來的。
-
lubuntu
-
freeBSD
-
等等
Linux的安裝
linux是個操作系統,與windows系統是平級的。
我們今天安裝的是:服務器版 + 發行版 + CentOS版
安裝linux系統方式:
方式一:電腦是可以雙系統運行的,在電腦開啓的時候會引導你,讓你選擇進入哪個操作系統。但是不建議一個電腦裝多個系統,因爲電腦會不穩定。
方式二(推薦):使用虛擬機。虛擬機就是一個windows系統上的軟件,這個軟件完全可以模擬一臺電腦,我們可以在模擬的電腦上裝linux系統,這樣就可以了
虛擬機簡介
虛擬機是一個軟件,它可以使你在一臺真實PC機器上同時運行二個或更多window /linux等操作系統。它可以模擬一個標準PC環境。這個環境和真實的計算機一樣,都有芯片組、CPU、內存、顯卡、聲卡、網卡、軟驅、硬盤、光驅、串口、並口、USB控制器。
目前市場上流行的虛擬機有兩種:
-
VMware(威睿)公司的虛擬機軟件,功能強大,收費產品,有30天試用期
-
VitrualBox (甲骨文)公司的虛擬機軟件,免費商品
安裝Virtual Box虛擬機
參見<< 01_安裝VirtualBox步驟.pdf >>
參見<< 02_在Virtual Box中創建虛擬機步驟.pdf >>
這裏注意virtualbox創建虛擬機前需要電腦啓動BIOS的虛擬化設置 | 開啓CPU虛擬化支持(最近新買的電腦應該不用配置這一項,因爲最近生產的電腦默認已經設置了)
1、進入到BIOS後,找到Configuration選項或者Security選項,然後選擇Virtualization,或者Intel
Virtual Technology,就可以開始你的操作了。
2、然後回車,將其值設置成:設置爲Enabled。
3、再然後,按下F10就是保存BIOS設置,重啓計算機。
安裝CentOS 7.0系統
參見<< 03_在虛擬機中安裝CentOS 7.0步驟.pdf>>
1.新建系統
- 設置linux系統內存
- 下一步
- 設置默認硬盤空間,使用默認8G
- 啓動虛擬電腦
選擇iso鏡像文件安裝centos系統,選擇下面的第一個“install Centos7”
選擇語言
點擊軟件選擇
選擇安裝基本網頁服務器-開發工具
設置網絡主機名
如下圖操作,開啓網卡
選擇安裝位置進入後,直接點擊完成就可以看到“開始安裝”按鈕,並點擊
設置root密碼,點擊完成,系統就一直在安裝操作系統,安裝完成後讓你
重啓,進入系統
此時linux操作系統式沒有網卡的,配置網卡,需要首先關閉虛擬機當前電腦
創建虛擬機Host-only的網卡(局域網)
配置網卡1,外網網卡
配置網卡2:局域網網卡
重新啓動虛擬機電腦。
進入系統後,使用ifconfig查看網卡信息
檢查是否可以上外網,使用命令,ping www.itcast.cn,可以拼的通的效果如下
使用客戶端工具連接linux系統使用
SSH Secure簡介
在實際開發中,Linux服務器都在其他的地方,我們要通過windows客戶端工具遠程去連接Linux並操作它,連接Linux的windows客戶端工具有很多,企業中常用的有Putty、secureCRT、SSH、Secure,xshell等。
我們使用xshell和xftp客戶端工具進行連接Linux操作系統,該工具圖像化界面更加友好。
安裝SSH Secure
參見<< 04_安裝SSH Secure 步驟.pdf>>
用SSH Secure連接CentOS
SSH Secure Shell Client,用於連接linux系統,執行命令
SSH Secure File Transfer Client,用於windows系統與linux系統傳輸文件
參見<< 05_SSH Secure客戶端連接CentOS步驟.pdf >>
SSH Secure Shell Client 軟件,用於連接linux系統可以執行linux命令的客戶端界面
SSH Secure File Transfer Client 用於windows與linux系統傳輸文件的FTP工具
Xshell 5 類似於SSH Secure Shell Client軟件,用於連接linux系統可以執行linux命令的客戶端界面
xftp,類似於SSH Secure File Transfer Client,用於windows與linux系統傳輸文件的FTP工具
Linux 的目錄結構
上述Linux目錄結構中,請大家關注:
-
root目錄:超級管理員所在的主目錄,用~表示
-
home目錄:普通用戶所在的目錄
-
usr(user share resources)目錄:用戶共享目錄,只要將軟件安裝到共享目錄,所有用戶可以共享了。
-
etc目錄:Linux系統管理和配置文件所在的目錄
目錄操作
增加
語法:mkdir 目錄
創建目錄
命令:
cd / 定位於根目錄 cd和/之間有空格
mkdir aaa 在當前目錄下創建aaa目錄,相對路徑
cd aaa 移動到aaa文件夾
mkdir ./bbb 在當前目錄下創建bbb目錄,相對路徑
mkdir /ccc 在根目錄下創建ccc目錄,絕對路徑
查看
語法:ls [參數]
查看目錄下的內容
參數解釋:
-
-l 以詳細形式查詢當前目錄下所有文件和目錄,不包括隱藏文件和目錄
-
-a 以精簡形式查詢當前目錄下所有文件和目錄,包括隱藏文件和目錄
命令:
cd /
ls 以精簡形式查詢當前目錄下的內容
ls -l 以詳細形式查詢當前目錄下的內容,d表示目錄,-表示文件
ls -a 以精簡形式查詢當前目錄下的隱藏內容`
ls -la 或者 ll -a 以詳細形式查詢當前目錄下的隱藏內容,la和al都可
clear 清屏
搜索
語法:find 目錄 -name ‘條件’
根據條件,搜索目錄下的內容
命令:
cd /
find / -name 'b' 查詢根目錄下(包括子目錄),名爲b的目錄和文件
find / -name 'b*' 查詢根目錄下(包括子目錄),名以b開頭的目錄和文件
在Linux中,按ctrl+c 強行終止程序執行
修改
語法:mv 舊目錄 新目錄
對目錄進行重命名
命令:
cd /
mv aaa aaaa 將根目錄下的aaa目錄修改爲aaaa
剪切
語法:mv 原目錄位置 新目錄的位置
對目錄進行移動
參數:-f或–force
若目標文件或目錄與現有的文件或目錄重複,則直接覆蓋現有的文件或目錄
命令:
cd /
mv -f cc dd 將cc強制覆蓋剪切到dd裏面
mv /aaaa /bbb
將根目錄下的aaaa目錄,移動到bbb目錄下,在bbb目錄下也叫aaaa目錄
mv bbbb usr/bbbbb
將當前目錄下的bbbb目錄,移動到usr目錄下,且修改名爲bbbbb
總結:mv命令操作目標位置如果存在就是剪切,如果不存在就是重命名
拷貝
語法:cp [參數] 目錄 目錄的新位置
對目錄進行復制
參數解釋:
- -r 遞歸處理,將指定目錄下的文件與子目錄一併處理
命令:
cd / 定位於/目錄
cp -r /aaa /bbb 將/目錄下的aaa目錄複製到/bbb目錄下,在/bbb目錄下名字爲aaa
cp -r /aaa /bbb/aaaa 將/目錄下的aaa目錄複製到/bbb目錄下,且修改名爲aaaa
刪除
語法:rm [參數] 目錄
對目錄進行刪除
參數解釋:
-
-r
遞歸處理,將指定目錄下的所有文件及子目錄一併處理,它會詢問你,y表示是刪除,n表示不刪除。如果子目錄比較多,會詢問很多次。 -
-f 強制刪除目錄,它不會詢問你
命令:
cd /
rm -r /aaa 詢問式刪除/目錄下的aaa目錄,y表示確認,n表示取消
如果aaa目錄中還有子目錄,則進入aaa目錄下的所有子目錄,依次詢問
rm -rf /bbb 強行式刪除/目錄下的bbb目錄
如果bbb目錄中還有子目錄,也會被強行式刪除
文件操作
增加
語法:touch 文件
在指定的目錄中,創建文件
命令:
cd /aaaa 定位於/aaaa目錄
touch a.java 在aaaa目錄中創建a.java文件
touch b.txt 在aaaa目錄中創建b.txt文件
touch c. 在aaaa目錄中創建c.xml文件
查看文件裏面的內容
語法:cat/more/head/tail/less 文件
以只讀方式查看文件的內容
q:退出查看模式
命令:
cd /aaaa
cat命令
cat a.java 查看a.java文件的最後一頁內容
more命令
more a.java
從第一頁開始查看a.java文件內容,按回車鍵一行一行的看,按空格健一頁一頁的看
空格,看下一頁
B,上一屏(不好使)
enter回車,下一行
Q,退出
head a.java 查看a.java文件的前10行內容
tail a.java 查看a.java文件的後10行內容
head -n 7 a.java 查看a.java文件的前7行內容
tail -n 7 a.java 查看a.java文件的後7行內容
less -mN a.java 查看a.java文件,按照分頁和帶有行號查看
空格,下一頁
pgup, 上一頁
pgdn,下一頁
q,退出
-m,分頁
-N,帶有行號
刪除
語法:rm [參數] 文件
從目錄中刪除文件
參數解釋:
-
-r
遞歸處理,對於文件刪除,這個參數可帶,也可不帶,它會詢問你,y表示是刪除,n表示不刪除 -
-f 強制刪除文件,它不會詢問你
命令:
cd /aaaa
rm -rf a.java 強行式刪除當前目錄下的a.java文件
rm -rf ./a* 強行式刪除當前目錄下以a開頭的所有文件(不能玩)
rm -rf ./* 強行式刪除當前目錄下所有文件(不能玩)
修改
修改已存在文件的內容,如果修改不存在文件的內容會創建文件(前提保存)
vi或vim編輯器
linux 下的vi 是一種文字編輯器,後來的升級版本是vim。vi分爲三種模式:一般模式(瀏覽模式)、編輯模式(插入模式)、命令模式。
vi編輯器的使用
語法 :vim 文件
命令:
vim a.java 用vim編輯器打開/創建a.java文件,進入一般模式(瀏覽模式)
按i鍵,進入編輯模式
輸入Java代碼
按esc鍵,進入一般模式
按 Shift : 進行命令模式(底行模式
輸入wq回車,表示存盤退出,輸入q!回車,表示不存盤強行退出
擴展(瀏覽模式一般模式下使用的命令)
i,在光標位置左側插入
a,在光標位置右側插入
o,在光標下一行插入
/,向後查找內容
?,向前查找內容
dd,刪除一行
yy,複製一行
p,粘貼
搜索並修改某個文件
先find查找然後再使用vim編輯器
壓縮
windows的壓縮文件的擴展名: .zip或.rar,zip
Linux中的打包文件擴展名:.tar
Linux中的壓縮文件擴展名:.gz
Linux中打包壓縮的文件擴展名:.tar.gz
這裏首先需要明確兩個概念:打包和壓縮。
打包是指將一大堆文件或目錄合併成一個總的文件;
壓縮則是將一個大容量的文件通過一些壓縮算法(gzip、bzip2等命令)變成一個小容量的文件。Linux/Unix下的壓縮命令通常都只能對一個文件進行壓縮操作,所以通常需要使用tar命令對文件進行打包,然後進行壓縮操作。
打包壓縮包
壓縮語法:tar [參數] 打包壓縮後的文件名 要打包壓縮的文件,支持通配符*號
作用:將多個文件打包並壓縮成一個特定的文件
參數解釋:
-
-c 創建新的歸檔打包文件,壓縮(必選項)
-
-x 取出文件中的內容,解壓(必選項)
-
-f 文件名由命令臺設置,設置壓縮或解壓後的文件名(必選項)
-
-v 顯示執行詳細信息過程(可選項)
-
-z 自動識別壓縮或解壓gz格式文件(可選項)
語法:
tar -zcvf 壓縮文件名 要壓縮的文件或目錄(多個使用空格隔開)
使用步驟:
cd / 定位於/目錄
mkdir aaa 創建aaa目錄
cd aaa 定位於aaa目錄
touch a.java 創建a.java文件
touch b.java 創建b.java文件
touch c.java 創建c.java文件
tar -zcvf zhaojun.tar.gz a.java b.java c.java
或
tar -zcvf zhaojun.tar.gz ./*
將當前目錄下的所有文件打包壓縮成zhaojun.tar.gz文件
用的最多的是:
tar -zcvf zhaojun.tar.gz a.java b.java c.java
或
tar -zcvf zhaojun.tar.gz ./*
解壓壓縮包
解壓語法:tar [參數] 壓縮文件
解壓後的文件在當前目錄中
解壓語法:tar [參數] 壓縮文件 –C /usr/local
解壓後的文件放入/usr/local目錄中,注意-C是大寫字母C,後面不用接空格符
將一個特定的文件解包成多個文件,放在指定的目錄下
例子
tar -zxvf 解壓的壓縮文件名字 -C 解壓後的目錄
參數解釋:
-
-c 創建新的文件(必選項)
-
-x 取出文件中的內容,解壓(必選項)
-
-f 文件名由命令臺設置(必選項)
-
-v 顯示執行詳細信息過程(可選項)
-
-z 自動識別壓縮或解壓gz格式文件(可選項)
命令:
重點:tar -zxvf zhaojun.tar.gz -C/usr/local
cd /soft 定位於/目錄
rm -rf ./*.java 強制式刪除當前目錄下所有擴展名爲java的文件
tar -zxvf zhaojun.tar.gz
解壓zhaojun.tar.gz這個壓縮文件,裏面的文件釋放到當前目錄下
tar -zxvf zhaojun.tar.gz -C/usr/local
解壓zhaojun.tar.gz這個壓縮文件,裏面的文件釋放到/usr/local目錄下
其他
查看當前工作目錄位置
語法:pwd
命令:
cd /
pwd
cd /usr/local
pwd
查看進程
語法:ps [參數]
進程,正在執行的一個應用程序
參數解釋:
-
無 顯示當前用戶通過終端啓動的所有進程
-
-a 顯示所有用戶通過終端啓動的所有進程
-
-u 顯示所有用戶通過終端啓動的所有進程詳細信息
-
-x 顯示所有用戶通過終端和非終端啓動的所有進程詳細信息
-
-e 顯示進程使用的環境變量
-
-f 列出全部進程信息
命令:
cd /
ps 顯示當前用戶通過終端啓動的所有進程
ps a 顯示所有用戶通過終端啓動的所有進程
ps au 顯示所有用戶通過終端啓動的所有進程詳細信息,包括進程號,作者,CPU佔用率等,常用
ps aux 顯示所有用戶通過終端和非終端啓動的所有進程詳細信息
其他常用組合
ps -ef 顯示全部進程,沒有cpu和內存耗用,多個ppid父進程id
ps -aux,顯示全部進程,少了一個ppid父進程id,多了cpu和內存耗用
殺死進程
語法:kill [參數] 進程號
最好只刪當前用戶在終端中啓動的進程,而不要刪除其它用戶的進程,尤其是root用戶的進程。
先用ps au來確認一下當前需要殺死進程號,再用kill 進程號將這個進程殺死
參數解釋
-
無 普通式刪除進程號對應的進程
-
-9 強制式刪除進程號對應的進程
命令:
ps au 顯示所有用戶通過終端啓動的所有進程詳細信息
kill 1114 殺死1114進程號,如果這個1114的進程殺不死,用下面這個命令:
kill -9 1114 強制性殺死1114進程號
案例:
ping www.baidu.com >> ip2.log & ping網絡將輸出信息輸入到ip2.log,&代表後臺運行
ps -aux ,查看進程
kill -9 9786
搜索文本內容
語法:grep [參數] 搜索字符串 文件名
grep是Linux中強大的文本搜索命令。
參數解釋:
-
-n 顯示匹配行及行號,大小寫敏感
-
-v 顯示不匹配行,大小寫敏感
-
-i 搜索時不區分大小寫,大小寫不敏感
命令:
cd /
grep as 123.txt 在123.txt文件中搜索as字符串,大小寫敏感,顯示行
grep -n as 123.txt 在123.txt文件中搜索as字符串,大小寫敏感,顯示行及行號
grep -v as 123.txt 在123.txt文件中搜索as字符串,大小寫敏感,顯示沒搜索到行
grep -i as 123.txt 在123.txt文件中搜索as字符串,大小寫不敏感,顯示行
grep -ni "Q q" 123.txt 在123.txt文件中搜索Q q字符串,大小寫不敏感,顯示行及行號
管道
語法:
命名1 | 命令2
介紹:
上面“|”就是管道
一個命令的輸出,可以作爲另一個命令的輸入,至少有二個命令參與執行。
常用的需要使用管道命令有more ,grep 。
命令:
cd /
ps aux | more 分屏顯示Linux中所有用戶通過端終和非終端啓動的所有進程的詳細信息
ps aux | grep -i a 在ps aux的結果中,搜索字符串a,大小寫不敏感,顯示對應的行
關機
語法:halt
halt命令關機,但是該命令會出現卡機的情況,所以建議大家別去使用。
linux建議使用: shutdown now
window系統關機:shutdown -s
window系統關機:shutdown -s -t 秒 按照指定秒後關機
window系統關機:shutdown -a 清除計劃任務
圖形界面如下圖:
重啓
語法:reboot
命令:
cd /
reboot 重新啓動安裝Linux的虛擬機
文件權限
權限的簡介
Linux中對每個目錄和文件都做了規定,只能由滿足條件的用戶才能操作,這個規定叫權限。
第一個字符代表的是文件類型
d,目錄
-,普通文件
l,連接文件
屬主,就是資源目錄或文件的擁有者的權限
屬組,就是擁有者所屬組內其他用戶的權限
其他用戶,就是其他組其他用戶權限
- 權限範圍的表示法如下:
u:User,即文件或目錄的擁有者。
g:Group,即文件或目錄的所屬羣組。
o:Other,除了文件或目錄擁有者或所屬羣組之外,其他用戶皆屬於這個範圍。
a:All,即全部的用戶,包含擁有者,所屬羣組以及其他用戶。
- 符號:
+ 添加權限
-取消權限
- 有關權限代號的部分,列表於下:
r:讀取權限,數字代號爲"4"。
w:寫入權限,數字代號爲"2"。
x:執行或切換權限,數字代號爲"1"。
-:不具任何權限,數字代號爲"0"。
操作權限
添加權限
語法:chmod + [參數] 目錄/文件
+:所有用戶添加權限
命令:
chmod u+x a.java 增加所有用戶對a.java文件的執行權限
chmod u+x a.java 增加所屬用戶對a.java文件的執行權限
修改權限
語法:chmod [參數] 目錄/文件
可以針對不同的用戶修改權限
參數解釋:
-
u 作者
-
g 組員
-
o 它人
-
-r 只讀
-
-w 只寫
-
-x 只執行
命令:
chmod u=rwx,g=rx,o=x a.java 修改a.java文件的權限,所有者具有rwx權限,組員具有rx權限,其它人具有x權限
chmod 777 a.java 修改a.java文件的權限,所有者、組員、其他人具有全部的權限
刪除權限
語法:chmod - [參數] 目錄/文件
-:所有用戶減少權限
參數解釋:
-
-r 只讀
-
-w 只寫
-
-x 只執行
命令:
chmod -x a.java 減少所有用戶對a.java文件的執行權限