史上最全Linux常用指令彙總,又一吃灰教程
文章目錄
開發人員,必不可少的需要和Linux打交道,這裡整理了經常會用到的一些Linux相關的操作,能
快速幫你熟悉並操作Linux伺服器
;
本教程會在後續的使用中持續更新
;
檔案
資料夾操作
-
檢視當前所在目錄
pwd
-
檢視目錄下檔案
ls -a ll # 以列表形式顯示目錄下檔案
-
開啟目錄
cd /user/local #從根目錄開始進入到/user/local目錄 cd local #從當前目錄開始,進入到local目錄 cd .. #返回到上級目錄
-
建立資料夾
mkdir /user/local/user # 從根目錄開始,建立/user/local/user,此操作必須/user/local存在 mkdir -p /user/local/user # 建立目錄,任何一級的目錄不存在,都會建立
-
刪除檔案
rm -ri /test #刪除根目錄下的test;此操作會引導使用者確認;輸入y回車刪除 rm -rf /test #直接刪除,不需要再次確認
-
移動或修改檔名
mv /test1 /test2 # 將test1移動到test2 也可以理解為重新命名為test2
-
本地拷貝
cp -rf /test /user/local # 將根目錄下的test拷貝到/user/local
-
遠端拷貝
scp -rf /test root@192.168.1.123:/user/local # 將本機根目錄下的test目錄拷貝到192.168.1.123的/user/local目錄下 # root為192.168.1.123的使用者名稱;回車之後需要輸入密碼 # 如果設定了免密登入,會直接拷貝過去
檔案檢視
-
檢視前n行內容
head -n /testfile # n為要查詢的行數 如 head -3 /testfile,表示查詢testfile的前三行
-
檢視後n行內容
tail -n /testfile # n 和上面的意思一樣
-
cat輸出檔案的所有內容
cat /testfile
-
檢視檔案實時更新
tail -f /testfile # 檔案的更新會實時展示出來
-
輸出內容到檔案
echo "輸出內容" >> /testfile # 追加內容到檔案後面 echo "輸出內容" > /testfile # 覆蓋原有內容
檔案壓縮解壓
-
tar.gz
-
解壓
tar -zxvf filename.tar.gz
-
壓縮
tar –czf filename.tar.gz filename.txt
-
-
tar.bz2
-
解壓
tar -jxvf filename.tar.bz2
-
壓縮
tar –cjf filename.tar.bz2 filename.txt
-
-
tar
-
解壓
tar –xvf filename.tar
-
壓縮
tar –cvf filename.tar filename.txt
-
-
tar.Z
-
解壓
tar –xZvf filename.tar.Z
-
壓縮
tar –cZf filename.tar.Z filename.txt
-
-
rar
需要先安裝rar
-
解壓
unrar e filename.rar
-
壓縮
rar a filename.rar filename.txt
-
-
zip
需要安裝zip的軟體
-
解壓
unzip filename.zip
-
壓縮
zip filename.zip filename.txt
-
檔案查詢
-
根據名稱查詢
find / -name testfile
檔案編輯
-
編輯檔案
vi /testfile # 開始編輯testfile
-
進入編輯模式
i insert # 按鍵盤i或者insert會進入編輯模式,左下角會有個--insert--
-
推出編輯模式
按esc即可推出編輯模式,推出後上圖顯示的insert會消失
-
進入命令列模式
# 非編輯模式下使用shift加:(英文模式下)進入命令列 shift + :
-
關鍵次查詢
查詢檔案中的關鍵詞
:/要查詢的關鍵詞 #如要查詢34 按n會往下查詢下一個 按shift + n往上查詢上一個 n和shift + n都是滾動查詢的
-
儲存並退出(命令列模式下)
wq
-
強制儲存並退出(慎用)
多人同時操作的時候,wq儲存會失敗,可以使用強制儲存
wq!
-
強制退出放棄修改(慎用)
q!
-
檔案內複製貼上
-
終端下
ctrl + shift + c # 複製 ctrl + shift + v # 貼上
-
在控制檯
ctrl + insert # 複製 shift + insert # 貼上
-
服務
-
查詢某個服務的程式
如查詢java
ps -ef | grep java
-
服務操作;開啟、暫停、重啟、自啟動等
systemctl start docker.service #啟動一個服務 systemctl stop docker.service #關閉一個服務 systemctl restart docker.service # 重啟一個服務 systemctl status docker.service # 顯示一個服務的狀態 systemctl enable docker.service # 在開機時啟用一個服務 systemctl disable docker.service # 在開機時禁用一個服務 systemctl is-enabled docker.service # 檢視服務是否開機啟動 systemctl list-unit-files|grep enabled # 檢視已啟動的服務列表 systemctl --failed # 檢視啟動失敗的服務列表
-
殺掉某個程式
kill -9 程式號 # 如上可以使用kill -9 2336 即可殺掉2336對應的java程式
-
服務埠檢視
-
檢視埠監聽情況
ss -tnl
-
埠查程式
ss -lnp | grep 80
-
使用net-tools檢視埠
yum install -y net-tools netstat -tunl | grep ':80' netstat -tunlp netstat -apn | grep ':80' netstat -ntu 檢視連線數 netstat -nat|grep -i "80"|wc -l
-
定時任務
crontab說明
crontab [-u username]
-e (編輯定時任務)
-l (列出定時任務裡的命令)
-r (刪除定時任務)
定時任務格式
-
格式
* * * * * command 分 時 日 月 周 指令
-
操作符
-
星
*
取值範圍內的所有數字
-
斜槓
/
每過多少個數字
-
橫槓
-
從X到Z
-
逗號
,
雜湊數字
-
示例
-
示例1:每1分鐘執行一次執行
* * * * * echo "hello" >> /test/hello.txt
-
示例2:每小時的第3和第15分鐘執行
3,15 * * * * echo "hello" >> /test/hello.txt
-
示例3:在上午8點到11點的第3和第15分鐘執行
3,15 8-11 * * * echo "hello" >> /test/hello.txt
-
示例4:每隔兩天的上午8點到11點的第3和第15分鐘執行
3,15 8-11 */2 * * echo "hello" >> /test/hello.txt
-
示例5:每週一上午8點到11點的第3和第15分鐘執行
3,15 8-11 * * 1 echo "hello" >> /test/hello.txt
-
示例6:每晚的21:30執行
30 21 * * * echo "hello" >> /test/hello.txt
-
示例7:每月1、10、22日的4 : 45執行
45 4 1,10,22 * * echo "hello" >> /test/hello.txt
-
示例8:每週六、週日的1 : 10執行
10 1 * * 6,0 echo "hello" >> /test/hello.txt
-
示例9:每天18 : 00至23 : 00之間每隔30分鐘執行
0,30 18-23 * * * echo "hello" >> /test/hello.txt
-
示例10:每星期六的晚上11 : 00 pm執行
0 23 * * 6 echo "hello" >> /test/hello.txt
-
示例11:每一小時執行
* */1 * * * echo "hello" >> /test/hello.txt
-
示例12:晚上11點到早上7點之間,每隔一小時執行
* 23-7/1 * * * echo "hello" >> /test/hello.txt
注意事項
-
目錄建立
如上示例中,如果出現資料夾的輸出,那麼資料夾必須存在
-
指令
環境變數中的指令手動執行的時候,可以快捷輸入,但定時任務就必須輸入全路徑
許可權
許可權定義
-rw-r--r--. 1 root root 4 Dec 22 18:28 /testfile
[rw-] [r--] [r--]
檔案所有者的許可權 檔案所在組的許可權 其他組的許可權
使用者組操作
useradd #用於建立使用者
groupadd #用於建立組
usermod #用於修改使用者屬性
許可權說明
-
資料夾
r # 只能讀取檔案列表 w # 沒有任何作用 x # 可以進入目錄 rw # 可以讀檔案列表,依舊無法刪除檔案 rx # 讀取檔案列表,可以cd進mul,但是無法刪除目錄下的檔案,對檔案有w許可權可以清空或者寫入 wx # 可以增加和刪除目錄中檔案,可以cd進目錄,但是無法檢視目錄有哪些內容,知道檔名可以開啟檔案 rwx # 可以進入目錄,顯示目錄中內容,可以增刪目錄中檔案
-
檔案
r # 讀取檔案內容 w # 寫入 x # 執行,單獨的執行許可權只能執行二進位制可執行檔案 rw # 可讀可寫 rx # 可以執行二進位制之外的編譯類或者指令碼類的檔案 wx # 可以修改內容,無法檢視,可以執行二進位制可執行檔案 rwx # 可以檢視檔案內容,可以增刪檔案內容,可以執行可執行檔案
數字許可權說明
r : 4
w : 2
x : 1
許可權拆解
[-rwxrwxrwx]
[r w x] [r w x] [r w x]
[4+2+1] [4+2+1] [4+2+1] ==> 許可權值為:777
[-rwxr-xr--]
[r w x] [r - x] [r - -]
[4+2+1] [4+0+1] [4+0+0] ==> 許可權值為:754
設定許可權
chmod 777 /testfile # 其中777為根據上面的數字許可權方式計算出來的
機器相關
cpu
-
檢視CPU個數
-
檢視物理CPU的個數
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
-
檢視邏輯CPU的個數
cat /proc/cpuinfo |grep "processor"|wc -l
-
-
檢視CPU核數
cat /proc/cpuinfo | grep "cpu cores" | uniq
-
檢視CPU型號
cat /proc/cpuinfo | grep 'model name' |uniq
-
檢視CPU的主頻
cat /proc/cpuinfo |grep MHz|uniq
-
檢視CentOS版本
cat /etc/redhat-release
-
檢視作業系統核心版本
cat /proc/version
-
檢視bios資訊
dmidecode -t bios
記憶體
-
檢視記憶體總數
cat /proc/meminfo | grep MemTotal
-
檢視記憶體條數
dmidecode | grep -A16 "Memory Device$"
磁碟
-
檢視硬碟大小
fdisk -l | grep Disk
-
檢視磁碟佔用
-
檢視整個磁碟佔用全款
df -h
-
檢視當前所處目錄的磁碟佔用
du -h --max-depth=1
-
按空間佔用排序
du -s * | sort -nr | head 選出排在前面的10個 du -s * | sort -nr | tail 選出排在後面的10個
-
網路卡
-
檢視網路卡硬體資訊
lspci | grep -i 'eth'
-
檢視系統的所有網路介面
ip addr
時間
-
檢視時間
date
-
更新時間
# 安裝ntpdate yum install -y ntpdate # 更新時間 ntpdate 0.asia.pool.ntp.org # 將系統時間同步到硬體,防止系統重啟後時間被還原 hwclock --systohc
其他更多操作
-
以下命令也是比較常用的
uname -a # 檢視核心/作業系統/CPU資訊的linux系統資訊 head -n l /etc/issue # 檢視作業系統版本 cat /proc/cpuinfo # 檢視CPU資訊 hostname # 檢視計算機名的linux系統資訊命令 lspci -tv # 列出所有PCI裝置 lsusb -tv # 列出所有USB裝置的linux系統資訊命令 lsmod # 列出載入的核心模組 env # 檢視環境變數資源 free -m # 檢視記憶體使用量和交換區使用量 df -h # 檢視各分割槽使用情況 du -sh # 檢視指定目錄的大小 grep MemTotal /proc/meminfo # 檢視記憶體總量 grep MemFree /proc/meminfo # 檢視空閒記憶體量 uptime # 檢視系統執行時間、使用者數、負載 cat /proc/loadavg # 檢視系統負載磁碟和分割槽 mount | column -t # 檢視掛接的分割槽狀態 fdisk -l # 檢視所有分割槽 swapon -s # 檢視所有交換分割槽 hdparm -i /dev/hda # 檢視磁碟引數(僅適用於IDE裝置) dmesg | grep IDE # 檢視啟動時IDE裝置檢測狀況網路 ifconfig # 檢視所有網路介面的屬性 iptables -L # 檢視防火牆設定 route -n # 檢視路由表 netstat -lntp # 檢視所有監聽埠 netstat -antp # 檢視所有已經建立的連線 netstat -s # 檢視網路統計資訊程式 ps -ef # 檢視所有程式 top # 實時顯示程式狀態使用者 w # 檢視活動使用者 id # 檢視指定使用者資訊 last # 檢視使用者登入日誌 cut -d: -f1 /etc/passwd # 檢視系統所有使用者 cut -d: -f1 /etc/group # 檢視系統所有組 crontab -l # 檢視當前使用者的計劃任務服務 chkconfig –list # 列出所有系統服務 chkconfig –list | grep on # 列出所有啟動的系統服務程式 rpm -qa # 檢視所有安裝的軟體包 cat /proc/cpuinfo # 檢視CPU相關引數的linux系統命令 cat /proc/partitions # 檢視linux硬碟和分割槽資訊的系統資訊命令 cat /proc/meminfo # 檢視linux系統記憶體資訊的linux系統命令 cat /proc/version # 檢視版本,類似uname -r cat /proc/ioports # 檢視裝置io埠 cat /proc/interrupts # 檢視中斷 cat /proc/pci # 檢視pci裝置的資訊 cat /proc/swaps # 檢視所有swap分割槽的資訊
部分內容參考於: dwz-9.cn/0S8fS
End
相關文章
- 【資源】史上最全資料集彙總
- 史上最全的中高階JAVA工程師-面試題彙總Java工程師面試題
- 【Linux】萬字總結Linux常用指令Linux
- linux 常用命令彙總Linux
- 史上最全面試題彙總,沒有之一,不接受反駁面試題
- 史上最全的Websocket入門教程Web
- 史上最全的iOS開源專案分類彙總沒有之一iOS
- linux彙編指令Linux
- 史上最全近百條Oracle DBA日常維護SQL指令碼指令OracleSQL指令碼
- Linux下安裝MySQL你又踩過多少坑【宇宙最全教程】LinuxMySql
- 史上最全Oracle資料泵常用命令Oracle
- Linux運維常用的20個命令彙總!Linux運維
- Linux專案實踐中常用操作彙總Linux
- 運維人員常用的Linux命令彙總運維Linux
- 指令集彙總
- Excel快捷鍵大全:史上最全常用excel快捷鍵分享Excel
- 史上最全shell指令碼程式設計語法上冊指令碼程式設計
- ARM彙編指令集彙總
- 最常用 150 個Linux命令彙總(建議收藏)Linux
- 史上最全 Redis 高可用解決方案總結Redis
- 前端Chrome除錯技巧最全彙總前端Chrome除錯
- 嚴選 | Elasticsearch史上最全最常用工具清單Elasticsearch
- Oracle 常用方法彙總Oracle
- 常用函式彙總函式
- Git 常用操作彙總Git
- 史上最全cudnn 安裝教程,來源與官方文件DNN
- 史上最全最強SpringMVC詳細示例實戰教程SpringMVC
- 史上最全 Terraform 入門教程,助你無坑入門!ORM
- 運維人員最常用150個Linux命令彙總運維Linux
- 吐血總結|史上最全的MySQL學習資料!!MySql
- 史上最全排序演算法總結!建議收藏排序演算法
- 常用的x86彙編指令
- github常用指令總結Github
- linux常用指令介紹Linux
- SpringBoot2.x系列教程之 SpringBoot常用註解彙總Spring Boot
- My SQL常用操作彙總SQL
- 【Linq】常用語法彙總
- Excel常用快捷鍵彙總Excel