Linux基礎(1)
阿新 • • 發佈:2021-12-14
內容概要
- 檔案型別
- 軟連結&硬連結
- 使用者與使用者組
內容概要
一、檔案型別
1、Linux檔案型別簡介
檢視檔案詳細資訊
# 命令: ls -li # -i 顯示檔案的 inode 數字 [root@localhost ~]# ls -li total 12 134319695 -rw-------. 1 root root 1691 Dec 8 17:25 anaconda-ks.cfg 135085785 -rw-r--r--. 1 root root 678 Dec 11 19:02 elijah.txt 134319703 -rw-r--r-- 1 root root 0 Dec 14 10:11 hard_index 135085801 -rw-r--r-- 1 root root 1504 Dec 12 22:04 niu.txt # 詳解 134319695 # 檔案的inode,表示該檔案的記憶體地址 -rw-------. # ‘-’ 表示檔案型別為普通檔案,rw------- 是許可權 1 # 表示檔案的硬連結數 root # 檔案所屬使用者 root # 檔案所屬組 1691 # 檔案大小,單位為位元組 Dec 8 17:25 # 表示修改日期 anaconda-ks.cfg # 檔名
2、Linux 檔案型別
# 如何判斷檔案型別
-rw-r--r-- 檢視這裡的第一個字元
1、普通文字 f(-)
2、資料夾 d # directory
3、連結檔案 l # link
4、裝置檔案 b # 磁碟檔案
c # 字元檔案
5、管道檔案 P
6、套接字檔案 s # socket
yum install mariadb* -y
注意:不能以顏色判斷檔案型別。
二、軟連結 & 硬連結
簡介
在 Linux 中,每個檔案都有對應的獨一無二的 inode 號,用於作為檔案的標識,檔名只是便於記憶,inode 號指向 的是檔案記憶體的地址 # 硬連結(hard link) 可以將它理解為一個 “指向原始檔案 inode 的指標”,系統不為他新增獨立的 inode,所以,硬連結檔案與原始檔案其實 是同一個檔案,只是名字不同。每新增一個硬連結,檔案的硬連結數就會加1 # 軟連結 等同於 Windows 系統下的快捷方式。僅僅包括所含連結檔案的路徑名字。因此能連結目錄,也能跨檔案系統連結。但是, 當刪除原始檔案後,連結檔案也將失效。
刪除檔案
每新增一個硬連結,檔案的硬連結數就會加 1 ,當刪除原檔案或者硬連結檔案的時候,硬連結數就會減 1 ,當硬連結數
達到 0 的時候,檔案就算是被刪除了
刪除檔案的底層邏輯
1、刪除的是硬連結
2、判斷該檔案硬連結數是否為0
3、如果為0,則在磁碟中將其刪除
4、如果不為0,則只刪除一個硬連結
操作命令
[root@localhost ~]# ll -i total 12 134319703 -rw-r--r-- 1 root root 0 Dec 14 15:36 index.txt # 建立硬連結 ln [引數] [原檔案路徑] [硬連結檔案路徑] [root@localhost ~]# ln index.txt hard_link [root@localhost ~]# ll -i total 12 134319703 -rw-r--r-- 2 root root 0 Dec 14 15:36 hard_link # 硬連結數從 1 變成了 2,檔案的inode號與原檔案一致 134319703 -rw-r--r-- 2 root root 0 Dec 14 15:36 index.txt # 建立軟連結 ln -s [原檔案路徑] [硬連結檔案路徑] [root@localhost ~]# ln -s index.txt soft_link [root@localhost ~]# ll -i total 12 134319703 -rw-r--r-- 2 root root 0 Dec 14 15:36 hard_link 134319703 -rw-r--r-- 2 root root 0 Dec 14 15:36 index.txt 134319708 lrwxrwxrwx 1 root root 9 Dec 14 15:40 soft_link -> index.txt 可以看到軟連結是個單獨的檔案,連結數為 1,檔案型別是連結檔案,而且儲存的只是原檔案的路徑資訊 # 刪除原檔案 [root@localhost ~]# rm index.txt [root@localhost ~]# ll -i total 12 134319703 -rw-r--r-- 1 root root 0 Dec 14 15:36 hard_link 134319708 lrwxrwxrwx 1 root root 9 Dec 14 15:40 soft_link -> index.txt 檔案的硬連結數變為 1,軟連結提示也變紅了,表示無法識別原檔案
圖示
1、原檔案
2、新增硬連結
3、刪除原檔案
4、建立軟連結
3、使用者與使用者組
簡介
使用者:相當於賬號
root test
使用者組:某些具有相同屬性的賬號的集合
root
使用者分類
系統使用者:uid在 0 - 999 之間的使用者,我們就看作系統使用者
系統使用者一般用在啟動應用程式上,一般不需要登入系統。
普通使用者:uid在 1000及以上的使用者,我們就看作普通使用者
一般用在登入上。
建立使用者和建立組
建立使用者的命令:useradd
引數:
-g : 指定使用者組(使用者必須存在)
-r : 建立系統使用者
-M :不建立家目錄
-u :指定建立使用者的ID的
# 建立普通使用者
useradd [使用者名稱]
[root@localhost home]# useradd user01
每建立一個普通使用者,就會在 /home 目錄下建立一個使用者資料夾
[root@localhost ~]# cd /home
[root@localhost home]# ll -i
total 0
1215668 drwx------ 2 elijah elijah 99 Dec 13 17:38 elijah
1223338 drwx------ 2 user01 user01 62 Dec 14 16:16 user01
# 建立系統使用者
[root@localhost home]# useradd -r root01
# 建立使用者組
[root@localhost home]# groupadd mygroup
組資訊存放的目錄: /etc.group
# 刪除使用者
[root@localhost home]# userdel user01
[root@localhost home]# userdel -r user01 連同使用者主目錄一起刪除
[root@localhost home]# userdel -r elijah
[root@localhost home]# ls
user01
[root@localhost home]#
切換使用者
su - [使用者名稱]
su [使用者名稱]
[root@localhost home]# su elijah
[elijah@localhost home]$
注意看使用者名稱已經從 root 變為了 elijah, 符號 # 變為了 $
檢視使用者 ID
# 檢視使用者的ID和組的ID
id [使用者名稱]
[root@localhost home]# id elijah
uid=1000(elijah) gid=1000(elijah) groups=1000(elijah)
檢視使用者詳情檔案
目錄 : /etc/passwd
[root@localhost home]# cat /etc/passwd
elijah:x:1000:1000: 使用者簡介 :/home/elijah:/bin/bash
使用者名稱 : elijah
密碼佔位符 :x
1000 : userid
1000 : 組id
/home/elijah : 家目錄
/bin/bash :預設的解析器
# 檢視使用者組
目錄 : /etc/group
[root@localhost etc]# cat group
root01:x:996:
mygroup:x:1002:
elijah:x:1000:
使用者組名 --> elijah
使用者組id --> 1000
4、不使用 useradd 建立使用者
須知
一個標準的使用者在如下檔案中擁有自己的資訊:
/etc/passwd 使用者的賬戶資訊 格式是 名字:密碼:ID:GroupID:描述符:家目錄:shell
/etc/shadow 使用者的密碼資訊 格式是 $加密方式$干擾值$密碼:密碼可以隔多久該更改一次:
/etc/group 組資訊
/home/使用者名稱 一個標準的使用者還會擁有自己的家目錄,家目錄中還會有一定的資源
/etc/skel/ 中的隱藏檔案是家目錄中的模版
1、建立使用者家目錄
[root@localhost home]# ls
elijah user01
# 建立使用者 user02
[root@localhost home]# mkdir user02
[root@localhost home]# ls
elijah user01 user02
2、新增使用者組資訊
[root@localhost etc]# vim group
mygroup:x:1002:
elijah:x:1000:
user02:x:1001:
3、新增使用者賬戶資訊
[root@localhost etc]# cat passwd
elijah:x:1000:1000::/home/elijah:/bin/bash
# 新增使用者賬戶資訊
[root@localhost etc]# vim passwd
[root@localhost etc]# cat passwd
elijah:x:1000:1000::/home/elijah:/bin/bash
user02:x:1001:1001::/home/user02:/bin/bash
4、新增使用者密碼資訊
[root@localhost etc]# cat shadow
elijah:!!:18975:0:99999:7:::
# 新增使用者密碼資訊
[root@localhost etc]# vim shadow
[root@localhost etc]# cat shadow
root01:!!:18975::::::
elijah:!!:18975:0:99999:7:::
user02:!!:18975:0:99999:7:::
5、修改家目錄及子目錄的所有者和屬組以及修改使用者許可權
# 修改家目錄及子目錄的所有者和屬組
chown -R user_name:user_name /home/user_name # 模板 修改所屬使用者與組(包括下面的目錄)
[root@localhost etc]# chown -R user02:user02 /home/user02
# 修改許可權
chmod 700 <目標檔案> : 修改使用者的許可權為: 只有擁有者可以讀寫開啟
或者
chmod -R go= /home/user_name
[root@localhost etc]# chmod 700 /home/user02
6、拷貝家目錄隱藏檔案
/etc/skel/ 中的隱藏檔案是家目錄中的模版
[root@localhost skel]# ll -a
total 24
drwxr-xr-x. 2 root root 62 Dec 8 17:17 .
drwxr-xr-x. 82 root root 8192 Dec 14 16:44 ..
-rw-r--r--. 1 root root 18 Apr 1 2020 .bash_logout
-rw-r--r--. 1 root root 193 Apr 1 2020 .bash_profile
-rw-r--r--. 1 root root 231 Apr 1 2020 .bashrc
cp -r /etc/skel/. <家目錄路徑> 把模版拷貝到你的家目錄中
或
cp -r /etc/skel/* <家目錄路徑>
# 下面這個是把整個 skel 資料夾都拷貝過來了
[root@localhost etc]# cp -r /etc/skel /home/user02
# 正確用這個:
[root@localhost user02]# cp -r /etc/skel/. /home/user02
[root@localhost user02]# ll -ai
total 12
135096541 drwx------ 3 user02 user02 74 Dec 14 19:10 .
134418322 drwxr-xr-x. 5 root root 48 Dec 14 17:39 ..
135096537 -rw-r--r-- 1 root root 18 Dec 14 19:10 .bash_logout
135096542 -rw-r--r-- 1 root root 193 Dec 14 19:10 .bash_profile
135096543 -rw-r--r-- 1 root root 231 Dec 14 19:10 .bashrc
測試
# 使用者 user02 建立成功!
[root@localhost /]# su user02
[user02@localhost /]$
[user02@localhost /]$
[user02@localhost /]$