【Linux】Linux基本常用命令

有心部落格發表於2017-09-29

首先來介紹下Linux目錄結構

  • bin:(binaries)存放二進位制可執行檔案
  • sbin:(super user binaries)存放二進位制可執行檔案,只有root才能訪問。
  • etc:(etcetera)存放系統配置檔案
  • usr:(unix shared resources)用於存放共享的系統資源
  • home:存放使用者檔案的根目錄
  • root:超級使用者目錄
  • dev:(devices)用於存放裝置檔案
  • lib:(library)存放跟檔案系統中的程式執行所需要的共享庫及核心模組
  • mnt:(mount)系統管理員安裝臨時檔案系統的安裝點
  • boot存放用於系統引導時使用的各種檔案
  • tmp:(temporary)用於存放各種臨時檔案
  • var:(variable)用於存放執行時需要改變資料的檔案

切換目錄命令 — cd

  • cd app:切換到app目錄
  • cd ..:切換到上一層目錄
  • cd /:切換到系統根目錄
  • cd ~:切換到使用者主目錄
  • cd -:切換到上一個所在目錄

列出檔案列表

  • ls(list)是一個非常有用的命令,用來顯示當前目錄下的內容。配合引數的使用,能以不同的方式顯示目錄內容。
  • 格式:ls[引數] [路徑或檔名]

常用:
在linux中以.開頭的檔案都是隱藏的檔案

  • ls:
  • ls -a:顯示所有檔案或目錄(包含隱藏的檔案)
  • ls -l:縮寫成ll

建立目錄和移除目錄命令 — mkdir、rmdir

  • mkdir(make directory)命令可用來建立子目錄。
    • mkdir app:在當前目錄下建立app目錄
    • mkdir -p app2/test:建立多層級目錄app2/test
  • rmdir(remove directory)命令可用來刪除“空”的子目錄
    • rmdir app:刪除app目錄

瀏覽檔案

