基礎中的基礎,趁着面試前複習過一遍。
pwd命令
做用:顯示當前工做目錄的名稱
選項:-p
顯示連接的真實路徑node
cd命令
做用:切換當前工做目錄
經常使用:mysql
cd
切換到根目錄cd -
返回到前一個工做目錄cd ..
切換工做目錄到當前目錄的上一級目錄cd /usr/local
切換工做目錄到/usr/localls命令
做用:顯示目錄與文件信息
經常使用選項:linux
-a
顯示全部文件,包括以.
開頭的隱藏文件-h
人性化顯示容量信息-l
長格式顯示文檔的詳細信息-u
顯示文件或目錄最後被訪問的時間-t
以修改時間排序,ls默認按文件名稱排序-R
遞歸顯示子目錄touch命令
做用:建立文件或者修改文件時間
如:$ touch hello.txt
若是hello.txt文件不存在,則建立文件,若是存在,則修改hello.txt全部的時間爲當前系統的時間。git
mkdir命令
做用:建立目錄
選項:-p
建立多級目錄
如:$ mkdir -p /tmp/data/mysql
假如/tmp/data目錄不存在,就會自動建立/data目錄再建立mysql目錄。面試
cp命令
做用:複製文件或者目錄
選項:sql
-r
遞歸,複製子文件與子目錄(複製目錄必加)-a
複製時保留源文檔的全部屬性rm命令
做用:刪除文件或者目錄
選項:shell
-f
不提示,強制刪除-i
刪除前,提示是否刪除-r
遞歸刪除,刪除目錄以及目錄下的全部內容需謹慎:rm -rf *
bash
mv命令
做用:移動或者重命名文件或目錄
如:app
$ mv hello.txt hello.doc
$ mv hello.txt /usr/local/src
$ mv hello.txt /usr/local/src/hello.doc
du命令
做用:計算文件或目錄的大小(容量)
選項:less
-h
人性化顯示容量信息-a
查看全部目錄以及文件的容量信息-s
僅顯示總容量cat命令
做用:查看文件內容
選項:
-b
顯示行號,空白行不顯示行號-n
顯示行號,包含空白行示例:
[root@moli_linux1 ~]$ cat -b hello.txt 1 one:hello world 2 two:hello world [root@moli_linux1 ~]$ cat -n hello.txt 1 one:hello world 2 3 two:hello world
tac命令
做用:倒序
查看文件內容(與cat相反)
[root@moli_linux1 ~]$ tac hello.txt two:hello world one:hello world
head命令
做用:查看文件頭部內容,默認顯示前10行
。
選項:
-c nK
顯示文件前nKB的內容-n
顯示文件前n行內容示例:head -5 /etc/passwd
顯示/etc/passwd文件前5行內容。
tail命令
做用:查看文件尾部內容,默認顯示末尾10行。
選項:
-c nK
顯示文件前nKB的內容-n
顯示文件前n行內容示例:tail -5 /etc/passwd
顯示/etc/passwd文件後5行內容。
less命令
做用:分頁查看文件內容
說明:按空格鍵查看下一頁,q鍵退出查看,ctrl b
向上翻頁,ctrl f
向下翻頁,g
跳到第一行,G
跳到最後一行。
示例:less /var/log/jenkins/jenkins.log
more命令
做用:分頁查看文件內容
說明:按空格鍵查看下一頁,q鍵退出查看,ctrl b
向上翻頁,ctrl f
向下翻頁
示例:`more /var/log/jenkins/jenkins.log
`
wc命令
做用:顯示文件行,單詞與字節統計信息
選項:
-c
顯示文件字節統計信息-l
顯示文件行數統計信息-w
顯示文件單詞統計信息示例:
[root@moli_linux1 ~]$ wc hello.txt 3 4 33 hello.txt [root@moli_linux1 ~]$ wc -c hello.txt 33 hello.txt [root@moli_linux1 ~]$ wc -l hello.txt 3 hello.txt [root@moli_linux1 ~]$ wc -w hello.txt 4 hello.txt
Linux下文件的權限通常包括讀
、寫
、可執行
三種控制,可用字母或者數字表示。
r
、w
、x
4
、2
、1
也就是r=4
,w=2
,x=1
。
咱們能夠使用ls -l
命令查看文件或者目錄的權限。
[root@moli_linux1 ~]$ ls -l 總用量 8 drwxr-xr-x. 3 root root 23 6月 6 2018 192.168.229 -rw-------. 1 root root 1538 5月 19 2018 anaconda-ks.cfg drwxr-xr-x. 3 root root 18 7月 27 2018 git_data -rw-r--r-- 1 root root 33 3月 5 13:37 hello.txt drwxr-xr-x. 4 root root 33 7月 4 2018 server drwxr-xr-x 4 root root 68 10月 2 15:48 shell-100 drwxr-xr-x 4 root root 67 11月 16 21:29 test-find
其中第一列的第一個字符表示文件類型,以後的9個字符就是權限了,而第一列最後一個字符有的是一個點.
,有的沒有,這個點表明這個文件受selinux所限制。
以上面的drwxr-xr-x.
爲例:
d
,表示文件類型是目錄,常見的有:字母l
表明連接文件、字母b
或者c
表明設備、字母s
表明socket文件等。a
)權限,所屬組(g
)權限、其餘用戶(o
)權限。這個文件的權限爲全部者權限可讀可寫可執行、所屬組權限爲可讀可執行不可寫、其餘用戶權限可執行不可讀不可寫。關於權限的表示可看下錶:
數字 | 字母 | 文件 | 目錄 |
---|---|---|---|
4 | r | 查看文件內容 | 查看目錄下的文件與目錄名稱 |
2 | w | 修改文件內容 | 在目錄下增、刪、改文件與目錄名稱 |
1 | x | 可執行,通常爲程序或者腳本 | 可用cd命令進入目錄 |
文件默認權限
644 (rw-r--r--)
目錄默認權限
755(rwxr-xr-x)
做用:修改文件或者目錄的權限
格式:chmod [選項] 權限 文件或目錄
選項:-R 遞歸將權限應用於全部的子目錄與子文件
其中權限的表示可用數字
或者字母
,也能夠用a(全部人)、u(表明全部者)、g(所屬組)、o(其餘用戶)
。
示例:
環境準備,test目錄下有3個文件和1個目錄test-1,子目錄test-1裏有文件hello.txt。各個文件目錄權限以下:
[root@moli_linux1 test]$ ll -R .: 總用量 0 -rw-r--r-- 1 root root 0 3月 7 14:43 1.txt -rw-r--r-- 1 root root 0 3月 7 14:43 2.txt -rw-r--r-- 1 root root 0 3月 7 14:43 3.txt drwxr-xr-x 2 root root 23 3月 7 14:44 test-1 ./test-1: 總用量 0 -rw-r--r-- 1 root root 0 3月 7 14:44 hello.txt [root@moli_linux1 test]$ tree . ├── 1.txt ├── 2.txt ├── 3.txt └── test-1 └── hello.txt 1 directory, 4 files
修改1.txt文件的權限爲600
$ chmod 600 1.txt 或者 $ chmod u=rwx,g-r,o-r 1.txt
對1.txt文件的全部人權限添加可執行權限
$ chmod a+x 1.txt 或者 $ chmod u+x,g+x,o+x 1.txt
對test目錄下的全部文件設置全部人可讀可寫
$ chmod -R a=rw test
建議:修改權限能用數字就用數字...
做用:修改文件或目錄的全部者與所屬組
格式:chown [選項] [全部者]:[所屬組] 文件名/目錄名
選項:-R 遞歸將權限應用於全部子目錄與子文件
使用ls -l
命令查看文件或目錄的時候,第三列
和第四列
就是文件或目錄的全部者與所屬組。
[root@moli_linux1 test]$ ls -l 1.txt -rwx------ 1 root root 0 3月 7 14:43 1.txt
好比上面1.txt文件的全部者是root用戶,所屬組是root組。
修改1.txt文件的全部者爲mori,所屬組爲mail
[root@moli_linux1 test]$ chown mori:mail 1.txt [root@moli_linux1 test]$ ll 1.txt -rwx------ 1 mori mail 0 3月 7 14:43 1.txt # 全部者與所屬組已改變
Linux默認權限控制,也就是說umask的做用是設置用戶建立文件或者目錄時,這個文件或目錄的默認權限。
在Linux終端輸入umask時,出現數字0022這個就是默認的umask值。
[root@moli_linux1 test]$ umask 0022
修改umask
咱們能夠經過輸入命令$ umask 0032
修改系統默認的umask值
[root@moli_linux1 test]$ umask 0032 [root@moli_linux1 test]$ umask 0032
umask反掩碼計算
當umask掩碼是偶數
的時候,默認權限=最大權限-umask值
666
,所以建立文件的默認權限是666-022=644
777
,所以建立目錄的默認權限是777-022=755
當umask掩碼是奇數
的時候,計算文件的默認權限的時候,要在奇數位加1
如:umask=032
666-032=634
,而後奇數位+1,634+010=644
777-032=745
,而後奇數位+1,745+010=755
設置文件系統權限命令chattr
查看文件系統權限命令lsattr
示例:
[root@moli_linux1 test]$ ll 2.txt -rw-r--r-- 1 root root 0 3月 7 14:43 2.txt [root@moli_linux1 test]$ chattr +a 2.txt # 添加隱藏權限 [root@moli_linux1 test]$ echo "hello world" > 2.txt # 不容許重定向 -bash: 2.txt: 不容許的操做 [root@moli_linux1 test]$ echo "hello world" >> 2.txt # 容許追加劇定向 [root@moli_linux1 test]$ mv 2.txt helloworld.txt # 不容許移動 mv: 沒法將"2.txt" 移動至"helloworld.txt": 不容許的操做 [root@moli_linux1 test]$ rm -f 2.txt # 不容許刪除 rm: 沒法刪除"2.txt": 不容許的操做 [root@moli_linux1 test]$ lsattr 2.txt #查看隱藏權限 -----a---------- 2.txt [root@moli_linux1 test]# chattr -a 2.txt # 去除隱藏權限 [root@moli_linux1 test]$ lsattr 2.txt # 沒有隱藏權限 ---------------- 2.txt [root@moli_linux1 test]$ rm -f 2.txt # 再次刪除,成功
Linux中連接文件分爲軟鏈接和硬連接。軟鏈接能夠跨分區,但源文件不可刪除。硬連接不能夠跨分區,但能夠將源文件刪除。
建立軟硬連接使用命令ln
建立軟鏈接:ln -s 文件名 連接名
建立硬連接:ln 文件名 連接名
軟連接就是一個普通文件,只是數據塊內容有點特殊。軟連接有着本身的 inode 號以及用戶數據塊。
所以軟連接的建立與使用沒有相似硬連接的諸多限制:
示例:
[root@moli_linux1 ~]$ ln -s /test/hello.txt /tmp/hi.txt #建立文件軟鏈接 [root@moli_linux1 ~]$ ln -s /test/ /var/test #建立目錄軟鏈接 [root@moli_linux1 ~]$ rm /test/hello.txt;cat /tmp/hi.txt #刪除源文件後,連接沒法使用
因爲硬連接是有着相同 inode 號僅文件名不一樣的文件,所以硬連接存在如下幾點特性:
示例:
[root@moli_linux1 ~]$ ln /test/hello.txt /tmp/hi.txt #建立文件硬連接 [root@moli_linux1 ~]$ rm /test/hello.txt #刪除源文件後依舊可用
先這樣吧。若是錯誤,請指正,謝謝。溜了溜了,玩會遊戲去了。2019-3-6