天天看點

學習筆記

學習筆記6-14

sd硬碟最多劃分61個邏輯分區

sisc 最多劃分11個邏輯分區

ctrl+l 清屏

ctrl+c 中斷

基本指令

ls -l install.log

-:rw-r--r-- :1 :root :root :39410 : 2013-05-21: install.log

檔案類型:權限:硬連結數:擁有者:所屬組:檔案大小:最後一次修改時間:檔案名

- 普通檔案

d 目錄檔案

c 字元檔案

b 塊裝置檔案

l 軟連結檔案(符号)

p 管道檔案

s 套接子檔案

ls -l 長格式 -a 所有檔案  -a 所有檔案除了.和.. f 顯示檔案類型

. 目前目錄

.. 上層目錄

-d 顯示目錄資訊 -h 最大機關顯示  -t 安時間排序

-r 反向 -r 遞歸

1.ls --help

2.info ls

3.type ls

 alias la='ls -la'

 unalias la

4.man ls

一  使用者指令

二  系統調用

三  庫調用

四  特殊檔案

五  配置檔案

六  遊戲

七  雜項(man)

八  系統指令

九  核心參考

makewhatis 維護man背景

man -f passwd  查詢指令在那些章節有相應說明

man -k passwd  模糊查詢

cd  cd / .. ../.. . ~  -傳回上次工作目錄

pwd 查詢位置

/下目錄作用

/bin  /usr/bin /usr/local/bin   普通使用者可執行目錄

/sbin /usr/sbin /usr/local/sbin 系統可執行目錄

/etc/    配置檔案目錄

/usr/    應用程式目錄

/var/    伺服器資料目錄(經常變化的檔案,如日志檔案,使用者郵箱檔案),建議獨

立分區

/lib /usr/lib /usr/local/lib 庫檔案目錄(系統子產品)

/dev/    塊裝置目錄和字元裝置

/boot    引導程式目錄(核心,啟動檔案,引導程式) 建立獨立分區

/root    管理者家目錄

/home    普通使用者家目錄 建立獨立分區

/proc    記憶體資訊目錄(記憶體資訊和程序資訊) 僞檔案系統

/sys    記憶體資訊目錄(記憶體資訊和程序資訊) 僞檔案系統

/tmp    臨時檔案目錄

/opt    第三方軟體目錄

/mnt    臨時挂在點

/srv    伺服器資料目錄。。。。。。。。。。。

/media    媒體目錄

/misc    autofs

/net    autofs

/tftpboot    tftp服務使用

/selinux selinux使用

/lost+found  用于檔案系統恢複

檢視檔案内容

1.head 顯示檔案從頭部開始10行

head -n 30 install.log

2.tail 顯示檔案從底部開始10行

tail -n 20 install.log

tail -f /var/log/messages  動态顯示檔案内容

3.more 顯示全部檔案 百分比顯示

more install.log

4.less 顯示全部檔案可以上下翻頁

less install.log

5.cat 檢視檔案内容 一次顯示完畢

cat -n install.log 顯示檔案内容 帶 行号包括空行

cat -b install.log 顯示檔案内容 帶 行号不帶空行

cat -n install.log | less  檢視檔案内容帶行号顯示後 再用less翻頁檢視

| 管道符号

前一個指令輸出作為後一個指令輸入

建立檔案

touch

touch aa.txt

touch cc.txt tt.txt

touch abc{1..10}.txt

touch {a,b,c}{1..3}.txt

建立目錄

mkdir

mkdir tt

mkdir test1 test2

mkdir abc{1..10}

mkdir {a..c}{1..10}.txt

mkdir -p dir/aa

mkdir -pv dir/aa

拷貝copy

cp /root/install.log /tmp/

cp /root/install.log /tmp/install 拷貝的同時重命名

cp -r /tmp/dir/ /

剪切move

mv /root/xx.txt /tmp/

mv /root/xx.txt /tmp/haha.txt

mv xx.txt xx.txt.bak

mv /tmp/tt /

删除

rmdir 隻能删除空目錄

rm

rm tt.txt

rm -f install.log

rm -rf abc9

rm -rf *.txt

rm -rf abc*

rm -rf /dir/

********************************************************************************

練習:

1.建立以下目錄結構(驗證?)

   /aa

   /  \

      ba/  bb/

     /  \   \

    ca/  cb/ cc/

mkdir -p /aa/ba/c{a,b} /aa/bb/cc

tree /aa/

tree -l 2 /

ls -r /aa  顯示目錄結構

2.進入ba目錄 查詢自己所在路徑?

pwd 顯示目前工作目錄

3.由ba進入ca目錄有幾種寫法?分别是什麼?

cd ca/

cd /aa/ba/ca/

4.拷貝/etc/man.config到ca目錄

cp /etc/man.config /aa/ba/ca/

5.移動ca目錄下的man.config /cc目錄并且改名為test.txt

分兩種寫法操作

mv /aa/ba/ca/man.config /aa/bb/cc/test.txt

mv ca/man.config ../../aa/bb/cc/test.txt

6.兩次拷貝同一個檔案到同一個不出現覆寫提示?

unalias cp /root/install.log /

\cp install.log /   不提示 強制覆寫檔案

vim 文本編輯器 vi

指令模式進入輸入模式

a 目前字元後輸入

a 目前行行尾輸入

i 目前字元前輸入

i 目前行行首輸入

o 目前行下一行輸入

o 目前行上一行輸入

s 删除目前字元後輸入

s 删除目前行後輸入

home鍵位行首  end行尾

指令模式

u 撤銷一步操作

ctrl + r  重做

yy 複制一行

50yy 複制50行

dd 剪切一行  dd删除

50dd 剪切50行

p 粘貼

w 下一個單詞的首字元

dw 删除/剪切一個單詞 yw

^ 行首  d^ y^

$ 行尾  d$ y$

g 尾行

gg 首行

750g 定位到750

dgg 删除目前行到首行  

dg 删除目前行到尾行

末行模式

:w :q :wq

:w! :q! :wq!

:e /root/aa.txt           打開/讀入

:2,3w /root/newfile.txt 2到3行另存為新檔案

:r /root/file.txt  在目前檔案追加讀入

:e! 重新讀入目前檔案

:set nu 顯示行号

:set nonu 去掉行号

:set autoindent 自動縮進

:set noautoindent 去掉自動縮進

查找

/ 從上往下

? 從下往上

n n 上下查找關鍵詞

替換

:%s/ab/oo/gc  %所有行 g全局  s替換 c互動式替換

2,5s/ab/oo/gc

:%s/^\t//  替換檔案中所有行首制表符

:%s/\t//  替換檔案中每行第一個名額符

:%s/ //g  去掉所有空格

:%s/^#//g  删掉行首#

:g/^$/d 删除空行

:g/^\s*$/d 删除所有類型空行

:x 加密 解密

vim配置檔案 /etc/vimrc

vim教程

/usr/share/vim/vim70/tutor/tutor.zh.euc

gedit /usr/share/vim/vim70/tutor/tutor.zh.euc

檔案--->另存---->字元集----->儲存----->替換

vimtutor

***********************************************************

字元編碼轉換

iconv -f gb18030 -t utf-8 tutor.zh.euc -o test.txt  

多檔案操作

vim aa.txt cc.txt tt.txt

:args  next prev first last

檔案間切換 ctrl+6  下一個檔案

:bn          下一個檔案

:bp          上一個檔案

對于用(v)split在多個窗格中打開的檔案,這種方法隻會在目前窗格中切換不同的文

件。

vimdiff aa.txt cc.txt tt.txt 比較檔案不同

ctrl+w+w 切換編輯文檔

vim -o  aa.txt tt.txt cc.txt 不帶顔色多螢幕顯示 縱屏

vim -o aa.txt tt.txt cc.txt  橫屏顯示

shift+k 顯示文檔裡邊 標明詞語 顯示 指令幫助

可視化模式v

y 複制 d 删除 p 粘貼

可視化塊模式 ctrl+v

方向選擇編輯區域----> shift+i -----> 輸入字元 -->esc(兩次)修改成功

使用者管理

uid 0        root        gid 0 root

uid 1-499 system     gid 1-499  system group

uid 500-60000 user     gid 500-60000  group

添加使用者useradd

useradd abc1

儲存使用者資訊的檔案:/etc/passwd

robin:x:500:500:ptuser:/home/robin:/bin/bash

使用者名:密碼占位符号:uid:gid:描述:家目錄:shell

useradd -u 1000 -g 500 -c hello -d /mnt/abc2 -s /bin/bash abc2

添加組groupadd

groupadd uplooking

儲存組資訊的檔案 /etc/group

uplooking:x:502:

組名:組密碼占位符号:gid:使用者名

groupadd -g 2000 upup

設定密碼

1.root通過passwd robin

2.robin執行passwd修改自己密碼

密碼儲存檔案:/etc/shadow

robin:$1$bj0exbfx$e24mczi0jmsidr:15847:2:10:3:2::

第一列:使用者名

第二列:密碼(md5)

第三列:密碼最後一次修改時間(天)

第四列:密碼最小時間

第五列:密碼最大時間(密碼有效期)(天)

