【好記性不如爛筆頭】linux基本命令總結

前言

總結這篇博客,其實我也想了很久。一直猶豫不決,寫還是不寫呢?最終我還是決定總結一篇基礎篇,自己以前學習的時候都是看視頻總結的。寫下這篇總結對新入坑者肯定是有些好處的,至少可以少走一些彎路,自己也可以得到一些提升。

還沒有安裝虛擬機的小夥伴可以參考我之前的博文:
linux養成達人之入門實踐圖文超詳細(工欲善其事,必先利其器篇)

目錄

  • 命令格式以及文件處理命令
  • 文件搜索命令
  • 幫助命令
  • 壓縮命令
  • 關機與重啓命令
  • 其它常用命令
  • shell基礎

正文

一、命令格式以及文件處理命令

好了,上面羅裏吧嗦的講了一堆,結果只是前戲。這會肯定有人納悶了,我看了這麼久的前戲,咋還沒進去。這不,下面你蹭一蹭就進去了,進入正題。

[root@localhost~]#

  • root:代表當前登錄用戶,超級用戶。
  • localhost:代表默認主機名
  • ~:代表你的當前目錄[家目錄],root用戶登錄所在初始目錄在根目錄
  • #:代表root用戶提示符
  • 如果是$符號是普通用戶登錄

1. 命令格式

  • 命令 [選項][參數]
  • 注意:個別命令使用不遵循此格式。有多個選項時可以寫在一起,簡化選項與完整選項-a等於--all

查看列表詳情命令:ls [選項][參數]

  • -a:顯示所有文件,包含隱藏文件
  • -l:顯示詳細信息
  • -d:查看目錄屬性
  • -h:個性化顯示文件大小
  • -i:顯示inode

2. 目錄處理命令

  • 建立目錄命令:mkdir [選項] [目錄]
  • -p:遞歸創建

切換所在目錄命令:cd [目錄]

  • 簡化操作,注意:cd與符號之間是有空格的
  • cd ~:進入當前目錄的家目錄
  • cd -:進入上次目錄
  • cd …:進入上一級目錄
  • cd .:進入當前目錄

TAB鍵:補全

查看當前路徑命令:pwd,常用命令

刪除目錄命令:rmdir [選項],刪除目錄,一般不用,瞭解就行。

刪除命令:rm [選項] [目錄或文件]

  • -r:刪除目錄
  • -f:強制刪除

複製命令:cp [選項][原目錄或文件][目標目錄]
選項:

  • -r:複製目錄
  • -p:連帶文件屬性複製
  • -d:如果源文件是鏈接文件,則複製鏈接屬性
  • -a:相當於-pdr

剪切或改名命令:mv [原目錄或文件][目標目錄]

  • 注意:當原文件目錄和目標目錄是同一目錄時就是改名,當原文件目錄和目標目錄不是一目錄時就是剪切

3. 常見目錄作用

  • :/ 根目錄
  • :/bin 命令保存目錄(普通用戶就可以讀取的命令)
  • :/boot 啓動目錄,啓動相關文件
  • :/dev 設備文件保存目錄
  • :/etc 配置文件保存目錄
  • :/home 普通用戶的家目錄
  • :/lib 系統庫保存目錄
  • :/mnt 系統掛載目錄
  • :/media 掛載目錄

*********************************** 視覺疲勞分割線 ***********************************

  • :/root 超級用戶的家目錄
  • :/tmp 臨時目錄
  • :/sbin 命令保存目錄(超級用戶才能使用的目錄)
  • :/proc 直接寫入內存
  • :/sys
  • :/usr 系統軟件資源目錄
  • :/usr/bin 系統命令(普通用戶)
  • :/usr/sbin 系統命令(超級用戶)
  • :/var 系統相關文檔內容

4. 鏈接命令ln,注意:實際的應用中實用的更多的是軟鏈接

硬鏈接:ln /root/cangls /tmp/cangls.hard

特徵

  • 擁有相同的I節點和block塊,可以看做是同一個文件
  • 可通過I節點識別
  • 不能誇分區
  • 不能針對目錄使用

