這個似乎不是很準確,個人覺得對于二進制文件linux沒有什么補丁之類的概念.
創(chuàng)新互聯(lián)是一家專業(yè)提供晉州企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都做網(wǎng)站、html5、小程序制作等業(yè)務(wù)。10年已為晉州眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。
所謂的補丁基本上是軟件升級一個小版本.
所以也就無從查看.
patch命令用于為特定軟件包打補丁,該命令使用diff命令對源文件進行操作。
格式:patch [選項] [原始文件 [補丁文件]]
常用參數(shù):
-r 是一個遞歸選項,設(shè)置了這個選項,diff會將兩個不同版本源代碼目錄中的所有對應(yīng)文件全部都進行一次比較,包括子目錄文件。
-N 選項確保補丁文件將正確地處理已經(jīng)創(chuàng)建或刪除文件的情況。
-u 選項以統(tǒng)一格式創(chuàng)建補丁文件,這種格式比缺省格式更緊湊些。
-p0 選項從當前目錄查找目的文件(夾)(直接使用補丁文件里面指定的路徑)
-p1 選項忽略掉第一層目錄,從當前目錄查找(去掉補丁文件指定路徑最左的第1個'/'及前面所有內(nèi)容)。
-E 選項說明如果發(fā)現(xiàn)了空文件,那么就刪除它
-R 選項說明在補丁文件中的“新”文件和“舊”文件現(xiàn)在要調(diào)換過來了(實際上就是給新版本打補丁,讓它變成老版本)
示例:
1、單個文件
首先將兩個文件的內(nèi)容顯示如下:
$ cat test0
00000000
00000000
00000000
$ cat test1
00000000
11111111
00000000
*生成補丁:
$ diff -uN test0 test1 test1.patch
這樣將通過比較,生成test1的補丁文件。這里選項u表示使用同一格式輸出這樣產(chǎn)生的輸出便于閱讀易于修改,N表示把不存在的文件看做empty的.就算文件test0不存在,也會生成補丁。
*把test0通過打補丁變成test1文件:
$ patch -p0 test1.patch
或$patch test1.patch
這樣,test0的內(nèi)容將和test1的內(nèi)容一樣,但是文件名稱還是test0。關(guān)于patch的選項見后面多文件有說明。當前目錄下可以有test1.如果比較的時候test0是不存在的,那么這時候會生成一個test0文件。
*把打過補丁的test0還原:
$ patch -RE -p0test1.patch
或$patch -R test1.patch
這樣,test0的內(nèi)容將還原為原來沒有打過補丁的狀態(tài)。當前目錄下可以有test1.這里的-E選項是要求patch在文件為空的時候刪除文件,這個選項是不必要的因為patch是根據(jù)時間戳來判斷一個文件是否存在。如果比較的時候test0是不存在的,這將會刪除test0文件。
**
2、多個文件的:
首先查看文件結(jié)構(gòu)如下:
1)外層目錄列表:
$ ls -p
prj0/ prj1/
2)子目錄prj0列表:
$ ls -p prj0
prj0name test0
3)子目錄prj1列表:
$ ls -p prj1
prj1name test1
4)文件prj0/prj0name:
$ cat prj0/prj0name
--------
prj0/prj0name
--------
5)文件prj1/prj1name:
$ cat prj1/prj1name
---------
prj1/prj1name
---------
6)文件prj0/test0:
$ cat prj0/test0
0000000
0000000
0000000
0000000
0000000
0000000
0000000
7)文件prj1/test1:
$ cat prj1/test1
1111111
1111111
1111111
1111111
1111111
1111111
1111111
*創(chuàng)建補丁:
$ diff -uNr prj0 prj1 prj1.patch
這里項u表示使用同一格式輸出這樣產(chǎn)生的輸出便于閱讀易于修改,N表示把不存在的文件看做empty的,r表示遞歸地比較子目錄,比較的結(jié)果被標準重定向到文件prj1.patch中了。
運行之后,輸出的就是一個補丁,描述了兩個文件的不同,這個補丁就是把diff參數(shù)的第一個文件打補丁變成第二個文件的補丁文件。
實際過程依次比較兩個目錄下的同名文件,如果這里不加-N就會指明prj0name和test0只在prj0中存在,prj1name和test1只在prj1中存在,這就無法比較了,所以這里為了能夠比較,加上了-N選項。
為了便于理解,這里給出prj1.patch文件的內(nèi)容:
$ cat prj1.patch
diff -uNr prj0/prj0name prj1/prj0name
--- prj0/prj0name 2009-08-24 10:44:19.000000000 +0800
+++ prj1/prj0name 1970-01-01 08:00:00.000000000 +0800
@@ -1,5 +0,0 @@
---------
-
-prj0/prj0name
-
---------
diff -uNr prj0/prj1name prj1/prj1name
--- prj0/prj1name 1970-01-01 08:00:00.000000000 +0800
+++ prj1/prj1name 2009-08-24 10:45:05.000000000 +0800
@@ -0,0 +1,5 @@
+---------
+
+prj1/prj1name
+
+---------
diff -uNr prj0/test0 prj1/test0
--- prj0/test0 2009-08-24 11:21:12.000000000 +0800
+++ prj1/test0 1970-01-01 08:00:00.000000000 +0800
@@ -1,7 +0,0 @@
-0000000
-0000000
-0000000
-0000000
-0000000
-0000000
-0000000
diff -uNr prj0/test1 prj1/test1
--- prj0/test1 1970-01-01 08:00:00.000000000 +0800
+++ prj1/test1 2009-08-24 11:21:33.000000000 +0800
@@ -0,0 +1,7 @@
+1111111
+1111111
+1111111
+1111111
+1111111
+1111111
+1111111
*將prj0中的所有文件打補丁成為prj1中的所有文件:
步驟如下:
1)$ cp prj1.patch ./prj0
2)$ cd prj0
3)$ patch -p1 prj1.patch
這里,把補丁文件復(fù)制到了prj0下面,然后將該文件夾下面的文件"變成"prj1下的文件了.
$ ls -p
prj1name prj1.patch test1
關(guān)于patch命令的-p選項接數(shù)字n,意思是去掉補丁文件里指定路徑的前n個'/'前綴.
例如補丁文件中指定路徑是/u/howard/src/blurfl/blurfl.c,那么p0選項處理之后的路徑還是原來路徑不變,而p1選項處理之后的路徑是u/howard/src/blurfl/blurfl.c,同理p4處理之后的路徑是:blurfl/blurfl.c.
注意:如果在外層目錄運行這個命令,那么會在外層目錄創(chuàng)建兩個prj1name和test1文件。
*將打好補丁的prj0中的所有文件還原成為原來打補丁之前的文件:
$ patch -R -p1 prj1.patch
運行之后文件變成原來的文件了,如下:
$ ls -p
prj0name prj1.patch test0
*將prj1中的所有文件反向打補丁成為prj0中的所有文件:
$ patch -R -p1 prj1.patch
運行之后prj1中的文件變成prj0的文件了,如下:
$ ls -p
prj0name prj1.patch test0
*將prj1中反打補丁后的文件還原成原來的prj1中的文件:
$ patch -p1 prj1.patch
運行之后,prj1中的文件被還原了,如下:
$ ls -p
prj1name prj1.patch test1
*在外層目錄把prj0的內(nèi)容打補丁成prj1的內(nèi)容:
$ls -p
prj0/ prj1.patch
$patch -p0 prj1.patch
這樣prj0中的內(nèi)容變成了prj1中的內(nèi)容,但是prj0的目錄名仍舊是prj0,如下:
$ls -p prj0
prj1name test1
注意:當前文件夾下面不能prj1目錄,否則會出現(xiàn)一些警告提示。
*在外層目錄把prj0的內(nèi)容反打補丁還原成原來prj0的內(nèi)容:
$ patch -R -p0 prj1.patch
這樣原來的文件如下:
$ ls -p prj0
prj0name test0
**
linux下patch命令使用詳解---linux打補丁命令
功能說明:修補文件。
語法:patch [-bceEflnNRstTuvZ][-B 備份字首字符串][-d 工作目錄][-D 標示符號][-F 監(jiān)別列數(shù)][-g 控制數(shù)值][-i 修補文件][-o 輸出文件][-p 剝離層級][-r 拒絕文件][-V 備份方式][-Y 備份字首字符串][-z 備份字尾字符串][--backup-if -mismatch][--binary][--help][--nobackup-if-mismatch][--verbose][原始文件 修補文件] 或 path [-p 剝離層級] [修補文件]
補充說明:patch指令讓用戶利用設(shè)置修補文件的方式,修改,更新原始文件。倘若一次僅修改一個文件,可直接在指令列中下達指令依序執(zhí)行。如果配合修補文件的方式則能一次修補大批文件,這也是Linux系統(tǒng)核心的升級方法之一。
參數(shù):
-b或--backup 備份每一個原始文件。
-B備份字首字符串或--prefix=備份字首字符串 設(shè)置文件備份時,附加在文件名稱前面的字首字符串,該字符串可以是路徑名稱。
-c或--context 把修補數(shù)據(jù)解譯成關(guān)聯(lián)性的差異。
-d工作目錄或--directory=工作目錄 設(shè)置工作目錄。
-D標示符號或--ifdef=標示符號 用指定的符號把改變的地方標示出來。
-e或--ed 把修補數(shù)據(jù)解譯成ed指令可用的敘述文件。
-E或--remove-empty-files 若修補過后輸出的文件其內(nèi)容是一片空白,則移除該文件。
-f或--force 此參數(shù)的效果和指定-t參數(shù)類似,但會假設(shè)修補數(shù)據(jù)的版本為新 版本。
-F監(jiān)別列數(shù)或--fuzz監(jiān)別列數(shù) 設(shè)置監(jiān)別列數(shù)的最大值。
-g控制數(shù)值或--get=控制數(shù)值 設(shè)置以RSC或SCCS控制修補作業(yè)。
-i修補文件或--input=修補文件 讀取指定的修補問家你。
-l或--ignore-whitespace 忽略修補數(shù)據(jù)與輸入數(shù)據(jù)的跳格,空格字符。
-n或--normal 把修補數(shù)據(jù)解譯成一般性的差異。
-N或--forward 忽略修補的數(shù)據(jù)較原始文件的版本更舊,或該版本的修補數(shù)據(jù)已使 用過。
-o輸出文件或--output=輸出文件 設(shè)置輸出文件的名稱,修補過的文件會以該名稱存放。
-p剝離層級或--strip=剝離層級 設(shè)置欲剝離幾層路徑名稱。
-f拒絕文件或--reject-file=拒絕文件 設(shè)置保存拒絕修補相關(guān)信息的文件名稱,預(yù)設(shè)的文件名稱為.rej。
-R或--reverse 假設(shè)修補數(shù)據(jù)是由新舊文件交換位置而產(chǎn)生。
-s或--quiet或--silent 不顯示指令執(zhí)行過程,除非發(fā)生錯誤。
-t或--batch 自動略過錯誤,不詢問任何問題。
-T或--set-time 此參數(shù)的效果和指定-Z參數(shù)類似,但以本地時間為主。
-u或--unified 把修補數(shù)據(jù)解譯成一致化的差異。
-v或--version 顯示版本信息。
-V備份方式或--version-control=備份方式 用-b參數(shù)備份目標文件后,備份文件的字尾會被加上一個備份字符串,這個字符串不僅可用-z參數(shù)變更,當使用-V參數(shù)指定不同備份方式時,也會產(chǎn)生不同字尾的備份字符串。
-Y備份字首字符串或--basename-prefix=--備份字首字符串 設(shè)置文件備份時,附加在文件基本名稱開頭的字首字符串。
-z備份字尾字符串或--suffix=備份字尾字符串 此參數(shù)的效果和指定-B參數(shù)類似,差別在于修補作業(yè)使用的路徑與文件名若為src/linux/fs/super.c,加上backup/字符串后,文件super.c會備份于/src/linux/fs/backup目錄里。
-Z或--set-utc 把修補過的文件更改,存取時間設(shè)為UTC。
--backup-if-mismatch 在修補數(shù)據(jù)不完全吻合,且沒有刻意指定要備份文件時,才備份文件。
--binary 以二進制模式讀寫數(shù)據(jù),而不通過標準輸出設(shè)備。
--help 在線幫助。
--nobackup-if-mismatch 在修補數(shù)據(jù)不完全吻合,且沒有刻意指定要備份文件時,不要備份文件。
--verbose 詳細顯示指令的執(zhí)行過程。
patch,是打補丁的命令,有很多用法,見幫助#man patch
patch -p0 (“p”指的是路徑,后面的數(shù)字表示去掉路徑的第幾部分。0,表示不去掉,為全路徑)
patch -p1 (“p”后面的數(shù)字1,表示去掉前第一個路徑)fetch
fetch /sys/dev/bge
fetch ...
patch -p0 ...fetch
patch -p patch-tcp_auto_buf-20061212-RELENG_6.diff
也可以把文件中的目錄全改成系統(tǒng)已在的目錄如/usr/src/sys.....注意:
1,確認目錄
然后確認目錄,如不在默認目錄下,就寫下要打補丁的當前絕對目錄。如/usr/src/sys/dev/bge/if_bce.c2,P的使用
可以使用不帶數(shù)字的參數(shù)。
patch 后的軟件安裝
telnetd服務(wù)器的問題及補丁 在當前FreeBSD所有版本中,也就是FreeBSD 5.0、FreeBSD 4.3、FreeBSD 4.2、FreeBSD 4.1.1、FreeBSD 4.1、FreeBSD 4.0、FreeBSD 3.x、FreeBSD 2.x的版本,其telnetd守護進程中存在一個致命的緩沖區(qū)溢出漏洞,該問題是由于telnetd在處理telnet協(xié)議選項的函數(shù)中沒有進行有效的邊界檢查,當使用某些選項(\'AYT\')時,可能發(fā)生緩沖區(qū)溢出。這會導(dǎo)致遠程root級別的安全威脅。
因此,如果一定要使用telnet服務(wù)的話,必須為服務(wù)器打上最新的patch,該patch可以從以下鏈接獲得: (注:通常有兩個版本的telnetd服務(wù)器,有crypto及無crypto的版本,因此需要判斷主機使用的是哪種版本的telnetd,這通常可以通過察看src文件來判斷,比如# ls /usr/src/crypto/telnet/telnetd,如果不存在,則說明使用的是無crypto的版本了,在判別清楚之后再分別下載相關(guān)補丁文件) crypto版本補丁:
patch方法:
# cd /usr/src/
# patch -p /path/to/patch
# cd /usr/src/secure/libexec/telnetd
# make depend make all install 無crypto版本補丁:
patch方法:
# cd /usr/src/
# patch -p /path/to/patch
# cd /usr/src/libexec/telnetd
# make depend make all install 例子來源文件:isp1161-2.6.12.patch(在/root下)
由于patch文件的首行已經(jīng)指明了路徑,所以根據(jù)當前所在的目錄,加不同的參數(shù)使用patch命令:
1:如果當前的目錄是和linux-2.6.12的同級目錄:
[root@ ]#patch -p0 /root/isp1161-2.6.12.patch
2:如果當前的目錄為 linux-2.6.12/:
[root@ ]#patch -p1 /root/isp1161-2.6.12.patch
3:如果當前的目錄為 linux-2.6.12/drivers/:
[root@ ]#patch -p2 /root/isp1161-2.6.12.pathc
0,1,2,是指略去的patch文件中的前幾級目錄。
ln 命令的使用
這是linux中一個非常重要的命令。它的功能是為某一個文件在另外一個位置建立一個不同的鏈接,這個命令最常用的參數(shù)是-s,具體用法是:ln -s 源文件 目標文件。
當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄放上該文件,然后在其它的目錄下用ln命令鏈接(link)它就可以,不必重復(fù)的占用磁盤空間。
例如:ln -s /bin/less /usr/local/bin/less
-s 是代號(symbolic)的意思。
這里有兩點要注意:
第一,ln命令會保持每一處鏈接文件的同步性。也就是說,不論你改動了哪一處,其它的文件都會發(fā)生相同的變化。
patch附帶有一個很好的幫助,其中羅列了很多選項,但是99%的時間只要兩個選項就能滿足我們的需要:
patch -p1 [patchfile]
patch -R [patchfile] (used to undo a patch)
-p1選項代表patchfile中文件名左邊目錄的層數(shù),頂層目錄在不同的機器上有所不同。要使用這個選項,就要把你的patch放在要被打補丁的目錄下,然后在這個目錄中運行path -p1 [patchfile]。來自Linux內(nèi)核patch的一個簡短的引用可以這樣實現(xiàn):
diff -u --recursive --new-file v2.1.118/linux/mm/swapfile.c linux/mm/swapfile. c--- v2.1.118/linux/mm/swapfile.c Wed Aug 26 11:37:45 1998 +++ linux/mm/swapfile.c Wed Aug 26 16:01:57 1998 @@ -489,7 +489,7 @@
int swap_header_version;
int lock_map_size = PAGE_SIZE;
int nr_good_pages = 0; - char tmp_lock_map = 0; + unsigned long tmp_lock_map = 0;
應(yīng)用來自本段中使用-p1開關(guān)拷貝的patch可以有效地減短patch定位的路徑;patch會查找當前目錄下一個名為/mm的子目錄,接著應(yīng)該會在這兒發(fā)現(xiàn)swapfile.c文件,然后等待打補丁。在這個過程中,以破折號(“-”號,譯者注)開始的行會被一個以加號(“+”號,譯者注)開始的行代替。一個典型的patch會包含對多個文件的更新,每個部分中都由對兩個版本的文件運行diff -u命令的輸出結(jié)果組成。
patch在操作時把自己的輸出結(jié)果顯示在屏幕上,但是這種輸出通常都滾屏太快,來不及觀看。原來準備patch的文件名為*.orig,新的patch文件會覆蓋這個初始文件名。
打補丁的問題
使用不同版本的patch問題來源可能不同,所有的版本在網(wǎng)絡(luò)上都是可用的。Larry Wall近年來已經(jīng)不再做很多工作來更新patch了,這可能是由于他最后發(fā)行的一個版本在大部分情況下都能正常運行。最近幾年以來,一直是GNU項目的 FSF程序員發(fā)行新版本的patch。他們首先修訂有問題的patch,但是我最近一直使用沒有問題的2.5版本(這是Debian2.0的發(fā)行版本號)。過去,我的2.1版本也一直運行的很好。當前的GNU patch的版本可以從GNU FTP站點上獲取,然而大部分人都只使用他們Linux發(fā)行版中所提供的版本。
讓我們假定你已經(jīng)對一個目錄下的源程序文件進行了patch修補工作,但是patch并沒有清晰地發(fā)揮作用。這可能會偶然發(fā)生,在打補丁的過程中會顯示錯誤信息,其中帶有行號,說明哪一個文件出現(xiàn)了問題。有時錯誤是很明顯的,例如缺少了分號,??種錯誤可以不費多大力氣就能改正。另外一種可能是從 patch部分刪除了產(chǎn)生問題的部分,但是這樣根據(jù)所涉及到的文件的不同可能會正常工作,也可能不能正常工作了。
另外一種常見的錯位為:假設(shè)你有一個未使用tar打包的內(nèi)核源程序文件,在/linux/arch/下瀏覽各個子目錄時你會發(fā)現(xiàn)各種機器體系結(jié)構(gòu)子目錄,例如alpah、sparc等等。如果你和大多數(shù)Linux用戶一樣,使用的是Intel的處理器(或者是Intel系列),你可以決定刪除這些目錄,這些目錄對于編譯你特殊的內(nèi)核并不需要,只是白白占用了磁盤空間。一段時間之后發(fā)行了一個新的內(nèi)核patch,此時試圖進行patch操作,當它發(fā)現(xiàn)不能找到自己打補丁需要的Alpha或者PPC文件,就會停頓下來。幸運的是patch在這些地方允許用戶參與,它會詢問Skip this patch?回答y,patch就可以按照正確的路徑繼續(xù)執(zhí)行。也許你需要回答這個問題很多次,因此允許自己不需要的目錄保留在磁盤上是一種很好的方法。
1、ls命令
cd /root
ls #顯示當前目錄下所有的非隱藏文件
ls -a #顯示當前目錄下所有文件,包含隱藏文件
ls -l #顯示當前目錄下所有的非隱藏文件的詳情
ls -al #顯示當前目錄下所有文件,包含隱藏文件 的詳情
ls -lh #以列表形式顯示當前目錄下所有的非隱藏文件的大小(K M T)
ls -alh #以列表形式顯示所有文件,包含隱藏文件的文件大小(K M T)
常用的組合:
ls
ll #等價于 ls -l
ls /etc #顯示/etc目錄下的文件
2:pwd命令
用來顯示當前所在的路徑
絕對路徑: 從/目錄開始的路徑
/root
/etc/sysconf
/opt/server/data-integration/libswt/win64
相對路徑: 相對當前的路徑
3、mkdir命令
cd /root
mkdir mytest #在當前目錄創(chuàng)建文件夾
mkdir -p 111/222/333 #一次創(chuàng)建多級文件夾
mkdir /root/mydemo #使用絕對路徑來創(chuàng)建
mkdir mydemo2 #使用相對對路徑來創(chuàng)建
4、rm命令
這個命令既可以刪除文件,也可以刪除目錄
刪文件:
cd /root
rm a.txt #刪除時,會給出提醒確認,輸入y刪除,n不刪除
rm -f b.txt #強制刪除 等價于 rm -f /root/b.txt
rm ../dir2/b.txt
touch a.java b.java c.java
rm a.java b.java c.java #一次可以刪除多個文件
rm *.java -fr #可以刪除當前目錄下的所有.java文件
cd dir
rm * -fr #刪除當前目錄的所有內(nèi)容
刪目錄:
rm -r 111 #刪除目錄,依次提醒刪除
rm -rf mytest #強制刪除 等價于 rm mytest -fr
常用組合:
rm -fr 文件或目錄
5、cd命令
cd 命令可以進入一個目錄,類似于對windows上的文件夾進行雙擊
cd #直接cd 可以從任何一個目錄回到/root目錄
cd /root #進入root目錄
cd /opt/server/data-integration/system/
cd .. #回到上一級目錄
cd ../.. #回到上上一級目錄
cd - #可以在最近的兩次目錄之間切換
cd /root
mdkir dir1 dir2
cd dir1
cd ../dir2 #使用相對路徑 /中國/廣東省/深圳市/寶安區(qū)/留仙二路/78號
6、歷史命令和table補全
使用上下方向鍵可以找出歷史命令
table鍵:
cd /opt/ #兩次table可以列出/opt目錄下所有的文件和子目錄
cd /opt/s #一次table可以自動補全目錄內(nèi)容,前提是/opt目錄下只有一個s開頭的目錄
7、touch命令
cd /root
touch a.java #在當前目錄創(chuàng)建a.txt文件
touch b.java c.java #創(chuàng)建多個文件
touch /root/d.java #通過絕對路徑創(chuàng)建
8、mv命令
移動:
1、mv 文件 目錄 #將文件移動到目錄中區(qū)
cd /root/dir1
touch a.txt
mv a.txt /root/dir2 #等價于 mv a.txt ../dir2
2、 mv 目錄1 目錄2 #將目錄1移動到目錄2下面(前提是目錄2必須存在)
cd /root
mv dir2 dir1 #將dir2移動到dir1下面
重命名:
1、mv 文件1 文件2 #給文件重命名(文件2不能存在)
cd /root
mv a.txt aaa.txt #將a.txt 重命名為aaa.txt
2、mv 目錄1 目錄2 #給目錄重命名(目錄2不能存在)
cd /root
mv dir1 dirx #將dir1重命名為dirx
9、cat命令
顯示文件內(nèi)容
cd /root
cat user.txt
10、cp命令
復(fù)制文件
cd /root
cp user.txt user2.txt
cp user.txt /opt/ #將當前目錄的user.txt 復(fù)制到/opt目錄,文件名保持不變
cp user.txt /opt.user2.txt #將當前目錄的user.txt 復(fù)制到/opt目錄,文件名改為user2.txt
cp /opt/server/data-integration/pan.sh ./ #將指定目錄里的文件復(fù)制到當前目錄(.后邊的/可以去掉)
cp /opt/server/data-integration/pan.sh ./dirx #將指定目錄里的文件復(fù)制到當前目錄下的dirx目錄(.后邊的/比可以去掉)
cp /opt/server/data-integration/pan.sh /root/dirx #作用同上
11、解壓和壓縮
Linux的壓縮包后綴一般是: .tar.gz
解壓:
.tar.gz
將snappy-1.1.1.tar.gz上傳到/root/dir1目錄
tar -zxvf snappy-1.1.1.tar.gz #默認解壓到當前目錄
tar -xvf snappy-1.1.1.tar.gz #默認解壓到當前目錄
tar -xvf snappy-1.1.1.tar.gz -C /opt #將壓縮包解壓到/opt目錄
.zip格式
unzip mysql-connector-java-8.0.13.zip #默認解壓到當前目錄
unzip -d /opt mysql-connector-java-8.0.13.zip #解壓到指定目錄
壓縮:
.tar.gz
tar -czvf snappy-1.1.1.tar.gz snappy-1.1.1 #將snappy-1.1.1文件夾進行打包壓縮
tar -czvf /root/dir/snappy-1.1.1.tar.gz /opt/server/snappy-1.1.1
.zip格式
zip -r mysql-connector-java-8.0.13.zip mysql-connector-java-8.0.13/
12、find命令
用來實現(xiàn)文件的查找
find / -name 'a.txt' #從/目錄開始查找a.txt文件
find / -name 'ins*' #從/目錄開始查找以ins開頭的文件
find / -type f -size +100M #查找/目錄下文件大小大于100M的文件
13、grep命令
grep lang anaconda-ks.cfg #從anaconda-ks.cfg文件中查找包含lang的內(nèi)容
14、ps命令
ps #查看依賴終端的進程
ps -ef #查看Linux系統(tǒng)中所有的進程
15、kill命令
kill -9 進程的pid #每次啟動進程時,pid會發(fā)生變化,但是進程運行期間pid不會變化
16、管道 |
管道就是把前邊命令的結(jié)果作為后邊命令的輸入
ps -ef | grep mysql #查找和mysql相關(guān)的進程
ll /etc | grep java #在/etc目錄中查找java相關(guān)的文件
17、用戶的操作
用戶創(chuàng)建和密碼設(shè)置
useradd itheima #創(chuàng)建新用戶itheima
passwd itheima #設(shè)置用戶itheima密碼
用戶刪除
userdel -r itheima #刪除用戶itheima
18、文件的權(quán)限
所屬用戶: root 文件的創(chuàng)建者
所屬用戶組: root 和文件創(chuàng)建者在一個組的用戶
其他用戶: itcast 既不是文件創(chuàng)建者,也和文件創(chuàng)建者不在同一組
r: 可讀
w:可寫
x: 可執(zhí)行
chmod命令:
方式1:
chmod u+rw a.txt #在所屬用戶之前的權(quán)限基礎(chǔ)上添加可讀和可寫權(quán)限
chmod u=rw a.txt #將所屬用戶的權(quán)限直接修改為可讀,可寫
chmod +x #給所屬用戶,所屬用戶組和其他用戶全部加上可執(zhí)行權(quán)限
方式2:
chmod 777 a.txt #給所有用戶加上所有權(quán)限
19、clear命令
用來清屏
快捷鍵: ctrl + l
20、history命令
用來查看所有的歷史命令
21:vi編輯器的使用
vi a.txt #打開a.txt文件
vim a.txt #vim是vi的增強
22、網(wǎng)絡(luò)管理命令
hostname :查看主機名
修改主機名: /etc/hostname
ifconfig :查看ip地址
修改ip地址: /etc/sysconfig/network-scripts/ifcfg-ens33
服務(wù)問題:
service network restart
Linux常用命令大全100條:
1,echo “aa” 》 test.txt 和 echo “bb” 》》 test.txt
//》將原文件清空,并且內(nèi)容寫入到文件中,》》將內(nèi)容放到文件的尾部
2,chmod go+w -R /home/zhangy //給組用戶和其他用戶添加寫的權(quán)限
3,tar -tzvf test.tar.gz //列出歸檔內(nèi)容
4,du -ah //查看文件列表大小
5,du -sh //查看所有文件的大小總和
6,echo ‘1+2’|bc -l //數(shù)學(xué)運算
7,uname -a //查看linux內(nèi)核等的一些信息
8,badblocks -s /dev/sda //壞道掃描時顯示進度
9,time command //查看命令的運行時間
10,ls -lrt //按時間的倒序排序
11,rsync -P //同步時顯示進度
12.history -c //清楚歷史命令
13,cd - //返回上次目錄
14,tree //顯示目錄樹
15,umount -n /mnt/hda2 //強制卸載
16,echo ~/ //顯示用戶的home目錄
17,echo $[5*5]e799bee5baa6e997aee7ad94e78988e69d8331333337376265 //算術(shù)運算
18,echo $((5*5)) //算術(shù)運算
19,eval ls;ps aux|grep httpd //這二個命令都能執(zhí)行
20,free -m //有MB為單位顯示內(nèi)存
21,uptime
//顯示系統(tǒng)已經(jīng)運行了多長時間,它依次顯示下列信息:現(xiàn)在時間、系統(tǒng)已經(jīng)運行了多長時間、目前有多少登陸用戶、系統(tǒng)在過去的1分鐘、5分鐘和15分鐘內(nèi)的平均負載
22,加法運算
[root@krlcgcms01 mytest]# let a=34+3;
[root@krlcgcms01 mytest]# echo $a;
23,export //查看所有環(huán)境變量
24,echo $PATH //查看單個變量
25,cmp file1 file2 //文件內(nèi)容比對
26,clear //清屏
27,echo 23423 |awk --re-interval ‘/[0-9]{3,}/’ //如果不加re-interval的話,不顯示
28,cal //得到一個整齊的日歷格式
29,wc -l //統(tǒng)計行數(shù),wc -w 統(tǒng)計單詞
30,echo “AaDCbd23” |tr “[A-Z]” “[a-z]” 大寫變小寫,echo “AaDCbdc23” |tr -c b-d =
將b-d之外的字符串替換成=
31,echo “ADSF” | iconv -f UTF8 -t GBK //把字符由utf8轉(zhuǎn)成gbk
-f是from和簡寫,-t好像terminal的簡寫
32,cat -n file //內(nèi)容的前面會顯示行號
33,chattr +i file //只讀,root用戶也沒法對其進行修改
34,lsattr file //查看文件屬性
35,cat /etc/passwd |awk -F: ‘{print $1}’ //查看系統(tǒng)中所有用戶
36,cat /etc/group //查看系統(tǒng)中所有的組
37,groups //查前當前用戶所在的,所有組
38,usermod -g 組名 用戶 //這種方式是覆蓋的方式,用的時候要小心,如果用戶A性于mysql usermod -g php
mysql這樣的話只屬于php了
39,usermod -G 組名 用戶 //這種方式是增加的方式,如果用戶A性于mysql usermod -g php
mysql這樣的話,mysql就屬于2個組了
40,bc //進入數(shù)學(xué)計算中去
41,umask 003 u權(quán)限是7,g權(quán)限是7,其他用戶是4,也就是774,777-003=774
42,mkfs -t vfat /dev/hda6 //將移動硬盤里面的一個分區(qū)格式化成vfat格式
43,mount /dev/cdrom /media/cdrom //掛載cdrom
44,getent group 532 //通過組ID,來查找組信息
45,last //登錄成功用戶記錄
46,lastb //登錄不成功用戶記錄
47,dump -S /dev/sda2 //查看一下要備份/dev/sda2所要的容量
48,dump -0j -f /dev/hda2/sda2_bak.dump.bz2 /dev/sda2 //將sda2進行備份并壓縮
49,restore -t -f /dev/hda2/sda2_bak.dump //查看備份信息
50,restore -r -f /dev/hda2/sda2_bak.dump //還原備份
51,fc-list //查看系統(tǒng)中安裝的字體
52,find 。/ -type f -exec grep -q “root” {} ; -exec echo {} ;
//查找目錄下文件所包涵的字符串
53,vmstat 5 //每5顯示一下次系統(tǒng)信息,cpu,memory,i/o等
54,top 后 在shift + P 所占進程的排序顯示
55,top 后 在shift + M 所占內(nèi)存的排序顯示
56,iptraf -g //查看各個接口的流量
57,ostat -d -x /dev/sda2 2 //用iostat查看磁盤/dev/sda2的磁盤i/o情況,每兩秒刷新一次
58, paste -sd ‘|||n’ test //文件的每4行轉(zhuǎn)換成1行,并用|隔開
59,lsof -i :22 //知道22端口現(xiàn)在運行什么程序
60,lsof -c abc //顯示abc進程現(xiàn)在打開的文件
61,lsof -p 12 //看進程號為12的進程打開了哪些文件
63,route //查看路由信息
64,ifup //開啟網(wǎng)卡
65,ifdown //關(guān)閉網(wǎng)卡
66,route del -net 172.168.0.0 netmask 255.255.0.0 dev eth0 //刪除
172.168這個網(wǎng)段
67,route add -net 172.168.10.0 netmask 255.255.255.0 dev eth0 //增加一個路由
68,netstat -tunl //列出監(jiān)聽的網(wǎng)絡(luò)服務(wù)端口
69,netstat -tun //列出已連接的網(wǎng)絡(luò)服務(wù)端口
70,nmap -sP 172.30.4.0/24 //在這個網(wǎng)段內(nèi)有多少用戶在我的主機上操作,一個不錯的安全檢查工具
71,vgdisplay //查看系統(tǒng)中的可用空間
72,lvextend -L+20G /dev/tank/part1 //向part1這個分區(qū)增加20G的空間
73,lvresize -L-10G /dev/tank/part2 //向part2這個分區(qū)減少10G的空間
74,pvdisplay //查看磁盤信息
75,mplayer -loop 10 /mnt/song/music/花兒開了.mp3 //循環(huán)播放10遍
76,pacman -S firefox -nd //nd去掉依賴
77,wget -c //斷點下載
78,chroot /mnt/ubuntu //改變根目錄到/mnt/ubuntu
79,ctrl+a //命令行下,光標稱動到開頭
80,ctrl+e //命令行下,光標移動結(jié)尾
81,cut -d: -f 1-4 test //用:分割文件,取分割后的1-4列
82,file /home/zhangy/test.php //用于查看文件的一些基本信息
83,touch test.txt //創(chuàng)建一個空文件 text.txt
84,htpasswd -cbd /usr/local/nginx/conf/authfile //創(chuàng)建訪問控制文件
85,df //查看磁盤空間,和當前的磁盤數(shù)
86,fdisk -l //查看所有磁盤數(shù)
87,alsamixer //進入后,m鍵可以實現(xiàn)靜音
88,killall httpd //把所有httpd進程殺掉
89,killall -9 mysqld_safe //有些進程超級用戶也停止不了,-9是強制刪除
90,mirror /mysql //下載mysql目錄
91,mirror -R /mysql //上傳mysql目錄
92,rmmod pcspkr //關(guān)掉tab提示音
93,modprobe pcspkr //開啟tab提示音
94,gpasswd -a zhangy wheel //將zhangy這個用戶添加到wheel這個組
95,dd if=/dev/zero of=/virtual/ubuntu.virt.img bs=1M count=4096
//創(chuàng)建一個4G的IMG鏡像
96,lspic //顯示pci設(shè)備
97,lsusb //顯示usb設(shè)備
98,history | less //less根more有點像,感覺less用著更舒服點
99,ln -s //如果忘了-s就變成硬鏈接了
100,tar zxvf test.tar.gz -C /home/zhangy //將內(nèi)容解壓到指定目錄
;?????linux打補丁總共有四個步驟,具體操作如下:
1、首先登錄VMware上安裝的一臺centos主機,網(wǎng)絡(luò)處于聯(lián)網(wǎng)狀態(tài),命令一般為cat/etc/redhat-release。
2、然后在終端上輸入yumupdate,按下回車,就會開始進行版本包的下載和依賴分析。
3、一般會提示是否確認下載,輸入“y”確認,即可開始下載,并且能夠看到下載的百分比。
4、如果出現(xiàn)complete則說明軟件和補丁已經(jīng)更新完成了。
以上就是的分享了,希望能夠幫助到大家。
本文章基于ThinkpadE15品牌、centos7系統(tǒng)撰寫的。
當前題目:linux命令大全補丁,linux打補丁的命令
本文來源:http://m.newbst.com/article14/hsepde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、動態(tài)網(wǎng)站、全網(wǎng)營銷推廣、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站維護、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)