Linux文件操作 head head命令用於顯示文件的前幾行內容,可以通過-num參數展示文件前num行的內容。 root@ubuntu:~# ls bb.txt cc.txt snap root@ubuntu:~# head cc.txt Hello Ubuntu add test root@u ...
Linux文件操作
head
head
命令用於顯示文件的前幾行內容,可以通過-num
參數展示文件前num
行的內容。
root@ubuntu:~# ls
bb.txt cc.txt snap
root@ubuntu:~# head cc.txt
Hello
Ubuntu
add test
root@ubuntu:~# head -2 cc.txt
Hello
Ubuntu
tail
tail
命令用於顯示文件的後幾行內容,可以通過-num
參數展示文件後num
行的內容。
root@ubuntu:~# tail cc.txt
Hello
Ubuntu
add test
root@ubuntu:~# tail -2 cc.txt
Ubuntu
add test
more
如果一個文件的內容過多,需要分成好幾頁顯示的時候,就可以使用more
命令,預設會顯示第一頁的內容,可以通過enter
鍵查看下一行,空格鍵
查看下一頁,b
查看上一頁,q
鍵退出查看。
cp
cp
命令用於複製文件或者文件夾,複製的同時也可以進行改名操作,如:cp XXX YYY
表示將XXX
複製為YYY
,如果不需要改名,那麼YYY
只需要寫到具體路徑即可,XXX
和YYY
可以是文件名也可以是一個路徑。
將文件1.txt
複製為2.txt
:
root@ubuntu:~# ls
1.txt snap
root@ubuntu:~# cp 1.txt 2.txt
root@ubuntu:~# ls
1.txt 2.txt snap
將文件1.txt
複製到Music
文件夾下且不重命名,這是只需要寫具體路徑Music/
即可:
root@ubuntu:~# ls
1.txt Music snap
root@ubuntu:~# cp 1.txt Music/
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
1.txt
將文件1.txt
複製到Music
文件夾下同時重命名為2.txt
:
root@ubuntu:~# ls
1.txt Music snap
root@ubuntu:~# cp 1.txt ./Music/2.txt
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
2.txt
mv
mv
命令用於移動文件,mv XXX YYY
表示將XXX
移動到YYY
,這裡的移動類似於windows下的剪切操作,XXX
和YYY
和上面的cp操作一樣可以是路徑也可以是文件名,如果是路徑則表示,將XXX
路徑下的文件移動到YYY
路徑下,這裡將/root
目錄下的文件1.txt
移動到Music
目錄下且不重命名:
root@ubuntu:~# pwd
/root
root@ubuntu:~# ls
1.txt Music snap
root@ubuntu:~# mv 1.txt Music/
root@ubuntu:~# ls
Music snap
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
1.txt
將/root
目錄下的文件1.txt
移動到Music
目錄下且重命名為2.txt
:
root@ubuntu:~# pwd
/root
root@ubuntu:~# ls
1.txt Music snap
root@ubuntu:~# mv 1.txt Music/2.txt
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
2.txt
除此之外,mv
還可以實現文件重命名的效果,只需要將當前路徑下的文件移動到當前文件夾下並重命名就可以實現:
root@ubuntu:~# ls
1.txt Music snap
root@ubuntu:~# mv 1.txt 3.txt
root@ubuntu:~# ls
3.txt Music snap
tar
tar
命令用於打包文件。
常用的兩個命令分為兩組:
(1) tar -zcvf
和tar -zxvf
tar -zcvf
用於將文件打成tar
包並壓縮為.gz
文件。
tar -zxvf
用於對打包後的壓縮包文件進行解壓。
- 參數詳解:
z
參數用於表示使用gzip格式壓縮或者解壓一個文件
c
參數用於創建一個壓縮文件
v
參數用於顯示壓縮或者解壓的詳細過程
f
參數用於指定壓縮或者解壓的文件名
(2) tar -jcvf
和tar -jxvf
這一組命令與上一組命令唯一不同的地方在於這裡使用的參數是j
,j
參數是指壓縮或者解壓的格式是bzip2
格式。
兩組命令的使用場景:
(1)如果壓縮文件是以.tar.gz
結尾使用tar -zxvf
命令進行解壓。
(2)如果壓縮文件是以.tar.bz2
結尾使用tar -jxvf
命令進行解壓。
如果想將文件解壓到指定的目錄下可以再添加-C
參數。
文件檢索
find
find
命令用於按照指定的條件查找文件,一般使用格式為find 查找路徑 [可選參數] 查找文件
。
可選參數:
-name
指定需要查找的文件名。
-size
匹配指定文件大小的文件,比如查找大於100KB
的文件使用參數+100
,小於100KB
的文件使用參數為-100
。
在當前目錄下查找文件名為4.txt
的文件,如果存在則會顯示文件名,不存在則不顯示:
root@ubuntu:~# ls
1.txt 2.txt 3.txt 4.txt Music snap
root@ubuntu:~# find . -name "4.txt"
./4.txt
root@ubuntu:~# find . -name "5.txt"
root@ubuntu:~#
grep
grep
命令用於在某個文本中使用關鍵詞進行搜索,一般使用格式為find [可選參數] 目標文本 查找的文件名
。
可選參數:
-n
用於顯示查找到的文本在文件的第幾行。
root@ubuntu:~# cat 1.txt
aaaaaaaaa
bbbbbbbb
ccccccc
dddddd
eeeee
ffff
ggg
hh
i
root@ubuntu:~# grep ddd 1.txt
dddddd
root@ubuntu:~# grep -n ddd 1.txt
4:dddddd
wc
wc
命令用於統計文件中的行數或者單詞數,命令分別為wc -l 文件名
、wc -w 文件名
。
root@ubuntu:~# cat 1.txt
first line
second line
aaaa
bbbb
ddd
ff
root@ubuntu:~# wc -l 1.txt
6 1.txt
root@ubuntu:~# wc -w 1.txt
8 1.txt
tree
tree
命令用於以樹狀圖的方式展示指定目錄下的文件結構,命令格式為tree 指定目錄
。
使用此命令前需要先進行安裝,我這裡使用的是Ubuntu 20
,所以使用的命令是sudo apt-get install tree
,如果是Centos
則可以使用yum install tree
命令進行安裝。
root@ubuntu:~# pwd
/root
root@ubuntu:~# tree
.
├── 1.txt
├── 2.txt
├── 3.txt
├── 4.txt
├── Music
└── snap
└── firefox
├── 1540
├── 1747
├── common
└── current -> 1747
7 directories, 4 files
Linux文件許可權
chmod
在說文件許可權之前,先介紹一下Linux
下關於文件的一些知識:
root@ubuntu:~# ll
total 48
drwx------ 6 root root 4096 Aug 29 15:29 ./
drwxr-xr-x 19 root root 4096 Jul 18 21:50 ../
-rw------- 1 root root 76 Aug 29 10:06 .bash_history
-rw-r--r-- 1 root root 3106 Oct 15 2021 .bashrc
drwx------ 3 root root 4096 Jul 8 03:01 .cache/
-rw------- 1 root root 20 Jul 8 03:08 .lesshst
-rw-r--r-- 1 root root 161 Jul 9 2019 .profile
drwx------ 2 root root 4096 Jul 8 02:41 .ssh/
-rw------- 1 root root 2713 Aug 29 15:29 .viminfo
-rw-r--r-- 1 root root 40 Aug 29 15:29 1.txt
-rw-r--r-- 1 root root 0 Aug 29 15:22 2.txt
-rw-r--r-- 1 root root 0 Aug 29 15:06 3.txt
-rw-r--r-- 1 root root 0 Aug 29 15:22 4.txt
drwxr-xr-x 2 root root 4096 Aug 29 15:18 Music/
drwx------ 3 root root 4096 Jul 8 03:05 snap/
我們使用ll
查看文件的時候,可以看到文件的詳細信息,文件詳細信息的第一列
是文件的格式,d
表示該文件是一個目錄,-
表示該文件是一個普通文件,c
表示為串列埠設備,如鍵盤滑鼠等。
詳細信息中的第二到第四個
字元是文件所有者對該文件擁有的許可權,r
表示讀許可權,通常使用數字4
表示,w
表示寫文件,通常使用數字2
表示,x
表示執行許可權,通常使用數字1
表示,如果擁有對應許可權就會有對應的字元,如果是-
表示沒有對應許可權。
接下來的三個
字元是當前用戶所在組對該文件擁有的許可權,再接著的三個字元
是其他用戶對該文件的許可權。
這時我們想對文件的許可權進行修改時就可以通過chmod
命令加上需要修改的許可權對應的數字組合進行修改,比如我想修改4.txt
的屬性為只允許我自己擁有讀寫許可權,其餘人沒有任何許可權,就可以使用chomd 600 文件名
,600
中的6
由4+2
得來,即讀許可權+寫許可權
,6
對應的是前三個字元
即當前用戶
的許可權,第二個0
對應的是當前用戶所屬組
的許可權,第三個0
對應的是其他用戶
對於這個文件的許可權。
root@ubuntu:~/Music# ll
total 12
drwxr-xr-x 2 root root 4096 Aug 29 15:37 ./
drwx------ 6 root root 4096 Aug 29 15:37 ../
-rw-r--r-- 1 root root 40 Aug 29 15:29 1.txt
-rw-r--r-- 1 root root 0 Aug 29 15:22 2.txt
-rw-r--r-- 1 root root 0 Aug 29 15:06 3.txt
-rw-r--r-- 1 root root 0 Aug 29 15:22 4.txt
root@ubuntu:~/Music# chmod 600 4.txt
root@ubuntu:~/Music# ll
total 12
drwxr-xr-x 2 root root 4096 Aug 29 15:37 ./
drwx------ 6 root root 4096 Aug 29 15:37 ../
-rw-r--r-- 1 root root 40 Aug 29 15:29 1.txt
-rw-r--r-- 1 root root 0 Aug 29 15:22 2.txt
-rw-r--r-- 1 root root 0 Aug 29 15:06 3.txt
-rw------- 1 root root 0 Aug 29 15:22 4.txt