新手Linux命令-2
- df(disk free磁盤空閑空間):列出已掛載磁盤的使用情況。格式:df [選項] [文件或目錄] (df命令讀取的范圍主要是在Super block內的信息(主要針對整個文件系統),顯示結果的速度非常快速)。
選項 | 作用 |
-h | 人性化(GB、MB、KB等格式)顯示信息 |
-i | 不用硬盤容量,而以inode的數量來顯示 |
-a | 列出所有的文件系統,包括系統特有的/proc(一個虛擬文件系統,放置的數據在內存當中,本身不占用任何硬盤空間)等文件系統 |
-T | 連同該分區的文件系統名稱(例如ext3)也列出 |
Filesystem:代表該文件系統是在哪個分區(因此列出了設備名稱) | 1K-blocks:說明下面的數字單位是1KB。可利用-h或-m參數來改變顯示單位 | Used:已使用的磁盤空間 | Available:可用的磁盤空間大小 | Use%:磁盤使用率。若超過90%,須注意一下 | Mounted on:磁盤掛載的目錄所在(掛載點) |
? ?
df -hT:將系統內的文件系統及名稱列出,容量結果以易讀的格式顯示。
? ?
查看/etc下可用的磁盤容量,并以易讀的容量格式顯示出來,且會自動分析目錄或文件所在的分區。
- ifconfig(interface config網卡配置):獲取網卡配置與網絡狀態等信息。格式:ifconfig [網絡設備] [參數]。
- uname(unix name):查看系統內核與系統版本等信息。格式:uname [選項]。
一般會固定搭配上-a參數來完整查看當前系統的內核名稱、主機名、內核發行版本、節點名、系統時間、硬件名稱、硬件平臺、處理器類型以及操作系統名稱等信息
- who(誰):查看當前登入主機的用戶終端信息。
登陸的用戶名 | 終端設備 | 登陸到系統的時間 |
root | :0 | 2017-08-24 17:52 (:0) |
root | pts/0 | 2017-08-24 17:52 (:0) |
who命令顯示信息的解析: <https://zhidao.baidu.com/question/148128945.html>
<https://zhidao.baidu.com/question/339930341.html>
w:Show who is logged on and what they are doing.
<http://blog.csdn.net/u012110719/article/details/42298237>
whoami(我是誰):print effective(有效) userid
who am i
id(identity身份): print real and effective user and group IDs
- last(最近的):查看用戶的最近登錄記錄(/var/log/wtmp)。
(本機的登錄記錄信息是以日志文件的形式保存在系統中的數據內容,駭客可輕易進行內容篡改,不能單憑以該命令輸出的信息而判斷系統有無被惡意入侵)
lastlog:顯示系統中所有用戶最近一次的登錄信息(/var/log/lastlog)。
- history(歷史):顯示歷史執行過(近1000條)的命令(它是一個函數 history(3),不是一條普通的命令)。格式:history [選項] [參數]。
history n:列出最近使用的n條歷史命令
可以使用"!編碼數字"的方式來重復執行某一次的命令
歷史命令會被保存到用戶家目錄中的".bash_history"文件中(cat ~/.bash_history)。
history -c:清空該用戶在本機中執行過的linux命令歷史記錄信息
- sosreport:用于收集系統配置并診斷信息后輸出結論文檔。
當Linux系統出現故障需要聯系紅帽廠商或其他技術支持時,大多數時候都要先使用這個SOS功能來簡單收集計算機的運行狀態和服務配置信息,以便讓技術支持公司能夠通過遠程就解決了一些小問題,又或者讓他們能對復雜問題能提前有些了解。
(資料壓縮文件以及校驗碼)
- pwd(print working directory輸出當前工作目錄):顯示當前所處的工作目錄。格式:pwd [選項]。
- cd(change directory改變目錄):切換工作路徑。格式:cd [目錄名稱]。
僅輸入cd:代表cd ~
cd -:返回到上一次所處的目錄
cd ..:返回上一層目錄(注意空格)
(根目錄"/"的上層目錄(..)與根目錄本身(.)是同一個目錄)
cd ~:切換到當前用戶的家目錄,亦或使用"cd ~username"則可以切換到其他用戶的家目錄
絕對路徑:一定由根目錄"/"寫起,如/var/spool/mail(建議使用)。
相對路徑:對于目前工作目錄的路徑。不是由根目錄"/"寫起,如由/var/spool/mail要到/var/spool/cron目錄,可以寫成cd ../cron。
- ls(list directory contents列出目錄的內容):顯示目錄中的文件信息。格式:ls [選項] [文件]。
ls -a:查看全部文件(包括隱藏文件),Linux系統中以點(.)開頭的文件均代表隱藏文件,一般大多會是系統服務文件。(藍色字體顯示的為目錄(文件夾))
ls -l(ll):查看文件的屬性、大小(長數據串)等詳細信息
詳解請見 <http://blog.csdn.net/sjzs5590/article/details/8254527>
<http://baijiahao.baidu.com/s?id=1582175688777520981&wfr=spider&for=pc>
<http://blog.csdn.net/xinlongabc/article/details/46801641>
ls -al:查看所有文件的詳細信息
ls -li:查看文件的詳細信息,并顯示索引結點號inode(每個文件都會占用一個inode)
ls -ld:僅查看目錄本身的屬性信息(不列出目錄內的文件數據)
ls -R:連同子目錄內容一起列出來,等于該目錄下的所有文件都會顯示出來
-F:根據文件、目錄等信息給予附加數據結構
-h:將文件容量以人類較易讀的方式(例如GB、KB等)列出來
--time={atime,ctime}:輸出訪問時間(atime)或改變權限屬性時間(ctime)(ls -l命令默認顯示文件的修改時間(mtime))
- cat(concatenate連續):查看純文本文件(較短的、比較精簡的文本內容,不可翻頁,連續顯示)。格式:cat [選項] [文件]。
cat -n:查看文本內容時順便打印出行號(空白行也會有行號(-b參數針對空白行則不打印行號))
tac (反向列示):文件的最后一行到了屏幕的第一行了,也就是說文件的第一行就到了最后一行去了。
nl (添加行號打印):
選項:
-b : 指定行號指定的方式,主要有兩種:
-b a : 表示不論是否為空,也同樣列出行號(類似cat -n)
-b t : 如果有空行,空的那行不列出行號(默認值)
-n : 列出行號表示的方法,主要有三種:
-n ln : 行號在屏幕最左方顯示;
-n rn : 行號在自己字段的最右方顯示,且不加0;
-n rz : 行號在自己字段的最右方顯示,且加0;
-w : 行號字段占用的位數。
- more:查看純文本文件(較長的文本內容,可翻頁)。格式:more [選項] 文件
(會提示已經閱讀了百分之多少)。
回車鍵:下滾一行 | 空格鍵:下翻一頁 | b:往回翻頁(此回翻頁操作只對文件有用,對管道無用) | /關鍵詞:向下查詢關鍵字 | :f(冒號+f):立刻顯示出文件名以及目前顯示的行數 | q:離開 |
less:more命令的加強版,可向前翻頁,界面和操作與man命令類似(man命令調用less來顯示說明文件的內容)
- head(頭):查看純文本文檔的前n行(默認顯示前10行)。格式:head [選項] [文件]。
選項 | 作用 |
-n | 后面接數字,代表顯示文件前幾行的內容 |
-c nK | 后面接容量(如2K),代表顯示文件前nKB的內容 |
- tail(尾):查看純文本文檔的后n行(默認顯示后10行)。格式:tail [選項] [文件] 。
選項 | 作用 |
-n | 后面接數字,代表顯示文件后幾行的內容 |
-c nK | 后面接容量(如2K),代表顯示文件末尾nKB的內容 |
tali -f:持續刷新一個文件的內容(可用于實時看到最新日志文件)(ctrl+c離開)
- watch(觀察):以周期性的方式執行給定的指令,指令輸出以全屏方式顯示。格式:watch [選項] [參數]。
選項 | 作用 |
-n | 指定指令執行的間隔時間(秒) |
-d | 高亮顯示指令輸出信息不同之處 |
?
-t | 不顯示標題 |
參數:需要周期性執行的指令
- od(octal dump八進制轉儲):查看特殊格式的文件(非純文本文件查看)。格式:od [選項] [文件]。
選項 | 作用 |
-t a | 默認字符 |
-t c | ASCII字符 |
?
-t o | 八進制 |
-t d | 十進制 |
-t x | 十六進制 |
-t f | 浮點數 |
- tr(translate轉化):替換文本文件中的字符。格式:tr [原始字符] [目標字符]。
(先使用cat命令讀取待處理的文本內容,然后通過管道符"|"把這些數據傳遞給tr命令做替換操作)小寫字母全部轉換為大寫:
tr -d [目標字符]:刪除信息當中的目標字符
- wc(word count字數統計):統計指定文本的行數、字數、字節數等文本內容。格式:wc [選項] 文本
選項 | 作用 |
-l | 只顯示行數 |
-w | 只顯示單詞數 |
-c | 只顯示字節數 |
(passwd是用于保存系統帳戶信息的文件,可使用命令wc -l /etc/passwd統計當前系統中有多少個用戶)
- sort(排序):將文件按照默認語言的順序規則進行排序,并將排序結果標準輸出。格式:sort [選項] 文件名或標準輸入。(對于系統語言為英語而言,小寫字母優先于大寫字母顯示,即認為小寫字母'a'是大于大寫字母'A的')
選項 | 作用 |
-f | 忽略大小寫的差異 |
-b | 忽略每行最前面的空格符部分 |
-n | 依照"純數字"的大小排序(默認是以文字類型來排序的) |
-r | 反向排序 |
-t | 設置分隔符(默認以tab鍵分隔) |
-k | 以分隔的第幾個區間來進行排序 |
-u | 相同的數據中,僅出現一行代表(相當于uniq命令) |
cat /etc/passwd | sort -t ':' -k 3 : 以:作為分隔符,對第三列進行排序
- uniq(unique獨一的):忽略文件中的重復行,一般與sort命令配合管道符結合使用。格式:uniq [選項] 文件名或標準輸入。
參數 | 作用 |
-i | 忽略大小寫字符 |
-c | 進行計數處理 |
last | cut -d ' ' -f 1 | sort | uniq : 使用last命令將用戶的登入記錄列出;再使用cut命令以空格為間隔符提取第一列內容;接著使用sort命令根據第一個數據進行排序;最后通過uniq命令僅列出一行代表,并進行計數處理。
- stat(status狀態):查看文件的具體存儲信息和時間等信息。格式:stat 文件名稱。
- netstat(network status網絡狀態):查看網絡系統的狀態信息。格式:netstat [選項]。
選項 | 作用 |
-a | 顯示所有連接中的套接字(netstat命令默認不顯示LISTENI監聽狀態相關) |
-t | 僅顯示tcp傳輸協議的連接狀況 |
-u | 僅顯示udp傳輸協議的連接狀況 |
-l | 僅顯示處于監聽狀態的服務器套接字 |
-n | 使用ip地址(數字numeric)表示,不使用域名顯示 |
- ping:測試主機之間網絡的連通性。格式:ping [選項] 目的主機。
選項 | 作用 |
-c | 規定完成要求回應的次數(ping命令默認一直持續) |
-i | 指定收發信息的間隔時間 |
-W(大寫) | 定義等待超時時間 |
- cut(切割):按"列"來提取文本字符(以"行"為單位)。格式:cut [選項] 文本。
-d:設置間隔符號(要與-f參數一起使用) | -f:設置需要看的列數(第幾段) |
cut -d : -f 1 /etc/passwd : 提取passwd文件中的用戶名信息)
(cut -d : -f 1,2 /etc/passwd:提取第1,2列)
統計當前系統中有多少個用戶(使用通配符"|"和wc -l命令查看行數)
- diff(difference不同):比較多個文本文件的差異。格式:diff [選項] 文件
--brief:僅確認兩個文件是否不同 | -c:詳細比較多個文件的差異之處 |
? ?
- file(文件):查看文件的類型。格式:file 文件名。
- touch(觸摸):創建空白文件與設置文件的各種時間。格式:touch [選項] [文件]
選項 | 作用 |
-a | 僅修改"訪問時間"(atime) |
-m | 僅修改"更改時間"(mtime) |
-d | 同時修改atime與mtime |
Linux中的文件有三種時間(Linux一切皆文件(目錄文件、設備文件、鏈接文件、普通/文本文件等),文件之間只區分類型,而不區分后綴)(Linux中沒有文件創建時間的概念
來自 <https://www.zhihu.com/question/21071680> ):
修改時間(mtime):內容修改時間(不包括權限的)(modify time) | 更改時間(ctime):更改權限與屬性的時間(change time) | 讀取時間(atime):讀取文件內容的時間(access time) |
(ls -l命令默認顯示文件的修改時間(mtime))
- mkdir(make directory創建目錄):創建空白的文件夾。格式:mkdir [選項] 目錄
mkdir -p [目錄]:遞歸創建出具有嵌套疊層關系的文件目錄
rmdir:刪除空目錄,rmdir -p [目錄]:連同上層的空目錄也一起刪除
- cp(copy復制):復制文件或目錄。格式:cp [選項] 源文件 目標文件
復制命令的三種情況:
- 目標對象是一個目錄(目錄名尾部須加上正斜線/),會將源文件復制到該目錄中
- 目標對象也是一個文件,會詢問是否覆蓋
- 目標對象不存在,將會復制源文件并修改為目標文件的名稱(可用作重命名)
選項 | 作用 |
-p | 保留原始文件的屬性,而非使用默認屬性(備份常用) |
-d | 若對象為"鏈接文件",則保留該"鏈接文件"的屬性 |
-r | 遞歸持續復制(用于目錄) |
-i | 若目標文件存在則詢問是否覆蓋(默認執行-i參數) |
-a | 相當于-pdr(p,d,r為上述的參數) |
-f | 強制(force)復制,若目標文件已存在直接覆蓋 |
(不同身份者執行cp命令可能會有不同的結果產生,這里以root身份為例)
(復制行為cp會復制執行者(本例中:root)的屬性與權限。默認條件中,cp的源文件與目的文件的權限是不同的,目的文件的所有者通常是命令操作者本身)
- mv(move移動):移動文件(剪切)或改名。格式:mv [選項] 源文件 [目標路徑|目標文件名]。
選項 | 作用 |
-i | 若目標文件存在則詢問是否覆蓋(默認執行-i參數) |
-f | 強制(force)移動,若目標文件已存在直接覆蓋 |
-u | 若目標文件已經存在,且source比較新,才會更新(update) |
- basename(文件基本名):僅顯示目錄的基本名稱;
dirname(目錄名):僅顯示與目錄相關的內容(讀取指定路徑最后一個/及其后面的字符,刪除其他部分)。
這兩個命令多用在shell腳本中
- rename(重命名):用字符串替換的方式批量改變文件名。格式:rename [參數]
參數: | 原字符串:將文件名需要替換的字符串 | 目標字符串:將文件名中含有的原字符替換成目標字符串 | 文件:指定要改變文件名的文件列表 |
- rm(remove刪除):刪除文件或目錄。格式:rm [選項] 文件
rm -f:強制(force)刪除,忽略不存在的文件,不會出現警告信息(慎用)
rm -r:遞歸(recursive)刪除,刪除一個目錄文件夾
rm -i:互動模式,刪除前會詢問用戶是否操作(默認加入-i參數)
(一旦刪除一個文件,就無法再恢復(恢復須借助額外工具))
- dd(disk dump磁盤轉儲):用于指定大小的拷貝文件或指定轉換文件。格式:dd [參數]
參數 | 作用 |
if | 輸入的文件名稱(inputfile,也可以是設備) |
of | 輸出的文件名稱(outputfile,也可以是設備) |
bs | 設置每個"塊"的大小(block size,未指定則默認512bytes(一個扇區的大小)) |
count | 設置要拷貝"塊"的個數(多少個bs的意思) |
(/dev/zero:一個永遠輸出0(提供無限的空字符)的設備文件,不占用系統存儲空間,使用它作輸入可以得到全為空的文件(10_file文件的內容全為0),因此可用來創建新文件和以覆蓋的方式清除舊文件)
dd命令作用:①備份分區表(第一個扇區內含有MBR(主引導分區快)與分區表),②簡單測試硬盤讀寫速度
使用dd命令復制并壓縮光盤設備變成一個可立即使用的iso鏡像:
- tar(tape archive將文件備份到磁帶上):對文件打包壓縮或解壓。格式:tar [選項] [文件]
-c(create a new archive創建一個新的存檔):創建打包文件
(打包:tarfile文件,把多個文件打包成一個文件,體積不變,.tar后綴)
(壓縮:tarball文件,運用算法進行壓縮使文件體積減小,.tar.gz或.tar.bz2后綴)
-x(extract files from an archive提取文件從文檔中):解打包或解壓縮文件
-z:使用gzip格式來壓縮/解壓文件(文件名:*.tar.gz)(gzip格式應用廣泛)
-j:使用bzip2格式來壓縮/解壓文件(文件名:*.tar.bz2)
-v:顯示壓縮或解壓的過程給用戶
-f:代表要壓縮或解壓的軟件包名稱(后面要緊接被處理的文件名,必須放到參數的最后一位)
-C(Change to directory改變目錄):指定在特定目錄解壓縮(注意為大寫字母"C",且僅在解壓時使用)
-p:保留備份數據的原本權限與屬性(常用于備份(打包-c)重要的配置文件)
-t(list the contents of an archive列出存檔):查看打包文件的內容含有哪些文件名(重點在查看文件名)
(-c、-x、-t 這三個參數不可同時放在一起使用)
常用: | 打包壓縮:tar -czvf 壓縮包名稱.tar.gz 要打包的目錄 | 解壓:tar -xzvf 壓縮包名稱 .tar.gz -C 解壓到目錄 | 查閱壓縮文件中的數據內容:tar -tzvf 壓縮包名稱.tar.gz |
tar -czvf 壓縮包名稱.tar.gz 要打包的目錄
(可使用-P(大寫字母)參數保留絕對路徑,即允許備份數據中含有根目錄存在之意(不推薦))
tar -tzvf 壓縮包名稱.tar.gz
? ?
tar -xzvf 壓縮包名稱 .tar.gz -C 解壓到目錄
- grep(globally search a regular expression and print以正則表達式法全域查找以及打印):對文本內容進行關鍵詞的搜索匹配(分析一行信息,若當中有所需要的信息,就將該行拿出來)。格式:grep [選項] [關鍵詞] [文件],可在多文件中查找。
選項 -a | 作用 將可執行文件(binary)以文本文件(text)來搜索 |
-c | 僅顯示找到的次數 |
-i | 忽略大小寫 |
-n | 順便輸出行號 |
-v | 反向選擇,即顯示出沒有"關鍵詞"的行 |
-e | 指定字符串作為關鍵詞,可指定多個匹配模式 |
搜索在/etc/passwd文件中"/sbin/nologin"出現的行,找出系統中不允許登錄的用戶
在users.csv文件和user.txt文件中共同搜索"tony"、"yan"出現的行
找出文件"/usr/share/gedit/plugins/snippets/docbook.xml"中所有包含entry的行并輸出到/root/lines中(輸出重定向):
grep entry /usr/share/gedit/plugins/snippets/docbook.xml >> /root/lines
- find(查找):在Linux系統中按照指定條件查找文件。格式:find [查找路徑] 尋找條件 操作。
選項 | 作用 |
-name | 匹配名稱 |
-perm | 匹配權限(mode為完全匹配,-mode為包含即可) |
-user | 匹配所有者 |
-group | 匹配所有組 |
-inum | 匹配inode編號 |
-mtime -n +n | 匹配修改內容的時間(-n指n天以內,+n指n天以前) |
-atime -n +n | 匹配訪問文件的時間-n指n天以內,+n指n天以前 |
-ctime -n +n | 匹配修改權限的時間-n指n天以內,+n指n天以前 |
-nouser | 匹配無所有者的文件 |
-nogroup | 匹配無所有組的文件 |
-newer f1 !f2 | 匹配比文件f1新卻比f2舊的文件 |
--type b/d/c/p/l/f | 匹配文件類型(塊設備、目錄、字符設備、管道、鏈接文件、文件文件) |
-size | 匹配文件的大小(+50k查找超過50k的文件,而-50k則代表查找小于50k的文件) |
-prune | 忽略某個目錄 |
-exec {} \; | 后面可接對搜索到結果進一步處理的命令 |
查找在/etc目錄中所有以host開頭的文件(-print將文件或目錄名稱輸出到標準輸出(find默認使用-print參數))
查找/home下面屬于ysn用戶的文件(可利用此命令將屬于某個用戶的所有文件都找出來)
查找系統(根目錄)中不屬于任何人的文件
查找當前目錄下inode編號為102766589的文件
查找系統所有文件中含有SGID或SUID或SBIT的屬性
-perm mode:查找文件權限剛好匹配
-perm -mode:查找文件權限必須要全部包括mode的權限
-perm +mode:查找文件權限包含任一mode的權限
(權限詳解: <http://blog.csdn.net/zengqiang1/article/details/53020853> )
找出用戶ysn的文件并復制到/root/findresults目錄
find / -user ysn -exec cp -arf {} /root/findresults/ \;
{}:代表"由find找到的內容",find的結果會被放置到{}位置中 | -exec一直到"\;"是關鍵字,代表find額外命令的開始(-exec)到結束(\;),在這中間的就是find命令內的額外命令。在本例中就是"cp -arf {}" | 因為;分號在bash環境下是有特殊意義的,因此利用反斜杠來轉義 |
linux查找目錄下所有文件中是否含有某個字符: <http://blog.csdn.net/duguduchong/article/details/7716908>
- locate(定位):find -name的另一種寫法,但查找速度比后者快得多,因為locate尋找的數據是由已創建的數據庫/var/lib/mlocate/里面的數據所查找到的。這個數據庫中包含本地所有文件信息,默認是每天執行一次更新。所以新建文件后再立即查找該文件,locate命令會"提示找不到"。
updatedb(更新資料庫):手動更新數據庫。updatedb命令會去讀取/ect/updatedb.conf這個配置文件的設置,然后再去硬盤里進行查找所有文件名的操作,最后更新整個/var/lib/mlocate數據庫文件
- whereis(在哪):尋找特定文件。(在指定數據庫中查找,類同locate命令)
選項 | 作用 |
-b | 只查找二進制格式的文件(執行文件、命令) |
-m | 只查找在說明文件manual路徑下的文件 |
轉載于:https://www.cnblogs.com/dayoyan/p/8654888.html
總結
以上是生活随笔為你收集整理的新手Linux命令-2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于封装与部署的深入研究
- 下一篇: Python背单词记单词小程序源代码,背