初學者linux命令大全

1cplinux

(複製文件或目錄)git

cp語法:正則表達式

cp 源文件(source) 目標文件(destination)shell

cp [options]suoucebash

例題一:用root身份將主文件夾下的.bashrc複製到/tmp下,並改名爲bashrcless

Image.png


例題二:切換目錄到/tmp。並將/var/log/wtmp複製到/tmp且查看屬性ide


blob.png


例題三:複製/etc/這個目錄的全部內容到/tmp下面。工具


blob.png

2rmui

(移除文件和目錄)spa

rm[fir]

-f :就是force 的意思,忽略不存在的文件,不會發出警告

-i: 互動模式,在刪除前會詢問用戶是否操做

-r:遞歸刪除。最經常使用在目錄的刪除,這是很是危險的參數


例題一:將剛纔在cp中建立的bashrc刪除。


blob.png

3mv

(移動文件於目錄,或改名)

mv [-fiu]source destination

mv [options] source1 source2 .........directory

-f:force強制的意思,若是目標文件已經存在,不會詢問而直接覆蓋

-i: 若目標文件已經存在,就會詢問是否覆蓋

-u: 如目標文件已經存在,且source 比較新,纔會更新


例題一:複製一個文件,建立一個目錄,將文件 移動到目錄中


blob.png


例題二:將剛纔的目錄名稱重命名爲mvtest2,在建立二個文件,在所有移動到/tmp/mvtest2。


blob.png

4cat

[AbEnTv]

例題一:查看/etc/issue,而且加上行號,而後空白行在不加行號


blob.png

5tac

(反向列示)


blob.png

6nl

(添加行號打印)能夠將輸出的內容自動加上行號


blob.png


可翻頁查看的有more 和less

數據的選取有head 和tail


7head(取出前面幾行默認十行)

-n 後面接數字,表明幾行的意思


head -n 20 /etc/man.config 顯示文件的前20行


8tail (取出後面的幾行)

tail [-n number]文件

-n 後面接數字

-f 表示持續檢測後面所接的文件名,要等到按下CTRL -c 纔會中止


例題一:若是我不知道/etc/man.config有幾行,卻只想要列出100行以後的數據那


blob.png

9mtime:


當該文件的內容數據被修改時,就會更新這個時間,內容數據指的時文件的內容,而不是文件的屬性或權限。

10Stime


當該文件的狀態改變時,就會更新這個時間,舉例來講,像是權限屬性被改變了,就會更新這個時間。

11atime

當文件的內容被取用時,就會更新這個讀取時間,舉例來講,咱們用cat讀取/etc/man.config,就會更新該文件的atime了。


12touch [-acdmt]文件

-a 僅修改訪問時間

-c 僅修改文件的時間,如該文件不存在則不建立新文件

-d 後面能夠接欲修改的日期而不用目前的日期,也能夠用- -date=「日期或時間」

-m 僅修改mtime

-t 後面能夠接想修改的時間而不用目前的時間格式爲[YYMMDDhhmm]


例題一:將~/.bashrc 複製成爲bashrc,假設徹底複製,檢查其日期


blob.png


注意ll 是ls -l 的別名「;」則表明連續命令的執行


例題二;修改文件bashrc,將日期調整爲二天前


blob.png


例題三:將bashrc日期改成2007/09/15 2:02


blob.png


在Linux中,常常會遇到很大的文件須要複製粘貼,可是文件太大,須要很長的時間來完成,這個時間就須要咱們用到相似windos中的經常使用工具,壓縮了。


在linux中經常使用的壓縮命令就是 compress gzip 和bzip2



linux中常見的壓縮文件的擴展名:

*.z compress程序壓縮的文件

*.gz gzip程序壓縮的文件

*.bz2 bzip2程序壓縮的文件

*.tar tar程序打包的數據,並無壓縮過

*.tar.gz tar程序打包的文件,其中通過gzip的壓縮

*.tar.bz2 tar程序打包的文件,其中通過bzip2的壓縮




compress[-rcdv]文件或目錄 這裏是壓縮

uncompress文件.Z 這裏是解壓

compress srcfile 將源文件壓縮成壓縮包,源文件消失

compress -r 能夠連同目錄下的文件也同時給予壓縮

compress -v srcfile 壓縮或解壓縮時顯示詳細信息

compress -c srcfile > dstfile.Z 將源文件壓縮成壓縮包,源文件保留

compress -d dstfile.Z 將壓縮包解壓成源文件,壓縮包消失

