Linux02:基本命令、查看文件、鏈接命令


基本命令、查看文件、鏈接命令

linux中的命令基本格式:命令 [-選項] [參數]

目錄顯示命令ls

ls(是list的簡寫),表示顯示所有文件

顯示根目錄的文件:ls -a /

-a代表顯示所有文件,包括隱藏文件(a代表all,隱藏文件一般是.開頭的);

-l代表顯示文件的詳細信息(l代表long),執行ls -l /命令后:

從左到右代表:

文件類型(d代表目錄directory、-代表二進制文件、l代表軟鏈接文件link、b為裝置文件中可供存儲的接口設備、c為裝置文件中的串行端口設備,如鼠標鍵盤)

權限(主組其他,r代表read,w代表write,x代表execute)、

引用計數(這個數字和目錄下的文件或目錄情況有關,同時與硬鏈接數有關,如果在目錄A中建立一個目錄B,那么B的引用計數就是2,因為默認B下有.和..兩個目錄,而目錄A中的引用計數+1,同時如果多一個硬鏈接,該文件的引用計數也加1)、

所有者(只有一個)、所屬組、文件大小單位字節、修改時間、文件名;

-lh(h代表human)代表顯示文件的詳細信息,與-l不同之處在於文件大小顯示更人性化;

-d表示僅列出目錄。

-i代表查詢文件唯一標志(i代表inode)。

-sh可以查看每個文件占用的block總容量,可以發現ll命令結果的第一行total是總文件使用block的數量*每個block的大小,這個數大於總文件大小,但是剩余的磁盤空間已經不能利用了,因為每個文件再小也要占用一個block,這就是磁盤空間浪費:

創建目錄mkdir

mkdir(make directories)是創建新目錄的命令。

創建tmp下的新目錄i1:mkdir -p /tmp/i1,-p意思是遞歸創建,如果要在一個不存在的目錄下創建目錄就必須用這個選項。mkdir支持創建多個目錄,只需要用空格將多個目錄隔開即可,目錄名要寫完全。

創建時直接分配權限:mkdir -m 711 test2

切換目錄cd

cd(change directory) 切換目錄。cd后加具體目錄可以完成切換,加兩個點可以回到上一級目錄。

顯示當前目錄pwd

pwd(print working directory)顯示當前目錄。如果當前目錄是鏈接文件,加選項-P會顯示到鏈接到的具體位置。

刪除rmdir和rm

rmdir(remove empty directory)刪除目錄(必須是空目錄,否則執行失敗),-p代表刪除多層空目錄。

rm(remove)刪除文件或目錄。-r表示刪除目錄;-f表示不需要再次確認;-rf表示刪除目錄且不需要確認。

拷貝cp與剪切mv

cp(copy)拷貝文件或目錄,一般格式是cp [要復制的文件] [目標位置],不加選項可以復制文件,且可以復制多個文件到一個位置;-r表示復制目錄;-p表示保留文件屬性,因為文件拷貝過去后修改時間為拷貝時間,相當於新創建的時間,如果想保留文件的修改時間就要用這個選項。cp命令在拷貝時還可以修改名稱,只要把目標位置改為一個新的具體文件(如/root表示復制到root下,/root/c表示復制到root下,並將其改名為c)

除此之外,cp還可以建立硬鏈接和軟鏈接文件,格式為cp 選項 源文件 鏈接文件-l代表建立硬鏈接,-s代表建立軟連接。

-a是-d和-r的結合,-d代表如果要復制的文件是軟鏈接文件,則復制后還是軟鏈接文件,它也可用做完整復制文件權限,可以代替-p。

mv(move)剪切文件及改名,一般格式是mv [要剪切的文件或目錄] [目標位置],這個和cp一樣有改名的功能,也可以同時剪切多個文件。如果要剪切的文件或目錄在當前目錄下,直接寫文件名即可,無需寫全路徑。如果兩個位置都不寫全路徑只寫文件名代表在當前目錄位置下改名。

注意把文件拷貝或剪切給別人使用時經常需要改變文件的所有者和所屬組。

創建文件touch

touch創建文件,后加文件名就能創建,如果不在當前目錄下創建需要寫全路徑。如果要創建文件名帶空格的文件,必須用雙引號將文件名包括進去,這樣很不方便,后續處理也有麻煩,故在linux中不建議文件名中加空格。

