1. 程式人生 > >linux 檔案及資料夾操作總結

linux 檔案及資料夾操作總結

文章目錄

檔案基本操作

檢視

cat命令

cat命令用於檢視純文字檔案(較短的),格式為:“cat [選項] [檔案]”。
引數 作用

-n      顯示行號
-b      顯示行號(不包括空行)
-A      顯示出“不可見”的符號,如空格,tab鍵等等

more命令

more命令用於檢視純文字檔案(較長的),格式為:“more [選項] 檔案”

引數      作用
-n      顯示行號
-b      顯示行號(不包括空行)
-A      顯示出“不可見”的符號,如空格,tab鍵等等

head命令
head命令用於檢視純文字文件的前N行,格式為:“head [選項] [檔案]”。
引數 作用

-n 10       顯示10行
-n -10      正常輸出(如cat命令),但不顯示最後的10行

tail命令
tail命令用於檢視純文字文件的後N行,格式為:“tail [選項] [檔案]”

引數      作用
-n 10   顯示後面的10行
-f      持續重新整理顯示的內容

od命令
od命令用於對檢視特殊格式的檔案,格式為:“od [選項] [檔案]”。
引數 作用

-t a    預設字元
-t c    ASCII字元
-t o    八進位制
-t d    十進位制
-t x    十六進位制
-t f    浮點數

複製刪除移動

cp命令

cp命令用於複製檔案或目錄,格式為:“cp [選項] 原始檔 目標檔案”。
複製命令的三種情況:
目標檔案是一個目錄,會將原始檔複製到該目錄中。
目標檔案是一個檔案,會將原始檔覆蓋該檔案。
目標檔案不存在,將會複製原始檔並修改為目標檔案的名稱(重新命名)。

引數      作用
-p      保留原始檔案的屬性
-d      若物件為"連結檔案",則保留該"連結檔案"的屬性
-r      遞迴持續複製(用於目錄)
-i      若目標檔案存在則詢問是否覆蓋
-a      相當於-pdr(p,d,r為上述的引數)

mv命令
mv命令用於移動檔案或改名,格式為:“mv [選項] 檔名 [目標路徑|目標檔名]”。

rm命令
rm命令用於刪除檔案或目錄,格式為:“rm [選項] 檔案”。
刪除普通檔案並提示確認資訊:“rm 檔名”
刪除普通檔案或目錄檔案,不提示:“rm -rf 檔案或目錄名”

引數      作用
-f      忽略警告資訊
-i      刪除前先詢問
-r      刪除資料夾

dd命令
dd命令用於指定大小的拷貝的檔案或指定轉換檔案,格式為:“dd [引數]”。

引數          作用
if          輸入的檔名稱。
of          輸出的檔名稱。
bs          設定每個“塊”的大小。
count       設定要拷貝“塊”的個數。
conv=ucase  將字母從小寫轉換為大寫。
conv=lcase  把字元從大寫轉換為小寫。

建立

vi命令
比如vi www.sh 會顯示一個空白的檔案,新增字元並且:wq後,會儲存退出

touch命令

touch命令用於建立空白檔案與修改檔案時間,格式為:“touch [選項] [檔案]”。
1.我們可以用“touch test”輕鬆的創建出一個名字為test的空白文件,所以這個功能無須介紹。
2.對於在Linux中的檔案有三種時間:
更改時間(mtime):內容修改時間(不包括許可權的)
更改許可權(ctime):更改許可權與屬性的時間
讀取時間(atime):讀取檔案內容的時間
如果黑客執行了touch -d “2 days ago” test,便將訪問與修改時間修改為了2天前(偽造了自己沒有動過該檔案的假象)。
3.

  引數      作用
    -a      近修改“訪問時間”(atime)
    -m      近修改“更改時間”(mtime)
    -d      同時修改atime與mtime
    -t      要修改成的時間[YYMMDDhhmm]

其他

tr命令
tr命令用於轉換文字檔案中的字元,格式為:“tr [原始字元] [目標字元]”。
例如:檢視tr.txt檔案,並將所有的小寫字母轉換為大寫字母

 cat tr.txt | tr [a-z] [A-Z]

wc命令
wc命令用於統計指定文字的行數、字數、位元組數,格式為“wc [引數] 文字”。
引數 作用

-l      只顯示行數
-w      只顯示單詞數
-c      只顯示位元組數

cut命令
cut命令用於通過列來提取文字字元,格式為:“cut [引數] 文字”。
引數 作用