軟鏈接ln -s /root/cangls /tmp/cangls.soft注意:使用軟鏈接時,原文件一定要用絕對路徑

特徵

  • 類似windows快捷鍵
  • 軟鏈接擁有自己的I節點和block塊,但是數據塊中只保存源文件的文件名和I節點號,並沒有實際的文件數據
  • lrwxrwxrwx,l:軟鏈接,軟鏈接權限都爲lrwxrwxrwx,注意:真實權限都看源文件
  • 修改任意文件,另一個都改變
  • 刪除原文件,軟鏈接無法使用

二、文件搜索命令

  1. 文件搜索命令locate
  • locate [文件名],只能接文件名
  • 在後臺數據庫中按文件名搜索,搜索速度更快
/var/lib/mlocate
  • locate命令所搜索的後臺命令,不是及時更新,這時可以使用updatedb命令更新

updatedb 更新數據庫

/etc/updatedb.conf配置文件

  • PRUNE_BIND_MOUNTS,開啓搜索限制
  • PRUNEFS="",不搜索的系統文件
  • PRUNENAMES="",不搜索的文件類型
  • PRUNEPAEHS="",不搜索的路徑

2. 命令搜索命令

whereis [命令],搜索命令所在路徑以及幫助文檔所在位置

  • b:只查找可執行文件
  • m:只查找幫助文件
  • 注意:侷限性,只能搜索系統命令

which [文件名]

  • 搜索所在路徑以及別名,部分命令不支持,例如:pwd,cd

find 文件搜索命令

  • find [搜索範圍][搜索條件]
  • 例如:find / -name install.log
  • 避免大範圍搜索,會非常耗費系統資源。
  • find是在系統中搜索符合條件的文件名。如需匹配,使用通配符,通配符是完全匹配。

不區分大小寫find /root -iname install.log

按照所有者搜索find /root -user root

查找所有者的文件find /root -nouser

查找10天前修改的文件find /var/log -mtime +10

  • -10,10天內修改的文件;10,10天當天修改的文件;+10,10天前修改的文件。
  • atimne,文件訪問時間;ctime,修改文件屬性;mtime,修改文件內容。

查找/etc目錄下大小爲25KB的文件:find /etc -size 25k

  • -25k,小於25KB的文件
  • 25k,等於25KB的文件
  • +25k,大於25KB的文件

查找i節點爲262422的文件

  • find . -inum 262422

查找/etc/目錄下大於20KB且小於50KB的文件

  • find /etc -size +20k -a -size -50k
  • -a相當於and,邏輯與,兩個條件都滿足
  • -o相當於or,邏輯或,兩個條件滿足一個即可

查找/etc/目錄下大於20KB且小於50KB的文件,並且顯示詳細信息

  • find /etc -size +20k -a -size -50k -exec ls -lh {} \;
  • -exec/-ok 命令 {}\;對搜索結果執行操作

grep 字符串搜素命令

  • grep [選項] 字符串 文件名,在文件當中匹配符合的字符串
  • -i,忽略大小寫
  • -v,排除指定字符串
  • 根據文件大小匹配:grep "size" anaconda-ks.cfg

findgrep的區別

  • find命令:在系統當中搜索符合條件的文件名,如需匹配,使用通配符,通配符是完全匹配。
  • grep命令:在文件當中搜索符合條件的字符串,如需匹配,使用正則表達式進行匹配,正則表達式是包含匹配。

三、幫助命令

1. 幫助命令man的級別:

  • 1:查看命令的幫助
  • 2:查看可被內核調用的函數的幫助
  • 3:查看函數和函數庫的幫助
  • 4:查看特殊件的幫助(主要是/dev目錄下的文件)
  • 5:查看配置文件的幫助
  • 6:查看遊戲的幫助
  • 7:查看其它雜項的幫助
  • 8:查看系統管理員可用命令的幫助
  • 9:查看和內核相關文件的幫助

man 命令,獲取指定命令的幫助

  • 例如:man ls,查看ls的幫助