第六列:密碼過期前警告時間

第七列:密碼過期後帳号過期時間

第八列:帳号有效期

第九列:保留列

1.添加組kkk gid為1500

groupadd -g 1500 kkk

2.添加使用者 zorro uid 1500 屬于kkk組 描述:hello 家目錄/mnt shell:bash

useradd -u 1500 -g kkk -c hello -d /mnt/zorro -s /bin/bash  zorro

3.通過管理者設定該使用者密碼為123

終端登入zorro 設定自己密碼為123.com

修改使用者資訊

usermod

usermod -u 使用者uid

usermod -g 使用者gid

usermod -c 使用者描述

usermod -d 使用者家目錄

usermod -s 使用者shell

usermod -l abc2abc abc2 更改使用者名

usermod -l robin 鎖定帳号

usermod -u robin 解鎖帳号

usermod -f 密碼過期後帳号過期時間

usermod -e 帳号有效期

修改組資訊

groupmod -g 2500 uplooking

groupmod -n upup uplooking

修改密碼及資訊

passwd -n(最小時間) -x 最大時間 -w 警告時間 -i 密碼過期後帳号過期時間

passwd -l robin 鎖定密碼

passwd -u robin 解鎖密碼

passwd -s robin  檢視密碼狀态

添加使用者tom和jerry 分别設定兩個使用者密碼為123

鎖定tom帳号 鎖定jerry密碼

終端登入測試 傳回值是否一緻? 一樣的

檢視shedow檔案 兩個使用者有什麼差別? 鎖定帳戶是 一個! 鎖定密碼是兩個 !

删除使用者:

userdel -r abc2

删除組

groupdel upup

附加組

groupadd yw

groupadd kf

useradd -g kf,yw wg   覆寫附加組資訊

useradd -a -g kf,yw wg 追加附加組資訊

groupadd boss

gpasswd boss

手動添加帳号

1.groupadd zu

1).vim /etc/group

zu:x:2000:

2.useradd -g zu zhb

1).vim /etc/passwd

zhb:x:2000:2000::/home/zhb:/bin/bash

2).mkdir /home/zhb

3).cp /etc/skel/.bash* /home/zhb/

3.passwd zhb

1).vim /etc/shadow

zhb::15848:0:99999:7:::

2).grub-md5-crypt産生密碼 将密碼複制到第二列

終端登入測試 建立檔案?

多使用者導入

1.導入檔案(user.txt)内的使用者和系統的passwd檔案使用者資訊不能沖突

2.導入檔案(user.txt)内使用者不能沖突

cat user.txt

user1:x:3000:3000:ptuser:/home/user1:/bin/bash

user2:x:3001:3001:ptuser:/home/user2:/bin/bash

newusers < user.txt

cat passwd.txt

user1:123

user2:123

chpasswd < passwd.txt

使用者配置檔案

/etc/default/useradd

home=/home

shell=/bin/bash

skel=/etc/skel

/etc/login.defs(限制uid數量 密碼限制)

root 密碼丢失

*******************************

e 2 e 進入編輯模式

輸入 1 或者 single

按 b 進入單使用者模式

輸入 passwd 修改密碼

reboot 重新開機成功

家目錄下環境配置檔案

env 查詢環境變量

set 查詢所有變量

環境變量可以被子程序繼承 export b=2

自定義變量不能被子程序繼承 a=1  

環境配置檔案(每個使用者家目錄下都存在)

.bash_history 儲存使用者的曆史指令,當使用者退出時儲存到檔案

.bash_logout 儲存使用者退出時執行的指令

.bashrc         儲存使用者别名 (開啟新的終端就可以讀取該檔案)

.bash_profile 儲存使用者搜尋指令的位置

.bashrc shell級别環境變量配置檔案

.bash_profile 登入級别環境變量配置檔案

su - 登入級别切換

su   shell 級别切換

全局環境配置檔案

/etc/bashrc

/etc/profile

加載順序

.bash_profile

.bashrc

定義變量檔案順序

/etc/profile1

/etc/profile2

.bash_profile1

.bashrc1

/etc/bashrc1

/etc/bashrc2

.bashrc2

.bash_profile2

權限(基本權限和進階權限)

-rw-r--r-- 1 robin upup 39751 05-23 11:15 aa.txt

      rwx  |  rwx  | rwx

      robin   upup    other

uid=0----->uid=robin----->group=upup----->other

      磁盤配額       對比權限

對于檔案     r--------cat head tail....

       w--------vim,gedit,vi,> >>

       x--------執行./ 絕對路徑

對于目錄    r--------ls     r-x檢視目錄下檔案資訊

       w--------mkdir touhc rm    rwx

       x--------cd

能否删除檔案決定于該使用者擁有該檔案所在檔案夾的權限 r-x

-w- 權限可以檢視檔案夾下邊檔案 但是不能檢視詳細資訊

-wx 隻限于删除已知檔案名的檔案

user  u

group g

other o

chmod u+r file/dir

chmod u+r,g+w file/dir

chmod ug-rw file/dir

chmod ugo+rwx file/dir

chmod a+rwx file/dir

chmod u=r file/dir

chmod u=r,g=w file/dir

chmod uo=rw file/dir

chmod ugo=rwx file/dir

chmod a=rwx file/dir

/            rwxr-xr-x  755

/etc/            rwxr-xr-x  755

/usr/            rwxr-xr-x  755

/var/            rwxr-xr-x  755

/tmp            rwxrwxrwt  1777

/etc/shadow        r--------  400  

/etc/passwd        rw-r--r--  644

/home/robin        rwx------  700  

/root            rwxr-x---  750

root建立檔案預設權限    rw-r--r--  644

root建立目錄預設權限    rwxr-xr-x  755

普通使用者建立檔案預設權限    rw-rw-r--  664

普通使用者建立目錄預設權限    rwxrwxr-x  775

r------4 w------2 x-----1

777

rwxr----x 741  123--x-w--wx

r-x-wx-w- 532  456r--r-xrw-

預設權限計算方法

666        023

110110110    000010011

111101100    111101100

110100100

644

umask權限對照表

=============================================

umask值        目錄權限    普通檔案

 0           7               6

 1           6           6

 2           5           4

 3           4           4

 4           3           2

 5           2           2

 6           1           0

 7           0           0

chmod -r 777 /test

修改擁有者所屬組

chown robin tt.txt

chgrp uplooking tt.txt

chown robin.uplooking tt.txt

chown .uplooking tt.txt

.=:

chown -r robin.uplooking  dir/

建立使用者tom和jerry

1.在/tmp目錄下建立檔案tt.txt

要求:

tt.txt權限設定為651 在改為rwxr----x

chmod 651 /tmp/tt.txt

chmod u=rwx,g=r,o=x /tmp/tt.txt

設定tt.txt檔案擁有這tom所屬組jerry

chown tom.jerry /tmp/tt.txt

2.根據以下要求設定擁有者和權限

在/tmp目錄下建立目錄test/,在test目錄下建立檔案aa.txt

tom可以讀寫檔案aa.txt 不能删除

jerry 不可以讀寫檔案aa.txt 可以删除

mkdir /tmp/test/

touch /tmp/test/aa.txt

/tmp/test/     jerry  root   rwxr-xr-x

/tmp/test/aa.txt tom    root   rw-r-----

=    配置視訊伺服器            =

=    1.将ip設定到192.168.1.0/24網段    =

=    2.showmount -e 192.168.1.201    =

=    3.mount 192.168.1.201:/source /mnt/    =

=    cd /mnt/                =

=    4.cp uplayer.client.tar.bz2 /root/    =

=    5.cd /root                =

=    tar -jxvf uplayer.client.tar.bz2        =

=    cd uplayer/            =

=    ./install.sh            =

主組附加組

robin  robin  robin,uplooking

/tmp/test   rwxrwx---  root uplooking

robin能不能進去/tmp/test? 為什麼?

可以 因為附加組有uplooking

進入後建立檔案aa.txt 該檔案 擁有者 所屬組??

robin  robin

如果該使用者想建立屬于uplooking組的檔案 怎麼做?

sg uplooking

robin  uplooking  robin,uplooking

進階權限

1.suid

必須作用于二進制可執行檔案

chmod u+s  file

作用:任何使用者在執行擁有suid權限的指令時,都以該指令擁有者的身份執行

實驗:

在不改變/etc/shadow權限的前提下,使普通使用者robin可以使用cat檢視/etc/shadow檔案

内容

which cat

chmod u+s /bin/cat

給相應的權限 添加 u+s 的權限

2.sgid

必須作用于目錄

chmod g+s dir

作用:任何使用者在擁有sgid的目錄下建立的檔案,都要繼承該目錄的組

1.在/tmp/建立下test目錄 權限設定為 rwxrwxrwx root upup

 使用robin使用者進入該目錄并且建立檔案aa.txt

 aa.txt 所屬組?

-rw-rw-r-- 1 robin robin     0 05-24 10:59 aa.txt

2.在/tmp/test目錄上添加sgid權限

 使用robin使用者進入該目錄并且建立檔案cc.txt

 cc.txt 所屬組?

-rw-rw-r-- 1 robin upup      0 05-24 10:59 cc.txt

