linux命令補充
加/解壓命令
tar命令:進行檔案的壓縮和檔案的解壓。對於不同的檔案解壓可以參考中文文件(linux中文手冊)。
重要引數:
- 壓縮包:-c(直接打包不會節省空間,使用壓縮工具可以減少檔案大小,即下面的-z,-j,-J命令)、
- 解壓包:-x、
- 後面輸入檔案:-f、
- gz(gzip壓縮檔案):-z、
- bz(bzip壓縮檔案):-j、
- xz(xz壓縮檔案):-J、
- 顯示解壓流程,即打包/壓縮檔案:-v、
- 解壓到哪個目錄(目錄必須存在):-C
網路埠開放情況命令
netstat 列印linux中網路服務的狀態資訊。以得知網路情況。
相關引數:
- -t或--tcp:顯示TCP傳輸協議的連線狀況;
- -u或--udp:顯示UDP傳輸協議的連線狀況;
- -n或--numeric:直接使用ip地址,而不透過域名伺服器;
- -l或--listening:顯示監控中的伺服器的Socket;
- -p或--programs:顯示正在使用Socket的程式識別碼和程式名稱;
一般情況使用:netstat -tunlp 來列印埠的啟用情況。且使用grep來對埠進行過濾。
例:
檢視程序
ps命令,檢視程序的啟動情況。
重要引數:
- -e 顯示所有程序。
e 列出程序時,顯示每個程序所使用的環境變數。 - -f 顯示UID,PPID,C與STIME欄位。
f 用ASCII字元顯示樹狀結構,表達程序間的相互關係。
一般透過:ps -ef的方式列印埠的啟動情況。
例:
停止程序命令
- kill 透過uid把程序停止
- pkill 透過名字把程序停止
- killall 與pkill類似,透過名字把程序停止
例:
# 先用ps查詢程序,然後用kill殺掉:
ps -ef | grep vim
root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log
root 3370 2822 0 16:21 pts/0 00:00:00 grep vim
kill 3268
# 例如nginx啟動後有2個程序
killall nginx
pkill nginx
檢視記憶體使用情況
df命令:用於顯示磁碟分割槽上的可使用的磁碟空間。預設顯示單位為KB。可以利用該命令來獲取硬碟被佔用了多少空間,目前還剩下多少空間等資訊。
重要引數:
- -h或--human-readable:以可讀性較高的方式來顯示資訊;
- -k或--kilobytes:指定區塊大小為1024位元組;
- -T或--print-type:顯示檔案系統的型別;
- --help:顯示幫助;
- --version:顯示版本資訊。
例:
dns(即域名/ip伺服器)解析流程
每當使用ping + 域名 或者 nslookup + 域名 去解析域名的時候
系統會自動呼叫域名解析的流程:
- 瀏覽器首先在本地機器,即作業系統的快取中查詢是否有ip - 域名 的記錄。
- 去/etc/hosts檔案中查詢是否有寫死的域名解析記錄。
- 如果沒有,系統會前往/etc/resolv.conf配置檔案中尋找域名伺服器地址。執行解析
- 解析完成後,快取記錄到本地dns快取中。
- 附:DNS(Domain Name System,域名系統),全球資訊網上作為域名和IP地址相互對映的一個分散式資料庫,能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的IP數串。
透過域名,最終得到該域名對應的IP地址的過程叫做域名解析(或主機名解析)。
機器的定時任務(crontab)
定時執行操作命令,每一個使用者擁有自己的crontab,配置檔案存在/var下面,不能被直接編輯。
語法格式:
-
-
-
-
- 命令的絕對路徑!
-
-
-
分 時 日 月 周 命令
例子
#每分鐘執行一次命令
* * * * * 命令
#每小時的3,15分組執行命令
3,15 * * * * 命令
#在上午8-11點的第3和第15分鐘執行
3,15 8-11 * * * 命令
#每晚21:30執行命令
30 21 * * * 命令
#沒週六、日的1:30執行命令
30 1 * * 6,0 命令
#每週一到週五的凌晨1點,清空/tmp目錄的所有檔案
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*
#每晚的21:30重啟nginx
30 21 * * * /opt/nginx/sbin/nginx -s reload
#每月的1,10,22日的4:45重啟nginx
45 4 1,1,10,22 * * /opt/nginx/sbin/nginx -s reload
#每個星期一的上午8點到11點的第3和15分鐘執行命令
3,15 8-11 * * 1 command
yum阿里雲映象
-
mirrors.aliyun.com 阿里雲映象倉庫。
-
透過命令下載yum倉庫源(即映象站的centos)
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo(-O是改名和指定位置)
-
透過命令下載epel倉庫源(即映象站的epel)
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo -
linux的yum倉庫地址:/etc/yum.repos.d/
在這個倉庫的第一層倉庫都是可以讀取到的yum倉庫地址。
linux軟體包管理工具
- 原始碼安裝,類似與linux安裝python3步驟。(下載壓縮包、解壓、釋放./configure、make命令編譯安裝、配置環境變數)
- yum安裝。(使用mirrors源+yum install進行安裝)
- 進行rpm安裝(需要自己配置依賴)
包管理工具的核心:
- 製作軟體包 .rpm
- 安裝、解除安裝、升級、查詢、校驗
rpm相關命令列舉(需要解決依賴關係,相當難使用):
# 安裝軟體的命令格式
rpm -ivh filename.rpm # i表示安裝 v顯示詳細過程 h以進度條顯示
# 升級軟體的命令格式
rpm -Uvh filename.rpm
# 解除安裝軟體的命令格式
rpm -e filename.rpm
# 查詢軟體描述資訊的命令格式
rpm -qpi filename.rpm
# 列出軟體檔案資訊的命令格式
rpm -qpl filename.rpm
# 查詢檔案屬於哪個 RPM 的命令格式
rpm -qf filename
yum相關命令列舉:
yum(選項)(引數)
# 選項
search 查詢
install 安裝
remove 解除安裝
# 引數
-h:顯示幫助資訊;
-y:對所有的提問都回答“yes”;
-c:指定配置檔案;
-q:安靜模式;
-v:詳細模式;
-d:設定除錯等級(0-10);
-e:設定錯誤等級(0-10);
-R:設定yum處理一個命令的最大等待時間;
-C:完全從快取中執行,而不去下載或者更新任何標頭檔案。
# 清除原本的yum快取
yum clear all
# 生成yum快取
yum makecache
系統服務管理命令(透過yum安裝的軟體才可以使用這個)
- 對於centos6 就是:
service nginx start - 對於centos7 就是:
systemctl start/stop/restart nginx
防火牆
firewalld.service命令:防火牆服務(控制伺服器流量)
# 開啟防火牆
systemctl start firewalld.service
# 關閉防火牆
systemctl stop firewalld
# 開啟22埠
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload
# 防止防火牆開機自啟
systemctl disable firewalld.service
# 開啟防火牆開機自啟
systemctl enable firewalld.service
# 臨時清空防火牆規則
iptables -F