目錄
Linux
1. Linux 簡介
- Bell 實驗室 Ken Thompson 創造了 C 語言,並根據 Multics 項目開發出 Unix。Linux 是基於 Unix 的開源免費的多用戶操作系統,由 Linus Torvalds 開發和維護其核心代碼。
- 內核版本:在 Linus Torvalds 領導下的內核小組開發維護的系統內核的版本號,主要處理與 CPU 和內存的交互。
- 發行版本:一些個人/組織/公司在內核版基礎上進行二次開發而重新發行的版本號。主流的發行版本如下:
- CentOS 是對 redhat 的完整複製,前者免費但是不提供技術支持。
2. VMware 虛擬機
a. 安裝虛擬機
- 安裝成功後,會多出二個網卡:VMNet1 和 VMNet8。
b. 備份與還原
c. 基礎操作
ctrl + alt 跳出虛擬機
alt + 回車 跳過自動檢查映射文件
ifconfig 獲取 IP地址
CMD: ping IP地址 測試鏈接虛擬機
3. SecureCRT 遠程鏈接工具
- 連接 Linux 的 Windows 客戶端工具有很多,企業中常用的有 secureCRT、Putty、xshell、SSH Secure 等。
a. 基礎操作
左擊選中,右擊粘貼
ctrl + l 或 clear 清屏
ctrl+c 強行終止程序執行
b. pwd 查詢所在路徑
/root 或 / 表示根目錄
~ 表示當前用戶目錄
l 開頭是 link,即快捷方式
d 開頭是文件
4. Linux 目錄結構
- root 目錄:超級管理員所在的目錄,用 ~ 表示
- home 目錄:普通用戶所在的目錄
- usr 目錄:安裝用戶文件所在的目錄
- etc 目錄:Linux 系統管理和配置文件所在的目錄
5. 文件夾(目錄)操作命令
a. ls 文件結構
ll -a
-l 以詳細形式查詢當前目錄下所有文件和目錄,不包括隱藏文件和目錄
-a 以精簡形式查詢當前目錄下所有文件和目錄,包括隱藏文件和目錄
ls 以精簡形式查詢當前目錄下的內容
ls -l 或 ll 以詳細形式查詢當前目錄下的內容,d表示目錄,-表示文件;此命令可以簡寫爲ll
ls -a 以精簡形式查詢當前目錄下的隱藏內容
ls -la 或 ll -a 以詳細形式查詢當前目錄下的隱藏內容,la和al都可
b. cd 跳轉
/ 跳轉到根目錄路徑
cd 絕對路徑或相對路徑
cd ~ 或 cd 當前用戶目錄
cd / 根目錄
cd - 上一次訪問的目錄
cd .. 上一級目錄
c. mkdir 創建
mkdir -p
--help 獲取幫助
-p 文件夾名稱 一次性創建多級目錄,如果目錄存在不會覆蓋
mkdir aaa 在當前目錄下創建aaa目錄,相對路徑
mkdir ./bbb 在當前目錄下創建bbb目錄,相對路徑
mkdir /ccc 在根目錄下創建ccc目錄,絕對路徑
mkdir /ddd/eee 在根目錄下創建ddd目錄和eee子目錄
d. find 搜索
find 指定路徑 -name '關鍵字'
find / -name 'b' 查詢根目錄下(包括子目錄),名爲 b 的目錄和文件
find / -name 'b*' 查詢根目錄下(包括子目錄),名以 b 開頭的目錄和文件
find / -name '*.cfg' 查詢根目錄下(包括子目錄),擴展名是 cfg 的目錄和文件
e. mv 修改
mv 原目錄 新目錄 修改(僞改名)
mv aaa aaaa 將當前目錄下的aaa目錄修改爲aaaa
mv ./aa ./aaa 同上,./代表相對路徑,可以省略
f. mv 剪切
mv 原目錄位置 新目錄的位置 剪切(支持改名)
mv ./aaa /aa 將當前目錄下的aaa目錄,移動到根目錄下,且修改名爲aa(在根目錄時/可以省略)
mv aaa usr 將當前目錄下的aaa目錄,移動到已存在的目錄usr目錄下,在/usr目錄下名字爲aaa
mv aaa usr/aa 將當前目錄下的aaa目錄,移動到已存在的目錄usr目錄下,且修改名爲aa
g. cp 複製
cp -r 目錄 目錄的新位置 複製(支持改名)
-r 遞歸複製,將指定目錄下的文件與子目錄一併處理
cp -r /aaa /usr 將/目錄下的aaa目錄複製到已存在的目錄usr目錄下,在/usr目錄下名字爲aaa
cp -r /aaa /usr/aaaa 將/目錄下的aaa目錄複製到已存在的目錄usr目錄下,且修改名爲aaaa
h. rmdir 刪除
- 只能刪除空文件夾,也就是說只能逐個刪除,所以很少用 rmdir。
-p 刪除目錄及其父目錄
rmdir bbb/ccc 刪除bbb目錄下ccc目錄
rmdir -p bbb/ccc 刪除bbb目錄和ccc子目錄
6. 文件操作命令
a. touch 創建
touch a.java 在當前目錄中創建a.java文件
touch b.txt 在當前目錄中創建b.txt文件
touch c.xml 在當前目錄中創建c.xml文件
b. cat more less head tail 查看
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行內容
技巧
輸文件名稱時,按tab會自動補全
如果查看頁面數據:cat
如果查看多頁數據:less
回車:下一行
空格:下一頁
PGUP:上一頁
PGDN:下一頁
q退出
查看頭部幾行:head
查看尾部幾行:tail
c. rm 刪除
rm -rf 目錄或文件
-r 遞歸處理,將指定目錄下的所有文件及子目錄一併處理,它會詢問你,y表示是刪除,n表示不刪除
-f 強制刪除,它不會再詢問你
rm -rf a.java 強行式刪除當前目錄下的a.java文件
rm -rf ./a* 強行式刪除當前目錄下以a開頭的所有文件
rm -rf / 刪庫,慎重使用
d. Vi Vim 編輯
- Linux 下的 Vi 是一種文字編輯器,後來的升級版本是 Vim,一般使用 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! 不保存強制退出.
非正常退出,無法編輯
rm -rf 隱藏臨時文件夾(如.a.java.swp)
7. 文件壓縮命令
- Windows 打包和壓縮是一起的,而 Linux 打包和壓縮是分開的。
Windows 的壓縮文件的擴展名:.zip或.rar
Linux 中的打包文件擴展名:.tar
Linux 中的壓縮文件擴展名:.gz
Linux 中打包壓縮的文件擴展名:.tar.gz
a. tar -zcvf 將文件打成壓縮包
語法
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 打包並壓縮
tar -zcvf haha.tar.gz ./* 將當前目錄下的所有文件打包壓縮成haha.tar.gz文件
參數解釋
-z 調用gzip壓縮命令進行壓縮
-c 打包文件
-v 顯示運行過程
-f 指定文件名
支持通配符*的使用
tar -cvf ***.tar *.java *.java *.xml *.txt 打包當前目錄下指定類型的所有文件
rm -rf ./*.java 強制式刪除當前目錄下所有擴展名爲java的文件
b. tar -zxvf 解壓縮包獲得文件
語法
tar -zxvf 壓縮文件 解壓後的文件放在當前目錄中
tar -zxvf 壓縮文件 –C指定目錄 解壓後的文件放入指定目錄中,注意-C是大寫字母C,後面不用接空格符
tar -xvf haha.tar.gz -C/usr/local 解壓haha.tar.gz這個壓縮文件,裏面的文件釋放到/usr/local目錄下
tar -xvf haha.tar.gz 解壓haha.tar.gz這個壓縮文件,裏面的文件釋放到當前目錄下
參數解釋
-z 自動識別壓縮或解壓
-x 取出文件中的內容
-v 輸出文件清單
-f 文件名由命令臺設置
8. 文件權限命令
- Linux 中對每個目錄和文件都做了規定,只能由滿足條件的用戶才能操作,這個規定叫權限。
語法
chmod [參數] [<權限範圍><符號><權限代號>]
chmod -R 777
參數解釋
-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 給所有人添加對此文件操作的所有權限
9. 其他命令
a. pwd 顯示工作目錄
語法
pwd
b. ps -ef 查看進程
語法
ps -au 顯示客戶端打開的程序進程
ps -ef 當前用戶打開的程序進程
參數解釋
-a 顯示所有用戶通過終端啓動的所有進程
-A 顯示所有進程
-u 顯示所有用戶通過終端啓動的所有進程詳細信息
-x 顯示所有用戶通過終端和非終端啓動的所有進程詳細信息
-e 此參數的效果和指定"A"參數相同,顯示所有程序
-f 顯示UID,PPID,C與STIME欄位
- 主要是爲了看 PID(Processing IDentification)或 PPID(Parent PID)
c. kill pid 殺死進程
- 中括號 [ ] 包括的無法被刪除
語法
kill 進程號 溫柔殺,正常退出
kill -9 進程號 暴力殺,直接退出
d. grep 文本搜索
語法
grep [參數] 搜索字符串 文件名
參數解釋
默認 大小寫敏感
-i 搜索時不區分大小寫
-n 顯示匹配行及行號
-v 顯示不匹配行(reverse)
-vn 顯示不匹配行及行號
命令
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字符串,大小寫不敏感,顯示行及行號
e. | 管道
語法
xx | xx 一個命令的輸出用作另一個命令的輸入
命令
ls --help | more 分頁查詢幫助信息
ps -au | grep system 在ps -au的結果中,搜索字符串system
f. poweroff 關機
語法
poweroff 需要手動開啓虛擬機和登錄,並重新連接
g. reboot 重啓
語法
reboot 可以正常連接,刷新連接即可,不需要遠程登錄
10. Linux 網絡
a. 網絡(卡)服務
- 查看當前網絡的狀態,並啓動和停止網絡服務。
查看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 重啓指定服務
b. 防火牆服務
- 防火牆類似於一個安全衛士管家,它能對你訪問它人電腦,它人訪問你的電腦,進行攔截並處理,有的阻止,有的放行,有的轉發。
① 防火牆設置
開啓防火牆
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 類似於Windows的services.msc
② 端口設置
添加
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