Linux基礎 Day2
阿新 • • 發佈:2020-08-10
Linux-Day2
1.檔案目錄結構
- 檔案和目錄被組織成一顆倒置的樹的結構
- 檔案系統從根開始,“/”
- 檔名稱嚴格區分大小寫
- 隱藏檔案以“.”開頭
- 路徑的分隔符為“/“
2.檔案命名規範
- 檔案字元最長為255個字元
- 包括路徑在內檔名稱為4095個
- 顏色表示
- 藍色》》表示資料夾或者目錄
- 綠色》》表示可執行的檔案
- 紅色》》壓縮檔案
- 藍色》》連結檔案
- 灰色》》表示其他檔案
- 白色》》單獨的檔案
- 除了斜槓和NULL,其他所有字元都可以使用
- linux裡面對大小寫是敏感的
3.檔案系統結構
- /boot引導檔案的存放位置,核心檔案、引導載入器都在此
- /bin 所有的使用者都可以使用的命令
- /sbin 管理類命令
- /lib 啟動時程式使用的基本庫檔案.so結尾
- /lib64 專門存放X86_64系統用到的檔案
- /root管理員的家目錄
- /media行動式移動裝置的掛載點
- /mnt臨時檔案的掛載點
- /dev 裝置檔案和特殊檔案的存放位置
- /opt 第三方的應用的安裝
- /tmp 臨時檔案的存放位置
- /usr存放安裝程式
- /var 存放經常變化的檔案,比如日誌
- /proc存放記憶體啟動和相關虛擬檔案
- /sys 輸出當前系統上的硬體相關的檔案
- /srv 系統上允許的服務用的資料
4.Linux應用程式的組成
- 二進位制的檔案
- /bin
- /sbin
- /usr/bin
- /usr/local/bin
- /usr/local/sbin
- 庫檔案
- /lib
- /lib64
- /usr/lib
- /usr/lib64
- 配置檔案
- /etc
- /etc/name
- /usr/local/etc
- 幫助檔案
- /usr/share/man
5.絕對路徑和相對路徑
- 絕對路徑
- 以根開始
- 完整的檔案的存放位置
- 可以讀取到任何一個檔案
- 相對路徑
- 不以根開始
- 現對於當前的位置來決定
- 可以簡短表示一個檔案或者資料夾
- .當前目錄
- ..父親目錄
6.目錄名和基名
- basename
- dirname
7.切換目錄
- cd 切換目錄 change directory
- 可以使用相對路徑
- 可以使用絕對路徑
- 可以直接寫cd切換到家目錄x
- cd - 可以切換上一次的目錄
8.顯示當前的工作目錄
pwd print working directory
9.列出目錄或者檔案
ls list
命令格式: Usage:ls [OPTION]...[FILE]...
ls -a 顯示所有檔案
-rw-------. 1 root root 1743 Jul 14 15:54 anaconda-ks.cfg
-rw-r--r--. 1 root root 1791 Jul 14 15:56 initial-setup-ks.cfg
許可權 硬碟的引用次數 屬主 屬組 大小 訪問時間 檔名稱
ls -R遞迴顯示目錄
ls -d顯示目錄本身
ls -l(數字1)檔案分行顯示
ls -S 安裝檔案的大小排序
ls -r倒敘顯示
ls -t按照時間來排序
ls -lh顯示人類易讀的方式
ls -d */顯示當前目錄下的資料夾
l.只顯示隱藏資料夾
10.linux下的目錄型別
- -用來表示檔案
- d用來表示目錄
- b塊裝置
- c表示字元裝置
- I表示符號連結檔案
- s socket套接字
11.檢視檔案狀態
atime 訪問時間 檢視檔案內容就會發生變化
mtime 修改時間 改變內容就會發生變化
ctime 改動時間 原資料發生變化
12.建立新檔案
- touch 建立空檔案和重新整理時間,如果檔案存在,則重新整理時間,如果檔案不存在則建立檔案
- -a 只修改 atime和ctime
- -m只修改mtime和ctime
13.檔案萬用字元
- *所有
- ?匹配的是任意單個字元
- ~表示使用者的家目錄
- [123]其中一個
- [0-9]表示數字
- ls file[a-z]字母(有坑)
- [:lower:] 小寫字母
- [:upper:] 大寫字母
- [:alpha:]所有字母 a-zA-Z
14.建立目錄
mkdir建立目錄
- -p遞迴建立
- -pv顯示建立目錄的過程
顯示目錄樹安裝的命令
yum install -y tree
目錄樹的顯示
[root@promote c]# tree .
-d 只顯示資料夾
-L # 只顯示#層
15.建立目錄
rmdir只能是刪除非空目錄
- -p遞迴刪除空的父錄
- -pv顯示刪除的過程
- rm -rf可以刪除非空目錄
16.複製檔案和資料夾
cp copy 預設情況下是別名,\cp 原來本身命令是不提示覆蓋的
-i 顯示提示資訊
-n 不覆蓋
-r 遞迴複製
-d 只複製連結檔案,不復制原始檔
-a 歸檔
-v 顯示過程
-b 在複製的過程中進行備份
[root@localhost test]# \cp -b file1 f1
[root@localhost test]# ls -l
total 12
-rw-r--r--. 1 root root 24 Jul 16 11:50 f1
-rw-r--r--. 1 root root 24 Jul 16 09:06 f1~
-rw-r--r--. 1 root root 24 Jul 16 09:05 file1
-rw-r--r--. 1 root root 0 Jul 16 09:02 file10
-rw-r--r--. 1 root root 0 Jul 16 09:02 file2
-rw-r--r--. 1 root root 0 Jul 16 09:02 file3
-rw-r--r--. 1 root root 0 Jul 16 09:02 file4
-rw-r--r--. 1 root root 0 Jul 16 09:02 file5
-rw-r--r--. 1 root root 0 Jul 16 09:02 file6
-rw-r--r--. 1 root root 0 Jul 16 09:02 file7
-rw-r--r--. 1 root root 0 Jul 16 09:02 file8
-rw-r--r--. 1 root root 0 Jul 16 09:02 file9
[root@localhost test]# cat f1
zhuxiayu111
zhuxiayu111
--backup==number備份檔案加數字
-p複製保留原來的屬性
- 如果原始檔是檔案的話
- 目標檔案是檔案
- 目標檔案如果不存在的話,則新建目標檔案,並把內容寫到目標檔案中
- 如果目標檔案存在的話,本來的命令是直接覆蓋,建議使用-i來提示使用者
- 目標檔案是資料夾
- 在資料夾中建立一個同名的檔案,並把檔案內容寫到新檔案中
- 目標檔案是檔案
- 如果原始檔為多個檔案的話
- 目標必須是資料夾,資料夾必須存在,其他的情況則必須報錯
- 如果原始檔是資料夾的話
- 目標檔案是檔案:不可以
- 目標檔案必須是資料夾,必須使用-r選項
- 如果目標檔案不存在:則直接建立目標資料夾,並把原始檔夾的資料都複製到目標資料夾
- 如果目標檔案存在
- 如果是檔案的話,則報錯
- 如果是資料夾:則在目標資料夾中建立同名資料夾,並把所有資料都複製到新的資料夾
17.移動資料夾還可以重新命名
mv move
-i 提示
-f 強制
-b 備份
--backup=number 備份後面加數字
-v 顯示過程
18.刪除
rm remove
-i 提示
-r -R 遞迴刪除
-f 強制刪除
rm -rf 慎用
19.連結
軟連結(相當於windows得快捷方式)
- 建立命令 ln -s 原始檔 目標檔案
- 可以對目錄做軟連線
- 指向另外一個檔案或者目錄的路徑,大小是路徑的長度的字元
- 對磁碟應用次數沒有影響
- 可以跨分割槽
- 原始檔發生改變,目標軟連線會發生改變
- 原始檔刪除,軟連線將不能訪問
硬連線
- 磁碟引用次數會發生變化
- 只想的是硬碟上的同一塊區域
- 磁碟的引用數會隨著贏連結次數來增加
- 不能對目錄做硬連線
- 不能跨越分割槽
- 原始檔發生改變,目標硬連線會發生改變
- 原始檔刪除,硬連線將沒有影響
20.檢視檔案型別
輸入和輸出
- 標準輸入 預設是來自鍵盤的輸入 stdin 0
- 標準輸出 預設輸入到終端視窗 stdout 1
- 標準錯誤輸出 預設輸出到終端視窗 stderr2
I/0重定向
- 2> 將錯誤輸出重定向到檔案中
- >將標準輸出重定向到檔案中
- &>將所有的輸出都重定向到檔案中
禁止、允許覆蓋
- 禁止覆蓋 set -C
- 允許覆蓋 set+C
>>追加
/>>將標準輸出追加到資料夾中
2>>將錯誤輸出追加到檔案中
&>>將所有輸出追加到檔案中
20.將錯誤和正確的輸出分開
cat log.log
cat error.log
21.合併所有的輸出
- &>覆蓋重定向
- &>>追加重定向
- command>file2>&1
- command >>file2>&1
- ():合併多個檔案的輸出
- /dev/null是linux裡面無限資源的黑洞
22.從檔案匯入stdin
tr 替換
[root@bogon test]# cd ~ [root@bogon ~]# tr 'a-z' 'A-Z' DSFFfsf DSFFFSF
多行檔案匯入stdin
[root@bogon test]# cat >file1<<EOF > DSFS > FSFSDF > FSFS > SFF > EOF 最後的結尾必須與輸入結尾相同 [root@bogon test]# cat file1 DSFS FSFSDF FSFS SFF #其中eof是約定俗稱的
23.管道
管道使用“|”來表示
命令1|命令2|命令3
把命令1的輸出結果當成命令2的輸入結果把命令2的輸出結果當命令3的輸出結果
[root@bogon test]# ls file1|tr 'a-z' 'A-Z' FILE1
預設情況下,管道只能傳送標準輸出
如果需要吧錯誤輸出也傳遞,則需要|&
一般用來組合多個命令
有一些命令是不接受管道的
24.作業
建立多層級目錄(利用中括號)
mkdir -p /mnt/{bin,boot/dev,etc/{netbook,ssh/{sshd_config},sysconfig},sbin} [root@localhost ~]# cd /mnt [root@localhost mnt]# tree mnt mnt [error opening dir] 0 directories, 0 files [root@localhost mnt]# cd [root@localhost ~]# tree /mnt /mnt ├── bin ├── boot │ └── dev ├── etc │ ├── netbook │ ├── ssh │ │ └── {sshd_config} │ └── sysconfig └── sbin