3.修改/tmp/test目錄的所屬組為redhat

 使用robin使用者進入該目錄并且建立檔案tt.txt

 tt.txt 所屬組?  aa.txt cc.txt 所屬組?

redhat

-rw-rw-r-- 1 robin redhat    0 05-24 11:00 tt.txt

4.在/tmp/test目錄下建立目錄abc

 abc 權限和所屬于組 是什麼?

redhat redhat

drwxrwsr-x 2 robin redhat 4096 05-24 11:01 abc

umask 0027

公共組 uplooking

就業部 組 job  使用者 tom jerry

資訊部 組 sal  使用者 zorro  shrek

/stu

資訊部-----> stu.txt -----> /stu

就業部-----> 檢視stu.txt

資訊部-----> 檢視stu.txt

uplooking job sal

useradd -g job -g uplooking tom

useradd -g job -g uplooking jerry

useradd -g sal -g uplooking zorro

useradd -g sal -g uplooking shrek

chmod 775 stu/

chown .uplooking stu/

drwxrwxr-x 2 root uplooking 4096 05-24 11:49 stu/

aa.txt tom job

tt.txt tom uplooking rw-r-----

3.sticky(t 冒險位 粘貼位)  /tmp 具有此權限

chmod o+t dir

作用:任何使用者在擁有t權限的目錄下建立的檔案,都屬于該使用者自己,

其他人無權删除 (root,目錄擁有者除外)

在/目錄下建立/test目錄 擁有者root 所屬組root 權限777

使用者jack rose

1.jack在/test目錄建立aa.txt

 rose能不能删除aa.txt?

可以删除

2.在/test目錄上添加t權限

 jack在/test目錄下建立jack.txt

 rose能不能删除jack.txt?

無法删除

 rose在/test目錄下建立rose.txt

 jack能不能删除rose.txt?

3.root能不能删除/test目錄下的檔案?

4.添加使用者robin

 robin能不能删除/test目錄下的檔案?

 chown robin /test

suid-------4

sgid-------2

sticky-----1

7

1777

2777

4777

3777

[root@localhost ~]# ll aa.txt

-rwsrwsrwt 1 root root 0 05-24 12:16 aa.txt

進階權限顯示為大寫 源檔案沒有執行權限

進階權限顯示為小寫 源檔案有執行權限

特殊屬性 facl

程序管理

靜态查詢

ps -ef

ps aux

動态查詢

top

cat /proc/cpuinfo

cat cpuinfo | grep pae

cat cpuinfo | grep vmx inter支援全虛拟

cat cpuinfo | grep svm amd

cat cpuinfo | grep lm  是否支援64位系統

kill -9  強制結束

kill -15 正常結束

pkill httpd

killall httpd

xkill

ctrl+alt+backspace

前背景切換

xclock -update 1

xclock -update 1 &

nohup xclock -update 1 & 關閉父程序 子程序繼續

ctrl+z

jobs 查詢編号

bg 編号

fg 編号

kill %編号 殺掉背景程序

優先級調整(-20~~19)

nice -n -20 xclock -update 1

renice 15 -p 5316------>(pid)

process state codes

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

<    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 -n /etc/passwd |head -20 |tail -1 隻顯示檔案第20行

cat -n /etc/passwd | head -20 |tail -1 | tac  上下反序

cat -n /etc/passwd | head -20 |tail -1 | rev  左右反序

sort 按首字元排序 -n 按整個數字排序 -r反向 -u去掉重複值

uniq 去連續重複值 -d 顯示重複行 -u 顯示不重複行 -c 統計重複次數

grep 過濾字元

grep root /etc/passwd

grep ^root /etc/passwd

grep halt$ /etc/passwd

grep -v ^root /etc/passwd

cut 截取字元

截取行

cut -d: -f1 /etc/passwd     截取 以:分割行 第一列

cut -d: -f1,3,5 /etc/passwd

cut -d: -f1-3,5 /etc/passwd     截取 以:分割行 第1-3列 5列

截取字元

cut -c 1 /etc/passwd | head -5

cut -c 1,2,4 /etc/passwd | head -5 截取 1,2,4 個字元

cut -c 1-4 /etc/passwd | head -5

wc 統計字元

wc

wc -l /etc/passwd  l 行數

wc -w aa.txt  w 單詞數

wc -c aa.txt  c 字元數

一個漢字 3個字元

練習題:

1.統計你系統中有多少個使用者可以登入(/bin/bash)

grep /bin/bash /etc/passwd | wc -l

grep -c bash /etc/passwd

grep bash /etc/passwd | cut -d: -f 7 | uniq -c

2.擷取網卡ip位址 192.168.1.254

1).ifconfig eth0 | awk -f':| +' '/bcast/{print $4}'

2).ifconfig eth0 | grep 'inet addr'| cut -d: -f2 | cut -d' ' -f 1

3).ifconfig eth0 |head -2 |tail -1 |cut  -d: -f2 |cut -d' ' -f1

4).ifconfig eth0 |grep bcast |cut  -d: -f2 |cut -d' ' -f1

3.[root@localhost ~]# stat aa.txt

 file: “aa.txt”

 size: 4               blocks: 8          io block:

4096   一般檔案

device: 802h/2050d      inode: 554909      links: 1

access: (0644/-rw-r--r--)  uid: (    0/    root)   g

id: (    0/    root)

access: 2013-05-27 10:16:46.000000000 +0800

modify: 2013-05-27 10:16:46.000000000 +0800

change: 2013-05-27 10:16:46.000000000 +0800

過濾顯示時間

10:16:46

stat 顯示檔案屬性

stat  aa.txt  | tail -3 | cut -d' ' -f 3 | cut -d. -f 1

第二節 shell基礎

history

!1015     執行第1015條指令

!!    執行上一次指令

!    cat 在執行一次最後一條以cat開始的指令

!$    引用上一個指令最後一個參數

alt + .    引用上一個指令最後一個參數

重新定向符和 檔案描述符 { 0 1 2 > >>  }

1>  标準正确輸出,如果檔案存在則覆寫,如果不存在則建立

1>> 标準正确輸出,如果檔案存在則追加,如果不存在則建立

2>  标準錯誤輸出,如果檔案存在則覆寫,如果不存在則建立

2>> 标準錯誤輸出,如果檔案存在則覆寫,如果不存在則建立

&> /etc/null 标準錯誤和标準正确同時輸出

2&>1 标準錯誤輸出定向到标準正确輸出位置

shell 腳本文法  批量建立使用者

================================

#!/bin/bash

#add user script

for i in {1..10}

do

#顯示添加使用者

   echo "add user abc$i"

#執行添加使用者

   useradd abc$i

#等待1秒顯示  

   sleep 1  

#顯示使用者建立完畢

   echo "add user finish"

   echo "********"

#設定使用者密碼

   echo "set abc$i password now"

#設定密碼,去掉指令傳回值

   echo 123 | passwd --stdin abc$i &> /dev/null

   sleep 1

   echo "passwd finish !!!"

done

================

if腳本   顯示存在檔案

#檔案是否存在!

if [ -f /tmp/aa.txt ]

then

       echo "檔案存在!顯示資訊!!!"

       sleep 1

       ls -l /tmp/aa.txt

else

       echo "檔案不存在!建立檔案!"

       touch /tmp/aa.txt

fi

null 黑洞檔案

zero 資料發生器

du -s    顯示大小

du -sh    隻顯示總大小

壓縮打包安裝軟體

winrar 和 zip

gzip bzip2

dd if=/dev/zero of=data bs=100m count=2

gzip data 壓縮檔案

gunzip data 解壓檔案

hexdump aa.txt  二進制顯示檔案

gzip data    壓縮檔案

gunzip data.gz    解壓檔案

bzip2 data    壓縮檔案

bunzip2 data.bz2解壓檔案

打包

tar -cvf boot.tar /boot/   c 建立 v顯示過程 f file

tar -tvf boot.tar         t顯示包内容

tar -rvf boot.tar install.log    r追加打包

tar -xvf boot.tar            x解包

tar -cvf /tmp/boot.tar /boot

tar -xvf boot.tar -c /tmp

tar -zcvf /tmp/boot.tar.gz /boot/

    存放位置,壓縮名   壓縮目标

tar -ztvf boot.tar.gz

tar -zxvf boot.tar.gz

tar -jcvf boot.tar.bz2 /boot/

tar -jtvf boot.tar.bz2

tar -jxvf boot.tar.bz2

boot.tgz boot.tbz2

軟體安裝

mount

mount -t iso9660 /dev/cdrom /mnt/cdrom/

umount /dev/cdrom

umount /mnt/cdrom

umount -l /dev/cdrom 強制解除安裝!

mount /var/ftp/ule05-21/rhel5u8.iso /mnt/cdrom/ -o loop 挂在檔案

制作鏡像

*****************************************************************

cat /dev/cdrom >> rhel5-8.iso

dd if=/dev/cdrom of=/opt/rhel5-8.iso

安裝軟體包

rpm -ivh httpd-*.rpm i install v過程 h 百分比

rpm -q httpd     查詢資訊 q檢索資訊