查看命令擁有哪個級別的幫助

  • man -f 命令相當於whatis命令

例如:

  • man -5 passwd
  • man -4 null
  • man -8 ifconfig

查看命令相關的所有幫助

  • man -k 命令,相當於apropos 命令
  • 例如:apropos -passwd

2. 其它幫助命令

  • --help命令,獲取命令選項幫助
  • 例如:ls --hrlp

help shell內部命令

  • 獲取shell內部命令的幫助
  • 例如:whereis cd,確定是否是shell內部命令
  • 例如:help cd,獲取內部命令幫助

info,詳細命令幫助

  • 回車:進入子幫助頁面(帶有*號標記)
  • u:進入上層頁面
  • n:進入下一個幫助小結
  • p:進入上一個幫助小結
  • q:退出

四、壓縮命令

1. 壓縮命令1
zip命令

  • 壓縮文件: zip 壓縮文件名 源文件
  • 壓縮目錄: zip -r 壓縮文件名 原目錄
  • 解壓縮:unzip 壓縮文件

.gz格式壓縮,gzip 源文件

  • 壓縮爲.gz格式的壓縮文件,源文件會消失

gzip -c 源文件 > 壓縮文件

  • 壓縮爲.gz格式,源文件保留,例如:gzip -c bols > bols.gz

gzip -r 目錄

  • 壓縮目錄下所有的子文件,但不能壓縮目錄

.gz格式解壓縮

  • gzip -d 壓縮文件
  • gunzip 壓縮文件

.bz2格式壓縮

  • bzip2 源文件
  • 壓縮爲.bz2格式,不保留源文件

bzip2 -k 源文件

  • 壓縮後保留源文件
  • 注意:bzip2命令不能壓目錄

.bz2解壓縮

  • bzip2 -d 壓縮文件
  • 解壓縮,加上-k屬性保留壓縮文件

bunzip2 壓縮文件

  • 解壓縮,加上-k屬性保留壓縮文件

2. 壓縮命令2

  • .tar.gz 壓縮格式
  • 其實.tar.gz格式是先打包爲.tar格式,在壓縮爲.gz格式

tar -zcvf 壓縮包名.tar.gz 源文件

  • -z:壓縮爲.tar.gz格式

tar -zxvf 壓縮包名.tar.gz 源文件

  • -x:解壓縮.tar.gz格式

.tar.bz2 壓縮格式

  • tar -jcvf 壓縮包名.tar.bz2 源文件
  • -j:壓縮爲.tar.bz2格式
  • tar -jxvf 壓縮包名.tar.bz2 源文件
  • -x:解壓縮.tar.bz2格式

打包命令tar
tar -cvf 打包文件名 源文件

  • -c:打包
  • -v:顯示過程
  • -f:指定打包後的文件名
  • 例如:tar -cvf bols.tar longls

解打包命令

  • tar -xvf 打包文件名
  • -x:解打包
  • 例如:tar -xvf bols.tar

五、關機與重啓命令

瞭解關機與重啓命令之前,首先看一下系統運行級別:

  • 0:關機
  • 1:單用戶
  • 2:不完全多用戶,不含NFS服務
  • 3:完全多用戶
  • 4:未分配
  • 5:圖形界面
  • 6:重啓
  1. 關機命令
    shutdown 命令,shutdown [選項] 時間
  • -c:取消前一個關機命令
  • -h:關機
  • -r:重啓

*.**********************************************分割線***********************************************1

  • 其它關機命令:halt,poweroff,init 0
  • 其它重啓命令:reboot,init 6
  • 注意:使用服務器時,不要隨便去使用關機命令。一旦使用了,會造成不必要的麻煩。

2.重啓命令

  • reboot,執行命令進行重啓
  • shutdown -r,執行命令進行重啓

注意:使用logout命令,養成良好的習慣退出登錄

六、其它常用命令

  1. 掛載命令格式
    mount [-t 文件系統] [-o 特殊選項] 設備文件名 掛載點
  • -t文件系統:加入系統文件類型來指定掛載的類型,可以是ext3ext4iso9660等文件系統
  • -o特殊選項:可以指定掛載的額外選項