compress -d -c dstfile.Z > srcfile 將壓縮包解壓成源文件,壓縮包保留


**例題解析**:將/etc/man.config複製到/tmp,並壓縮。而後解壓。


blob.png


注意一點,若是你係統上沒有安裝compress的話,這個是練習不了的,要安裝的話用yum install ncompress 。值得注意的是compress在默認的狀況下源文件會不見,壓縮文件會被建立,擴展名會是.z。文件的大小從4940降到2873. 最後一步是解壓縮。copmress由於不能打開.gz的文件,因此不經常使用或不多用。


gzip能夠解開 compress zip gzip等全部的壓縮軟件,它的壓縮文件名爲*.gz。

gzip[-cdtv#]文件名

gzip -v 能夠顯示出源文件和壓縮文件的壓縮比等信息

gzip- t 用來檢驗一個壓縮文件的一致性,看看文件是否有 誤

gzip srcfile 將源文件壓縮成壓縮包,源文件消失

gzip -c srcfile > dstfile.gz 將源文件壓縮成壓縮包,源文件保留

gzip -d dstfile.gz 將壓縮包解壓成源文件,壓縮包消失

gzip -d -c dstfile.gz > srcfile 或 zcat dstfile.gz > srcfile 將壓縮包解壓成源文件, 壓縮包保留

gzip -# srcfile (#即1-9,表示壓縮比,數字越大壓縮比越高,默認爲6)

**bzip2和bzcat**

**gzip爲了替代compress,那麼bzip2則是爲了取代gzip,由於它的壓縮比更高**。

**bzip2[-cdkzv#]文件名

bzcat 文件名。bz2**


參數:

-c :將壓縮過程當中產生的數據輸出到屏幕上

-d:加壓縮的參數-k:保留源文件,而不會刪除原始的文件

-#:計算壓縮比的參數


總結:compress gzip 和bzip2都是壓縮工具但效果bzip2>gzip>compress.由於它的壓縮比最高。


tar 的命令功能就是打包命令,能夠將多個目錄或者文件打包成爲一個大文件,同時還能夠經過gzip和bzip的支持,將文件經行壓縮,而且windos中也支持tar.zg文件名的解壓縮。


**tar -tf mage.tar.xz

預覽壓縮包的文件列表

tar -rf mage.tar /path/newfile

往tar包中加強文件(注意只能對tar包增長文件,而不能對壓縮包增長)

tar -cf mage.tar filename1 filename2 [filenameN]

將多個文件打包至mage.tar

tar -zcf mage.tar.gz filename1 filename2 [filenameN]

將多個文件打包並用gzip壓 縮爲mage.tar.gz

tar -jcf mage.tar.bz2 filename1 filename2 [filenameN]

將多個文件打包並用bzip2 壓縮爲mage.tar.bz2

tar -Jcf mage.tar.xz filename1 filename2 [filenameN]

將多個文件打包並用xz壓 縮爲mage.tar.xz

tar -xf mage.tar

解壓tar包的全部文件到當前目錄

tar -xf mage.tar.xz filename

僅將壓縮包中的其中一個文件filename解壓到當前目錄

tar -zxf mage.tar.gz

解壓gz的壓縮包到當前目錄

tar -jxf mage.tar.bz2

解壓bzip2的壓縮包到當前目錄

tar -Jxf mage.tar.xz

解壓xz的壓縮包到當前目錄

tar -zxf mage.tar.gz -C /tmp

解壓gz的壓縮包到/tmp目錄

tar -zvxf mage.tar.gz

解壓gz的壓縮包到當前目錄並顯示詳細過程

tar zcvf mage.tar.gz -T yasuolist.txt -X paichu.txt

-T 指定須要打包並壓縮的文件列表,每一個文件路徑一行

-X 指定要排除的文件列表,每一個文件一行


總的來講只須要記住tar的三個用法就好


壓縮:tar -jcv-f filename.tar.bz2 被壓縮的文件或目錄名稱

查詢:tar-jtv-filename.tar.bz2

解壓縮:tar-jxv-f filename.tar.bz2-C 欲解壓縮的目錄


13管道命令|


「|」管道命令的用途:僅能處理由前面一個命令傳來的正確信息。

例題若是要想知道/etc/下面有多少文件,能夠利用ls /etc 來查閱,由於/etc/下面的文件太多,咱們能夠利用less來協助。


blob.png

14 選取命令:cut 和grep


cut命令

用來顯示行中的指定部分,行爲單位,刪除文件中指定字段。cut常常用來顯示文件的內容,相似於下的type命令

cut 選項 參數


選項:

-b:僅顯示行中指定直接範圍的內容;

-c:僅顯示行中指定範圍的字符;

-d:指定字段的分隔符,默認的字段分隔符爲「TAB」;

-f:顯示指定字段的內容;

-n:與「-b」選項連用,不分割多字節字符;

--complement:補足被選擇的字節、字符或字段;

--out-delimiter=<字段分隔符>:指定輸出內容是的字段分割符;

--help:顯示指令的幫助信息;

--version:顯示指令的版本信息。


參數: 文件:指定要進行內容過濾的文件


例題一:

將PATH 變量取出,找出第五個路徑

[root@localhost ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@localhost ~]# echo $PATH | cut -d ':' -f 5

/root/bin

路徑用「:」做爲分割,-d -f 通常聯合使用


若是取第3與第5就是這樣:

[root@localhost ~]# echo $PATH | cut -d ':' -f 3,5

/usr/sbin:/root/bin


例題二:


將export輸出的信息取得第12字符之後的全部字符串

[root@localhost ~]# export | cut -c 12-

若是取12-20的字符,就是cut -c 12-20


grep是一種強大的搜索工具,它可以用正則表達式搜索文本,並把匹配的行打印出來。

-a 表示不要忽視二進制數據。

-A顯示列數,出了顯示符合樣本的那一行以外,並顯示該行以後的內容。

-b 在顯示符合樣本的那一行以外,並顯示該行以前的內容。

-c 計算符合樣本的列數。

-C顯示列數或顯示行數,除了顯示符合樣本的那一行以外,並顯示該行以前後的內容。

-d 進行動做,當指定要查找的目錄而非文件時,必需要使用這項參數,不然grep命令將彙報信息並中止動做。

-e 指定字符串做爲查找文件內容的範本文件

-i 忽略字符大小寫的差異

-q 不顯示任何信息

-n 在顯示符合範本的那一行以前,表列出該列的標號。


例題一:用dmesg列出內核信息,並找出含「e1000」的那行。


blob.png


解析 dmesg 能夠列出內核產生的信息,經過grep來選取網卡的相關信息,那我想把e1000,讓他顯色,而且還要加上行號,該怎樣表示那?


blob.png


個人第一步先讓關鍵字顯色,第二部是顯示行號,那麼若是我想在關鍵字的前三行後四行也顯示出來,該怎樣表示那


blob.png

上面的很簡單,那咱們來作這一道顯示CentOS7的/etc/grub2.cfg文件中,至少以一個空白字符開頭的且後面存非空白字符的行。

首先咱們查看這個文件


blob.png


至少以一個空白字符開頭的且後面存非空白字符的行^[[:space:]]\+"[^[:space:]]"

grep的用法有不少,後面都是跟一些命令的。例如。顯示三個用戶root,mage,wang的uid和默認shell,該怎樣顯示那,第一步也就是咱們先要弄清楚,咱們系統裏面有沒有這三個用戶,當讓通常都是沒有的,因此咱們要新建mage,和王的用戶,


blob.png


第二部咱們就是要找出uid和默認的shell


blob.png


這樣的話咱們這一題就已經作好了,此題主要考察咱們的egrep的用法以及uid和shell的具體使用方法。

找出/etc/rc.d/init.d/functions文件中行首爲某單詞(包括下劃線)後面跟一個小括號的行,


本題就考察咱們的egrep後面加一些經常使用命令的具體用法了,

blob.png


利用擴展正則表達式分別表示0-九、10-9九、100-19九、200-24九、250-255


blob.png


這些題都是很簡單的主要就是來考察咱們egrep的具體用法,


sort命令


是在Linux裏很是有用,它將文件進行排序,並將排序結果標準輸出。sort命令既能夠從特定的文件,也能夠從stdin中獲取輸入。

-b:忽略每行前面開始出的空格字符;

-c:檢查文件是否已經按照順序排序;

-d:排序時,處理英文字母、數字及空格字符外,忽略其餘的字符;

-f:排序時,將小寫字母視爲大寫字母;

-i:排序時,除了040至176之間的ASCII字符外,忽略其餘的字符;

-m:將幾個排序號的文件進行合併;

-M:將前面3個字母依照月份的縮寫進行排序;

-n:依照數值的大小排序;

-o<輸出文件>:將排序後的結果存入制定的文件;

-r:以相反的順序來排序;

-t<分隔字符>:指定排序時所用的欄位分隔字符;

+<起始欄位>-<結束欄位>:以指定的欄位來排序,範圍由起始欄位到結束欄位的前一欄位。

例題:

我的帳號都記錄在/etc/passwd下。請將帳號排序。


[root@localhost ~]# cat /etc/passwd | sort

abrt:x:173:173::/etc/abrt:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

andy:x:1002:1002::/home/andy:/bin/bash

avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin

barry:x:1003:1003::/home/barry:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

byj:x:1007:1007::/home/byj:/bin/bash

carl:x:1004:1004::/home/carl:/bin/bash

chrony:x:995:993::/var/lib/chrony:/sbin/nologin

例題二;

若是例題一中我用第三列排序,如何表示:


root:x:0:0:root:/root:/bin/bash

mage:x:1000:1000:mage:/home/mage:/bin/bash

wang:x:1001:1001::/home/wang:/bin/bash

andy:x:1002:1002::/home/andy:/bin/bash

barry:x:1003:1003::/home/barry:/bin/bash

carl:x:1004:1004::/home/carl:/bin/bash

duke:x:1005:1005::/home/duke:/bin/bash

eric:x:1006:1006::/home/eric:/bin/bash

byj:x:1007:1007::/home/byj:/bin/bash

qemu:x:107:107:qemu user:/:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin


看到黑體部分了把,若是是以文字的類型來排序的話,就會這樣,想要用數字來排序就要加-n


[root@localhost ~]# cat /etc/passwd | sort -t ':' -k 3 -n

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync


last命令

用於顯示用戶最近登陸信息。單獨執行last命令,它會讀取/var/log/wtmp的文件,並把該給文件的內容記錄的登入系統的用戶名單所有顯示出來。

-a:把從何處登入系統的主機名稱或ip地址,顯示在最後一行;

-d:將IP地址轉換成主機名稱;

-f <記錄文件>:指定記錄文件。

-n <顯示列數>或-<顯示列數>:設置列出名單的顯示列數;

-R:不顯示登入系統的主機名稱或IP地址;

-x:顯示系統關機,從新開機,以及執行等級的改變等信息。


例題

利用last將輸出的數據帳號僅取出帳號,並加以排序。

[root@localhost ~]# last | cut -d ' ' -f1 | sort

mage

mage

mage

mage


uniq命令


用於報告或忽略文件中的重複行,通常與sort命令結合使用。

-c或——count:在每列旁邊顯示該行重複出現的次數;

-d或--repeated:僅顯示重複出現的行列;

-f<欄位>或--skip-fields=<欄位>:忽略比較指定的欄位;

-s<字符位置>或--skip-chars=<字符位置>:忽略比較指定的字符;

-u或——unique:僅顯示出一次的行列;

-w<字符位置>或--check-chars=<字符位置>:指定要比較的字符。

例題 使用last將帳號列出,僅取出帳號列,進行排序後進去出第一位

[root@localhost ~]# last | cut -d ' ' -f1 | sort | uniq

mage

reboot

root

wtmp

承上,若是我下個知道每一個人登錄的總次數:

[root@localhost ~]# last | cut -d ' ' -f1 | sort | uniq -c

      1

     33 mage

     32 reboot

     67 root

      1 wtmp

wc命令用來計算數字。


-c或--bytes或——chars:只顯示Bytes數;

-l或——lines:只顯示列數;

-w或——words:只顯示字數。

例題一

說一下/etc/man_db.conf 裏面到底有多少相關的字,行,字符數

[root@localhost ~]# cat /etc/man_db.conf | wc

    131     723    5171

例題

咱們知道用last能夠輸出登錄者,可是last最後二行並不是帳號內容,如何以一行的命令取得這個月登錄系統的總人次

[root@localhost ~]# last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l

132

因爲last會輸出空白行與wtmp字樣在最下面二行,所以我利用grep取出非空白行,以及除去wtmp那一行,在計算行數。

若是你想知道你目前帳號裏面有多少個帳號時,就用cat /etc/passwd | wc -l

tr命令

能夠對來自標準輸入的字符進行替換、壓縮和刪除。它能夠將一組字符變成另外一組字符,常常用來編寫優美的單行命令,做用很強大

-c或——complerment:取代全部不屬於第一字符集的字符;

-d或——delete:刪除全部屬於第一字符集的字符;

-s或--squeeze-repeats:把連續重複的字符以單獨一個字符表示;

-t或--truncate-set1:先刪除第一字符集較第二字符集多出的字符。

blob.png

linux中主要是敲一些命令,咱們能夠經過作題來了解咱們有沒有掌握這些命令:

一、顯示/var目錄下全部以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄

ls -d /var/l*[0-9]*[[:lower:]]

二、顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的文件或目錄

ls -d /etc/[0-9]*[^0-9]

三、顯示/etc/目錄下以非字母開頭,後面跟了一個字母及其它任意長度任意字符的文件或目錄

ls -d /etc/[^a-Z][a-Z]*

四、顯示/etc/目錄下全部以rc開頭,並後面是0-6之間的數字,其它爲任意字符的文件或目錄

ls -d /etc/rc[0-6]*

五、顯示/etc目錄下,全部以.d結尾的文件或目錄

ls -d /etc/*.d

六、顯示/etc目錄下,全部.conf結尾,且以m,n,r,p開頭的文件或目錄

ls -d /etc/[mnrp]*.conf

七、只顯示/root下的隱藏文件和目錄

ls -a --ignore=[^.]*  /root

ls -a -I "[^.]*"  /root

ls -d .*  /root

八、只顯示/etc下的非隱藏目錄

ls -d /etc/*/

上面這八道題很簡單,基本都是用了文件的通配符和ls的命令來完成的,

ls -a 列出全部文件和目錄 

ls -d  顯示目錄名稱而非其內容

. 表示隱藏文件

* 表示0或多個任意字符

? 表示任意一個單一字符

[0-9] 表示數字範圍

[a-Z]表示全部字母

[bais]表示包含b或a或i或s

[^bais]表示不包含b或a或i或s

[:digit:] 表示任意數字

[:upper:] 表示大寫

[:lower:] 表示小寫

[:alpha:] 表示任意字母包含大小寫

[:alum:] 表示任意字母或數字

[:space:] 表示空格或換行

[:blank:] 表示空格

[:punct:] 表示符號

下面這七道題也是相同類型的,須要注意一下~ 表明「目前用戶身份」所在的主文件夾,其餘題參靠通配符都能作出來


一、顯示/etc目錄下全部以k開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄

ls -d /etc/k*[[:digit:]]*[[:lower]]

二、顯示/proc目錄下名字由任意三位數字組成的文件或目錄

ls -d /proc/[0-9][0-9][0-9]

三、顯示/var/log目錄下文件名包含符號及數字的文件或目錄

ls -d /var/log/*[[:punct:]]*[0-9]*

四、顯示/usr/share/man目錄下全部以m開頭,以一個數字和x結尾的文件或目錄

ls -d /usr/share/man/m*[0-9]x

五、顯示/etc目錄下,全部以一個大寫字母開頭,以兩個數字結尾的文件或目錄

ls -d /etc/[[:upper]]*[0-9][0-9]

六、顯示/etc目錄下,文件名至少包含一個小寫字母和一個數字並以.conf結尾的文件或目錄

ls -d /etc/*[[:lower]]*[0-9]*.conf

七、只顯示用戶家目錄下的非隱藏目錄

ls -d ~/*/

下面這八道題主要主要考察了管道符 | 和 tr以及輸入輸出重定向

   Linux系統中的命令能夠將標準輸入讀取數據,還能將這些數據送到標準輸出中去,這種功能被系統進一步的利用,從而產生出一種新的特性,稱之爲管道符「|」,      這     個符號能夠將一個命令的標準輸出管道爲另一個命令的標準輸入。

     須要注意的是管道符的使用有兩個條件:

    一、管道命令只能處理前一個命令的標準輸出,而不能處理標準錯誤;

    二、管道命令右邊命令必須可以接收標準輸入。

    標準輸入(stain):代碼爲0,使用<或<<,

    標準輸出(stdout);代碼爲1,使用>或>>.

    標準錯誤輸出(stderr):代碼爲2,使用2>或2>>

    1>:以覆蓋的方法將正確的數據輸出到指定的文件或設備上

    1>>:以累加的方法將正確的數據輸出到指定的文件或設備上

    2>: 以覆蓋的方法將錯誤的數據輸出到指定的文件或設備上

    2>>:以累加的方法將錯誤的數據輸出到指定的文件或設備上

tr 用來標準輸入中經過替換或刪除操做進字符轉換。經常使用命令:

-c 用字符串1中字符集的補集替換此字符集,要求字符集爲ASCII

-d 刪除字符串1中全部輸入字符

-s 刪除全部重複出現字符序列,只保留第一個,即將重複出現字符串壓縮爲一個字符串。

今天先更新到這裏把,改天再寫,長時間面對電腦也很差。

相關文章
相關標籤/搜索