個人主頁-愛因斯晨
文章專欄-Linux
最近學習人工智能時遇到一個好用的網站分享給大家:
人工智能學習
文件屬性
看懂文件屬性
在Linux中我們可以使用ll
或者ls-l
命令來顯示一個文件的屬性以及文件所屬的用戶和組。如:
root@VM-24-17-ubuntu:~# cd /
root@VM-24-17-ubuntu:/# ls -ll
total 2035800
lrwxrwxrwx 1 root root 7 Apr 22 2024 bin -> usr/bin
drwxr-xr-x 2 root root 4096 Feb 26 2024 bin.usr-is-merged
drwxr-xr-x 3 root root 4096 Jul 1 15:32 boot
dr-xr-xr-x 2 root root 4096 Apr 23 2024 cdrom
drwxr-xr-x 2 root root 4096 Apr 29 2024 data
drwxr-xr-x 19 root root 3960 Aug 27 22:03 dev
drwxr-xr-x 119 root root 4096 Aug 27 22:09 etc
drwxr-xr-x 4 root root 4096 Aug 28 10:37 home
lrwxrwxrwx 1 root root 7 Apr 22 2024 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Apr 22 2024 lib64 -> usr/lib64
drwxr-xr-x 2 root root 4096 Feb 26 2024 lib.usr-is-merged
drwx------ 2 root root 16384 Apr 26 2024 lost+found
drwxr-xr-x 2 root root 4096 Apr 23 2024 media
drwxr-xr-x 2 root root 4096 Apr 23 2024 mnt
drwxr-xr-x 2 root root 4096 Apr 23 2024 opt
dr-xr-xr-x 188 root root 0 Aug 27 22:03 proc
drwx------ 6 root root 4096 Aug 28 17:24 root
drwxr-xr-x 33 root root 1160 Aug 28 17:24 run
lrwxrwxrwx 1 root root 8 Apr 22 2024 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Apr 3 2024 sbin.usr-is-merged
drwxr-xr-x 2 root root 4096 Apr 26 2024 snap
drwxr-xr-x 2 root root 4096 Apr 23 2024 srv
-rw------- 1 root root 2084569088 Apr 26 2024 swap.img
dr-xr-xr-x 13 root root 0 Aug 27 22:04 sys
drwxrwxrwt 13 root root 4096 Aug 28 16:26 tmp
drwxr-xr-x 12 root root 4096 Apr 23 2024 usr
drwxr-xr-x 13 root root 4096 Apr 26 2024 var
root@VM-24-17-ubuntu:/#
在Linux中,我們使用第一個字符來表示這個文件是目錄還是文件或連接
- 當為
[d]
則是目錄 - 當為
[-]
則是文件 - 若是
[l]
則表示為鏈接文檔(link file) - 若是
[b]
則表示為裝置文件里面的可供儲存的接口設備(可隨機存取裝置) - 若是
[c]
則表示為裝置文件里面的串行端口設備
接下來的字符中是以三個為一組[rwx]
的三個參數的組合
[r]
是指可讀,[w]
是指可寫,[x]
:可以執行
三個參數的位置不會改變,如果沒有權限則用-
代替。
drwxr-xr-x 3 //文件個數 root //屬主 root//游客 4096 Jul 1 15:32 boot
修改文件屬性
1.chgrp:更改文件屬組
chgrp [-R] 屬組名 文件名
-R:遞歸更改文件屬組,更改某個目錄的同時,修改目錄下的所有文件屬組
2.chown :更改文件屬主,也可以同時修改屬組
chown [-R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名
3.chmod :更改文件9個屬性(必須掌握)
chmod [-R] xyz 文件或目錄
文件屬性有兩種設置方法,一種是數字(常用的數字),一種是符號
Linux文件的基本權限就有九個,分別是owner/group/others三種身份,各有自己的三種權限r/w/x
我們可以用數字來代表三個權限 :
r-4,w-2,x-1
rw-4+2=6
rwx-4+2+1=7
每種身份的三個權限是要累加的,例如:
owner=rwx=4+2+1=7
group=rwx=4+2+1=7
other=---=00
chmod 770 filename
root@VM-24-17-ubuntu:/# cd /home
root@VM-24-17-ubuntu:/home# ls
lighthouse test7 test8 ubuntu
root@VM-24-17-ubuntu:/home# ls -ll
total 16
drwxr-x--- 2 lighthouse lighthouse 4096 Aug 27 22:03 lighthouse
drwxr-xr-x 2 root root 4096 Aug 28 17:57 test7
drwxr-xr-x 2 root root 4096 Aug 28 17:57 test8
drwxr-x--- 5 ubuntu ubuntu 4096 Aug 27 22:03 ubuntu
root@VM-24-17-ubuntu:/home# chmod 770 test7 //修改權限
root@VM-24-17-ubuntu:/home# ls -ll
total 16
drwxr-x--- 2 lighthouse lighthouse 4096 Aug 27 22:03 lighthouse
drwxrwx--- 2 root root 4096 Aug 28 17:57 test7
drwxr-xr-x 2 root root 4096 Aug 28 17:57 test8
drwxr-x--- 5 ubuntu ubuntu 4096 Aug 27 22:03 ubuntu
root@VM-24-17-ubuntu:/home#
文件內容查看
Linux 系統中使用以下命令來查看文件的內容:
- cat 由第一行開始顯示文件內容
- tac 從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫!
- nl 顯示的時候,順道輸出行號!
- more 一頁一頁的顯示文件內容,帶余下內容的(空格代表翻頁,enter代表向下看一行,-f 行號)
- less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!(空格下翻頁,上下鍵代表滾動頁面!退出q命令,查找字符串/要查詢的字符向下查詢,要查詢字符串,n繼續查詢下一個)
- head 只看前頭幾行
- tail 只看尾巴幾行
你可以使用 man [命令] 來查看各個命令的使用文檔,如:man cp。
root@VM-24-17-ubuntu:~# cd /root
root@VM-24-17-ubuntu:~# ls
0665f1354725765580a9f5fa1dca3178.pdf 1fef20ff65d7f03923621f8494e5877c.pdf tee
1eada41a4fd1d0278ef5dc7bfceea6d.jpg ceshi.docx
root@VM-24-17-ubuntu:~# cat ceshi.docx //查看第一行內容
PK
N docProps/PN??\qdocProps/app.xmlQo0?????′l&M1@3h??=緊_{?f'n謃??6¤
?tDa#?U#QUF??.x ¥'??<??J
1|a???Pc??7G :?臏?¥0Fw
?3noZsl"μ"21# aH[°Z?nZVF£O??YM???k?41$tzP|?2e?z??-c
a|?o飵yA?`Q??m?9Гb癭o,�?PN?,EddocProps/core.xmlQKp?C?|m*{r0???6iH¢??i?>snn[5a@$Q7¢R
root@VM-24-17-ubuntu:~# tac ceshi.docx //查看最后一行
? 9word/theme/theme1.xmlPK?O$N?word/theme/PN?μ
N?r!word/_rels/PN?P禂 !word/_rels/document.xml.relsPN?? vword/document.xmlPN?U? :word/fontTable.xmlPN?
word/styles.xmlPK ?· ?ord/settings.xmlPN??¢ ae
N?胷ord/PK
N docProps/PN??\q 'docProps/app.xmlPN?,Ed ±docProps/core.xmlPN?? %docProps/custom.xmlPK
N?( _rels/PN?""
因為ceshi文件是 Microsoft Word 文檔(Office 格式),屬于二進制文件,直接用 cat
查看會顯示亂碼(二進制內容被強制轉成文本)。后續我們會安裝插件
硬鏈接和軟連接
root@VM-24-17-ubuntu:/# cd ~
root@VM-24-17-ubuntu:~# cd /
root@VM-24-17-ubuntu:/# ll
total 2035808
drwxr-xr-x 24 root root 4096 Aug 28 23:22 ./
drwxr-xr-x 24 root root 4096 Aug 28 23:22 ../
-rw-r--r-- 1 root root 0 Aug 27 22:03 .autorelabel
lrwxrwxrwx 1 root root 7 Apr 22 2024 bin -> usr/bin/
drwxr-xr-x 2 root root 4096 Feb 26 2024 bin.usr-is-merged/
drwxr-xr-x 3 root root 4096 Jul 1 15:32 boot/
dr-xr-xr-x 2 root root 4096 Apr 23 2024 cdrom/
drwxr-xr-x 2 root root 4096 Apr 29 2024 data/
drwxr-xr-x 19 root root 3960 Aug 27 22:03 dev/
drwxr-xr-x 119 root root 4096 Aug 27 22:09 etc/
drwxr-xr-x 6 root root 4096 Aug 28 17:57 home/
lrwxrwxrwx 1 root root 7 Apr 22 2024 lib -> usr/lib/
lrwxrwxrwx 1 root root 9 Apr 22 2024 lib64 -> usr/lib64/
drwxr-xr-x 2 root root 4096 Feb 26 2024 lib.usr-is-merged/
drwx------ 2 root root 16384 Apr 26 2024 lost+found/
drwxr-xr-x 2 root root 4096 Apr 23 2024 media/
drwxr-xr-x 2 root root 4096 Apr 23 2024 mnt/
drwxr-xr-x 2 root root 4096 Apr 23 2024 opt/
dr-xr-xr-x 189 root root 0 Aug 27 22:03 proc/
drwx------ 6 root root 4096 Aug 28 22:53 root/
drwxr-xr-x 33 root root 1160 Aug 28 22:53 run/
lrwxrwxrwx 1 root root 8 Apr 22 2024 sbin -> usr/sbin/
drwxr-xr-x 2 root root 4096 Apr 3 2024 sbin.usr-is-merged/
drwxr-xr-x 2 root root 4096 Apr 26 2024 snap/
drwxr-xr-x 2 root root 4096 Apr 23 2024 srv/
-rw------- 1 root root 2084569088 Apr 26 2024 swap.img
dr-xr-xr-x 13 root root 0 Aug 27 22:04 sys/
drwxrwxrwt 13 root root 4096 Aug 28 23:15 tmp/
drwxr-xr-x 12 root root 4096 Apr 23 2024 usr/
drwxr-xr-x 13 root root 4096 Apr 26 2024 var/
root@VM-24-17-ubuntu:/#
l
開頭的是鏈接
Linux下的鏈接分為兩種:軟連接和硬鏈接
硬鏈接:A–B, 假設 B 是 A 的硬鏈接,那么他們兩個指向了同一個文件!允許一
個文件擁有多個路徑,用戶可以通過這種機制建立硬鏈接到一些重要文件上,防
止誤刪!
軟鏈接:類似 Window 下的快捷方式,刪除的源文件,快捷方式也訪問不了!
touch
命令創建文件!
創建鏈接命令 ln
echo
輸入字符串
root@VM-24-17-ubuntu:/# cd /home
root@VM-24-17-ubuntu:/home# ls
lighthouse test7 test8 ubuntu
root@VM-24-17-ubuntu:/home# touch f1 //創建f1文件
root@VM-24-17-ubuntu:/home# ls
f1 lighthouse test7 test8 ubuntu
root@VM-24-17-ubuntu:/home# ln f1 f2 //創建一個硬鏈接
root@VM-24-17-ubuntu:/home# ls
f1 f2 lighthouse test7 test8 ubuntu
root@VM-24-17-ubuntu:/home# ln -s f1 f3 //創建一個軟鏈接 符號鏈 f3
root@VM-24-17-ubuntu:/home# ls
f1 f2 f3 lighthouse test7 test8 ubuntu
root@VM-24-17-ubuntu:/home# ll
total 24
drwxr-xr-x 6 root root 4096 Aug 28 23:32 ./
drwxr-xr-x 24 root root 4096 Aug 28 23:32 ../
-rw-r--r-- 2 root root 0 Aug 28 23:31 f1
-rw-r--r-- 2 root root 0 Aug 28 23:31 f2
lrwxrwxrwx 1 root root 2 Aug 28 23:32 f3 -> f1
drwxr-x--- 2 lighthouse lighthouse 4096 Aug 27 22:03 lighthouse/
drwxrwx--- 2 root root 4096 Aug 28 17:57 test7/
drwxr-xr-x 2 root root 4096 Aug 28 17:57 test8/
drwxr-x--- 5 ubuntu ubuntu 4096 Aug 27 22:03 ubuntu/
root@VM-24-17-ubuntu:/home# echo "i love chen">>f1 //給f1文件種寫入字符串
root@VM-24-17-ubuntu:/home# cat f1
i love chen
root@VM-24-17-ubuntu:/home# cat f2
i love chen
root@VM-24-17-ubuntu:/home# cat f3
i love chen
root@VM-24-17-ubuntu:/home#
刪除f1之后,f2和f3的區別
root@VM-24-17-ubuntu:/home# rm -rf f1 //刪除f1文件
root@VM-24-17-ubuntu:/home# ls
f2 f3 lighthouse test7 test8 ubuntu //f3爆紅
root@VM-24-17-ubuntu:/home# cat f2 //f2還存有
i love chen
root@VM-24-17-ubuntu:/home# cat f3 //f3內容缺失
cat: f3: No such file or directory
root@VM-24-17-ubuntu:/home#