掛載命令,查詢與自動掛載

  • mount:查詢系統中已經掛載的設備
  • mount -a:依據配置文件/etc/fstb的內容,自動掛載

部分參數說明

  • atime/noatime:更新訪問時間/不更新訪問時間。訪問分區文件時,是否更新文件的訪問時間,默認爲更新。
  • async/sync:異步/同步,默認爲異步
  • auto/noauto:自動/手動,執行mount -a命令時,是否會自動安裝/etc/fstb文件內容掛載,默認自動。
  • defaults:定義默認值,相當於rwsuiddevexecautonouserasync這七個選項。
  • exec/noexec:執行/不執行,設定是否允許在文件系統中執行可執行文件,默認exec允許。
  • remount:重新掛載已掛載的文件系統,一般用於指定修改特殊權限。
  • rw/ro:讀寫/只讀,文件系統掛載時,是否具有讀寫權限,默認rw
  • suid/nosuid:具有/不具有suid權限,設定文件系統是否具有suid和sgid的權限,默認具有
  • user/nouser:允許/不允許普通用戶掛載,設定文件系統是否允許普通用戶掛載,默認不允許,只有root可以掛載分區。
  • usrquota:寫入代表文件系統支持用戶磁盤配額,默認不支持。
  • grpquota:寫入代表文件系統支持組磁盤配額,默認不支持。

掛載光盤

  • 建立掛載點:mkdir /mnt/cdrom/
  • 掛載光盤:mount -t iso9660 /dev/cdrom /mnt/cdrom/,這裏說明下:只是習慣在mnt下建立,media下建立也行。
  • mount /dev/sr0 /mnt/cdrom/

卸載命令

  • unmount 設備文件名或者掛載點
  • 例如:unmount /mnt/cdrom/

掛載U盤

  • fdisk -l:查看U盤設備文件名
  • mount -t vfat /dev/sdb1 /mnt/usb/
    注意:Linux默認不支持NTFS文件系統

2. 用戶登錄查看命令

查看用戶登錄信息,w 用戶名

命令輸出

  • USER:登錄的用戶名
  • TTY:登錄終端
  • FROM:從哪個IP地址登錄
  • LOGIN@:登錄時間
  • DILE:用戶閒置時間
  • JCPU:與該終端連接的所有進程佔用的時間。這個時間裏並不包括過去的後臺作業時間,但包括當前正在運行的後臺作業佔用時間
  • PCPU:當前進程所佔用時間
  • WHAT:當前正在運行的命令
  • w 查詢登錄用戶,顯示系統時間和運行時間,用戶個數以及平均負載。
    w命令

查看登錄用戶信息,who 用戶名
命令輸出:

  • 用戶名,登錄終端,登錄時間(登錄來源IP地址)
    who命令
  • whoami 查看當前用戶
    whoami命令

查詢當前登錄和過去登錄的用戶信息,last

  • last命令默認讀取/var/log/wtmp文件數據
  • 命令輸出:用戶名,登錄終端,登錄IP,登錄時間,退出時間(在線時間)

last命令

查看所有用戶最後一次登錄時間,lastlog

  • lastlog命令默認讀取/var/log/lastlog文件內容
  • 命令輸出:用戶名,登錄終端,登錄IP,最後一次登錄時間

lastlog命令
netstat命令,查看網絡狀態

  • netstat -an | grep ESTABLISHED
    netstat命令

七、shell基礎

1.shell概述

  • shell的兩種主要語法類型有BourneC,這兩種語法彼此不兼容。Bourne家族主要包括:sh、ksh、Bash、psh、zsh;
  • C家族主要包括:csh、tcsh