-d 分隔符    指定分隔符,預設為Tab。
-f          指定顯示的列數。
-c          單位改為字元

獲取當前系統中所有使用者的名稱:
引數作用:-d以”:”來做分隔符,-f引數代表只看第一列的內容。

cut -d: -f1 /etc/passwd

許可權(包括資料夾)

檢視許可權

我們來檢視一下zhaoyuqiang.html這個網頁檔案的許可權。
方法:在終端輸入:
ls -l xxx.xxx (xxx.xxx是檔名)檢視的是xxx檔案之中的檔案許可權
那麼就會出現相類似的資訊,主要都是這些:-rw-rw-r–

許可權含義

-rw-r--r--

中間那三個 rw- 代表的是所有者(user)擁有的許可權
然後那三個 r-- 代表的是組群(group)擁有的許可權
最後那三個 r-- 代表的是其他人(other)擁有的許可權
然後
r 表示檔案可以被讀(read)
w 表示檔案可以被寫(write)
x 表示檔案可以被執行(如果它是程式的話)
- 表示相應的許可權還沒有被授予
之後的root root 就是使用者擁有者了。
需要注意的是:檢視檔案許可權的目錄問題: 如果有資料夾 /a/b/c
那麼執行 ls -l /a/b 檢視許可權的檔案並不是b,而是檢視的c的許可權。
ls -l /a 檢視的是b檔案的許可權
ls -l /a/b 檢視的是c檔案的許可權
ls -l /a/b/c 檢視的是c檔案的許可權

修改許可權

在終端輸入:
chmod o w xxx.xxx
表示給其他人授予寫xxx.xxx這個檔案的許可權
chmod go-rw xxx.xxx
表示刪除xxx.xxx中組群和其他人的讀和寫的許可權
其中:
u 代表所有者(user)
g 代表所有者所在的組群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示檔案可以被讀(read)
w 表示檔案可以被寫(write)
x 表示檔案可以被執行(如果它是程式的話)
其中:rwx也可以用數字來代替

r ------------4

w -----------2

x ------------1

- ------------0

行動:
表示新增許可權

  • 表示刪除許可權
    = 表示使之成為唯一的許可權
    當大家都明白了上面的東西之後,那麼我們常見的以下的一些許可權就很容易都明白了:
    -rw------- (600) 只有所有者才有讀和寫的許可權
    -rw-r–r-- (644) 只有所有者才有讀和寫的許可權,組群和其他人只有讀的許可權
    -rwx------ (700) 只有所有者才有讀,寫,執行的許可權
    -rwxr-xr-x (755) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有讀和執行的許可權
    -rwx–x--x (711) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有執行的許可權
    -rw-rw-rw- (666) 每個人都有讀寫的許可權
    -rwxrwxrwx (777) 每個人都有讀寫和執行的許可權

修改許可權(數字)

另外一種方法是以數字來表示許可權,而且僅需三個數字。
r: 對應數值4
w: 對應數值2
x:對應數值1
-:對應數值0
(一) 我們將rwx看成二進位制數,如果有則有1表示,沒有則有0表示,那麼rwx r-x r- -則可以表示成為:111 101 100再將其每三位轉換成為一個十進位制數,就是754。
(二) 也可以將其簡單的理解為一種運算: (4+2+1) (4+1) (4)=754
例如,我們想讓zhaoyuqiang.html這個檔案的許可權為:
自己 同組使用者 其他使用者
可讀 是 是 是
可寫 是 是
可執行 是
那麼,我們先根據上表得到許可權串為:rw-rw-r–,那麼轉換成二進位制數就是110 110 100,再每三位轉換成為一個十進位制數,就得到664,因此我們執行命令:

chmod 664 test.sh


[[email protected] ~]# chmod 700 /mnt/fileA注:僅把fileA目錄的許可權設定為700
[[email protected] ~]# chmod -R 744 /mnt/fileA注:表示將整個/mnt/fileA

目錄與其中的檔案和子目錄的許可權都設定為744
需要注意的還是關於修改許可權的檔案問題:比如有檔案 /a/b/c.
執行: chmod 700 /a 修改的是a檔案的許可權

   chmod 700 /a/b  修改的是b檔案的許可權 
   chmod 700 /a/b/c  修改的是c檔案的許可權

要和檢視檔案許可權的目錄分開

所有者

