1,X Window是一個協議,獨立于操作系統,有很多種實現,比如KDE,GNOME,FVWM等,在登錄時可以自由選擇.
2,Unix默認的圖形環境是CDE(通用桌面環境),服務器追求的是穩定安全.
3,Linux的硬盤分為scsi和ide,scsi以sda,sdb...標示;ide以hda,hdb...標示.
4,windows系統連接虛擬機中的Linux系統,可以在windows中添加一塊回環網卡(廠商:Microsoft,網卡:Microsoft Loopback Adapter),將IP設置在同一網段就可以通信了.
5,Linux的命令格式:命令 選項 參數,其中命令是Linux提供的,選項是命令操作的方式,參數是命令操作的對象
6,Linux中的命令分為兩種:root可以執行的/sbin,/usr/sbin,和所有用戶可以執行的/bin,/usr/bin.
7,dr-xr-xr-x. 2 root root 4096 12月 4 07:18 bin按順序解釋:
Linux中常見的文件類型:d目錄,-二進制文件,l(link)軟連接文件--的權限都是rwx(最終指向源文件),時間為創建時間,類似于windows的快捷方式,如果源文件刪除了,軟連接就不存在了
Linux中的權限:r-read讀,w-write寫,x-execute執行
r-xr-xr-x:前三個表示所有者user或者owner,縮寫u,文件的創建者或者轉讓人;中間三個是所屬組group,縮寫g;最后三個是其他人others,縮寫o
2表示硬鏈接數:類似于copy -p + 同步跟新(原因是:與源文件有相同的inode),-p是硬鏈接的時間和源文件一致,如果用copy那么拷貝文件的時間和源文件不一樣;源文件刪除了,硬鏈接還可以存在,相當于備份;不管是向源文件或硬鏈接文件更新內容都會更新的;硬鏈接不能跨文件系統(即分區)生成.
root所有者
root所屬組
4096是文件或者目錄大小,這個數值不準確,Linux中是使用block塊來表示的(存儲文件的最小單位),默認一個block為512bytes,可以自己調整大小.
12月 4 07:18 創建時間或最后修改時間
bin 文件或者目錄
8,Linux中內核只認識數字,因此所有的對象都有一個表示,比如uid,gid,pid,其中文件有個inode即i節點
9,改變文件和目錄的權限:chmod {[ugo] [+-=] [rwx]}|{421(rwx)} 文件或目錄
[圖片上傳中。。。(1)]
10,su - username 切換用戶;當從root切換到普通用戶不需要密碼,從普通用戶切換到root或者其他普通用戶需要密碼.
11,使用chown 用戶 文件或目錄,改變文件或目錄的所有者,注意用戶必須存在
12,使用chgrp 用戶組 文件或目錄,改變文件或目錄的所屬組,注意所屬組必須存在
13,使用umask查看默認的權限值:
1>,umask返回0022,其中第一個0是特殊權限位,022是用戶權限掩碼值,真實的權限為777-022=755
2>,umask -S 返回:u=rwx,g=rw,o=rw
3>,在linux中創建的文件默認權限是644,即在任何時候創建的文件都不會授予x執行權限.
4>,修改創建的默認權限:umask 掩碼值(777-想要修改的權限)
14,使用which 命令,可以查找命令所在的絕對路徑,同時如果有別名記錄也會一同顯示
15,使用whereis 命令,可以查找命令所在的絕對路徑,同時也找到命令的幫助文檔位置
16,使用find 搜索路徑或搜索范圍 搜索方法,來查找文件或命令,常見使用方法如下:
1>,根據文件名查找-name,可以使用通配符(匹配0到多個字符)和?(匹配一個字符)
find /etc -name init 查找init文件,精確匹配
find /etc -name init 查找文件命中以init開頭的文件
find /etc -name init? 查找文件名以init開頭的5個字符的文件
2>,根據文件大小查找-size,后面是文件大小(以block計算,比如100M=1001024K=1024002block):
find / -size +204800 查找大于100M的文件
find / -size -204800 查找小于100M的文件
find / -size 204800 查找等于100M的文件
find / -size +163840 -a -size -204800 查找大于80M而小于100M的文件
find / -size +163840 -a -type f|l|d 查找大于80M文件或軟連接文件或目錄
還有一個邏輯或使用-o,將-a換成-o
find /ect -name init -exec ls -l {} \ ; 將find /ect -name init得到的內容放到{}中,-exec(可以使用-ok,有確認信息)執行其后的命令,\轉移符是符號執行命令本身含義,;是必須的結束標
3>,根據所屬用戶查找文件-user:
find /home -user root
4>,根據時間查找:以天(atime,ctime,mtime)或分鐘(amin,cmin,mmin)條件,其中a--access文件被訪問過,c-change文件屬性(ls -l)被改變,m-modify文件內容被修改過
find -mtime -1 24小時之內修改過的文件
find -mmine +120 文件修改超過兩小時的
5>,有些文件特殊,刪除不掉,那么就是用:
find /etc -inum 12 -exec rm -rf {} \; 其中-inum是文件的inode節點.
6>,使用locate 文件或目錄,返回找到的類似文件,需要配合updatedb(系統會定期更新文件目錄數據庫)命令,所以查找速度很快
7>,grep 字符串 文件路徑,返回字符串在文件中的行并輸出
grep tftp /etc/services
17,使用man 命令/配置文件路徑,來查看幫助信息,man的輸出信息是借助于more的,所以more的參數都是可以用的;man默認是查看命令的幫助,省略了1,當命令和配置文件名字一樣是需要使用man的類型
man 1 ls 命令幫助信息
man 5 /etc/services 配置文件幫助信息
18,info和man的使用方法一樣,內容顯示很整潔
19,如果只想知道一個命令是做什么的,使用whatis 命令;查看命令的選項使用命令 --help;查看配置文件說明:apropos 配置文件;其中whatis和apropos要配合makewhatis數據庫使用.
20,查看shell內置命令幫助使用:help 命令
21,linux上的所有壓縮包,都可以在windows上打開,反之不成立,比如rar文件:
1>,.gz的文件:
使用gzip filename壓縮,不保留源文件,只能壓縮文件
使用gunzip filename 解壓縮文件,解壓后壓縮文件被刪除
2>,.tar.gz文件:
使用 tar -zcvf demo.tar.gz demo將demo目錄打包并壓縮,-c打包tar,-v顯示詳細信息,-f打包文件名,-z壓縮文件
使用tar -zxvf demo.tar.gz 解壓縮文件
3>,.zip的文件,是Linux和Windows唯一默認都支持的壓縮文件:
使用zip 文件名.zip 文件名或者zip -r 文件名.zip 目錄,保留源文件
使用unzip 文件名.zip解壓縮
4>,.bz2的文件,是gzip的升級,加-k選項可以保留文件,這種格式的壓縮比非常好:
使用bzip2 -k 文件名.bz2 文件名
使用bunzip2 -k 文件名.bz2
22,可以向指定的在線用戶發信息,比如write lcj>message...,ctrl+d結束;
可以發送廣播消息,比如wall message...,在線用戶都可以收到
ping -c 3 ip地址,三次后就結束,類似windows的;ping -s 65507 ip ,-s指定包的大小.
ifconfig eth0查看網卡eth0的信息;也可以暫時修改網卡的信息使用ifconfig eth0 ip地址.
23,關機命令:shutdown -h now立即關機.
reboot重啟系統
24,一些shell技巧:
1>,Tab鍵用來進行提示補全;
2>,clear ctrl+l 清屏
3>,查看所有的命令歷史列表:history;!命令列表中的序號,可以調用命令;
4>,ctrl+u刪除光標前面所有的字符;
5>,別名的定義,查看,刪除:
定義:alias copy=cp 或 alias rmd="rm -rf" 這里注意區別:單個命令直接賦值,命令組合要加""
查看:alias
刪除:unalias copy
6>,輸入輸出重定向(標準輸入0,標準輸出1,標準錯誤輸出2):
標準輸出重定向:ll > /log,將ll數據寫入到log中;date >> /log,將當前時間追加到log中(0>或0>>)
標準輸入重定向:cat < /log 讀取log數據(<或1<)
錯誤重定向:cp -R /usr /homework/usr 2>/err.log,拷貝/usr目錄,當拷貝失敗,錯誤信息寫入/err.log中,注意2>/err.log要緊挨著
7>,;命令按順序執行,比如:pwd;ls;date
8>,&&連接多個命令
9>,||連接多個命令,第一個失敗,第二個才執行
25,vi/vim工作模式圖:
[圖片上傳中。。。(2)]
使用:進入編輯模式,回車后就回到了命令模式.
set nu 或者set number 可以設置行號,便于確定文件的位置.
插入命令:
[圖片上傳中。。。(3)]
命令行模式下定位:
[圖片上傳中。。。(4)][圖片上傳中。。。(5)]
刪除命令:
[圖片上傳中。。。(6)]
復制和剪切:
[圖片上傳中。。。(7)]
替換和取消:
[圖片上傳中。。。(8)]
搜索替換--/g替換時不需要用戶介入,如果需要使用/c:
[圖片上傳中。。。(9)]
保存退出:wq 或者 shift zz; root和文件的所有者可以強制保存退出:wq!
當在vi中編輯文件時,可以把其他文件的內容導入進來:r 文件名
在vi中可以使用:!命令 來執行命令
在vi中可以將當前命令的結果導入到文件中:r !命令,比如將時間寫入到文件中:r !date
在vi中定義快捷鍵:
比如插入#,使用:map ctrl+v+p I#<ESC> 說明:使用ctrl+v+p輸入^P或者用ctrl+v ctrl+p,I表示定位到當前行首并進入編輯模式,#是輸入的內容,<ESC>退出編輯命令;取消使用:unmap ^P
刪除#,使用:map ctrl+v+r 0# 說明使用ctrl+r刪除行首的#
添加郵箱,使用:map ctrl+v+e ilcj@qq.com<ESC> 說明,使用ctrl+e在光標前面加入郵箱并退出編輯模式
連續行的注釋:n1,n2s/^/#/g 說明在n1,n2行首加#
刪除連續行的注釋:n1,n2s/^#//g
當有一串很長的重復字符要輸入時,可以使用:ab mail lcj@qq.com 當輸入mail回車時會被替換為lcj@qq.com;取消使用:unab mail
vi配置文件位置:~/.vimrc,可以在里面添加一些命令.
26,Linux系統引導流程:
[圖片上傳中。。。(10)]
說明:1>,固件是介于軟件和硬件之間的,主要作用是加電自檢,檢測硬件的狀態.
2>,Linux系統有兩個時間:一個是date即軟時鐘,一個是固化在CMOS中的硬時鐘hwclock,有時這兩個時間不相同,會出現問題,所以要做時間同步.
當軟硬時鐘一方是對的,那么可以使用hwclock --hctosys(使用硬時鐘同步軟時鐘) | hwclock --systohc(使用軟時鐘同步硬時鐘).
當兩個時鐘都是錯的,那就要分別設置然后同步:軟時鐘設置date MMDDhhmmyyyy.ss,硬時鐘設置 hwclock --set --date="9/22/96 16:45:05"
3>,當POST執行完畢后,進入下一步MBR主引導記錄,位于0磁頭,0柱面,1山區,有三部分組成:bootloader(自舉程序),partition table(分區表),magic number(結束標識字)
4>,grub是Linux的自舉程序,其主要作用是加載Linux的內核,如圖:
[圖片上傳中。。。(11)]
5>,加載完內核后,內核做兩件事:(1),驅動硬件,即在os層面識別硬件,內核中很大一部分都是驅動程序;(2),啟動init進程.
[圖片上傳中。。。(12)]
有圖片可以看出,Linux內核是一個壓縮的可執行文件,位于/boot目錄下.
6>,init進程的工作原理,如圖:
[圖片上傳中。。。(13)]
[圖片上傳中。。。(14)]
注意:pid為1的父進程pid為0,即內核調度器,主要負責cpu時間分配和進程切換.
7>,inittab文件解釋,
[圖片上傳中。。。(15)]
上圖中,2和3唯一區別是,2沒有啟動nfs服務,該服務可以實現Unix和Linux之間文件共享,但是安全性很差;4級別是用戶可以自己定義的級別;5級別是系統默認的多用戶界面模式;6級別是重啟.
8>,查看運行級別和切換運行級別:
查看:runlevel
[圖片上傳中。。。(16)]
切換運行級別: init [0123456Ss] 或者 telinit [0123456Ss] ,其中telinit是init的軟連接,s或S表示級別1,即單用戶模式.
9>,只查看文件中有效的數據,排除注釋,可以使用grep -v "^#" /etc/inittab | more,如圖:
[圖片上傳中。。。(17)]
使用man inittab,查看配置文件的幫助信息,,如圖:
[圖片上傳中。。。(18)]
如圖,當runlevels為空時,表示執行0-6這7個運行級別.
[圖片上傳中。。。(19)]
[圖片上傳中。。。(20)]
[圖片上傳中。。。(21)]
[圖片上傳中。。。(22)]
可以使用ctrl + alt + F1-F6 在X window和命令終端之間切換,ctrl + alt + F8 回到x window.
[圖片上傳中。。。(23)]
上圖中的文件命名有一定的規律:S|K + 數字 + 腳本名稱,其中S表示要啟動的腳本,K表示要關閉的腳本,數字表示優先級,越小的優先執行,如果將S或K寫成小寫的就不會執行了.
總結:
[圖片上傳中。。。(24)]
10>,系統默認安裝的服務位于/etc/init.d目錄下,如圖:
[圖片上傳中。。。(25)]
使用方法:/etc/init.d/文件名,回車會有幫助提示的.
11>,幾種添加自啟動服務的方式:
方式一:使用ln -s,如圖:
[圖片上傳中。。。(26)]
說明:先編寫一個msg.script腳本,然后給這個腳本執行權限,然后將這個文件放到對應的運行級別目錄下,并且做一定格式的命名.
方式二:使用chkconfig,如圖:
[圖片上傳中。。。(27)]
方式三:使用ntsysv,彈出菜單,來關閉服務,如圖:
[圖片上傳中。。。(28)]
12>,使用dmesg命令查看,在內核驅動硬件時的信息,比如:
[圖片上傳中。。。(29)]
13>,grub的配置文件位置:
[圖片上傳中。。。(30)]
文件內容:
[圖片上傳中。。。(31)]
[圖片上傳中。。。(32)]
default=0,默認啟動第一系統,當有多個系統時,該文件有過個title
timeout=5系統等待的時間,單位:秒
splashimage=..是grub的背景圖片(640x480,色深14,因為這時沒有提供顯卡支持),可以修改,其中(hd0,0)就是指第一塊硬盤的第一個分區,這里是/boot分區.
27,[圖片上傳中。。。(33)][圖片上傳中。。。(34)]
28,rpm軟件包管理:
[圖片上傳中。。。(35)]
[圖片上傳中。。。(36)]
不建議使用選項--nodeps,因為這樣依賴于我們即將卸載的其他軟件將不能正常使用.
[圖片上傳中。。。(37)]
ps:(1),在centos6.5中二進制rpm包,位于/mnt/cdrom/Packages目錄下.
(2),rpm -ivh 軟件包的名字,其中-i表示安裝,-v顯示安裝詳情,-h顯示安裝進度.
[圖片上傳中。。。(38)]
ps:(1),--prefix選項一般不用,即使用了,可能也沒效果,因為rpm軟件在制作時已經規定好了,安裝位置;
(2),--test選項很有用,比如查看當前安裝軟件是否需要依賴包,軟件包是否沖突,是否完整等.
[圖片上傳中。。。(39)]
ps:--replacepkgs選項可以覆蓋安裝.
[圖片上傳中。。。(40)]
ps:--replacefiles可以解決文件沖突問題.
[圖片上傳中。。。(41)]
ps:--nodeps 選項可以忽略依賴強制安裝,但是很可能軟件不能使用
[圖片上傳中。。。(42)]
[圖片上傳中。。。(43)]
[圖片上傳中。。。(44)]
[圖片上傳中。。。(45)]
ps:校驗一個文件的信息.
[圖片上傳中。。。(46)]
ps:提取文件
29,yum包管理--自動解決包依賴關系和容易軟件升級.
安裝:yum install 軟件包名,比如yum install sudo
檢查軟件包是否需要升級: yum check-update 軟件包名,比如 yum check-update sudo
升級軟件: yum update 軟件包名,比如yum update sudo
檢查yum源軟件包列表:yum list,比如yum list | more ,yum list | grep samba
軟件包信息:yum info 軟件包名 ,比如yum info sudo
卸載軟件包:yum remove 軟件名,比如yum remove sudo
幫助信息:yum -help,man yum.
30,源代碼安裝的實例:
[圖片上傳中。。。(47)]
其他的軟件安裝都一樣,在安裝過程中可能會報錯,主要是缺少依賴工具或者安裝包.
31,腳本(有shell和java兩種)安裝實例:
[圖片上傳中。。。(48)]
32,用戶管理及相關配置:
[圖片上傳中。。。(49)]
1>,用戶信息文件/etc/passwd的格式:
[圖片上傳中。。。(50)]
用戶分類:
[圖片上傳中。。。(51)]
偽用戶:
[圖片上傳中。。。(52)]
用戶組:
[圖片上傳中。。。(53)]
[圖片上傳中。。。(54)]
查看passwd文件,可以知道其對所有用戶都有讀權限,最早的時候密碼確實位于該文件中,這是很危險的,所以這里只留下一個保留位.
2>用戶密碼文件/etc/shadow
內容格式為:root:$6$EI8VKpMSNee3RaoO$zEZvLD1c5VDKcmliPvRihMmWaoZIPwFHAISTaDwYctlawPU4S3s06BID.aarNxC4jpmKP8dlB/Rm6T7NI9n/D0:16790:0:99999:7:::
[圖片上傳中。。。(55)]
ps:這里的密碼是加密的,如果將密碼刪除,那么用戶就不需要密碼就可以直接登錄,當忘記密碼時,可以將其刪除.
最后一次修改時間:是注冊時間減去1970.1.1之間的天數.
可以使用vi在/etc/passwd和/etc/shadow中手工添加用戶,同時將/etc/skel中的所有文件拷貝到/home/用戶名目錄下.
在終端和遠程登錄之前提示信息,可以在/etc/issue中修改,不要暴露版本號,以防危險;而/etc/motd是在用戶登錄成功后才會顯示的信息.
為什么普通用戶可以修改密碼?
[圖片上傳中。。。(56)]
因為passwd命令有很特殊的權限,當執行命令時,是以root身份執行的.
授予setUID的方式:用戶[圖片上傳中。。。(57)],組[圖片上傳中。。。(58)],同時授予用戶和組權限chmod 6755
3,組文件/etc/group:
[圖片上傳中。。。(59)]
[圖片上傳中。。。(60)]
ps:z組密碼的作用讓不是該組的用戶擁有該組的權限.
3,添加和刪除組的命令的用法:
[圖片上傳中。。。(61)]
4,添加用戶命令:
[圖片上傳中。。。(62)]
[圖片上傳中。。。(63)]
給用戶設置密碼passwd 用戶名:
[圖片上傳中。。。(64)],
5,修改用戶信息:
[圖片上傳中。。。(65)]
[圖片上傳中。。。(66)]
[圖片上傳中。。。(67)]
說明:
pwck:該命令檢查用戶的passwd和shadow文件是否正確
vipw:命令編輯passwd文件,會鎖定文件,別人無法編輯.
6,給用戶組設置密碼和修改:
[圖片上傳中。。。(68)]
[圖片上傳中。。。(69)]
如果幾個用戶對某個目錄有寫權限,那么就可以將這幾個用戶添加到同一個組中,給組寫權限,過程如下:
[圖片上傳中。。。(70)]
7,禁用恢復用戶
[圖片上傳中。。。(71)]
禁用用戶只是在shadow文件的密碼位前面加了!!.
8,刪除用戶
[圖片上傳中。。。(72)]
批量添加用戶:
[圖片上傳中。。。(73)]
ps:newusers < user.info pwunconv chpassed < pass.info pwconv
另一種是使用shell腳本
33,進程管理的一些概念和命令以及技巧:
父進程和子進程之間的關系體現:
[圖片上傳中。。。(74)]
前臺進程和后臺進程的區別:
[圖片上傳中。。。(75)]
進程的狀態:
[圖片上傳中。。。(76)]
[圖片上傳中。。。(77)]
[圖片上傳中。。。(78)]
查看當前用戶登錄信息:
[圖片上傳中。。。(79)]
[圖片上傳中。。。(80)]
其中load average的值除以3,結果小于0.8就認為正常,否則就是負載過重.
查看系統的進程狀態ps以及常用的選項:
[圖片上傳中。。。(81)]
[圖片上傳中。。。(82)]
[圖片上傳中。。。(83)]
[圖片上傳中。。。(84)]
[圖片上傳中。。。(85)]
查看系統中進程的樹狀信息:
[圖片上傳中。。。(86)]
kill殺死進程的原因以及使用方法:
[圖片上傳中。。。(87)]
[圖片上傳中。。。(88)]
改變進程的優先級:
[圖片上傳中。。。(89)]
[圖片上傳中。。。(90)]
[圖片上傳中。。。(91)]
top命令使用:
[圖片上傳中。。。(92)]
[圖片上傳中。。。(93)]
34,linux中的計劃任務命令以及使用:
[圖片上傳中。。。(94)]
[圖片上傳中。。。(95)]
[圖片上傳中。。。(96)]
[圖片上傳中。。。(97)]
[圖片上傳中。。。(98)]
ps : 交互方式想要結束時:ctrl + d
[圖片上傳中。。。(99)]
[圖片上傳中。。。(100)]
[圖片上傳中。。。(101)]
[圖片上傳中。。。(102)]
[圖片上傳中。。。(103)]
時間編輯技巧:把知道的時間按對應的位置填上,不知道的用通配符*代替
[圖片上傳中。。。(104)]
[圖片上傳中。。。(105)]
其中standalone是駐留系統中,占用資源,接受客戶端的請求,比如tomcat等(響應快,大量的訪問).
xinetd/inetd互聯網守護進程,對應/etc/xinetd.d目錄,當對應端口的請求發過來時,啟動對應的服務接受請求,然后關閉服務.
34,文件系統構成:
[圖片上傳中。。。(106)]
[圖片上傳中。。。(107)]
[圖片上傳中。。。(108)]
df -h 更符合人的閱讀習慣,df -m 以兆字節顯示
du -sh /etc統計目錄或者文件大小
[圖片上傳中。。。(109)]
[圖片上傳中。。。(110)]
塊設備(b),字符設備(c)--打印機
[圖片上傳中。。。(111)]
假如新添加的硬盤位sdb,那么使用dMsg | gerp sdb就可以看到對應的信息了
fdisk -l /dev/sdb和dMsg差不多
fdisk /dev/sdb分區:m--幫助,p--打印分區表,n--添加新的分區,t--改變分區文件系統類型,w--保存退出,q--退出不保存
mkfs.ext4 /dev/sdb1格式化文件系統
mount /dev/sdb1 /web 掛載分區
文件/etc/fstab說明(六部分組成):
[圖片上傳中。。。(112)]
物理分區/卷標 掛載點 文件系統 缺省設置 系統啟動時是否檢測(1:檢測,0:不檢測) 啟動順序(0:不啟動,1:優先啟動,2:其次啟動)
例子:[圖片上傳中。。。(113)]
查看是否有卷標:e2label /dev/sdb1,輸出為空既沒有卷標,指定卷標:e2label 分區路徑 卷標名
手動增加swap空間大小,步驟如下:
[圖片上傳中。。。(114)]
bs:塊大小 count :文件大小
磁盤配額實驗:
[圖片上傳中。。。(115)]
2中的-cvuga 表示為所有分區創建用戶用戶組配置文件并輸出詳細信息.
[圖片上傳中。。。(116)]