rpm -qi httpd     查詢安裝包資訊 i資訊

rpm -ql httpd | cut -d\/ -f 2 |uniq 轉議正常顯示/ 然後去重複

rpm -qd httpd  

rpm -qc httpd

rpm -qa all

rpm -qa | grep lib

rpm -qf /etc/httpd/conf/httpd.conf

rpm -qf `which mount` 查詢指令 那個軟體報安裝的

rpm -e httpd 解除安裝

未安裝包

rpm -qpi zip-2.31-2.el5.i386.rpm 查詢未安裝包的資訊

rpm -qpl zip-2.31-2.el5.i386.rpm 查詢包安裝後位置

強制安裝

rpm -ivh httpd-2.2.3-63.el5.i386.rpm --force

不檢測依賴關系

rpm -ivh apr-devel-1.2.7-11.el5_6.5.i386.rpm --nodeps

導入key安裝

rpm --import rpm-gpg-key-redhat-release

yum庫

**************************************************************

CD光牒作為yum源

1.mount /var/ftp/ule05-21/rhel5u8.iso /mnt/cdrom -o loop

2.vim /etc/yum.conf

gpgcheck=0

3.cd /etc/yum.repos.d/

touch yum.repo

vim yum.repo

[rhel-server]

name=server

baseurl=file:///mnt/cdrom/server

enable=1

******************************************************

4.測試

yum clean all

yum list

yum install httpd-devel  安裝

yum remove httpd-devel  解除安裝

yum reinstall httpd-devel  重新安裝

ls /mnt/cdrom/server/ | grep -v rpm$ 過濾ls顯示後 包含rpm$的檔案并顯示出來

2.建庫

rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm

所有軟體包拷貝/yum

createrepo /yum

yum庫配置檔案 指向/yum

vim /etc/yum.repos.d/yum.repo

baseurl=file:///yum

enabled=1

mv `ls |grep .rpm` /opt/server/ 過濾目前檔案件中含有.rpm的檔案 然後移動到/opt/server

[root@localhost ~]# lftp 192.168.1.254

lftp 192.168.1.254:~> ls              

drwxrwxrwx    6 0        0            4096 may 28 02:53 ule05-21

drwxr-xr-x    2 0        0            4096 dec 05  2011 pub

lftp 192.168.1.254:/> cd ule05-21/

lftp 192.168.1.254:/ule05-21> get biji

lftp 192.168.1.254:/ule05-21> mirror software/

lftp 192.168.1.254:/ule05-21>

源碼包安裝

tar -jxvf lftp-3.5.10.tar.bz2 -c /usr/local/src/

cd /usr/local/src/lftp-3.5.10

1.  ./configure --prefix=/usr/local/lftp

2.   make

3.   make install

修改指令搜尋路徑

vim /etc/bashrc

添加變量,直接在終端調用

path=/usr/local/lftp/bin:$path

添加變量位置

export path

重新整理變量

. /etc/bashrc

應用新指令

lftp-3.5.1-2.fc6.src.rpm安裝

安裝 rpm -ivh rpm-build-4.4.2.3-27.el5.i386.rpm

rpm -q rpm-build

rpm -ivh lftp-3.5.1-2.fc6.src.rpm 安裝半源碼包

cd /usr/src/redhat/specs/    切換到目錄

rpmbuild -bb lftp.spec         建立rpm包

cd /usr/src/redhat/rpms/i386/    切換rpm包目錄下

rpm -ivh lftp-3.5.1-2.i386.rpm    執行rpm包安裝

安裝rpmbuild包

rpm -ivh rpm-build-4.4.2.3-27.el5.i386.rpm

安裝半源碼包

rpm -ivh lftp-3.5.1-2.fc6.src.rpm

切換到目錄

cd /usr/src/redhat/specs/

建立rpm包

rpmbuild -bb lftp.spec

切換rpm包目錄下      

cd /usr/src/redhat/rpms/i386/

執行rpm包安裝  

rpm -ivh lftp-3.5.1-2.i386.rpm

運作lftp

磁盤管理

df -th

fdisk -l

硬碟最多主分區 4

硬碟最多擴充分區 1  邏輯結構(邏輯分區)

分主分區

fdisk /dev/sda

command (m for help): m

d   delete a partition            删除分區

l   list known partition types        顯示分區類型清單

p   print the partition table        列印分區表

q   quit without saving changes        不儲存設定退出

t   change a partition's system id    設定分區系統id類型

n   add a new partition            建立新的分區

w   write table to disk and exit    儲存分區表

分區

command (m for help): n

command action

  e   extended

  p   primary partition (1-4)

    p

selected partition 4

first cylinder (2691-3916, default 2691): ---- 回車

last cylinder or +size or +sizem or +sizek (2691-3916, default 3916): +1000m   ----- 回車

command (m for help): w

重新整理分區表

partprobe /dev/sda

格式化分區

mkfs.ext3 /dev/sda4

挂在分區

mount -t ext3 /dev/sda4 /opt/

删除分區

首先解除安裝挂在分區

1.umount /dev/sda4

進入編輯模式

2.fdisk /dev/sda

command (m for help): d

所删除分區編号

partition number (1-4): 4

儲存退出

partprobe /dev/sda  ========rhel6===> partx -a /dev/sda 執行2此重新整理分區表

擴充分區和邏輯分區

1.fdisk /dev/sda

e

first cylinder (2691-3916, default 2691):----回車

using default value 2691

last cylinder or +size or +sizem or +sizek (2691-3916, default 3916):-------回車

using default value 3916

command (m for help): p

mkfs.ext3 /dev/sda5

*********************************************************************

劃分兩個邏輯分區 200m

/dev/sda5 ---------> /mnt  sda5.txt

/dev/sda6 ---------> /mnt  能不能挂? 看看/mnt/sda5.txt? 怎麼才能看到?

/dev/sda5 -----> /mnt

/dev/sda5 ------> /opt? 能不能看到sda5.txt

解決u盤隻讀問題

mount -o remount,rw /dev/sdb1

umount /dev/sdb1

mount -o rw /dev/sdb1 /mnt

查詢卷标

blkid -s label 查詢所有卷标

e2label /dev/sda1  查詢

e2label /dev/sda5 disk5  設定卷标

mount /dev/sda5 /mnt

卷标使用實驗:

1.分4個分區 /dev/sda5 /dev/sda6 /dev/sda7 /dev/sda8

2.mount /dev/sda7 /mnt

 touch /mnt/sda7.txt

 umount /dev/sda7

3.删除sda5分區 partprobe /dev/sda5

4.fdisk -l  (sda5 sda6 sda7)

5.mount /dev/sda7 /mnt

 檢視/mnt/sda7.txt 檔案是否存在? 不存在

 umount /mnt

6.mount lable=disk7 /mnt

 檢視/mnt/sda7.txt 檔案是否存在? 存在

磁盤滿

硬碟滿(1.空間100%  2.inode号%100)

pardted 超過2tb硬碟用 1024進制,廠家1000進制

kb bb gb tb pb eb

磁盤配額

acl.特殊屬性

chattr +i aa.txt

lsattr aa.txt

i 不能删除,修改内容,移動,追加,重命名,修改屬性... 可以讀,cp

 目錄不能删除或者建立新的檔案

a  不能删除,修改内容,移動,重命名,修改屬性... 可以讀,cp 追加

 目錄不能删除  可以建立新的檔案

******************************************************************

facl(檔案通路控制清單)

1.挂在磁盤時打開acl功能 帶有 + 說明有facl 通路控制清單

mount -o acl /dev/sda5 /opt/

getfacl aa.txt

setfacl -m u:robin:rw aa.txt    設定使用者權限

setfacl -m g:sal:rw aa.txt    設定組權限  

setfacl -m o:rwx aa.txt        設定其他使用者權限

setfacl -m m:r            設定umask權限

aa.txt  

删除權限

setfacl -x u:robin aa.txt

徹底删除

setfacl -b aa.txt 删除限制權限 使用者群組的權限 other保留

**********************************************************************************

作業:

 1).建立三個普通使用者seker,zorro,shrek.用root使用者在/root目錄中建立一個檔案abc.txt

 2).使seker使用者既能讀又能寫abc.txt檔案,但不能删除

    使zorro使用者隻能讀取,不能寫也不能删這個檔案

    使shrek使用者隻能删除,不能讀寫這個檔案.

以上三個條件同時成立

/root root root rwxr-w---

/root/abc.txt root root rw-r-----

setfacl -m u:seker:rw /root/abc.txtsetfacl -m u:seker:rx /root/

setfacl -m u:zorro:r /root/abc.txt

setfacl -m u:zorro:rx /root/

chmod o=0 /root/abc.txt

setfacl -m u:shrek:0 /root/abc.txt

setfacl -m u:shrek:rwx /root

2.删除除了/分區 /boot分區 swap分區意外 所有分區

建立邏輯分區 建立6邏輯分區 200m

交換分區擴大縮小

擴大

free -m

mkswap /dev/sda5

swapon /dev/sda5

swapon -s  查詢交換分區資訊

縮小

swapoff /dev/sda5

用檔案擴大交換分區

dd if=/dev/zero of=/swap bs=200m count=5