執行touch命令除了可以創建文件外,還能將已有的文件的三種時間都統一成現在,有時因為開機程序問題,文件的時間可能會出現重大偏差,此時就需要執行此命令,加一些選項touch可以隨意修改這三種時間(分別是modification time內容更新時間,status time狀態更新時間,access time讀取時間)。

查看文件命令

cat、tac和nl命令

cat查看文件內容,后加要查看的文件名。-n表示查看時顯示行號。查看文件內容,包括特殊字符:cat -A 文件,在linux中編輯的文件回車符是$,而在windows中編輯完的文件在linux中打開后,回車符是ctrl+M $(^M$),此時腳本是不能正常運行的,此時只要用dos2unix加文件名就能將其轉換為linux可執行的文件,這個命令如果沒有可以手動安裝:yum -y install dos2unix類似作用的命令還有unix2dos。

tac表示按行倒序排列查看,這兩個命令不適用於查看很多內容的文件。

nl命令可以添加行號打印文件內容。這三個命令都是直接查看文件內容(不能翻頁的)。

more和less命令

more也可以查看文件內容,它以百分比的形式顯示查看文件內容多少,按f或空格可以翻頁,回車可以看下一行,q或Q表示看完退出,但more不能向上翻頁。還有搜索功能,在瀏覽狀態下輸入/要查找內容回車,就可以跳到那個位置,但是只能向下搜尋。

less和more類似,但加了向上翻的功能,pageup可以向上翻一頁,上箭頭可以向上看一行,less還可以查找內容,在瀏覽狀態下輸入/要查找內容回車,就可以跳到那個位置,按n跳到下一個搜索詞,它可以向上搜尋,用?代替/即可。

head和tail命令

head可以指定看前幾行,head -n 20 文件表示看前20行,如果不加選項代表看前10行。

tail和head類似,是看文件末尾行的,也可以使用-n來指定行數,-f代表動態查看,文件出現變化時tail命令的顯示也會變化,常用來查看日志。按ctrl+c來退出查看狀態。tail -n +100 文件表示查看文件100行后的數據。

顯示文件的第11到第20行:head -n 20 文件 | tail -n 10

顯示文件的第11到第20行且有行號:cat -n 文件 | head -n 20 | tail -n 10

od命令

od命令用來查看非文本文件:od -t c 文件代表用ascii方式展示內容,c就代表ascii方式,d、f、o、x分別代表十進制輸出、浮點數輸出、八進制輸出和十六進制輸出,a代表利用默認的字符來輸出。

鏈接命令ln

ln(link)創建鏈接,ln 原文件 鏈接文件表示生成一個硬鏈接文件,-s表示生成軟鏈接文件。

軟鏈接 硬鏈接
修改源文件 可以訪問到 同步修改
刪除源文件 無法訪問 可以訪問
文件類型 文件類型為l 需要查看inode,和源文件用同一inode
大小 很小 和源文件一樣大
修改時間 新建時間 與源文件相同
訪問權限 全開,但能否訪問取決於源文件 和源文件相同
限制 不能跨分區建立、不能針對目錄使用
箭頭標識 詳細信息中有箭頭標識

所謂硬鏈接,其實就是多個文件公用一個inode,此時兩個文件除了文件名以外所有信息都一樣,讀取文件時無論通過哪個文件名都能鏈接到唯一的inode,進而找到唯一的datablock,因此修改哪個文件最終都會影響兩個文件,而如果刪除任意一個文件,也不會導致數據不能訪問,因為inode和block依然存在,所以硬鏈接比較安全。

硬鏈接實質上就是多了一個目錄的block而已,不會對磁盤和inode數產生很大的影響。

因為要鏈接到同一個inode,所以硬鏈接不能跨文件系統(分區),至於為何硬鏈接不能針對目錄,這主要是因為目錄下的文件是經常變動的,這會導致這種鏈接關系難以維護。

軟鏈接僅僅是建立一個到源文件的快捷方式,它是一個獨立的文件,故和源文件的inode不同,這種文件的大小就是源文件的文件名占用的空間,刪除源文件會導致無法打開軟鏈接。

用cp命令也可以建立硬鏈接和軟鏈接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM