1 歷史
Linux:Linux Is Not Unix
Unix:是Linux的前身,因為收費,只有在公司和學校才能用到,一位高手在學校用到以後覺得非常好就寫了一個Linux。
Linux核心:基於內核的操作系統,Linux兄弟只寫內核(管理硬件的程序)
Linux發行版本:debian,slackware,suse,紅旗,turbolinux,redhat,fedora,mandrake(依賴於內核的工具),在linux內核上寫了外圍的依賴程序,根據依賴程序又寫了許多許多管理硬件工具
Linux版本:r.x.y,r:release version,x:偶數,穩定版本,奇數,開發中的版本,y:錯誤修補的次數 eg:2.0.38
2 分區:
VFS:虛擬文件系統,所有文件系統統一的接口,可以根據接口編程(多態)
分區表:如圖,記錄了分區的信息,一般位於對應分區的開始,最多只能記錄四條記錄,所以主分區加擴展分區最多不能超過四個(一般用來裝系統),下面那張表記錄了邏輯分區(不同的文件系統)
格式化:建立不同的文件系統,就是對應數據不同的存儲規格。
為什麼要分區:可以在同一塊硬盤上裝各種各樣的文件系統,各種各樣的小格,不同的文件系統的擁有不同的小格。更加容易管理
windows:c:(主分區),d:(擴展分區/邏輯分區),e:(擴展分區/邏輯分區)
linux分區的命名:所有的設備在Linux看來都是文件,分為字符設備(如鍵盤)和塊設備(如硬盤)
--/dev/xxyN,/dev/:所有設備文件所在的目錄名,xx:分區名的前兩個字母標明分區所在的設備的類型。通常是hd(IDE磁盤)或sd(SCSI磁盤)。y:這個字母標明分區所在的設備,代表第幾個硬盤。N:代表分區,前四個分區(主分區和邏輯分區)是從1到4,邏輯分區從5開始。例如:/dev/hda3:第一個IDE硬盤上的第三個主分區或邏輯分區,/dev/sdb6:在第二個SCSI硬盤上的第二個邏輯分區。
訪問分區:通過掛載(mount)實現,掛載是將分區關聯到某一目錄的過程。掛載分區使起始於這個指定目錄(稱為掛載點)的貯存能夠被使用。如:mount /dev/cdrom /mnt/cdr
至少兩個分區:/分區,SWAP分區:把硬盤當內存使用(虛擬內存),實際物理內存的兩倍
3 目錄結構:google
4 linux啟動過程(boot sequence)
load bios(hardware information)
read MBR‘s config to find out the OS:根據MBR的配置找到啟動哪個操作系統
load the kernel of the OS:這個操作系統啟動的核心文件
init process starts:init進程啟動
execute /etc/rc.d/sysinit:運行命令
start other modules (etc/modules.conf):read讀取系統各種模塊
execute the run level scripts:,啟動級別,啟動到哪個層次,分層結構,分為6層,每層之間互不影響,可以修改(/etc/inittab)
execute /etc/rc.d/rc.local:執行腳本
execute /bin/login
shell started..
5 linux幫助
命令 --help
man 命令
6 command(常用)
ls:列出當前目錄下的文件和目錄,ls -l:顯示詳細信息,ls -R:樹狀遞歸顯示目錄下的所有文件和目錄下的目錄
tree:樹狀顯示
cd:進入目錄,cd ..返回上層路徑
pwd:當前路徑
mkdir:建目錄
rmdir:刪除空目錄
rm -rf:遞歸強制刪除目錄或文件,強制刪除不跳出確認信息
touch:創建文件
cp:復制,cp -r:遞歸拷貝目錄
mv:移動,改名
vi:文本編輯器(跨平台,遠程),vi 文件名(創建或編輯文件)
一進去為命令模式:只能敲命令
a:追加
切換為命令模式:esc
:w 存盤,:q 退出
more:查看文件內容
cat:查看文件內容
tac:逆序查看文件內容
head:查看文件,head -3:查看文件前三行
tail:查看文件,tail -3:列出最後三行
clear:清屏
find:查找文件在什麼位置上,find / -name my*
grep(常用):grep 字符串 文件名,查找對應字符串在文本文件的哪一行
whereis:查看命令是由誰執行的以及命令的文檔
echo:echo $PATH:查看PATH
ln:鏈接,兩個文件保持同步,與copy不同。ln -s:軟鏈接,相當於windows的快捷方式
useradd:增加用戶,在/home增加對應文件夾,默認和用戶名相同的組,-g 組名
usermod:修改用戶名,-g:修改組名
userdel:刪除用戶
su 用戶名:切換用戶
passwd:指定用戶密碼
more /etc/passwd:所有的用戶
more /etc/group:組的信息
ls -l:顯示詳細信息(詳解):
第一位:分為-:文件,l:鏈接,d:目錄
第二位到第四位:文件/目錄的所有者,擁有者的權限
第五位到第七位:文件/目錄所有者同組的其他人的權限
第八位到第十位:剩下的人的權限
chmod:修改權限,chmod u+x 文件名:修改當前用戶的權限,chmod g+x 文件名:修改同組權限,chmod 777:高級操作,第一個7代表用戶權限,第二個7為同組權限,第三個7為剩下人權限,把7對應的二進制來表示讀寫執行(1為有,0為沒有)如:7:111,5:101
chown:修改所有者,chown 所有者 文件名
wc:統計指定文本文件的行數,字數,字符數wordcount
col:過濾控制字符
管道:將一個命令的輸出傳送給另一個命令,作為另一個命令的輸入,命令1|命令2|...命令n
ls -Rl /etc | more
cat /etc/passwd | wc
cat /etc/passwd | grep lrj
dmesg | grep eht0
man bash | col -b > bash .txt
ls -l | grep "^d":之列出目錄
ls -l * | grep "^-" | wc -l:當前目錄下有多少文件
wall:wall ’命令‘ ,將命令執行的結果發送給每個登錄到shell上來的人
命令替換:將’命令‘替換為命令
重定向:將命令輸出寫入文件,或將文件讀取輸入命令
輸出:ls > cmd.txt , ls >> cmd.txt ,>代表替換,>>代表追加
輸入:wall < aa.txt
export:當linux下設定環境變量之後想讓其他人使用則需要使用該命令,如:export PATH=/home/yyz/Applications/adt-bundle-linux-x86_64-20130917/sdk/tools:$P
ATH
ps:觀察下面有哪些進程,ps -ef:當前用戶下的所有的進程,ps -ef | grep 進程名
kill:殺進程,kill -9 進程名,強制殺進程
service:服務管理,service 服務名 start:啟動服務。service 服務名 stop:關閉服務,常用:service iptables stop,關防火牆
wget 網址:本地連接網站(其中一個功能),測試
7 搭建部署環境
必須使用純命令行操作,因為server使用純命令行
服務自啟動:chkconfig命令的使用 (啟動級別和防火牆的設置(iptables))