shell命令3------文件管理與編輯

Linux下進(jìn)行操作,與文件打交道是常用的操作,這一節(jié)要學(xué)習(xí)的是Linux下的文件操作

1.mkdir 命令

用于創(chuàng)建一個(gè)目錄。是make directory的縮寫(xiě)。其命令格式:

mkdir [選項(xiàng)] 目錄名
選 項(xiàng) 說(shuō) 明
-m 對(duì)新建目錄設(shè)置存取權(quán)限
-p 可以指定一個(gè)路徑名,此時(shí),若路徑中的某些目錄尚不存在,用此選項(xiàng)后,系統(tǒng)會(huì)自動(dòng)創(chuàng)建那些尚不存在的目錄,也就說(shuō),一次可以創(chuàng)建多個(gè)目錄
2.more 命令

如果一個(gè)文本文件太長(zhǎng),一屏不能顯示完全,就需要使用more命令。more命令讀取文本文件時(shí),每次顯示一屏,并且在每屏后暫停,同時(shí)在屏幕底部顯示單詞“more”。如果此時(shí)按ENTER鍵,會(huì)接著顯示文本的另一行,如果按空格鍵,就會(huì)顯示文本文件的下一屏信息。格式如下:

more [選項(xiàng)] 文件名 
選 項(xiàng) 說(shuō) 明
-d 在屏幕底部more提示符后顯示友好信息,此信息是顯示有關(guān)哪些鍵繼續(xù),哪些鍵退出,哪些鍵幫助等
-s 將輸出文件的多個(gè)空行減少為一個(gè)空行輸出。以文件的第一行為準(zhǔn)
-p 清楚屏幕以前的信息,再顯示文本信息
-c 顯示問(wèn)件時(shí),沒(méi)屏顯示都清楚屏幕先前的信息然后從最頂端顯示出來(lái)
> more tomcat.log  //以分屏展示信息
> more -c -10 tomcat.log  //顯示tomcat.log文件內(nèi)容,每10行顯示一屏,同時(shí)清除屏幕。
3.cat 命令

可以用來(lái)將文件的內(nèi)容輸出到標(biāo)準(zhǔn)輸出,同時(shí)cat還可以用于連接合并文件。格式如下:

cat [選項(xiàng)] 文件名

或者

cat file1 file2 >file
選 項(xiàng) 說(shuō) 明
-A 將文件的制表符顯示問(wèn)“^I”,同時(shí)在每行的末尾顯示“$”符號(hào)
-b 將文件所有非空行按順序編號(hào),編號(hào)從1開(kāi)始
4.diff 命令

用來(lái)比較文件的差異。diff以逐行的形式比較文件的異同,如果指定比較的是目錄,則只會(huì)比較目錄下相同文件名的文件,不會(huì)比較其子目錄。格式如下:

diff [選項(xiàng)] file1 file2
選 項(xiàng) 說(shuō) 明
-c 顯示全部?jī)?nèi)容,并標(biāo)出不同之處
-b 忽略行尾空格,同時(shí)字符串中的一個(gè)或多個(gè)空格都將視為相同
-r 當(dāng)file1、file2為目錄時(shí),比較子目錄中的文件
-s 兩個(gè)文件相同時(shí),顯示文件的相同信息
5.grep 命令

文本過(guò)濾工具,根據(jù)指定的字符串,對(duì)文件的每一行進(jìn)行搜索,如果找到了這個(gè)字符串,就輸出該行的內(nèi)容。格式如下:

grep [選項(xiàng)] 需要查找的字符串文件名
選 項(xiàng) 說(shuō) 明
-c 只顯示符合條件的行數(shù),不顯示每行的具體信息
-i 搜索時(shí),忽略大小寫(xiě)
-n 搜索結(jié)果中顯示行號(hào)
-f file 事先將要搜索的樣式寫(xiě)進(jìn)一個(gè)文件,每行一個(gè)樣式,然后以這個(gè)文件作為條件進(jìn)行搜索
> grep -ni rpm install.log  //列出 install.log文件中含有rmp字符串的所有行,忽略大小寫(xiě),并標(biāo)識(shí)具體行號(hào)
6. rm 命令

用來(lái)刪除某個(gè)目錄及其下的所有文件及子目錄。對(duì)于鏈接文件,只是斷開(kāi)了鏈接,原文件保持不變。格式如下:

rm [選項(xiàng)] 文件或目錄
選 項(xiàng) 說(shuō) 明
-r 告訴rm命令將選項(xiàng)中列出的全部目錄以及子目錄還有文件進(jìn)行遞歸刪除,如果選項(xiàng)中不加入“-r”選項(xiàng),rm命令將不能刪除目錄
-f 忽略不存在的問(wèn)題,也不給提示
-i 交互式刪除,在刪除前進(jìn)行確認(rèn)

注意,rm -rf 組合要慎用,多用 rm -i 進(jìn)行交互式刪除。

7.touch 命令