mkswap /swap

free

swapon /swap

swapon -s

取消/swap

對/swap 格式化ext3 是否能mount?

ext3  1k

4   塊越小 效率低 磁盤使用率高

16 快越大 效率高 磁盤使用率小

檔案系統 ext2 ext3 ext4 swap fat32 ntfs nfs cifs gfs

xfs rezirefs

**********************************************************

reserved 保留

maximum mount count: 磁盤檢測

ext3-----super block 超級塊資訊

dumpe2fs /dev/sda5

tune2fs -l /dev/sda5 超看磁盤分區資訊

tune2fs -c 50 /dev/sda5 最大挂載次數檢測設定

tune2fs -c 10 /dev/sda5 更改已經挂載次數

tune2fs -l newdisk /dev/sda5 更改卷标名稱

tune2fs -o acl /dev/sda5 自動開啟acl清單功能

tune2fs -o ^acl /dev/sda5 關閉自動開啟acl清單功能

bl -1 小數計算參數

符号連結和硬連結

ln /root/ying.txt /root/desktop/

ln -s /root/ruan.txt /root/desktop/

差別

1.軟連結不能對源檔案執行删除或者重命名

  硬連結可以對源檔案執行删除或者重命名

2.軟連結檔案權限永遠都是777和源檔案權限不同

  硬連結檔案和源檔案權限永遠一緻

3.軟連結檔案的inode号和源檔案是不同的

  硬連結檔案的inode号和源檔案是相同的

4.軟連結在建立中必須寫絕對路徑

  硬連結在建立中可以絕對路徑也可以相對路徑

5.軟連結可以跨檔案系統

  硬連結不可以跨檔案系統

6.軟連結可以對目錄做連結

  硬連結不可以對目錄作連結

ll顯示的是硬體連接配接數

***************************************************************

磁盤配額(基于磁盤)

1.開啟使用者磁盤配額支援

mount -o usrquota /dev/sda5 /mnt

2.生成(檢測)使用者配額檔案

quotacheck /mnt/    生成磁盤配額配置檔案

3.edquota -u robin    對使用者開啟磁盤配額

disk quotas for user robin (uid 504):

filesystem  blocks  soft  hard  inodes  soft  hard

/dev/sda5   0       0     0     0       0     0

       大小限制            檔案個數

4.quotaon /mnt

5.測試 su - robin  到/mnt

組配額

添加使用者 tom 和 jerry 屬于uplooking

mount -o grpquota /dev/sda6 /opt

quotacheck -g /opt

edquota -g uplooking

設定軟限 硬限

quotaon -g /opt

quota -u tom        檢視使用者配額

quota -g uplooking    檢視組配額

測試 tom 和 jerry

配額限制是uplooking共有

還是tom和jerry分别限制

查詢已激活配額的使用者或者組

repquota -u /dev/sda5

repquota -g /dev/sda6

edquota -p robin zorro 複制使用者配額

          old    new

grace time 的設定 edquota -t    -g 組

自動挂載

1./etc/rc.local(進去系統前最後一個執行腳本)

mount -o acl,grpquota,usrquota,rw,sync /dev/sda5 /mnt/

2./etc/fstab

/dev/sda6  /opt  ext3 defaults,rw,acl      0 0

mount -a 測試

3.autofs(按需mount)不要對系統目錄做該服務

/test    /etc/auto.test    --timeout=10 10秒鐘自動解除安裝

分區(/dev/sda7) 格式化

修改主配置檔案

1) vim /etc/auto.master

/test   /etc/auto.test  

挂載目錄  挂載檔案

2) mkdir /test 建立挂載目錄

  touch /etc/auto.test 建立配置檔案

3) vim /etc/auto.test 編輯配置檔案

disk7   -fstype=ext3,rw     :/dev/sda7

(觸發名-随意)   檔案系統類型及參數   被挂載裝置

4)service autofs restart

測試:

cd /test/disk7

ls /test/disk7

watch -n 1 mount 自動檢測mount變化

計劃任務

at

[root@localhost ~]# at 15:55        定制

at> touch /tmp/at.txt      

at> <eot>

job 1 at 2013-05-29 15:55

[root@localhost ~]# at -l        查詢

1       2013-05-29 15:55 a root

[root@localhost ~]# atrm 1           删除

crond 計劃任務服務

service crond resatrt

crontab -e  定制計劃任務

* * * * *

分 時 日 月 周

分(00-59)

時(00-23)

日(1-31)

月(1-12)

周(0-7) 0和7 代表周日

* * * * * 每分鐘執行

10 * * * *  每小時10執行

10 02 * * *  每天的2點10分

10 02 13 * * 每個月的13号2點10分

10 02 13 10 * 每年10月13号2點10分

10 02 13 10 5 每年10月13号如果是周5 2點10分執行

10 02-06 10,15,25 8-10,12 5 每年的8-10或者12月10,15,25号如果是周5那麼2點到6點的10

分執行

*/15 * * * *  每15分鐘執行一次

計劃任務儲存位置 /var/spool/cron/

每個使用者的計劃任務都儲存/var/spool/cron/ 以使用者名字作為檔案名

crontab -e -u robin

crontab -l  查詢目前使用者所有的計劃任務

crontab -r  删除目前使用者所有的計劃任務

系統計劃任務/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

/etc/cron.hourly/

/etc/cron.daily/

/etc/cron.weekly/

/etc/cron.monthly/

/etc/amdin/.....腳本

/etc/cron.deny 拒絕普通使用者執行計劃任務

anacron 開機後執行為執行的計劃任務

5月29日作業:

1.在目前系統時間5分鐘後 将install.log複制/tmp

crontab -l

05 * * * * cp /root/install.log /tmp

2.在目前系統時間的5分鐘後 将/boot打包儲存到/backup目錄

