一.Linux的安裝
1.1 VMWare虛擬機安裝
- bin -> usr/bin : 這個目錄存放最經常使用的命令
- boot : 這個目錄存放啟動 Linux 時使用的一些核心文件送淆,包括一些連接文件以及鏡像文件
- 雙擊安裝程序振坚;
- 自定義安裝--選擇將虛擬機安裝的位置路徑;
- 用戶體驗設置--取消勾選"自動更新"和"統(tǒng)計信息發(fā)送給用戶"屯远;
- 創(chuàng)建快捷方式到桌面隅俘,保留到開始菜單呢铆;
- 點擊"開始安裝"水慨,等待安裝湿颅,加載進度;
- 點擊許可證床蜘,輸入許可證(百度查找)掠归;
以下為VMWare12PRO版本序列號:
*5A02H-AU243-TZJ49-GTC7K-3C61N
VF5XA-FNDDJ-085GZ-4NXZ9-N20E6
UC5MR-8NE16-H81WY-R7QGV-QG2D8
ZG1WH-ATY96-H80QP-X7PEX-Y30V4
AA3E0-0VDE1-0893Z-KGZ59-QGAVF*
- 安裝完成。
1.2 Centos系統(tǒng)安裝
- 官網下載ISO鏡像文件https://www.centos.org/悄泥,版本介紹:
- 標準版DVD-ISO:有圖形界面,最常用肤粱,本次學習也是該版本
- 最小版Minimal-ISO:沒有圖形界面
- 全量版Everything-ISO:包含的軟件最豐富弹囚,占用的空間比較大;
- 打開虛擬機领曼,創(chuàng)建新的虛擬機鸥鹉;
- 選擇“典型”安裝;
- 選擇已經下載好的 ISO 鏡像文件(在下載保存的路徑下查找)庶骄;
- 修改 Linux 系統(tǒng)的顯示名稱(在虛擬機用于顯示你的Centos的名稱)毁渗,選擇將要安裝的位置路徑;
- 修改磁盤大小单刁,一般選擇磁盤大小為20G灸异,選擇"將虛擬磁盤劃分為多個文件";
- 修改硬件設置羔飞,自定義硬件設置(后期也可以修改)肺樟,取消勾選"創(chuàng)建后開啟虛擬機"。若電腦本身有16G運行內存逻淌,推薦Centos分配內存2G么伯;若只有8G,建議分配1G卡儒;
- 點擊完成田柔,等待安裝;
- 鏡像加載完成骨望,在虛擬機查看Centos硬件信息硬爆;
- 點擊開啟虛擬機,開始安裝Centos锦募,(可能彈出'二進制..'窗口摆屯,直接點擊確定);
- 選擇安裝 Linux 系統(tǒng),(此處需要鼠標進入虛擬機虐骑,直接點擊虛擬機屏幕)准验,上下箭頭進行選擇安裝版本(一般選擇Install CentOs Linux 7),按回車開始安裝廷没;
- 設置系統(tǒng)語言糊饱,選擇“EngLish”,點擊"Continue"颠黎;
- 設置信息:
- 點擊"DATE & TIME"設置時間另锋,選擇(亞洲、上海狭归、24小時制夭坪、日期),點擊Done完成時間設置过椎;
- 點擊"KEYBOARD"設置鍵盤室梅,點擊+號,輸入chinese可以設置從鍵盤輸入中文疚宇,點擊"add"亡鼠,點擊Done完成;
- 點擊"LANGUAGE SUPPORT"設置語言支持敷待,選擇"j簡體中文"加入中文间涵,點擊Done完成;
- 點擊"INSTALLTIOAN SOURCE"榜揖,點擊Done完成勾哩;
- 點擊"SOFTWARE SELECTION" 選擇安裝的 Linux 的系統(tǒng)類型,選擇"GNOME Destop"桌面版根盒,點擊Done完成钳幅;
- 點擊"INSTALLATION DESTINATION"設置磁盤管理,不用添加新磁盤炎滞,直接點擊Done完成敢艰;
- 點擊"NETWORK & HOST NAME"設置網絡,點擊"OFF"打開網絡設置册赛,查看ip信息钠导,點擊Done完成;
- 點擊"Begin Install"開始真正安裝森瘪。
- 在開始安裝界面設置 root用戶的t密碼牡属,點擊"ROOT PASSOWRD",輸入root的密碼扼睬,點擊Done完成(若密碼過于簡單逮栅,需要點擊兩次DONE)悴势;
- 設置完密碼等待系統(tǒng)安裝完成。
- 點擊"LICENSING"設置許可證措伐,選擇 I Accept...接收許可特纤,點擊完成配置;
- 安裝完成后進入Centos侥加,設置引導頁面
- 設置語言:英語
- 設置時區(qū):默認捧存,next,next担败,點擊"skip"不綁定谷歌賬號
- 設置普通用戶和密碼:非root用戶名
- 完成以上所有昔穴,啟動Centos。
二.Linux目錄
-
bin -> usr/bin目錄
該目錄存放Linux最經常使用的命令(如常用ls,cat,mkdir等)提前,類似于jdk的bin目錄吗货; - boot
該目錄存放啟動 Linux 時使用的一些核心文件,包括一些連接文件以及鏡像文件 - dev
dev 是 Device(設備)的縮寫, 該目錄下存放的是 Linux 的外部設備文件狈网,Linux 中的設備也是以文件的形式存在 -
etc
這個目錄存放所有的系統(tǒng)管理所需要的配置文件卿操,包括即將安裝的常用的各種軟件。(相當于環(huán)境變量配置) -
home
用戶的主目錄孙援,存儲每個用戶文件的根目錄(即home下?lián)碛卸鄠€不同用戶的根目錄);在 Linux 中扇雕,每個用戶都有一個自己的目錄拓售,一般該目錄名以用戶的賬號命名 - lib->user/lib
這個目錄存放著系統(tǒng)最基本的動態(tài)連接共享庫,其作用類似于 Windows 里 的 DLL 文件镶奉,幾乎所有的應用程序都需要用到這些共享庫础淤。 - mnt
系統(tǒng)提供該目錄是為了讓用戶臨時掛載別的文件系統(tǒng),我們可以將光驅掛載在/mnt/上哨苛,然后進入該目錄就可以查看光驅里的內容 - opt
這是給 linux 額外安裝軟件所存放的目錄鸽凶,通常安裝大型軟件。比如你安裝一個 Oracle 數(shù)據(jù)庫則就可以放到這個目錄下建峭,默認為空玻侥。 - root
該目錄為系統(tǒng)管理員目錄,root 是具有超級權限的用戶 - tmp
這個目錄是用來存放一些臨時文件的亿蒸。 -
usr
存放共享的系統(tǒng)資源凑兰,一般開發(fā)程序員安裝軟件的位置,如JDK边锁、Mysql姑食、Tomcat等。非常重要的目錄茅坛,用戶的很多應用程序和文件都放在這個目錄下(通常是/usr/local目錄)音半,類似于windows 下的 program files 目錄。 -
var
這個目錄存放著在不斷擴充著的東西,我們習慣將那些經常被修改的文件存放在該目錄下曹鸠,比如運行的各種日志文件煌茬。
三.Linux基礎命令與Windows基礎命令比較
- Linux常用操作命令
ls(查看目錄)、ll(查看詳細目錄)物延、cd(切換目錄)宣旱、pwd(展示當前位置)、cp(復制)叛薯、mv(剪切/改名)浑吟、cat(查看)、tail(查看后10行)耗溜、touch(創(chuàng)建文件)组力、rm(刪除文件-rf)、mkdir(創(chuàng)建目錄)抖拴、rmdir(刪除目錄)燎字、vi(編輯文件內容)、vim(編輯文件內容阿宅、高級語法)候衍、wc(統(tǒng)計行詞字符)、wq(退出)洒放、grep(文件內搜索)蛉鹿、ps(查看進程)、echo(向控制臺輸出)往湿、yum(安裝包操作)妖异、which(搜索文件)、|(管道)领追、tar(壓縮)他膳。
在Linux系統(tǒng)下,操作的對象只有目錄绒窑,沒有CDEF硬盤棕孙,"/"表示了Linux的絕對路徑,相對路徑使用具體目錄格式些膨。在詳細目錄的表示中散罕,d開頭表示目錄,l開頭表示軟鏈接傀蓉,-開頭表示文件欧漱。
-
vi編輯文件內容的步驟
vi 文件名 --> 打開文件 --> 進入命令模式 --> 按i/a進入編輯模式 --> 按Esc進入底行命令模式(可以使用命令對文件內容操作) --> 輸入: --> 輸入wq保存、輸入q!則是強制退出葬燎。
3.1 目錄操作命令(目錄操作需要帶參數(shù) -rf)
命令 | Linux系統(tǒng) | Windows系統(tǒng) |
---|---|---|
列出目錄文件 | ls | dir |
ls -l(顯示文件目錄的詳細信息误甚,縮寫為ll) | ||
ls -a(顯示所有包括隱藏文件缚甩,-表示文件,d表示目錄窑邦,l表示軟鏈接) | dir /a(顯示所有包括隱藏文件) | |
改變當前目錄 | cd | cd |
進入父目錄 | cd ../ | cd .. |
進home目錄 | cd ~ | |
復制 | cp (-rf 遞歸復制) | copy |
cp 舊文件名.txt 新文件名.txt | ||
cp 舊文件名.txt /新目錄/新文件名 | ||
cp -rf 舊目錄 新目錄 | ||
創(chuàng)建文件 | touch 文件名 | touch 文件名 |
刪除文件 | rm 文件名 | del 文件名 |
rm -r(遞歸刪除擅威,將該目錄下的子目錄文件遞歸刪除,需詢問yes) | ||
rm -rf(強制刪除冈钦,直接刪除郊丛,不詢問) | ||
創(chuàng)建目錄 | mkdir 目錄名 | md 目錄名 |
刪除目錄 | rmdir 目錄名 | rmdir 目錄名 |
設置目錄文件權限 | chmod u+rwx 文件名 | |
設置目錄文件所有者 | chown user.group 文件名 | |
批處理 | .sh | .bat |
幫助 | cmd --help / -h |
—————————————————————————————————
3.2 文件-內容操作命令
命令 | Linux系統(tǒng) | Windows系統(tǒng) |
---|---|---|
創(chuàng)建文件 | touch 文件名 | touch 文件名 |
刪除文件 | rm 文件名 | del 文件名 |
rm -r(遞歸刪除,將該目錄下的子目錄文件遞歸刪除瞧筛,需詢問yes) | ||
rm -rf(強制刪除厉熟,直接刪除不詢問) | ||
顯示文件內容 | cat(顯示最后一屏內容) | type |
more(顯示百分比,回車查看下一行较幌,空格查看下一頁揍瑟,q退出查看) | more | |
less(使用鍵盤上的PgUp和PgDn向上和向下翻頁,q結束查看) | ||
head -參數(shù)數(shù)字 (查看文件的頭 參數(shù) 行乍炉,Ctrl+C結束) | ||
tail -參數(shù) 數(shù)字 (查看文件的后 參數(shù) 行绢片,Ctrl+C結束,tail -f 文件 可以對某個文件進行動態(tài)監(jiān)控) | ||
統(tǒng)計行數(shù) | wc (行數(shù) 單詞數(shù) 字符數(shù)) | |
顯示文件信息 | file | |
修改文件內容 | vim 文件名 | |
vim 文件名 --> 進入文件(文件命令模式) --> 按i岛琼、o底循、a轉換為編輯模式 --> 編輯文件 --> 按Esc進入底行模式 --> 輸入:wq保存退出、q!強制退出 | ||
查找文件 | find 目錄 -name ‘文件名’ (注意文件所在位置路徑) | |
例如:find /bin -name ls | ||
定位可執(zhí)行文件位置 | which | |
在文本文件內查找 | grep 關鍵詞 文件名 | find |
不區(qū)分大小寫查找 | grep -i 關鍵詞 文件名 | |
grep "關鍵詞" 文件名 | ||
以獨立關鍵詞查找 | grep-w 關鍵詞 文件名 | |
壓縮文件 | tar -zcvf 壓縮名.tar.gz 被壓縮文件名 | |
使用壓縮 | tar -z | |
創(chuàng)建壓縮文檔 | tar -c | |
顯示壓縮文件名 | tar -v | |
指定歸檔(壓縮)文件名 | tar -f | |
指定歸檔(壓縮)文件名 | tar -t | |
解壓 | tar -x | |
查看壓縮文件內容 | tar -C | |
解壓到指定文件 | tar -xvf | |
啟動運行程序 | gnome -open槐瑞、open | start |
向屏幕打印此叠、輸出 | echo "內容" | |
重定向覆蓋 | echo "內容" > 文件名 | 將打印的內容添加到重定向文件中,若文件不存在則創(chuàng)建再添加随珠;文件存在先清空文件,再寫入內容猬错。 |
重定向追加 | echo "內容" >> 文件名 | 將打印的內容追加到重定向文件中窗看,若文件不存在則創(chuàng)建再添加;文件存在倦炒,則追加到內容显沈。 |
—————————————————————————————————
3.3 系統(tǒng)信息查詢命令
命令用途 | 命令 | 備注 |
---|---|---|
顯示內核版本 | uname -a | |
顯示發(fā)布版本 | lsb_release -a | |
cat 、etc逢唤、issue | ||
顯示id信息 | id拉讯、whoami | |
顯示當前登陸用戶 | who | |
顯示當前環(huán)境信息 | env | |
顯示啟動中檢測到的硬件信息 | dmesg | |
顯示系統(tǒng)的PCI設備 | lspci | |
顯示系統(tǒng)的USB | lsusb | |
顯示cpu信息 | less 、proc鳖藕、cpuinfo | |
顯示內存 | less 魔慷、proc、menminfo | |
顯示硬盤存儲信息 | df -h |
—————————————————————————————————
3.4 進程-任務控制命令
最常用:ps -ef | grep 關鍵詞(查看xxx用戶的進程信息)
命令用途 | 命令 | 備注 |
---|---|---|
顯示進程信息 | ps | |
顯示當前所有進程的信息 | ps -ef | |
顯示當前所有進程 | ps -e | |
顯示進程信息 | ps -f UID/PID | |
查看進程 配合管道 | ps -ef | grep 關鍵詞 |
BSD格式顯示進程信息 | ps -auxf | |
殺死進程 | kill 進程id | |
強制殺死進程 | kill -9 進程id | |
殺死所有 | killall postgresql | |
暫停中斷當前前臺任務 | ctrl - z | |
恢復任務到后臺 | bg | |
恢復任務到前臺 | fg |
—————————————————————————————————
3.5 網絡命令
命令用途 | 命令 | 備注 |
---|---|---|
顯示啟動的網絡服務 | netstat -anli less | |
顯示路由表信息 | netstat -r | |
顯示ip | ip -a | |
ifconfig | ||
顯示防火墻信息 | iptables -list | |
遠程登陸 | ssh user@host | |
發(fā)送ping信息 | ping ip | |
命令行下載 | wget url | |
查看網絡連通性 | curl -o url |
—————————————————————————————————
3.6 用戶管理命令
命令用途 | 命令 | 備注 |
---|---|---|
修改命令 | passwd username | |
創(chuàng)建用戶 | useradd username | |
刪除用戶 | userdel username | |
修改用戶 | usermod | |
退出 | exit 著恩、ctrl + D | |
切換用戶(默認root) | su [-]username | |
以su后的權限執(zhí)行 | sudo -u user cmd |
—————————————————————————————————
3.7 其他命令
命令用途 | 命令 | 備注 |
---|---|---|
顯示日期時間 | date | |
日歷 | cal2014 | |
清除屏幕 | clear | |
搜索軟件包 | yum search tree | |
刪除軟件包 | yum remove 安裝包名稱 | |
安裝軟件包 | yum install 安裝包名稱 | |
重啟系統(tǒng) | reboot | |
關機 | shutdowm -h 定時時間 |
四.Linux的安裝JDK
打開虛擬機院尔,啟動Centos
-
ifconfig查看centos的ip地址(ens33那個)
打開Xshell遠程控制工具蜻展,連接到centos,新建Xftp文件傳輸會話
-
下載JDK邀摆,可以使用wget 官網JDK下載網址下載Linux版本的JDK(以tar.gz結尾)纵顾,也可以使用xftp文件傳輸工具從本地下載好的JDK壓縮包上傳到centos的/home目錄下的任意用戶目錄
-
下載/上傳好JDK壓縮文件后
-
使用tar -zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local/解壓到指定的/usr/local/目錄下
在/etc目錄下的profile文件中添加環(huán)境變量(profile相當于windows的環(huán)境變量),若怕錯誤修改profile文件導致無法修改栋盹,可以先備份該文件
-
使用vi或vim對profile文件進行編寫添加環(huán)境變量施逾,在文件最后添加內容,如下:(根據(jù)自己的JDK版本和解壓位置添加)
-export JAVA_HOME=/usr/local/jdk1.8.0_121
-export PATH=$JAVA_HOME/bin:$PATH
-export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
*若不會在centos命令行或Xshell命令行修改profile內容例获,可以在xftp的會話窗口找到profile文件使用記事本打開汉额,直接編寫保存
-
修改保存好profile文件后,使用source編譯該配置文件生效
最后使用java -version 檢查是否配置成功(若和windows下的信息一致則成功躏敢,取代了centos自帶的OpenJDK)
五.Linux的安裝Mysql
-
同JDK的下載安裝闷愤,可以使用命令wget地址下載,也可以使用xftp上傳本地已下載好的壓縮包
-
切換到接收文件的用戶/home/testme目錄(testme是本次實驗的當前用戶)件余,查看上傳的壓縮文件
-
使用命令tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ 解壓上傳的tomcat壓縮包到/usr/local目錄下
-
使用命令yum list installed | grep mariadb檢查系統(tǒng)是否安裝了 mariadb 數(shù)據(jù)庫(mariadb數(shù)據(jù)庫是Centos自帶的mysql的分支)
若Centos自帶了mariadb會和mysql配置環(huán)境沖突讥脐,使用命令yum -y remove mariadb-libs.x86_64進行卸載再安裝Mysql
對已解壓的文件改名(為了簡短易記),使用命令mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql-5.7.18
在mysql-5.7.18的目錄下創(chuàng)建data數(shù)據(jù)文件夾啼器,用于存放以后所有的表數(shù)據(jù)旬渠。
使用useradd mysql創(chuàng)建mysql用戶,以便于執(zhí)行 mysqld 命令(初始化Mysql基礎信息的命令)
在 mysql-5.7.18/bin目錄下執(zhí)行命令./mysqld --initialize --user=mysql --datadir=/usr/local/mysql-5.7.18/data --basedir=/usr/local/mysql-5.7.18端壳,./表示在當前路徑下的mysqld用戶執(zhí)行初始化mysql命令告丢。命令執(zhí)行完會產生數(shù)據(jù)庫root用戶的臨時密碼:root@localhost:密碼
啟用安全功能,在mysql-5.7.18/bin目錄下使用命令./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.18/data對服務器與數(shù)據(jù)庫之間的的數(shù)據(jù)文件傳輸進行加密损谦,
mysql安裝后岖免,需要更改mysql-5.7.18整個文件夾目錄權限(原權限僅限于root用戶),需更為自創(chuàng)建的mysql用戶照捡。在/usr/local/目錄下執(zhí)行命令chown -R mysql:mysql /usr/local/mysql-5.7.18/
啟動MySQL服務颅湘,在mysql-5.7.18/bin目錄下執(zhí)行命令 ./mysqld_safe & &表示后臺啟動)。服務啟動后栗精,使用ps -ef | grep mysql查看進程闯参,確認 msyql 是否啟動
在mysql-5.7.18/bin目錄下執(zhí)行命令./mysql -uroot -p,輸入初始密碼root@localhost:后進入mysql悲立,接著必須使用命令alter user 'root'@'localhost' identified by '新密碼';進行密碼修改
授權遠程訪問mysql鹿寨,未授權只能本(centos)機訪問,使用命令grant all privileges on . to root@'%' identified by '新密碼';(. 表示數(shù)據(jù)庫名.數(shù)據(jù)庫表薪夕,root@'%' 表示用戶名@ip地址脚草,%模糊查詢ip地址)
以上步驟完成后,開始使用mysql客戶端連接centos數(shù)據(jù)庫進行測試原献,使用ifconfig查看centos的ip地址玩讳,若可以直接連接則使用root賬號或密碼涩蜘,也可以用自創(chuàng)建的mysql賬號密碼登錄。
若不能連接數(shù)據(jù)庫熏纯,原因一般有二:遠程訪問權限未開啟(上面步驟已開啟)同诫,防火墻未關閉(centos防火墻阻止連接)
六.Linux的安裝Tomcat
-
同JDK的下載安裝,可以使用命令wget地址下載樟澜,也可以使用xftp上傳本地已下載好的壓縮包
-
tomcat壓縮包上傳成功
-
使用命令tar -zxvf apache-tomcat-9.0.0.M26.tar.gz -C /usr/local/ 解壓上傳的tomcat壓縮包到/usr/local目錄下
-
解壓成功后误窖,到tomcat的bin目錄下使用命令./startup.sh啟動tomcat,./表示在當前位置執(zhí)行文件
-
tomcat啟動后秩贰,到瀏覽器訪問Linux下安裝的tomcat是否啟動成功時霹俺,會遇到Linux防火墻開啟,不能訪問到tomcat的8080端口號:
- 需要使用命令systemctl status firewalld先查看防火墻狀態(tài)毒费,再用命令systemctl stop firewalld去關閉防火墻即可丙唧,若想重啟防火墻則用systemctl start firewalld命令
-
查看catalian.out日志文件,經常使用tail -f catalina.out命令觀察日志文件觅玻,此文件相當于eclipse中的console控制臺想际,存儲了tomcat啟動過程中的一些信息。
查看localhost_access_log_yyyy-MM-dd.log日志文件 溪厘,該文件每天只產生一份胡本。
經常使用tail -f localhost_access_log_yyyy-MM-dd.log命令檢測或者持續(xù)觀察該日志文件,可以記錄并分析tomcat 每天接收到的 http 請求信息畸悬。tomcat 服務器上運行的 web 應用接收的請求侧甫,請求方式(get,post)蹋宦,請求地址披粟,請求參數(shù)(get 請求),處理是否成功(狀態(tài)碼)都在此文件記錄冷冗。
七.Linux部署WEB應用項目
- 使用war包方式將web應用項目發(fā)布到centos的tomcat的webapps目錄下守屉,即可在 tomcat 中運行 web 應用
- 在 Eclipse 或IDEA或STS開發(fā)環(huán)境中,選擇任意一個 web 應用贾惦,右鍵選中此項目,選擇 File --> Export --> Web --> WAR file --> Browse保存到指定目錄
- 使用 Xftp上傳 剛剛打包的war 文件到centos系統(tǒng)中的 Tomcat的 webapps 目錄
- 在 centos中切換到 tomcat 安裝目錄的/bin下敦捧,執(zhí)行啟動 Tomcat 的命令./startup.sh
- 在瀏覽器輸入訪問地址:http://centos的ip地址:端口號(一般為8080)/項目名/index.jsp
Linux常見面試題
查看網絡TCP端口的使用情況的命令是什么须板?
Windows:ipconfig -all
Linux:ifconfig -a查看某一指定進程id為xxx是否在運行的命令是什么?
ps -f 進程id將目錄/A拷貝到目錄/B/c的命令是什么兢卵?
cp -rf /A /B/c查看系統(tǒng)啟動日志的最后50行命令是什么习瑰?
tail -f 50 catalina.out(啟動日志名)寫出命令 統(tǒng)計xxx.log文件包含XXX單詞(不區(qū)分大小寫)的行數(shù)?
echo | wc -l | grep -i XXX單詞 xxx.log統(tǒng)計/AAA/bbb目錄下后綴是.txt的文件總大小的命令是秽荤?
find /AAA/bbb -type *.txt |wc -l若遠程主機不可訪問甜奄,簡述一下排查過程以及使用到的工具和命令柠横?
使用ifconfig查看遠程主機ip地址是否跟本地ip地址同一個網關,使用systemctl status firewalld先查看防火墻狀態(tài)是否開啟课兄,用命令systemctl stop firewalld關閉防火墻牍氛。使用工具Xshell或者SRT