redhat6.x_linux学习笔记
? ? ? ?ULE 學習筆記
ls -l install.log
-:rw-r--r--: 1 :root: root :39410 :2012-12-03 :install.log
文件類型 : 權限位 : 硬鏈接 : 擁有者 : 所屬組 : 文件大小 : 文件最后一次修改時間 : 文件名
文件類型:
- 普通文件
d 目錄文件
b 塊設備文件
l 軟鏈接文件
c 字符文件
p 管道文件
s 套接字文件
ls ?-l 長格式 -a 所有文件 -A所有文件(除了.和..) -h 按最大單位顯示大小(總計那多了單位) -t 按時間排序(由最近到最遠) -r 反向排序 -d顯示目錄信息 -R 遞歸顯示(驗證目錄結構)
ctrl+l 清屏
ctrl+c 中斷命令
獲得幫助信息
1.ls --help
2.info ls
3.type ls
別名的制作與釋放:
alias la='ls -lah'
unalias la
4.man ls
man 1 用戶命令 ? *
man 2 系統調用
man 3 庫調用
man 4 特殊文件
man 5 配置文件 ? *
man 6 游戲
man 7 雜項
man 8 系統命令 ? *
man 9 內核參考
makewhatis 維護后臺man
man -f passwd 查詢那些章節有相應說明
man -k passwd 模糊查詢
cd /
/root 管理員root的家目錄
/home ?普通用戶的家目錄
/etc ?配置文件文件
/usr ?應用程序目錄相當于Programs File
/var ?服務器數據目錄
/srv ?服務器數據目錄
/lib ?系統模塊和庫文件 /usr/lib /usr/local/lib
/bin ?用戶命令目錄 /usr/bin/ /usr/local/bin
/sbin 系統管理員命令目錄 /usr/sbin/ /usr/local/sbin
/boot 引導程序目錄
/dev ?塊設備目錄
/tmp ?臨時文件目錄
/media 媒體目錄
/proc ?(偽文件系統) 內存信息和進程信息
/sys ? (偽文件系統) 和/proc/一樣 更規整
/tftpboot ?tftp服務用的目錄
/misc ?autofs服務用的目錄
/net ? autofs服務用的目錄
/selinux selinux安全組件用的目錄
/opt 第三方軟件目錄
/mnt 其他掛載點
cd ~和直接回車 回家目錄 ?.. 上層目錄 ../..上層的上層 ?. 當前目錄 - 返回上次工作目錄
pwd 查詢所在位置?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.3
查看文件內容的命令
head -n 50 install.log
head -50 install.log
tail -n 50 install.log
tail -50 install.log(文件最尾部的內容現是在屏幕上,并且不斷刷新,是你看到最新的內容)
tail -f /var/log/messages ?(service gpm restart 重新啟動鼠標)
more install.log
less install.log
cat -n install.log
cat -b install.log (只顯示有效行行號)
創建文件
touch aa.txt
touch cc.txt tt.txt
touch abc{1..10}.txt
touch ab{d,e}{1..5}.txt
創建目錄
mkdir abc
mkdir abd abce
mkdir abc{1..10}
mkdie ab{e,d}{1..5}
mkdir -p xx/yy ? ? -p 遞歸創建
mkdir -p -v ?xx/yy ?-v 顯示創建過程
拷貝 cp
cp tt.txt /
cp /root/tt.txt /test.txt ?拷貝過程重命名
cp -r xx/ / ?拷貝目錄
剪切 mv
mv cc.txt /
mv aa.txt oo.txt 當前目錄下文件重命名
mv /root/abce ?/ ?移動目錄不需要參數
刪除
rmdir ?只能刪除空目錄
rm /root/abc.txt
rm -f /root/abc1.txt
rm -rf /root/abc1/
rm -rf *.txt
rm -rf ab*
練習:
1.創建以下目錄結構(并且驗證)
/aa
? ? ? ? ?/ ?\ ? ? ? ? ? mkdir -p /aa/ba/c{a..b} /aa/bb/cc
? ? ? /ba ? /bb
? ? ? ?/ \ ? ? \
? ?/ca ?/cb ? /cc
mkdir -p /aa/ba/c{a,b} /aa/bb/cc
ls -R /aa
tree /aa
tree -L 2 /
2.從ba進入ca目錄有幾種方法
2種
cd ca/
cd /aa/ba/ca/
3.拷貝/etc/man.config到ca/目錄 有幾種方法
2種
cp /etc/man.config /aa/ba/ca/
cp ../etc/man.config ../aa/ba/ca/
4.將ca目錄下的man.config 移動到cc目錄下并且改名字為haha.txt
mv /aa/ba/ca/man.config /aa/bb/cc/haha.txt
5.拷貝兩次同一文件到同一位置 不提示直接覆蓋
如:\cp install.log?
/bin/cp install.log /
unalias cp
cp install.log /
vim 文本編輯器(vi)
由命令模式進入輸入模式的方法
a 當前字符后輸入
A 當前行行尾輸入
i 當前字符前輸入
I 當前行行首輸入
o 當前行的下一行輸入
O 當前行的上一行輸入
s 刪除當前字符后輸入(相當于改錯)
S 刪除當前行后輸入
home鍵 行首 ?end鍵 行尾
命令模式
u 撤銷一步操作
ctrl+r 重做
dd 刪除當前行,并且ctrl+r不管用
x 刪除當前字符的下一個字符,沒有下一個字符就刪除當前字符,并且ctrl+r不管用
yy 復制當前一行 ? p粘貼
50yy 復制50行
dd 剪切一行 ? p粘貼
50dd 剪切50行
dd 刪除一行 50dd 刪除50行
^行首 ?$行尾
d^ 刪除當前字符到行首
d$ 刪除當前字符到行尾
w下一個單詞的首字符 b上一個單詞的首字母
dw 刪除一個單詞(在單詞首字符時,刪除一個單詞;不在首字符時,刪除單詞的后半部分)
G 尾行 ? gg 首行
572G 定位到572行
dgg ?刪除當前行到首行(若在首行,刪除第一行)
dG ? 刪除當前行到尾行(若在尾行,刪除最后一行)
末行模式
:w :q ?:wq
:q! :w! :wq!
:w /root/newfile ? 另存
:2,3w /root/newfile2 ?2-3行另存
:r /root/newfile2 ?追加讀入
:e! 重現打開當前文件
:e /root/aa.txt ?編輯一個文件
:set nu
:set nonu
:set autoindent ? 自動縮進功能
:set noautoindent
查找
/ab ?n 下一個 ?N 上一個
?a ? n 上一個 ?N 下一個
替換
%s/ab/$$/gc ? ? ?%所有行 ? s交換 ? ?g全局 ?c交互式
3,6s/ab/$$/gc ? 3-6行
%s/^\t// ?替換每行開頭是制表符的
%s/\t// ?替換每行第一個制表符
%s/\s// ?去掉每行第一個空格
去掉空行
g/^\s*$/d
文件加密?
:X ?
vim的配置文件cat /etc/vimrc(配置的時候在最后寫入)
多文件操作
vim aa.txt cc.txt tt.txt
:args :next :prev :first :last?
ctrl+6 兩個文件之間切換
?
vimdiff aa.txt cc.txt tt.txt
ctrl+w+w
vim -O aa.txt cc.txt tt.txt ?橫向
vim -o aa.txt cc.txt tt.txt 豎向
幫助文檔位置:
/usr/share/vim/vim70/tutor/tutor.zh.euc 查看用cat
命令轉換字符集
iconv -f UTF-8 -t gb18030 -o test.txt tutor.zh.euc
iconv -f 源字符集 ?-t 轉換字符集 ? -o輸出文件 ? ?源文件
用戶管理
uid范圍
uid 0 ? ? ? ? 管理員
uid 1-499 ? ? 系統用戶
uid 500-60000 普通用戶區間
添加用戶
useradd user1
配置文件 /etc/passwd
abc:x:500:500:PTuser:/home/abc:/bin/bash
用戶名:密碼占位符:uid:gid:描述信息:家目錄所在位置:shell
useradd -u 1000 -g 600 -c OOO -d /mnt/abc6 -s /bin/ksh ?abc6
-u ?uid ?-g gid -c 描述信息 -d 家目錄 -s shell
groupadd
組配置文件/etc/group
uplooking:x:1000:
組名:組密碼占位符:gid:包含的用戶
groupadd -g 1000 uplooking
練習:
添加組upup 指定gid為1200
groupadd -g 1200 ?upup
添加用戶user10 uid 為1200 屬于upup組 描述pt 家目錄為mnt下 shell為bash
useradd -u 1200 -g upup ?-c pt -d /mnt/user10 -s /bin/bash user10
su - user10
passwd user10
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.4
保存密碼的信息的文件/etc/shadow
eric:$1$9L7gzVrX$SLueU9.LswAzNTDk1erwZ/:15679:0:99999:7:::
第一列 用戶名
第二列 密碼
第三列 最后一次修改密碼的時間
第四列 密碼最小時間
第五列 密碼的最大時間
第六列 密碼過期前警告時間
第七列 密碼過期后帳號過期時間
第八列 帳號有效期
第九列 保留列
passwd -n 密碼最小時間 ?-x 密碼最大時間 -w 密碼過期前警告時間 -i 密碼過期后帳號過期時間 ?帳號
修改用戶信息
usermod -u ?-g ?-c ?-s ?-d(-d只改寫了配置文件,還得mv一下 mv /home/用戶名/ 新目錄)用戶
usermod -L eric ? 鎖定用戶
usermod -U eric ? 解鎖用戶
usermod -l ?新用戶名 ?舊用戶名
usermod -f ?密碼過期后帳號過期時間 ?
usermod -e ?帳號過期時間20121210 用戶名
修改組信息
groupmod -g 1500 uplooking(注意:修改用戶組信息)
groupmod -n 新組命 舊組命(改組名)
修改密碼信息
passwd -l eric ?鎖定密碼
passwd -u eric ?解鎖密碼
passwd -S eric ?查詢密碼狀態
練習:
1.添加組uplooking ?gid為2000 添加用戶zorro屬于uplooking組 ?修改zorro用戶的名字為 newzorro ?uid為2000 描述為hello 家目錄為/mnt/下 shell為bash
修改uplooking組的gid為2500 查看id newzorro信息有什么變化 怎么修改正確
2.創建用戶tom 和 jerry 分別設置密碼為123 鎖定tom賬號 鎖定jerry密碼 tty2,3分別登錄tom和jerry 是否能登錄?不能返回結果是否一樣?一樣
查看shadow文件密碼字段 兩個用戶有什么區別?
附加組
usermod -G yw,kf wg ?(覆蓋附加組)
usermod -a -G kf wg ?(在原來基礎上添加附加組)
刪除用戶
userdel -r abc(不加r的話,只刪除配置文件,家目錄沒刪)
刪除組
groupdel uplooking(組內必須沒有用戶才能刪)
保存創建用戶時默認信息文件
/etc/default/useradd
HOME=/home
SHELL=/bin/bash
密碼默認信息
vim /etc/login.defs?
手動管理用戶
groupadd ?uplooking
1.vim /etc/group
? uplooking:x:3000:
相當于這一步操作:useradd -g uplooking zorro
2.vim /etc/passwd
? ?zorro:x:3000:3000:ptuser:/home/zorro:/bin/bash
? ?mkdir /home/zorro
? ?cp /etc/skel/.bash* ?/home/zorro/
相當于這一步操作:passwd ?zorro
3.vim /etc/shadow
? zorro::15789:0:99999:7:::
? grub-md5-crypt?
在自己家里能否創建文件?
批量導入
1.cat user.txt?
ab1:x:3100:3100::/home/ab1:/bin/bash
ab2:x:3200:3200::/home/ab2:/bin/bash
newusers < user.txt
2.cat passwd.txt?
ab1:123
ab2:123
chpasswd < passwd.txt
終端登錄測試
境變量配置文件
.bash_history 記錄用戶執行過的歷史命令,當用戶退出時寫入文件
.bash_logout ?記錄當用戶退出時執行的命令
.bash_profile 記錄用戶搜索命令的路徑?
.bashrc ? ? ? 記錄用戶使用的別名
.bash_profile 登錄級別環境變量配置文件
.bashrc ? ? ? shell的環境邊配置配置文件
/etc/profile ?(全局)
/etc/bashrc
環境變量配置文件
/etc/profile
~/.bash_profile
~/.bashrc
/etc/bashrc
基本權限
-rw-r--r-- 1 robin uplooking ? 39410 12-03 22:22 install.log
? ? ? ? ? ? ? ?rw- ?| r-- ?|r--
rwx ? ? ?rwx rwx
robin ?uplooking ?other
root ----> robin -----> uplooking -----> other
對于文件 :
r---------> head tail cat......
w---------> vim > >>(重定向符)
x---------> ./ 執行 (root只要有x就可以執行,普通用戶需有rx)
對于目錄:
r---------> ls (查看詳細信息r-x)
w---------> touch mkdir rm (創建操作需要-wx)
x---------> ?cd
tt.txt rwxrwxrwx jack uplooking
jerry jerry
修改權限的命令
chmod?
chmod o+x file/dir
chmod u-r,g+x,o+rw file/dir
chmod ug-rw,o+rwx file/dir
chmod ugo+rw file/dir
chmod a+rwx file/dir
?
chmod u=rw file/dir
chmod u=r,g=w,o=x file/dir
chmod ug=rw,o=rwx file/dir
chmod ugo=rwx file/dir
chmod a=rwx file/dir
數字表示
r---------4 ? ?w---------2 ? x-------1
chmod 777 file/dir
562 r-xrw--w- ? ?-wx-w---x 321
456 r--r-xrw- ? ?r-x-wx--x 531
查詢以下文件權限
/ 755
/etc 755
/var 755
/usr 755
/tmp 1777
/root/ 750
/home/tom 700
/etc/shadow 400
/etc/passwd 644
root創建文件的默認權限 644
root創建目錄的默認權限 755
普通用戶創建文件的默認權限 664
普通用戶創建目錄的默認權限 775
練習:
在/tmp目錄下創建目錄test 要求test權限擁有者可以創建刪除進入,所屬組可以查看 其他人無權限
chmod 740 test
修改擁有者和所屬組
chown tom xx.txt
chgrp uplooking xx.txt
chown .jerry xx.txt
chown root.root xx.txt
.相當于:
chmod -R 777 test/ ? ? ? 遞歸修改擁有者和所屬組
chown -R jerry:uplooking
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.5
高級權限(普通用戶執行某些命令時擁有管理員的權限)
suid
chmod u+s ?file
對象:二進制可執行文件(不是普通文件)
作用:任何用戶在執行含有suid權限的命令
實驗:
修改權限,達到以下要求:
建立用zorro 使zorro使用less命令可以查看/etc/shadow文件(不能改變/etc/shadow文件權限)
先which less 找到二進制less命令目錄,然后更改less的權限 chmod u+s /user/bin/less?
sgid
chmod g+s dir
對象:只能是目錄
作用:任何用戶在擁有sgid權限的目錄下創建文件時,創建的文件都要繼承該目錄的組
實驗:
在/tmp目錄下創建test目錄 該目錄擁有者為root 所屬組為uplooking 權限為777
用戶tom 在/tmp/test下創建文件aa.txt 查看該文件擁有者和所屬組 (tom tom)
在/tmp/test目錄加上sgid權限 ? (chmod g+s /tmp/test/)
用戶tom 在/tmp/test下創建文件cc.txt 查看該文件擁有者和所屬組 (tom uplookin)
將/tmp/test目錄的所屬組改為redhat
用戶tom 在/tmp/test下創建文件tt.txt 查看該文件擁有者和所屬組 (tom redhat)
用戶tom 在/tmp/test下創建目錄dir 查看該目錄擁有者和所屬組 ? (tom redhat)
用戶tom 在/tmp/test/dir下創建文件xx.txt 查看該文件擁有者和所屬組 (tom redhat)
sticky(粘貼位,冒險位)
chmod o+t dir
對象:只能是目錄
作用:任何用戶在含有t權限的目錄下創建的文件都屬于該用戶本身,其他人無權刪除(root除外)
實驗:
在/tmp目錄下創建test目錄 該目錄擁有者為root 所屬組為root 權限為777
創建兩個用戶tom和jerry
1.tom用戶在/tmp/test下創建aa.txt
? jeery用戶在/tmp/test下創建cc.txt
? tom和jerry能否互相刪除對方文件?
2.在/tmp/test目錄上添加t權限
? tom用戶在/tmp/test下創建aa.txt
? jeery用戶在/tmp/test下創建cc.txt
? tom和jerry能否互相刪除對方文件?
? tom和jerry能否刪除自己創建文件?
3.tom用戶在/tmp/test下創建aa.txt
? jeery用戶在/tmp/test下創建cc.txt
? root能否刪除所有人文件?
4.tom用戶在/tmp/test下創建aa.txt
? jeery用戶在/tmp/test下創建cc.txt
? 創建用戶zorro 將/tmp/test目錄擁有者改為zorro
? zorro能否刪除所有人文件?
suid-------4 ? sgid---------2 ? sticky--------1
4777
3777
2777
1777
大小寫區分源文件是否有x權限 (源文件如果沒有x權限,高級權限沒用)
ll tt.txt?
-rwsrwsrwt 1 root root 0 12-06 10:18 tt.txt
[root@localhost tmp]# chmod -x tt.txt?
[root@localhost tmp]# ll tt.txt?
-rwSrwSrwT 1 root root 0 12-06 10:18 tt.txt
[root@localhost tmp]# chmod +x tt.txt?
[root@localhost tmp]# ll tt.txt?
-rwsrwsrwt 1 root root 0 12-06 10:18 tt.txt
進程管理
ps -e(所有進程)-f(所有)
ps a所有在終端上運行的進程 au aux
top
狀態
D ? ?Uninterruptible sleep (usually IO)
? ? ? ?R ? ?Running or runnable (on run queue)
? ? ? ?S ? ?Interruptible sleep (waiting for an event
? ? ? ? ? ? to complete)
? ? ? ?T ? ?Stopped, either by a job control signal or
? ? ? ? ? ? because it is being traced.
? ? ? ?W ? ?paging (not valid since the 2.6.xx kernel)
? ? ? ?X ? ?dead (should never be seen)
? ? ? ?Z ? ?Defunct ("zombie") process, terminated but
? ? ? ? ? ? not reaped by its parent.
< ? ?high-priority (not nice to other users)
? ? ? ?N ? ?low-priority (nice to other users)
? ? ? ?L ? ?has pages locked into memory (for real-time
? ? ? ? ? ? and custom IO)
? ? ? ?s ? ?is a session leader
? ? ? ?l ? ?is multi-threaded (using CLONE_THREAD, like
? ? ? ? ? ? NPTL pthreads do)
? ? ? ?+ ? ?is in the foreground process group
查看信息:cat/proc/cpuinfo ?
? ? ? ? ?cat/proc/meninfo
kill -9 ? pid 強制結束
kill -15 ?pid 正常結束
pkill 進程名稱 ?對應的是COMMOND
killall 進程名稱
xkill 點到哪就結束到哪
ctrl+alt+backspace 殺掉桌面(注意保存桌面文件)
前后臺切換
xclock -update 1
xclock -update 1 & 后臺運行
ctrl + z ?后臺掛起
jobs 顯示后臺進程
bg [編號] ?后臺運行
fg [編號] ?調到前臺運行
kill %[編號] 殺后臺進程
優先級調整(-20~~19)
nice -n -20 xclock -update 1
renice 10 -p pid(-p重新調整pid的優先級)
高級命令
cat -n /etc/passwd | head -20 | tail -1 | rev(左右顛倒) | tac(首尾顛倒)
sort 默認情況下,首字符排序 -n 按整個數字排序 -r 反向排序 -u(unique)去掉重復行
uniq 默認去掉連續重復行 -d顯示連續重復行 -u顯示不重復行 -c統計重復次數
過濾命令grep
grep 'root' /etc/passwd ??
grep '^root' /etc/passwd ?以root開頭的
grep 'halt$' /etc/passwd ?以halt結尾的
grep -v 'bash$' /etc/passwd ?v去相反的結果
cut 以:結束
cut -d: -f 1 /etc/passwd?
cut -d: -f 1,7 /etc/passwd?
cut -d: -f 1-3 /etc/passwd?
cut -d: -f 1-3,7 /etc/passwd
截取字符
cut -c 1 /etc/passwd | head -5
cut -c 1,3 /etc/passwd | head -5
cut -c 1-3 /etc/passwd | head -5
cut -c 1-3,5 /etc/passwd | head -5
統計
wc -l 統計行數 ?-w 統計單詞 ?-c 字符
1.統計你系統中有多少個用戶可以登錄到系統 ? cat /etc/passwd|grep 'sh$'|wc -l
1.統計你系統中有多少個用戶可以登錄到系統
grep -c bash /etc/passwd
grep bash /etc/passwd | wc -l
cut -d: -f 7 /etc/passwd | grep bash | uniq -c
? ? ? ?
2.ifconfig eth0 | awk -F':| +' '/Bcast/{ print $4 }'
192.168.1.253
ifconfig eth0 | head -2 | tail -1 | cut -d: -f 2 | cut -d' ' -f 1
ifconfig eth0 | grep Bcast | cut -d: -f 2 | cut -d' ' -f 1
3.stat abc.txt?
? File: “abc.txt”
? Size: 45 ? ? ? ? ? ? ?Blocks: 8 ? ? ? ? ?IO Block: 4096 ? 一般文件
Device: 802h/2050d ? ? ?Inode: 8421697 ? ? Links: 1
Access: (0640/-rw-r-----) ?Uid: ( 3209/ ? shrek) ? Gid: ( ? ?0/ ? ?root)
Access: 2012-12-06 15:21:56.000000000 +0800
Modify: 2012-12-06 15:21:56.000000000 +0800
Change: 2012-12-06 15:21:56.000000000 +0800
15:21:56
15:21:56
15:21:56
stat abc.txt |tail -3| cut -d' ' -f 3 | cut -d. -f 1
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.6
echo $$ 當前終端的pid ? tty 查看當前登錄終端
shell基礎
!! 在執行一次上一條的命令
!858 在執行一次858行
!$ 引用上一條命令最后一個參數 ? 和 alt+.相同作用
!ser 引用最后一條ser開頭的命令
重定向符 > >>
1> 標準正確輸出,如果文件不存在則創建,如果文件存在則覆蓋
1>> 標準正確輸出,如果文件不存在則創建,如果文件存在則追加
2> 標準錯誤輸出,如果文件不存在則創建,如果文件存在則覆蓋
2>> 標準錯誤輸出,如果文件不存在則創建,如果文件存在則追加
&> 標準正確和標準錯誤輸出,如果文件不存在則創建,如果文件存在則覆蓋 /dev/null
循環語句
user.sh
#!/bin/bash
for i in {1..10}
do
? ? ? ? echo "abc$i is insert system!!!!!!!"
? ? ? ? useradd abc$i 2>> /tmp/user.err
? ? ? ? sleep 2
? ? ? ? echo "add password for user abc$i" ? ? ?
? ? ? ? echo 123 | passwd --stdin abc$i &> /dev/null
? ? ? ? sleep 2
? ? ? ? echo "the abc$i information is wancheng!!!!!"?
done
判斷語法
#!/bin/bash
if [ -f /tmp/aa.txt ]
then
? ? ? ? echo "the file is exist!!!!!find it now~!!!!!"
? ? ? ? sleep 2
? ? ? ? ls -l /tmp/aa.txt
? ? ? ? rm -rf /tmp/aa.txt
else
? ? ? ? echo "the file is not exist!!!!create it now!!"
? ? ? ? sleep 2
? ? ? ? touch /tmp/aa.txt
fi
壓縮打包安裝軟件
dd if=/dev/zero of=/root/data bs=100M count=2
file file/dir 查看文件類型
du -sh 查看文件大小
查看二進制文件:hexdunp 二進制文件
壓縮 gzip bzip2
gzip data
gunzip data.gz
bzip2 data
bunzip2 data.bz2
打包 tar
tar -cvf boot.tar /boot 打包/boot下的文件?
tar -tvf boot.tar ?查看打包文件
tar -rvf boot.tar data ?追加打包
tar -xvf boot.tar 解包
tar -cvf /home/boot.tar /boot 創建包的時候指定包路徑
tar -xvf boot.tar -C /tmp/ ?解包指定路徑
tar -zcvf boot.tar.gz /boot 創建以gzip方式壓縮包
tar -ztvf boot.tar.gz ?查看壓縮包
tar -zxvf boot.tar.gz ?解壓縮包
tar -jcvf boot.tar.bz2 /boot 創建以bzip2方式壓縮包
tar -jtvf boot.tar.bz2 查看壓縮包
tar -jxvf boot.tar.bz2 解壓縮包
tar -jcvf /tmp/boot.tar.bz2 /boot ?創建壓縮包的時候指定包路徑
tar -jxvf boot.tar.bz2 -C /tmp ?解壓縮包指定路徑
?
掛載
mount -t iso9660 /dev/cdrom /mnt
mount
umount /mnt 或者 umount /dev/cdrom
umount -l /mnt ?強制卸載
軟件安裝
rpm -ivh httpd-2.2.3-63.el5.i386.rpm ?安裝
rpm -q httpd ? 查詢是否安裝
rpm -ql httpd ? 查詢安裝位置
rpm -ql httpd | cut -d\/ -f 2 | sort -u
rpm -qi httpd ? ? 安裝過包的信息
rpm -qf /etc/httpd/conf/httpd.conf檢索一個文件有哪個安裝包安裝出來的 ??
rpm -qf `which useradd` ? ? ? ? ?查詢命令的安裝包
rpm -e httpd ? 移出軟件包
rpm -qa | grep 'lib' ? ? 查詢所有安裝包(安裝了的)中含有lib關鍵字的包
檢索未安裝軟件的信息
rpm -qpi samba-3.0.33-3.37.el5.i386.rpm 查詢未安裝包的信息
rpm -qpl samba-3.0.33-3.37.el5.i386.rpm ? ? 安裝之后位置
rpm -ivh httpd-2.2.3-63.el5.i386.rpm --force ?強制安裝(丟了某些配置文件后,重新安裝包后提示某些文件已經安裝過)
依賴關系
rpm -ivh httpd-devel-2.2.3-63.el5.i386.rpm?
warning: httpd-devel-2.2.3-63.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
? ? ? ? apr-devel is needed by httpd-devel-2.2.3-63.el5.i386
? ? ? ? apr-util-devel is needed by httpd-devel-2.2.3-63.el5.i386
httpd 依賴 apr-devel 、apr-util-devel
解決 先安裝依賴包
rpm -ivh apr-devel
rpm -ivh apr-util-devel
rpm -ivh httpd-devel-2.2.3-63.el5.i386.rpm?
rpm -e apr-devel --nodeps ?不檢測依賴關系卸載
yum庫(解決rpm包的依賴關系)
1.mount /dev/cdrom /mnt
2.vim /etc/yum.conf
? ?gpgcheck=0
3.cd /etc/yum.repos.d/
? mv ?rhel-debuginfo.repo ?rhel-debuginfo.repo.bak
? touch yum.repo
? vim yum.repo
? [rhel5u8]
? name=cdrom yum
? baseurl=file:///mnt/Server
? enabled=1
? gpgcheck=0
測試使用
yum list yu ?列出安裝包
yum install httpd-devel ? ?安裝
yum remove httpd-devel ? ? 卸載
yum reinstall httpd-devel ?再安裝一次
yum clean all ? ? ? ? ? ? ?清楚緩存
rpm --import RPM-GPG-KEY-redhat-release ?導入key id
建庫
1.cp /mnt/Server/* /yum/
2.rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm (先安裝createpope,在光盤上)
createrepo /yum?
3.yum庫配置文件指向/yum
制作鏡像(兩種方法)
cat /dev/cdrom >> /rhel5u8.iso
dd if=/dev/cdrom of=/rhel5u8.iso
加載光盤鏡像
mount rhei5u8.iso /mnt/ -o loop
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.7
安裝包
lftp 192.168.1.253
lftp 192.168.1.253:~> ls
lftp 192.168.1.253:~> get biji ? ? ? ? (get后面是要下載的文件) ?
lftp 192.168.1.253:~> mirror software ?(mirror后面是目錄)
lftp 192.168.1.253:~> exit
source packet
1./configure --prefix=/usr/local/lftp
2.make ?(如果err : make clean)
3.make install
4.cd /usr/local/lftp/bin ?
? ./lftp加ip地址?
(或者先將當前目錄加入PATH=$PATH:.然后直接lftp +ip地址)
src.rpm
rpm -q rpm-build 確定安裝過rpm-build
rpm -ivh lftp-3.5.1-2.fc6.src.rpm
cd /usr/src/redhat/SPECS/
rpmbuild -bb lftp.spec rmp文件的重建
計劃任務
at 13:49?
at> touch /tmp/at.txt
at> <EOT> ?------------ctrl+d
at -l 查詢
atrm 編號 刪除計劃任務
crontab
service crond restart
crontab -e
* * * * *
分時日月周
分(00-59)
時(00-23)
日(01-31)
月(01-12)
周(0-7)
* * * * * ?date >>/tmp/date 每分鐘執行一次
*/5 * * * * ?每5分鐘執行一次
05 * * * * ? 每小時第5分鐘時執行一次
05 14 * * * ?每天的14點05分執行一次
05 14 15 * * 每月的15號14點05執行一次
05 14 15 10 * 每年的10月15號14點05 執行一次
05 14 15 10 7 每年的10月15號并且是周日14點05分執行一次
05 14,15,17 10 * * 每月10號的14 15 17點05分鐘執行?
05 15 10,15,25 10 1-5 每年的10月10 15 25號如果是周1-周5 那15 05分執行
練習:
1.你當前系統時間的2分鐘后 執行在/tmp目錄下創建一個aa.txt的文件
25 14 10 12 * touch /tmp/aa.txt
2.在你當前系統的5分鐘后 將boot目錄備份 /backup 要求:備份的包名取當前系統時間(如:2012-12-9-boot.tar.gz)
#!/bin/bash
/bin/tar -zcvf /backup/`date +%Y-%m-%d`-boot.tar.gz /boot
crontab -e
32 14 10 12 * /backup/backup.sh
crontab -l 查詢計劃任務
crontab -r 移除所有的計劃任務
計劃任務保存位置/var/spool/cron/
crontab -e -u robin ?管理員編輯robin的計劃
系統的計劃
/etc/crontab
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
00 02 * * 0 root run-parts /etc/cron.user
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/
etc/cron.deny 限制普通用戶使用計劃任務
/etc/anacrontab 沒執行的計劃任務在開機65*分鐘執行沒有執行的計劃任務
查找命令
1.which ? (僅限查找命令)
2.whereis (僅限查找命令)
3.grep
4.locate ?(每一次用前先updatedb一下,有索引)
5.find
-rw-r--r-- 1 root root 39410 12-03 22:22 install.log
find / -name date.txt根據文件名稱
find / -type d -ls ? 根據文件類型
find / -links 2 -ls ?根據硬連接數
find /home -user tom -ls ? ?查找關于用戶名的所有文件
find /home -group uplooking -ls 根據所屬組名
find /home -nouser -exec rm -r {} \;&>/dev/null(&>標準正確和錯誤輸出)
find /home -user abc2 -ok rm -r {} \;交互式刪除
find /home -nogroup
find /home -nouser -a -nogroup ? 沒有所屬組的
find /home \( -nouser -o -nogroup \) -ls
按大小查找
find /root/test/ -size 400M ?等于400M的文件
find /root/test/ -size +400M 大于400M的文件
find /root/test/ -size -400M 小于400M的文件?
find /root/test/ -size +200M -a -size -400M
find /root/test/ -size +200M -o -size -400M?
find /root/test/ -size -200M -o -size +400M?
按時間查找
touch -m -d 20121203 tt.txt ? ? ? ? 修改文件屬性的日期
touch -m -t 201212100000.00 yy.txt ?修改文件屬性的時間
find /root/test/ -mtime 3 ?距離今天正好三天的文件
find /root/test/ -mtime -5 五天之內的
find /root/test/ -mtime +5 五天之前
find /root/test/ -mtime -10 -a -mtime +3?
find /root/test/ -mtime -10 -o -mtime +3
find /root/test/ -mtime +8 -o -mtime -3
按權限查找
find /root/test -perm 600(權限值)
find /root/test -perm +600(任意匹配,九個只有要一個相同就匹配)
find /root/test -perm -600(完全匹配,3位對3位匹配,只要查找的是權限含有600的)
find / -type f | xargs file
cut -d: -f 1 /etc/passwd | xargs mkdir
rm -rf `cut -d: -f 1 /etc/passwd`
練習:
創建以下文件 ?
dd if=/dev/zero of=aa.txt bs=10M count=1
aa.txt 10M 1201
cc.txt 15M 1203
tt.txt 20M 1205
xx.txt 25M 1207
yy.yxt 30M 1210?
1.查找該目錄下大于15M的文件
2.查找該目錄下大于15M并且小與25M的文件
3.查找該目錄下大于15M并且小與25M的文件并將該文件拷貝到/tmp下
4.查找該目錄下7天以內的文件
5.查找該目錄下8天以內3天以前的文件
6.查找該目錄下8天以內并且大于15M的文件
7.查找該目錄下8天以內或者小于25M的文件并將該文件拷貝到/home下
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.10
磁盤管理
fdisk -l 分區表信息
fdisk /dev/sda 分區
d ? delete a partition
l ? list known partition types
m ? print this menu
n ? add a new partition
p ? print the partition table
q ? quit without saving changes
t ? change a partition's system id
w ? write table to disk and exit
Command (m for help): n
e ? extended
? ? p ? primary partition (1-4)
Selected partition 4
First cylinder (26020-38913, default 26020): ?回車
Last cylinder or +size or +sizeM or +sizeK (26020-38913, default 38913): +500M
Command (m for help): w
partprobe /dev/sda 同步分區表
ls /dev/sda*
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? df -Th 顯示所有掛載設備的信息
mkfs.ext3 /dev/sda4
mount -t ext3 /dev/sda4 /mnt
df -Th
文件系統 ? ? ?類型 ? ?容量 ?已用 可用 已用% 掛載點
/dev/sda2 ? ? ext3 ? ?190G ? 11G ?170G ? 6% /
/dev/sda1 ? ? ext3 ? ? 99M ? 12M ? 83M ?12% /boot
tmpfs ? ? ? ?tmpfs ? 1009M ? ? 0 1009M ? 0% /dev/shm
/dev/sda4 ? ? ext3 ? ?471M ? 11M ?437M ? 3% /mnt
刪除分區
umount /dev/sda4
fdisk /dev/sda
Command (m for help): d
Partition number (1-4): 4
Command (m for help): w
fdisk -l
partprobe /dev/sda
擴展分區
fdisk /dev/sda
Command (m for help): n
Command action
? ?e ? extended
? ?p ? primary partition (1-4)
e
First cylinder (26020-38913, default 26020): ?回車
Last cylinder or +size or +sizeM or +sizeK (26020-38913, default 38913): 回車
Command (m for help): w
邏輯分區
fdisk /dev/sda
Command (m for help): n
First cylinder (26020-38913, default 26020): 回車
Last cylinder or +size or +sizeM or +sizeK (26020-38913, default 38913): +500M
partprobe /dev/sda
mkfs.ext3 /dev/sda5
mount -t ext3 /dev/sda5 /mnt
練習:
分出兩個邏輯分區sda5 sda6
1.掛載/dev/sda5 /mnt 在/mnt創建文件sda5.txt?
?掛載sda6 /mnt ?能不能掛?如能掛還能不能看到sda5.txt
2.掛載sda5 /mnt上 ?再將sda5 掛載到/opt上 能不能掛?
mount -o remount,rw /dev/sda5 ?U盤不能讀寫時利用此條命令
卷標
e2label /dev/sda5 ? 查詢
e2label /dev/sda5 disk5 設置
自動掛載:
mount -t iso9660 /media/disk/Deepin_GhostXP_SP3_PRO_V11.4.iso /mnt -o loop 掛載光盤鏡像
1./etc/rc.local
mount /dev/sda5 /mnt
2./etc/fstab
/dev/sda6 ? ? ? ? ?/opt ? ? ? ? ? ? ext3 ? ?defaults ? ? ? ?0 0
/鏡像名稱 ? /mnt ? ? ? ? ? ?iso9660 defaults,loop ? 0 0
3.autofs(按需掛載)
1).vim /etc/auto.master
? ?/test /etc/auto.test
2).mkdir /test
? ?touch /etc/auto.test
3).vim /etc/auto.test
? ?haha -fstype=ext3,rw,sync ? :/dev/sda5
hehe ? ?-fstype=nfs,rw,sync ? ? 192.168.1.210:/20121220/ftp
4).service autofs restart
測試:
cd /test/haha
mount
練習:在/目錄下創建/yum目錄 ?在yum目錄下使用autofs和yum相結合 實現:yum install軟件時自動掛載鏡像文件,并且完成安裝
1).vim /etc/auto.master
? ?/yum /etc/auto.yum ?--timeout=10
2).mkdir /yum
? ?touch /etc/auto.yum
3).vim /etc/auto.yum
? ?iso -fstype=iso9660,ro,loop ?:/root/Desktop/linux_software/rhel5u8.iso?
4).service autofs restart
watch -n 1 mount
vim /etc/yum.repos.d/yum.repo
[rhel5u8]
name=cdrom yum
baseurl=file:///yum/iso/Server
enabled=1
gpgcheck=0
yum reinstall httpd
交換分區的擴大縮小
擴大
分區方式
mkswap /dev/sda5
swapon /dev/sda5
free
swapoff /dev/sda5
free
swapon -s 查詢交換分區信息
文件方式
dd if=/dev/zero of=swap bs=1000M count=1
mkswap /swap
free
swapon /swap
free
swapon -s
swapoff /swap
格式化/swap為ext3 是否能格式化?能掛載?能不能創建文件?
磁盤配額(基于磁盤)
1.mount -o usrquota /dev/sda6 /mnt/
2.quotacheck /mnt/
3.edquota -u robin
Disk quotas for user robin (uid 5011):
Filesystem ? ?blocks ? ? ?soft ? ? ? hard ? ? inodes ? ? soft ? ? hard
/dev/sda6 ? ? ?0 ? ? ? ? ?50 ? ? ? ? 100 ? ? ? ? ?0 ? ? ? ?0 ? ? ? ?0
4.quotaon /mnt
測試
su - robin
cd /mnt
dd if=/dev/zero of=data1 bs=60K count=1
dd if=/dev/zero of=data2 bs=60K count=1
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.11
文件個數
1.mount -o usrquota /dev/sda6 /mnt/
2.quotacheck /mnt/
3.edquota -u robin
Disk quotas for user robin (uid 5011):
Filesystem ? ?blocks ? ? ?soft ? ? ? hard ? ? inodes ? ? soft ? ? hard
/dev/sda6 ? ? ?0 ? ? ? ? ?50 ? ? ? ? 100 ? ? ? ? ?0 ? ? ? ?10 ? ? ? 15
4.quotaon /mnt
組配額:
創建用戶tom和jerry 將主組改為uplookig
1.mount -o usrquota,grpquota /dev/sda6 /mnt/
2.quotacheck -g /mnt/
3.edquota -g uplooking
4.quotaon -g /mnt
測試 設定組配額是用戶共有還是每個用戶都各有設定值
文件系統
ext2 ext3 ext4 vfat ntfs nfs cifs
tune2fs -l /dev/sda5
tune2fs -c 50 /dev/sda5 修改最大掛載次數,50次后,進行磁盤檢測
tune2fs -C 10 /dev/sda5 修改已經掛載的次數
tune2fs -L aa /dev/sda5 修改磁盤的卷標
tune2fs -o acl /dev/sda5 磁盤支持的屬性
tune2fs -o ^acl /dev/sda5 ?取消磁盤的屬性
軟鏈接和硬鏈接區別
ln -s /root/ruan.txt /tmp/ruan.txt 建立軟鏈接
ln /root/ying.txt /tmp/ying.txt ? 建立硬鏈接
軟硬鏈接區別:
1.inode號
軟鏈接和源文件inode號是不同的
硬鏈接和源文件inode號是相同的
2.權限
軟鏈接的權限永遠都是777 即使修改軟鏈接文件的權限,軟鏈接文件權限不變,源文件的權限改變。
硬鏈接的權限和源文件永遠相同
3.剪切和刪除
軟鏈接的源文件不能剪切,改名和刪除
硬鏈接的源文件可以剪切,改名和刪除
4.跨文件系統
軟鏈接是可以跨文件系統的
硬鏈接不可以跨文件系統
5.對目錄操作
軟連接可以對目錄作用的
硬鏈接不可以對目錄作用
6.創建過程
軟鏈接創建時必須寫絕對路徑
硬鏈接創建時可以相對可以絕對
磁盤陣列(raid)
raid0 ? ? ? ? raid1 ? ? ? ? ? raid5 ? ? ? ? ? ? ? raid10
條帶化 鏡像 帶奇偶校驗條帶化 raid1+raid0
2塊磁盤 2塊磁盤 3塊磁盤 4塊磁盤
500M 500M 500 500M
1G 500M 1G 1G
創建磁盤陣列
mdadm -C /dev/md0 -l 5 -n 3 /dev/sda5 /dev/sda6 /dev/sda7
-C 創建 ?-l 級別 -n 磁盤數量
mdadm -D /dev/md0 顯示陣列信息
mdadm -Ds 顯示掃描信息
mdadm -S /dev/md0 停止
mdadm -A /dev/md0 /dev/sda{5,6,7} 停止后在啟動
mdadm -S /dev/md0 ; rm -rf /dev/md0 永久刪除
mdadm --zero-superblock /dev/sda5 ?刪除后清除raid痕跡
陣列的永久保存
/usr/share/doc/mdadm-2.6.9/mdadm.conf-example
touch /etc/mdadm.conf
vim /etc/mdadm.conf
DEVICE /dev/sda5 /dev/sda6 /dev/sda7
ARRAY /dev/md0 level=raid5 num-devices=3 metadata=0.90 UUID=48
a8e4a9:94b04ca2:2453e310:a39dd56d
(mdadm -Ds >> /etc/mdadm.conf)
mdadm -S /dev/md0
mdadm -D /dev/md0
mdadm -As ? (加入這個命令,就不用重啟計算機了)
mdadm -D /dev/md0
模擬損壞
mount /dev/md0 /mnt
dd if=/dev/zero of=/mnt/data bs=250M count=1
md5sum data 查看date文件的MD5值
ab3248888d6f10ef30a084fac6a1e2fd ?data
mdadm /dev/md0 -f /dev/sda5 ?讓某一硬盤損壞
mdadm -D /dev/md0
md5sum data ?
ab3248888d6f10ef30a084fac6a1e2fd ?data
mdadm /dev/md0 -r /dev/sda5 ? 把這塊硬盤拔出來移出掉
mdadm /dev/md0 -a /dev/sda8 ? 加入新的硬盤
mdadm -D /dev/md0
md5sum data
ab3248888d6f10ef30a084fac6a1e2fd ?data
備盤:
1.在已做好raid上添加備盤
mdadm /dev/md0 -a /dev/sda8
mdadm -D /dev/md0
mdadm /dev/md0 -f /dev/sda5
mdadm -D /dev/md0
2.創建raid時指定備盤
mdadm -C /dev/md1 -l 5 -n 3 /dev/sda{5,6,7} -x 1 /dev/sda8 添加備盤
然后修改mdadm.conf
LVM邏輯卷管理
LVM的創建
1.建立pv
pvcreate /dev/sda5 /dev/sda6
pvs(scan的意思)或者pvdisplay 顯示創建的
2.建立vg
vgcreate vg0 /dev/sda5 /dev/sda6
vgs
vgdisplay
3.建立lv
lvcreate -L 200M -n /dev/vg0/lv0 vg0
lvs或lvdisplay
使用lvm
mkfs.ext3 /dev/vg0/lv0?
mount /dev/vg0/lv0 /mnt
lv的在線擴容(在線就是不用umount)
lvextend -L +150M /dev/vg0/lv0
lvs
resize2fs /dev/vg0/lv0 352M
df -Th
lv的縮小
umount /mnt/
e2fsck -f /dev/vg0/lv0 磁盤檢測文件
resize2fs /dev/vg0/lv0 180M
lvs ??
mount /dev/vg0/lv0 /mnt/
df -Th
lvresize -L 180M /dev/vg0/lv0
lvs
vg擴大
pvcreate /dev/sda7
pvs
vgextend vg0 /dev/sda7
vgs
vg縮小
vgreduce vg0 /dev/sda7 (/dev/sda7 沒有數據)
vgs
數據移動
pvmove /dev/sda5 /dev/sda6 ?指定設備移動數據
pvmove /dev/sda6 ?移動數據到任意設備,將/dev/sda6數據清空
刪除lvm
lvremove /dev/vg0/lv0?
lvs
vgremove vg0
vgs
pvremove /dev/sda{5,6,7,8}
pvs
作業:
創建5,6,7,8,9,10 6個分區 使用5,6,7創建raid5 使用8,9創建raid0?
在將raid5創建成lv0 使用raid0 擴大lv0
模擬/dev/sda5損壞 將sda10從raid5替換/dev/sda5 并且保證數據的完整?
raid0 raid1 raid10創建刪除以及模擬損壞
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.12
lvm快照
創建快照
lvcreate -L 50M -s -n /dev/vg0/lv0-s0 /dev/vg0/lv0
查詢
lvdisplay
刪除快照
lvremove /dev/vg0/lv0-s0
1.只使用快照文件,該情況下源lv內數據不會作任何改動,所有改動數據都存在快照里,注意:如果快照空間使用完,該快照自動摧毀...
2.只使用源lv,快照做為備份保存下來,注意:快照的大小,大于等于源lv,否則可能出現數據不能恢復,快照損壞的問題
系統啟動過程
1.bios加電 啟動項硬盤 光盤 網絡 U盤 軟盤
2.讀取硬盤MBR(512字節)-----446字節引導程序----64分區表---aa55(magic number)
|-stage1----->stage1.5------->stage2----/boot/grub/grub.conf (grub bootloader)
grub加密添加以下行
password --md5 $1$MGoHy0$19uQSt4kVzvH0q3pYEsXw1
密碼用grub-md5-crypt得到
修復模式(光盤引導 boot: linux rescue)
安裝引導程序?
grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
練習:在修復模式下將root用戶密碼改為空
? ? ? 重新安裝引導程序
3.將內核釋放的內存,執行第一個進程 init(/sbin/init) 加載/etc/inittab文件確定運行級別
4./etc/rc.d/rc.sysinit 執行系統初始化文件(主機名,網絡...)
5.根據/etc/modprobe.conf或者/etc/modprobe.d/內容加載模塊
6.根據運行級別的設定讀取/etc/rc.d/rc*.d目錄下的腳本
? S ---start 啟動時 執行的腳本?
? K ---kill 關機時 執行的腳本
7.執行/etc/rc.local文件 設定用戶在進入系統前的設置
8.加載文本模式資源,加載圖形模式資源
9.login.加載用戶環境變量配置文件
排錯
ts1.sh
1.inittab
2.fstab
3.passwd(root)
ts2.sh
1.grub.conf
2.inittab
3.fstab
4.passwd
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.13
ts3.sh
1.grub.conf
2.e2label?
3.inittab
4.fstab
5.passwd
ts4.sh
1.grub.conf
2.e2label?
3.inittab
4.fstab
5.passwd
6.mount軟件安裝
7.rc.local
8.圖形 startx
9.計劃任務
編譯內核
uname -r ?查詢內核版本
uname -a
2.6.18-308.el5
lsmod 查詢所有模塊
modinfo 查詢模塊信息
insmod /lib/modules/2.6.18-308.el5/kernel/drivers/net/8139too.ko(必須絕對路徑) ?添加一個模塊
rmmod 8139too 刪除一個模塊(相當于禁用一下驅動程序)
modprobe 8139too ?動態加載模塊
modprobe 該命令執行依賴于/lib/modules/2.6.18-308.el5/modules.dep文件。當該文件丟失時。使用 depmod -a建立即可
創建塊設備文件
mknod -m 640 /dev/sda ?b ? ?8 ? ? ? ?0
? ? ? ?權限 ? ?名稱 ? ? ?類型 ?主設備號 ?從設備號
/usr/local/src/linux-2.6.30/Documentation/devices.txt ?主從設備號查詢的文件
開始編譯內核
make mrproper
make menuconfig
make
make modules_install
make install
解決錯誤
rm -rf /tmp/*
cp /boot/initrd-2.6.30.img /tmp
mkdir /tmp/initrd
cd /tmp/initrd/
zcat ../initrd-2.6.30.img | cpio -i
vim /tmp/initrd/init
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
find . | cpio -c -o > initrd
gzip -9 initrd
mv initrd.gz initrd.img
cp initrd.img /boot
vim /boot/grub/grub.conf
特殊屬性和facl
i屬性 不允許刪除,修改,追加 目錄不能創建刪除文件 可以復制
a屬性 允許刪除,修改,剪切,可以追加內容。 對目錄不可以刪除,可以創建新文件。可以復制
facl(基于磁盤)
mount -o acl /dev/sda5 /mnt
setfacl -m u:xiao3:r baobiao.txt ?單獨設置用戶權限
setfacl -m g:cw2:r baobiao.txt 單獨設置組權限
setfacl -m o:rw baobiao.txt ?修改其他人權限
setfacl -m m:r baobiao.txt 修改mask值
getfacl baobiao.txt
setfacl -x u:xiao3 baobiao.txt 刪除一個用戶權限
setfacl -x g:cw2 baobiao.txt 刪除一個組的權限
setfacl -b baobiao.txt ?清楚已設置所有facl 并且去掉+?
練習:
5.1).建立三個普通用戶seker,zorro,shrek.用root用戶在/root目錄中建立一個文件abc.txt
? 2).使seker用戶既能讀又能寫abc.txt文件,但不能刪除
? ? ?使zorro用戶只能讀取,不能寫也不能刪這個文件
? ? ?使shrek用戶只能刪除,不能讀寫這個文件.
以上三個條件同時成立
facl完成
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.14
網絡管理
應用層
表示層
會話層
傳輸層 ? ? ? ?應用層
網絡層 ? ? ?傳輸層
數據鏈路層 ? ?網絡層
物理層 ? ? ? ?數據鏈路層
mii-tool
ifconfig
setup
service network restart
配置文件:
/etc/sysconfig/network-scripts/ifcfg-eth0
ifconfig eth0 192.168.100.100 ?臨時修改ip
絡管理
應用層
表示層
會話層
傳輸層 ? ? ? ?應用層
網絡層 ? ? ?傳輸層
數據鏈路層 ? ?網絡層
物理層 ? ? ? ?數據鏈路層
mii-tool
ifconfig
setup
service network restart
配置文件:
/etc/sysconfig/network-scripts/ifcfg-eth0
ifconfig eth0 192.168.100.100 ?臨時修改ip
ifconfig eth0:0 10.10.10.10 ?臨時網卡別名
網卡別名永久生效:
cp /etc/sysconfig/network-scripts/ifcfg-eth0 etc/sysconfig/network-scripts/ifcfg-eth0:0
vim etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=none
HWADDR=00:e0:4c:eb:c0:d8
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=10.10.10.1
TYPE=Ethernet
重啟網卡
ifconfig eth0 down 禁用網卡eth0
ifconfig eth0 up ? 開啟網卡eth0
相當于
ifdown eth0
ifup eth0
ifdown eth0;ifup eth0
ifdown eth0&&ifup eth0
ip addr show
route -n 查看路由信息
route add default gw 192.168.1.253 添加路由表信息
route del default gw 192.168.1.253
arping 192.168.1.210 判斷是否和我ip沖突
arp連接我電腦的ip
traceroute 192.168.1.210 查詢到目標ip的路由信息
ping -c 3 192.168.1.210
/proc/sys/net/ipv4/icmp_echo_ignore_all 0回應ping 1不回應
/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 1不響應廣播包 0是相應廣播包
echo 1 > /proc/sys/vm/drop_caches 釋放緩存
echo 1 > /proc/sys/net/ipv4/ip_forward 打開路由轉發功能
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.17
主機名的設定
hostname
hostname zhb.com
永久修改主機名
vim /etc/sysconfig/network
HOSTNAME=zhb.com
主機名與ip地址的映射關系
/etc/hosts
192.168.1.253 ? zhb.com
服務管理
DHCP(動態分配ip地址)
安裝包:
dhcp-3.0.5-31.el5.i386.rpm
配置文件:
/etc/dhcpd.conf
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
啟動服務:
service dhcpd restart
/etc/init.d/dhcpd restart
工作原理:
C S
?-----DHCPDISCOVER-->
?<----DHCPOFFER------
?-----DHCPREQUEST--->
?<----DHCPACK--------
配置流程:
ddns-update-style interim;
ignore client-updates;
subnet 172.16.172.0 netmask 255.255.255.0 {
? ? ? ? ?option routers ? ? ? ? ? ? ? ? ?172.16.172.1;
? ? ? ? ?option subnet-mask ? ? ? ? ? ? ?255.255.255.0;
? ? ? ? ?option domain-name ? ? ? ? ? ? ?"domain.org";
? ? ? ? ?option domain-name-servers ? ? ?202.106.0.20;
?range dynamic-bootp 172.16.172.3 172.16.172.254;
? ? ? ? ?default-lease-time 21600;
? ? ? ? ?max-lease-time 43200;
host ns {
? ? ? ? next-server marvin.redhat.com;
? ? ? ? hardware ethernet 00:0C:29:3D:89:03; ?-----指定服務器ip的mac
? ? ? ? fixed-address 172.16.172.100; ---------指定的ip
}
}
客戶端:
service network restart
pkill dhclient
dhclient
服務端租約文件位置:/var/lib/dhcpd/dhcpd.leases
客戶端租約文件位置:/var/lib/dhclient/
dhcp服務中繼服務(三種)
/etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 172.16.172.0 netmask 255.255.255.0 {
? ? ? ? option routers ? ? ? ? ? ? ? ? ?172.16.172.1;
? ? ? ? option subnet-mask ? ? ? ? ? ? ?255.255.255.0;
? ? ? ? option domain-name-servers ? ? ?202.106.0.20;
? ? ? ? range dynamic-bootp 172.16.172.2 172.16.172.254;
? ? ? ? default-lease-time 21600;
? ? ? ? max-lease-time 43200;
}
subnet 100.100.100.0 netmask 255.255.255.0 {
? ? ? ? option routers ? ? ? ? ? ? ? ? ?100.100.100.1;
? ? ? ? option subnet-mask ? ? ? ? ? ? ?255.255.255.0;
? ? ? ? option domain-name-servers ? ? ?202.106.0.20;
? ? ? ? range dynamic-bootp 100.100.100.2 100.100.100.254;
? ? ? ? default-lease-time 21600;
? ? ? ? max-lease-time 43200;
}
service dhcpd restart
中繼服務器的配置
vim /etc/sysconfig/dhcrelay
INTERFACES="eth0 eth1"
DHCPSERVERS="192.168.1.153"
開啟路由轉發功能 echo 1 > /proc/sys/net/ipv4/ip_forward
service dhcrelay restart
日志管理
配置文件:
/etc/syslog.conf
啟動服務:
service syslog restart
AAAAA.BBBBB CCCCC
AAAAA 產生日志的對象
authpriv
cron
uucp
news
daemon
syslog
BBBBB 日志級別
debug
info
notice
warning
err
crit
alert
emerg
mail.err 記錄err以上級別的信息
mail.=err 只記錄err級別信息
mail.!=err 除了err級別的信息
CCCCC 保存日志的位置
1.保存到文件
*.info;mail.none;authpriv.none;cron.none ? ? ? ?/var/log/messages
2.報存到某個終端
*.info;mail.none;authpriv.none;cron.none ? ? ? ?/dev/pts/0
3.發送給某個用戶
*.info;mail.none;authpriv.none;cron.none tom
日志集中管理
服務端:
vim /etc/sysconfig/syslog
# Options to syslogd
# -m 0 disables 'MARK' messages.
# -r enables logging from remote machines
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS="-m 0 -r -x"
service syslog restart
客戶端:
vim /etc/syslog.conf
*.info;mail.none;authpriv.none;cron.none ? ? ? ? ? ? ? ?/var/log/messages
*.info;mail.none;authpriv.none;cron.none ? ? ? ?@192.168.1.253
service syslog restart
日志的輪轉
vim /etc/logrotate.conf
實驗:
/var/log/test.log ? ? 被切割日志
/etc/logrotate.d/test 配置文件
/var/log/test.log {
? ? missingok
? ? size 30k
? ? daily
? ? rotate 7
? ? create 0777 root root
}
logrotate -f /etc/logrotate.d/test
logrotate /etc/logrotate.d/test (修改系統時間)
logrotate -d test(顯示調試信息)
文件服務器(nfs ftp ?samba)
nfs
配置文件:
/etc/exports
啟動服務:
server portmap restart (6.0版本是rpcbind)
server nfs restart
配置流程:
vim /etc/exports
/nfs *(rw,sync)
/nfs192.168.1.0/24(rw,sync) 10.10.10.0/24(ro)
/nfs ? 192.168.1.252/32(rw)
service portmap restart
service nfs restart
客戶端可以創建文件:
1.服務端設定共享目錄其他人權限有寫權限(客戶端使用的用戶為nfsnobody)
2./nfs ? ?*(rw,sync,no_root_squash) no_root_squash 取消root權限
客戶端:
showmount -e 192.168.1.253
mount -t nfs 192.168.1.253:/nfs /opt
服務端:
showmount -a
練習:
服務端共享/nfs目錄 客戶端3種方式自動掛載
192.168.1.253:/nfs ? ? ?/opt ? ? ? ? ? ? nfs ? ? defaults ? ? ? ?0 0
作業:
NAS服務器(raid lvm nfs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.18
ftp服務器
安裝包:
vsftpd-2.0.5-24.el5.i386.rpm
配置文件:
/etc/vsftpd.conf
數據目錄:
/var/ftp
啟動服務:
service vsftpd restart
端口:20(數據傳輸的端口) 21(服務的端口)
vim /etc/service 查詢服務的端口和協議等
lftp?
get ? 下載文件
mirror ? ?下載目錄
put ? 上傳文件
mirror -R 上傳目錄
允許匿名用戶上傳:
修改/etc/vsftpd.conf
anon_upload_enable=YES
anon_mkdir_write_enable=YES?
service vsftpd restart
chmod 777 /var/ftp/pub ?此目錄作為上傳目錄(ftp主目錄權限不能改變)
練習:lftp lcd?
上傳一個文件/root/install.log和一個目錄/boot
測試install.log 能否下載? ?boot目錄是否能看目錄內文件?
上傳文件權限:
anon_umask=022
允許匿名用戶刪除或者改名:
anon_other_write_enable=YES
修改匿名用戶主目錄:(兩種方法)
1.修改ftp用戶家目錄
vim /etc/passwd里面ftp的家目錄
2.修改/etc/vsftpd/vsftpd.conf文件,加上anon_root=/nfs
然后重啟服務
上傳下載限速:
anon_max_rate=20000
本地用戶登錄
lftp -u tom,123 192.168.1.253
修改本地用戶登錄目錄
local_root=/nfs
限制本地用戶的下載速度
local_max_rate=20000
練習:
公司有2個部門,每個部門有一個帳戶登錄到自己部門的目錄
2個部門的主管各有一個帳號登錄到同一個目錄
限制本地目錄的切換:
1.chroot_local_user=YES(限制本地所有普通用戶)
2.chroot_list_enable=YES(有選擇的禁止用戶切換目錄)
? chroot_list_file=/etc/vsftpd/chroot_list
? (touch /etc/vsftpd/chroot_list 不允許切換目錄的用戶,寫到該文件中)
限制本地用戶的登錄:
1./etc/vsftpd/ftpusers 寫入該文件的用戶不能登錄到ftp服務器
2.userlist_deny=YES ?黑名單 寫入/etc/vsftpd/user_list文件的用戶不能登錄到ftp服務器
? userlist_deny=NO ? 為白名單 只有寫入/etc/vsftpd/user_list文件用戶能登錄
虛擬用戶
1.建立用戶數據庫
# cat ftpuser.txt
test111 # 賬戶
pass111 # 密碼
test222
pass222
# rpm -qf $(which db_load)
db4-utils-4.3.29-9.fc6
#
# db_load -T -t hash -f ~/ftpuser.txt /etc/vsftpd/vsftpd_login.db
2.建立驗證模式文件
# mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
# vi /etc/pam.d/vsftpd
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
:wq
3.建立一個所有虛擬用戶使用的系統用戶
# useradd -d /home/vsftp virtual
# chmod 755 /home/vsftp
4.修改配置文件啟用虛擬用戶
guest_enable=YES # 開啟虛擬用戶功能
guest_username=virtual # 指定虛擬用戶使用的系統用戶
pam_service_name=vsftpd # 以/etc/pam.d/驗證模式文件名相同
5.重新啟動后可以用虛擬用戶登陸了.
為虛擬用戶設置不同權限
virtual_use_local_privs
設置為YES 時,虛擬用戶使用與本地用戶相同權限,設置為NO 時,虛擬用戶使用與匿
名用戶相同權限
1.添加per_user 功能參數,如果開啟了此功能,必須為每一個用戶都有配置文件
vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vsftp_user_conf
:wq
2.在/etc/vsftpd/vsftp_user_conf 這個目錄下建立與虛擬用戶同名的文件,文件中寫入用戶的
私
有參數
# echo "write_enable=NO" > /etc/vsftpd/vsftp_user_conf/test111
我們限制test111 禁止上傳文件
3.重啟動 vsftpd 登錄測試.
samba
安裝包:
samba-3.0.33-3.37.el5.i386.rpm
samba-client-3.0.33-3.37.el5.i386.rpm
配置文件:
/etc/samba/smb.conf
啟動服務:
service smb restart
配置流程:
security = share
[ll]
? ? ? ? comment = smb server
? ? ? ? path = /smb
? ? ? ? public = yes
? ? ? ? writable = yes
? ? ? ? printable = no
? ? ? ? browseable = yes ? 是否可見
客戶端
smbclient -L //192.168.1.253
smbclient //192.168.1.253/ll
mount -t cifs //192.168.1.253/ll /opt
用戶共享模式
security = user
[tt]
? ? ? ? comment = smb server
? ? ? ? path = /smb
? ? ? ? public = yes
? ? ? ? writable = yes
? ? ? ? printable = no
? ? ? ? browseable = yes
? ? ? ? valid users = tom @uplooking
? ? ? ??
? ? ? ? write list = tom
? ? ? ? read list = jerry(將writable = yes注釋掉)
? ? ? ? ?
? ? ? ? create mask = 777
? ? ? ? directory mask = 777
smbpasswd -a tom 添加?
smbpasswd -x tom 刪除
pdbedit -L 查詢添加smb的用戶
客戶端登錄
smbclient -U tom //192.168.1.253/tt
smbclient -U tom%123 //192.168.1.253/tt
mount -o user=tom,password=123 //192.168.1.253/tt /mnt
三種掛載:1 tt -fstype=cifs user=tom,password=123 ??
ssh服務
配置文件:
/etc/ssh/sshd_config
啟動服務:
service sshd restart
端口:
22
ssh 192.168.1.252
ssh root@192.168.1.252
ssh tom@192.168.1.252
scp install.log 192.168.1.253:/tmp/
scp -r /root/Desktop/ 192.168.1.253:/tmp/
wall (寫完內容后加一回車)
asdfasdafsdf
ctrl+d
write root /dev/pts/11
afasdfa
ctrl+d
netstat -anplt 查看端口:
netstat -anplt 80
?
who
w
last
lastlog
whoami當前登錄的用戶
who i am (和who am i一樣)切換用戶當前的登錄用戶
nmap(+IP)掃描端口
nmap 192.168.1.91
nmap -v -sP 192.168.1.0/24
ssh 192.168.1.253 -p 54321
scp -P 54321 ruan.txt ?192.168.1.253:/tmp/
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.19
密鑰
ssh-keygen ?生成公鑰和私鑰
id_rsa ?id_rsa.pub
scp /root/.ssh/id_rsa.pub 192.168.1.129:/root/.ssh/authorized_keys
測試
ssh 192.168.1.129
在虛擬機中做ssh-keygen還有scp操作后,實體機登錄虛擬機后不需要密碼
練習:
互相密鑰登錄
3臺相互登錄怎么做?
服務的管理(開機自啟動)
chkconfig --list
chkconfig --list dhcpd
chkconfig smb on
chkconfig smb off
chkconfig --level 35 smb on
chkconfig --del smb
chkconfig --add smb
ntsysv 工具
web服務器(apache)
安裝包:
httpd-2.2.3-63.el5.i386.rpm
配置文件:
/etc/httpd/conf/httpd.conf
啟動服務:
service httpd restart
服務器數據目錄:
/var/www/html/
端口:
80(不加密) 443(加密)
進程模式改為線程模式:
1.vim /etc/sysconfig/httpd?
? httpd-2.2.3-63.el5.i386.rpm ? ??
2.mv /usr/sbin/httpd /usr/sbin/httpd.prefork
? mv /usr/sbin/httpd.worker /usr/sbin/httpd
兩種方法都要重啟服務?
基于用戶家目錄發布網頁
<IfModule mod_userdir.c>
#UserDir disable
UserDir public_html
</IfModule>
useradd tom
useradd jerry
mkdir /home/tom/public_html
mkdir /home/jerry/public_html
chmod 707 /home/tom/
chmod 707 /home/jerry/
echo 'tom home' >> /home/tom/public_html/index.html
echo 'jerry home' >> /home/jerry/public_html/index.html
測試:
http://192.168.1.253/~tom/
http://192.168.1.253/~jerry/
發布一個不用拷貝的目錄
別名
alias /download /etc
<directory /etc>
? ? ? ? options indexes 目錄結構
order allow,deny
allow from 192.168.1.0/24 ?訪問控制
? ? ? ? #deny from 192.168.1.0/24
? ? ? ? deny from all
</directory>
注意:訪問控制
設置order表,當規則有沖突時,apache將會從后往前讀order表,最后位置關鍵字生效
用戶登錄訪問(驗證模式登錄)
幫助文檔包:httpd-manual-2.2.3-63.el5.i386.rpm
firefox /var/www/manual/index.html &
alias /download /etc
<directory /etc>
? ? ? ? options indexes
? ? ? ? AuthType Basic
? ? ? ? AuthName "Please insert your name and passwd!!!"
? ? ? ? AuthBasicProvider file
? ? ? ? AuthUserFile /etc/httpd/passwdb
? ? ? ? Require user jack
</directory>
htpasswd -c -b /etc/httpd/passwdb jack 123 ?創建用戶文件?
htpasswd -b /etc/httpd/passwdb rose 123 ? ? 添加用戶
測試
發布CGI腳本
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
? ? AllowOverride None
? ? Options None
? ? Order allow,deny
? ? Allow from all
</Directory>
在網頁內顯示用可執行文件的結果
touch /var/www/cgi-bin/
#!/bin/bash
echo -e "Content-type: text/html\n"
uname -a
date
測試
http://192.168.1.253/cgi-bin/cgi.sh
虛擬主機
基于域名配置
NameVirtualHost *:80
<VirtualHost *:80>
? ? ? ? DocumentRoot /var/www/html/baidu/
? ? ? ? servername www.baidu.com
</VirtualHost>
<VirtualHost *:80>
? ? ? ? DocumentRoot /var/www/html/sina/
? ? ? ? servername www.sina.com
</VirtualHost>
mkdir /var/www/html/baidu
mkdir /var/www/html/sina
echo "this is baidu" >> /var/www/html/baidu/index.html
echo "this is sina" >> /var/www/html/sina/index.html
cat /etc/hosts
192.168.1.253 ? www.baidu.com
192.168.1.253 ? www.sina.com
service httpd restart
測試
http://www.baidu.com/
http://www.sina.com/
基于ip配置
<VirtualHost 192.168.1.253:80>
? ? ? ? DocumentRoot /var/www/html/baidu/
? ? ? ? servername www.baidu.com
</VirtualHost>
<VirtualHost 10.10.10.1:80>
? ? ? ? DocumentRoot /var/www/html/sina/
? ? ? ? servername www.sina.com
</VirtualHost>
mkdir /var/www/html/baidu
mkdir /var/www/html/sina
echo "this is baidu" >> /var/www/html/baidu/index.html
echo "this is sina" >> /var/www/html/sina/index.html
cat /etc/hosts
192.168.1.253 ? www.baidu.com
10.10.10.1 ? www.sina.com
service httpd restart
測試
http://www.baidu.com/
http://www.sina.com/
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12.20
DNS(域名解析服務)
安裝包:
bind-9.3.6-20.P1.el5.i386.rpm
bind-chroot-9.3.6-20.P1.el5.i386.rpm?
bind-devel-9.3.6-20.P1.el5.i386.rpm
caching-nameserver-9.3.6-20.P1.el5.i386.rpm
啟動服務:
service named restart
端口:53
1.正向解析:
vim /etc/named.caching-nameserver.conf
listen-on port 53 { any; };
allow-query ? ? { any; };
allow-query-cache { any; };
match-clients ? ? ?{ any; };
match-destinations { any; };
2.定義域名,以及解析該域名服務器類型;
vim /etc/named.rfc1912.zones?
zone "163.com" IN {
? ? ? ? type master;
? ? ? ? file "163.com.zone";
};
3.設置域名解析
cd /var/named/chroot/var/named/
touch /var/named/chroot/var/named/163.com.zone
$TTL 86400
@ ? ? ? IN SOA ?dns.163.com. ?root ( 20121221 3H 15M 1W 1D )
? ? ? ? IN NS dns.163.com.
dns ? ? IN A 192.168.1.253
www ? ? IN A 192.168.1.253
chown :named 163.com.zone?
chmod 640 163.com.zone
測試:
客戶端DNS指向
vim /etc/resolv.conf
nameserver 192.168.1.253
host www.163.com
nslookup www.163.com
$TTL 86400
@ ? ? ? IN SOA ?dns.baidu.com. ?root ( 20121221 3H 15M 1W
1D )
? ? ? ? IN NS dns.baidu.com.
dns ? ? IN A 192.168.1.253
? ? ? ? IN MX 5 mail.baidu.com.
mail ? ?IN A ? ?192.168.1.253
web ? ? IN CNAME ?ftp.baidu.com.
ftp ? ? IN A ? ?192.168.1.253
www ? ? IN A 192.168.1.10
www ? ? IN A 192.168.1.89
www ? ? IN A 192.168.1.1
* ? ? ? IN A 192.168.1.253
ww ? ? ?IN A 192.168.1.253
wwww ? ?IN A 192.168.1.253
$GENERATE ? ? ? 1-254 ? stu$ ? ?IN A ? ?192.168.1.$
反向解析:
1.vim /etc/named.rfc1912.zones
zone "1.168.192.in-addr.arpa" IN {
? ? ? ? type master;
? ? ? ? file "163.com.arpa";
};
2.touch /var/named/chroot/var/named/163.com.arpa
? chwon :named /var/named/chroot/var/named/163.com.arpa
? chmod 640 /var/named/chroot/var/named/163.com.arpa
? ?$TTL 86400
? ?@ ? ? ? IN SOA ?dns.163.com. ? ?root ( 20121221 3H 15M 1W 1D)
? ? ? ? ? ?IN NS ? dns.163.com.
? ?1 ? ? ? IN PTR ?www.163.com.
? ?249 ? ? IN PTR ?www.163.com.
? ?$GENERATE ? ? ? 1-254 ? $ ? ? ? IN PTR ?stu$.uplooking.com.
3. service named restart
測試
host 192.168.1.1
轉發域服務器
options {
? ? ? ? allow-query { 192.168.1.0/24; };
? ? ? ? forward first;
? ? ? ? forwarders {61.175.153.129;};
};
allow-query-cache { any; };
forward only;
forwarders {192.168.1.254;};
主從服務器配置:
主:
1.vim /etc/named.rfc1912.zones
?zone "sohu.com" IN {
? ? ? ? ?type master;
? ? ? ? ?file "sohu.com.zone";
?allow-transfer { 192.168.1.252; };
?};
2.touch /var/named/chroot/var/named/sohu.com.zone
? chwon :named /var/named/chroot/var/named/sohu.com.zone
? chmod 640 /var/named/chroot/var/named/sohu.com.zone
$TTL 86400
@ ? ? ? IN SOA dns1.sohu.com. ? root ( 20121224 3H 15M 1W 1D )
? ? ? ? IN NS dns1.sohu.com.
? ? ? ? IN NS dns2.sohu.com.
dns1 ? ?IN A ?192.168.1.253
dns2 IN A ?192.168.1.252
www ? ? IN A ?192.168.1.253
3. service named restart
從:
1.安裝軟件包
bind-9.3.6-20.P1.el5.i386.rpm
bind-chroot-9.3.6-20.P1.el5.i386.rpm?
bind-devel-9.3.6-20.P1.el5.i386.rpm
caching-nameserver-9.3.6-20.P1.el5.i386.rpm
2.vim /etc/named.caching-nameserver.conf
? listen-on port 53 { any; };
? allow-query ? ? { any; };
? allow-query-cache { any; };
? match-clients ? ? ?{ any; };
? match-destinations { any; };
3.vim /etc/named.rfc1912.zones
zone "sohu.com" IN {
? ? ? ? type slave;
? ? ? ? file "slaves/sohu.com.zone";
? ? ? ? masters { 192.168.1.253; };
};
4. service named restart
? ?ls /var/named/chroot/var/named/slaves/sohu.com.zone
DNS主從數據transfer的TSIG方法
TSIG 事務簽名的 方式(Key)
dnssec-keygen -a hmac-md5 -b 128 -n HOST zhb.
cat Kzhb.+157+45587.private
主:
key zhb {
? ? ? ? algorithm hmac-md5;
? ? ? ? secret "KOowsxtnZEV2MKfmuan7aw==";
};
zone "uplooking.com" {
? ? ? ? type master;
? ? ? ? file "uplooking.com.zone";
? ? ? ? allow-transfer { key zhb; };
};
從:
key zhb {
? ? ? ? algorithm hmac-md5;
? ? ? ? secret "KOowsxtnZEV2MKfmuan7aw==";
};
zone "uplooking.com" IN {
? ? ? ? type slave;
? ? ? ? file "slaves/uplooking.com.zone";
? ? ? ? masters { 192.168.1.250 key zhb; };
};
子域授權
父域:
zone "sina.com" {
? ? ? ? type master;
? ? ? ? file "sina.com.zone";
};
$TTL 86400
@ ? ? ? IN SOA ?dns.sina.com. ? root ( 20121225 3H 15M 1W 1D)
? ? ? ? IN NS ? dns.sina.com.
dns ? ? IN A ? ?192.168.1.250
music.sina.com. ? ? ? ? IN NS ? dns.music.sina.com.
dns.music.sina.com. ? ? IN A ? ?192.168.1.240
www ? ? IN A ? ?192.168.1.240
ftp ? ? IN A ? ?192.168.1.240
子域:
zone "music.sina.com" IN {
? ? ? ? type master;
? ? ? ? file "music.sina.com.zone";
};
$TTL 86400
@ ? ? ? IN SOA ?dns.music.sina.com. ? ? root ( 20121224 3H 15M 1W 1D )
? ? ? ? IN NS dns.music.sina.com.
dns ? ? IN A ?192.168.1.240
www ? ? IN A ?192.168.1.240
? ? ? ? IN MX 5 mail.music.sina.com.
mail ? ?IN A ?192.168.1.240
測試:
將DNS指向父域,能夠解析到子域定義的域名
DNS視圖(智能DNS)
httpd服務端
192.168.1.55 192.168.1.101 192.168.1.210
客戶端
192.168.32 192.168.1.42 192.168.1.59
DNS:192.168.1.250
vim /etc/named.caching-nameserver.conf?
首先注釋掉已有的模熱視圖
acl tel { 192.168.1.32; };
acl cnc { 192.168.1.42; };
acl other { 192.168.1.59; };
view cncnet {
? ? ? ? match-clients { cnc; };
? ? ? ? recursion yes;
? ? ? ? include "/etc/12306cnc";
};
view telnet {
? ? ? ? match-clients { tel; };
? ? ? ? recursion yes;
? ? ? ? include "/etc/12306tel";
};
view othernet {
? ? ? ? match-clients { other; };
? ? ? ? recursion yes;
? ? ? ? include "/etc/12306other";
}; ? ? ?
2.cd /var/named/chroot/etc/
touch 12306{tel,cnc,other}
vim 12306cnc
zone "12306.com" IN {
? ? ? ? type master;
? ? ? ? file "12306.com.cnc";
};
vim 12306other
zone "12306.com" IN {
? ? ? ? type master;
? ? ? ? file "12306.com.other";
};
vim 12306tel
zone "12306.com" IN {
? ? ? ? type master;
? ? ? ? file "12306.com.tel";
};
3.cd /var/named/chroot/var/named
touch 12306.com.{cnc,tel,other}
vim 12306.com.cnc
$TTL 86400
@ ? ? ? IN SOA ?dns.12306.com. ?root ( 20121224 3H 15M 1W 1D )
? ? ? ? IN NS ? dns.12306.com.
dns ? ? IN A ? ?192.168.1.250
www ? ? IN A ? ?192.168.1.101
vim 12306.com.other
$TTL 86400
@ ? ? ? IN SOA ?dns.12306.com. ?root ( 20121224 3H 15M 1W 1D )
? ? ? ? IN NS ? dns.12306.com.
dns ? ? IN A ? ?192.168.1.250
www ? ? IN A ? ?192.168.1.210
vim 12306.com.tel
$TTL 86400
@ ? ? ? IN SOA ?dns.12306.com. ?root ( 20121224 3H 15M 1W 1D )
? ? ? ? IN NS ? dns.12306.com.
dns ? ? IN A ? ?192.168.1.250
www ? ? IN A ? ?192.168.1.55
chmod 640 12306.*
chown :named 12306*
service named restart
連續解析client1-client10
iptables
iptables -L -t filter
iptables -L -t nat
iptables -L -t mangle
service iptables save
iptables -A INPUT -j DROP
iptables -D INPUT -j DROP
iptables -D INPUT 3
iptables -I INPUT 1 -j DROP
iptables -R INPUT 3 -j ACCEPT
iptables -P INPUT DROP
iptables -P INPUT ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -j DROP
iptables -A INPUT -d 10.10.10.250 -j DROP
iptables -A OUTPUT -d 192.168.1.0/24 -j DROP
iptables -A OUTPUT -s ! 192.168.1.0/24 -j DROP
iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j DROP
iptables -A OUTPUT -d 192.168.1.0/24 -o eth0 -j DROP
iptables -A INPUT -p icmp -j DROP
iptables -A INPUT -p ! tcp -j DROP
iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -A OUTPUT -p tcp --sport 22 -j DROP
iptables -A INPUT -s 192.168.1.210 -i eth0 -p tcp --dport 80 -j DROP
iptables -A OUTPUT -d 192.168.1.210 -o eth0 -p tcp --sport 80 -j DROP
自定義鏈?
iptables -N new-chain?
iptables -A INPUT -s 192.168.1.0/24 -j new-chain
iptables -A new-chain -j DROP
iptables -E new-chain drop-chain
刪除自定義鏈
刪除定義自定鏈的規則
iptables -D INPUT 1
iptables -F drop-chain
iptables -X drop-chain
練習:
1.拒絕所有人訪問你的22號端口 除了自己主機ip(input 和 output)
iptables -A INPUT -s ! 192.168.1.250 -p tcp --dport 22 -j REJECT
iptables -A OUTPUT -d ! 192.168.1.250 -p tcp --sport 22 -j REJECT
2.拒絕192.168.1.0網段訪問你的httpd服務.(input 和 output實現)?
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j REJECT
iptables -A OUTPUT -d 192.168.1.0/24 -p tcp --sport 80 -j REJECT
3.只允許你的主機ip通過eth0網卡訪問虛擬機的ftp服務
iptables -A INPUT -s ! 10.10.10.250 -i eth0 -p tcp -m multiport --dport 20,21 -j REJECT
4.公司要求:只開啟服務器的80 8080 5900端口
iptables -A INPUT -p tcp -m multiport ! --dport 80,8080,5900,22 -j REJECT?
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 10.10.10.250
iptables -t nat -A POSTROUTING -j MASQUERADE
?iptables -t nat -A PREROUTING -d 192.168.1.250 -p tcp --dport 8080 -j DNAT --to 10.10.10.1
郵件服務器
安裝包:
postfix-2.3.3-2.3.el5_6.i386.rpm
dovecot-1.0.7-7.el5_7.1.i386.rpm
配置文件:
/etc/postfix/main.cf
/etc/dovecot/dovecot.conf
啟動服務:
service postfix restart
service dovecot restart
端口:
25 110 143
發送郵件:
1.安裝軟件
rpm -ivh postfix-2.3.3-2.3.el5_6.i386.rpm?
2.修改配置文件:
vim /etc/postfix/main.cf
69.myhostname = mail.zhb.com
77.mydomain = zhb.com
93.myorigin = $mydomain
107.inet_interfaces = all
155.mydestination = $myhostname, $mydomain, localhost
service sendmail stop
chkconfig sendmail off
service postfix restart
netstat -anplt | grep :25
lsof -i:25
COMMAND ?PID USER ? FD ? TYPE DEVICE SIZE/OFF NODE NAME
master ?4745 root ? 11u ?IPv4 ?18724 ? ? ?0t0 ?TCP *:smtp (LISTEN)
測試發送郵件:
useradd tom
passwd tom
useradd jerry
passwd jerry
telnet 192.168.1.250 25
Trying 192.168.1.250...
Connected to mail.zhb.com (192.168.1.250).
Escape character is '^]'.
220 mail.zhb.com ESMTP Postfix
ehlo mail.zhb.com ?-------------------------------與服務起建立一次連接
250-mail.zhb.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from: tom@mail.zhb.com-----------------------發件人信息
250 2.1.0 Ok
rcpt to:jerry@mail.zhb.com ?------------------------收件人信息
250 2.1.5 Ok
data ? ? ?-----------------------------------------內容
354 End data with <CR><LF>.<CR><LF>
hello i am tom !!!! who is it????------------------郵件內容
. ?------------------------------------------------結束郵件
250 2.0.0 Ok: queued as 6591F1F1002E
quit ? --------------------------------------------退出登錄
221 2.0.0 Bye
Connection closed by foreign host.
接受郵件:
1.安裝軟件:
yum install dovecot
service dovecot restart
netstat -anplt | grep :110
lsof -i:110
測試接收:
telnet 192.168.1.250 110
Trying 192.168.1.250...
Connected to mail.zhb.com (192.168.1.250).
Escape character is '^]'.
+OK Dovecot ready.
user jerry
+OK
pass 123
+OK Logged in.
list
+OK 1 messages:
1 475
.
retr 1
+OK 475 octets
Return-Path: <tom@mail.zhb.com>
X-Original-To: jerry@mail.zhb.com
Delivered-To: jerry@mail.zhb.com
Received: from mail.zhb.com (mail.zhb.com [192.168.1.250])
? ? ? ? by mail.zhb.com (Postfix) with ESMTP id B84101F1004A
? ? ? ? for <jerry@mail.zhb.com>; Thu, 27 Dec 2012 10:28:57 +0800 (CST)
Message-Id: <20121227022901.B84101F1004A@mail.zhb.com>
Date: Thu, 27 Dec 2012 10:28:57 +0800 (CST)
From: tom@mail.zhb.com
To: undisclosed-recipients:;
hello i am tom !!!! who is it????
.
quit
+OK Logging out.
Connection closed by foreign host.
圖形
squirrelmail-1.4.8-5.el5_4.10.noarch.rpm
service httpd restart
http://192.168.1.250/webmail/
修改中文
vim /etc/squirrelmail/config.php
$squirrelmail_default_language = 'zh_CN ';
xinetd
配置tftp
vim /etc/xinetd.d/tftp?
service tftp
{
? ? ? ? socket_type ? ? ? ? ? ? = dgram
? ? ? ? protocol ? ? ? ? ? ? ? ?= udp
? ? ? ? wait ? ? ? ? ? ? ? ? ? ?= yes
? ? ? ? user ? ? ? ? ? ? ? ? ? ?= root
? ? ? ? server ? ? ? ? ? ? ? ? ?= /usr/sbin/in.tftpd
? ? ? ? server_args ? ? ? ? ? ? = -s -c /tftpboot ?#-c 允許上傳
? ? ? ? disable ? ? ? ? ? ? ? ? = no #開啟服務
? ? ? ? per_source ? ? ? ? ? ? ?= 11
? ? ? ? cps ? ? ? ? ? ? ? ? ? ? = 100 2
? ? ? ? flags ? ? ? ? ? ? ? ? ? = IPv4
}
service xinetd restart
netstat -anplu | grep :69
tftp (rpm -ivh tftp-0.49-2.i386.rpm 安裝包)
tftp 192.168.1.250
tftp> get aa.txt
tftp> put install.log (相對路徑)
telnet服務
rpm -ivh telnet-server-0.17-39.el5.i386.rpm?
vim /etc/xinetd.d/telnet
service telnet
{
? ? ? ? flags ? ? ? ? ? = REUSE
? ? ? ? socket_type ? ? = stream
? ? ? ? wait ? ? ? ? ? ?= no
? ? ? ? user ? ? ? ? ? ?= root
? ? ? ? server ? ? ? ? ?= /usr/sbin/in.telnetd
? ? ? ? log_on_failure ?+= USERID
? ? ? ? disable ? ? ? ? = no ?#開啟服務
}
service xinetd restar
netstat -anplt | grep :23
測試登錄:
telnet 192.168.1.250
Trying 192.168.1.250...
Connected to mail.zhb.com (192.168.1.250).
Escape character is '^]'.
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
Kernel 2.6.18-308.el5 on an i686
login: tom
Password: 123
root管理不能登錄到telnet服務
無人職守安裝
yum install system-config-kickstart
system-config-kickstart
注意yum名稱[rhel-server]
vim /nfs/ks/ks.cfg
25 rootpw --iscrypted $1$hHg2yEYO$ciMLfXq7VVBIpTlu/ybb..
26 key --skip
nfs共享
vim /etc/exports?
/nfs/ks ? ? ? ? *(ro) ?共享自動應答文件
/nfs/iso ? ? ? ?*(ro) ? 共享光盤內容
cd /tftpboot/
? 958 ?ls
? 959 ?touch aa.txt
? 960 ?ll -d /tftpboot/
? 961 ?chmod 757 /tftpboot/
? 962 ?ll -d /tftpboot/
? 963 ?ls
? 964 ?cat install.log?
? 965 ?lsa
? 966 ?ls
? 967 ?rm -rf aa.txt install.log?
? 968 ?ls
? 969 ?history?
? 970 ?cd?
? 971 ?ls
? 972 ?cd /media/
? 973 ?ls
? 974 ?cd /mnt/
? 975 ?ls
? 976 ?ls
? 977 ?cd images/pxeboot/
? 978 ?ls
? 979 ?cp initrd.img vmlinuz /tftpboot/
? 980 ?cd /nfs
? 981 ?mkdir /nfs
? 982 ?cd /nfs/
? 983 ?ls
? 984 ?mkdir ks
? 985 ?mkdir iso
? 986 ?ls
? 987 ?vim /etc/exports?
? 988 ?mount /dev/cdrom /nfs/iso/
? 989 ?service nfs restart
? 990 ?service nfs restart
? 991 ?showmount -e 192.168.33.1
? 992 ?ls
? 993 ?cd /
? 994 ?cd?
? 995 ?ls
? 996 ?vim anaconda-ks.cfg?
? 997 ?cd /nfs/ks/
? 998 ?ls
? 999 ?vim ks.cfg?
?1000 ?vim /etc/exports?
?1001 ?history
轉載于:https://blog.51cto.com/11067624/2141262
總結
以上是生活随笔為你收集整理的redhat6.x_linux学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 慕课-北京理工大学 机器学习 大学生上
- 下一篇: 【Linux】cp命令