`date +%m-%d-%h-%m-boot

月-日-時-boot.tar.gz

cat back.sh

tar -zcvf /backup/`date +%m-%d-%h`-boot.tar.gz /boot

10 02 * * * /backup/back.sh

3.把鏡像檔案實作自動挂載 3種方法實作

1.vim /etc/rc.local

mount -o loop /soft/rhel5u8.iso /2tst

2.vim /etc/fstab

/soft/rhel5u8.iso       /1tst    iso9660 default,loop    0 0

3.vim /etc/auto.master

4.使用autofs觸發挂載iso檔案 和 yum結合一起使用

vim /etc/auto.master

/iso    /etc/auto.iso

mkdir /iso

touch /etc/auto.iso

cd  -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom 有時需要加上

iso -fstype=iso9660,loop :/soft/rhel5u5.iso

auto.master

/yum    /etc/auto.yum

mkdir /yum

touch /etc/auto.yum

cat /etc/auto.yum

iso     -fstype=iso9660,loop :/var/ftp/ule05-21/rhel5u8.iso

vim /etc/yum.repo.d/5rhel.repo

[rhel-opt-server]

baseurl=file:///soft/server

enalbe=1

先做iso的自動

raid(磁盤陣列備援 提高硬碟通路速度)

raid0         raid1         raid5            raid10

條帶化寫      備援    帶奇偶校驗的條帶化  raid1+raid0

2塊磁盤      2塊磁盤       3塊磁盤         4塊磁盤

500g          500g        500g            500g  

1t          500g        1t               1t  

mdadm -c /dev/md0 -l 5 -n 3 /dev/sda{6,7,8} 實體硬碟sdb1,sdc1,sdd1

mdadm -c /dev/md0 -l 5 -n 3 /dev/sda{6,7,8} x 1 /dev/sda9 備用盤

-c  create  建立 -l level 類型 -n number 硬碟數量  

mdadm -d /dev/md0   檢視raid

mdadm -ds        掃描檢視簡潔資訊

mdadm -s /dev/md0   停止raid

mdadm -a /dev/md0 /dev/sda{6,7,8}   停止後再啟動

mdadm -s /dev/md0

rm -rf /dev/md0

使用

mkfs.ext3 /dev/md0

模拟損壞

dd if=/dev/zero of=data bs=100m count=3

md5sum data

mdadm /dev/md0 -f /dev/sda6 損壞

mdadm /dev/md0 -r /dev/sda6 解除安裝

mdadm /dev/md0 -a /dev/sda9 挂載

mdadm /dev/md0 -a /dev/sda9 備用磁盤

mdadm -d /dev/md0

永久儲存

touch /etc/mdadm.conf

cat /etc/mdadm.conf

device /dev/sda6 /dev/sda7 /dev/sda8

array /dev/md0 level=raid5 num-devices=3 metadata=0.90 uuid=3

302db2d:e60e1cfb:5518ba01:f353f556

(mdadm -ds >> /etc/mdadm.conf)

/usr/share/doc/mdadm-2.6.9/mdadm.conf-example 配置模闆

mdadm -as /dev/md10 重新開機測試

建立raid時直接指定備盤

mdadm -c /dev/md0 -l 5 -n 3 /dev/sda{6,7,8} -x 1 /dev/sda9

mdadm -s /dev/md0

mdadm --zero-superblock /dev/sda6

mdadm --zero-superblock /dev/sda7

mdadm --zero-superblock /dev/sda8

mdadm --zero-superblock /dev/sda9

lvm(邏輯卷管理)作用:支援硬碟線上擴容

建立lvm過程

建立實體卷

pvcreate /dev/sda6 /dev/sda7

檢視實體卷pvs

顯示詳細資訊pvdisplay

pvscan時提示"/dev/cdrom open failed"的解決方法

1.解決方法

vim /etc/lvm/lvm.conf

filter = [ "a/.*/" ]

注釋掉

filter = [ "r|/dev/cdrom|" ]

取消注釋即可。

建立卷組

vgcreate vg0 /dev/sda6 /dev/sda7

檢視卷組vgs

顯示詳細資訊vgdisplay

建立邏輯卷

lvcreate -l 200m -n /dev/vg0/lv0 vg0

檢視邏輯卷lvs

顯示詳細資訊lvdisplay

格式化

mkfs.ext3  /dev/vg0/lv0

挂載

mount /dev/vg0/lv0 /mnt/

檢視資訊

線上擴容

lvextend -l +100m /dev/vg0/lv0

lvs

重新整理擴充空間

resize2fs /dev/vg0/lv0 300m 重新整理到300g

lv縮小

umount /dev/vg0/lv0

e2fsck -f /dev/vg0/lv0

resize2fs /dev/vg0/lv0 150m 調整到150m

lvresize -l 150m /dev/vg0/lv0

實驗:

1.建立lv0 大小200m  将lv0格式化化挂載/mnt

在該目錄下建立data檔案150m 并記錄下md5sum值

建立pv

pvcreate /dev/sda6 /dev/sda7 /dev/sda8

建立vg

vgcreate vg0 /dev/sda6 /dev/sda7 /dev/sda8

建立lv

mkfs.ext3 /dev/vg0/lv0

mount /dev/vg0/lv0 /lvm

2.對lv0進行縮小操作,縮小到140m 可不可以?報錯

縮小到160m  可不可以?可以

3.将lv0挂載起來。驗證縮小操作是否完成?

 在不解除安裝lv0的前提下将lv0線上擴容到300m

vg擴大和縮小(卷組硬碟數量)

pvcreate /dev/sda8

vgextend vg0 /dev/sda8

縮小(減少硬碟數量數量)

vgreduce vg0 /dev/sda8

資料移動

前提,使用的裝置必須在同一個vg

pvmove /dev/sda6 /dev/sda8  指定sda6存儲的資料移動到sda8

pvmove /dev/sda8   不指定裝置移動資料

删除lv

umount /dev/vg0/lv0     解除安裝裝置

lvremove /dev/vg0/lv0    删除lv    -ff 強制删除(資料丢失)

vgremove vg0        删除vg

pvremove /dev/sda{6,7,8}删除pv

lvm快照

建立快照

lvcreate -l 50m -s -n /dev/vg0/lv0-s0 /dev/vg0/lv0

                      快照名稱         原檔案

建立

1.隻使用快照(原lv不挂載)隻能在原lv資料基礎上作出50m的修改,

一旦到了最大值該快照自動損壞所有的修改都是記錄在快照裡

2.隻是使用原lv(快照儲存,不挂載)

使用快照資料恢複原資料(快照size 大于 原lv)

作業:

1.分6個分區200m  做個raid5(400)  raid0(400) sda10(200)

建立raid5

mdadm -c /dev/md5 -l 5 -n 3 /dev/sda{5,6,7}

mkfs.ext3  /dev/md5

mount /dev/md5 /raid5/

建立raid0

mdadm -c /dev/md0 -l 0 -n 2 /dev/sda{8,9}

mdadm -ds

mount /dev/md0 /raid0

2.将raid5 建立成pv vg lv

 擴大vg sda10

 擴大lv到500m

将sda10 資料移動 raid0  移除 sda10

vgcreate /dev/sda10

pvcreate /dev/sda10

vgextend vg0 /dev/sda10

lvextend -l +200m /dev/vg0/lv0

resize2fs /dev/vg0/lv0 500m

pvs

pvcreate /dev/md0

vgextend vg0 /dev/md0

pvmove /dev/sda10 /dev/md0

1.隻使用快照(原lv不挂載)

寫入母盤資料,然後解除安裝母盤,挂載快照,

檢視快照内容和母盤資料一樣,隻能修改快照資料,母盤資料不變。

重新挂在母盤,原來資料依舊存在

系統啟動過程(排錯)

1.bois-------->啟動項(CD光牒,硬碟,u盤,網路,軟碟)------->硬碟

2.引導程式(bootloader(grub.conf))mbr(主引導記錄 512位元組)(446引導程式-64(分區

表)--2位元組magic number aa55)

stage1(446)---> stage1.5------>stage2

3.讀取grub.conf檔案 找到核心 initrd檔案

 引導程式損壞

 CD光牒修複模式

 boot:linux rescue

 在記憶體中打開CD光牒系統

 mkdir /a

 mount /dev/sda2 /a

 ls /a -------原根目錄結構

 安裝引導程式

 grub

 grub> root (hd0,0)

 grub> setup (hd0)

   success 安裝成功

4.啟動核心,啟動檔案------> init

5.init------>/etc/inittab

 啟動級别

6.執行rc.sysinit 初始化作業系統(fstab)

7.運作對應級别啟動腳本目錄rc[1-6].d  啟動系統中定義的服務

8./etc/rc.local 進入系統前最後一個執行腳本

9.加載文本的環境(加載圖形環境)

10.login----->bash環境配置檔案

ts1.sh

inittab

fstab

passwd

修改啟動級别

vi /etc/inittab

第18行 id:5:initdefault:

vi /etc/fstab

defaults

vi/etc/passwd

使用者密碼

ts2.sh

grub.conf

root (hd0,0)

      kernel /vmlinuz-2.6.18-308.el5 ro root=label=/ rhgb quiet 1

      initrd /initrd-2.6.18-308.el5.img

vi /etc/passwd

故障3

缺少grub核心

kernel /vmlinuz-2.6.18-308.el5 ro root=label=/ rhgb quiet 1

sh-3.2# grub

sh-3.2# root (hd0,0)

sh-3.2# setup (hd0)

缺少卷辨別 檢視 /etc/fstab 内卷标修改

e2lable /dev/sda1 /boot

e2lable /dev/sda2 /

wall " you lose "

ts3.sh

引導程式

卷标

ts4.sh

mount被删除

CD光牒系統

mkdir /a

mount /dev/hdc /a/mnt

chroot /a

rpm -ivh /mnt/server/util-linux-2.13-0.59.el5.rpm --force

rc.local

tmp目錄權限被修改

crontab -e

查找指令

編譯核心(子產品管理)

網絡管理

顯示加載子產品

lsmod

查詢子產品

modinfo ext3

移出子產品

rmmod 8139too

手動加載子產品

insmod /lib/modules/2.6.18-308.el5/kernel/drivers/net/8139too.ko

動态加載子產品

modprobe 8139too 依賴/lib/modules/2.6.18-308.el5/modules.dep  依賴庫檔案

重建依賴關系庫

depmod -a 建立 modprobe 8139too

檢視核心版本号

uname -r

2.6.18-308.el5

主版本.次版本号.修訂版本号

次版本号如奇數  測試版 beta

次版本号如偶數  穩定版 release

核心參數調整

cat /proc/sys/net/ipv4/icmp_echo_ignore_all

值為1忽略所有的ping指令

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

忽略ping廣播

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

cat /proc/sys/vm/drop_caches

清楚緩存

echo 1 > /proc/sys/vm/drop_caches

cat /proc/sys/net/ipv4/ip_forward

開啟路由轉發功能 open route

echo 1 > /proc/sys/net/ipv4/ip_forward

編譯核心

tar -jxvf linux-2.6.30.tar.bz2 -c /usr/local/src/

/usr/local/src/linux-2.6.30/documentation/devices.txt

建立字元裝置

mknod -m 640 /dev/sda11    b                 8               11

                權限  裝置名稱   類型  主裝置号  從裝置号

編譯核心檔案

make mrproper 清理以前編譯痕迹

make menuconfig 執行編輯

make 編譯

make modules_install 子產品安裝

make install 安裝

修改.i㎎檔案

解壓 .img 檔案

zcat initrd-2.6.30.img | cpio -i

cd /tmp

mkdir init

cp /boot/initrd-2.6.30.img /tmp

cd init

zcat ../initrd-2.6.30.img | cpio -i

find . | cpio -c -o >> ../initrd

gzip -9 initrd

mv initrd.gz initrd.img

測試編譯 .img 檔案

cp initrd.img /boot/

vim /boot/grub/grub.conf

title red hat enterprise linux server (2.6.30)

       root (hd0,0)

       kernel /vmlinuz-2.6.30 ro root=label=/ [rhgb quiet] "[]" 内去掉後 快速啟動

       initrd /initrd.img   添加行

title red hat enterprise linux server (2.6.18-308.el5)

       kernel /vmlinuz-2.6.18-308.el5 ro root=label=/ rhgb quiet

       initrd /initrd-2.6.18-308.el5.img

***********************************************************************************

*

設定ip

setup

service network restart 重新開機網卡

/etc/init.d/network restart

網卡配置檔案

/etc/sysconfig/network-scripts/ifcfg-eth0

檢視網卡資訊

ifconfig eth0

ifconfig eth0 10.10.10.10

ifconfig eth0 down 或 ifdown eth0  停用網卡

ifconfig eth0 up 或者 ifup eth0  啟用網卡

ifdown eth0 || ifup eth0    || 前一個指令正确執行,後一個指令不執行    (邏輯或)

ifdown eth0 && ifup eth0    && 前一個指令必須正确執行,然後執行後一個指令  (邏

輯與)

ifdown eth0 ; ifup eth0        ; 不管前一個指令是否正确執行,後一個指令都

要執行

臨時修改mac位址

ifconfig eth0 down

ifconfig eth0 hw ether 00:01:22:a1:c2:3d

ifconfig eth0 192.168.1.188

ifconfig eth0 up

service network restart

永久修改 /etc/sysconfig/network-scripts/ifcfg-eth0 相應行

網卡别名

ifconfig eth0:0 10.10.10.10

cd /etc/sysconfig/network-scripts/

cp ifcfg-eth0 ifcfg-eth0:0

vim ifcfg-eth0:0

device=eth0:0

bootproto=none

hwaddr=00:0c:29:d5:0b:2b

onboot=yes

ipaddr=10.10.10.10

netmask=255.255.255.0

gateway=10.10.10.1

type=ethernet

service netwrok restart

多餘網卡備份網卡配置檔案

/etc/modprobe.conf

/etc/sysconfig/hwconf hw配置的實際mac位址

/etc/sysconfig/networking/devices

/etc/sysconfig/networking/profiles/default

删除虛拟網卡位址

ip add del xxx.xxx.xxx.xxx dev eth0:0

添加路由

route -n 檢視

route add default gw 192.168.1.254

route del default gw 192.168.1.254

traceroute www.baidu.com 路由追蹤

arping 192.168.1.254  檢測沖突檢測

arp 檢查連接配接本機的位址

ip addr show 顯示所有網卡資訊

主機名

hostname

hostname robin.com

/etc/sysconfig/network  主機名配置檔案

hostname=robin.com

1.which 查找指令位置

2.whereis

3.grep 過濾檔案

4.locate(依賴 updatedb 指令)  查找昨天建立檔案

vim /etc/crontab 系統自動維護

vim /etc/anacrontab 未執行任務 延期 開機65分鐘維護

tmp不維護 7天後自動清空不用檔案

5.find

find / -name .img           按照 名稱超找

find / -type p -ls          按照 類型查找

find / -links 30 -ls        按照 硬連接配接數查找

find /home -user xiao -ls  按照 使用者名查找

find /home -group xiao -ls 按照 組查找

find /home -nouser -ls       查找無使用者名檔案

find /home -nogroup -ls    查找無組名檔案

find /home \(-nouser -a nogroup \) -ls 顯示 無使用者名與無組的檔案

find /home \(-nouser -o nogroup \) -ls 顯示 無使用者名或無組的檔案

find /home -nouser -exec rm -rf {} \;  查找無使用者名的檔案 然後删除  rm -rf {} \; 固定格式

find /home -nogroup -ok rm -rf {} \;   互動式删除 查找到滿足條件的檔案

按照 檔案大小查找檔案

find /home/test -size 300m              等于

find /home/test -size +150m -a -size -350m    大于小于 全滿足

find /home/test -size -150m -o -size +350m    小于大于 任其一

***************************************************************************

stat

 file: `mac.sh'

 size: 461             blocks: 8          io block: 4096   regular file

