Linux 基本的bash shell命令

文件和目錄列表

  1. ls -F 區(qū)分文件和目錄,目錄名稱后面帶了(/) ,會(huì)在可執(zhí)行文件后面帶上(*),類似.publish.sh的文件。
  2. ls -a 顯示所有文件目錄,包括隱藏。
  3. ls -R 遞歸選項(xiàng)。列出了當(dāng)前目錄下包含的子目錄中的文件。
    ls -F -R ----> ls -FR
  1. ls -l 顯示附加信息。
屏幕快照

顯示下述信息:

  • 文件類型:(d)開(kāi)頭表示目錄,(-)開(kāi)頭表示文件,字符型文件(c),塊設(shè)備(b)
  • 文件權(quán)限:r:read w:write x:execute 可執(zhí)行
  • 文件的硬鏈接總數(shù)
  • 文件屬主的用戶名 zhanglinyu
  • 文件屬組的組名 stafff
  • 文件大小 以字節(jié)為單位
  • 文件的上次修改時(shí)間
  • 文件名或者目錄名
  1. man ls
    能看到可用來(lái)修改ls命令輸出的參數(shù)。 對(duì)于其他的一些命令同樣可以查看,不只是ls。
  2. 過(guò)濾輸出列表
  ls src
  ls -l src //指定文件名作為過(guò)濾器

  //如果不知道確切的文件名,在過(guò)濾器中使用星號(hào)和問(wèn)號(hào)被稱為擴(kuò)展匹配,指的是通配符進(jìn)行模式匹配過(guò)程。
  ls -l sr*
  ls -l s?
  //(?)代表一個(gè)字符
  //(*)代表0個(gè)或者多個(gè)字符

  ls -l rout[er] //匹配出 routr/route  
//中括號(hào)表示一個(gè)字符位置并給出多個(gè)可能的選擇。也可以指定字符范圍 [a-i]/ [!a]
 

處理文件

  1. 創(chuàng)建文件
  touch test_one
  1. 文件復(fù)制
  cp 源對(duì)象 目標(biāo)對(duì)象
  cp test_one test_two
  cp -i test_one test_two  // -i 如果后者已經(jīng)存在會(huì)提示是否覆蓋
  man cp可以查看cp命令的所有可用參數(shù)
  cp -R 可以用它在一條命令中遞歸地復(fù)制整個(gè)目錄的內(nèi)容
  1. 制表鍵自動(dòng)補(bǔ)全 mac上的tab鍵同等功能。
  2. 鏈接文件
    鏈接文件是Linux文件系統(tǒng)的一個(gè)優(yōu)勢(shì),如果需要在系統(tǒng)上維護(hù)同一份文件的兩個(gè)或者多個(gè)副本,除了保存多份單獨(dú)的物理副本之外,還可以采用保存一份物理副本和多個(gè)虛擬副本的方法。
    這種虛擬的副本就稱為鏈接。鏈接是目錄中指向真實(shí)位置的占位符。在Linux中有兩種不同的文件鏈接:
  • 符號(hào)鏈接
    符號(hào)鏈接就是一個(gè)實(shí)實(shí)在在的文件,它指向存放在虛擬目錄結(jié)構(gòu)中的某個(gè)地方的另一個(gè)文件。這兩個(gè)通過(guò)符號(hào)鏈接在一起的文件,彼此內(nèi)容并不相同。要為一個(gè)文件創(chuàng)建符號(hào)鏈接,原始文件必須事先存在。然后可以使用ln命令以及-s選項(xiàng)來(lái)創(chuàng)建符號(hào)鏈接。
ln -s test_one s1_test_one
屏幕快照

注意:符號(hào)鏈接的文件大小與源文件大小不一樣。因?yàn)殒溄游募皇侵赶蛟次募?。?nèi)容并不同。

另一種證明鏈接文件是獨(dú)立文件的方法是查看inode編號(hào)。文件或者目錄的inode編號(hào)是用于唯一標(biāo)識(shí)的數(shù)字,這個(gè)數(shù)字由內(nèi)核分配給文件系統(tǒng)中每一個(gè)對(duì)象。查看inode編號(hào),可以使用ls的-i參數(shù)。

   ls -i *test_one //
屏幕快照
  • 硬鏈接

硬件鏈接會(huì)創(chuàng)建獨(dú)立的虛擬文件。其中包含了源文件的信息和位置。但它們從根本上而已是同一個(gè)文件。引用硬件鏈接文件等同于引用了源文件。要為一個(gè)文件創(chuàng)建硬件鏈接,原始文件必須事先存在。只不過(guò)使用ln的時(shí)候不需要加額外的參數(shù)。

ln test_one s2_test_one
屏幕快照

可以看見(jiàn) 硬件鏈接的inode編碼和源文件的一樣 所以其實(shí)是通一個(gè)文件。

