- 論壇徽章:
- 0
|
linux 學習筆記
非常感謝牛海峰(JohnBull)老師,您是我的linux啟蒙老師。
linux入門很重要,剛開始自學linux時懵懵懂懂好不容易裝好了linux,大喜過后一臉無奈,這是哪跟哪呀~~~~~~里面的所有東西都不知道怎么用,自信對window有研究的我在linux前手足無措,在給linux相了一天面后還是格掉了 此后開始看書,慢慢的找感覺~~~~~~~~~~~一直到長城開始系統(tǒng)的學才自以為找到了感覺(也就是入門了)。
自我評價:學習linux找感覺最重要,不管是看書還是自己安裝后琢磨,堅持著看和做,肯定能成。
Linux安裝:
安裝linux并不是很難,一般用光盤安裝,安裝時硬盤默認分為三個:引導分區(qū);根分區(qū);交換分區(qū);分區(qū)弄明白了安裝也就沒什么障礙了。
還有從硬盤安裝,我當初從硬盤安裝linux時頗費一番周折,附硬盤安裝原文: http://www.72891.cn/viewthr ... p;extra=&page=1
注:裝linux是要寫規(guī)范主機名。如host.abc.com
作服務器時系統(tǒng)CMOS時間應設為格林威治時間,即國際標準時間
linux基本命令:
掛接:單根文件系統(tǒng)使用多個設備的方法。
mount 設備 掛接點
dmesg | grep cd 此命令可看光驅在哪
( 當老師講到這里的時候機器出了點故障,鼠標不動了,老師用了一個命令就使鼠標復活,第一次感嘆linux的神奇啊~~~~~原來鼠標還可以重起(windows下還真沒想過)
順便把老師用的命令也抄了下來,呵呵多學了個竅門
重啟鼠標命令: /etc/rc.d/init.d/gpm restart
)
解除掛接:umount 掛接點
軟盤寫法: /dev/fd0
SCSI硬盤寫法:/dev/sd(a)括號內(nèi)可以依次排為b cd…….
USB硬盤SATA硬盤系統(tǒng)都做SCSI硬盤對待。
SCSI光驅寫法:/dev/scd(0)括號內(nèi)為數(shù)字零依次后派
USB口的光驅也被認為SCSI光驅。
注:只有先解除掛接可移動設備才可拿出來
shell和文件系統(tǒng)
shell命令: unix中絕大多數(shù)都是外部命令。內(nèi)部命令常用的有cd 很少
dos | shell
dir | ls
type | cat
cd | cd
md | mkdir
rd | rmdir
del | rm
copy | cp
ds | dear
attrib | chown charp chmod
此上命令除了cd 全是外部命令
最重要的命令: man 主題
主題可是shell命令也可是配置文件,還可是C語言函數(shù),但有時shell命令和配置文件相同時打入命令怎么辦呢,此時用參數(shù)
man 1.命令 2.系統(tǒng)函數(shù) 3.標準庫函數(shù) 5.配置文件
例:查passwd 默認 man passwd 會查到
man passwd(1)命令
此時要用 man 5 passwd 可查配置文件
模糊查找(匹配)參數(shù): -k 例 man –k PPP 和大多數(shù)unix中一樣k為小寫.
第二個重要命令: vi 文件名 (文本編輯器)
它有三種工作模式,缺省為”命令模式”
輸入I 進入”插入模式” 按ESC回到命令模式
常見命令: 刪一個字符 x
刪除一行 dd
恢復操作 u
復制 yy (光標在哪一行將復制哪一行)
粘貼 p (粘貼在光標下面)
在vi重復輸入一些命令時,在前面加數(shù)字 如插入100個a 則在命令模式下先輸入100 按I輸入一個a 回到命令模式則會有100個a被插入 5行東西重復3次則輸入5yy3p 存盤退出用大寫ZZ
“末行模式”常見是搜索字符.用”/”在命令模式下輸入
“/”加字符串.在手冊中也能用
“;”會引發(fā)末行模式.可用”;”跳到某一行”;”加數(shù)字可直接到那
“;”還可用與文件操作
“;q”可直接退出
“;q!”強制退出
“;w”存盤不退出
“;wq”存盤退出
“;recover”可在出現(xiàn)以外后修復文件
“;w 文件名”另存為
shell命令的敲法:
命令 參數(shù)1 參數(shù)2
參數(shù)定界:用到” ‘ ‘”(單引號) 用單引號括起的如’abc def ‘是告訴shell消除語法歧義
如要建一文件叫 jack’s daily 卻不能用單引號了,此時得用”\”應寫為: 例如:
touce jack\’s\ daily
“\”為轉意字符,取消反斜杠后一個字符的特殊含義
文件系統(tǒng)
在unix中”.”無特殊含義
unix下區(qū)分文件類型的命令 file
unix下是靠文件的頭部說明來區(qū)分文件格式,所以操作系統(tǒng)不會理會擴展名的
(exe文件頭兩字母是MZ)
mount 直接回車是顯示當前所mount的狀態(tài)
df 察看磁盤利用狀態(tài) 磁盤分區(qū)
du –h +子文件名 檢測文件系統(tǒng)子目錄所占空間
pwd查看當前子目錄
unix下一個文件可以不可讀而可執(zhí)行,對于子目錄而言x就是另外一層含義了,稱之為檢索。對子目錄而言r就是列表權
(經(jīng)驗:不要安裝基于文本界面的多媒體應用程序)
如何修改權限
修改屬主: chown [-R] 新屬主 文件
-R: 將文件夾中的所有文件也更改掉
修改屬組: charp [-R] 先屬組 文件
修改權限: chmod [-R] 新權限 文件
新權限有兩種表示方法:
(1) 直觀: 如 rw-r—r—
數(shù)字 6 4 4
110100100
(2)字母法: 如 rw-r--r--
u g o
修改文件的訪問權限不必非得是root,文件屬主也可以
windows文件權限策略是ACL,側重與靈活性; unix文件系統(tǒng)策略是權限位,側重用效率;
linux所有權限都放于一個16位的短整數(shù)里
linux特有功能(ext2 ext3所體現(xiàn)的):
列出所有權限命令:lsattr
設置特殊權限: chattr
連接:
硬連接:硬連接本質(zhì)使一個文件有兩個文件名和windows不同windows中文件屬性和文件名是放在一塊的,而linux文件名僅是文件名
命令:ln 原文件名 新文件名
硬連接有兩限制:(1)不能給子目錄建硬連接
(2) 不能跨文件系統(tǒng)建硬連接(即不能跨分區(qū))
在unix下刪除一文件的本質(zhì)是斷開一個硬連接,系統(tǒng)會將硬連接數(shù)減一,只要不為0則保留文件體。
符號連接:(路徑跳轉)
命令: ln –s 跳轉去向 連接名
注:建符號連接得用絕對路徑。寫絕對路徑此時可建成的在tem下看到的連接是紅色的。“à”后面指向的僅一個services但在當前目錄即tem下卻沒有這個文件此時便出錯了。
注: 符號連接可跨分區(qū)建立
shell
shell 使用: 在unix下常用的是bash
功能:(1)自動完成 按tab鍵支持路徑,在參數(shù)位置上按tab會補齊文件名,按兩下tab鍵便可看所有系統(tǒng)命令。
(3) 命令歷史:按↑↓ 可查看所打過的歷史命令。注:在用戶文件夾下有個bash-histroy保存有上次使用的命令。
非shell功能, 虛擬終端功能:按alt+f1~f6切換
鼠標粘貼:左鍵選擇右鍵粘貼,可跨終端。
*shell如何運行外部命令:
進程:一個正在運行的程序就是一個進程(不嚴密的解釋)
派生:系統(tǒng)的所有進程都是由一個進程派生出來的
shell有一個父進程當接到一個命令時會產(chǎn)生一個子進程,而shell則進入休眠狀態(tài),等待子進程結束,子進程完后交給父進程一信息,父進程激活等待。
后臺運行命令: 命令 &
作業(yè)控制:ctrl+z 把前臺作業(yè)掛起(暫停)掛起后都會保存在內(nèi)存中。
怎么知道有作業(yè)呢?用jobs命令
fg + 作業(yè)號 是把后臺暫停作業(yè)調(diào)回前臺
bg + 作業(yè)號 是把前臺作業(yè)換到后臺
shell的基本配置:
bash的基本配置是由配置文件組成的./etc/profile稱之為shell的全局配置文件。
另外一個文件在個人的目錄下 個人目錄/.bash-profile
還有個文件在個人的目錄下/etc/bashrc 是第二個全局配置文件,保存的是(函數(shù)別名等)在個人目錄下也有個配置文件~/.bashrc
etc下的文件是全局文件,一經(jīng)修改所有的用戶設置都改了
shell的具體概念:
環(huán)境變量: 變量名=變量值 例: LANG=en 是設置語言為英文
LANG=zh-CN.GB18030是設置語言為中文
通過設置shell的變量來決定子進程繼承什么樣的值。
{變量名=變量值
export 變量名
可簡化為 export 變量名=變量值 注:export 不能省略,另外此時定義的變量是當前shell的值,一旦注銷便沒有了,想固化得修改profile文件
命令env 可查看所有環(huán)境變量里面有個path非常重要,它定義了shell命令執(zhí)行的路徑。
Linux下命令執(zhí)行僅搜索path路徑,不會搜索當前目錄的外部命令,所以在當前目錄下要執(zhí)行當前目錄中的命令需要加”./”命令。
3.引用變量的值: $變量名 例:export PATH= $PATH:/etc/xxx
例如:echo $LANG echo 回顯命令 可察看LANG的值
例 export CMD =ls
$CMD –l 等于ls –l
shell管道與重定向
一個進程的缺省標準輸入輸出分為標準輸入;標準輸出;標準錯誤輸出三個管子。
控制終端:缺省情況下進程的三個管子通向控制端
輸入重定向:命名 < 文件名 解釋:原來要從終端讀取的命令改成從文件讀取。
例如:cat < /etc/hosts 則cat讀取的文件不是從鍵盤而是從hosts文件,cat不知道所要讀取的標準輸入輸出被換成/etc/hosts和cat /etc/hosts不一樣,此時是cat直接讀取hosts
輸出重定向:(1)命名 > 文件名 原來要輸出到終端的命令改成輸出到文件
(此時叫覆蓋式重定向)
(2)命名 >> 文件名
(追加式重定向)
例如: gcc 命令 0:標準的輸入
1:標準輸出
2:標準錯誤輸出
解釋linux最精簡的一句話是:linux下一切都是文件。
管道:匿名管道,unix傳統(tǒng)進程間通信。
寫法: 命令1 | 命令2
命令2處經(jīng)常出現(xiàn)的是more 或 grep
例如: cat /etc/services | grep ‘http’ 意思是包含有http的輸出
jinscan
老師在講shell中穿插講了硬盤分區(qū)和格式化
磁盤的分區(qū)格式化
分區(qū): fdisk -l 列出分區(qū)表
fdisk 磁盤而不是某分區(qū) (/dev/had)
command :p 看分區(qū)
n 新建分區(qū)
d 刪除分區(qū)
q 不保存退出
w 保存退出
生成文件系統(tǒng)(格式化)
mkfs (make file system)
mkfs -t ext2 /dev/hda5
mkfs -t ext2 –j /dev/hda5 :格式化成ext3格式
掛接:mount /dev/hda5
shell 腳本本身就是程序,是用shell命令構成的,小規(guī)模、結構化、模塊化、程序設計。
命令: echo 輸出信息用
read 輸入信息 read+ 變量名
sleep 休眠 sleep+ 秒數(shù)
在終端上算數(shù)表達式寫法: echo $ ((1x2x3))這是整數(shù)運算不能帶小數(shù)點。
/ :除
% :余
shell腳本格式:
第一行必須是 #!/bin/sh
有三種結構 順序結構 分支結構 循環(huán)結構
順序結構
wait 命令 保證進程同步 等待一個子進程結束 多個并發(fā)就用多個wait
例如: #!/bin/sh
echo “1”
sleep 5&
echo “3”
echo “4”
wait
echo”5”
分支結構
if 判斷 ; then
T塊
Else
F塊
fi
判斷 test語句 test 表達式 = [表達式]
表達式進行文件判斷 -f 文件名(檢測該文件是否存在且為普通文件
-d 目錄名
-r 可讀
-w 可寫
-x 可執(zhí)行
這些例子由于年久失修(筆記上標注不完備,過后有忘了的地方)錯誤之處請多多包涵
例如:
#!/bin/sh
echo “file”
read FileName
if [-f $FileName]; then
echo “yes”
else
echo “no”
fi
字符串比較 相等 串A =串B
不等 串A!=串B
-z 判斷字符串是否為零 空為真 非空為假
數(shù)值比較: 大于 等于 小于 不等于
a > b $A –gt $B
a≥b $A –ge $B
a≤b $A –lt $B
a=b $A –le $B
a≠b $A –ne $B
邏輯比較: 條件A –a 條件B(與)
條件A-o 條件B (或)
!條件 (非)
例如:
#!/bin/sh
read MARK < /proc/sys/net/ipv4/ip_forward
echo $MARK
if [ $MARK = “0” ]; then
else echo “host”
echo “GATEWAY”
fi
‘ ‘ 反單引號: 如果反單引號后面有語句則將里面的語句運行完后將結果替換此處
例如:
#!/bin/sh
u=id –u
if [$u = ‘0’] ; then
echo “hello”
else
echo “permission denied”
fi
再例如:
#!/bin/sh
echo “username”
read userNAME
MARK = ‘cat /etc/passwd | grep ‘$userNAME:’
積極if [ -z $ MARE] ; then
echo “NO”
else
echo “YES”
fi
多分支結構
case 字符串 in
串1) 塊1
;;
串2) 塊2
;;
.
.
.
*)
esac
例如:
#!/bin/sh
echo “command”
read CMD
case $CMD in
start)
/etc/rc.d/init.d/named start
;;
stop)
/etc/rc.d/init.d/named stop
;;
estart)
/etc/rc.d/init.d/named stop
/etc/rc.d/init.d/named start
;;
*)
echo “usage : $0 {start|stop|restart}
;;
esac
*知識點: . 腳本 讓shell不打開子進程,在當前shell進程中運行腳本
看腳本切忌一行一行的看,要一層一層的看,就像剝玉米.
Shell腳本
循環(huán) 1)當形循環(huán)
2)條件循環(huán)
while 判斷; do
循環(huán)體
done
例如:
#!/bin/sh
i = 0
while [ $i –lt $n] ; do
j=0
while [ $j –lt $ (($i+1))] ; do
echo “\*”
j=$(($j+1))
done
echo
i=$(($i+1))
done
定時循環(huán) 00:00:00: 1970-01-01 utc 稱之為unix元年
data +%s 是取從unix元年至少過了多少秒
date +%H:%M:%S 顯示時分秒格式
例如:
#!/bin/sh
intime = ‘date +%S’ –le $ [ (intime+5)] ; do
echo “.” ##echo后面加-n 輸出就不回車了,橫向輸出
done
利用date命令可以方便的實現(xiàn)定時循環(huán)
shell風格的循環(huán) for 循環(huán) (枚舉循環(huán))
格式 for 變量名 in 值列表 ; do
循環(huán)體
done
##值列表:核心部分,一系列由空格分開的字符串
例如: #!/bin/sh
for n in asd 4r3 56h er34 657 tr ger ; do
echo $n
done
要自動下載列表中的東西編shell的
#!/bin/sh
cd /tmp/dl
for url in cat /etc/urls ; do
wget $url
done
>/etc/urls
補充知識: 參數(shù)傳遞
命令 參數(shù)1 參數(shù)2 …………
例如:
#!/bin/sh
n=$1
i=0
while ($i-lt $n); do
echo “xxxx”
ii= $ (($$+1))
done
$0 $0就是命令本身
編后:此處講的都是基本的shell應用,老師推薦看《bash編程》
Linux系統(tǒng)管理
1. 用戶管理
添加賬戶 useradd 用戶名
passwd 用戶名
groupadd 組名 usedel -r 用戶名
/etc/group /etc/passwd /etc/shadow 三個重要文件
group 文件 格式: 組名:x :組ID:組成員
passwd文件 格式: 用戶名:x:用戶ID:組ID::用戶目錄:shell
用戶在passwd文件中體現(xiàn)的組關系稱為用戶組屬組,而在group組中體現(xiàn)的是額外組。
false:運行起來就是個恒假。正確利用false給用戶,將false添加到/etc/false下用戶名字后這樣用戶就被拒之門外。如mail用戶 通過修改用戶的shell來限制用戶登陸提高網(wǎng)絡安全性。
top命令:察看機器負載情況
which命令:查看外部命令的路徑
top被弄成用戶shell時切記在linux下可用,因在linux下top是安全模式的,而在其他unix中并不一定安全,通過敲擊熱鍵可能會打出一shell。
shadow文件 shadow里面的口令是散列,散列是不可逆的
批量添加150個用戶 u001—u150
#!/bin/sh
i=1
while [$i–le 150] ; do
if [ $i -lt 10] ; then
uname =u00$i
else
uname=u$i
fi
useradd $uname
i = $(($i+1))
done
passwd 命令規(guī)定只能在終端上手動輸入,只有用stdin參數(shù)便可解決
作業(yè): 從一表中將已知用戶名導入useradd
2.網(wǎng)絡配置
linux 下有兩套網(wǎng)絡配置,第一套為BSD方式,另一套是linux方式。linux中高級網(wǎng)絡功能只能用linux方式。
BSD方式:1.查看 ifconfig 網(wǎng)卡名 BSD中必須指定網(wǎng)卡名
注釋:
collisions 沖突 txqueuden 發(fā)送包的長度
網(wǎng)卡工作模式 mii-tool 媒體無關接口
ethtool+網(wǎng)卡名 查看命令更詳細(需要網(wǎng)卡驅動支持)
netstat –r 查看路由
查看網(wǎng)絡連接狀態(tài)
netstat -ant 查看TCP的所有網(wǎng)絡連接
-anu 查看UDP的所有套接字
一條TCP連接會產(chǎn)生兩個套接字,兩臺機器均開。
ARP -n -n意思是不要進行反解 不轉成名字
查看DNS cat /etc/resolv.conf
2.配置IP
ifconfig 網(wǎng)卡名 ip地址
配置路由 route add -net 網(wǎng)絡地址 netmast x.x.x.x gw 網(wǎng)關
route add -host 網(wǎng)絡地址 netmast x.x.x.x dev 網(wǎng)卡
route del -net 網(wǎng)絡地址 netmast x.x.x.x gw 網(wǎng)關
route del -net 網(wǎng)絡地址 netmast x.x.x.x dev 網(wǎng)卡
缺省寫法: route add default gw 網(wǎng)關
route add default dev網(wǎng)卡
靜態(tài)ARP arp -s IP地址 MAC地址
linux 方式:
ip 命令
ip addr show 查看IP地址 簡寫為 ip ad sh
ip route sh 查看路由 簡寫為 ip ro sh
ip neigh sh 查看靜態(tài)ARP 簡寫為 ip ne sh
ipv6中取消了ARP 改用ICMP
具體配置:
ip ad add dev ip地址/掩碼長度
ip route add ip地址/掩碼長度 dev 網(wǎng)卡
ip route add ip地址/掩碼長度 via 網(wǎng)關地址
激活/禁止某網(wǎng)卡
ifconfig dev down/up
linux下的:
ip link set up dev eth0
ip link set down dev eth0
此設置都是臨時的,固化網(wǎng)絡配置,在linux下 主機名/缺省網(wǎng)關: 修改路徑
/etc/sysconfig/network
如果修改主機名順便把hosts文件也得改 /etc/hosts否則有時服務會啟動時掛起死等~~~~~~~~~~~~~~~~
固化IP 地址 /etc/sysconfig/network-scripts下的ifcfg-網(wǎng)卡名
例如: /etc/sysconfig/network-scripts/ifcfg-eth0
bootprotocol= static ##如果用動態(tài)IP則改成DHCP
ONBOOT=yes ##啟動時激活,設置思想:作為外網(wǎng)網(wǎng)卡應該為NO,因防火墻啟動之前將網(wǎng)卡先期啟動會有被攻擊的危險
靜態(tài)ARP固化
/etc/ethers
寫法: mac ip 例如 : 01:02:03:04:05:06 10.0.0.2
(小知識點:
萬用腳本:/etc/rc.local 不管什么命令只要加在此,下次開機后便會自動運行,相當于autoexec.bat。在用戶登陸之前便已經(jīng)運行,注:在此文件中加命令時不可阻塞,如果命令執(zhí)行時間過長則加“$”將其弄到后臺執(zhí)行。
3.計劃任務 在linux和unix下是cron服務來實現(xiàn)的,每隔一分鐘檢查一次任務列表。
/etc/crontab
crontab 命令 -l (list)
-e (edit)
寫時間格式:時分日月周 命令
例如:
05 5 * * 1,3,5 ##每周一三五運行
技巧:計劃任務可用”,”“_””/”給分開
如果計劃任務不執(zhí)行此時主要原因是路徑不對,看crontab便可知,PATH寫的便是,第二原因是終端:不能讀標準輸入和寫標準輸出,但可用重定向往文件中寫可以,不能使用終端如果要修改crontab文件則需要先停止cron服務。
/etc/rc.d/init.d/crond stop
修改~~~~~~~~~~~~~~~~~
/etc/rc.d/init.d/crond start
linux配置:4.top 命令詳解&進程管理
top 命令查看系統(tǒng)的資源狀況
load average 表示在過去的一段時間內(nèi)有多少個進程企圖獨占CPU
zombie 進程 :不是異常情況。一個進程從創(chuàng)建到結束在最后那一段時間遍是僵尸。留在內(nèi)存中等待父進程取的東西便是僵尸。任何程序都有僵尸狀態(tài),它占用一點內(nèi)存資源,僅僅是表象而已不必害怕。如果程序有問題有機會遇見,解決大批量僵尸簡單有效的辦法是重起。kill是無任何效果的
stop模式:與sleep進程應區(qū)別,sleep會主動放棄cpu,而stop是被動放棄cpu ,例單步跟蹤,stop(暫停)的進程是無法自己回到運行狀態(tài)的。
cpu states :
nice: 讓出百分比 irq :中斷處理占用
idle:空間占用百分比 iowait:輸入輸出等待(如果它很大說明外存有瓶頸,需要升級硬盤(SCSI))
Mem: 內(nèi)存情況
設計思想:把資源省下來不用便是浪費,如添加內(nèi)存后free值會不變,buff值會增大。 判斷物理內(nèi)存夠不夠,看交換分區(qū)的使用狀態(tài)。
ps命令 列進程。列出所有進程
ps ax :tty值為“?”是守護進程,叫deamon 無終端,大多系統(tǒng)服務是此進程,內(nèi)核態(tài)進程是看不到的,例木馬
看進程樹,以樹形方式現(xiàn)實進程列表敲 ps axf
init是1號進程,系統(tǒng)所有進程都是它派生的,殺不掉
ps axm :會把線程列出來
在linux下進程和線程是統(tǒng)一的,是輕量級進程的兩種方式。
ps axu :顯示進程的詳細狀態(tài)。
vsz:說此進程一共占用了多大物理內(nèi)存。
rss:請求常駐內(nèi)存多少
終止進程: kill pid 本質(zhì)是協(xié)商退出。ú⒉皇菑娭仆顺觯
全: kill -信號 pid
kill –KILL pid 是強制退出。
例如編寫一kill殺不掉的程序
#!/bin/sh
while true j do
echo –n “.”
sleep 1
done
#!/bin/sh
trap “”15 ##捕獲15號進程,kill就是15號進程
while true j do
echo -n “.”
sleep 1
done
修改進程優(yōu)先級:
nice 命令 每個進程都有優(yōu)先權,權值越小優(yōu)先級越高。
nice –調(diào)整值 命令 ##范圍“-20~19”
linux圖形界面的優(yōu)先級并不是最高的,它僅是一進程
nice命令在root下可隨意調(diào)整,在普通用戶狀態(tài)下只能調(diào)低不能提高,不過還是可以恢復回去的。
局限性:必須敲命令之前敲nice ,它無法更改已經(jīng)運行的程序的優(yōu)先級。
如果要更改已經(jīng)運行的用 renice 調(diào)整值 pid
即在線調(diào)整。
killall 命令: 殺死一系列進程,即殺死一系列由一個相同命令產(chǎn)生的進程例如killall fam
killall是根據(jù)命令名來殺的,kill以pid 來區(qū)別。
在top 里面可以直接殺死進程,按“K“輸入PID可殺
按“R“可調(diào)整優(yōu)先級
BSDunix 定義了32個信號 linux定義了64個信號。
5. 啟動管理
啟動順序: BIOS -> MBR -> 啟動扇區(qū)
MBR : 掃描分區(qū)表看哪個是可啟動分區(qū),再將那個扇區(qū)放入內(nèi)存。
GRUB有兩種裝法: 1. MBR 2.啟動扇區(qū)
GRUB有兩個基本技巧:
(1). 單用戶啟動模式: 見到GRUB啟動菜單時按“e“選”“kernel“打頭的那一行,再按“e”,然后在/ rhg后面加空格+“1” 再按“b”便以單用戶模式啟動了,輸入init 3便進入正常啟動模式。
在單用戶模式下可以更改root口令,有很大危險。
防護方法: 給grub加口令
vi /etc/grub.conf ##在timeout后添加一行
password=1234567 ##密碼
使生效:敲grub回車 等待一會 再敲quit
(2). GRUB—> linux內(nèi)核 -> init進程 ->
1.進程指令運行級
2./etc/rc.local
3.虛擬終端
init配置文件 /etc/inittab
里面有一說明 0 –halt
1- single
3- full mutiluser
5- X11
id:5:initdefault ##缺省進入5 X11模式
si::sysinit:/etc/rc.d/rc.sysinit ##系統(tǒng)啟動以后調(diào)用的第一個腳本,即init進程所調(diào)用的
trap ctrl – alt –delete
ca:ctrlaltdel:/bin/
在文字界面下敲init –q 來使配置 立即生效
注:屏蔽三鍵熱啟動是非常重要的
虛擬終端的添加/減少也在此修改(數(shù)量修改)
如果想把linux弄成指紋識別的替換掉getty和bgin即可。
6.文件包管理
文件包有 RPM包 源碼包 二進制包
rpm包格式: 軟件名-版本.平臺.rpm
在http://rpmfind.net幾乎可以搜索到所有的rpm包
rpm包的安裝: rpm - i 軟件名.rpm
rpm -i –nodeps 軟件名.rpm ##不考慮依賴關系的安裝
檢查某個rpm包是否安裝用此命令: rpm –qa | grep 包名
刪除已安裝rpm rpm -e
強制刪除: rpm –e –nodeps 軟件名
源碼包:
格式: 軟件名-版本.tar.gz/軟件名-版本.tar.bz2
在進行源碼處理的時候都要將源碼拷在此處:/usr/load/src
解包:
tar –zxf 名稱 ##gz解壓
tar –jxf 名稱 ##bz2的解壓
運用:
進源碼包 à第一步 ./configure ##配置
第二步 make ##編譯
第三步 makeinstall ##安裝
大多書軟件都安裝到了/usr/local下
二進制包:
大多數(shù)都給制成一可執(zhí)行文件,直接運行即可,而大多數(shù)都要求在X11下安裝
例:java虛擬機的安裝 (不是開放源碼的包)
7.GUI
linux下的圖形界面和windows圖形界面的區(qū)別有哪些
linux X是一協(xié)議,規(guī)定了unix下圖形終端,至今為X11R6 用XFree86軟件包來實現(xiàn)的,分為圖形終端和圖形主機,圖形終端為X服務器
大寫X回車便啟動一個圖形終端,監(jiān)聽6000端口
X協(xié)議是可以基于TCP工作的,也可不基于TCP工作
XFree86提供了一個完整的服務器和幾個常用的基本程序
主機配置à在系統(tǒng)設置->登陸屏幕->把XDMCP啟用,注銷一次
主機 netstat –anu 查看177/udp
終端上敲: X –query 10.0.0.1回車
如廣播域中有好幾臺X主機則用X –broadcast
在文字界面想進如圖形界面敲 init5
快捷鍵
ctrl + alt + “ +”
“-”可動態(tài)調(diào)整分辨率
ctrl + alt + “←”可強制退出圖形界面,在linux下X也僅僅是一個進程。
ctrl + alt + “F1~~~F6”回到文字界面
8硬件管理
查看CPU類型: /proc/cpuinfo
查看pci設備: lspci 表中能看到但linux不一定能驅動
查看usb設備: lsusb -v 顯示詳細列表,甚至電壓都有
設備驅動情況: dmesg
在proc目錄下有很多常用命令,在此還有以進程號為名的目錄,可在目錄中查看進程路徑,在純unix中僅有以進程名的子目錄,在linux中多些系統(tǒng)配置
9.磁盤配額
基本要點:1.針對某個分區(qū)(ext2、ext3、reiser、…fat不支持)2.對于塊的使用/文件個數(shù)限額
步驟:1.不考慮限額情況下把分區(qū)掛好
2.進入掛接點 做 : 目的: 對u1限10M 1000個文件。
對兩個文件 touch aquota.user aquota.group 加個“a”即高級
將兩個文件屬性改成600 chmod 600 aquota.user aquota.group
3.修改etc下的fstab vi /etc/fstab
在hda5這一行的defaults后面加一逗號寫上usrquota,grpquota ##基于用戶和組的限額。
4.重新掛接該點 mount - o remount /home ##不關機的前提下重新掛接一次
5.啟用限額 quotacheck –u –g /home ##意思是啟用之前檢查此點的使用情況(經(jīng)驗:做限額要拿新分區(qū)來做)
quotaon -u –g /home(前五步是一次性的做完即好)
6.設置限額 edquota –u u1 回車后出現(xiàn)一表
解釋表:
block – 以塊為單位,已用了多少
soft/hard 軟/硬限額
inodes 文件實體
修改后存盤退出即可。
edquota命令還有一種非交互性的
edquota –p 原型用戶 -u 用戶名 ##即將原型擁護的限額復制給新用戶。
10.日志管理
1./var/bg/messages 此為主日志文件。注:出現(xiàn)服務器異常時要去看日志文件,調(diào)試服務器失敗第一反應應去查看日志,而不是重裝系統(tǒng)
2.syslog服務 命令: logger 例如:logger hello 便向日志文件添加一行“hello”
日志配置文件:/etc/syslog.conf
格式: 消息分類 消息去向
來源.級別 /var/log/
常用技巧:就地打印日志 將日志寫到/dev/lp0 行式打印機打印出去
*遠程日志: syslog服務器
配置syslog服務器
例如: 10.0.0.1為syslog服務器 10.0.0.111 為客戶機
步驟: 1.服務端配置
vi /etc/sysconfig/syslog
sysLOGD_OPTIONS = “-r –m 0” ## -r 意思是接受遠程的日志
重起/etc/rc.d/init.d/syslog restart
2.客戶端配置
vi /etc/syslog.conf
在消息去向處添加 @10.0.0.1
存盤退出重起服務
/etc/rc.d/init.d/syslog restart
(知識點:直接查看日志尾部: tail /var/log/messages)
日志服務使用的端口是:514/udp
syslog日志服務器端不能根據(jù)源地址過濾,為了防止外網(wǎng)向日志服務器寫垃圾信息要在網(wǎng)絡拓撲中解決,網(wǎng)關上做限制外網(wǎng)訪問514端口。
完! |
|