biji 之 liunx
ULE
关闭防火墙
[root@localhost ~]# iptables -F
[root@localhost ~]# service iptables save
关闭SElinux
[root@localhost ~]# setenforce 0
[root@localhost ~]# gedit /etc/selinux/config
SELINUX=disabled
配置网络
gedit /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:3A:88:D3
TYPE=Ethernet
UUID=edfe5a49-2af3-41d9-8781-1266be2f6f74
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
[root@localhost ~]# service network restart
查看笔记
火狐浏览器
ftp://192.168.1.254/
基本命令
命令 【参数】... 【文件】... 【】可选项
ls -l
ls --help
ls -l install.log
-:rw-r--r--:. :1 :root: root: 69835 :4月 15 22:47: install.log
文件类型:权限位:该文件是否在开启selinux时创建:硬链接数:拥有者:所属组:size:最后一次修改时间:文件名
文件类型
- 普通文件(file)
d 目录文件(directory)
c 字符文件(charset)
b 块设备文件(block)
l 符号链接文件(symbolic)
p 管道文件(pipe)
s 套接字文件(socket)
ls -a 显示所有文件 -A 显示所有文件(除了.和..) -h 按最大单位显示大小
-d 显示目录信息 -l 长格式信息 -t 按时间排序 -r 逆序 -R 递归显示
-S 按大小排序
. 当前目录 .. 上层目录
练习:
找到当前目录下最大文件
查看桌面/或者Desktop/目录拥有者
找到修改时间最新的文件和最旧的文件
系统中取得帮助
1.ls --help
2.info ls
3.type ls
alias la='ls -alh'
unalias la
4.man
man ls
man 1 用户命令 *
man 2 系统调用
man 3 库调用
man 4 特殊文件
man 5 配置文件 *
man 6 游戏
man 7 杂项
man 8 系统命令 *
man -f passwd 查询一个命令在那些章节有相应的说明
makewhatis 维护man
man -k passwd 模糊查询
cd /根目录 ~家目录 /var/log .. . - 返回上次工作目录
绝对路径 从根目录进行操作的路径
相对路径 相对于当前目录的操作
/目录下目录的作用
/bin /usr/bin /usr/local/bin 用户可执行目录
/sbin /usr/sbin /usr/local/sbin 系统可执行目录
/lib /usr/lib /usr/local/lib 库文件目录(库文件和系统模块) 32为
/lib64/ /usr/lib64/ /usr/local/lib64/ 64位
/dev 设备文件目录(块设备 字符设备)
/usr 应用程序目录
/etc 配置文件目录
/var 服务器数据目录(服务器数据 日志)
/root 管理员家目录
/home 普通用户的家目录
/proc 内存和进程信息,内核参数(伪文件系统)
/sys 内存和进程信息,内核参数,硬件信息 (伪文件系统)
/boot 内核,启动文件,引导程序(一般情况下 独立文件系统)
/opt 第三方软件目录
/mnt 其他挂载点
/srv 服务器数据目录
/cgroup cpu资源管理
/tmp 临时文件目录
/selinux selinux安全组件使用的目录
/misc 和 /net autofs使用的目录
/media 媒介媒体目录
/lost+found 文件系统使用的目录
创建文件
[root@localhost ~]# touch aa.txt
[root@localhost ~]# touch cc.txt tt.txt
[root@localhost ~]# touch abc{1..10}.txt
[root@localhost ~]# touch {a,b,c}{1..3}.txt
创建目录
[root@localhost ~]# mkdir abcd
[root@localhost ~]# mkdir abce abcf
[root@localhost ~]# mkdir abc{1..10}
[root@localhost ~]# mkdir {a,b,c}{1..3}
[root@localhost ~]# mkdir -p xx/yy
[root@localhost ~]# mkdir -pv xx/yy
复制文件
cp 源文件地址 目标地址
[root@localhost ~]#cp /root/install.log /tmp/
[root@localhost ~]#cp /root/install.log /tmp/test.txt
[root@localhost ~]#cp -r xx/ /tmp/
[root@localhost ~]#cp -r xx/ /tmp/ooo
剪切文件
[root@localhost ~]# mv /root/abc1.txt /tmp/
[root@localhost ~]# mv /root/abc2.txt /oooo.txt
[root@localhost ~]# mv /root/abcd/ /tmp/
[root@localhost ~]# mv tt.txt yy.txt
删除文件
rmdir 删除空目录
rm
[root@localhost ~]# rm abc3.txt
[root@localhost ~]# rm -f abc4.txt
[root@localhost ~]# rm -rf xx/
[root@localhost ~]# rm -rf *.txt
[root@localhost ~]# rm -rf abc*
[root@localhost tmp]# rm -rf *
[root@localhost tmp]# rm -rf /oooo.txt
查看文件内容
[root@localhost ~]# more install.log
[root@localhost ~]# less install.log
[root@localhost ~]# cat -n install.log
[root@localhost ~]# cat -b install.log
[root@localhost ~]# head install.log
[root@localhost ~]# head -n 20 install.log
[root@localhost ~]# tail install.log
[root@localhost ~]# tail -n 30 install.log
[root@localhost ~]# tail -f /var/log/messages 监控一个日志文件
| 管道符 将前一个命令的输出结果作为后一个命令的输入
cat -n install.log | less
练习:
1.创建一下目录结构(并且验证)
/aa
/ \
ba/ bb/
/ \ \
ca/ cb/ cc/
mkdir -p /aa/ba/c{a,b} /aa/bb/cc
ls -R /aa/
tree /aa/
tree -L 1 /
2.进入到ba目录怎么查询所在位置,由ba进入到ca有几种方法
pwd
两种 绝对路径和相对路径
3.拷贝文件/etc/man.config到ca目录,并且改名为test.txt
cp /etc/man.config /aa/ba/ca/test.txt
4.剪切test.txt到cc目录(两种写法)
[root@localhost ca]# mv /aa/ba/ca/test.txt /aa/bb/cc/
[root@localhost ca]# mv test.txt ../../../aa/bb/cc/
5.cp /root/install.log /tmp/ 两次拷贝同一个文件到同一个位置 不出现覆盖提示
\cp /root/install.log /tmp/
[root@localhost tmp]# /bin/cp /root/aa.txt /tmp/
[root@localhost ~]# unalias cp
[root@localhost ~]# cp -n aa.txt /tmp/
ctrl+c 中断命令
ctrl+l 清屏
vim 文本编辑器 vi
由命令模式进入输入模式
a 在当前字符后输入 *
A 在当前行行尾输入
i 在当前字符前输入
I 在当前行行首输入
o 在当前行下一行输入 *
O 在当前行上一行输入
s 删除当前字符后输入
S 删除当前行后输入
命令模式
u 撤销一步操作
ctrl+r 重做
yy 复制一行 p 粘贴
50yy 复制50行
dd 剪切(删除)一行
50dd 剪切(删除)50行
^托字符 行首 $行尾
y^ 复制当前字符到行首
y$ 复制当前字符到行尾
d^
d$
w 下一个单词的首字符 dw 剪切/删除一个单词
G 尾行
gg 首行
500G 定位到500行
dgg 删除当前行到首行
dG 删除当前行到尾行
末行模式
:w :q :wq
:w! :q! :wq!
:2,10w /root/file 另存
:e /root/aa.txt 打开一个文件
:r /root/tt.txt 追加读入
:e! 重新打开当前文件
:set nu 行号
:set nonu
:set autoindent 自动缩进
:set noautoindent
:set softtabstop=4 设置制表符长度
:set noic 忽略大小写
:set ic
查找
/ ? n N
替换
:s/ab/@@/ 只替换所在行匹配到的第一个ab
:%s/ab/@@/gc % 所有行 s 交换 g 全局 c交互式
:%s/^#// 删除所有开头的#号
:%s/#// 删除每行第一个#号
:%s/^ //g 开头的空格
:%s/^ *//g 去掉开头的多个空格
:%s/ //g 去掉所有的空格
:%s/\t//g 替换制表符
:%s/\n// 删除每行的换行符号
:%s/\//#/g 替换/ \转义符
:%s@/@#@g
删除空行
:g/^$/d
:g/^\s*$/d
可视化模式 命令模式下v
y d p
可视化块模式 ctrl+v
y d p
选中列 --- shift+i------输入字符-----ESC两次
shfit+k 调用man配置
vim配置文件 /etc/vimrc
set nu
多文件操作
vim aa.txt cc.txt tt.txt
:args :next :prev :last :first ctrl+^
vimdiff aa.txt cc.txt tt.txt
ctrl+w+w 切换
wqa 保存退出所有文件
vim -O aa.txt cc.txt tt.txt
vim -o aa.txt cc.txt tt.txt
vimtutor vim教程
格式转换
unix2dos file
dos2unix file
字符集转换
iconv -f gb2312 -t utf-8 test.txt -o test2.txt
源字符集 输入字符集 源文件 转换后的文件
用户管理
uid 0 root gid 0 root组
uid 1-499 系统用户 gid 1-499 系统组
uid 500-60000 普通用户 gid 500-60000 普通用户组
保存帐号信息的文件/etc/passwd
robin:x:500:500:test:/home/robin:/bin/bash
用户名:密码占位符:UID:GID:描述:家目录:shell
useradd zorro
useradd -u 700 abc1
useradd -u 701 -g abc1 abc2
useradd -u 702 -g abc1 -c Ptuser abc3
useradd -u 703 -g abc1 -c Ptuser -d /tmp/abc4 abc4
useradd -u 704 -g abc1 -c Ptuser -d /tmp/abc5 -s /bin/bash abc5
su - abc5
创建组
组配置文件 /etc/group
uplooking:x:701:
组名:组密码占位符:GID:用户名
groupadd -g 800 upup
练习:
添加组 uplook gid 2000
添加用户 seker uid 2000 属于uplook 描述hello 家目录/tmp shell为bash
[root@localhost ~]# groupadd -g 2000 uplook
[root@localhost ~]# useradd -u 2000 -g 2000 -c hello -d /tmp/seker -s /bin/bash seker
su - seker测试帐号状态
userdel -r seker
设置密码
passwd robin
密码保存文件/etc/shadow
robin:$6$GKpDei.N$aQKiyY15n6NRXpu3zDE1snhMbuqIs70B8kBMYX.QYP4u8eX 6L9CF4PiT64mUMivEOiAImuDRD5qxiiqsqLxSE0:16176:0:99999:7:::
第一列 用户名
第二列 密码 !! 密码锁定 无密码 * 永久性不能登录 !
第三列 最后一次修改密码的时间
第四列 密码最小时间(密码修改相隔时间)
第五列 密码最大时间(密码有效期)
第六列 密码过期前警告时间
第七列 密码过期后帐号过期时间
第八列 帐号有效期
第九列 保留列
修改帐号信息
usermod -u -g -c -d -s robin
[root@localhost ~]# usermod -l newzorro zorro 修改用户名
[root@localhost ~]# usermod -L robin 锁定帐号
[root@localhost ~]# usermod -U robin 解锁帐号
修改组
groupmod
groupmod -n uplook-2 uplook 修改组名
groupmod -g 2500 uplook-2 修改GID
修改密码
passwd
passwd -l robin 锁定密码
passwd -u robin 解锁密码
passwd -S robin 查看密码状态
passwd -n 最小 -x 最大 -w 警告 -i 密码后帐号过期 robin
练习:
添加帐号 tom和jerry 设置密码位置123
锁定tom帐号 锁定jerry密码
测试登录两个帐号 返回信息是否一致?能不能判断帐号问题还是密码问题?
查看shadow文件密码列两个用户有什么变化?
删除帐号
userdel -r zorro
删除组
groupdel uplook
添加用户的默认值
/etc/default/useradd *
HOME=/home
SHELL=/bin/bash
SKEL=/etc/skel 拷贝环境配置文件的位置
/etc/login.defs *
附加组
[root@localhost ~]# groupadd kf
[root@localhost ~]# groupadd yw
[root@localhost ~]# useradd -G kf,yw wg
[root@localhost ~]# id wg
uid=706(wg) gid=706(wg) 组=706(wg),801(kf),802(yw)
[root@localhost ~]# usermod -G kf wg
[root@localhost ~]# id wg
uid=706(wg) gid=706(wg) 组=706(wg),801(kf)
[root@localhost ~]# usermod -a -G yw wg
[root@localhost ~]# id wg
uid=706(wg) gid=706(wg) 组=706(wg),801(kf),802(yw)
手动管理帐号
1.groupadd -g 3000 zhb
--------------------------------
vim /etc/group
zhb:x:3000:
2.useradd -u 3000 -g 3000 eric
----------------------------------------
vim /etc/passwd
mkdir /home/eric
cp /etc/skel/.bash* /home/eric/
3.passwd eric
------------------------------
vim /etc/shadow
grub-md5-crypt
批量导入
touch user.txt
vim user.txt
kkk1:x:3001:3001:PT:/home/kkk1:/bin/bash
kkk2:x:3002:3002:PT:/home/kkk2:/bin/bash
newusers < user.txt
touch pass.txt
vim pass.txt
kkk1:123
kkk2:123
chpasswd < pass.txt
用户环境配置
.bash_history 保存用户执行过的历史命令(当用户退出时保存)
.bash_logout 当用户退出时执行的命令
.bashrc 保存用户的别名和函数
.bash_profile 保存用户执行命令的路径
.bashrc shell级别环境变量配置文件
.bash_profile 登录级别环境配置文件
source .bashrc 和 . .bashrc 直接生效
/etc/bashrc 全局shell级别环境变量配置文件
/etc/profile 全局登录级别配置文件
文件加载顺序
/etc/profile
.bash_profile
.bashrc
/etc/bashrc
su robin 和 su - robin
su robin shell级别切换用户
su - robin 登录级别切换用户
基本权限
[root@localhost ~]# ls -l install.log
-rw-r--r-- 1 robin uplooking 71549 4月 16 19:14 install.log
rwx | rwx | rwx
user group other
robin uplooking other
u g o
(uid=0)root------user(拥有者)------group(所属组(附加组))------other
对文件来说
r----------读 cat head tail
w----------写 > vim gedit
x---------执行 ./ 绝对路径
对于目录来说
r----------读 ls 详细信息r-x
w----------写 rm touch -wx rm -rf test/* rwx
x----------执行 cd
chmod u+r file/dir
chmod u+r,g+x,o+w file/dir
chmod ug+rw,o-rw file/dir
chmod ugo+rwx file/dir
chmod a-rwx fiel/dir
chmod u=r file/dir
chmod u=r,g=w,o=x file/dir
chmod ug=rw,o=x file/dir
chmod ugo=rwx file/dir
chmod a=r file/dir
练习:(以下通过+-和=两种方式完成)
1.在/tmp/创建文件aa.txt
user可以读 所属组可以写和执行 其他人没权限
touch /tmp/aa.tx
chmod u-w,g+wx,g-r,o-r tt.xt
chmod u=r,g=wx,o= aa.txt
2.在/tmp/创建目录test
user可以查看文件详细信息
group可以创建删除
other只能进入
chmod u-w,g-r,g+w,o-r test/
chmod u=rx,g=wx,o=x test/
3.查看以下目录权限
/ r-xr-xr-x
/etc rwxr-xr-x
/var rwxr-xr-x
/root r-xr-x---
/tmp rwxrwxrwt
/home/robin rwx------
/etc/passwd rw-r--r--
/etc/shadow ---------
普通用户创建的文件 rw-rw-r--
普通用户创建的目录 rwxrwxr-x
root用户创建的文件 rw-r--r--
root用户创建的目录 rwxr-xr-x
r---------4
w---------2
x---------1
777
r-x-wx-x 531
561 r-xrw---x
chmod 777 file/dir
chmod 000 file/dir
chmod -R 777 test/ 递归修改权限
umask 0022 root用户权限反掩码
修改拥有者和所属组
chown robin aa.txt
chgrp uplooking aa.txt
chown .root aa.txt 修改所属组
chown robin.uplooking aa.txt
.=:
chown -R robin:uplooking aa.txt 递归修改
作业:
1.创建文件/tmp/aa.txt
要求
robin用户可以读写该文件
zorro组可以读该文件
其他人能读写
2.创建文件/tmp/tt.txt
公司有10个人 该文件tt.txt就不让老板看
3.创建目录/tmp/test
创建文件/tmp/test/yy.txt
要求:
robin用户可以读写yy.txt 但是不能删除
zorro用户不可以读写yy.txt 但是可以删除
高级权限
suid(set uid)
作用:任何用户在执行拥有suid权限的命令时,都以该命令拥有者的身份执行
suid必须作用到二进制可执行文件(命令)
chmod u+s 命令
实验:
普通用户可以查看shadow内容?(前提不改变shedow文件的权限)
chmod u+s /usr/bin/head
sgid(set gid)
作用:任何用户在拥有sgid权限的目录下创建的文件,都要继承该目录的组
sgid必须作用到目录上
chmod g+s 目录
实验:
在/tmp/下创建目录test 权限设定为777 创建用户robin
1.使用robin用户在/tmp/test目录下创建文件aa.txt 所属组是?
2.在/tmp/test目录上添加sgid权限 然后robin在/tmp/test下创建文件tt.txt 所属组是?
3.修改/tmp/test目录所属组为uplooking,然后robin在/tmp/test下创建文件yy.txt 所属组? 以前创建文件所属组有没有发生变化?
4.robin在/tmp/test下创建目录dir dir目录的权限和所属组有什么变化?
5.root用户在/tmp/test创建的文件受不受sgid影响?
sticky(冒险位 粘帖位)
作用:任何用户在拥有t权限的目录下创建的文件,都属于该用户本身,其他人无权删除
必须作用到目录上
chmod o+t 目录
实验:
创建/tmp/test目录 权限设定777
创建用户 robin 和 zorro
1.robin用户在/tmp/test下创建文件 aa.txt 问:zorro能不能删除?
2.在/tmp/test添加t权限 robin用户在/tmp/test创建cc.txt 问:zorro能不能删除
3.root用户能不能删除robin或者zorro创建的文件?
4.创建用户tom 修改/tmp/test拥有者为tom 问:tom能不能删除robin或者zorro创建的文件?
suid ---------- 4
sgid ---------- 2
sticky--------- 1
4777
2777
1777
3777
高级权限小写源文件有执行权限,大写没有执行权限
[root@localhost tmp]# touch aa.txt
[root@localhost tmp]# chmod 7777 aa.txt
[root@localhost tmp]# ll aa.txt
-rwsrwsrwt 1 root root 0 4月 18 03:57 aa.txt
[root@localhost tmp]# chmod a-x aa.txt
[root@localhost tmp]# ll aa.txt
-rwSrwSrwT 1 root root 0 4月 18 03:57 aa.txt
进程管理
查看进程
静态查询
ps -ef
ps aux
动态查询
top
/proc目录
cat /proc/cpuinfo | grep pae
cat /proc/cpuinfo | grep vmx
cat /proc/cpuinfo | grep lm
杀进程
kill -9 进程pid
kill -15 进程pid
pkill httpd
killall httpd
xkill
ctrl+alt+退个键
前后台切换
xclock -update 1 前台运行
xclock -update 1 & 后台运行
nohup xclock -update 1 & 后台(脱离终端)
ctrl+z 后台挂起
jobs 查询后台程序
bg 编号 后台运行
fg 编号 将后台程序调到前台运行
杀掉后台程序 kill %编号
进程的优先级nice(-20~+19)
nice -n -20 xclock
renice 15 -p 进程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 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
day4
18 19 20
作业
1.(图形)终端运行 vim aa.txt
另外一个终端查询改进成pid
杀掉该进程
2. 在tty杀掉图形
3. 在tty2 先打开aa.txt 在不结束 aa.txt文件的情况下 打开tt.txt 关闭tt.txt 回到aa.txt
4.调整vim aa.txt进程的优先级为-15 再次调整为+10
高级命令
tac 上下颠倒
rev 左右颠倒
cat -n /etc/passwd | head -20 | tail -2 | tac | rev
sort 默认按首字符排序 -n 按整个数字排序 -r 逆序 -u 去掉重复行
uniq 去掉相邻的重复行 -u 显示不重复的行 -d 显示重复行 -c 统计重复次数
grep
grep root /etc/passwd
grep ^root /etc/passwd
grep halt$ /etc/passwd
grep -v halt$ /etc/passwd 取反
cut
cut -d: -f 1 /etc/passwd
cut -d: -f 1,3,5 /etc/passwd
cut -d: -f 1,3-5 /etc/passwd
cut -c 1 /etc/passwd
cut -c 1,3,5 /etc/passwd
cut -c 1-4 /etc/passwd
wc -l 行数 -w 单词数 -c 字符数
练习:
1.统计你系统中有多少个用户可以登录系统
grep bash /etc/passwd |wc -l
grep -c bash /etc/passwd
grep bash /etc/passwd | cut -d: -f 7 | uniq -c
2.ifconfig eth0 | awk -F":| +" '/Bcast/{print $4}'
192.168.1.254
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.
[root@localhost ~]# stat aa.txt
File: "aa.txt"
Size: 33 Blocks: 8 IO Block: 4096 普通文件
Device: 802h/2050d Inode: 802513 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-04-18 07:37:22.196949362 +0800
Modify: 2014-04-18 07:37:20.847949248 +0800
Change: 2014-04-18 07:37:20.877949344 +0800
07:37:22
07:37:20
07:37:20
stat aa.txt | tail -3 | cut -d. -f 1 | cut -d' ' -f 3
shell基础
history
!968 执行一次第968条命令
!! 在执行一次上一条命令
!ser 在执行一次最后一条以ser开头的命令
!$ 引用上一条命令最后一个参数 alt+.
& 后台执行
> >> 定向符 重定向符 1 2 文件描述符 默认是1
1标准正确输出
2标准错误输出
1> 标准正确输出 如果文件存在则覆盖 如果不存在则创建
2> 标准错误输出 如果文件存在则覆盖 如果不存在则创建
1>> 标准正确输出 如果文件存在则追加 如果不存在则创建
2>> 标准错误输出 如果文件存在则追加 如果不存在则创建
&> &表示标准正确输出和标准错误输出 &> /dev/null
2>&1 标准错误输出定向标准正确输出位置
循环脚本
#!/bin/bash
for i in {1..10}
do
echo "add user abc$i now"
useradd abc$i 1>/dev/null 2>>/tmp/user.err
sleep 1
echo "setting user abc$i password"
echo 123 | passwd --stdin abc$i 1> /dev/null 2>>/tmp/user.err
sleep 1
echo "add success"
done
判断语句
#!/bin/bash
if [ -f /tmp/aa.txt ]
then
echo "文件存在!显示名称....."
sleep 1
ls -l /tmp/aa.txt
echo "hello"
echo "显示文件内容" >> /tmp/aa.txt
cat /tmp/aa.txt
else
echo "文件不存在!创建文件....."
sleep 1
touch /tmp/aa.txt
fi想·
压缩打包
gzip bzip2
[root@localhost ~]# dd if=/dev/zero of=/root/data bs=100M count=2
[root@localhost ~]# gzip data
[root@localhost ~]# gunzip data.gz
[root@localhost ~]# bzip2 data
[root@localhost ~]# bunzip2 data.bz2
tar 打包
[root@localhost ~]# tar -cvf boot.tar /boot/
[root@localhost ~]# tar -tvf boot.tar
[root@localhost ~]# tar -rvf boot.tar /root/install.log
[root@localhost ~]# tar -xvf boot.tar
[root@localhost ~]# tar -cvf /tmp/boot.tar /boot/
[root@localhost ~]# tar -xvf boot.tar -C /tmp/
调用压缩命令
[root@localhost ~]# tar -zcvf boot.tar.gz /boot
[root@localhost ~]# tar -ztvf boot.tar.gz
[root@localhost ~]# tar -zxvf boot.tar.gz
[root@localhost ~]# tar -jcvf boot.tar.bz2 /boot
[root@localhost ~]# tar -jtvf boot.tar.bz2
[root@localhost ~]# tar -jxvf boot.tar.bz2
软件安装
挂载
[root@localhost ~]# mount /dev/cdrom /mnt/
[root@localhost ~]# umount /mnt/ 卸载
[root@localhost ~]# umount -l /mnt/ 强制卸载
[root@localhost ~]# mount /var/ftp/rhel6_64.iso /mnt/ -o loop
[root@localhost ~]# mount -t iso9660 /var/ftp/rhel6_64.iso /mnt/ -o loop
mount 查询挂载信息
安装软件
rpm -ivh httpd-2.2.15-26.el6.x86_64.rpm
[root@localhost /]# rpm -q httpd 查询是否安装
[root@localhost /]# rpm -qi httpd 查询信息
[root@localhost /]# rpm -qa |grep httpd 从所有软件包中查询和httpd相关的软件包
[root@localhost /]# rpm -ql httpd 列出安装位置
[root@localhost /]# rpm -ql httpd | cut -d\/ -f 2 | uniq
[root@localhost /]# rpm -qc httpd 配置文件
[root@localhost /]# rpm -qd httpd 查询文档
[root@localhost conf]# rpm -qf /etc/man.config 通过文件查询软件包
[root@localhost conf]# rpm -qf `which xclock` 查询命令对应的软件包
[root@localhost conf]# rpm -e httpd 卸载软件
rpm -ivh httpd-2.2.15-26.el6.x86_64.rpm --force 强制安装
依赖关系(手动)
[root@localhost Packages]# rpm -ivh httpd-devel-2.2.15-26.el6.x86_64.rpm
warning: httpd-devel-2.2.15-26.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
apr-devel is needed by httpd-devel-2.2.15-26.el6.x86_64
apr-util-devel is needed by httpd-devel-2.2.15-26.el6.x86_64
rpm -ivh apr-devel-1.3.9-5.el6_2.x86_64.rpm
rpm -ivh apr-util-devel-1.3.9-3.el6_0.1.x86_64.rpm
rpm -ivh expat-devel-2.0.1-11.el6_2.x86_64.rpm
rpm -ivh apr-util-devel-1.3.9-3.el6_0.1.x86_64.rpm
rpm -ivh httpd-devel-2.2.15-26.el6.x86_64.rpm
rpm -e apr-devel --nodeps 不检测依赖关系卸载
rpm --import RPM-GPG-KEY-redhat-release 导入key
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release key位置
查询未安装软件信息
rpm -qpi httpd-devel-2.2.15-26.el6.x86_64.rpm
rpm -qpl httpd-devel-2.2.15-26.el6.x86_64.rpm
yum库
作用:用于解决rpm包之间的依赖关系
1.光盘或者镜像是否挂载
2.配置yum
1).touch /etc/yum.repos.d/yum.repo
2).vim /etc/yum.repos.d/yum.repo
[rhel6u4] ----------------- 名字
name=cdrom source ----------------- 描述
baseurl=file:///mnt/ ----------------- 库路径
enable=1 ----------------- 是否开启
gpgcheck=0 ----------------- 是否校验
测试
yum clean all 清楚yum缓存
yum makecache 建立yum缓存
yum list 列出软件包名字
yum install httpd-devel 安装
yum remove httpd 移除
yum reinstall httpd 重新安装
yum grouplist 组查询
yum groupinstall 组安装
yum search mysql 查找
yum provides libiw.so.29 查询库文件对应的软件包
yum建库
1.软件包准备好
2.确认建库命令安装
yum install createrepo
3.建库
createrepo /yum/
生成repodata目录
4.配置yum库 指向路径/yum
其他软件安装
源码包
1.tar -xvf lftp-3.5.10.tar.bz2 -C /usr/local/src/
2.cd /usr/local/src/lftp-3.5.10
./configure --prefix=/usr/local/lftp
make
make install
新路径加入到PATH变量
vim /root/.bashrc
export PATH=/usr/local/lftp/bin:$PATH
. /root/.bashrc
.src.rpm包 半源码包
1.确认rpmbuild命令已经安装
[root@localhost x86_64]# rpm -q rpm-build
rpm-build-4.8.0-32.el6.x86_64
2.rpm -ivh lftp-3.5.1-2.fc6.src.rpm 按转包 产生spec
3.cd /root/rpmbuild/SPECS
4.rpmbuild -bb lftp.spec 制作rpm包
5.cd /root/rpmbuild/RPMS/x86_64/
rpm -ivh lftp-3.5.1-2.el6.x86_64.rpm
依赖 yum install perl-String-CRC32
简单制作
[root@localhost software]# rpmbuild -bb aa.spec
[root@localhost software]# tar -xvf lftp-3.5.10.tar.gz
[root@localhost software]# cp lftp-3.5.10/lftp.spec /root/rpmbuild/SPECS/
tar -zcvf lftp-3.5.10.tar.gz ./lftp-3.5.10
cp lftp-3.5.10.tar.gz /root/rpmbuild/SOURCES/
rpmbuild -bb lftp.spec
计划任务
at(atd)
[root@localhost ~]# at 20:55
at> touch /tmp/at.txt
at> <EOT> -------- ctrl+d 结束
job 1 at 2014-04-18 20:55
[root@localhost ~]# at -l 查询
[root@localhost ~]# at -l 删除
2 2014-04-19 20:55 a root
[root@localhost ~]# atrm 2
crontab
[root@localhost ~]# service crond restart
[root@localhost ~]# crontab -e
* * * * *
分 时 日 月 周
分(00-59)
时(00-23)
日(01-31)
月(01-12)
周(0-7)0和7 代表周日
* * * * * date >> /tmp/date.txt 每分钟一次
*/5 * * * * date >> /tmp/date.txt 每5分钟一次
10 * * * * date >> /tmp/date.txt 每小时的10分
10 02 * * * date >> /tmp/date.txt 每天的2点10分
00 02 * * * date >> /tmp/date.txt 每天的2点
10 02 5,15,25 * * date >> /tmp/date.txt 每月的5,15,25号的2点10分
00 02 5,15,25 6-10 * date >> /tmp/date.txt 每年的6-10分5,15,25的点2点
00 02 5,15,25 6-10 7 date >> /tmp/date.txt 每年的6-10分5,15,25的点2点 或者是周日
t
day12作业
30 04 * * * wall <<< class over
*/2 * * * * tar -zcvf /backup/$(date +%m-%d-%H)-tmp.tar.gz /tmp
55 21 * * * touch /tmp/aa.tx
计划任务保存的位置:/var/spool/cron/
root用户管理其他人的计划任务
[root@localhost cron]# crontab -e -u robin
移除计划任务(该用户计划任务全部删除)
[root@localhost cron]# crontab -r
查询
[root@localhost cron]# crontab -l
系统的计划任务
/etc/crontab
cron.monthly/ 每个月执行计划任务
cron.weekly/ 每周执行的计划任务
cron.daily/ 每天执行的计划任务
cron.hourly/ 每小时执行的计划任务
/etc/cron.deny 限制普通用户使用计划任务
磁盘管理
fdisk -l
df -Th T 类型 h 最大单位
主分区 扩展分区 逻辑分区
主分区划分
[root@localhost ~]# fdisk /dev/sda
Command (m for help): m
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
Command action
e extended
p primary partition (1-4)
p ------------------------------------------主分区
Selected partition 4
First cylinder (2703-3263, default 2703):-----直接回车
Using default value 2703
Last cylinder, +cylinders or +size{K,M,G} (2703-3263, default 3263): +500M -------------------------------指定大小
Command (m for help): w
[root@localhost ~]# partx -a /dev/sda 同步分区别与硬盘信息
[root@localhost ~]# mkfs.ext4 /dev/sda4
[root@localhost ~]# mount /dev/sda4 /mnt/
删除
[root@localhost ~]# umount /mnt
[root@localhost ~]# fdisk /dev/sda
Command (m for help): d
Partition number (1-4): 4
Command (m for help): w
[root@localhost ~]# partx -d /dev/sda
[root@localhost ~]# ls /dev/sda*
rhel5
partprobe /dev/sda 同步数据
划分扩展分区
在划分逻辑分区 sda5 sda6
1.挂载sda5 /mnt 在/mnt下创建文件aa.txt 挂载sda6到/mnt上 问:能不能挂载?能看aa.txt文件
2.挂载sda5 到/mnt 在挂载sda5 /opt 问:能不能挂载 修改mnt下aa.txt文件内容 在opt下能不能看到变化
解决U盘不能写的问题
[root@localhost ~]# mount -o rw,remount /dev/sda5
卷标(label)
实验:
1.分5 6 7分区 分别格式化
2.挂载6 /mnt 创建文件sda6.txt 卸载sda6
3.删除分区5
4.挂载6 查看文件 能否看到? 挂载5 能否看到?
1.分5 6 7分区 分别格式化
2.挂载6 /mnt 创建文件sda6.txt 添加sda6卷标为disk6 卸载sda6
[root@localhost ~]# e2label /dev/sda6 disk6
[root@localhost ~]# e2label /dev/sda6
disk6
3.删除分区5
4.挂载卷标disk6 文件是否能看到?
[root@localhost ~]# mount LABEL=disk6 /mnt/
查UUID
blkid /dev/sda5
[root@localhost ~]# mount UUID="6c67733d-1251-4ece-a33f-7eef6f20a90f" /opt
分区使用率100%
分区的空间
分区inode号总数
交换分区扩大缩小
通过分区
1.添加分区
2.[root@localhost ~]# mkswap /dev/sda5
3.[root@localhost ~]# swapon /dev/sda5
4.free
swapon -s 查询交换分区信息
1.删除交换分区
[root@localhost ~]# swapoff /dev/sda5
2.fdisk删除交换分区
通过文件
[root@localhost ~]# dd if=/dev/zero of=/swap bs=500M count=2
[root@localhost ~]# mkswap /swap
[root@localhost ~]# swapon /swap
free
挂载
[root@localhost ~]# mount --bind /tmp/ /mnt/ 目录挂目录
[root@localhost ~]# mount -t tmpfs -o size=500M tmpfs /mnt 挂内存
GPT (GUID parttion table) 全局唯一标识分区表 MSDOS 2.2T
[root@localhost 桌面]# parted /dev/sdb
(parted) mklabel
新的磁盘标签类型? gpt
(parted) p
(parted) mkpart
分区名称? []? gpt1
文件系统类型? [ext2]? ext4
起始点? 1
结束点? 500M
(parted) p
(parted) quit
删除
[root@localhost 桌面]# parted /dev/sdb
(parted) rm
分区编号? 2
(parted) quit
自动挂载
第一种方式
vim /etc/rc.local
mount /dev/sda5 /mnt
第二种方式
vim /etc/fstab
/dev/sda6 /opt ext4 defaults 0 0
mount -a
第三种方式
autofs
service autofs restart
配置
1.
[root@localhost misc]# vim /etc/auto.master
/test /etc/auto.test --timeout=10
2.
[root@localhost misc]# touch /etc/auto.test
[root@localhost misc]# vim /etc/auto.test
aa -fstype=ext4,rw,sync :/dev/sda5
3.service autofs restart
测试
cd /test/aa
autofs超时时间配置
[root@localhost test]# vim /etc/sysconfig/autofs
[root@localhost ~]# watch -n 1 mount 连续不断的执行后边命令
文件系统
ext2 ext3 ext4 ntfs fat32 xfs reiserfs gfs cifs nfs
ext4
[root@localhost ~]# dumpe2fs /dev/sda5 查看文件系统
[root@localhost ~]# tune2fs -l /dev/sda5 查看超级块信息
[root@localhost ~]# tune2fs -L aaa /dev/sda5 修改卷标
[root@localhost ~]# tune2fs -c 20 /dev/sda5 最大挂载次数
[root@localhost ~]# tune2fs -C 10 /dev/sda5 当前挂载次数
[root@localhost ~]# tune2fs -O ^has_journal /dev/sda5 去掉日志
[root@localhost ~]# tune2fs -O has_journal /dev/sda5 添加日志
e2fsck -f /dev/sda5
fsck /dev/sda5
磁盘配额
1.挂载磁盘时打开磁盘配额功能
[root@localhost ~]# mkdir /quota
[root@localhost ~]# mount -o usrquota /dev/sda6 /quota
2.检测挂载点,生成配额文件
[root@localhost ~]# quotacheck /quota/
[root@localhost ~]# ls /quota/
aquota.user
3.配置用户配额
[root@localhost ~]# useradd robin
[root@localhost ~]# useradd zorro
[root@localhost ~]# edquota -u robin
Disk quotas for user robin (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sda6 0 50 100 0 10 20
4.激活配额
[root@localhost ~]# quotaon /quota/
[root@localhost test]# quotaoff /quota/ 取消激活配额
5.测试
[root@localhost ~]# su - robin
[robin@localhost ~]$ cd /quota/
[robin@localhost quota]$ dd if=/dev/zero of=data bs=60K count=1
sda6: warning, user block quota exceeded. 软限制生效
[robin@localhost quota]$ dd if=/dev/zero of=data2 bs=60K count=1
sda6: write failed, user block limit reached.
dd: 正在写入"data2": 超出磁盘限额
宽限时间设定
[root@localhost test]# edquota -t
参考已有配额配置
[root@localhost test]# edquota -p robin zorro
设置完配额用户 无配额用户
查询已经激活配额用户
[root@localhost test]# repquota -a
实验:组配额
1.mount -o grpquota /dev/sda5 /quota
2.quotacheck -g /quota
3.
groupadd uplooking
useradd -g uplooking robin
useradd -g uplooking zorro
edquota -g uplooking
4.quotaon -g /quota
测试
100K block 20个 inodes
问:100K空间是robin和zorro共有? 每个人100K?
20个文件是robin和zorro共有? 每个人20个文件?
权限
特殊属性
chattr +i 文件/目录
chattr -i 文件/目录
chattr +a 文件/目录
chattr -a 文件/目录
-R 递归
i 文件:不能删除 移动 剪切 修改 追加 可以复制 ;; 目录:不能删除和剪切 创建该目录下的文件,可以修改 追加
a 文件:不能删除 移动 剪切 修改 可以追见 复制 ;; 目录:不能删除和剪切该目录下的文件,可以创建新文件
lsattr 文件/目录
facl
查询:getfacl
设置:setfacl
useradd robin
groupadd uplooking
useradd -g uplooking tom
useradd -g uplooking jerry
[root@localhost /]# mount -o acl /dev/sda5 /facl/ 打开功能
[root@localhost facl]# setfacl -m u:robin:rw aa.txt 设置用户
[root@localhost facl]# setfacl -m g:uplooking:rw aa.txt 设置组
[root@localhost facl]# setfacl -m o:r aa.txt 设置其他人
[root@localhost facl]# setfacl -m m:r aa.txt 设置mask值
[root@localhost facl]# setfacl -x u:robin aa.txt 删除facl
[root@localhost facl]# setfacl -b aa.txt 移除所有的facl设定
在/root目录下创建文件abc.txt
添加3个用户 robin zorro shrek 要求:同时满足一下条件
1.robin用户可以读写abc.txt文件 但是不可以删除
2.zorro用户可以读不可以写abc.txt文件 不可以删除
3.shrek用户不可以读写abc.txt文件 但是可以删除
setfacl -m u:robin:rw /root/abc.txt
setfacl -m u:zorro:r /root/abc.txt
setfacl -m u:shrek: /root/abc.txt
setfacl -m u:robin:rx /root
setfacl -m u:zorro:rx /root
setfacl -m u:shrek:rwx /root
setfacl -m u:robin:rwx /facl/
setfacl -m d:u:robin:rwx /facl/ /facl/目录下任何用户创建的文件,robin都可以拿到rwx权限
创建/tmp/test
创建用户 robin
要求:
robin用户可以读写 任意用户在/tmp/test下创建的文件不能删除
[root@localhost /]# setfacl -m u:robin:rx /facl/
[root@localhost /]# setfacl -m d:u:robin:rw /facl/
创建/tmp/test
创建用户 robin
要求:
robin不可以读写 任意用户在/tmp/test创建的文件,但是可以删除
[root@localhost facl]# setfacl -m u:robin:rwx /facl/
[root@localhost facl]# setfacl -m d:u:robin:0 /facl/
开启文件系统默认挂载选项(acl)
[root@localhost facl]# tune2fs -o acl /dev/sda5
网络管理
mii-tool eth0 查看网卡是否连接网线
ifconfig 查看所有网卡信息
ifconfig eth0 查看eth0网卡信息
设置静态ip
[root@localhost ~]# setup
[root@localhost ~]# service network restart
ping 192.168.1.254
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]# ifconfig eth0 2.2.2.2
[root@localhost ~]# ifconfig eth0:0 2.2.2.2 别名
打开路由转发功能
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
day4 1 2 最后一题
day12 3 8
别名永久生效
[root@localhost network-scripts]# vim ifcfg-eth0:0
DEVICE=eth0:0
HWADDR=00:0c:29:3a:88:d3
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=10.10.10.254
NETMASK=255.255.255.0
GATEWAY=10.10.10.254
取消激活网卡
ifdown
激活网卡
ifup
; 表示命令结束
&& 逻辑与 前边命令正常执行后边命令执行
|| 逻辑或 前边命令非正常后边命令执行
端口
netstat
[root@localhost ~]# netstat -anplt a all n 取消主机名解析 p 显示进程pid l 详细信息 t tcp u udp
nmap
[root@localhost ~]# nmap 192.168.1.30
[root@localhost ~]# nmap -v -sn 192.168.1.0/24
traceroute 路由跳数
route
[root@localhost ~]# route -n
网关
[root@localhost ~]# route add default gw 192.168.1.254 添加
[root@localhost ~]# route del default gw 192.168.1.254 删除
arp 查看连接过的信息
arping ip解析mac
[root@localhost ~]# arping 192.168.1.30
ip
[root@localhost ~]# ip add show
虚拟机网卡配置
[root@localhost ~]# vmware-installer -u vmware-workstation
卸载虚拟机
ifconfig vmnet1 100.100.100.100
----------------------------------------------------------------
用磁盘 虚拟机
测试 磁盘大小不一致
1 0 10 模拟损坏 测试那些不能做模拟损坏
raid
[root@localhost ~]# mdadm -C /dev/md0 -l 5 -n 3 /dev/sda{6,7,8}
C 创建 l 级别 n 数量
[root@localhost ~]# mdadm -D /dev/md0 显示
[root@localhost ~]# mdadm -Ds 扫描信息
ARRAY /dev/md0 metadata=1.2 name=localhost.localdomain:0 UUID=c5c3820f:5c67aeeb:62ed72a0:e6a8b8af
[root@localhost ~]# mdadm -S /dev/md0 停止
[root@localhost ~]# mdadm -A /dev/md0 /dev/sda{6,7,8} 激活
永久删除
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@localhost ~]# rm -rf /dev/md0
[root@localhost ~]# mdadm --zero-superblock /dev/sda6
[root@localhost ~]# mdadm --zero-superblock /dev/sda7
[root@localhost ~]# mdadm --zero-superblock /dev/sda8
模拟损坏
[root@localhost mnt]# dd if=/dev/zero of=data bs=100M count=3
[root@localhost mnt]# md5sum data
0d97a9cd8bbd7ce75a2a76bb06258915 data
[root@localhost ~]# mdadm /dev/md0 -f /dev/sda6 损坏磁盘
[root@localhost ~]# mdadm -D /dev/md0
[root@localhost mnt]# md5sum data
0d97a9cd8bbd7ce75a2a76bb06258915 data
[root@localhost ~]# mdadm /dev/md0 -r /dev/sda6 移除损坏磁盘
[root@localhost ~]# mdadm -D /dev/md0
[root@localhost ~]# mdadm /dev/md0 -a /dev/sda9 添加新的磁盘
[root@localhost mnt]# md5sum data
0d97a9cd8bbd7ce75a2a76bb06258915 data
备盘
向已有的raid 设备添加备盘
[root@localhost ~]# mdadm /dev/md0 -a /dev/sda6
创建创建raid时直接创建备盘
[root@localhost ~]# mdadm -C /dev/md0 -l 5 -n 3 /dev/sda{6,7,8} -x 1 /dev/sda9
配置文件 /etc/mdadm.conf
[root@localhost ~]# touch /etc/mdadm.conf
DEVICE /dev/sda6 /dev/sda7 /dev/sda8 /dev/sda9
ARRAY /dev/md0 metadata=1.2 spares=1 name=localhost.localdomain:0 UUID=f008a694:39801a88:3678ed32:a711c4b1
[mdadm -Ds >> /etc/mdadm.conf]
测试
[root@localhost ~]# mdadm -S /dev/md0
[root@localhost ~]# mdadm -As
mdadm: /dev/md0 has been started with 3 drives and 1 spare.
lvm逻辑卷管理
实现在线扩容
创建物理卷 pv
[root@localhost ~]# pvcreate /dev/sda5 /dev/sda6
[root@localhost ~]# pvs
[root@localhost ~]# pvdisplay
创建卷组 vg
[root@localhost ~]# vgcreate vg0 /dev/sda5 /dev/sda6
[root@localhost ~]# vgs
[root@localhost ~]# vgdisplay
创建逻辑卷
[root@localhost ~]# lvcreate -L 300M -n /dev/vg0/lv0 vg0
[root@localhost ~]# lvs
[root@localhost ~]# lvdisplay
测试使用
[root@localhost ~]# mkfs.ext4 /dev/vg0/lv0
[root@localhost ~]# mount /dev/vg0/lv0 /mnt/
[root@localhost ~]# df -Th
在线扩容
1.确认卷组有空间提供给lv
2.扩大逻辑卷lv0
[root@localhost ~]# lvextend -L +50M /dev/vg0/lv0
3.扩大文件系统
[root@localhost ~]# resize2fs /dev/vg0/lv0
测试 df -Th
lv缩小
1.[root@localhost ~]# umount /dev/vg0/lv0
2.[root@localhost ~]# e2fsck -f /dev/vg0/lv0
[root@localhost ~]# resize2fs /dev/vg0/lv0 200M
3.[root@localhost ~]# lvresize -L 200M /dev/vg0/lv0
vg 扩容
[root@localhost ~]# pvcreate /dev/sda7
[root@localhost ~]# vgextend vg0 /dev/sda7
vg 缩小
[root@localhost ~]# vgreduce vg0 /dev/sda6
确认/dev/sda6 没有数据
[root@localhost ~]# pvmove /dev/sda6 /dev/sda7
[root@localhost ~]# pvmove /dev/sda7
删除逻辑卷
1.[root@localhost ~]# umount /dev/vg0/lv0
2.
[root@localhost ~]# lvremove /dev/vg0/lv0
[root@localhost ~]# vgremove vg0
[root@localhost ~]# pvremove /dev/sda{5,6,7}
逻辑卷快照
[root@localhost ~]# lvcreate -L 50M -s -n /dev/vg0/lv0-s0 /dev/vg0/lv0
[root@localhost ~]# mount /dev/vg0/lv0-s0 /opt/
1.只使用快照
2.只使用源lv
启动过程及排错
1.bios加电-----启动项(硬盘 光盘 u盘 软盘 网络)
2.MBR(512字节)
446字节引导程序 64分区表(16字节) 2字节 magic number aa55
stage1-----stage1.5-------stage2
3.引导程序配置文件grub.conf 内核位置 启动文件位置
单用户模式
e ------ kernel e -------- 空格 1 ------ 回车 -----b
手动引导
[root@localhost grub]# mv /boot/grub/grub.conf /home/
root (hd0,0)
kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/sda2
initrd /initramfs-2.6.32-358.el6.x86_64.img
boot
grub加密
hiddenmenu
password --md5 $1$oZB7h1$9UIh7cfHhGZKhlDM9m9sa1
修复引导系统
grub
root (hd0,0)
setup (hd0)
4.释放内核到内存 引导第一个进程启动
5.init进程-----/etc/inittab(确定运行级别)
/etc/rc.sysinit 初始文件系统
根据不同的运行级别运行不同的脚本
/etc/init/control-alt-delete.conf 定义快捷键的功能
/etc/init/tty.conf 定义启动tty数量
6.启动其他进程(基于事件启动)
7./etc/rc.local
8.加载文件模式资源 login
9.记载图形资源 login
10.加载环境变量配置文件
ts1.sh
1.inittab 运行级别
2.passwd 用户
ts2.sh
1.grub.conf 丢失
2.inittab 运行级别
3.passwd 用户
ts3.sh
1.引导程序
2.grub.conf
3.inittab
4.passwd
ts4.sh
1.引导程序
2.grub.conf
3.inittab
4.passwd
5.mount 命令丢失
6.rc.local
7.计划任务
8.tmp权限
内核模块
存储位置[root@localhost ~]# ls /lib/modules/2.6.32-358.el6.x86_64/kernel/
[root@localhost ~]# lsmod
[root@localhost ~]# rmmod 8139too 卸载模块
[root@localhost ~]# insmod /lib/modules/2.6.32-358.el6.x86_64/kernel/drivers/net/8139too.ko 静态加载
[root@localhost ~]# modprobe 8139too 动态加载
[root@localhost 2.6.32-358.el6.x86_64]# rm -rf modules.dep
[root@localhost 2.6.32-358.el6.x86_64]# rm -rf modules.dep.bin
[root@localhost 2.6.32-358.el6.x86_64]# depmod -a 建立模块依赖关系文件
[root@localhost 2.6.32-358.el6.x86_64]# modinfo 8139too
内核参数
echo 1 > /proc/sys/net/ipv4/ip_forward 开启路由转发功能
echo 1 > /proc/sys/vm/drop_caches 清楚缓存
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 忽略ping包
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 回应广播ping包
永久生效
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
编译新内核
mknod -m 660 /dev/sda8 b 8 8
命令 权限 名称 类型 主 次
rpm内核文档
kernel-doc-2.6.32-358.el6.noarch.rpm
[root@localhost ~]# rpm -ql kernel-doc | grep devices.txt
/usr/share/doc/kernel-doc-2.6.32/Documentation/devices.txt
编译内核
[root@localhost linux-2.6.30]# make menuconfig 配置内核
file system------ DOS/FAT/NT filesystem ---- ntfs
[root@localhost linux-2.6.30]# make 编译
[root@localhost linux-2.6.30]# make modules_install 安装模块
[root@localhost linux-2.6.30]# make install 安装新内核到引导程序
操作启动文件
[root@robin tmp]# cp /boot/initramfs-2.6.30.img ./
[root@robin tmp]# mkdir initrd
[root@robin tmp]# cd initrd/
[root@robin initrd]# zcat ../initramfs-2.6.30.img | cpio -i
打包
[root@robin initrd]# find . | cpio -c -o >> ../initrd.img
[root@robin initrd]# cd /tmp
[root@robin tmp]# gzip -9 initrd.img
[root@robin tmp]# mv initrd.img.gz initrd.img
[root@robin tmp]# cp initrd.img /boot/
[root@robin boot]# vim grub/grub.conf
root (hd0,0)
kernel /vmlinuz-2.6.30 ro root=UUID=9ed5bc98-fed8-488b-8463-2a2b9c4f6a63 nomodeset rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initrd.img
主机名
[root@localhost ~]# hostname 查询
localhost.localdomain
[root@localhost ~]# hostname robin.com 修改
[root@localhost ~]# vim /etc/sysconfig/network 主机名永久生效
HOSTNAME=robin.com
[root@localhost ~]# vim /etc/hosts
192.168.1.254 robin.com
查找命令
1.which 查找命令位置
2.whereis 命令位置 配置文件(/etc) man的章节
3.grep 过滤
4.locate install.log (updatedb更新后台库) (计划任务每天维护)
5.find
[root@robin ~]# ll install.log
-rw-r--r-- 1 root root 71549 4月 16 19:14 install.log
文件名
[root@robin ~]# find / -name install.log
[root@robin ~]# find / -name install.log -ls
类型
[root@robin ~]# find / -type f (- b c p l s d)
硬链接数
[root@robin ~]# find / -links 5 -ls
[root@robin ~]# find / -links +5 -ls
[root@robin ~]# find / -links -5 -ls
用户和组
[root@robin home]# find /home/ -user robin -ls
[root@robin home]# find /home/ -group zorro -ls
[root@robin home]# find /home/ -nouser -ls
[root@robin home]# find /home/ -nogroup -ls
[root@robin home]# find /home/ -nouser -a -nogroup
[root@robin home]# find /home/ -nouser -o -nogroup
[root@robin home]# find /home/ -nouser -exec rm -r {} \;
[root@robin home]# find /home/ -nogroup -ok rm -r {} \;
[root@robin home]# find /home/ \( -nouser -a -nogroup \) -exec rm -r {} \;
[root@robin home]# find /home/ \( -nouser -o -nogroup \) -exec rm -r {} \;
size
[root@robin test]# find /tmp/test/ -size 300M
[root@robin test]# find /tmp/test/ -size +300M
[root@robin test]# find /tmp/test/ -size -300M
[root@robin test]# find /tmp/test/ -size +178M -a -size -450M
[root@robin test]# find /tmp/test/ -size +178M -o -size -450M
最后一次修改时间
touch -d 20140501 aa.txt
touch -t 201405011212.12 aa.txt
[root@robin test]# find /tmp/test/ -mtime 8
[root@robin test]# find /tmp/test/ -mtime +8
[root@robin test]# find /tmp/test/ -mtime -8
[root@robin test]# find /tmp/test/ -mtime +5 -a -mtime -15
[root@robin test]# find /tmp/test/ -mtime -5 -o -mtime +15
权限
[root@robin test]# find /tmp/test/ -perm 400 -ls 正好匹配
[root@robin test]# find /tmp/test/ -perm +400 -ls 任意匹配
[root@robin test]# find /tmp/test/ -perm -400 -ls 完全匹配
软硬链接的区别
[root@robin ~]# ln /root/hard.txt /root/桌面/
[root@robin ~]# ln -s /root/soft.txt /root/桌面/
相同点:于源文件内容一致
不同点:
1.创建方式不同
2.硬链接可以时相对路径也可以绝对路径 软链接必须绝对路径(同一个目录可以相对)
3.软链接权限永远777 硬链接权限与源文件相同
4.软链接源文件不允许重命名,删除,移动 硬链接源文件可以重命名,删除,移动
5.软链接inode号与源文件不同,硬链接inode号和源文件相同
6.软链接可以跨文件系统,硬链接不可以跨文件系统
7.软链接可以对目录做,硬链接不许源对目录做
移除软链接 unlink
服务
DHCP(动态ip地址分配)
软件包:dhcp-4.1.1-34.P1.el6.x86_64.rpm
端口:67
启动服务:service dhcpd restart
配置文件: /etc/dhcp/dhcpd.conf
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
工作原理
C S
-----DHCPDISCOVER------>
<----DHCPOFFER----------
-----DHCPREQUEST------->
<----DHCPACK------------
配置过程:
1.在你所分配ip的网段必须拥有一个ip地址
2.修改配置文件
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.1 192.168.1.253;
option domain-name-servers 202.106.0.20;
option domain-name "internal.example.org";
option routers 192.168.1.254;
default-lease-time 600;
max-lease-time 7200;
}
3.启动服务 service dhcpd restart
指定固定ip分配
host fileserver {
hardware ethernet 00:0c:29:66:0D:7D;
fixed-address 192.168.1.110;
}
租约文件
服务端
[root@robin dhcp]# vim /var/lib/dhcpd/dhcpd.leases
客户端
[root@localhost ~]# vim /var/lib/dhclient/dhclient-eth0.leases
RSYSLOG 日志服务
配置文件:/etc/rsyslog.conf
启动服务:service rsyslog restart
AAAAA.BBBBB CCCCC
AAAAA 产生日志的对象
daemon
kernel
rsyslog
mail
authpriv
cron
uucp
news
man 5 rsyslog.conf
BBBBB 日志的级别
debug
info
notice
warnning
err
crit
alert
emerg(panic)
mail.err
mail.=err
mail.!=err
CCCCC 保存日志的位置
1.文件
*.info;mail.none;authpriv.none;cron.none /tmp/test.log
2.发送到终端
*.info;mail.none;authpriv.none;cron.none /dev/pts/2
3.发送到用户
*.info;mail.none;authpriv.none;cron.none robin
日志集中管理
服务端
[root@robin ~]# vim /etc/rsyslog.conf
UDP协议
$ModLoad imudp
$UDPServerRun 514
TCP协议
$ModLoad imtcp
$InputTCPServerRun 514
客户端
UDP协议
*.info;mail.none;authpriv.none;cron.none @192.168.1.254
TCP协议
*.info;mail.none;authpriv.none;cron.none @@192.168.1.254
rhel5
服务端
/etc/sysconfig/syslog
SYSLOG='-r -x -m 0'
客户端
*.info;mail.none;authpriv.none;cron.none @192.168.1.254
日志轮转
配置文件:/etc/logrotate.conf
/etc/logrotate.d
实验:
1.touch /etc/logrotate.d/test
2.vim /etc/logrotate.d/test
/tmp/test.log {
missingok 丢失不提示
notifempty 空文件不切割
size 30k 大小
daily 天
create 0777 root root
dateext
rotate 7
}
3.touch /tmp/test.log
测试
logrotate -f /etc/logrotate.d/test
作业:
每5分钟切割一次
ssh远程登录
端口: 22
启动服务:service sshd restart
配置文件:/etc/ssh/sshd_config
登录
[root@robin logrotate.d]# ssh root@192.168.1.253
普通用户
[root@robin logrotate.d]# ssh robin@192.168.1.253
远程拷贝
scp all.sql 192.168.1.254:/tmp/
scp -r /boot/ 192.168.1.254:/tmp/
scp 192.168.1.253:/root/install.log /tmp/
scp 192.168.1.10:/root/install.log 192.168.1.20:/tmp/
[root@robin ~]# wall
shutdown now ! saving and exit !
-------ctrl+d 结束发送
[root@robin ~]# write root /dev/pts/11
stop now !!!!! get out!!!!
-------ctrl+d 结束发送
lastlog
last
who
who i am 原始用户
whoami 当前用户
[root@robin ~]# ssh 192.168.1.253 rm -rf /tmp/aa.txt 远程执行命令
修改端口
vim /etc/ssh/sshd_config
Port 12345
ssh -p 12345 192.168.1.253 登录
scp -P 12345 test.sh 192.168.1.253:/tmp/ 拷贝
/root/.ssh/known_hosts 记录主机信息的文件
密钥登录
[root@robin ~]# ssh-keygen
[root@robin ~]# cd /root/.ssh/
[root@robin .ssh]# ls
id_rsa id_rsa.pub
[root@robin .ssh]# ssh-copy-id -i id_rsa.pub 192.168.1.253
[root@robin .ssh]# scp id_rsa.pub 192.168.1.253:/root/.ssh/authorized_keys
服务端关闭密码验证
vim /etc/ssh/sshd_config
PasswordAuthentication no
service sshd restart
自定义日志路径
实验:
[root@robin log]# vim /etc/ssh/sshd_config
SyslogFacility local6
[root@robin ~]# service sshd restart
[root@robin ~]# vim /etc/rsyslog.conf
local6.* /tmp/ssh.log
[root@robin ~]# service rsyslog restart
测试
[root@robin ~]# ssh 192.168.1.254
[root@robin ~]# cat /tmp/ssh.log
文件服务器
NFS
配置文件:/etc/exports
启动服务:service rpcbind resatrt (service portmap resatrt)
service nfs restart
端口:2049
系统中端口注册文件:/etc/services
配置
服务端
[root@robin ~]# vim /etc/exports
/nfs *(rw,sync)
/nfs 192.168.1.0/24(rw,sync) 10.10.10.0/24(ro)
/nfs 192.168.1.253/32(rw,sync)
目录权限
[root@robin nfs]# chmod 777 /nfs/
/nfs *(rw,sync,no_root_squash)
[root@robin ~]# service rpcbind restart
[root@robin ~]# service nfs restart
[root@robin nfs]# showmount -a 192.168.1.254
客户端
[root@zorro mnt]# showmount -e 192.168.1.254
[root@zorro mnt]# mount -t nfs 192.168.1.254:/nfs /mnt/
使用3自动挂载方式 挂载远程共享目录
1.rc.local
mount -t nfs 192.168.1.254:/nfs /mnt/
2./etc/fstab
192.168.1.254:/nfs /mnt nfs defaults 0 0
3.auto.nfs
nfs -fstype=nfs,rw,no_root_squash 192.168.1.254:/nfs
作业:
制作NAS服务器 raid+lvm+nfs
SAMBA
软件包:
samba-3.6.9-151.el6.x86_64.rpm
samba-client-3.6.9-151.el6.x86_64.rpm
samba-common-3.6.9-151.el6.x86_64.rpm
配置文件:
/etc/samba/smb.conf
启动服务
service smb restart
配置
security = share
[test]
comment = windows share
path = /smb
public = yes
writable = yes
browseable = no
客户端测试
[root@zorro ~]# smbclient -L //192.168.1.254
[root@zorro ~]# smbclient //192.168.1.254/test
[root@zorro mnt]# mount -t cifs //192.168.1.254/test /mnt/
验证模式(user)
security = user
[test]
comment = windows share
path = /smb
writable = yes
valid users = robin @uplooking
smb的用户一定时系统用户 再添加到smb用户
[root@robin ~]# smbpasswd -a robin
New SMB password:
Retype new SMB password:
Added user robin.
客户端
smbclient -L //192.168.1.254
smbclient -U robin%123 //192.168.1.254/test
mount -t cifs -o username=robin,password=123 //192.168.1.254/test /mnt/
[test]
comment = windows share
path = /smb
valid users = robin @uplooking
write list = robin
[test]
comment = windows share
path = /smb
writable = yes
valid users = robin @uplooking
read list = robin
[root@robin samba]# pdbedit -L 查询smb帐号
[root@robin samba]# smbpasswd -x zorro 删除
作业2:
1.3种方式实现smb自动挂载(基于user验证)
//192.168.1.254/boss /mnt cifs defaults,username=boss,password=123 0 0
smb -fstype=cifs,username=robin,password=123 ://192.168.1.
254/boss
2.通过smb服务 制作NAS
FTP
软件包:
vsftpd-2.2.2-11.el6.x86_64.rpm
lftp-4.0.9-1.el6.x86_64.rpm
配置文件:
/etc/vsftpd/vsftpd.conf
端口:20 21 随机端口
启动服务:service vsftpd restart
服务器数据目录: /var/ftp
配置:
[root@zorro ftp]# rpm -ivh vsftpd-2.2.2-11.el6.x86_64.rpm
[root@zorro ftp]# service vsftpd restart
客户端测试
[root@robin ftp]# lftp 192.168.1.253
lftp 192.168.1.253:~> lcd /tmp/ 本地切换
lftp 192.168.1.253:~> get test.txt 下载文件
lftp 192.168.1.253:~> get test.txt -o /home 制定路径下载
lftp 192.168.1.253:/> mirror pub/ 下载目录
[root@robin ~]# wget ftp://192.168.1.253/test.txt 非交互式下载
[root@robin ~]# wget -r ftp://192.168.1.253/pub/ 下载目录
lftp 192.168.1.253:/> put /root/install.log 上传文件
lftp 192.168.1.253:/> mirror -R /boot 上传目录
配置上传
anon_upload_enable=YES
anon_mkdir_write_enable=YES
上传文件在下载
anon_umask=022
匿名用户删除
anon_other_write_enable=yes
匿名用户登录位置
1种.vim /etc/passwd
ftp:x:14:50:FTP User:/home:/sbin/nologin
2种.vim /etc/vsftpd/vsftpd.conf
anon_root=/home
下载限速
anon_max_rate=10000
本地用户(用户一定时系统的普通用户,验证使用用户登录密码)
lftp -u robin,123 192.168.1.254
设定本地用户登录路径
local_root=/nfs
设定本地用户下载速度
local_max_rate=100000
限制本地用户切换路径
1.chroot_local_user=YES 限制所有本地用户切换目录
2.chroot_list_enable=YES 根据用户身份限制切换目录
chroot_list_file=/etc/vsftpd/chroot_list 写入该文件用户不能切换
白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
限制本地用户登录ftp
1.该文件写入的用户不允许登录
/etc/vsftpd/ftpusers
限制登录的黑白名单
2.userlist_enable=YES 开启黑白名单
userlist_deny=YES 黑名单
/etc/vsftpd/user_list 名单文件
userlist_deny=NO 白名单
工作原理(20 21)
主动模式
C S
1024+ -------------> 21
1024+N
<------------- 20
被动模式
C S
1024+ --------------> 21
1024+N
1024+M -------------->
默认情况下 服务端主动和被动模式都会开启
客户端选择 连接方式
客户端 /etc/lftp.conf
set ftp:passive-mode off 开启为主动模式 注释为被动模式
远程yum搭建使用
作业:
文件smb 要求用户ftp向smb共享目录上传文件
APACHE(web服务器)
apache httpd
软件包:httpd-2.2.15-26.el6.x86_64.rpm
httpd-manual-2.2.15-26.el6.noarch.rpm 文档
cd /var/www/manual
firefox index.html &
端口:80 443
配置文件:/etc/httpd/conf/httpd.conf
数据目录:/var/www/html
日志文件:/var/log/http
启动服务:service httpd restart
进程和线程模式的切换
1.
[root@robin html]# mv /usr/sbin/httpd /usr/sbin/httpd.prefork
[root@robin html]# mv /usr/sbin/httpd.worker /usr/sbin/httpd
2.vim /etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.worker
基于家目录发布网页(个人主页)
1.useradd robin
useradd zorro
2.vim /etc/httpd/conf/httpd.conf
<IfModule mod_userdir.c>
#UserDir disabled
UserDir public_html
</IfModule>
3.
mkdir /home/robin/public_html
mkdir /home/zorro/public_html
echo "robin home" >> /home/robin/public_html/index.html
echo "zorro home" >> /home/zorro/public_html/index.html
chmod 755 /home/robin/
chmod 755 /home/zorro/
测试
http://192.168.1.254/~robin/
http://192.168.1.254/~zorro/
别名
alias /down /usr
<directory "/usr">
options indexes
</directory>
访问控制acl
alias /down /usr
<directory "/usr">
options indexes
order deny,allow
allow from 192.168.1.115
deny from 192.168.1.115
</directory>
验证登录
alias /down /usr
<directory "/usr">
options indexes
AuthType Basic
AuthName "welcome to here !!!!!!!"
AuthBasicProvider file
AuthUserFile /etc/httpd/conf/passwdb
Require user eric #指定有效用户
Require valid-user #文件中所有用户生效
</directory>
htpasswd -c -b /etc/httpd/conf/passwdb eric 123
htpasswd -b /etc/httpd/conf/passwdb bony 123
组验证
alias /down /usr
<directory "/usr">
options indexes
AuthType Basic
AuthName "welcome to here !!!!!!!"
AuthBasicProvider file
AuthUserFile /etc/httpd/conf/passwdb
AuthGroupFile /etc/httpd/conf/groups
Require group uplooking
</directory>
vim /etc/httpd/conf/groups
uplooking: bony
发布cgi脚本
[root@robin html]# cd /var/www/cgi-bin/
[root@robin cgi-bin]# vim cgi.sh
#!/bin/bash
echo -e "Content-type: text/html\n"
echo "<br>"
date
echo "<br>"
uname -r
echo "<br>"
cat /etc/passwd
[root@robin cgi-bin]# chmod +x cgi.sh
测试
http://192.168.1.254/cgi-bin/cgi.sh
虚拟主机
确定域名
www.baidu.com
www.google.com
1.vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.baidu.com
DocumentRoot /var/www/html/baidu
</VirtualHost>
<VirtualHost *:80>
ServerName www.google.com
DocumentRoot /var/www/html/google
</VirtualHost>
2.
[root@robin html]# mkdir baidu
[root@robin html]# mkdir google
[root@robin html]# echo "baidu" >> baidu/index.html
[root@robin html]# echo "google" >> google/index.html
3.
[root@robin html]# vim /etc/hosts
192.168.1.254 www.baidu.com
192.168.1.254 www.google.com
重启测试
http://www.baidu.com
http://www.google.com
基于ip的虚拟主机
确定ip
192.168.1.254
10.10.10.254
1.vim /etc/httpd/conf/httpd.conf
<VirtualHost 192.168.1.254:80>
ServerName www.baidu.com
DocumentRoot /var/www/html/baidu
</VirtualHost>
<VirtualHost 10.10.10.254:80>
ServerName www.google.com
DocumentRoot /var/www/html/google
</VirtualHost>
2.
[root@robin html]# mkdir baidu
[root@robin html]# mkdir google
[root@robin html]# echo "baidu" >> baidu/index.html
[root@robin html]# echo "google" >> google/index.html
3.
[root@robin html]# vim /etc/hosts
192.168.1.254 www.baidu.com
10.10.10.254 www.google.com
重启测试
http://www.baidu.com
http://www.google.com
NTP
vim /etc/ntp.conf
restrict default nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10
DNS(域名服务器 解析域名)
安装包:bind-9.8.2-0.17.rc1.el6.x86_64.rpm
bind-utils-9.8.2-0.17.rc1.el6.x86_64.rpm
端口:53
启动服务:service named restart
配置文件: /etc/named.conf
/etc/named.rfc1912.zones
解析文件
正向解析
1.vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
2./etc/named.rfc1912.zones
zone "sina.com" IN {
type master;
file "sina.com.zone";
};
3.touch /var/named/sina.com.zone
[root@robin named]# vim sina.com.zone
$TTL 86400
@ IN SOA dns.sina.com. root ( 20140508 1D 1H 1W 3H)
IN NS dns.sina.com.
dns IN A 192.168.1.254
www IN A 192.168.1.254
[root@robin named]# chown :named sina.com.zone
[root@robin named]# chmod 640 sina.com.zone
重启测试
[root@robin named]# vim /etc/resolv.conf
nameserver 192.168.1.254
[root@robin named]# host www.sina.com
www.sina.com has address 192.168.1.254
[root@robin named]# nslookup www.sina.com
Server: 192.168.1.254
Address: 192.168.1.254#53
Name: www.sina.com
Address: 192.168.1.254
================================================================
$TTL 86400
@ IN SOA dns.sina.com. root ( 20140508 1D 1H 1W 3H)
IN NS dns.sina.com.
dns IN A 192.168.1.254
@ IN A 192.168.1.254
* IN A 192.168.1.254
ww IN A 192.168.1.254
wwww IN A 192.168.1.254
www IN A 192.168.1.254
www IN A 192.168.1.253
www IN A 192.168.1.252
@ IN MX 5 mail.sina.com.
mail IN A 192.168.1.254
ftp IN A 192.168.1.254
kkk IN CNAME www
$GENERATE 1-254 stu$ IN A 192.168.1.$
=============================================================
反向解析
1.vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
2.vim /etc/named.rfc1912.zones
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.arpa";
};
3.touch /var/named/192.168.1.arpa
[root@robin named]#vim 192.168.1.arpa
$TTL 86400
@ IN SOA dns.sohu.com. root (20140508 1D 1H 1W 3H)
IN NS dns.sohu.com.
dns IN A 192.168.1.254
254 IN PTR www.sohu.com.
253 IN PTR www.kkk.com.
[root@robin named]# chown :named 192.168.1.arpa
[root@robin named]# chmod 640 192.168.1.arpa
重启测试
host 192.168.1.254
主从服务器
主服务器
1.[root@robin named]# vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
2.[root@robin named]# vim /etc/named.rfc1912.zones
zone "uplooking.com" IN {
type master;
file "uplooking.com.zone";
allow-transfer { 192.168.1.253; };
};
3.[root@robin named]# vim uplooking.com.zone
$TTL 86400
@ IN SOA dns.uplooking.com. root ( 20140508 1D 1H 1W 3H)
IN NS dns.uplooking.com.
IN NS dns2.uplooking.com.
dns IN A 192.168.1.254
dns2 IN A 192.168.1.253
@ IN A 192.168.1.254
www IN A 192.168.1.254
[root@robin named]# chown :named uplooking.com.zone
[root@robin named]# chmod 640 uplooking.com.zone
从服务器
安装软件:
bind-9.8.2-0.17.rc1.el6.x86_64.rpm
bind-utils-9.8.2-0.17.rc1.el6.x86_64.rpm
1.[root@robin named]# vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
2.vim /etc/named.rfc1912.zones
zone "uplooking.com" IN {
type slave;
file "slaves/uplooking.com.zone";
masters { 192.168.1.254; };
};
测试
重启从服务器
查看 ls /var/named/slaves/ 下是否有下载的解析文件
[root@client slaves]# vim /etc/resolv.conf
nameserver 192.168.1.253
[root@client slaves]# host www.uplooking.com
主从同步
主机 修改版本号 添加新记录
serivce named reload
从机
查看 slaves/uplooking.com.zone
作业
1.反向解析主从
vim /etc/named.conf
also-notify { 192.168.1.253; };
mysql -u root -p123 myfarm < qqfarm.sql
shell练习
添加 10 个帐号 判断帐号是否存在 如果存在 如果不存在 添加帐号并且同时设这10个帐号密码为123
全备份mysql 和 备份binlog
passwd 信息 导入 mysql
自动配置yum
监测系统的脚本(硬盘 内存 cpu swap)
awk 'BEGIN{print "2014上学期学员成绩单";print "用户名\t数学\t英 语\t语文\t物理\t化学\t历史\t总成绩\t平均\t评价";OFS="\t" }{sum=$2+$3+$4+$5+$6+$7;if(sum/6>90) a="优秀";else if (sum/6>70&&sum/6<90) a="良好";else a="一般";print $1,$2,$3,$4,$5,$6,$7,sum,sum/6,a}END{print "2014上学期学员成绩单"}' stu.txt
xinetd(超级代理服务)
tftp
安装包:tftp-server-0.49-7.el6.x86_64.rpm
tftp-0.49-7.el6.x86_64.rpm
端口: 69 (udp)
启动服务:service xinetd restart
配置文件:/etc/xinetd.d/tftp
服务器数据目录:/var/lib/tftpboot(rhel5 /tftpboot)
配置
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 /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
chmod 777 /var/lib/tftpboot
service xinetd restart
netstat -anplu | grep :69
[root@robin tmp]# tftp 192.168.1.254
tftp> get install.log
tftp> quit
[root@robin tmp]# tftp 192.168.1.254
tftp> put man.config
tftp> quit
telnet服务(远程连接)
安装包:
telnet-server-0.17-47.el6_3.1.x86_64.rpm
telnet-0.17-47.el6_3.1.x86_64.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 restart
netstat -anplt| grep :23
xinetd代理ftp服务器
关闭vsftpd监听
Listen=NO
[root@robin xinetd.d]# cp telnet ft
service ftp
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
disable = no
}
service xinetd restart
netstat -anplt | grep :21
lftp 192.168.1.254
u盘安装
dd if=/var/ftp/rhel-server-6.4-x86_64-boot.iso of=/dev/sdc
fdisk /dev/sdc
mkfs.vfat /dev/sdc2
mount /dev/sda2 /mnt
cp 镜像 /mntl
批量部署(无人职守安装)
1.配置dhcp
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.1 192.168.1.253;
option domain-name-servers 202.106.0.20;
option domain-name "internal.example.org";
option routers 192.168.1.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.1.254;
filename "pxelinux.0";
}
2.配置tftp
安装tftp-server
配置tftp启动状态
[root@robin Packages]# rpm -ivh syslinux-4.02-8.el6.x86_64.rpm
[root@robin Packages]# rpm -ql syslinux | grep pxelinux.0
[root@robin Packages]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
拷贝内核启动文件
[root@robin tftpboot]# cp /yum/images/pxeboot/* /var/lib/tftpboot/
[root@robin tftpboot]# mkdir pxelinux.cfg
[root@robin isolinux]# cp /yum/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
default ks
timeout 100
label ks
kernel vmlinuz
append initrd=initrd.img ks=nfs:192.168.1.254:/pxe/ks/ks.cfg
nfs提供安装源
mkdir /pxe/ks
[root@robin pxe]# mkdir /pxe/iso
安装软件
yum一定配置成功
yum install system-config-kickstart
[root@robin ~]# system-config-kickstart
配置nfs
[root@robin linux_program]# vim /etc/exports
/pxe/iso *(ro)
/pxe/ks *(ro)
[root@robin linux_program]# mount /dev/cdrom /pxe/iso/
service nfs restart
DNS的事务签名TSIG
dnssec-keygen -a hmac-md5 -b 128 -n HOST zhb.
主机
vim /etc/named.rfc1912.zones
key zhb {
algorithm hmac-md5;
secret "WjINDXRmbc5ifj2q4mlDuQ==";
};
zone "robin.com" IN {
type master;
file "robin.com.zone";
allow-transfer { key zhb; };
};
从机
key zhb {
algorithm hmac-md5;
secret "WjINDXRmbc5ifj2q4mlDuQ==";
};
zone "robin.com" IN {
type slave;
file "slaves/robin.com.zone";
masters { 192.168.1.254 key zhb; };
};
转发服务器
forward only/fisrt;
forwarders { 192.168.1.30;192.168.1.40;192.168.1.77; };
子域名授权
$TTL 86400
@ IN SOA dns.youku.com. root ( 20140519 1D 1H 1W 3H)
IN NS dns.youku.com.
dns IN A 192.168.1.254
music.youku.com. IN NS dns.music.youku.com.
dns.music.youku.com. IN A 192.168.1.253
www IN A 192.168.1.254
视图(智能DNS)
vim /etc/named.conf
acl cnc { 192.168.1.21; }; ----------client
acl tel { 192.168.1.41; };
view cncnet {
match-clients { cnc; };
recursion yes;
include "/etc/uplookingcnc";
};
view telnet {
match-clients { tel; };
recursion yes;
include "/etc/uplookingtel";
};
touch /etc/uplookingtel
touch /etc/uplookingcnc
vim /etc/uplookingcnc
zone "uplooking.com" IN {
type master;
file "uplooking.com.cnc";
};
vim /etc/uplookingtel
zone "uplooking.com" IN {
type master;
file "uplooking.com.tel";
};
touch uplooking.com.tel
touch uplooking.com.cnc
chmod 640 uplooking.com.*
chown :named uplooking.com.*
vim uplooking.com.cnc
$TTL 86400
@ IN SOA dns.sina.com. root ( 20140508 1D 1H 1W 3H)
IN NS dns.sina.com.
dns IN A 192.168.1.254
www IN A 192.168.1.21----------apache
vim uplooking.com.tel
$TTL 86400
@ IN SOA dns.sina.com. root ( 20140508 1D 1H 1W 3H)
IN NS dns.sina.com.
dns IN A 192.168.1.254
www IN A 192.168.1.41

浙公网安备 33010602011771号