device: 802h/2050d      inode: 58425610    links: 1

access: (0755/-rwxr-xr-x)  uid: (    0/    root)   gid: (    0/    root)

access: 2013-06-04 10:02:04.000000000 +0800

通路時間

modify: 2013-06-04 09:50:51.000000000 +0800

修改時間

change: 2013-06-04 09:50:51.000000000 +0800

屬性權限

*****************************************************************************

修改檔案時間

touch -m -d 20120101 aa.txt         建立檔案帶時間

touch -m -t 201010101010.10 aa.txt     建立檔案日期時間

******************************************************************************

按照時間查找

find /home/test -mtime +8             查詢8天以前的檔案

find /home/test -mtime -8             查詢8天以内的檔案

find /home/test -mtime +2 -a -mtime -10     查詢2天以前,10天以内檔案

find /home/test -mtime +2 -o -mtime -10     查詢2天以前或10天以内檔案

按照 權限查找 (9個權限位置)

find . -perm  644  正好比對

find . -perm +314  任意比對 含有一個字元就可以

find . -perm -424  完全比對 子集(比對任意重合位置)

記憶體溢出查詢

find / -type f | xargs file

橫向排列查出字段

cut -d: -f 1 /etc/passwd | xargs

查找出字段建立成檔案夾

cut -d: -f 1 /etc/passwd | xargs mkdir

服務管理

dhcp

安裝包:dhcp-3.0.5-31.el5.i386.rpm

啟動服務:service dhcpd restart  或者/etc/init.d/dhcdp restart

模闆檔案:/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample

配置檔案:/etc/dhcpd.conf

覆寫原來檔案

cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf

修改虛拟機 ip位址  host-only 模式 開啟dhcp服務 否則會有啟動dhcp服務失敗的情況

ifconfig vmnet1 172.16.17.100

修改參數

ddns-update-style interim;

ignore client-updates;

subnet 172.16.17.0 netmask 255.255.255.0 {              # 網段

# --- default gateway

       option routers                  172.16.17.1;    # 網關

       option subnet-mask              255.255.255.0;    # 掩碼

       option nis-domain               "domain.org";

       option domain-name              "domain.org";

       option domain-name-servers      172.16.17.1,8.8.8.8;    # dns位址

       option time-offset              -18000; # eastern standard time

#       option ntp-servers              192.168.1.1;

#       option netbios-name-servers     192.168.1.1;

# --- selects point-to-point node (default is hybrid). don't change this unless

# -- you understand netbios very well

#       option netbios-node-type 2;

       range dynamic-bootp 172.16.17.100 172.16.17.200;    # 位址池

       default-lease-time 21600;

       max-lease-time 43200;

       # we want the nameserver to appear at a fixed address

       host ns {

               next-server marvin.redhat.com;

               hardware ethernet 12:34:56:78:ab:cd;        # 指定mac位址

               fixed-address 207.175.42.254;            # 指定擷取ip位址

       }

}

啟動服務

service dhcpd restart

netstat -anplt -a all n 去掉host解析  p pid   l長格式  t tcp  u udp

租約檔案

動态檢視配置設定位址 (服務端)

tail -f /var/lib/dhcpd/dhcp.leases

用戶端擷取檔案 (用戶端)

tail -f /var/lib/dhclient/dhclient-eth0.leases

殺死dhcp用戶端程序 pkill dhclient

工作原理(服務端:tail -f /var/log/messages)

client              server

 -------dhcpdiscover------->

 <------dhcpoffer-----------

 -------dhcprequest-------->

 <------dhcpack-------------

dhcp多網段配置設定

dhcp伺服器配置

vim /etc/dhcpd.conf

