(1)pwd:顯示當前所在位置
說明:
pwd命令是“print working directory”中每個單詞的首字母縮寫,其功能是顯示當前工作目錄的絕對路徑。在實際工作中,我們在命令行操作命令時,經常會在各個目錄路徑之間進行切換,此時可使用pwd命令快速查看當前我們所在的目錄路徑。
語法
pwd [option]
1.注意pwd命令和后面的選項之間至少要有一個空格。
2.通常情況下,執行pwd命令不需要帶任何參數。
參數
PWD系統環境變量,可以用“$”符號輸出其值,代碼如下:
[root@iZ8vb11v8r15ng6q0eb8dzZ ~]# echo $PWD
/root
在Bash命令行顯示當前用戶的完整路徑。
系統Bash命令行的提示符是由一個稱為PS1的系統環境變量控制的。
查看當前PS1變量的值
[root@iZ8vb11v8r15ng6q0eb8dzZ home]# echo $PS1
[u@h W]$
修改PS1變量對應的值,來讓命令行顯示全路徑(臨時生效)
[root@iZ8vb11v8r15ng6q0eb8dzZ home]# PS1="[u@h w]$"
[root@iZ8vb11v8r15ng6q0eb8dzZ /home]$cd /etc/sysconfig
[root@iZ8vb11v8r15ng6q0eb8dzZ /etc/sysconfig]$
修改PS1變量對應的值,來讓命令行顯示全路徑(永久生效)
1.編輯/etc/bashrc文件,找到以下內容
[ “$PS1” = “s-v$ " ] && PS1=”[u@h W]$ "
2.修改退出
[ “$PS1” = “s-v$ " ] && PS1=”[u@h w]$ "
3.最后,注銷并重新登錄系統或直接執行source/etc/bashrc使得修改的信息生效
(2)cd:切換目錄
說明
cd命令是“change directory”中每個單詞的首字母縮寫,其功能是從當前工作目錄切換到指定的工作目錄。
語法
cd [option] [dir]
1.注意cd命令以及后面的選項和目錄,每個元素之間都至少要有一個空格。
2.cd命令后面的選項和目錄等參數都可以省略。默認情況下,單獨執行cd命令,可切換到當前登錄用戶的家目錄(由系統環境變量HOME定義)。
3.cd是bash shell的內置命令,查看該命令對應的系統幫助需要使用help cd。
參數
執行不帶任何參數的cd命令和“cd~”的結果一樣。
(3)tree:以樹形結構顯示目錄下的內容
說明
tree命令的中文意思為“樹”,功能是以樹形結構列出指定目錄下的所有內容,包括所有文件、子目錄及子目錄里的目錄和文件。
語法
tree [option] [directory]
1.注意tree命令以及后面的選項和目錄,每個元素之間都至少要有一個空格。
2.tree命令后若不接選項和目錄就會默認顯示當前所在路徑目錄的目錄結構。
選項
查詢tree命令是否安裝
rpm -qa tree
安裝tree命令
yum -y install tree
調整系統字符集,防止樹形結構顯示亂碼
LANG=en_US.UTF-8
(4)mkdir:創建目錄
說明
mkdir命令是“make directories”中每個單詞的粗體字母組合而成,其功能是創建目錄,默認情況下,如果要創建的目錄已存在,則會提示此文件已存在;而不會繼續創建目錄。
語法
mkdir [option] [directory]
1.注意mkdir命令以及后面的選項和目錄,每個元素之間都至少要有一個空格。
2.mkdir命令可以同時創建多個目錄,格式為mkdir dir1dir2…
選項
拓展
大括號 {} 的特殊用法。
在{}中使用逗號分隔多個字符或單詞時,使用echo命令可以將這些被分隔的字符或單詞分別輸出到屏幕上,示例如下:
[root@iZ8vb11v8r15ng6q0eb8dzZ /]$echo {B,C}
B C
如果{}前有字符時,輸出結果如下:
[root@iZ8vb11v8r15ng6q0eb8dzZ /]$echo A{B,C}
AB AC
創建文件夾同理
[root@iZ8vb11v8r15ng6q0eb8dzZ /home]$mkdir B C
[root@iZ8vb11v8r15ng6q0eb8dzZ /home]$ls
B C hello.txt
[root@iZ8vb11v8r15ng6q0eb8dzZ /home]$mkdir A{B,C}
[root@iZ8vb11v8r15ng6q0eb8dzZ /home]$ls
AB AC B C hello.txt
[root@iZ8vb11v8r15ng6q0eb8dzZ /home]$
(5)touch:創建空文件或改變文件的間戳屬性
說明
touch命令有兩個功能:
1.是創建新的空文件
2.是改變已有文件的時間戳屬性
語法
touch [option] [file]
1.注意區分touch和mkdir命令的功能,mkdir命令是創建空目錄,而touch是創建空文件。
2.在Linux中,一切皆文件。雖然touch命令不能創建目錄,但是可以修改目錄的時間戳。
選項
拓展
GNU/Linux的文件有3種類型的時間戳:
Access: 1985-11-05 1534.991966181 +0800
Modify: 1985-11-05 1534.991966181 +0800
Change: 1985-11-05 1534.991966181 +0800
1.Access 最后訪問文件時間
2.Modify 最后修改文件時間
3.Change 最后改變文件狀態時間
對應ls命令,查看上述時間戳的選項如下
1.mtime: 最后修改時間(ls -lt) 修改文件內容,文件的修改時間(modify time)會改變。
2.ctime:狀態改變時間(ls -lc) 修改文件內容、移動文件或改變文件屬性等,文件的change時間會改變。
3.atime:最后訪問時間(ls -lu) 查看文件內容時,文件的訪問時間( access time)會改變。
(6)ls:顯示目錄下的內容及相關屬性信息
說明
ls命令可以理解為英文單詞list的縮寫,其功能是列出目錄的內容及其內容屬性信息(list directory contents)。
語法
ls [option] [file]
1.ls命令以及后面的選項和文件,每個元素之間都至少要有一個空格。
2. 命令后面的選項和目錄文件可以省略,表示查看當前路徑的文件信息。
選項
ls命令輸出內容的屬性解讀
[root@hsforpyp /]$ls -lhi
total 20K
24972 lrwxrwxrwx. 1 root root 7 May 11 2019 bin -> usr/bin
147 dr-xr-xr-x. 5 root root 4.0K Nov 20 14:45 boot
1026 drwxr-xr-x 19 root root 2.9K Dec 29 23:50 dev
132 drwxr-xr-x. 94 root root 8.0K Jan 4 11:39 etc
50332430 drwxr-xr-x. 2 root root 23 Jan 4 11:59 home
24976 lrwxrwxrwx. 1 root root 7 May 11 2019 lib -> usr/lib
149 lrwxrwxrwx. 1 root root 9 May 11 2019 lib64 -> usr/lib64
150 drwxr-xr-x. 2 root root 6 May 11 2019 media
16779732 drwxr-xr-x. 2 root root 6 May 11 2019 mnt
33614798 drwxr-xr-x. 2 root root 6 May 11 2019 opt
1 dr-xr-xr-x 111 root root 0 Dec 29 23:50 proc
16777345 dr-xr-x---. 5 root root 228 Jan 4 11:39 root
11624 drwxr-xr-x 30 root root 880 Dec 29 23:50 run
24977 lrwxrwxrwx. 1 root root 8 May 11 2019 sbin -> usr/sbin
50332431 drwxr-xr-x. 2 root root 6 May 11 2019 srv
1 dr-xr-xr-x 13 root root 0 Dec 30 07:50 sys
148 drwxrwxrwt. 3 root root 126 Jan 4 12:21 tmp
16777371 drwxr-xr-x. 12 root root 144 Nov 20 14:36 usr
33575041 drwxr-xr-x. 21 root root 4.0K Nov 20 06:41 var
1.inode索引節點編號
2.文件類型及權限
3.硬鏈接個數
4.文件或目錄所屬用戶
5.文件或目錄所屬組
6.文件或目錄的大小
7.文件或目錄修改時間(7、8、9列)
8.實際的文件名或目錄名
(7)cp:復制文件或目錄
說明
cp命令可以理解為英文單詞copy的縮寫,其功能為復制文件或目錄。
語法
cp [option] [source] [dest]
選項
(8)mv:移動或重命名文件
說明
mv命令可以理解為英文單詞move的縮寫,其功能是移動或重命名文件(move/rename files)
語法
mv [option] [source] [dest]
選項
(9)rm:刪除文件或目錄
說明
rm命令可以理解為英文單詞remove的縮寫,其功能是刪除一個或多個文件或目錄(remove files or directories)。這是Linux系統里最危險的命令之一,請慎重使用。
語法
rm [option] [file]
選項
經驗
1.用mv替代rm,不要急著刪除,而是先移動到回收站/tmp。
2.刪除前務必備份,最好是異機備份,若出現問題隨時可以還原。
3.如果非要刪除,那么請用find替代rm,包括通過系統定時任務等清理文件方法。
4.如果非要通過rm命令刪除,那么請先切換目錄再刪除,能不用通配符的就不用通配符。對文件的刪除禁止使用“rm-rf文件名”,因為“rm-rf”誤刪目錄時并不會有提示,非常危險。最多使用“rm-f文件名”,推薦用“rm文件名”。
(10)rmdir:刪除空目錄
說明
rmdir命令用于刪除空目錄(remove empty directories),當目錄不為空時,命令不起作用。
語法
rmdir [option] [directory]
選項
(11)ln:硬鏈接與軟鏈接
說明
ln命令可以理解為英文單詞link的縮寫,其功能是創建文件間的鏈接(make links between files),鏈接類型包括硬鏈接(hard link)和軟鏈接(符號鏈接,symbolic link)
語法
ln [option] [source] [target]
選項
細說鏈接知識
鏈接分為硬鏈接(hard link)和軟鏈接(符號鏈接,symbolic link)兩種,它們的含義具體如下。
硬鏈接(Hard Link):創建語法為“ln源文件目標文件”,硬鏈接生成的是普通文件(-字符)。
軟鏈接或符號鏈接(Symbolic Link or Soft Link):創建語法為“ln-s源文件目標文件(目標文件不能事先存在)”,軟鏈接生成的是符號鏈接文件(l類型)。
硬鏈接
硬鏈接是指通過索引節點(Inode)來進行鏈接。在Linux(ext2、ext3、ext4)文件系統中,所有文件都有一個獨有的inode編號。在Linux文件系統中,多個文件名指向同一個索引節點(inode)是正常且允許的。這種情況下的文件就稱為硬鏈接。硬鏈接文件相當于文件的另外一個入口。它的作用之一就是允許一個文件擁有多個有效路徑名(多個入口),這樣用戶就可以建立硬鏈接到重要文件,以防止誤刪源數據。
1.具有相同inode節點號的多個文件互為硬鏈接文件。
2.刪除硬鏈接文件或者刪除源文件任意之一,文件實體并未被刪除。
3.只有刪除了源文件以及源文件所有對應的硬鏈接文件,文件實體才會被刪除。
4.所有的硬鏈接文件及源文件被刪除之后,再存放新的數據時會占用這個文件的空間,或者磁盤fsck檢查的時候,刪除的數據也會被系統回收。
5.硬鏈接文件就是文件的另外一個入口(相當于超市的前門后門)。
6.可以通過給文件設置硬鏈接文件,來防止重要文件被誤刪。
7.執行命令“ln源文件硬鏈接文件”,即可完成硬鏈接的創建。
8.硬鏈接文件可以用rm命令刪除。
9.對于靜態文件(沒有進程正在調用的文件)來講,當對應硬鏈接數為0(i_link)時,文件就會被刪除。i_link的查看方法是ls-lih,查看結果的第三列,即硬鏈接數。
軟鏈接
軟鏈接或符號鏈接(Symbolic Link or Soft Link)有點像Windows里的快捷方式。
硬鏈接文件的類型是普通文件,而軟鏈接是真正的鏈接文件(l)。
1.軟鏈接類似于Windows的快捷方式(可以通過后面的readlink命令查看其指向)。
2.軟鏈接類似于一個文本文件,里面存放的是源文件的路徑,指向源文件實體。
3.即使刪除了源文件,軟鏈接文件也還是依然存在,但是無法訪問指向的源文件路徑內容了。
4.失效的時候一般是白字紅底閃爍提示。
5.執行命令“ln-s源文件軟鏈接文件”,即可完成創建軟鏈接(軟鏈接文件名事先不能存在)
6.軟鏈接和源文件是不同類型的文件,也是不同的文件,inode號也不相同。
7.刪除軟鏈接文件可以使用rm命令。
(12)readlink:查看符號鏈接文件的內容
說明
使用cat命令查看軟鏈接文件時,會發現只能看到源文件的內容,看不到軟鏈接文件的真實內容。因此需要使用readlink命令,它能夠幫助我們查看符號鏈接文件的真實內容。
語法
readlink [option] [file]
選項
[root@iZ8vb11v8r15ng6q0eb8dzZ /]$ll -h /usr/bin/awk
lrwxrwxrwx. 1 root root 4 May 11 2019 /usr/bin/awk -> gawk
[root@iZ8vb11v8r15ng6q0eb8dzZ /]$readlink /usr/bin/awk
gawk
[root@iZ8vb11v8r15ng6q0eb8dzZ /]$readlink -f /usr/bin/awk
/usr/bin/gawk
(13)find:查找目錄下的文件
說明
find命令用于查找目錄下的文件,同時也可以調用其他命令執行相應的操作。
語法
find [-H] [-L] [-P] [-D debugopts] [-0level] [pathname] [expression]
1.注意find命令以及后面的選項和路徑、操作語句,每個元素之間都至少要有一個空格。
2.注意子模塊的先后順序。
選項
(14)xargs:將標準輸入轉換成命令行參數
說明
xargs命令是向其他命令傳遞命令行參數的一個過濾器,能夠將管道或者標準輸入傳遞的數據轉換成xargs命令后跟隨的命令的命令行參數。
語法
xargs [option]
選項
(15)rename:重命名文件
說明
rename命令通過字符串替換的方式批量修改文件名。
語法
rename from to file
1.from:代表需要替換或處理的字符,一般是文件名的一部分,也包括拓展名
2.to:把前面的from代表的內容替換為to代表的內容
3.file:待處理的文件,可以用“*”通配所有文件
使用范例
將所有文件的finished替換為空
rename “finished” “” *
將所有文件的.jpg替換為.png
rename .jpg .png *.jpg
(16)basename:顯示文件名或目錄名
說明
basename命令用于顯示去除路徑和文件后綴部分的文件名或目錄名。
語法
basename [name] [suffix]
suffix是可選參數,指定要去除的文件后綴字符串。
使用范例
去除路徑部分,即只顯示文件名
[root@iZ8 /home]$mkdir data/dir1 -p
[root@iZ8 /home]$touch data/dir1/file.txt
[root@iZ8 /home]$basename data/dir1/file.txt
file.txt
[root@iZ8 /home]$basename data/dir1/file.txt .txt
file
(17)dirname:顯示文件或目錄路徑
說明
dirname命令用于顯示文件或目錄路徑。
語法
dirname [name]
使用范例
只顯示文件所在路徑
[root@iZ8 /home]$dirname data/dir1/file.txt
data/dir1
給dirname一個相對路徑,他也會返回相對路徑(當前目錄.)
[root@iZ8 /home]$cd data/dir1/
[root@iZ8 /home/data/dir1]$dirname file.txt
.
(18)chattr:改變文件的擴展屬性
說明
chattr命令用于改變文件的擴展屬性。與chmod這個命令相比,chmod只是改變文件的讀、寫、執行權限,更底層的屬性控制是由chattr來改變的。
語法
chattr [option] [mode] [files]
選項
使用范例
設置只能往文件里追加內容,但不能刪除文件。
chattr +a test
給文件加鎖,使其只能是只讀。
chattr +i file
避免惡意刪除.bash_history歷史記錄文件或者重定向到/dev/null,又因為系統需要向這個文件中寫入歷史記錄,因此采用追加模式,只增不減:
chattr +a .bash_history
tips: 關于chattr的功能,我們能夠操作的,黑客如果知道了也能操作,因此,使用chattr的安全性是相對的。
(19)lsattr:查看文件擴展屬性
說明
lsattr命令用于查看文件的擴展屬性。
語法
lsattr [options] [files]
選項
使用范例
查看文件擴展屬性
[root@iZ8 /home]$lsattr file.txt
-------------------- file.txt
[root@iZ8/home]$chattr +i file.txt
[root@iZ8 /home]$lsattr file.txt
----i--------------- file.txt
查看目錄擴展屬性
[root@iZ8 /home]$lsattr -d dir/
-------------------- dir/
[root@iZ8 /home]$chattr +i dir
[root@iZ8 /home]$lsattr -d dir/
----i--------------- dir/
(20)file:顯示文件的類型
說明
file命令用于顯示文件的類型。
語法
file [option] [file]
多個文件之間使用空格分開,可以使用通配符來匹配多個文件。
選項
(21)md5sum:計算和校驗文件的MD5值
說明
md5sum命令用于計算和校驗文件的MD5值。MD5的全名為Message-Digest Algorithm(信息-摘要算法)5,它是一種不可逆的加密算法。軟件或文件一般都有自己固定的文件格式或信息,簡單一點說就是“世界上沒有完全相同的兩片葉子”,那么對于某些網上公開下載的軟件、視頻,尤其是鏡像文件,如果被修改了可能會導致用不了或者其他的問題。因此發布者首先要通過MD5算法得出一組數值,然后讓下載的用戶進行MD5的數值對比,即MD5校驗。基于MD5加密不可逆算的特性,如果數值一樣,那么就表示文件沒有受到修改。反之,則表示修改了。
語法
md5sum [option] [file]
選項
生產案例
利用md5sum命令來檢驗備份文件是否遭到損壞。
md5sum命令用于備份任務的指紋檢查。每次在備份完成之后生成指紋文件,將備份和指紋文件發送到備份服務器上,在備份服務器上又會通過md5sum命令和校驗文件校驗備份是否正確。這樣做的目的是為了在第一時間發現可能因為網絡傳輸而造成的文件損壞。
(22)chown:改變文件或目錄的用戶和用戶組
說明
chown命令用于改變文件或目錄的用戶和用戶組。
語法
chown [option] [OWNER] [:[GROUP]] [file]
常用格式
chown 用戶 文件或目錄 # 僅僅授權用戶
chown :組 文件或目錄 # 僅僅授權組
chown 用戶:組 文件或目錄 # 表示授權用戶和組
1.其中的 : 可以用 . 來代替
2.要授權的用戶和組名,必須是Linux系統實際存在的。
選項
范例
# 更改文件所屬用戶屬性
[root@iZ8 /home]$ll
total 0
-rw-r–r-- 1 root root 0 Jan 4 14:09 file.txt
drwx------ 2 testuser testuser 62 Jan 4 14:05 testuser
[root@iZ8 /home]$chown testuser file.txt
[root@iZ8 /home]$ll
total 0
-rw-r–r-- 1 testuser root 0 Jan 4 14:09 file.txt
drwx------ 2 testuser testuser 62 Jan 4 14:05 testuser
# 更改文件所屬組屬性
[root@iZ8 /home]$chown .testuser file.txt
[root@iZ8 /home]$ll
total 0
-rw-r–r-- 1 testuser testuser 0 Jan 4 14:09 file.txt
drwx------ 2 testuser testuser 62 Jan 4 14:05 testuser
(23)chmod:改變文件或目錄權限
說明
chmod命令是用來改變文件或目錄權限的命令,但是只有文件的屬主和超級用戶root才能夠執行這個命令。
語法
chmod [option] [mode] [file]
模式有兩種格式:一種是采用權限字母和操作符表達式;另一種是采用數字。
選項
字母和數字權限轉換圖
目錄權限說明
(24)umask:顯示或設置權限掩碼
說明
umask是通過八進制的數值來定義用戶創建文件或目錄的默認權限。
語法
umask [option] [mode]
選項
文件權限計算
創建文件默認最大的權限為666(-rw-rw-rw-),默認創建的文件沒有可執行權限x位。
對于文件來說,umask的設置是在假定文件擁有八進制666的權限上進行的,文件的權限就是666減umask(umask的各個位數字也不能大于6,比如077就不符合條件)的掩碼數值,如果得到的3位數字其每一位都是偶數,那么這就是最終結果;如果有若干位的數字是奇數,那么這個奇數需要加1變成偶數,最后得到全是偶數的結果。
示例
1.umask 022 所有位為偶數
6 6 6 # 文件的起始權限值
0 2 2 - # umask 的值
-----------
6 4 4
2.umask 045 其他用戶組為奇數
6 6 6 # 文件的起始權限值
0 4 5 - # umask值
6 2 1 # 計算出來的權限,由于umask最后一位是奇數5,所以,其他用戶組位+1
0 0 1 + # umask 對應的奇數位+1
6 2 2 # 真實文件權限
目錄權限計算(沒有奇偶之分)
創建目錄默認最大權限777(-rwx-rwx-rwx),默認創建的目錄屬主是有x權限的,允許用戶進入。
文件權限計算
創建文件默認最大的權限為666(-rw-rw-rw-),默認創建的文件沒有可執行權限x位。
對于文件來說,umask的設置是在假定文件擁有八進制666的權限上進行的,文件的權限就是666減umask(umask的各個位數字也不能大于6,比如077就不符合條件)的掩碼數值,如果得到的3位數字其每一位都是偶數,那么這就是最終結果;如果有若干位的數字是奇數,那么這個奇數需要加1變成偶數,最后得到全是偶數的結果。
示例
1.umask 022 所有位為偶數
6 6 6 # 文件的起始權限值
0 2 2 - # umask 的值
-----------
6 4 4
2.umask 045 其他用戶組為奇數
6 6 6 # 文件的起始權限值
0 4 5 - # umask值
6 2 1 # 計算出來的權限,由于umask最后一位是奇數5,所以,其他用戶組位+1
0 0 1 + # umask 對應的奇數位+1
6 2 2 # 真實文件權限
目錄權限計算(沒有奇偶之分)
創建目錄默認最大權限777(-rwx-rwx-rwx),默認創建的目錄屬主是有x權限的,允許用戶進入。
對于目錄來說,umask的設置是在假定文件擁有八進制777權限上進行,目錄八進制權限777減去umask的掩碼數值。
審核編輯:湯梓紅
-
Linux
+關注
關注
87文章
11225瀏覽量
208914 -
文件
+關注
關注
1文章
561瀏覽量
24695 -
命令
+關注
關注
5文章
678瀏覽量
21984 -
變量
+關注
關注
0文章
613瀏覽量
28329
原文標題:干貨:Linux 文件和目錄操作命令
文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論