Linux操作系統(tǒng)
-
Linux特點
- 一切都是文件
- Linux是一款免費的操作系統(tǒng)
- Linux支持多用戶,多任務
- 支持多種平臺
- 具有非常強大的網(wǎng)絡功能
- 簡化開發(fā)過程,較強的移植性
Linux應用領域
- Linux 服務器 : 目前Linux服務器是當前最廣泛的應用。
- 桌面應用:新版本的Linux系統(tǒng)特別在桌面應用方面進行了改進,達到相當?shù)乃?/li>
- 嵌入式系統(tǒng):由于Linux系統(tǒng)開放源代碼,功能強大、可靠、穩(wěn)定性強、靈活而且具有極大的伸縮性,因此,在嵌入式應用的領域里LINUX操作系統(tǒng)都有很廣闊的應用市場。
- Linux 操作系統(tǒng)結(jié)構(gòu)
一個典型的Linux操作系統(tǒng)組成為:Linux內(nèi)核,文件系統(tǒng),命令行shell,圖形界面和桌面環(huán)境,并包各種工具和應用軟件。
- Linux內(nèi)核: Linux操作系統(tǒng)的核心代碼,是Linux系統(tǒng)的最底層,提供了系統(tǒng)的核心功能并允許進程以一種有序的方式訪問硬件。
- 文件系統(tǒng):通常指稱管理磁盤數(shù)據(jù)的系統(tǒng),可將數(shù)據(jù)以目錄或文件的型式存儲。每個文件系統(tǒng)都有自己的特殊格式與功能
- shell命令:Shell是一個命令行解釋器,它使得用戶能夠與操作系統(tǒng)進行交互,負責接收用戶命令,然后調(diào)用相應的應用程序,并根據(jù)用戶輸入的指令來反饋給用戶指定的信息。
- 應用軟件:包含桌面系統(tǒng)和基礎的軟件操作工具等。
主要目錄功能
- /bin目錄
? /bin目錄包含了引導啟動所需的命令或普通用戶可能用的命令(可能在引導啟動后)。這些命令都是二進制文件的可執(zhí)行程序(bin是binary----二進制的簡稱),多是系統(tǒng)中重要的系統(tǒng)文件。
- /sbin目錄
? /sbin目錄類似/bin,也用于存儲二進制文件。因為其中的大部分文件多是系統(tǒng)管理員使用的基本的系統(tǒng)程序,所以雖然普通用戶必要且允許時可以使用,但一般不給普通用戶使用。
- /etc目錄
? /etc目錄存放著各種系統(tǒng)配置文件,其中包括了用戶信息文件/etc/ passwd,系統(tǒng)初始化文件/etc/rc等。linux正是因為這些文件才得以正常地運行。
- /root目錄
? /root 目錄是超級用戶的目錄。
- /lib目錄
? /lib目錄是根文件系統(tǒng)上的程序所需的共享庫,存放了根文件系統(tǒng)程序運行所需的共享文件。這些文件包含了可被許多程序共享的代碼,以避免每個程序都包含有相同的子程序的副本,故可以使得可執(zhí)行文件變得更小,節(jié)省空間。
- /dev目錄
? /dev目錄存放了設備文件,即設備驅(qū)動程序,用戶通過這些文件訪問外部設備。比如,用戶可以通過訪問/dev/mouse來訪問鼠標的輸入,就像訪問其他文件一樣。
- /usr文件系統(tǒng)
? /usr 是個很重要的目錄,通常這一文件系統(tǒng)很大,因為所有程序安裝在這里。本地安裝的程序和其他東西在/usr/local 下,因為這樣可以在升級新版系統(tǒng)或新發(fā)行版時無須重新安裝全部程序。
- /var文件系統(tǒng)
? /var 包含系統(tǒng)一般運行時要改變的數(shù)據(jù)。通常這些數(shù)據(jù)所在的目錄的大小是要經(jīng)常變化或擴充的。
- /home
普通用戶的默認目錄,在該目錄下,每個用戶擁有一個以用戶名命名的文件夾。
絕對路徑和相對路徑
絕對路徑和相對路徑都是在Linux中用來描述一個文件位置的描述方法
絕對路徑:指文件在文件系統(tǒng)中以根目錄為起始點的準確位置描述。例如“/usr/bin/gnect”就是絕對路徑。
相對路徑:指相對于用戶當前位置為起始點,對一個文件位置的逐層描述。例如,用戶處在usr目錄中時,只需要“games/gnect”就可確定這個文件。在相對路徑描述時 . 表示當前目錄, .. 表示上一級目錄。
環(huán)境變量
環(huán)境變量一般是指在操作系統(tǒng)中用來指定操作系統(tǒng)運行環(huán)境的一些參數(shù),比如系統(tǒng)目錄位置等。如果將一個目錄設置為環(huán)境變量目錄,那么這個目錄下的文件在任何目錄下都可以查找到。
臨時設置環(huán)境變量: export PATH="$PATH:/your_dir_path"
永久設置環(huán)境變量:修改etc下的profile文件,輸入vi /etc/profile,將上述語句添加進去
編譯器使用
vi使用
Vi是一個著名的功能強大的文本編輯器,它是Linux中最基本的編輯器,雖然不像圖形界面編輯器那樣美觀,沒有使用鼠標那樣方便。但vi編輯器在系統(tǒng)管理、服務器配置工作中永遠都是無可替代的。
插入模式: 用來輸入文本內(nèi)容,在這種模式下摁 esc 鍵進入命令模式
命令模式:命令操作,命令模式又包含底行命令,即在vi底部命令行輸入命令。在命令模式下鍵入 ':' 即進入底行命令輸入
Vi常用命令
操作命令
- i 在當前字符的左邊插入
- o 在當前行下面插入一個新行
- h 向前移動一個字符
- j 向下移動一行
- k 向上移動一行
- l 向后移動一個字符
- b 移動到當前單詞的開始
- e 移動到當前單詞的結(jié)尾
- w 移動到下一個單詞
- 0:光標移動到行首
- $:光標移動到行末
- G : 光標移動到文件結(jié)尾
- gg : 光標移動到文件開頭
- yy 復制當前一行
- dd 剪切當前一行
- p 粘貼內(nèi)容到游標之后
- P 將剪貼板中的內(nèi)容粘貼在光標前
- x 刪除光標所在字符
- r 修改光標所在字符,r后接著要修正的字符
- R 進入取代狀態(tài),新增資料會覆改原先資料, 直到按ESC回到指令模式下為止
- s 刪除光標所在字符,并進入輸入模式
- S 刪除光標所在的行,并進入輸入模式
- cw 刪除光標所在的后一單詞進入插入模式
- cb 刪除光標所在的前一單詞進入插入模式
- c$ 刪除自光標位置至行尾的所有字符,進入插入模式
- c0 刪除自光標位置至行首的所有字符,進入插入模式
- cc 刪除當前行進入插入模式
- u 撤銷操作
- ctrl-r 反撤銷
底行命令
- :n 跳轉(zhuǎn)到底n行
- :w 保存
- :w filename 存入文件filename 中
- :w! filename 強制性存入文件filename 中
- :q 退出
- :q! 強行退出
- :set nu 顯示行號
- /word 查找內(nèi)容
- :%s/hello/nihao/g 將所有的hello 替換為nihao
- :5,8s/hello/nihao/g 將5-8行的hello 替換為nihao
shell命令
我們在Linux終端命令行下輸入的命令稱為shell命令,是通過shell解釋器解釋后由系統(tǒng)執(zhí)行。shell解釋器也是一代一代進化的,我們現(xiàn)在所使用的shell是 bash shell。 在服務器系統(tǒng)操作維護中,shell命令起到了很重要的作用,因為服務器操作往往沒有圖形界面,或者通過遠程命令控制完成,這時候shell命令可以幫助我們實現(xiàn)很多功能。
shell命令基本格式有三部分,每部分之間有空格,選項與選項,參數(shù)與參數(shù)之間也有空格。(多個選項可以寫在一起):
命令 [選項] [參數(shù)]
基礎命令
| 作用 | 命令及常用選項 |
|---|---|
| 關閉重啟系統(tǒng) | shutdown |
| 臨時管理員權(quán)限 | sudo |
| 幫助說明 | man |
| 退出終端 | exit |
| 清空屏幕 | clear |
| 查看文件絕對路徑 | pwd |
| 切換工作目錄 | cd |
| 查看文件 | ls , ls -l , ls -a |
| 打印內(nèi)容 | echo |
| 創(chuàng)建目錄 | mkdir -p |
| 刪除目錄 | rmdir |
| 創(chuàng)建文件 | touch |
| 復制文件 | cp -r |
| 移動文件 | mv |
| 刪除文件 | rm -rf |
| 查找文件 | find |
| 查看文件信息 | file |
| 查看文件內(nèi)容 | cat |
| 查看文件前 n 行 | head |
| 查看文件后n行 | tail |
| 對比文件差異 | diff |
| 查詢文件內(nèi)容信息 | wc |
| 查找文件里符合條件的字符串 | grep |
| 修改文件權(quán)限 | chmod |
| 創(chuàng)建鏈接文件 | ln , ln -s |
| 顯示當前時間 | date |
| 查看磁盤使用情況 | df |
| 顯示當前用戶 | whoami |
| 查找服務程序位置 | witch |
| 查找命令文件及關聯(lián)目錄 | whereis |
- shutdown : 默認情況為1分鐘后關機, +n 表示n分鐘后關機,在這個過程中shutdown -c 可以取消。shutdown -h now表示立即關機
- sudo:在命令前書寫,表示已以管理員權(quán)限運行這個命令。
- man:使用man命令可以找到特定的聯(lián)機幫助頁,并提供簡短的命令說明。
- exit : 關閉一個終端,通過ctrl+alt +t ,shift+ctrl + t , shift+ctrl+n 都可以快速打開一個終端
- clear:等同于ctrl-l,清空屏幕
- pwd:pwd命令用于顯示用戶在文件系統(tǒng)中的當前位置。
- cd:用于改變工作目錄,參數(shù)為絕對路徑或者相對路徑。
- ls : 查看目錄下的文件列表 -l 展示詳細信息,-a展示隱藏文件(Linux下 . 開頭的為隱藏文件)
d rwx r-x r-x 2 linux linux 4096 Sep 22 2012 Desktop
各項含義分別是: 文件類型,文件的權(quán)限,文件的鏈接數(shù),文件的所有者,文件所在組,文件的大小,文件的更新時間,文件名
-
echo :標準輸出一段文字在顯示器上,-n表示輸出后不換行
輸入/輸出重定向是改變Shell命令或程序默認的標準輸入/輸出目標,重新定向到新的目標。重定向符 含義 實例 > file 將file文件重定向為輸出源,新建模式 echo "hello world" > out.txt,將執(zhí)行結(jié)果,寫到out.txt文件中,若有同名文件將被刪除 >> file 將file文件重定向為輸出源,追加模式 ls /usr >> Lsoutput.txt,將ls /usr的執(zhí)行結(jié)果,追加到Lsoutput.txt文件已有內(nèi)容后 < file 將file文件重定向為輸入源 wc < file1,將file1中的內(nèi)容作為輸入傳給wc命令 mkdir : 創(chuàng)建一個目錄,-p用戶創(chuàng)建多層目錄
rmdir : 刪除一個空目錄
touch : 創(chuàng)建一個文件
cp : 復制文件/文件另存, -r 可以復制文件目錄
mv: 移動文件/文件重命名
rm : 刪除文件,-rf 用于刪除目錄
當需要用命令處理一組文件,例如file1.txt、file2.txt、file3.txt……,用戶不必一一輸入文件名,可以使用Shell通配符。
| 通配符 | 含義 | 實例 |
|---|---|---|
| 星號(*) | 匹配任意長度的字符串 | 用file_*.txt,匹配file_wang.txt、file_Lee.txt、file3_Liu.txt |
| 問號(?) | 匹配一個長度的字符 | 用flie_?.txt,匹配file_1.txt、file1_2.txt、file_3.txt |
| 方括號([…]) | 匹配其中指定的一個字符 | 用file_[otr].txt,匹配file_o.txt、file_r.txt和file_t.txt |
| 方括號([ - ]) | 匹配指定的一個字符范圍 | 用file_[a-z].txt,匹配file_a.txt、file_b.txt,直到file_z.txt |
| 方括號([^…]) | 除了其中指定的字符,均可匹配 | 用file_[^otr].txt,除了file_o.txt、file_r.txt和file_t.txt的其他文件 |
find : 在一個目錄下查找文件 find path -name 按照名字查找
file : 查看一個文件的屬性類型
cat : 查看一個文件內(nèi)容
head : head - n file 用來查看一個 文件前n行
tail : tail -n file 用來查看一個文件的后n行
wc : 查看文件內(nèi)容信息, -c 表示查看多少字符,-l查看多少行,-w 查看多少單詞
-
grep : 用于查找內(nèi)容包含指定的范本樣式的文件, grep 指令會把含有范本樣式的那一行顯示出來。若不指定任何文件名稱,則 grep 指令會從標準輸入中讀取數(shù)據(jù)。-n 用于顯示行號,-i忽略大小寫
管道可以把一系列命令連接起來,意味著第一個命令的輸出將作為第二個命令的輸入,通過管道傳遞給第二個命令,第二個命令的輸出又將作為第三個命令的輸入,以此類推。 ls | grep 'test' -
chmod : chmod [權(quán)限聲明] [file] 修改一個文件權(quán)限
u 表示該文件的擁有者,g 表示與該文件的擁有者屬于同一個群體(group)者,o 表示其他以外的人,a 表示這三者皆是。 + 表示增加權(quán)限、- 表示取消權(quán)限、= 表示唯一設定權(quán)限。 r 表示可讀取,w 表示可寫入,x 表示可執(zhí)行,X 表示只有當該文件是個子目錄或者該文件已經(jīng)被設定過為可執(zhí)行。 也可以用三位8進制表達權(quán)限 ln : ln [源文件] [目標文件] 創(chuàng)建鏈接,-s表示創(chuàng)建軟鏈接,不加表示硬鏈接。硬鏈接想相當于副本,源文件名改變也不會影響鏈接,源文件刪除則鏈接斷開。軟鏈接相當于快捷方式,源文件改變則鏈接斷開,源文件刪除重新創(chuàng)建后鏈接可以恢復。
date : 顯示時間
df : 顯示目前在Linux系統(tǒng)上的文件系統(tǒng)的磁盤使用情況統(tǒng)計,其中-T顯示文件系統(tǒng)類型 ext4的為磁盤,其他的為虛擬文件。-h以M為單位顯示
whoami : 顯示當前用戶
which : 查找一個程序位置
whereis : 查找一個命令文件及其關聯(lián)目錄
壓縮管理
歸檔和壓縮可以幫助我們很好的整理文件,在Linux系統(tǒng)下支持多種壓縮格式。其中gzip是Linux中最流行的壓縮工具,具有很好的移植性,可在很多不同架構(gòu)的系統(tǒng)中使用。bzip2在性能上優(yōu)于gzip,提供了最大限度的壓縮比率。如果用戶需要經(jīng)常在Linux和微軟Windows間交換文件,建議使用zip。
| 作用 | 命令及常用選項 |
|---|---|
| 壓縮解壓zip格式 | zip -r, unzip |
| 壓縮解壓gz格式 | gzip, gunzip |
| 壓縮解壓bz2格式 | bzip2,bunzip2 |
| 歸檔壓縮解壓文件 | tar |
-
zip : 將文件壓縮為zip格式
zip test.zip filelist
-
unzip : 將zip格式文件解壓
unzip test.zip
-
gzip : 將文件壓縮為gz格式
gzip file
-
gunzip :將gz文件解壓
gunzip file.gz
-
bzip2 : 將文件壓縮為bz2格式
bzip2 file
-
bunzip2 : 將bz2 文件解壓
bunzip2 file.bz2
-
tar : 主要用于將若干文件或目錄合并為一個文件,以便備份和壓縮。-cjf 用于壓縮bz2格式文件,-czf用于壓縮gz格式文件,-xvf用于解壓文件
選項 描述 -t 顯示歸檔文件中的內(nèi)容 -x 釋放歸檔文件 -u 更新歸檔文件 -c 創(chuàng)建一個新的歸檔文件 -v 顯示歸檔和釋放的過程信息 -f 用戶指定歸檔文件的文件名,否則使用默認名稱 -j 由tar生成歸檔,然后由bzip2壓縮 -z 由tar生成歸檔,然后由gzip壓縮 tar -czf file.tar.gz file1 file2
tar -xvf file.tar.gz
軟件管理
Linux下安裝的軟件包是 deb格式軟件包。Deb軟件包將二進制應用程序、配置文檔、幫助頁面都整合在一個文件中,便于傳遞、安裝、升級和備份。dpkg是最早的Deb包管理工具,使用dpkg可以實現(xiàn)軟件包的安裝、編譯、卸載、查詢,以及應用程序打包等功能。但是由于當時Linux系統(tǒng)規(guī)模和Internet網(wǎng)絡條件的限制,沒有考慮到操作系統(tǒng)中軟件包存在如此復雜的依賴關系。因而,為了解決軟件包依賴性問題和獲取問題,就出現(xiàn)了APT工具。
| 作用 | 命令 |
|---|---|
| 本地包安裝 | dpkg -i <package> |
| 本地安裝包卸載 | dpkg -r <package> |
| 本地包狀態(tài)查看 | dpkg -s <package> |
| 本地包卸載并清除記錄 | dpkg -P <package> |
| 升級軟件包 | apt-get update |
| 安裝軟件 | apt-get install |
| 卸載軟件 | apt-get remove --purge |
| 下載源碼包 | apt-get source |
| 刪除緩存的軟件安裝包 | apt-get clean |
用戶管理
Linux系統(tǒng)是一個多用戶多任務的操作系統(tǒng),任何一個要使用系統(tǒng)資源的用戶,都必須首先向系統(tǒng)管理員申請一個賬號,然后以這個賬號的身份進入系統(tǒng)。用戶的賬號可以幫助用戶組織文件,并為用戶提供安全性保護。每個用戶賬號都擁有一個惟一的用戶名和各自的口令。用戶在登錄時鍵入正確的用戶名和口令后,就能夠進入系統(tǒng)和自己的主目錄。
實現(xiàn)用戶賬號的管理,要完成的工作主要有如下幾個方面:
- 用戶賬號的添加、刪除與修改。
- 用戶口令的管理。
- 用戶組的管理。
| 作用 | 命令及常用選項 |
|---|---|
| 增加用戶 | adduser |
| 設置用戶密碼 | passwd |
| 設置用戶權(quán)限 | usermod |
| 刪除用戶 | deluser |
| 刪除用戶組 | delgroup |
| 修改文件歸屬 | chown |
- adduser : 增加一個用戶,--home 生產(chǎn)主目錄 --ingroup選擇用戶組名稱。默認組名和用戶名相同
- passwd : 修改一個用戶的密碼
- usermod: 修改用戶權(quán)限,如密碼或則所屬的組等
- deluser : 刪除一個用戶 --remove-home 表示同時刪除用戶主目錄
- delgroup : 刪除一個用戶組
- chown : 修改文件的所屬用戶
添加用戶后為保證用戶有sudo 權(quán)限,需修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,假設aid為用戶名,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
aid ALL=(ALL) ALL
通過sudo vipw命令可以查看用戶信息,在信息列表中絕大多數(shù)為虛擬用戶。當添加一個用戶時該文件會自動修改,如果刪除一個用戶則需要自己修改這個文件用戶才徹底刪除