Linux基礎
Linux目錄結構
-
root目錄:超級管理員所在的目錄,用~表示
-
home目錄:普通用戶所在的目錄
-
usr目錄:安裝用戶文件所在的目錄
-
etc目錄:Linux系統管理和配置文件所在的目錄
遠程連接工具使用
在實際開發中,Linux服務器都在其他的地方,我們要通過windows客戶端工具遠程去連接Linux並操作它,連接Linux的windows客戶端工具有很多,企業中常用的有secureCRT、Putty、xshell、SSH Secure等
文件夾(目錄)操作命令
查看
-
語法
ls [參數] -
參數解釋
-l 以詳細形式查詢當前目錄下所有文件和目錄,不包括隱藏文件和目錄
-a 以精簡形式查詢當前目錄下所有文件和目錄,包括隱藏文件和目錄 -
命令
cd / 進入根目錄
ls 以精簡形式查詢當前目錄下的內容
ls -l 以詳細形式查詢當前目錄下的內容,d表示目錄,-表示文件;此命令可以簡寫爲ll
ls -a 以精簡形式查詢當前目錄下的隱藏內容
ls -la 以詳細形式查詢當前目錄下的隱藏內容,la和al都可
clear 清屏
跳轉
-
語法
cd 目錄
絕對路徑
/xxx/xxx/xxx
相對路徑
./ 當前目錄
…/ 上級目錄 -
命令
cd ~ 當前用戶目錄
cd / 根目錄
cd - 上一次訪問的目錄
cd … 上一級目錄
cd 當前用戶目錄
創建
-
語法
mkdir [參數] 目錄 -
參數解釋
-p 一次性創建多級目錄,如果目錄存在不會覆蓋 -
命令
cd / 定位於根目錄
mkdir aaa 在當前目錄下創建aaa目錄,相對路徑
mkdir ./bbb 在當前目錄下創建bbb目錄,相對路徑
mkdir /ccc 在根目錄下創建ccc目錄,絕對路徑
mkdir /ddd/eee 在根目錄下創建ddd目錄和eee子目錄
搜索
-
語法
find 目錄 -name ‘條件’ -
命令
cd /
find / -name ‘b’ 查詢根目錄下(包括子目錄),名爲b的目錄和文件
find / -name ‘b*’ 查詢根目錄下(包括子目錄),名以b開頭的目錄和文件
在Linux中,按ctrl+c 強行終止程序執行
修改
-
語法
mv 舊目錄 新目錄 -
命令
cd /
mv aaa aaaa 將根目錄下的aaa目錄修改爲aaaa
剪切
-
語法
mv 原目錄位置 新目錄的位置 -
命令
cd /
mv /aaaa /bbb 將根目錄下的aaaa目錄,移動到bbb目錄下,在bbb目錄下也叫aaaa目錄
mv bbb usr/bbbb 將當前目錄下的bbb目錄,移動到usr目錄下,且修改名爲bbbb
複製
-
語法
cp -r 目錄 目錄的新位置 -
參數解釋
-r 遞歸複製,將指定目錄下的文件與子目錄一併處理 -
命令
cd / 定位於/目錄
cp -r /aaa /bbb 將/目錄下的aaa目錄複製到/bbb目錄下,在/bbb目錄下名字爲aaa
cp -r /aaa /bbb/aaaa 將/目錄下的aaa目錄複製到/bbb目錄下,且修改名爲aaaa
刪除
-
語法
rmdir [參數] 目錄 -
參數解釋
-p 刪除目錄及其父目錄 -
命令
cd /
rmdir bbb/ccc 刪除bbb目錄下ccc目錄
rmdir -p bbb/ccc 刪除bbb目錄和ccc子目錄
文件操作命令
創建
-
語法
touch 文件名.擴展名 -
命令
cd /soft 定位於/soft目錄
touch a.java 在soft目錄中創建a.java文件
touch b.txt 在soft目錄中創建b.txt文件
touch c.xml 在soft目錄中創建c.xml文件
查看
-
語法
cat/more/less/head/tail 文件 -
命令
cd /soft
cat a.java 查看a.java文件的最後一頁內容
more a.java 從第一頁開始,按回車鍵換行,按空格健翻頁,q退出
less a.java 從第一頁開始,按回車鍵換行,按空格健翻頁,支持使用PgUp和PgDn翻頁,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行內容 -
規則
如果查看頁面數據:cat
如果查看多頁數據:less
回車:下一行
空格:下一頁
PGUP:上一頁
PGDN:下一頁
q退出
查看頭部幾行:head
查看尾部幾行:tail
刪除
-
語法
rm [參數] 目錄或文件 -
參數解釋
-r 遞歸處理,將指定目錄下的所有文件及子目錄一併處理,它會詢問你,y表示是刪除,n表示不刪除
-f 強制刪除,它不會再詢問你 -
命令
cd /soft
rm -rf a.java 強行式刪除當前目錄下的a.java文件
rm -rf ./a* 強行式刪除當前目錄下以a開頭的所有文件
rm -rf / 自殺
編輯
linux 下的vi 是一種文字編輯器,後來的升級版本是vim。vi 分爲三種模式:命令行、插入、底行模式
-
簡單使用
vim a.java
i 切換到插入模式
esc 切換到命令行模式
:wq! 保存並退出 | :q! 直接退出 -
切換到插入模式
i 在當前位置前插入
I 在當前行首插入
a 在當前位置後插入
A 在當前行尾插入
o 在當前行之後插入一行
O 在當前行之前插入一行 -
切換到命令行模式
按Esc鍵
yy 複製當前行
p 粘貼
dd 刪除當前行
G 到文件的最後一行
gg 到文件的第一行 -
切換到底行模式
按 :(冒號)
:wq 保存退出
:q 退出vi(文件無修改的情況下)
:q! 不保存強制退出
文件壓縮命令
windows的壓縮文件的擴展名: .zip或.rar
Linux中的打包文件擴展名:.tar
Linux中的壓縮文件擴展名:.gz
Linux中打包壓縮的文件擴展名:.tar.gz
將文件打成壓縮包
-
語法
tar -zcvf 打包壓縮後的文件名 要打包的文件
tar -cvf *****.tar a.java b.java c.xml d.txt
tar -zcvf *****.tar.gz a.java b.java c.xml d.txt -
參數解釋
-z:調用gzip壓縮命令進行壓縮
-c:打包文件
-v:顯示運行過程
-f:指定文件名 -
命令
cd /soft 定位於/soft目錄
tar -zcvf haha.tar.gz a.java b.java c.java
或
tar -zcvf haha.tar.gz ./* 將當前目錄下的所有文件打包壓縮成haha.tar.gz文件
解壓縮包獲得文件【重點】
-
語法
tar -zxvf 壓縮文件
解壓後的文件放在當前目錄中
tar -zxvf 壓縮文件 –C指定目錄
解壓後的文件放入指定目錄中,注意-C是大寫字母C,後面不用接空格符 -
參數解釋
-z 自動識別壓縮或解壓
-x 取出文件中的內容
-v 輸出文件清單
-f 文件名由命令臺設置 -
命令
cd /soft 定位於/soft目錄
rm -rf ./*.java 強制式刪除當前目錄下所有擴展名爲java的文件
tar -xvf haha.tar.gz 解壓haha.tar.gz這個壓縮文件,裏面的文件釋放到當前目錄下
tar -xvf haha.tar.gz -C/usr/local
解壓haha.tar.gz這個壓縮文件,裏面的文件釋放到/usr/local目錄下
文件權限命令
Linux中對每個目錄和文件都做了規定,只能由滿足條件的用戶才能操作,這個規定叫權限
-
語法
chmod [參數] [<權限範圍><符號><權限代號>] -
參數解釋
-R 遞歸處理,將指定目錄下的所有文件及子目錄一併處理 -
權限範圍
u:User,即文件或目錄的擁有者。
g:Group,即文件或目錄的所屬羣組。
o:Other,除了文件或目錄擁有者或所屬羣組之外,其他用戶皆屬於這個範圍。
a:All,即全部的用戶,包含擁有者,所屬羣組以及其他用戶。 -
符號解釋
+ 添加權限
- 取消權限
= 重置權限 -
權限代號
r:讀取權限,數字代號爲"4"
w:寫入權限,數字代號爲"2"
x:執行或切換權限,數字代號爲"1"
-:不具任何權限,數字代號爲"0" -
命令
chmod u+x 1.txt 給1.txt的擁有者添加執行權限,這種寫法稍微有點麻煩,開發中一般使用數字代號
chmod 755 1.txt 給1.txt的擁有者設置讀寫執行權限,給所屬組添加讀和執行權限,給其他用戶添加 讀和執行權限
chmod -R 777 a.txt 給所有人添加對此文件操作的所有權限
其他命令
顯示工作目錄
- 語法
pwd
查看進程
-
語法
ps -au:顯示客戶端打開的程序進程
ps -ef:當前用戶打開的程序進程 -
參數解釋
-a 顯示所有用戶通過終端啓動的所有進程
-A 顯示所有進程
-u 顯示所有用戶通過終端啓動的所有進程詳細信息
-x 顯示所有用戶通過終端和非終端啓動的所有進程詳細信息
-e 此參數的效果和指定"A"參數相同,顯示所有程序
-f 顯示UID,PPID,C與STIME欄位
殺死進程
- 語法
kill 進程號:溫柔殺
kill -9 進程號:暴力殺
搜索【文本】
-
語法
grep [參數] 搜索字符串 文件名 -
參數解釋
-i 搜索時不區分大小寫,大小寫不敏感
-n 顯示匹配行及行號,大小寫敏感
-v 顯示不匹配行及行號,大小寫敏感 -
命令
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字符串,大小寫不敏感,顯示行及行號
管道
-
語法
xx | xx
一個命令的輸出用作另一個命令的輸入 -
命令
ls --help | more 分頁查詢幫助信息
ps -au | grep system 在ps -au的結果中,搜索字符串a
關機
- 語法
poweroff
重啓
- 語法
reboot
Linux網絡
網絡(卡)服務
查看當前網絡的狀態,並啓動和停止網絡服務
-
查看ip
ifconfig :CentOS6版本
ip addr :CentOS7版本 -
修改網卡ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33 -
概要信息如下
DEVICE=ens33 #網卡名稱
TYPE=Ethernet #網卡類型 以太網
ONBOOT=yes #是否開機就使用此網卡 在我們安裝的時候都已經配置好
BOOTPROTO=dhcp #啓動網卡時指定獲取IP地址的方式
常用取值:dhcp (自動獲取ip地址,網關,子網掩碼等信息無需設置)
常用取值:static (靜態ip,如需要訪問網絡,需要自己設置ip地址等信息)
其他取值:none (不指定)IPADDR=192.168.200.133 #ip地址 GATEWAY=192.168.200.2 #網關 NETMASK=255.255.255.0 #子網掩碼 DNS1=8.8.8.8 # Google提供的公用DNS
-
重啓網卡服務
systemctl status network 查看指定服務的狀態
systemctl stop network 停止指定服務
systemctl start network 啓動指定服務
systemctl restart network 重啓指定服務
防火牆服務
防火牆設置
-
開啓防火牆
systemctl start firewalld -
重啓防火牆
systemctl restart firewalld -
關閉防火牆
systemctl stop firewalld -
設置開機啓動
systemctl enable firewalld -
停止並關閉開機啓動
systemctl disable firewalld -
查看防火牆狀態
systemctl status firewalld 或者 firewall-cmd --state -
查看防火牆開機時是否啓動
systemctl list-unit-files | grep firewalld
端口設置
-
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent -
更新防火牆規則
firewall-cmd --reload -
查看
firewall-cmd --zone=public --query-port=80/tcp
firewall-cmd --zone=public --list-ports -
刪除
firewall-cmd --zone=public --remove-port=80/tcp --permanent -
常用端口
8080 tomcat
80 http協議
443 https協議
22 ssh遠程連接
3306 mysql
6379 redis
Nginx
介紹
Nginx是一款輕量級的 Web 服務器,由俄羅斯的程序設計師伊戈爾·西索夫所開發
Nginx性能非常優秀,官方測試能夠支撐5萬併發鏈接,並且 cpu、內存等資源消耗卻非常低,運行非常穩定
Nginx的功能有很多,我們主要使用它來做靜態資源服務器、負載均衡服務器和反向代理服務器
應用場景
靜態資源服務器
部署網站的靜態資源(html、css、js)
反向代理服務器
代理: 給某個對象提供一個代理對象,並由代理對象控制原對象的引用
正向代理: 對客戶端進行代理(例如VPN)
反向代理: 對服務端進行代理
反向代理,就是對服務端進行代理,作爲客戶端,只需要將請求發送到反向代理服務器,由反向代理服務器去選擇目標服務器獲取數據後,再響應給客戶端,此時反向代理服務器和目標服務器對外就是一個服務器,暴露的是代理服務器地址,隱藏了真實服務器IP地址
負載均衡服務器
負載均衡*(Load Balance)*意思就是將一份負載分攤到多個操作單元上進行執行
nginx與tomcat區別
-
存放的文件(資源)形式
Nginx是http服務器,只能解析靜態文件
Tomcat是web中間件(本質上是一個servlet),能解析jsp和靜態文件 -
用途
nginx可以作爲反向代理服務器,負責均衡服務器,靜態資源存放服務器
tomcat能作爲jsp容器使用,靜態資源存放服務器 -
性能
nginx支持5W+併發,tomcat的併發只能在200-400之間