用來(lái)修改指定文件的訪問(wèn)時(shí)間和修改時(shí)間,若指定文件不存在則創(chuàng)建此文件。如果沒(méi)有指定時(shí)間,則使用當(dāng)前時(shí)間。格式如下:

touch [選項(xiàng)] 設(shè)定的時(shí)間文件
選 項(xiàng) 說(shuō) 明
-a 改變文件的訪問(wèn)時(shí)間為系統(tǒng)時(shí)間,無(wú)需設(shè)置時(shí)間選項(xiàng)
-m 改變文件的修改時(shí)間為系統(tǒng)時(shí)間,無(wú)需設(shè)置時(shí)間選項(xiàng)
-c 如果文件不存在,不創(chuàng)建也不提示
-d 或 -t 使用指定的日期或時(shí)間
8.ln 命令

用來(lái)在文件或目錄間創(chuàng)建鏈接。

Linux下,鏈接有兩種方式,一種是硬鏈接,另一種是符號(hào)鏈接。默認(rèn)情況下,ln命令產(chǎn)生的是硬鏈接。

  • 硬鏈接 :是指通過(guò)文件的inode來(lái)進(jìn)行鏈接。在Linux文件系統(tǒng)中,保存在內(nèi)存中的所有類(lèi)型文件都會(huì)分配一個(gè)編號(hào),這個(gè)編號(hào)被稱為inode號(hào)(Inode Index)。多個(gè)文件指向同一個(gè)Inode在Linux系統(tǒng)中是允許的,這就是所謂的硬鏈接。硬鏈接的作用是允許一個(gè)文件擁有多個(gè)有效的路徑名,這樣用戶就可以對(duì)一些重要文件進(jìn)行硬鏈接,以防止誤刪操作。因?yàn)閷?duì)應(yīng)該文件的inode有一個(gè)以上的鏈接,所以刪除一個(gè)鏈接并不影響inode本身和其他鏈接,只有當(dāng)最后一個(gè)鏈接被刪除后,該文件數(shù)據(jù)塊和目錄的鏈接才會(huì)被釋放,也就是此文件才真正被刪除。
  • 符號(hào)鏈接:也叫軟鏈接,類(lèi)似于windows下的快捷方式,因此軟連接是指向真正文件或者目錄位置的符號(hào)鏈接。
    格式如下:
ln [選項(xiàng)] 源文件目標(biāo)鏈接名
選 項(xiàng) 說(shuō) 明
-f 如果在目標(biāo)位置存在與鏈接名相同的文件,這個(gè)文件將被刪除
-s 進(jìn)行軟鏈接
-d 允許系統(tǒng)管理員硬鏈接自己的目錄
-b 對(duì)將在鏈接時(shí)會(huì)被覆蓋或刪除的文件進(jìn)行備份
ln命令

上面的命令首先切換到 /home目錄下,新建了一個(gè)目錄test,然后進(jìn)行l(wèi)n操作,將/home/personal/目錄下的test.txt文件,硬鏈接到剛才創(chuàng)建的/home/test目錄下,此時(shí),該目錄下也產(chǎn)生了一個(gè)test.txt文件,并且文件內(nèi)容一樣。如果你修改任意一個(gè)文件,另外一個(gè)文件也會(huì)變。

9.file 命令

用來(lái)顯示文件的類(lèi)型。對(duì)于長(zhǎng)度為0的文件,將被識(shí)別為空文件;對(duì)于符號(hào)鏈接文件,默認(rèn)情況下將顯示符號(hào)鏈接引用的真是文件路徑。格式如下:

file [選項(xiàng)] 文件名
選 項(xiàng) 說(shuō) 明
-b 顯示文件類(lèi)型結(jié)果,不顯示對(duì)應(yīng)文件名稱
-L 直接顯示符號(hào)鏈接所指向文件的類(lèi)型
-z 顯示壓縮文件的信息
-i 如果文件不是常規(guī)文件,則不進(jìn)一步對(duì)文件類(lèi)型進(jìn)行分類(lèi)
file命令
10. cp 命令

將給出的文件或 目錄復(fù)制到另一個(gè)文件或是目錄中。格式如下;