subnet 10.10.10.0 netmask 255.255.255.0 {

       option routers                  10.10.10.10;

       option subnet-mask              255.255.255.0;

       option domain-name-servers      202.106.0.20;

       range dynamic-bootp 10.10.10.1 10.10.10.253;

subnet 100.100.100.0 netmask 255.255.255.0 {

       option routers                  100.100.100.254;

       range dynamic-bootp 100.100.100.1 100.100.100.253;

route add default gw 10.10.10.254 網關設定

dhcprelay伺服器 (中繼伺服器)

安裝軟體:dhcp-3.0.5-31.el5.i386.rpm

ifconfig eth0 10.10.10.254

ifconfig eth1 100.100.100.254

開啟轉發功能

echo 1 >/proc/sys/net/ipv4/ip_forward

vim /etc/sysconfig/dhcrelay

interfaces="eth0 eth1"          網卡接口

dhcpservers="10.10.10.10"      dhcp伺服器的ip

===================================

ssh服務(遠端連接配接telnet 23)

啟動服務:service sshd restart | start | stop |status

配置檔案 /etc/

端口:22

nmap 192.168.1.49 掃描對方端口

遠端拷貝   authorized_keys

scp install.log 192.168.1.254:/tmp  遠端登入後操作

scp 192.168.1.49:/root/install.log /tmp/ 本地操作ssh遠端

ssh [email protected]

端口改變後登入與遠端拷貝

ssh 192.168.1.254 -p 54321

scp -p 54321 anaconda-ks.cfg 192.168.1.254:/tmp/

修改端口

vim /etc/ssh/sshd_config

port 54321

wall 廣播

write root /dev/pts/13 給某個登入使用者發送

netstat -anplt

kill -9 pid号碼 踢掉單一使用者

whoami  目前使用者身份

who i am 登入使用者身份

last  登入記錄

lastlog 最後登入使用者日志

給虛拟機分一個在200.200.200.0/24網端的ip

指定200.200.200.200給虛拟機

ssh密鑰登入

ssh-keygen

在執行該指令使用者的家目錄下産生.ssh目錄儲存密鑰資訊

id_rsa  id_rsa.pub

私鑰    公鑰

scp id_rsa.pub 192.168.1.240:/root/.ssh/authorized_keys

兩台伺服器互相登入不需要密碼。

伺服器1.ssh-keygen

 scp id_rsa.pub 192.168.1.240:/root/.ssh/authorized_keys

伺服器2.ssh-keygen

 cat id_rsa.pub >> authorized_keys

 scp authorized_keys 192.168.1.254:/root/.ssh/

伺服器拒絕密碼驗證

vim /etc/ssh/sshd_config  修改60行

passwordauthentication no

重新開機服務

service sshd restart

============================================================================

syslogd+日志輪轉

日志存放位置/var/log

日志的配置檔案/etc/syslog.conf

啟動服務:service syslog restart

aaaaa.bbbbb        ccccc

aaaaa産生日志的對象

mail

authpriv

cron

news

uucp

syslog

bbbbb日志級别(8)

debug

info

notice

warning

err

crit

alter

emerg(panic)  

mail.info   從info以上資訊顯示

mail.=err    隻要err資訊

mail.=!err   除了err 其他記錄都顯示  !取反的意思

定義到 /etc/syslog.conf 内顯示錯誤資訊

ccccc 儲存日志的位置

所有使用者資訊

*.info;mail.none;authpriv.none;cron.none         /var/log/messages

authpriv.*     /var/log/secure 認證資訊全部儲存

*.emerg        *  所有緊急資訊都存放 可存放位置

**********************************************************************

ccccc 儲存日志的位置 gpm 滑鼠程序

1.儲存檔案 要有可讀寫權限

*.info;mail.none;authpriv.none;cron.none    *  /tmp/log.log

2.發送終端  tty 查詢位置

*.info;mail.none;authpriv.none;cron.none    /dev/pts/0

3.發送給使用者

*.info;mail.none;authpriv.none;cron.none        robin

自定義日志

例子:

vim /etc/ssh/sshd_config    自定義日志位置

syslogfacility local6        定義位置

vim /etc/syslog.conf        添加自定義日志檔案位置

local6.*            /tmp/ssh.log

重新開機服務生效

service syslog  restart

日志将存放在/tmp/ssh.log

=========================================================================

遠端日志

服務端 vi /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"

用戶端 vi /etc/syslog.conf

*.info;mail.none;authpriv.none;cron.none       @192.168.1.254

service syslog restart

過濾日志資訊    grep 192.168.1.188 var/log/message

iptables -l 檢視防火牆

getenforce 檢視selinx狀況

/etc/selinux/config 關閉disable

setenforce 0

chkconfig  --level 2345 服務名稱 off/on

ntsysv 圖形化管理服務

====================================================================

下午課程

日志切割

主配置檔案:/etc/logrotate.conf

子配置檔案:/etc/logrotate.d/

touch /etc/logrotate.d/test

/var/log/test.log {

   missingok

   daily

   notifempty

   rotate 7

   create 0700 root root

touch /var/log/test.log

強制切割日志

logrote -f /etc/logrotate.d/test

while :

      cat /root/install.log >> /var/log/test.log

      sleep 2

1./var/log/test.log 對該檔案進行日志輪轉

每天一次 空檔案不切割 每天切割一次 保留7分  檔案權限700

/etc/logrotate.d/test

   daily       天   時間 主要

   rotate 7    7份

2./var/log/test.log 每分鐘切割一次 大小如果大于10k  ?

   missingok   丢失不提示

   notifempty  空檔案

   size 10k    檔案大小

   create 0700 root root   建立檔案權限

crontab -e

* * * * * logrotate /etc/logrotate.d/test

===========================================================

檔案伺服器搭建nfs samba vsftpd

nfs伺服器

配置檔案 /etc/exports

啟動服務:service  portmap restart(rpcbind)

        service  nfs restart

端口:2049

檢視端口 /etc/services

配置

vim /etc/exports

/nfs    *(rw,sync,no_root_squash)讀寫,同步 沒有root切換

/nfs    192.168.1.0/24(rw) 10.10.10.0/24(ro)  網段劃分權限

/nfs    192.168.1.240/32(rw)              單機使用者  

service portmap restart

service nfs restart

exportfs -a 直接重新整理 生效配置

chmod o=rwx /nfs

用戶端

showmount -e 192.168.1.254

mount 192.168.1.254:/nfs /mnt

1.raid+lvs+nfs nas伺服器

伺服器端設定:

partprobe /dev/sdb

partprobe /dev/sdd

partprobe /dev/sde

mkfs.ext3 /dev/sdb1

mkfs.ext3 /dev/sdd1

mkfs.ext3 /dev/sde1

mdadm -c /dev/md5 -l 5 -n 3 /dev/sdb1 /dev/sdd1 /dev/sde1

mkfs.ext3 /dev/md5

echo device /dev/sdb1 /dev/sdd1 /dev/sde1 > /etc/mdadm.conf

mdadm -ds >> /etc/mdadm.conf

建立lvm

pvcreate /dev/md5

vgcreate vg0 /dev/md5

lvcreate -l 10g -n /dev/vg0/lv0 vg0

mount /dev/vg0/lv0 /lv0

編輯 nfs 配置檔案

添加

/lv0    *(rw,sync,no_root_squash)

動态重新整理配置

exportfs -a

檢視連接配接使用者

showmount -a

檢視共享目錄

showmount -e

用戶端設定

2.mount lv0時 自動挂載3方式(autofs 随意觸發挂載)

方法1

編輯 vim /etc/rc.d/rc.local

mount 10.8.8.8:/lv0 /nfs1

實作開始自動挂載到nfs1目錄下 nfs1目錄存在情況下

方法2

編輯 vim /etc/fstab

10.8.8.8:/lv0       /nfs8     nfs   rw    0 0

實作開始自動挂載到/nfs8目錄下 nfs8目錄存在情況下

方法3

編輯自動挂載配置檔案

添加挂載點

/nfs88  /etc/auto.nfs88 --timeout=20

建立挂載配置檔案

vim /etc/auto.nfs88

任意挂載

*       -fstype=nfs,rw 10.8.8.8:/lv0

重新開機自動挂載服務

service autofs restart

觸發挂載

cd /nfs88/nfs8

檢視效果

samba

安裝包:

samba-3.0.33-3.37.el5.i386.rpm

samba-client-3.0.33-3.37.el5.i386.rpm

samba-common-3.0.33-3.37.el5.i386.rpm

啟動服務:

service smb restart

配置檔案:

/etc/samba/smb.conf

匿名配置

security = share

[smb]

       comment = test server

       path = /smb     共享目錄

       public = yes     共享

       writable = yes   可寫

   browseable = no (no 為不可見共享)

chmod  777 /smb

測試

linux

smbclient -l //192.168.1.254

smbclient //192.168.1.254/smb

挂載smb

mount //192.168.1.254/smb /opt

使用者驗證

security = user

[nfs]

       comment = nfs

       path = /nfs

       writable = yes

       valid users = tom @tom 所有組使用者添加進samba資料庫

   write list = tom

   read list = @tom

認證可寫使用者

   comment = nfs

       path = /nfs                    

       valid users = tom @kkk所有組使用者添加進samba資料庫

   write list = kkk

認證可讀使用者  

       valid users = tom @kkk 所有組使用者添加進samba資料庫

   read list = @kkk

#windows建立檔案和目錄的權限掩碼

   directory mask = 0555

   create mask = 0444

   #通路控制  

   hosts allow = 192.168.1.240

   hosts deny = 192.168.1.240  exect 192.168.1.5 先拒絕 後允許

useradd  tom

smbpasswd -a tom

pdbedit -l 查詢samba使用者

smbclient -u tom%123 //192.168.1.254/nfs

mount -o cifs username=tom,password=123 //192.168.1.254/nfs /opt

===================================================================

在/tmp目錄下建立兩個目錄/tmp/u1 /tmp/u2

使用者jack  組upup(abc1 abc2)

jack 可以rw /tmp/u1目錄  upup組 隻讀

upup 可以rw /tmp/u2目錄  jack 隻讀

useradd jack

groupadd upup

useradd -g upup abc1

useradd -g upup abc2

smbpasswd -a jack

smbpasswd -a abc1

smbpasswd -a abc2

pdbedit -a -u jack

pdbedit -a -u abc1

pdbedit -a -u abc2

pdbedit -l

vim /etc/samba/smb.conf

[u1]

        comment = u1

       path = /tmp/u1

       valid = jack @upup

       write list = jack

[u2]

      comment = u2

       path = /tmp/u2

        valid = jack @upup

       read list = jack

vsftpd 服務

vsftpd-2.0.5-24.el5.i386.rpm

lftp-3.7.11-7.el5.i386.rpm

端口: 20 資料 21 控制

配置檔案位置:/etc/vsftpd/vsftpd.conf

啟動服務:service vsftpd restart

服務主目錄:/var/ftp   隻能為 755

配置匿名服務(ftp)

預設vsftpd伺服器隻能下載下傳

允許上傳

anon_upload_enable=yes        27行

繼續閱讀