Linux操作系統基礎
(一)文件管理
1. 概述
Everything is a File
,即Linux系統,本質是一個文件系統,文件目錄結構如下:
Linux系統的目錄結構是一個倒樹型,其最大的目錄是/
根目錄,根目錄其餘的二級目錄大多是在安裝系統時創建的。- 使用命令查看系統的目錄結構:
- 對目錄的解釋:
/bin:Binary的縮寫,這個目錄存放着最經常使用的命令;
/boot:這裏存放的是啓動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件;
/dev :Device(設備)的縮寫,該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的;
/etc:這個目錄用來存放所有的系統管理所需要的配置文件和子目錄;
/home:用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的;
/lib:這個目錄裏存放着系統最基本的動態連接共享庫,其作用類似於Windows裏的DLL文件。幾乎所有的應用程序都需要用到這些共享庫;
/media:Linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下;
/mnt:系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在/mnt/上,然後進入該目錄就可以查看光驅裏的內容了;
/opt: 這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下,默認是空的;
/proc:這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息;這個目錄的內容不在硬盤上而是在內存裏,我們也可以直接修改裏面的某些文件,比如可以通過下面的命令來屏蔽主機的ping命令,使別人無法ping你的機器:
/root:該目錄爲系統管理員,也稱作超級權限者的用戶主目錄;
/sbin:s就是Super User超戶,這裏存放的是系統管理員使用的系統管理程序;
/sys: 這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs,
sysfs文件系統集成了下面3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對僞終端的devpts文件系統,該文件系統是內核設備樹的一個直觀反映,當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建;
/tmp:這個目錄是用來存放一些臨時文件的;
/usr: 這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似於windows下的program files目錄;
/usr/bin:系統用戶使用的應用程序;
/usr/sbin:超級用戶使用的比較高級的管理程序和系統守護程序;
/usr/src:內核源代碼默認的放置目錄;
/var:這個目錄中存放着在不斷擴充着的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件;
/run:是一個臨時文件系統,存儲系統啓動以來的信息,當系統重啓時,這個目錄下的文件應該被刪掉或清除,如果你的系統上有 /var/run 目錄,應該讓它指向 run;
注意:
在 Linux 系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部文件。
/etc: 這個是系統中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統不能啓動;
/bin、/sbin、/usr/bin、/usr/sbin: 這是系統預設的執行文件的放置目錄,比如 ls 就是在/bin/ls 目錄下的;bin, /usr/bin 是給系統用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin 則是給root使用的指令。
/var: 這是一個非常重要的目錄,系統上跑了很多程序,那麼每個程序都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裏。
2.常用命令
cd
切換當前工作目錄至某一目錄;
ll
列出來的結果詳細,有時間、是否可讀寫等信息 ,像windows裏的詳細信息;
ls
只列出文件名或目錄名,就象windows裏的列表;
ll
是ls -l
別名 ,ls -l 是 ll 命令的完整命令
我們可以通過cd /某一個目錄
然後ls
查看該目錄下的內容;
pwd
目前所在的工作目錄的絕對路徑名稱;
cat
用於連接文件並打印到標準輸出設備上,不能作用於目錄;
touch
用於修改文件或者目錄的時間屬性,包括存取時間和更改時間,若文件不存在,系統會建立一個新的文件;
mkdir
建立一個子目錄;
mv
用來爲文件或目錄改名、或將文件或目錄移入其它位置;
命令 | 結果 |
---|---|
mv 文件名 文件名 | 將源文件名改爲目標文件名 |
mv 文件名 目錄名 | 將文件移動到目標目錄 |
mv 目錄名 目錄名 | 目標目錄已存在,將源目錄移動到目標目錄;目標目錄不存在則改名 |
mv 目錄名 文件名 | 出錯 |
rm
用於刪除一個文件或者目錄;
rm test.txt
rm:是否刪除一般文件 “test.txt”? y
rm homework
rm: 無法刪除目錄"homework": 是一個目錄
rm -r homework
rm:是否刪除目錄 “homework”? y
rm -r *:刪除當前目錄下的所有文件及目錄,慎用!
cp
用於複製文件或目錄;
cp file /tmp/:將名爲file文件複製到tmp目錄下;
cp file /tmp/newfile:將名爲file文件複製到tmp目錄下並改名爲newfile;
cp –r test/ newtest:用戶使用該指令複製目錄時,必須使用參數"-r"。
注意: Linux命令太多!我們很難記住,輸入命令開頭一個或幾個字母,再使用 Tab
鍵可以列舉出所有以它開頭的命令,結合命令 --help
,學會使用該命令!
3.vim編輯器
- 使用
vim
命令進入,i 進入輸入模式(INSERT),編輯完成,ESC進入命令模式,輸入:
,再加 q 退出程序,或者 w 保存文件,或者 wq 保存並退出 - 直接進入vim編輯器:沒有進入指定的文件,即沒有文件名;wq 後需要加文件名!
- 複製粘貼:在命令模式下,
yy
或者y需要複製的行數y
:y3y 即複製三行;p
粘貼,退出INSERT模式下使用,複製行數從你光標處開始算往下數! - 剪貼:在命令模式下,
dd
- 撤銷:在命令模式下,
u
- 查找:在底線命令模式下,輸入
/ 查找的內容
或者?查找的內容
,會將所查找的文本標黃;n 鍵往下匹配文本、N 鍵網上匹配文本 - 替換:在底線命令模式下,輸入
:%s/需要替換的文本/新內容/g
- 設置行號:在底線命令模式下,
:set nu
- 取消行號:在底線命令模式下,
:set nonu
- 分屏:
Ctrl-w s
將當前視窗分割成兩個水平視窗;Ctrl-w v
將當前視窗分割成兩個垂直視窗 - 取消分屏:在底線命令模式下,
:only
- 使用分屏同時編寫多個文件:
vim -O/o file1 file2...
,大O表示垂直分割(vertical),小o表示水平分割(默認horizontal) - 移動光標,也就是切換分屏;也可以移動分屏,比如將左分屏移動到右邊。
ctrl+w 和 h(H):左
ctrl+w 和 j(J) : 下
ctrl+w 和 k(K):上
ctrl+w 和 l(L): 右
ctrl+w 和 w:各種切換
4.輸入輸出重定向
比如 :我們通過find命令查找etc目錄下的 passwd文件,由於權限問題,會出現以下:
0 是標準輸入(STDIN),1 是標準輸出(STDOUT),2 是標準錯誤輸出(STDERR)
- 如果希望執行某個命令,但又不希望在屏幕上顯示輸出結果,那麼可以將輸出重定向到 /dev/null:
find /etc -name passwd 2> /dev/null
結果:
- 將錯誤重定向到/dev/null,將正確的重定向到test中:
結果:
- 重定向追加:
>>
>
使用多次後,它會覆蓋之前的內容,只輸出一次,>>
不會覆蓋內容,多次追加:
&>可以將錯誤信息或者普通信息都重定向輸出 - 輸入重定向:
- 管道:
|
| 表示,上一條命令的輸出,作爲下一條命令參數(輸入)
(二)用戶管理
1. 概述
Linux系統是一個多用戶多任務的分時操作系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統,每個用戶賬號都擁有一個唯一的用戶名和各自的口令,用戶在登錄時鍵入正確的用戶名和口令後,就能夠進入系統和自己的主目錄。
用戶信息存儲目錄:
/etc/passwd:存儲所有用戶登錄名清單
/etc/group:存儲有關本地用戶組的信息
/etc/shadow:存儲 Linux 系統中用戶的密碼信息(影子文件)
/home/username:用戶的主目錄
/etc/skel:默認的用戶目錄架構
2. 常用命令
- 增加用戶:
useradd 用戶名
登錄用戶:su - user1
退出當前用戶:logout/exit/Ctrl+d - 增加一個組:
groupadd 組名
- 刪除一個組:
groupdel 用戶組
- 增加一個用戶放入指定的組中:
useradd -g user1 user2
- 附加組:增加權限,將user1再附加到newgroup組中:
usermod -G newgroup user1
- 刪除帳號
userdel 用戶名
- 修改密碼
passwd
普通用戶修改自己的口令時,passwd命令會先詢問原口令,驗證後再要求用戶輸入兩遍新口令,如果兩次輸入的口令一致,則將這個口令指定給用戶;而超級用戶爲用戶指定口令時,就不需要知道原口令。
爲了系統安全起見,用戶應該選擇比較複雜的口令,例如最好使用8位長的口令,口令中包含有大寫、小寫字母和數字,並且應該與姓名、生日等不相同。 - chage命令:修改用戶密碼一些權限
chage -m 30 -M 90 -W 7 -I 15 -E 2020-12-31 user1
-m:設置密碼前的最小天數
-E:將帳戶到期日期設置爲EXPIRE日期
-M:設置密碼前的最大天數
-W:設置警告天數
-I:超過期限,預留的時間
-d:設置上次密碼的日期
(三)權限管理
1.概述
- Linux的文件和目錄有以下三種方式:
r 、w 、x:可讀,可寫 、可執行
r-可讀(read)
w-可寫(write)
x-可執行(execute) - 在Linux中,常用的文件類型爲以下三種:
d
:目錄 directory
-
: 二進制文件 binary
l
: 軟鏈接文件 link - 如:
-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
第一個字符表示:文件類型,2-4字符表示:文件所有人權限,5-7字符表示:文件所有組權限,8-10字符表示:其他人權限。
所以上面可翻譯:這是一個二進制文件,所有者可讀可寫 、不能執行,所屬組可讀 、不能寫 、不能執行,其他人可讀 、不可寫 、不能執行,硬連接數爲1,所有人爲root,所有組爲root,文件大小爲158,創建時間或最後修改時間爲Jun 7 2013,文件名爲/etc/hosts。
2.chmod命令
改變文件或目錄權限
- 爲了方便表示,linux用了一個很簡單的方法來區別,r用4表示,w用2表示,x用1表示,把他們對號入座:r - 4、 w - 2、 x - 1
所以第一個字符表示類型是目錄,不考慮,接下來的三個三位數(r-xr-xr-x)就可以這麼轉換:(4+0+1)+(4+0+1)+(4+0+1)= 555
所以555能代表什麼就懂了~ - 數字轉權限和權限轉數字
1)數字—>權限
例如 764 :對應的就是將7分解爲4 、2 、1,將6分解爲4 、2 、0,將4分解爲4 、0 、0,所有對應權限爲rwxrw-r--
654: 6=4+2+0, 5=4+0+1, 4=4+0+0 結果爲:rw-r-xr--
2)權限—>數字
例如drwxrw-r--
: 第一位d代表類型,不參與計算,rwx=4+2+1=7,rw-=4+2=0=6, r-- = 4+0+0=4最終結果爲764
3)演示:創建一個目錄
初始值爲:drwxrwxr-x
:轉化爲數字的值爲:775
我們將它權限修改爲:drwxrwxr--
,即chmod 774 dir
:
//下篇再見…謝謝