適用於不同場景的命令
其他
以下是對目錄的解釋:
- /bin : bin是Binary的縮寫,這個目錄存放著最經常使用的命令。
- /boot:這裡存放的是啟動Linux時使用的一些核心檔案,包括一些連線檔案以及映象檔案。
- /dev : dev是Device(裝置)的縮寫,存放的是Linux的外部裝置,在Linux中訪問裝置的方式和訪問檔案的方式是相同的。(如隨身碟)
- /etc:這個目錄用來存放所有的系統管理所需要的配置檔案和子目錄。
- /home:使用者的主目錄,在Linux中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名的。
- /lib:這個目錄裡存放著系統最基本的動態連線共享庫,其作用類似於Windows裡的DLL檔案。
- /lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。
- /media:linux系統會自動識別一些裝置,例如隨身碟、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下。·/mnt:系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以檢視光碟機裡的內容了。
- /opt:這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。
- /proc:這個目錄是一個虛擬的目錄,它是系統記憶體的對映,我們可以透過直接訪問這個目錄來獲取系統資訊。
- /root:該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。
- /sbin:s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。
- /srv:該目錄存放一些服務啟動之後需要提取的資料。
- /sys:這是linux2.6核心的一個很大的變化。該目錄下安裝了2.6核心中新出現的一個檔案系統 svsfs 。
- /tmp:這個目錄是用來存放一些臨時檔案的。
- /usr:這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於windows下的program files目錄。
- /usr/bin :系統使用者使用的應用程式。最基本命令
最基本命令
ls / #檢視當前目錄所有檔案 /是當前目錄的意思
mkdir #建立目錄
cd /home #進入home目錄,/是絕對路徑 後面是哪裡就進入哪裡
mv music entertainment #移動music到entertainment目錄下
touch #建立檔案
echo "需要輸入的字元" >> 檔名 #往指定檔案裡面輸入字元
開關機
sync # 將資料由記憶體同步到硬碟中。
shutdown #關機指令,你可以man shutdown 來看一下幫助文件。例如你可以執行如下命令關機:
shutdown -h 10 # 這個命令告訴大家,計算機將在10分鐘後關機
shutdown -h now # 立馬關機
shutdown -h 20:25 #系統會在今天20:25關機
shutdown -h +10 # 十分鐘後關機
shutdown -r now #系統立馬重啟
shutdown -r +10 # 系統十分鐘後重啟
reboot #就是重啟,等同於 shutdown -r now
halt #關閉系統,等同於shutdown -h now 和 poweroff
目錄相關命令
.. #上一級目錄
./ #當前目錄
cd #切換目錄命令
cd..
ls #列出目錄
-a #all 檢視全部檔案,包括隱藏
-l #引數 列出所有檔案資訊 屬性許可權等
cd 目錄名(絕對路徑都是以/開頭,相對路徑,對於當前目錄該如何尋找 ..../)
cd ../user #../是相對路徑 以相對路徑進入user
cd /user/axu #絕對路徑跳轉
cd ~ #回到當前的使用者命令
mkdir 目錄名 #建立目錄
mkdir -p #遞迴建立目錄
rm和rmdr
rmdir 目錄 #刪除目錄 但是如果目錄下有檔案就不能刪除
-p #加了-p就可以刪除了
cp #複製檔案或者目錄
cd 檔名 複製後的地址
rm #移除檔案或者目錄
-f #忽略不存在的檔案,不會出現警告,強制刪除!
-r #遞迴刪除目錄
-i #互動,刪除詢問是否刪除
mv #移動檔案或根目錄 或者重新命名
mv 檔案 地址 #移動
mv 檔案 檔名 #重新命名檔案
-f #強制
-u #只替換已經更新過的檔案
目錄相關
例項中,boot檔案的第一個屬性用"d"代表。"d"在Linux中代表該檔案是一個目錄檔案。
在Linux中第一個字元代表這個檔案是目錄、檔案或連結檔案等等
-
當為[d]則是目錄
-
當為[-]則是檔案;
-
若是[l]則表示為連結文件(link file);
-
若是[b]則表示為裝置檔案裡面的可供儲存的介面裝置(可隨機存取裝置);
-
若是[c]則表示為裝置檔案裡面的串列埠裝置,例如鍵盤、滑鼠(一次性讀取裝置)。
接下來的字元中,以三個為一組,且均『rwx』的三個引數的組合。其中,[r]代表可讀(read)、[w]代表可寫(write)、[x]代表可執行(execute)。要注意的是,這三個許可權的位置不會改變,如果沒有許可權,就會出現減號[-]而已。每個檔案的屬性由左邊第一部分的10個字元來確定
修改檔案屬性
-
chgrp:更改檔案屬組
chgrp[-R]屬組名 檔名
-R :遞迴更改檔案屬組,就是在更改某個目錄檔案的屬組時,如果加上-R的引數,那麼該目錄下的所有檔案的屬組都會更改。
-
chown:更改檔案屬主,也可以同時更改檔案屬組
chown [-R] 屬主名 檔名 chown [-R] 屬主名:屬組名 檔名
-
chmod:更改檔案9個屬性(必須要掌握)
當沒有許可權操作檔案的時候可以改一下chmod [-R] xyz 檔案或目錄
Linux檔案屬性有兩種設定方法,一種是數字,一種是符號。
Linux檔案的基本許可權就有九個,分別是owner/group/others三種身份各有自己的read/write/execute許可權
如:[-rwxrwxrwx],這九個許可權是三個三個一組的!其中,我們可以使用數字來代表各個許可權,各許可權的分數對照表如下:
r:4 w:2 x:1
檔案內容檢視
Linux系統中使用以下命令來檢視檔案的內容
- cat 由第一行開始顯示檔案內容
- tac 從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫!
- nl顯示的時候,順道輸出行號!
- more 一頁一頁的顯示檔案內容
- less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!
- head 只看頭幾行
- tail 只看尾巴幾行I
使用 man [命令]來檢視各個命令的使用文件,如 :man cp。
less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!(空格下翻頁,pageDown,pageUp鍵代表翻動頁面!退
出q命令,查詢字串/要査詢的字元向下査詢,向上査詢使用?要查詢的字串,n 繼續搜尋下一個,N是向上尋找
硬連結和軟連結
Linux的連結分為兩種:硬連結、軟連結
硬連結:A-B,假設B是A的硬連結,那麼他們兩個指向了同一個檔案,允許一個檔案擁有多個路徑,使用者可以透過這種機制建立硬連結到一些重要檔案上,防止誤刪。類似複製貼上
軟連結:類似Window下的快捷方式,刪除的原始檔,快捷方式也訪問不了!
ln 檔案1 檔案2 #硬連結檔案1就是已經存在的檔案 檔案2就是複製後的檔名
ln -s 檔案1 檔案2 #軟連結檔案1就是已經存在的檔案 檔案2就是複製後的檔名
Vim 編輯器
什麼是Vim編輯器
vim透過一些外掛可以實現和IDE一樣的功能
Vim是從vi發展出來的一個文字編輯器。程式碼補完、編譯及錯誤跳轉等方便程式設計的功能特別豐富,在程式設計師中被廣泛使用。Linux中,必須要會使用Vim(檢視內容,編輯內容,儲存內容)
簡單的來說,vi是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方。
vim 則可以說是程式開發者的一項很好用的工具。
三種使用模式
基本上vi/vim共分為三種模式,分別是命令模式(Command mode),輸入模式(insert mode)和底線命令模式(Last line mode)。
命令模式:
使用者剛剛啟動 vi/vim,便進入了命令模式,
此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字元。比如我們此時按下ì,並不會輸入一個字元,ì被當作了一個命令。以下是常用的幾個命令:
- i切換到輸入模式,以輸入字元。
- x刪除當前游標所在處的字元。
- :切換到底線命令模式,以在最底一行輸入命令。
若想要編輯文字:啟動Vim,進入了命令模式,按下i,切換到輸入模式。
命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。
輸入模式:
在命令模式下按下i就進入了輸入模式
在輸入模式中,可以使用以下按鍵:
-
字元按鍵以及Shift組合,輸入字元
-
ENTER,Enter鍵,換行
-
BACK SPACE,退格鍵,刪除游標前一個字元
-
方向鍵,在文字中移動游標
-
HOME/END,移動游標到行首/行尾。
-
Page Up/Page Down,上/下翻頁
-
Insert,切換游標為輸入/替換模式游標將變成豎線/下劃線
-
ESC,退出輸入模式,切換到命令模式
底線命令模式
在命令模式下按下:(英文冒號)就進入了底線命令模式。游標就移動到了最底下,就可以在這裡輸入一些底線命令了!
底線命令模式可以輸入單個或多個字元的命令,可用的命令非常多。
在底線命令模式中,基本的命令有
- q退出程式
- w 儲存檔案
按ESC鍵可隨時退出 底線命令模式。
使用者賬號相關
使用者賬號的管理
使用者賬號的管理工作主要涉及到使用者賬號的新增、修改和刪除新增使用者賬號就是在系統中建立一個新賬號,然後為新賬號分配使用者號、使用者組、主目錄和登入Shell等資源。屬主,屬組
建立使用者
useradd 命令 新增使用者
useradd -選項 使用者名稱
-m:自動建立這個使用者的主目錄 如果在home建立了一個axu的使用者,那麼home就有axu這個檔案了/home/axu
-G:給使用者分配組
Linux中一切皆檔案,這裡的新增使用者說白了就是往某一個檔案中寫入使用者的資訊了!/etc/passwd 這個檔案下就有所有的使用者資訊
passwd 資訊如下
使用者名稱:口令(登入密碼,我們不可見):使用者標識號:組標識號:註釋性描述:主目錄:登入she11
刪除使用者
userdel
userdel -r axu 刪除使用者的時候將他的目錄頁一併刪掉!
修改使用者
usermod
相關命令自己查
切換使用者
相關命令自己查
使用者組相關
建立使用者組
groupadd 使用者組名 #建立的時候會有一個自增的ID 同樣的在/etc/passwd下面有
-g 110 #建立一個ID是110的使用者
刪除使用者組
groupdel
修改使用者組
groupmod -g 修改後的ID -n 修改後的名字 原使用者組的名字 #修改使用者組的許可權資訊和名字
磁碟管理
df #顯示資訊
-h #顯示資訊變成了M
du #顯示空間具體使用情況
du -sm /* #檢查根目錄下每個目錄所佔用的容量
mount #掛載
mount /dev/axu /mnt/axu # 將外部裝置axu掛載到 mnt 目錄下,來實現訪問 mnt就是一般掛載檔案的位置
umount -f [怪哉位置] #強制解除安裝
程序管理
-
每一個程序,都會有一個父程序
-
程序可以有兩種存在方式:前臺 後臺執行
-
一般的話服務都是後臺執行的,基本的程式都是前臺執行的
命令
ps #檢視當前系統中正在執行的各種程序的資訊
pS -XX :
-a #顯示當前終端執行的所有的程序資訊
-u #以使用者的資訊顯示程序
-x #顯示後臺執行程序的引數
| #Linux這個叫做管道符 A|B 過濾和B相關的程序
grep #查詢檔案中符合條件的字串
ps -aux|grep mysql #檢視所有和mysql相關程序
ps -aux|grep redis #檢視所有和resis相關程序
ps -ef #檢視到父程序的資訊
ps -ef|grep redis #看resis和他的父程序的相關程序
#專門檢視父程序一般用目錄樹
pstree -pu
-p #顯示父id
-u #顯示使用者組
# 結束程序:殺掉程序,等價於window結束任務 (比如結束java程序)
kill -9 程序的id
防火牆設定
#檢視firewa11服務狀態
systemctl status firewalld
# 開啟、重啟、關閉、firewalld.service服務
# 開啟
service firewalld start
# 重啟
service firewalld restart
# 關閉
service firewalld stop
# 檢視防火牆規則
firewall-cmd --list-all #檢視全部規則
firewall-cmd --list-ports #只看埠資訊
#開啟埠
開埠命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent
重啟防火牆:systemctl restart firewa1ld.service
#命令含義
--zone #作用域
--add-port=80/tcp #新增埠 格式為 埠/通訊協議
--permanent #永久生效,沒有此引數重啟後失效
環境安裝
安裝軟體一般有三種方式:rpm,解壓縮,yum線上安裝
rgm(以JDK為例)
-
下載JDK rpm。去oralce 官網下載即可
-
安裝java環境
檢測環境相關命令和安裝相關命令
java -version #檢測當前系統是否存在java環境 如果有的話就需要解除安裝 # 解除安裝相關命令 rpm -qa|grep jdk # 檢測JDK版本資訊 rpm -e --nodeps 透過上面命令查出來的jdk版本資訊 # 強制刪除 # 安裝命令 rpm -ivh rpm包 #安裝 # 配置環境變數 具體檔案地址 /etc/profile (因為是具體檔案所以肯定是透過vim開啟) JAVA_HOME=/usr/java/jdk1.8.0_202-amd64 CLASSPATH=%JAVA_HOME%/lib;%HAVA_HOME%/jre/lib PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin export PATH CLASSPATH JAVA_HOME (只是比winds多一個export)
域名解析後,如果埠是80-http 或者 443-https 可以直接訪問,,如果是 9000 8080,就需要透過Apcahe或者Nginx做一下反向
代理即可,配置檔案即可