記錄一下學習 Linux 以及動手實驗的內容。 [TOC] 圖片來源:實驗樓 1. Linux 簡介(略過) 2. Linux 基本概念及操作:命令、快捷鍵與通配符 2.1 基礎命令 ls, pwd, cd, cat, touch等 2.2 終端快捷鍵 |按鍵|作用| | | | |Ctrl+d|鍵 ...
目錄
記錄一下學習 Linux 以及動手實驗的內容。
1. Linux 簡介(略過)
2. Linux 基本概念及操作:命令、快捷鍵與通配符
2.1 基礎命令
ls, pwd, cd, cat, touch等
2.2 終端快捷鍵
按鍵 | 作用 |
---|---|
Ctrl+d | 鍵盤輸入結束或退出終端 |
Ctrl+s | 暫停當前程式,暫停後按下任意鍵恢復運行 |
Ctrl+z | 將當前程式放到後臺運行,恢復到前臺為命令fg |
Ctrl+a | 將游標移至輸入行頭,相當於Home鍵 |
Ctrl+e | 將游標移至輸入行末,相當於End鍵 |
Ctrl+k | 刪除從游標到行末位置的內容 |
Alt+Backspace | 向前刪除一個單詞 |
Shift+PgUp | 將終端顯示向上滾動 |
Shift+PgUp | 將終端顯示向下滾動 |
2.3 通配符
通配符是一種特殊語句,主要有星號(*)和問號(?),用來對字元串進行模糊匹配(比如文件名、參數名)。當查找文件夾時,可以使用它來代替一個或多個真正字元;當不知道真正字元或者懶得輸入完> 整名字時,常常使用通配符代替一個或多個真正字元。
假設當前目錄底下有asd.txt
和fgh.txt
兩個文件:
ls *.txt
輸出:
asd.txt fgh.txt
ls as?.txt
輸出:
asd.txt
一次性創建多個類似文件:
touch file_{1..10}.txt
Shell 常用通配符:
字元 | 含義 |
---|---|
* | 匹配0或多個字元 |
? | 匹配任意一個字元 |
[list] | 匹配list中的任意單一字元 |
[^list] | 匹配除list中字元以外的任意單一字元 |
[c1-c2] | 匹配c1-c2中的任意單一字元,如:[0-9][a-z] |
{string,string2,...} | 匹配string1或string2(或更多)中全部字元串 |
{c1,..,c2} | 匹配c1-c2中全部字元,如{1..10} |
2.4 幫助命令
在Linux環境中,如果你遇到困難,可以使用man命令,它是Manua1pages的縮寫。
Manual pages是UNIX或類UNIX操作系統中線上軟體文檔的一種普遍的形式,內容包括電腦程式(包括庫和系統調用)、正式的標準和慣例,甚至是抽象的概念。用戶可以通過執行man命令調用手冊頁。
你可以使用如下方式來獲得某個命令的說明和使用方式的詳細介紹:
man <command_name>
比如你想查看 man 命令本身的使用方式,你可以輸入:
man man
通常情況下,man 手冊裡面的內容都是英文的,這就要求你有一定的英文基礎。man 手冊的內容很多,涉及了 Linux 使用過程中的方方面面。為了便於查找,man 手冊被進行了分冊(分區段)處理,在 > Research UNIX、BSD、OS X 和 Linux 中,手冊通常被分為8個區段,安排如下:
區段 | 說明 |
---|---|
1 | 一般命令 |
2 | 系統調用 |
3 | 庫函數,涵蓋了C標準庫 |
4 | 特殊文件(通常是/dev中的設備)和驅動程式 |
5 | 文件格式和約定 |
6 | 游戲和屏保 |
7 | 雜項 |
8 | 系統管理命令和守護進程 |
要查看相應區段的內容,就在 man 後面加上相應區段的數字即可,如:
man 1 ls
想要獲得更詳細的幫助,你還可以使用info命令,不過通常使用man就足夠了。如果你知道某個命令的作用,只是想快速查看一些它的某個具體參數的作用,那麼你可以使用--help參數,大部分命令都會帶> 有這個參數,如:
ls --help
3. 用戶及文件許可權管理
- 實驗內容
- Linux 中創建、刪除用戶,及用戶組操作
- Linux 中的文件許可權設置
- 實驗知識點
- Linux 用戶管理
- Linux 許可權管理
3.1 Linux 用戶管理
3.1.1 查看用戶
打開終端,輸入:
who am i
輸出的第一列表示打開當前偽終端的用戶的用戶名(要查看當前登錄用戶的用戶名,去掉空格直接使用 whoami 即可),第二列的 pts/0 中 pts 表示偽終端,所謂偽是相對於 /dev/tty 設備而言的,偽終端就是當你在圖形用戶界面使用 /dev/tty7 時每打開一個終端就會產生一個偽終端, pts/0 後面那個數字就表示打開的偽終端序號,你可以嘗試再打開一個終端,然後在裡面輸入 who am i ,看第二列是不是就變成 pts/1 了,第三列則表示當前偽終端的啟動時間。
who
命令及其他參數:
|參數|說明|
|-a|列印能列印的全部|
|-d|列印死掉的進程|
|-m|同am i
,mom likes
|
|-q|列印當前用戶數及用戶名|
|-u|列印當前登錄用戶登錄信息|
|-r|列印運行等級|
3.1.2 創建用戶
新建一個叫 lilei 的用戶:
sudo adduser lilei
這個命令不但可以添加用戶到系統,同時也會預設為新用戶創建 home 目錄:
ls /home
現在你已經創建好一個用戶,並且你可以使用你創建的用戶登錄了,使用如下命令切換登錄用戶:
su -l lilei
3.1.3 用戶組
在 Linux 裡面每個用戶都有一個歸屬(用戶組),用戶組簡單地理解就是一組用戶的集合,它們共用一些資源和許可權,同時擁有私有資源,就跟家的形式差不多,你的兄弟姐妹(不同的用戶)屬於同一個家(用戶組),你們可以共同擁有這個家(共用資源),爸媽對待你們都一樣(共用許可權),你偶爾寫寫日記,其他人未經允許不能查看(私有資源和許可權)。當然一個用戶是可以屬於多個用戶組的,正如你既屬於家庭,又屬於學校或公司。
在 Linux 中如何查看一個用戶屬於哪些用戶組呢?
方法一:使用groups
命令:
lilei
輸出:
lilei : lilei
其中冒號之前表示用戶,後面表示該用戶所屬的用戶組。這裡可以看到 shiyanlou 用戶屬於 shiyanlou 用戶組,每次新建用戶如果不指定用戶組的話,預設會自動創建一個與用戶名相同的用戶組(差不多就相當於家長的意思)。
方法二、查看/etc/group
文件:
cat /etc/group | sort
這裡 cat 命令用於讀取指定文件的內容並列印到終端輸出。 | sort 表示將讀取的文本進行一個字典排序再輸出。
可以使用命令過濾掉一些你不想看到的結果:
cat /etc/group | grep -E "lilei"
將其他用戶加到 sudo 用戶組
預設情況下新創建的用戶是不具有 root 許可權的,也不在 sudo 用戶組,可以讓其加入 sudo 用戶組從而獲取 root 許可權:
sudo usermod -G sudo lilei
使用 usermod 命令可以為用戶添加用戶組,同樣使用該命令你必需有 root 許可權,你可以直接使用 root 用戶為其它用戶添加用戶組,或者用其它已經在 sudo 用戶組的用戶使用 sudo 命令獲取許可權來執行該命令。
3.1.4 刪除用戶
刪除用戶並移除其 home 目錄:
sudo deluser lilei --remove-home
刪除用戶但不移除其 home 目錄:
sudo deluser lilei --remove-home
3.2 文件許可權
文件許可權就是文件的訪問控制許可權,即哪些用戶和組群可以訪問文件以及可以執行什麼樣的操作。
Unix/Linux系統是一個典型的多用戶系統,不同的用戶處於不同的地位,對文件和目錄有不同的訪問許可權。為了保護系統的安全性,Unix/Linux系統除了對用戶許可權作了嚴格的界定外,還在用戶身份認證、訪問控制、傳輸安全、文件讀寫許可權等方面作了周密的控制。
在 Unix/Linux中的每一個文件或目錄都包含有訪問許可權,這些訪問許可權決定了誰能訪問和如何訪問這些文件和目錄。
3.2.1 查看文件許可權
使用ls -l
查看文件許可權:
ls -l
輸出:
總用量24
drwxr-xr-x4 hadoop hadoop 4096 9月29 07:45 hadoop
drwxr-xr-x9 labex labex 4096 9月29 07:41 labex
drwxr-xr-x 2 1001 1001 409612月1520:22 lilei
drwxr-xr-x 2 lilwi lilwi 4096 12月1520:22 lilwi
drwxr-xr-x 2 shiyanlou shiyanlou 4096 9月29 07:36 project
3.2.2 變更文件所有者
先創建一個文件如file,然後使用ls -l
查看該文件屬性:
總用量0
-rw-rw-r-- 1 lilei lilei 0 12月15 20:47 file
換回到原用戶,使用以下命令變更文件所有者為原用戶:
sudo chown usr1 file
再查看屬性:
總用量0
-rw-rw-r-- 1 usr1 lilei 0 12月15 20:47 file
3.2.3 修改文件許可權
如果你有一個自己的文件不想被其他用戶讀、寫、執行,那麼就需要對文件的許可權做修改,這裡有兩種方式:
方法一:二進位數字表示
每個文件的三組許可權(擁有者,所屬用戶組,其他用戶,記住這個順序是一定的)對應一個 " rwx ",也就是一個 “ 7 ” ,所以如果我要將文件file的許可權改為只有我自己可以用那麼就這樣:
chmod 600 file
方法二:加減賦值操作
chmod [obj][+/=][r/w/x] file
- [obj]表示用戶,g/o/u 分別表示 group/others/user,寫的時候順序無所謂
- [+/-]分別表示增加和去掉相應的許可權
- [r/w/x]對應三種許可權,寫的時候順序無所謂
例子:
chmod go-rw file
↑表示去掉 group 和 others 的 rw 許可權。
chmod uog+rwx file
↑表示給三種對象都加上 rwx 許可權。
chmod ug-wxr file
↑表示去掉 user 和 group 的 rwx 許可權。
3.3 其他
adduser 和 useradd 的區別是什麼?
答:useradd 只創建用戶,創建完了用 passwd lilei 去設置新用戶的密碼。adduser 會創建用戶,創建目錄,創建密碼(提示你設置),做這一系列的操作。其實 useradd、userdel 這類操作更像是一種命令,執行完了就返回。而 adduser 更像是一種程式,需要你輸入、確定等一系列操作。
Linux 還有一些關於隱藏許可權和特殊許可權的內容,想全面瞭解 Linux 許可權管理這部分內容的用戶可以通過其它方式學習。