2012-11-20
1、red hat 發佈版的安裝
啓動時輸入 boot: linux askmethod 選擇能夠經過硬盤或者網絡安裝。
boot:
linux dd driver disk 安裝 如服務器安裝時需首先安裝陣列卡驅動
linux ks kickstart 安裝 無人值守安裝方式,原理直接配置文件安裝,如:boot: linux ks=nfs:192.168.0.254:/var/ftp/pub/ks.cfg
二、分區:/boot 200M 必須
swap 分區爲內存的1到2倍
/ 根分區(需求不明確時能夠把剩的空間劃分爲上述分區,若有需求如需安裝oracle,能夠需劃分u01等分區)
上述爲三個基本分區!
三、boot loader password 需設置,否則root密碼形同虛設。
四、安裝過程當中,ctrl+alt +F1 ---F7 之間切換 返回命令界面
五、linux 內核位置:/boot/vmlinuz-2.6.9-22.EL
界面轉換:authconfig
2、linux操做系統的基本結構:
一、kernel 內核
uname -a 查看kernel的版本號!
二、modules 模塊 三、 lib 庫 四、app 應用程序
不一樣控制檯之間發送消息:
echo AAAAA> /dev/tty1
who am i 查看當前登陸的用戶
w 查看控制檯/或登陸用戶
skill 掉某個用戶或終端命令:skill -9 pts/2
默認爲6個終端,修改如下配置文件能夠更改:vi /etc/inittab
vi 退出保存 :wq
啓動Xwindow :startx 啓動第一個xwindow
startx -- :1 啓動第二個xwindow
3、linux命令:
一、shell 的內部命令:shell 自己提供的功能
提供幫助方法:help
二、shell 的外部命令:由外部文件提供
提供簡單幫助方法:命令+ --help
man +命令 提供詳細的幫助方法
使用方法 :搜索 /+關鍵字 或?+關鍵字 n向下滾動,shift+n 向上滾動
man 7 man 查看 共9種類型文件
info 幫助命令,使用得較少,與man類型,但比較詳細。
三、linux 命令的習慣:
一、命令及參數區分大小寫;
二、程序能否執行與擴展名無關;(添加chmod x 權限便可)
三、使用tab鍵來補全命令
四、善用尋求幫助形式。
一些快捷鍵:
ctrl +c 直接暫停 ctrl+z 直接丟後臺暫停 ctrl +l 清屏
4、文件操做命令:
一、touch 建立文件 ,更新文件,touch /etc/{a,b} 建立兩個文件。
mkdir 建立文件夾
rmdir 刪除文件夾 (只能夠刪除空的文件夾)--較少用
查看文件屬性詳細信息命令:stat 如:stat a
前面帶點的文件爲隱藏文件,如.a ,查看時需這樣操做:ls -a
查看當前目錄:pwd
二、ls 查看文件
ls -F 查看文件類型,如文件夾爲/a ,帶@爲連接文件 ,帶 *號爲執行文件。
三、mv 移動或重命名
mv b c 更換b文件爲c名
四、 rm 刪除
rm -f 刪除一個文件不須要確認
rm -r 刪除一個文件夾
rm -rf 刪除一個文件夾包括裏面全部文件,不須要詢問
五、. 表明當前目錄 , .. 表明當前目錄的上一級目錄, cd - 回到上一目錄
六、 cat 查看文件內容,more和less也是查看文件內容
more能夠一頁一頁查看,但只能往下翻;
less 也能夠一頁一頁查看,能夠上下翻;
七、vi 命令
q!不保存退出
u 撤消
ctrl + r 重作
八、alias 別名
如定義一個別名:alias ii ="ls -l"
刪除別名: unalias ii
九、 重要,關於配置文件,vi ~/.bashrc
十、添加用戶:
useradd ming (添加用戶時需設置密碼才能夠登陸)
passwd ming 如不加用戶名即修改當前用戶的密碼
十一、su ming 在當前界面切換賬戶,
su - ming 切換到另外一賬戶
6-3 系統命令初步
查看計算機信息:
一、hostname 查看計算機名,更改時直接後面加上計算機名(重啓不生效),更改如下配置文件永久生效:/etc/sysconfig/network
二、更改IP信息:
ifconfig eth0 192.168.1.80 (重啓不生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0 (更改配置文件)
netconfig
service network restart (netconfig 後重啓服務生效)
三、id
root 的id爲0 組id也是爲0
四、date
date +%d 顯示日期
date +%m%d 顯示月份日期
如建立 一個以時期命名的log:touch `date +y%m%d%`.log
五、file 查看文件類型(詳細)
file a
六、mount 加載
mount /dev/sda2 /mnt 把sda2 加載到mnt
umount 取消加載
加載u盤使用:mount /dev/sdb1 /file1
加載光驅使用: mount /dev/cdrom /mnt
加載共享:mount -t cifs //192.168.0.2/tools /mnt
mount //192.168.0.2/tools /mnt
mount -o username=administrator //192.168.0.20/tools /mnt
加載nfs :mount 192.168.0.20:/var/ftp/pub /mnt
七、cat /dev/cdrom > a.iso
mount -t iso9660 -o loop a.iso /mnt
查看光盤內容
八、du 查看文件的大小
du a.tar 查看文件大小
du -s a 查看文件夾大小
du -sh a
九、df 顯示分區大小狀況
df -h 顯示分區大小使用量
十、ssh 遠程登陸
ssh 192.168.0.20
ssh scott@192.168.0.20 以什麼用戶遠程登陸
十一、exit 退出當前shell
logout 退出登陸shell
十二、關閉系統:
shutdown -h now 關閉服務再關機
init 0 直接關機 或: halt -p -f 或 poweroff
1三、重啓:
shutdown -r now
init 6
reboot
6-4 用戶及組管理
一、useradd 添加用戶 用戶信息存放在如下文件: /etc/passwd
例: useradd oracle –g oinstall –G dba –d /home/oracle –p ora123
系統將建立一個用戶 oracle,oracle用戶的首要組爲 oinstal,次要組爲 dba。Home 目錄爲/home/oracle,密碼爲 ora123 。
userdel 刪除用戶 完全刪除包括home下的目錄文件:userdel -r ming
usermod 更改用戶屬性
如,把ming用戶更改屬性添加到多個組裏:
usermod -G root,bin,todd ming
把多個用戶加入到root組裏:
gpasswd -M ming,todd,ttt root
用戶密碼文件: vi /etc/shadow
用戶組密碼文件 : vi /etc/gshadow 較少用
用戶組文件 : vi /etc/group
如:作一個用戶遷移,把上述文件移動另外一個系統
注:加入root組並就是有root權限,uid爲0纔是root
二、修改如下文件也能夠更改用戶屬性通常經常使用:
vi /etc/login.defs
三、向控制檯發出信息:
write
mesg
wall 給全部登錄在本機用戶發出信息
last 查看登陸日誌
lastlog 查看所有登陸日誌
6-5 linux系統文件的存儲及權限
一、-表明普通文件,d 表明目錄類型文件,l表明連接文件
b c s p 管道文件 共7種文件
二、備份整個硬盤到一個加載u盤上:
dd if=/dev/sda of=/mnt/a.img
或者其中一個分區:dd if=/dev/sda1 of=/mnt/a.img
三、文件受權:
644 二進制爲: 110 100 100 即權限爲:rw- r-- r--
chmod 644 A
如不用數字受權爲:
chmod ugo+x A 全部設置爲都增長一個執行權限 u 表明擁有者,g表明擁有組,o表明其它
chmod a-x A 同理減少一個X
chmod a=rw A 都爲rw權限
chmod -R 777 /tmp/work 大寫R參數表示把整個目錄全部文件都設置爲上述權限
四、修改文件的擁有者:
chown ming a 把a文件的擁有者更改成ming用戶
若是加大寫R參數跟chmod同樣用法
五、改變文件的擁有組
chgrp root a 用法跟上述同樣,也能夠帶大寫R參數
六、新建一個軟連接:
ln -s file1 file2 創建file1的軟連接file2 ,如是硬鏈接則不加-s
四、linux下文件權限不疊加,如某用戶對這個文件沒有權限,但它所屬的用戶組有權限,最後權限是沒權限,跟win不同
7--- linux 文件夾及文件的權限
一、文件夾權限:X爲重要權限,若是沒有x權限則不能cd進去。
r權限對應爲 ls查看執行
x cd
rx cd ls
wx cd touch rm vi (本身的,其它人的)
wxt cd touch rm vi(只能夠修改本身的)
注:文件夾W權限很重要,若是一個用戶對此文件夾有寫的權限,那麼對文件夾裏面的權限一樣可寫!
: wq! 強制修改保存退出
/tmp 權限爲1777 ,1爲sticky 權限
umask
關於不一樣用戶建立文件或文件夾的權限:
文件夾:777-umask
文件:666-umask
8---linux 編譯器及vim初步:
一、rhel5 把vi省去,需直接輸入vim
二、u 撤銷undo ,ctrl+r 重作
三、"a3yy 複製 "ap 粘貼 自定義剪貼板 a,能夠爲b,c等,3表明複製3行。
四、:set nu 顯示行數
9--文件查找與壓縮:
一、which 查找可執行命令 如: which ls 注:只能夠查找命令
echo $ PATH 輸入路徑爲which查找的路徑
二、whereis 跟which 類似
三、locate 查找東西比較快,且查找全部目錄 ,查找前需更新db:updatedb
ls ‘which locate’-l
locate aaa.tar.gz
locate -r '.*newfile.*'
cat /etc/cron.daily/ 計劃任務裏的內容
四、find 命令(比較慢):
語法:find /etc -name newfile.txt
find /etc -name "*newfile*"
直接加文件名爲在當前目錄查找。
find /etc -name "*network*" -exec ls { } \ ; 把查找出來的內容再執行ls命名
find /etc -name "*network*" -ok rm { } \ ; 把查找出來的內容再執行ls命名,但需確認,exec不需交互。
find /etc -等等 參數。
find / -perm -777 -type d -ls 從根目錄下開始查找全部權限爲777的目錄
五、grep 對指定文件內容進行查找(只查找文本文件):
grep -R -l shrek /etc 查找全部帶shark字母內容的文件關ls出來
六、壓縮工具:
gzip 壓縮
gunzip 解壓縮
bzip2 壓縮 ,跟gzip差很少,但壓縮比較高
bunzip2
七、tar 打包:
tar cvf /tmp/root.tar /etc/network 把network 打包到tmp下
tar rvf /tmp/root.tar /etc/network /etc/passwd
tar xvf /tmp/root.tar -C /tmp/dd/ 解壓到指定目錄下xvf
tar tvf /tmp/root.tar 預解壓文件tvf
tar cvfz /tmp/root.tar.gz /etc/network 打包後再壓縮cvfz
rvf不能夠加z使用
tar xvfz /tmp/root.tar.gz -C /etc/network 解壓解開到 xvfz
註釋:c 建立新的檔案文件
r 把要存檔的文件追加到檔案文件後面
t 列出檔案文件的內容,查看已經備份了哪些文件
u 更新文件
x 從文檔文件中釋放文件
v 詳細報告
f 使用檔案文件或設備
八、history 查看歷史命令
10--文本處理及正則表達式----
一、對文本文件操做命令:cat,more(只能往下),less
head 顯示文件的頭部內容,默認顯示前十行,參數-n 指明顯示行數
如;head -n 20 /etc/passwd 顯示passwd的前20行。
tail 顯示文件結尾部分,用法與head同樣。
注意:tail -f /var/log/message 實時監控日誌文件更新信息,很是重要
-f 若是文件的大小在增加的話,tail 將跟隨文件的增加而顯示。
sort -t : +2 -n /etc/passwd 排序以:分隔 +2第三列,-n數字 (默認從大到小,加-r 即從小到大)
sort -t : +2 -n /etc/passwd > /tmp/a 排序後並輸出到a文件
sort -t : +2 -n /etc/passwd | head -n 3 輸出前3行
二、抓取文本中的一部份內容:
cut -d: -f1 /etc/passwd 以:爲分隔符抓取第1行
cut -d: -f1 /etc/passwd | grep shrek 以:爲分隔符抓取第一行,再取出帶shrek的行
cut -c1-3 /etc/passwd 取第一至三個字符下來
三、常見參數:
grep -v -l -R -c -A2 -B2 -v不包含
cut -d: -f2-4 -c1-5
sort -n -r -t: +2
注:grep執行時需加‘’號,如: grep 'ming' /etc/passwd
四、wc 統計文件的行,詞,字數
能夠加如下參數: wc -l -w -c /etc/passwd
五、uniq 只顯示不一樣的單詞:
六、diff 兩個文件做對比:
diff a b
七、正則表達式:
. 表示任意一個單一字符
.* 表示任意多個單一字符
^a 表示以a爲首的行
a$ 表示以a爲尾的行
\<good 表示以good開頭的單詞
good\> 表示以good結尾的單詞
[abc] 表示當前位置 a、b或c
[^abc] 表示除了a、b、c之外的字符
a* 表示多個a
a? 表示一個或單個單獨的a
a+ 表示a、aa、及至更多個a
a\{n\} 表示重複了n次的a
11---輸入輸出重定向及管道:
一、標準重定向輸出:> ls /etc/passwd > /tmp/a
>號只輸出正確的信息,若是 是錯誤信息則是 2>
如:ls /etc/afdsafdaf 2> /tmp/a
注:上述重定向都會把a文件清空後再寫入。利用此能夠對文件刪除清空。
&> 表示錯誤正確的消息都寫入
>> 追加到文件後面
&>>表示正確錯誤都追加到文件後
cat /dve/cdrom > /tmp/a.iso 將光盤作成iso鏡像
二、兩個<<
cat << aaa 等待輸入
tr 「a-z」 「A-Z」< /etc/passwd 把passwd所有輸出變成大寫
cat > b.txt << DDD 當輸入DDD時 中斷退出
ls /etc/ | wc -l 統計有多少文件示例
ls /etc -l | grep '^d' | wc -l 統計有多少個文件夾應用
三、 tee 複製
12----進程控制
一、hostname 主機名,注當更改完主機名時必定要更改相關IP:
vi /etc/hosts 更改裏面的相對應 IP地址,如window 裏的hosts文件
二、free 查看內存使用狀況
三、proc 內核的一個小窗戶,裏面的文件都是虛的
四、日誌 /var/log 查看相關日誌 message(系統日誌) ,secure,(安全日誌) wtmp(安全加密日誌),maillog(郵件日誌)
五、查看進程:top 或 ps ,ps -aux 顯示全部進程,-f 查看進程樹
終結進程:kill -l 能夠查看相關號,如:kill -9 ,kill -11
直接結束進程:kill 4811 強制結束:kill -9 4811
殺掉全部httpd進程: killall httpd -9
殺掉某個用戶的進程: skill -9 ming
關於進程狀態:s 表明睡覺,T表明暫停,R表明 運行 ,Z 僵持進程,D深度睡眠進程,<:高優先級進程,N:低優先級進程
六、關於優先級:
-20 到19 最大優先級 爲-20
top裏面使用 r 來修改優先級。
nice -n -20 updatedb 以高的優先級執行命令
renice -20 1 把進程1的優先級更改成-20
七、jobs 查看後臺任務,bg %1 把後臺第一個進程運行起來,fg %1把後臺第一個進程轉到前臺並中止,kill %1 結束第一個進程。ctrl + z 中止一個任務並丟到後臺。
nohup updatedb & 在shell退出後,後臺進程仍在執行,做爲系統進程
----13 bash 使用詳解:
set 查看全部的變量,env 查看全局環境變量
一、 vi ~/.bash_profile 設置bash命令
定義一個變量,取出其值
AA=aaaaaaaa
echo AA
上述爲普通變量,只能夠在相應的bash下使用,下面定義全局變量使用:
export AA=aaaaaa
二、history -c 刪除所有歷史紀錄
若是想每次退出時清除命令歷史紀錄:
vi .bash_logout 在上述文件中加入history -c
調用命令歷史:ctrl + r
三、關於bash的字符(注:跟正則表達式不同):
! 表示執行等,~表示 主目錄,( ) 聲明一個函數如:a()
"" 號只能把空號的意義的屏蔽,‘ ’把所有特殊符號屏蔽,`` 能夠先執行``裏面的命令,如:touch `date + %y%m%d`log (反引號是指~裏下面的)
\ 脫義符號 ,如touch 一個$的文件: touch \$
; 能夠連續執行兩個命令: echo aaaa ; ls /etc -l
四、查看上述命令是否正常執行:echo $ ? 正常執行輸出0。
五、兩個&&號的使用:[ -f /etc/passwd ] && echo ok 若是前面爲正確時執行後面的命令
六、兩個|| 號的使用 : [ -f /etc/passwdddd ] || echo ok 與上面命令相反,若是不正確時才執行。
(注:上述-f 表明查找文件,-d表明查找目錄,-l 表明一個連接,-x表明是否能夠執行,-r是否能夠讀,-w是否可寫,-e 表示文件是否存在,-s 文件大小不爲零)
同時需注意上述加空格表明判斷,如:[ $USRE = root ] && echo it is root
七、定製bash
shell 腳本里通常初始化會執行如下幾個參數配置文件:
一、/etc/profile 針對全部用戶的 ,公用 的
2. ~/.bash_profile 當前目錄下的
3. ~/.bashrc 4. /etc/bashrc 針對全部用戶的
八、更改成中文界面
查看當前系統語言:echo $LANG
vi ~/.bashrc 打開上述文件添加如下:
export LANG="zh_CN.UTF-8"
export LC_ALL ="zh_CN.UTF-8"
上述只針對當前用戶,如更改整個系統的語言則更改如下:
vi /etc/sysconfig/i18n 添加以上便可
-----14.shell 腳本編程詳解:
一、聲明一個bshell 腳本以:#!/bin/sh
二、重設shell環境 :reset ,man bash 錄求幫助
三、在當前的shell裏來執行: . ./backup
四、查看腳本的執行:bash -vx ./b 能夠查看腳本的一步步執行(調試使用), bash -v ./b 查看腳本的執行
五、if 語法:
如下爲一個bash 示例:
#!/bin/bash
read AA
if [ $AA = root ] then echo 'hello root'
elif [ $AA = ming ] then echo 'hello ming!!'
else
echo 'you are a bish!'
fi
六、case……in 語法:
#!/bin/bash
read AA
case $AA in
ming) echo 'hello ming, welcome to here!!'
;;
root) echo 'hello root ,i miss you so mush !!'
;;
*) echo 'you are a bish ,get out here!!'
;;
esac
七、/etc/rc.d/init.d/ 上述爲系統初始化時的shell路徑
八、file1 -nt file2 文件file1 比文件file2更新
file1 -ot file2 文件file1比文件file2 更老
九、數值運算符比較:
相同 -eq =
不一樣 -ne !=
大於 -gt >
小於 -lt <
大於或等於 -ge
小於或等於 -le
爲空 -z
不爲空 -n
十、下述爲kill 掉httpd的例子:
AA="`pgrep httpd`"
[ -z "$AA" ] && echo 'httpd is not running !!' && exit
for i in $AA
do
kill -9 $i
done
echo 'httpd has killed'
十一、循環100次:
for i in `seq 1 100`
十二、while 循環:
AAA=0
while [ $AAA -lt 100 ]
do
AAA =$[$AAA+1 ]
echo \ "$AAA"
done
1三、編寫一個輸入某個數循環:
1四、sed 使用:
sed -n -e '/ming/p' /etc/passwd 默認輸出帶ming的項 ,-e表示執行後面的命令,-n表示默認輸出,p打印
sed -n -e '/\<ming\>/s/bash/nologin/p' /etc/passwd 把bash替換成nologin ,s表示替換 。
sed -e 's/nologin/login/' /tmp/ddd/passwd 把全部nologin 替換成login
sed -n -e '/ming/s/bash/nologin/g' /tmp/passwd > /tmp/ddd/a 替換後並輸出,g表明所有替換。
sed -e '/^\#/d' -e '/^$/d' /tmp/ddd/squid.conf > /tmp/ddd/bb
刪除以#開頭以及爲空的行, d表明刪除
1五、把 '' 裏面的命令寫成一個文件ss,而後再sed執行:
sed -f ss /tmp/ddd/passwd
1六、軟件安裝:
一、rpm -ivh ....i386.rpm 安裝某個rpm軟件包,-i表示安裝,v表示顯示百分比,h顯示過程。
強制從新安裝:rpm -ivh --force ...i386.rpm
強制安裝:rpm -ivh --nodeps ...i386.rpm --nodeps 強制安裝無論其它關聯關係
安裝:rpm -ivh --aid ...i386.rpm --aid 解決一層關聯關係,只有rhel4以前系統有。
強制刪除rpm:rpm -e --nodeps httpd --nodeps是強制刪除無論其它關聯關係
二、rpm -q httpd 查看httpd安裝的包
rpm -qa 查看全部已經安裝的包。
rpm -qi 查看已經安裝的包的詳細信息
rpm -ql 查看包的安裝路徑
rpm -qpi a.rpm 查看未安裝的包的信息
三、解壓出來的原代碼進行編譯安裝:
./configure --prefix=/usr/local/httpd --with-mpm=worker
(指定安裝在哪個目錄下面)
make
make install
17------xwindow 圖形界面
ctrl+alt + 退格 :關閉x-window界面
18------安全方面:
nmap -sS -O -P0 www.baidu.com
掃描端口
更改ssh端口: vi /etc/ssh/sshd_config
service sshd restart
node