Bash中其它特殊符號

  • ‘’,單引號。在單引號中所有特殊符號,如"$“和”`"(反引號)都沒有特殊含義
  • “”,雙引號。在雙引號中所有特殊符號除"$"、"、"、"\“外都無特殊含義。”$"、"、"、"“擁有"調用變量的值”、"引用命令"和"轉義符"的含義
  • ``,反引號。反引號括起來的是系統命令,在Bash中會優先執行它。和$()作用一樣,推薦使用$(),反引號容易誤導。
  • $(),與反引號作用相同,用來引用系統命令。
  • #,在shell腳本中,#代表註釋。
  • $,用於調用變量的值,如果需要調用name的值時,需要使用$name獲取變量的值。
  • \,轉義符,跟在\之後的特殊符號將失去特殊含義,變爲普通字符。例如:$將輸出"$"符號,則不會作爲變量引用。

2 .腳本執行方式

#編寫一個簡單的linux腳本,使用vim命令

vim /home/hello.sh 

#注意你的腳本開頭必須加上:#!/bin/bash

#!/bin/bash  
echo "hello world"  >> /root/hello.log

#賦予讀和執行權限 
chmod 755 /hello.sh

#使用 sh hello.sh 命令執行

3. 別名與快捷鍵

查看與設定別名

  • alias 命令,查看系統命令中所有的命令別名
  • alias 別名 = ‘原命令’,設定命令別名,當然這樣設置只會臨時生效

別名永久生效與刪除別名

  • vi ~/.bashrc,寫入環境變量配置文件
  • unalias 別名,刪除別名

命令生效順序

  • 第一順位執行用絕對路徑或相對路徑執行的命令
  • 第二順位執行別名
  • 第三順位執行Bash的內部命令
  • 第四順位執行按照$PATH環境變量定義的目錄查找順序找到的第一個命令

4. 歷史命令history [選項][歷史命令保存文件]

  • -c:清空歷史命令
  • -w:把緩存中的歷史命令寫入歷史命令保存文件~/.bash_history

歷史命令的調用

  • 使用上、下箭頭調用以前的歷史命令
  • 使用"!n"重複執行第n條命令
  • 使用"!!"重複執行上一條命令
  • 使用"!字符串"重複執行最後一條以該字符串開頭的命令

5. 輸出重定向

echo輸出命令 [選項][輸出內容]

  • -e:支持反斜線控制的字符轉換

控制字符作用

  • \a:輸出警告音
  • \b:退格鍵,向左刪除
  • \n:換行符
  • \r:回車鍵
  • \t:製表符,TAB鍵
  • \v:垂直製表符
  • \0nnn:按照八進制ASCII碼輸出字符。其中0爲數字零,nnn爲三位八進制數。
  • \xhh:按照十六進制ASCII碼輸出字符。hh是兩位十六進制數。

例如:echo "cangls" >> av.avi,表示以追加形式將蒼老師輸出到av文件中。

標準輸出重定向:

  • 命令 > 文件,以覆蓋的方式,把命令的正確輸出到指定的文件或設備當中

  • 命令 >> 文件,以追加的方式,把命令的正確輸出到指定的文件或設備當中

  • 錯誤命令 2> 文件,以覆蓋的方式,把命令的錯誤輸出到指定的文件或設備當中

  • 錯誤命令 2>> 文件,以追加的方式,把命令的錯誤輸出到指定的文件或設備當中

正確輸出和錯誤輸出同時保存:

  • 命令 > 文件 2>&1,以覆蓋的方式,把命令的正確和錯誤輸出保存在同一個文件中
  • 命令 >> 文件 2>&1,以追加的方式,把命令的正確和錯誤輸出保存在同一個文件中
  • 命令 &> 文件,以覆蓋的方式,把命令的正確和錯誤輸出保存在同一個文件中
  • 命令 &>>文件,以追加的方式,把命令的正確和錯誤輸出保存在同一個文件中
  • 命令 >> 文件1 2>> 文件2,把正確的輸出到文件1中,錯誤的輸出到文件2中

有出重定向,當然也有輸入重定向,瞭解就行。
wc [選項][文件名]

  • -c:統計字節數
  • -w:統計單詞數
  • -l:統計行數

最後總結出實用的幾種,以追加的形式把錯誤和正確的結果輸出到文件中:

  • 命令 >> 文件 2>&1
  • 命令 &>> 文件
  • 命令 >> 文件1 2>> 文件2