cp [選項(xiàng)] 源文件或目錄 目標(biāo)文件或目錄
選 項(xiàng) 說(shuō) 明
-a 在復(fù)制目錄時(shí)使用。它保留所有的信息,包括文件鏈接、文件屬性,并遞歸的復(fù)制目錄
-r 若給出的源文件是一目錄文件,此時(shí)cp將遞歸復(fù)制該目錄下所有的子目錄和文件,此時(shí)目標(biāo)文件必須是一個(gè)目錄名
-d 復(fù)制時(shí)保留鏈接,這樣不會(huì)失去鏈接文件
-p 保留文件的修改時(shí)間和存儲(chǔ)權(quán)限
-i 如果已經(jīng)有相同的文件名或目標(biāo)文件,則提示用戶是否覆蓋
> cp -r ./* /tmp //將當(dāng)前目錄下的所有文件復(fù)制到tmp目錄下,“./*”表示當(dāng)前目錄下的所有文件及目錄

> cp -r /home/oracle /home/ixdba //將 /home/oracle 目錄下及其子目錄下的所有內(nèi)容復(fù)制到 /home/ixdba 下
11.find 命令

用來(lái)在指定路徑下查找指定文件。格式如下:

find path-name[-options] [-print -exec -ok命令 {} \;]
  • path-name:find命令查找的目錄路徑,例如,可以用“.”表示當(dāng)前目錄,“/”表示系統(tǒng)根目錄
  • -options:用來(lái)控制搜索的方式。

“-options”常見(jiàn)的幾個(gè)格式:

選 項(xiàng) 說(shuō) 明
-name '字符串' 查找文件匹配所給字符串的所有文件,字符串可以使用通配符 ?、 []、 *
-lname '字符串' 查找文件匹配所給字符串的所有符號(hào)鏈接文件,字符串可以使用通配符 ?、 []、 *
-path '字符串' 查找路徑名匹配所給字符串的所有文件,字符串可以使用通配符 ?、 []、 *
-user '字符串' 查找用戶名為所給字符串的所有文件
-group '字符串' 查找用戶組名為所給字符串的所有文件
  • -print:將搜索結(jié)果輸出到標(biāo)準(zhǔn)輸出
  • -exex:將所搜符合條件的文件執(zhí)行所給出的Linux命令,而不許問(wèn)用戶是否執(zhí)行該命令。{}表示shell命令的選項(xiàng)即為所查找的文件,命令的末尾必須以“;”結(jié)束。
    注意:格式要正確,“-exec 命令 {} ;”,“}”與“\”之間一定要有空格。
  • -ok:對(duì)搜符合條件的文件執(zhí)行所給出的Linux命令,與“-exex”不同的是,它會(huì)詢問(wèn)用戶是否執(zhí)行該命令。
12.split 命令

用來(lái)分割文檔,將一個(gè)文件分割成數(shù)個(gè)。格式如下:

split [選項(xiàng)] [input_file] [output_file]
選 項(xiàng) 說(shuō) 明
-b size 制定分割出來(lái)的文件大小,size可以加入單位,b代表512字節(jié),k代表1KB,m代表1MB
-n 分割的每個(gè)文件的長(zhǎng)度,默認(rèn)為1000行
-d 生成的文件序列以數(shù)字形式命名
-a 生成的文件序列的長(zhǎng)度,默認(rèn)長(zhǎng)度為2
  • input_file:要分割的文件
  • output_file:分割出來(lái)的文件序列,生產(chǎn)的文件序列名依次是“output_fileaa”、“output_fileab”、“output_fileac”等,如果沒(méi)有制定output_file,系統(tǒng)默認(rèn)以“x”作為輸出文件名。
> split -b 10m access_log access_log_bak //設(shè)定每個(gè)分割文件的大小為10M,執(zhí)行完畢后,生成的文件一次是access_log_bakaa,access_log_bakab等,每個(gè)文件大小是10M

>split -b 2M -d -a 3 /opt/etc.zip /opt/etc_zip_bak //執(zhí)行完畢后,在/opt目錄下生產(chǎn)etc_zip_bak001、etc_zip_bak002、etc_zip_bak3等文件
13.mv 命令

將文件或是目錄改名,或是講文件從一個(gè)目錄移到另一個(gè)目錄下。源文件和目標(biāo)文件,都是文件或是目錄,表示改名。源文件是文件,目標(biāo)文件是目錄,很顯然時(shí)移動(dòng)文件。格式如下:

mv [選項(xiàng)] 源文件或目錄 目標(biāo)文件或目錄
選 項(xiàng) 說(shuō) 明
-i 交互式操作,在對(duì)已存在的文件或目錄覆蓋時(shí),系統(tǒng)會(huì)詢問(wèn)是否覆蓋,y/n
-f 禁止交互操作,mv指令將要覆蓋文件或目錄時(shí),不給任何提示,默認(rèn)覆蓋
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一個(gè)基本的計(jì)算機(jī)系統(tǒng)由“硬件”和“軟件”組成,一臺(tái)Linux設(shè)備,主要的組成如下圖所示: 一般情況下,我們所說(shuō)的L...
    時(shí)待吾閱讀 1,795評(píng)論 0 16
  • linux資料總章2.1 1.0寫(xiě)的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,269評(píng)論 2 33
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲(chóng)de夢(mèng)閱讀 100,725評(píng)論 9 468
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,618評(píng)論 19 139
  • 1、感恩父母給予我生命。 2、感恩祖輩將我養(yǎng)育。 3、感恩母親、祖母為家的巨大付出。 4、感恩親友們對(duì)我家的照顧。...
    朱曉軍閱讀 168評(píng)論 0 0

友情鏈接更多精彩內(nèi)容