- 一台主機上能夠安裝多個虛擬機
- Linux操作系統誕生於1991 年10月5號,此為第一次正式向外公布時間
- Linux是一個多用戶系統,也是一個多任務操作系統。
- Linux內核版本號命名:2.6.22---2為主版本號,6為次版本號,22為修正號
- Ubuntu每6個月發行一個新版本,采用unity桌面環境
- Red Hat默認采用GNOME桌面環境
- Mandriva Linux默認采用KDE桌面環境
- Linux系統一般由內核、文件系統、應用系統和shell組成
- 目前大部分Linux文件系統都默認采用ext4文件系統
- /etc:系統配置文件
- /dev:外部設備
- /boot:啟動程序(引導文件)
- /lib:共享函數庫
- /mnt:默認掛載點
- /proc:虛擬文件系統
- /bin:外部命令目錄
- /var:系統修改過的數據
- Linux采用樹形結構,最上層是根目錄,其他目錄從根目錄出發而生成
- Linux中的文件類型:
"-"——普通文件;
"d"——目錄文件;
"l"——鏈接文件;
"c"——字符設備文件;
"b"——塊設備文件;
"s"——套接字文件;
"p"——管道文件
- 文件權限:共十位長度,分為四段:
1.第一段 1個長度:文件類型
2.第二段 3個長度:文件所有者的權限(-u)
3.第三段 3個長度:文件當前群組的權限(-g)
4.第四段 3個長度:其他用戶及群組的權限(-o)
r(22)w(21)x(20)
chgrp,chown命令默認情況下只有root權限才能操作,而chmod命令只有文件的所有者和root權限才能進行操作
chgrp 組名 文件/目錄名
chown 用戶名:組名 文件/目錄名 其中:組名可以省略
chmod:符號模式:chmod [augo]+[+-=]+[rwx] 文件/目錄名
絕對模式:chmod 權限等級 文件/目錄名 (權限等級中750和650使用較多)
- SSH服務使用的默認端口號是22
- tail:顯示文件的最后n行,默認為10; tail -f:不斷讀取最新內容,達到實時監控目的
- ls: -a 顯示所有文件; -l 使用長格式顯示; -t 按創建時間(由晚到早); -r 反序輸出(默認首字母升序) -altr: 所有文件按創建時間從早到晚排序
- pwd:顯示當前工作目錄的完整路徑
- wc:統計命令 wc filename ===> 行數(-l) 詞數(-w) 字節數(-c) filename
- 鏈接:
- 硬鏈接:不能鏈接到目錄和不同文件系統的文件,硬鏈接為指針,與原文件inode(索引結點號)相同,文件刪除后硬鏈接仍有效 命令:ln
- 軟鏈接:能鏈接到目錄並跨文件系統,系統會重新分配inode給軟鏈接,文件刪除后軟鏈接也會失效 命令:ln -s
用戶和用戶組
- 用戶:任何使用系統資源的用戶必須先向系統管理員申請一個賬號,然后以賬號的身份進入系統
- 在Linux系統中,任何文件都屬於某一特定用戶,而任何用戶都隸屬於至少一個用戶組
- 用戶分類:
- 普通用戶:uid1000~65535 權限不高,只能在用戶主目錄創建文件
- 系統用戶:uid1~999 代表系統的組成部分,一般沒有運行環境
- 超級用戶:uid0 root用戶擁有最高權限
- 創建新用戶: useradd makonyan -g(指定群組) makolin -m(創建主目錄) -p(設置密碼)123456
- 用戶相關文件: /etc/passwd /etc/shadow
- 用戶組相關文件: /etc/group /etc/gshadow
- useradd:創建一個新用戶
-d | 指定用戶主目錄 |
-g | 指定組 |
-m |
自動創建主目錄 |
-p | 指定密碼 |
- passwd
-l | 禁用用戶 |
-u | 解禁用戶 |
-d | 刪除密碼 |
- usermod
-d | 更改主目錄 |
-l | 更改賬號名稱 |
-g | 更改所屬組 |
- userdel -r把主目錄一起刪除
- groupadd
-g | 指定組id |
-o | 允許存在相同組id |
- groupmod
-g | 指定組id |
-o | 與-g一起使用,允許新gid和已存在的相同 |
-n | 更改組名 |
- groupdel
- gpasswd
-a | 添加用戶 |
-d | 從組中刪除用戶 |
-r | 刪除密碼 |
硬盤:
- 主分區:1-3 擴展分區:4 邏輯分區:5~
- 只能格式化主分區和邏輯分區,不能格式化擴展分區
- 硬盤分區:
1.在虛擬機上設置添加SCSI類型的硬盤
2.在Ubuntu系統內能夠通過fdisk -l命令查看硬盤
3.執行sudo fdisk /dev/sdb(新硬盤的名字)命令,通過輸入m顯示幫助命令(n(new) q退出 w保存退出)
4.分區格式化,創建文件系統
執行sudo mkfs -t ext4 /dev/sdb(+分區序號) *不能對拓展分區格式化
5.在使用前,掛載分區
掛載方式一:手動掛載(/share為掛載點)
root@garton-virtual-machine:/#mount ext4 /dev/sdb1 /share
掛載方式二:自動掛載
root@garton-virtual-machine:/# vi /etc/fstab
/dev/sdb1 /share ext4 defaults 0 0
第一列 文件系統名稱
第二列 Mount point:設備的掛載點,就是你要掛載到哪個目錄下。
第三列 filesystem:磁盤文件系統的格式,包括ext2、ext3、reiserfs、nfs、vfat等
第四列 parameters:文件系統的參數
第五列:能否被dump備份命令作用
第六列 是否檢驗扇區:開機的過程中,系統默認會以fsck檢驗我們系統是否為完整(clean)。
- 交換分區:swap
概念:Linux下的虛擬內存分區,作用是在物理內存使用完之后,將磁盤空間(swap分區)虛擬成內存使用
-
- 設置方法:
- 創建交換條件:dd if(輸入文件)=/dev/zero/ of(輸出文件)=/swapfile bs(讀寫塊大小)1024 count(僅復制blocks的塊數)=6656
- 指定交換條件:mkswap [參數] [設備名稱/文件] [交換區大小] free查看內存使用情況
- 激活swap文件:swapon [of名]
- 刪除swap文件:swapoff [of名]
- 自動加載:在/etc/fstab文件下配置
進程管理:
- ps:查看進程
- -au較詳細信息
- -ax所有使用者的進程
- top:監控進程
- P:根據CPU占用排序
- M:根據內存大小排序
- u:指定用戶
- k:殺死進程
- kill:結束進程 -l顯示信號名稱列表
任務計划
- 設置方法:crontab;允許用戶提交、編輯、刪除相應作業。
- 格式:crontab [選項] [用戶名]
- -l 顯示
- -r 刪除
- -i 刪除前提示
- -e 編輯
vi編輯器
- vi命令分為命令行模式,輸入模式,末行模式;其中輸入模式能夠進行文檔的修改。
命令行模式:當進入vi時,處在命令行模式
x | 刪除光標所在位置的字符 |
dd | 刪除光標所在行 |
yy | 復制光標所在行 |
p | 將復制的(或最近一次刪除的)內容粘貼 |
u | 撤銷上次操作 |
- 輸入模式:
i | 在當前光標所在處插入 |
a | 從光標所在的下一個字符插入 |
r | 替換光標所在的字符一次 |
o | 在光標所在下一行插入新的一行 |
- 工作模式切換:
- 當進入vi時,處在命令行模式
- 命令行模式->輸入模式:iIaArRoO
- 輸入模式->命令行模式:Esc
- 命令行模式->末行模式::
- 末行模式->命令行模式:命令執行后或將末行輸入的命令全部刪除后
shell腳本
- 每個Linux系統的用戶可以擁有自己的用戶界面或Shell
- shell腳本執行方式
- 直接命令執行:在提示符下執行(需要對應權限)
- sh/bash 腳本名 : 參數:-n不執行只檢查語法 -v輸出內容再執行
- source 腳本名:可以沒有執行權限
- Shell腳本常用系統變量:
- $# 命令行參數的個數
- $0 當前程序的名稱
- $n 當前程序的第n個參數
- $? 執行的上個指令或函數的返回值
- $* 以"參數1 參數2 …"的形式保存所有參數
- $$ 當前程序的PID(進程ID)
- $! 上一個命令的PID
- 常見環境變量:
- PATH 命令搜索路徑
- HOME 用戶home目錄的路徑
- Shell自定義變量要求:
(1) 首個字符必須為字母(a-z,A-Z)
(2) 中間不能有空格,可以使用下划線(_)
(3) 不能使用標點符號
(4) 不能使用bash里的關鍵字(可用help命令查看保留關鍵字)
(5) 給變量賦值的時候,不能在“=”兩邊留空格
- test中的整數運算符
- -eq equal
- -ne not equal
- -gt greater than
- -lt less than
- -ge greater than or equal
- -le less than or equal
- test中的字符串運算符
- str1 = str2 判斷兩個字符串是否相同,相同則為ture
- str1 != str2 判斷兩個字符串是否不相同,不同則為true
- -z str 判斷字符串str長度是否為0,如果是空字符串則返回true
- -n str 判斷字符串str長度是否為0,如果是空字符串則返回false
- 使用 [ ] 進行條件判斷要注意加空格
- 特殊符號
- " " :由雙引號括起來的字符,除$、反斜線\和反引號``幾個字符仍是特殊字符並保留其特殊功能外,其余字符仍視為普通字符。
- ' ' :由單引號括起來的字符都作為普通字符出現
-
- ` ` :把反引號括起來的字串解釋為命令行后首先執行,並以它的標准輸出結果取代整個反引號部分
- 注意:雙引號和不使用引號效果基本一致(特殊字符具有特殊字符的含義),單引號作為普通字符
- 文件運算符
- -e file 文件名存在則返回ture
- -d file 文件名存在且為目錄則返回true
- -f file 文件名存在且為文件則返回true