6. 管道符

命令格式

  • 命令1 | 命令2,命令1的正確輸出作爲命令2的操作對象

多命令順序執行

  • ;,格式1:命令2,多個命令順序執行,命令之間沒有任何邏輯關係
  • &&,命令1&&命令2,邏輯與,當命令1正確執行,命令2纔會執行;命令1無法正確執行,命令2不會執行
  • ||,命令1||命令2,邏輯或,當命令1非正確執行,命令2纔會執行;命令1正確執行,命令2不會執行

7. 通配符

linux中的通配符

  • *,匹配任意內容
  • ?,匹配任意一個字符
  • [],匹配任意一箇中括號內的字符,例如[abc]代表匹配一個字符,可能是a,也可能是b或c。
  • [-],匹配中括號裏的任意一個字符,-代表一個範圍,例如:[a-z]代表匹配一個小寫字母。
  • [ ^ ],邏輯非,匹配不是中括號裏的一個字符,例如:[^0-9]代表匹配一個非數字的字符。

思來想去還是把這幾個總結放在最後

安裝完系統後,使用date命令,發現虛擬機的時間不對,是不是感覺有點不舒服,強迫症得把它改回來。首先使用chkconfig --list | grep ntpdate命令進行檢查是否安裝服務,chkconfig命令是針對rpm包安裝的服務的。假如沒安裝,使用yum -y install ntpdate命令安裝。
chkconfig命令
使用此命令:ntpdate time.windows.com,校對時間,值得注意的是這樣只會臨時生效。

這裏還是寫詳細點,通過vim命令編輯文件,vim [文件名]。想編輯這個文件,會有提示按i鍵插入,退出保存輸入:wq,不保存退出輸入q!

這會有小夥伴會問了,每次開機啓動都要手動執行校對時間命令豈不是很麻煩,別急嘛。這不貼心的暖男給你們找出解決方法了,編輯vim /etc/rc.local 文件 ,寫入ntpdate time.windows.com就OK了。如下圖所示:
在這裏插入圖片描述

添加用戶與設置密碼,這裏再補充一個常用的命令,有時候爲了學習方便,你會去新建幾個普通用戶進行測試。使用useradd命令添加用戶,使用passwd命令修改密碼。

useradd [選項]
useradd 接用戶名,例如:useradd user1,新建一個user1用戶,當然useradd也可以加參數,使用man useradd命令可查看幫助文檔,後面會總結到的。如下圖,你進入了幫助文檔,按上下鍵往下翻。想退出,按q鍵就可以直接退出幫助文檔了。

passwd [選項]
passwd 用戶名,例如:passwd user1,修改user1的密碼,同樣使用上面提到的man幫助命令可以查看幫助文檔。

瞭解一些常用的快捷鍵,很實用的

  • ctrl + c:強制終止當前命令
  • ctrl + l:清屏
  • ctrl + a:光標移動到命令行首
  • ctrl + e:光標移動到命令行尾
  • ctrl + u:從光標所在位置刪除到行首
  • ctrl + z:把命令放入後臺
  • ctrl + r:在歷史命令中搜索

TAB快捷鍵,命令與補全文件。在Bash中,命令與文件補全是非常方便與常用的功能,只要在輸入命令或文件時,按"TAB"鍵就會自動補全。

好了,到此爲止就是此篇文章的全部內容了,能看到這的都是帥哥靚妹啊!!!祝在座的各位客官們鼠年大吉,“鼠”不盡的快樂!“鼠”不盡的收穫!“鼠”不盡的鈔票!“鼠”不盡的笑容!“鼠”不盡的幸福!“鼠”不盡的甜蜜!“鼠”不盡的激情!“鼠”不盡的活力!“鼠”不盡的健康!

尾聲

相信小夥伴們看了這篇博客,對linux操作系統的基本命令肯定是有所瞭解了。centos、ubantu等等這些都是類Unix操作系統,命令使用都大同小異,基本上很多都是通用的,用啥系統都因人而異。不過也得適應公司所使用的,個人比較喜歡用centos而已。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章