【cat、more、less】

  • cat
    • 用於顯示檔案的所有內容
    • 格式:cat 檔名
  • more
    • 一般用於要顯示的內容會超過一個畫面長度的情況。
    • 按空格鍵顯示下一個畫面。
    • 回車顯示下一行內容。
    • 按q建退出檢視。
    • 舉例:
      • more yum.conf
      • 空格顯示下一頁資料 回車顯示下一行的資料
  • less
    • 用法和more類似,不同的是less可以通過PgUp、PgDn鍵來控制。
    • 案例:
      • less yum.conf
  • tail
    • tail命令是在實際使用過程中使用非常多的一個命令,它的功能是:用於顯示檔案後幾行的內容。
    • 用法:
      • tail - 10 /etc/passwd:檢視後10行資料
      • tail -f catalina.log:動態檢視日誌(*
        • Ctrl + C結束檢視

檔案操作

  • 【rm命令】

    • rm:刪除檔案
      • 用法:
        • rm a.txt 刪除a.txt檔案(建立檔案touch a.txt)
      • 刪除需要使用者確認,y/n
    • rm:刪除不詢問
      • rm -f a.txt:不詢問,直接刪除
    • rm:刪除目錄
      • rm -r a:遞迴刪除
    • 不詢問遞迴刪除(慎用)
      • rm -rf a:不詢問遞迴刪除
      • rm -rf *:刪除所有檔案
      • rm -rf /*:刪除根目錄下所有檔案(自殺)
  • 【cp、mv命令】

    • cp(copy)命令可以將檔案從一處複製到另一處。一般在使用cp命令時將一個檔案複製成另一個檔案或複製到某目錄時,需要指定原始檔名與目標檔名或目錄。
      • cp a.txt b.txt:將a.txt複製為b.txt檔案
      • cp a.txt ../:將a.txt檔案複製到上一層目錄中
    • mv:移動或者重新命名
      • mv a.txt ../:將a.txt檔案移動到上一層目錄中
      • mv a.txt b.txt:將a.txt檔案重新命名為b.txt
  • 【tar命令】

    • tar命令位於/bin目錄下,它能夠將使用者所指定的檔案或目錄打包成一個檔案,但不做壓縮。一般Linux上常用的壓縮方式是選用tar將許多檔案打包成一個檔案,再以gzip壓縮命令壓縮成xxx.tar.gz(或稱為xxx.gz)的檔案。

    • 常用引數:

      • c:建立一個新tar檔案
      • v:顯示執行過程的資訊
      • f:指定檔名
      • z:呼叫gzip壓縮命令進行壓縮
      • t:檢視壓縮檔案的內容
      • x:解開tar檔案
    • 打包:
      • tar -cvf xxx.tar ./*:將當前目錄打包為xxx.tar檔案
    • 打包並且壓縮:
      • tar -zcvf xxx.tar.gz ./*:將當前目錄打包並且壓縮
    • 解壓:
      • tar -xvf xxx.tar
      • tar -xvf xxx.tar.gz -C /user/aaa
  • 【grep命令】

    • 查詢符合條件的字串
      • grep lang anaconda-ks.cfg:在檔案中查詢lang
      • grep lang anaconda-ks.cfg -color:高亮顯示

其他常用命令


Vi和Vim編輯器

在Linux下一般使用vi編輯器來編輯檔案。
vi即可以檢視也可以編輯檔案。
三種模式:命令列、插入、底行模式。
切換到命令列模式:按Esc鍵;
切換到插入模式:按i,o,a鍵;

  • i:在當前位置生前插入
  • I:在當前首行插入
  • a:在當前位置後插入
  • A:在當前行尾插入
  • o:在當前行之後插入一行
  • O:在當前行之前插入一行

  • 使用說明

    • 開啟檔案:vi a.txt
    • 退出檔案:
      • esc –> :q【退出】
      • esc –> :wq【儲存並退出】
      • esc –> :q!【不儲存退出】
    • 修改檔案:
      • 輸入i進入插入模式
    • 3種進入插入模式:
      • i:在當前的游標所在處插入
      • o:在當前游標所在的行的下一行插入
      • a:在游標所在的下一個字元插入
    • 快捷鍵【按下esc之後錄入】:
      • dd:快速刪除一行
      • R:替換

重定向輸出

  • >重定向輸出,覆蓋原有內容;
  • >>重定向輸出,在原有內容基礎上追加輸出內容
  • 示例
    • cat /etc/passwd > a.txt:將輸出定向到a.txt中
    • cat /etc/passwd >> a.txt:輸出並且追加
    • ifconfig > ifconfig.txt:將ifconfig命令結果輸出

管道

  • 管道是Linux命令中最重要的一個概念,其作用是將
    一個命令的輸出作用另一個命令的輸入。
  • 示例:

    • ls –help | more:分頁查詢幫助資訊
    • ps -ef | grep java:查詢名稱中包含java的程式

    • ifconfig | more:分頁檢視閘道器資訊

    • cat index.html | more:分頁檢視index.html資訊
    • ps -ef | grep aio:檢視名包含aio的程式

&&命令執行控制

  • 命令之間使用&&連線,實現邏輯與的功能。
    • 只有在&&左邊的命令返回,&&右邊的命令才會被執行。
    • 只要有一個命令返回假,後面的命令就不會被執行。
    • mkdir test && cd test

網路通訊命令

  • ifconfig:顯示或設定網路裝置
    • ifconfig:顯示網路裝置
    • ifconfig eth0 up:啟用eth0網路卡
    • ifconfig eth0 down:停用eth0網路卡
      -ping:探測網路是否通暢。
    • ping 192.168.0.1
  • netstat:檢視網路埠。
    • netstat -an | grep 3306:查詢3306埠占用情況。

系統管理命令

  • date:顯示或設定系統時間
    • date:顯示當前系統時間
    • date -s“2014-01-01 10:10:10”設定系統時間
  • df:顯示磁碟資訊
    • df -h:友好顯示大小
  • free:顯示記憶體狀態
    • free -m以mb單位顯示記憶體組昂頭
  • top:顯示,管理執行中的程式
  • clear:清螢幕
  • ps:正在執行的某個程式的狀態
    • ps -ef:檢視所有程式
    • ps -ef | grep ssh:查詢某一程式
  • kill:殺掉某一程式
    • kill 2868:殺掉2868編號的程式
    • kill -9 2868:強制殺死程式
  • du:顯示目錄或檔案的大小
    • du -h:顯示當前目錄的大小
  • who:顯示目前登入系統的使用者資訊。
  • hostname:檢視當前主機名
    • 修改:vi /etc/sysconfig/network
  • uname:顯示系統資訊
    • uname -a顯示本機詳細資訊
    • 依次為:核心名稱(類別),主機名,核心版本號,核心版本,核心編譯日期,硬體名,處理器型別,硬體平臺型別,作業系統名稱。

Linux的使用者和組

  • useradd新增一個使用者
    • useradd test:新增test使用者
    • useradd test -d /home/t1:指定使用者home目錄
  • passwd:設定、修改密碼
    • passwd test:為test使用者設定密碼
  • 切換登入:
    • ssh -l test -p 22 192.168.19.128
    • su - 使用者名稱
  • userdel:刪除一個使用者
    • userdel test:刪除test使用者(不會刪除home目錄)
    • userdel -r test:刪除使用者以及home目錄。

組管理

  • 當在建立一個新使用者user時,若沒有指定他所屬於的組,就建立一個和該使用者同名的私有組。
  • 建立使用者也可以指定所在組。
  • groupadd:建立組
    • groupadd public:建立一個名為public的組
    • useradd u1 -g public:建立使用者指定組
  • groupdel:刪除組,如果改組有使用者成員,必須先刪除使用者才能刪除組。
    • groupdel public

id、su命令

  • 【id命令】
    • 功能:檢視一個使用者的UUID和GID
    • 用法:
      • id:檢視當前使用者
      • id test:檢視test使用者
  • 【su命令】

    • 功能:切換使用者
    • 用法:
      • su - ul切換到ul使用者,並且將環境也切換到ul使用者的環境(推薦使用)
  • 【賬戶檔案】

    • /etc/passwd:使用者檔案
    • /etc/shadow:密碼檔案
    • /etc/group:組資訊檔案

Linux的許可權命令

  • 【檔案許可權】
    • 檔案10個字元標識的意思
      • 例如:-rwxrwxr–
        • 第一個-:表示檔案型別
        • 第2、3、4字元:表示當前使用者的許可權
        • 第5、6、7字元:表示當前使用者的組許可權
        • 第8、9、10字元:表示其他使用者的許可權
    • r:權重4
    • w:權重2
    • x:權重1

  • 【Linux三種檔案型別】
    • 普通檔案(-)
    • 目錄(d)
    • 符號連結(l)
      • 進入etc可以檢視,相當於快捷方式
    • 字元裝置檔案(c)
    • 塊裝置檔案(s)
    • 套接字(s)
    • 命名管道(p)

  • 【檔案許可權管理】
    • chmod變更檔案或目錄的許可權
      • chmod 755 a.txt
      • chmod u=rwx,g=rx,o=rx a.txt
      • chmod 000 a.txt / chmod 777 a.txt
    • chown:變更檔案或目錄改檔案所屬使用者和組
      • chown ul:public a.txt:變更當前的目錄或檔案的所屬使用者和組
      • chown -R u1:public dir:變更目錄中的所有子目錄及檔案的所屬使用者和組