說(shuō)明:只能對(duì)處于同一個(gè)存儲(chǔ)媒體的文件創(chuàng)建硬鏈接。要想在不同存儲(chǔ)媒體的文件之間的文件之間創(chuàng)建鏈接,只能使用符號(hào)鏈接。

  1. 重命名文件(移動(dòng))
    在Linux中,重命名文件稱為移動(dòng),mv命令可以將文件和目錄移動(dòng)到另外一個(gè)位置或重新命名。
    mv 重命名
  mv test_onea test_oneb  //重命名

只影響文件名,其他都不變。

mv 可以用來(lái)移動(dòng)文件:
創(chuàng)建test文件,將test_oneb移動(dòng)下面

  mv test_oneb ./test/  移動(dòng)到當(dāng)前目錄下的test文件中
  mv test_oneb ./test/test_oneb_1  //移動(dòng)并修改名稱  改變的只是位置和名稱

如上圖 文件信息也不會(huì)改變

  1. 刪除文件
  rm -i test_one  //-i參數(shù)就是一個(gè)提示操作 bash shell沒(méi)有回收站或者垃圾箱,一旦刪除,就無(wú)法再找回。
  rm -f test_one //強(qiáng)制刪除文件
  rm -rf test //遞歸強(qiáng)制刪除目錄

處理目錄
在Linux中,有些命令(比如cp命令)對(duì)文件和目錄都有效,而有些只對(duì)目錄有效。

  1. 創(chuàng)建目錄 mkdir
mkdir New_dir
ls -ld New_dir // 查看目錄用 -ld 
目錄長(zhǎng)列表是以d開(kāi)頭,表示不是一個(gè)文件而是一個(gè)目錄

批量創(chuàng)建目錄需要加參數(shù)-p

mkdir -p New_dir/Sub_dir/Under_dir
ls -R New_dir //查看整個(gè)目錄
打包文件中應(yīng)用shell實(shí)例
  1. 刪除目錄 rmdir
  mkdir one_file
  rmdir one_file //如果one_file目錄下面沒(méi)有東西則可以直接刪除成功。如果有東西則需要先將目錄下面的文件刪除,然后才能使用rmdir命令。

rmdir 沒(méi)有 -i選項(xiàng)來(lái)詢問(wèn)是否刪除目錄。還有一種方式刪除非空目錄。使用rm,刪除其中的文件,再刪除目錄本身。

rm -r New_dir 直接刪除
rm -ri New_dir 詢問(wèn)刪除
注意:對(duì)于rm命令而言,-r和-R參數(shù)的效果是一樣的,-R參數(shù)同樣可以遞歸刪除目錄中的文件。shell命令很少會(huì)就相同功能采用不同大小寫的參數(shù)。

查看文件內(nèi)容

  1. 查看文件類型

當(dāng)我們?cè)趖est文件里面寫入 '1222ww22',執(zhí)行
file test : ASCII text, with no line terminators
當(dāng)我們?cè)趖est文件里面寫入 '我的',執(zhí)行
file test : UTF-8 Unicode text, with no line terminators

  1. 查看整個(gè)文件,在Linux上有3個(gè)不同的命令可以完成這個(gè)任務(wù)
  cat test.txt //會(huì)顯示里面的內(nèi)容
  cat -n test.txt //會(huì)把行號(hào)也帶上
  cat -b test.txt//只給有文本
cat命令
  1. more 命令
    cat 命令的主要缺陷是:一旦運(yùn)行,你就無(wú)法控制后面的操作。為了解決這個(gè)問(wèn)題,才有了more命令。more命令會(huì)顯示文本文件的內(nèi)容,但會(huì)在顯示每頁(yè)的數(shù)據(jù)之后停下來(lái)。

簡(jiǎn)單來(lái)說(shuō)就是cat會(huì)將內(nèi)容一次性顯示出來(lái),而more會(huì)進(jìn)行分頁(yè)。

  1. less命令
    more 命令只支持文本文件中的基本移動(dòng),如果要更多高級(jí)的功能,可以試試less命令。具體執(zhí)行man less看看相關(guān)。
  2. 查看部分文件
tail test.txt //默認(rèn)顯示最后10行
tail -n 2 test.txt //使用-n修改 顯示最后兩行
tail -2 text.txt//同上

-f 參數(shù)是tail命令一個(gè)突出的特征,它允許你在其他進(jìn)程使用該文件的時(shí)候查看文件的內(nèi)容,tail命令會(huì)保持活躍狀態(tài),并不斷顯示添加到文件中的內(nèi)容,這是實(shí)時(shí)監(jiān)控系統(tǒng)日志的絕妙方式

  1. head 顯示前面
head test.txt //默認(rèn)顯示前面10行
head -n 2 test.txt //使用-n修改 顯示前面兩行
head -2 text.txt//同上

文件的開(kāi)頭部分一般不會(huì)改的,所以不支持-f 特性。

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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