chown 語法
chown [選項]… [所有者][:[組]] 檔案…
舉例:將oldboy檔案的屬主改為oldboy使用者

[[email protected] oldboy]# ls -l oldboy
-rw-r--r-- 1 root root 5 May  1 09:57 oldboy
[[email protected] ~]# chown  oldboy:root oldboy  #這裡冒號也可以換成點(.)
[[email protected] oldboy]# ls -l oldboy
-rw-r--r-- 1 oldboy root 5 May  1 09:57 oldboy

說明:chown 所接的新的屬主和新的屬組之間應該以.或:連線,屬主和屬組任意之一可以為空。如果屬主為空,應該是:屬組;如果屬組為空,就不必需要.或:了。

[email protected] ~]# mkdir -p /test/oldboy
[[email protected] ~]# cd /test/oldboy/
[[email protected] oldboy]# touch oldboy.txt
[[email protected] oldboy]# ls -l oldboy.txt 
-rw-r--r-- 1 root root 0 May  3 08:09 oldboy.txt
[[email protected] oldboy]# chown zgy oldboy.txt      #把oldboy.txt的屬主改為zgy
[[email protected] oldboy]# ls -l oldboy.txt 
-rw-r--r-- 1 zgy root 0 May  3 08:09 oldboy.txt
[[email protected] oldboy]# chown :zgy oldboy.txt 
[[email protected] oldboy]# ls -l oldboy.txt 
-rw-r--r-- 1 zgy zgy 0 May  3 08:09 oldboy.txt
[[email protected] oldboy]# chown root:etiantian oldboy.txt   #把oldboy.txt的屬主改為root,把屬組改成etiantian使用者組
[[email protected] oldboy]# ls -l oldboy.txt 
-rw-r--r-- 1 root etiantian 0 May  3 08:09 oldboy.txt

特別提示:要修改的使用者和組鄙視是系統中已經存在的。
chown也提供了-R引數,這個引數對目錄改變屬主和屬組極為有用,我們可以通過加-R引數來改變某個目錄下的所有檔案到新的屬主或屬組;

[[email protected] oldboy]# mkdir zgy_dir
[[email protected] oldboy]# ls -ld zgy_dir/
drwxr-xr-x 2 root root 4096 May  3 08:26 zgy_dir/
[[email protected] oldboy]# mkdir zgy_dir
[[email protected] oldboy]# ls -ld zgy_dir/
drwxr-xr-x 2 root root 4096 May  3 08:26 zgy_dir/

資料夾

建立

mkdir命令
mkdir用於建立空白的資料夾,格式為:“mkdir [選項] 目錄”。
引數 作用

-m=MODE     預設的檔案目錄許可權,如"-m 755"
-p          連續建立多層目錄(若資料夾已存在則忽略)
-v          顯示建立的過程

檢視進入

pwd命令
pwd命令用於顯示當前的工作目錄,格式為:“pwd [選項]”。
引數 作用

-P      顯示真實路徑。(即非快捷連結的地址)

cd命令
cd命令用於切換工作路徑,格式為:“cd [目錄名稱]”。
引數 作用

-           切換到上一次的目錄,如“cd -”
~           切換到“家目錄”,如"cd ~"
~username   切換到其他使用者的家目錄,如"cd ~teak"
..          切換到上級目錄,如"cd .."

複製刪除移動

cp命令

cp命令用於複製檔案或目錄,格式為:“cp [選項] 原始檔 目標檔案”。
複製命令的三種情況:
目標檔案是一個目錄,會將原始檔複製到該目錄中。
目標檔案是一個檔案,會將原始檔覆蓋該檔案。
目標檔案不存在,將會複製原始檔並修改為目標檔案的名稱(重新命名)。

引數      作用
-p      保留原始檔案的屬性
-d      若物件為"連結檔案",則保留該"連結檔案"的屬性
-r      遞迴持續複製(用於目錄)
-i      若目標檔案存在則詢問是否覆蓋
-a      相當於-pdr(p,d,r為上述的引數)

mv命令
mv命令用於移動檔案或改名,格式為:“mv [選項] 檔名 [目標路徑|目標檔名]”。

rm命令
rm命令用於刪除檔案或目錄,格式為:“rm [選項] 檔案”。
刪除普通檔案並提示確認資訊:“rm 檔名”
刪除普通檔案或目錄檔案,不提示:“rm -rf 檔案或目錄名”

引數      作用
-f      忽略警告資訊
-i      刪除前先詢問
-r      刪除資料夾