Linux 經常使用命令一覽

  本篇博文講述系統內核、Bash解釋器的關係與做用,如何正確的執行Linux命令以及常見排錯方法。
  
  經驗豐富的運維人員能夠恰當的組合命令與參數,使Linux字符命令更加的靈活且相對減小消耗系統資源。
  
  強大好用的SHELL
  
  計算機硬件是由運算器、控制器、存儲器、輸入/輸出設備等設備組成的,而可以讓機箱內各類設備各司其職東西就叫作——系統內核。內核負責驅動硬件、管理活動和分配/管理硬件資源,如此說來系統內核對計算機來說可真的是過重要了,因此它不能直接讓用戶操做。
  
  由於用戶不能直接控制硬件也不能直接操做內核,因而便須要基於「系統調用接口」開發出的程序/服務來知足用戶平常工做了。
  
  這裏寫圖片描述
  
  首先認可在紅帽RHEL7中有些諸如邏輯卷管理器(LVM)的圖形化工具很是好用,也減小了運維人員操做出錯的概率,值得稱讚,但一直以來Linux運維人員更多的傾向於用命令寫腳本程序,由於圖形化的工具不靈活並且相比來講更加消耗系統資源。
  
  其實不少圖形工具也是調用腳原本工做的,但功能卻被「閹割」了,更缺少了靈活性,因此有些運維人員甚至都不會給Linux系統安裝圖形界面,須要工做了直接遠程鏈接過去,不得不說這樣作真的挺高效的。
  
  這裏寫圖片描述
  
  「Shell「——也可稱爲「殼」,充當的是人與內核(硬件)的翻譯官,用戶將一些命令「告訴」Shell,它就會調用相應的程序服務執行工做啦~~如今包括紅帽系統在內的許多熱門Linux系統主流默認字符Shell是Bash(Bourne-Again SHell)。
  
  bash做爲大多數linux系統的默認字符解釋器,必須得學好!Bash的優點:
  
  1.默認保存歷史命令(可用上下鍵翻看)
  
  2.命令僅需輸入前幾位就能夠用tab鍵補全(RHEL7更牛的是參數補全)
  
  3.強大的批處理腳本
  
  4.實用的環境變量
  
  執行命令與查看幫助 man
  
  既然有了如此好用的「翻譯官」,那麼接下來就有必要好好學習下如何更高效的和它溝通了~
  
  要想準確的、高效的完成工做,不可以光靠命令自己,還應該根據實際狀況來組合各類命令選擇和命令參數:
  
  命令名稱 [命令參數] [命令對象]
  
  1
  
  1
  
  注意:命令名稱、命令參數、命令對象之間請用空格鍵分隔。
  
  比較好理解的是命令對象,命令對象通常是指要處理的目標(普通文件/目錄文件/用戶等等),而命令參數對於新手來說比較麻煩,由於這個值會隨命令的不一樣和環境狀況的不一樣而異,因此在參數選擇搭配上須要長時間的經驗積累才能夠。
  
  命令的參數能夠選用長格式(完整的選項名稱)也可選用短格式(單個字母的縮寫),分別用」—「與」–「作前綴。
  
  長格式如:man —help
  
  短格式如:man -h
  
  1
  
  2
  
  1
  
  2
  
  當遇到了一個陌生命令後如何知道它有那些可用的參數?這時就能夠用man命令了。
  
  man命令的可用幫助文檔分類有:
  
  這裏寫圖片描述
  
  通常來說幫助文件都很長不少,若是你想翻看的話,就要理解幫助文檔的目錄結構與操做方法:
  
  這裏寫圖片描述
  
  經常使用系統工做命令
  
  echo
  
  echo命令用於在終端顯示字符串或變量,
  
  格式爲:echo [字符串 | 變量]
  
  將echo命令的字符串輸出到終端:
  
  [root@xgj~]# echo xgj
  
  xgj
  
  1
  
  2
  
  1
  
  2
  
  用echo命令查看SHELL變量的值(前面有$符號):
  
  [root@xgj~]# echo $SHELL
  
  /bin/bash
  
  1
  
  2
  
  1
  
  2
  
  查看本機主機名:
  
  [root@xgj~]# echo $HOSTNAME
  
  xgjlinux

  
  date
  
  date命令用於顯示/設置系統的時間或日期,
  
  格式爲:date [選項] [+指定的格式]
  
  強大的date命令可以按照指定格式顯示系統的時間或日期,只需鍵入」+」號開頭的字符串指定其格式.
  
  詳細格式以下:
  
  這裏寫圖片描述
  
  查看當前的系統時間:
  
  [root@xgj ~]# date
  
  Mon Aug 24 16:11:23 CST 2016
  
 
  
  按照」年-月-日 小時:分鐘:秒」的格式:
  
  [root@xgj ~]# date "+%Y-%m-%d %H:%M:%S"
  
  2017-05-04 16:29:12
  bash

  
  設置系統時間爲2017年5月1日8點半:
  
  [root@xgj ~]# date -s "20170501 8:30:00"
  
  Mon May 1 08:30:00 CST 2015
  
  1
 
  2
  
  查看本地系統時區:
  
  [root@xgj ~]# date "+%Z"
  
  CST
  網絡

  查看星期幾:
  
  [root@xgj ~]# date "+%A"
  
  Tuesday
  
  1
  
  2
  
  1
  
  2
  
  輸入當前是上午仍是下午:
  
  [root@xgj Desktop]# date "+%p"
  
  AM運維

  2
  
  判斷今天是一年中的第幾天:
  
  [root@xgj ~]# date "+%j"
  
  244
  
  1
  
  2
  
  1
  
  2
  
  reboot
  
  reboot命令用於重啓系統(僅root用戶可使用),格式爲:」reboot」。
  
  重啓計算機:
  
  [root@xgj ~]# reboot
  
  
  wget
  
  wget命令用於使用命令行下載網絡文件,
  
  格式爲:wget [參數] 下載地址
  
  這裏寫圖片描述
  
  系統狀態檢測命令
  
  合格的運維人員必需具有快速查看系統狀態的能力.
  
  ifconfig
  
  ifconfig用於獲取網卡配置與網絡狀態等信息:格式爲ifconfig [網絡設備] [參數]
  
  查看本機當前的網卡配置與網絡狀態等信息:
  
  [root@xgj ~]# ifconfig
  
  ......
  
  ......
  
  1
  
  2
  
  3
  
  1
  
  2
  
  3
  
  uname
  
  uname命令用於查看系統內核版本等信息,格式爲:「uname [-a]」。
  
  查看系統的內核名稱、內核發行版、內核版本、節點名、硬件名稱、硬件平臺、處理器類型、操做系統等信息:
  
  [root@xgj ~]# uname -a
  
  1
  
  1
  
  順便說下,若是您想查看系統詳細版本信息就看www.22yigouyule.cn/ redhat-release文件:
  
  [root@xgj ~]# cat /etc/redhat-release
  
  1
  
  1
  
  uptime 查看系統的負載狀況
  
  uptime命令用於查看系統的負載狀況,格式爲:「uptime」。
  
  我也常常用」watch -n 1 uptime「來每秒刷新一次得到當前的系統負載狀況,輸出內容分別爲系統當前時間、系統已運行時間、當前在線用戶以及平均負載值。
  
  而平均負載分爲最近1分鐘、5分鐘、15分鐘的系統負載狀況,負載值越低越好(小於1是正常)。
  
  獲取當前系統狀態信息:
  
  [root@xgj ~]# uptime
  
  22:49:55 up 10 min, 2 users, load average: 0.01, 0.19, 0.18
  
  1
  
  2
  
  1
  
  2
  
  free
  
  free命令用於顯示當前系統中內存的使用量狀況,格式爲:free [www.xyseo.net -m/-g]
  
  以m爲單位顯示當前系統中內存的使用量狀況:
  
  [root@xgj ~]# free -m
  
  1
  
  1
  
  這裏寫圖片描述
  
  who
  
  [root@xgj ~]# who
  
  1
  
  1
  
  這裏寫圖片描述
  
  last
  
  last命令用於查看全部系統的登入記錄,格式爲:」last [參數]」。
  
  [root@xgj ~]# last
  
  root pts/0 :0 Mon Aug 24 17:52 still logged in
  
  root :0 :0 Mon Aug 24 17:52 still logged in
  
  (unknown :0 :0 Mon Aug 24 17:50 - 17:52 (http://xucaizxyl.com/:02)
  
  reboot system boot 3.10.0-123.el7.x Tue Aug 25 01:49 - 18:17 (-7:-32)
  
  root pts/0 :0 Mon Aug 24 15:40 - 08:54 (7+17:14)
  
  root pts/0 :0 Fri Jul 10 10:49 - 15:37 (45+04:47)
  
  history
  
  history命令用於顯示歷史執行過的命令,格式爲:「history [-c]」。
  
  歷史命令會被保存到用戶家目錄中的」.bash_history「文件中。Linux系統中以點(.)開頭的文件均表明隱藏文件,通常會是系統文件。
  
  清空該用戶在本機中執行過命令的歷史記錄:
  
  [root@xgj ~]# history -c
  
  1
  
  1
  
  history默認會保存1000條執行過的命令,若要修改可直接編輯/etc/profile文件的HISTSIZE值。
  
  sosreport
  
  sosreport命令用於收集系統系統配置並診斷信息後輸出結論文檔,格式爲:「sosreport」。
  
  當咱們的紅帽系統出現故障須要聯繫紅帽廠商或其餘技術支持時,大多數狀況都須要提供使用到這個命令。
  
  收集系統本地配置信息並診斷:
  
  [root@xgj ~http://027yeshenghuowang.com/]# sosreport
  
  1
  
  1
  
  工做目錄切換命令
  
  pwd
  
  pwd命令用於顯示當前的工做目錄,格式爲:「pwd [選項]」。
  
  這裏寫圖片描述
  
  cd
  
  cd命令用於切換工做路徑,格式爲:「cd [目錄名稱]」
  
  這裏寫圖片描述
  
  切換進/etc目錄中:
  
  [root@xgj ~]# cd /etc
  
  1
  
  1
  
  切換進/bin目錄中:
  
  [root@xgj etc]# cd /bin
  
  1
  
  1
  
  返回上級目錄(即/etc目錄):
  
  [root@xgj bin]# cd -
  
  /etc
  
  1
  
  2
  
  1
  
  2
  
  返回用戶本身的家目錄:
  
  [root@xgj etc]# cd ~
  
  [root@xgj ~]#
  
  1
  
  2
  
  1
  
  2
  
  ls
  
  ls命令用於查看目錄中有那些文件,格式爲:ls [選項] [文件]
  
  查看當前目錄下有那些文件(長格式):
  
  這裏寫圖片描述
  
  查看/etc目錄中有那些文件:
  
  [root@xgj ~]# ls /etc
  
  ………省略部分文件………
  
  1
  
  2
  
  1
  
  2
  
  查看/etc目錄的權限與屬性:
  
  [root@xgj ~]# ls -ld /etc
  
  drwxr-xr-x. 132 root root 8192 Jul 10 10:48 /etc
  
  1
  
  2
  
  1
  
  2
  
  追加-h參數,以K/M/G爲單位顯示容量:
  
  [root@xgj ~]# ls -ldh /etc
  
  drwxr-xr-x. 132 root root 8.0K Jul 10 10:48 /etc
  
  1
  
  2
  
  3
  
  1
  
  2
  
  3
  
  文本文件編輯命令
  
  cat
  
  cat命令用於查看純文本文件(較短的),格式爲:「cat [選項] [文件]」。
  
  查看文本文件:
  
  [root@xgj ~]# cat 文件名
  
  1
  
  1
  
  這裏寫圖片描述
  
  more
  
  more命令用於查看純文本文件(較長的),格式爲:「more [選項] 文件」。
  
  查看文本文件:
  
  [root@xgj ~]# more 文件名
  
  1
  
  1
  
  這裏寫圖片描述
  
  head
  
  head命令用於查看純文本文檔的前N行,格式爲:「head [選項] [文件]」。
  
  查看文本文件前20行:
  
  [root@xgj ~]# head -n 20 文件名
  
  1
  
  1
  
  這裏寫圖片描述
  
  tail
  
  tail命令用於查看純文本文檔的後N行,格式爲:「tail [選項] [文件]」
  
  查看文本文件後20行:
  
  [root@xgj ~]# tail -n 20 文件名
  
  1
  
  1
  
  這裏寫圖片描述
  
  od
  
  od命令用於對查看特殊格式的文件,格式爲:「od [選項] [文件]」
  
  這裏寫圖片描述
  
  tr
  
  tr命令用於轉換文本文件中的字符,格式爲:「tr [原始字符] [目標字符]」。
  
  將tr.txt文件的內容轉換成大寫
  
  | —管道命令符
  
  [root@xgj ~]# cat tr.txt | tr [a-z] [A-Z]
  
  RED HAT CERTIFIED
  
  FREE LINUX LESSONS
  
  PROFESSIONAL GUIDANCE
  
  LINUX COURSE
  
  1
  
  2
  
  3
  
  4
  
  5
  
  1
  
  2
  
  3
  
  4
  
  5
  
  wc
  
  wc命令用於統計指定文本的行數、字數、字節數,格式爲「wc [參數] 文本」。
  
  這裏寫圖片描述
  
  統計當前系統中的用戶個數:
  
  [root@xgj ~]# wc -l /etc/passwd
  
  38 /etc/passwd
  
  1
  
  2
  
  1
  
  2
  
  cut
  
  cut命令用於經過列來提取文本字符,格式爲:「cut [參數] 文本」。
  
  這裏寫圖片描述
  
  獲取當前系統中全部用戶的名稱:
  
  參數做用:-d以」:」來作分隔符,-f參數表明只看第一列的內容。
  
  [root@xgj ~]# cut -d: -f1 /etc/passwd
  
  1
  
  1
  
  獲取root用戶的默認SHELL解釋器:
  
  [root@xgj ~]# grep ^root /etc/passwd | cut -d: -f 7
  
  /bin/bash
  
  1
  
  2
  
  1
  
  2
  
  diff
  
  diff命令用於比較多個文本文件的差別,格式爲:」diff [參數] 文件」。
  
  這裏寫圖片描述
  
  比較兩個文件的差別:
  
  [root@xgj ~]# diff diff_A.txt diff_B.txt
  
  1c1,2
  
  > Welcome to xgj.com
  
  ---
  
  > Welcome tooo xgj.com
  
  >
  
  3c4,5
  
  > Free Linux Lessons
  
  ---
  
  > Free Linux LeSSonS
  
  > ////////.....////////
  
  1
  
  
  僅顯示比較後的結果,即相同或不相同:
  
  [root@xgj ~]# diff --brief diff_A.txt diff_B.txt
  
  Files diff_A.txt and diff_B.txt differ
  
  1
  
  2
  
  1
  
  2
  
  使用上下文輸出的格式:
  
  [root@xgj ~]# diff -c diff_A.txt diff_B.txt
  
  *** diff_A.txt 2015-08-30 18:07:45.230864626 +0800
  
  --- diff_B.txt 2015-08-30 18:08:52.203860389 +0800
  
  ***************
  
  *** 1,5 ****
  
  ! Welcome to xgj.com
  
  Red Hat certified
  
  ! Free Linux Lessons
  
  Professional guidance
  
  Linux Course
  
  --- 1,7 ----
  
  ! Welcome tooo xgj.com
  
  !
  
  Red Hat certified
  
  ! Free Linux LeSSonS
  
  ! ////////.....////////
  
  Professional guidance
  
  Linux Course
  
  18
  
  1
  
  2
  
  3
  
  4
  
  5
  
  6
  
  7
  
  8
  
  9
  
  10
  
  11
  
  12
  
  13
  
  14
  
  15
  
  16
  
  17
  
  18
  
  文件目錄管理命令
  
  touch
  
  touch命令用於建立空白文件與修改文件時間,格式爲:「touch [選項] [文件]」。
  
  咱們能夠用「touch test」輕鬆的建立出一個名字爲test的空白文檔,因此這個功能無須介紹。
  
  對於在Linux中的文件有三種時間:
  
  - 更改時間(mtime):內容修改時間(不包括權限的)
  
  - 更改權限(ctime):更改權限與屬性的時間
  
  - 讀取時間(atime):讀取文件內容的時間
  
  若是黑客執行了touch -d 「2 days ago」 test,便將訪問與修改時間修改成了2天前(僞造了本身沒有動過該文件的假象)。
  
  這裏寫圖片描述
  
  mkdir
  
  mkdir用於建立空白的文件夾,格式爲:「mkdir [選項] 目錄」。
  
  建立文件夾:
  
  [root@xgj ~]# mkdir 文件夾名
  
  1
  
  1
  
  這裏寫圖片描述
  
  建立一個名字叫xgj的目錄:
  
  [root@xgj ~]# mkdir xgj
  
  1
  
  1
  
  使用ls命令查看該目錄的權限屬性等信息:
  
  [root@xgj ~]# ls -ld xgj/
  
  drwxr-xr-x. 2 root root 6 Aug 24 19:25 xgj/
  
  1
  
  2
  
  1
  
  2
  
  還記得剛剛用cd命令進入xgj目錄嗎?這裏是個小技巧,變量!$或(鍵盤按鍵)表明上一條命令的參數。
  
  [root@xgj ~]# cd !$
  
  cd xgj
  
  1
  
  2
  
  1
  
  2
  
  pwd命令用於顯示當前的工做路徑。
  
  [root@xgj xgj]# pwd
  
  /root/Desktop/xgj
  
  1
  
  2
  
  1
  
  2
  
  一次建立5個目錄a/b/c/d/e:
  
  [root@xgj xgj]# mkdir -p a/b/c/d/e
  
  1
  
  1
  
  查看目錄的屬性,驗證是否成功:
  
  [root@xgj xgj]# ls -ld a/b/c/d/e/
  
  drwxr-xr-x. 2 root root 6 Aug 29 10:16 a/b/c/d/e/
  
  1
  
  2
  
  1
  
  2
  
  cp
  
  cp命令用於複製文件或目錄,格式爲:「cp [選項] 源文件 目標文件」。
  
  複製命令的三種狀況:
  
  - 目標文件是一個目錄,會將源文件複製到該目錄中。
  
  - 目標文件是一個文件,會將源文件覆蓋該文件。
  
  - 目標文件不存在,將會複製源文件並修改成目標文件的名稱(重命名)
  
  這裏寫圖片描述
  
  建立一個名爲install.log的文件:
  
  [root@xgj ~]# touch install.log
  
  1
  
  1
  
  將install.log複製爲x.log:
  
  [root@xgj ~]# cp install.log x.log
  
  1
  
  1
  
  查看到確實出現了文件x.log
  
  [root@xgj ~]# ls
  
  install.log x.log
  
  1
  
  2
  
  1
  
  2
  
  mv
  
  mv命令用於移動文件或更名,格式爲:「mv [選項] 文件名 [目標路徑|目標文件名]」。
  
  將文件aaa重命名爲bbb:
  
  [root@xgj ~]# mv aaa bbb
  
  1
  
  1
  
  rm
  
  rm命令用於刪除文件或目錄,格式爲:「rm [選項] 文件」。
  
  刪除普通文件並提示確認信息:「rm 文件名」
  
  刪除普通文件或目錄文件,不提示:「rm -rf 文件或目錄名」
  
  這裏寫圖片描述
  
  查看當前目錄下的文件:
  
  [root@xgj ~]# ls
  
  install.log x.log
  
  1
  
  2
  
  1
  
  2
  
  刪除install.log文件,輸入」y」即確認:
  
  [root@xgj ~]# rm install.log
  
  rm: remove regular empty file ‘install.log’? y
  
  1
  
  2
  
  1
  
  2
  
  刪除x.log文件而無需確認:
  
  [root@xgj ~]# rm -rf x.log
  
  1
  
  1
  
  Linux系統中還有一個rmdir命令,它不一樣於rm -rf命令會刪除一切,而是僅刪除空目錄,遇到目錄內有文件時則報錯。
  
  dd
  
  dd命令用於指定大小的拷貝的文件或指定轉換文件,格式爲:「dd [參數]」。
  
  這裏寫圖片描述
  
  將光驅設備拷貝成鏡像文件:
  
  [root@xgj ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-xgj.Com.iso
  
  7311360+0 records in
  
  7311360+0 records out
  
  生成一個560m的空白文件:
  
  [root@xgj ~]# dd if=/dev/zero of=560_file count=1 bs=560M
  
  1+0 records in
  
  1+0 records out
  
  587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s
  
  將硬盤的MBR信息拷貝出來:
  
  [root@xgj ~]# dd if=/dev/sda of=sda_image count=1 bs=512K
  
  1+0 records in
  
  1+0 records out
  
  524288 bytes (524 kB) copied, 0.0449481 s, 11.7 MB/s工具

相關文章
相關標籤/搜索