运维常用linux命令


linux 常 用命 令 --------雪 松整 理 Q群: 198173206 欢迎linux 系 统运 维朋 友加 入! 博客: http://hi.baidu.com/quanzhou722/blog 错 误在 所难 免, 还望 指正 ! ================================== 1文 件管 理 2软 件管 理 3系 统管 理 4服 务管 理 5网 络管 理 6磁 盘管 理 7用 户管 理 8脚 本相 关 9服 务配 置 ================================== ---------------------------------- 1文 件管 理 ---------------------------------- 创 建空 白文 件 touch 不 提示 删除 非空 目录 rm -rf 目 录名 (-r:递 归删 除 -f强制) ################################## 恢复rm删 除的 文件 (ext3) 查 看磁 盘分 区格 式 df -T 卸 载挂 载 umount /data/ ext3grep /dev/sdb1 --ls --inode 2 记 录信 息继 续查 找目 录下 文件 inode 信息 ext3grep /dev/sdb1 --ls --inode 131081 # 此 处是 inode 记 录下 inode 信 息开 始恢 复目 录 ext3grep /dev/sdb1 --restore-inode 49153 ################################## windows 文 本转 linux 文本 dos2unix linux 文 本转 windows 文本 unix2dos 转 换编 码 iconv -f gbk -t utf8 原.txt > 新.txt 查看md5 值 md5sum 硬 链接 ln 符 号连 接 ln -s 查 看上 下翻 页且 显示 行号 cat ? | nl |less q退出 结 束状 态 ctrl+z 查 看文 件开 头内 容 head 查 看文 件结 尾内 容 tail -f # 监 视日 志文 件 检 查文 件类 型 file 重 命名 rename rename source_pattern target_pattern source_files 更 改默 认权 限 umask 按 数字 排序 sort -n 按 数字 倒叙 sort -nr 过 滤重 复行 sort -u 删 除重 复的 行 uniq 重 复的 行出 现次 数 uniq -c 只 显示 不重 复行 uniq -u 将 两个 文件 合并 用 tab 键 分隔 开 paste a b 将 两个 文件 合并 指定 '+'符 号隔 开 paste -d'+' a b 将 多行 数据 合并 到一 行用 tab 键 隔开 paste -s a 设 置隐 藏属 性 chattr [+-=] [ASacdistu] 文 件或 目录 向 下分 面器 more 搜索 locate 字 符串 查 看行 数 wc -l 实 时某 个目 录下 查看 最新 改动 过的 文件 watch -d -n 1 'df; ls -FlAt /path' 快 速备 份一 个文 件 cp filename{,.bak} ################################## 配 置编 辑器 gconf-editor vi 配 置文 件 vi /etc/vimrc 编 辑文 件 vim 打 开行 号 :set nu 取 消行 号 :set nonu 跳 转到 200 200G 取 消高 亮 :nohl 设 置自 动缩 进 :set autoindent 查 看文 本格 式 set ff 改为unix 格式 set binary 向 前翻 页 ctrl+ U 向 后翻 页 ctrl+ D 全 部替 换 g/字符1/s//字符2/g %s/字符1/字符2/g # 普 通用 户打 开文 档不 能保 存 # tee 是 一个 把 stdin 保 存到 文件 的小 工具 ,而%,是vim 当 中一 个只 读寄 存器 的名 字 ,总 保存 着当 前 编辑 文件 的文 件路 径 :w !sudo tee % ################################## 按 文件 名查 找 find /etc -name http 查 找某 一类 型文 件 find .-type f 按 照文 件权 限查 找 find /-perm 按 照文 件属 主查 找 find /-user 按 照文 件所 属的 组来 查找 文件 find /-group 文 件使 用时 间在 N天 以内 find /-atime -n 文 件使 用时 间在 N天 以前 find /-atime +n 文 件内 容改 变时 间在 N天 以内 find /-mtime -n 文 件内 容改 变时 间在 N天 以前 find /-mtime +n 文 件状 态改 变时 间在 N天前 find /-ctime +n 文 件状 态改 变时 间在 N天内 find /-ctime -n # linux 文 件无 创建 时间 # Access 使 用时 间 # Modify 内 容修 改时 间 # Change 状 态改 变时 间 (权 限、 属主 ) 查 找文 件长 度大 于 1M字 节的 文件 find /-size +1000000c -print 按 名字 查找 文件 传递 给 -exec 后 命令 find /etc -name "passwd*" -exec grep "xuesong" {}\; 查 找文 件名 ,不 取路 径 find .-name 't*' -exec basename {}\; ################################## ==================================================================== ---------------------------------- 2软 件管 理 ---------------------------------- 解包tar tar xvf 1.tar -C 目录 打包tar tar -cvf 1.tar * 查看tar tar tvf 1.tar 给tar 追 加文 件 tar -rvf 1.tar 文 件名 解包gz tar zxvpf gz.tar.gz 打包gz tar zcvpf gz.tar.gz 查看gz tar ztvpf gz.tar.gz 解压bzip2 bzip2 -dv 1.tar.bz2 解压gzip 到tar gzip -dv 1.tar.gz 压缩tar 到gz gzip -v 1.tar bzip2 压缩 bzip2 -v 1.tar 查看bzip2 bzcat rpm 安装 rpm -ivh 卸载 rpm -e lynx 强 制卸 载 rpm -e lynx --nodeps 测试 rpm --test lynx 查 看所 有安 装的 rpm 包 rpm -qa 查 找包 是否 安装 rpm -qa | grep http 解压zip unzip zip.zip 压缩zip zip zip.zip * rar3.6 下 载地 址 http://www.rarsoft.com/rar/rarlinux-3.6.0.tar.gz 压 缩文 件为 rar 包 rar a rar.rar *.jpg 解压rar 包 unrar x rar.rar 7z压缩 7z a 7z.7z * 7z解压 7z e 7z.7z 查 看字 符行 zgrep 字符1.gz 打包/home, /etc , 但排 除 /home/dmtsai tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc 在/home 当 中, 比 2005/06/01 新 的文 件才 备份 tar -N"2005/06/01" -zcvf home.tar.gz /home 下载 wgetrc 文 本上 网 lynx 制 作镜 像 cp -v /dev/dvd /software/rhel4.6.iso9660 清 除编 译结 果 make clean 源 码安 装 ./configure --help |less ./configure --prefix=/usr/local/ make make install perl 程 序编 译 perl Makefile.PL make make test make install perl 程 序编 译 python file.py 编译c程序 gcc -g hello.c -o hello ==================================================================== ---------------------------------- 3系 统管 理 ---------------------------------- 终 端锁 屏 Ctrl+S 解 锁屏 Ctrl+Q PS1 环 境变 量控 制提 示显 示 PS1='[\u@ \H\w \A\@#]\$' 开 机启 动模 式 vi /etc/inittab 查 找命 令的 目录 whereis 查 看当 前要 执行 的命 令所 在的 路径 which 让 部命 令后 台运 行 命令& 将 前台 放入 后台 (暂停) ctrl+z 查 看后 台运 行程 序 jobs 启 动后 台暂 停进 程 bg 2 调 回后 台进 程 fg 2 后 台运 行不 受 shell 退 出影 响 nohup cmd & 清 空整 个屏 幕 clear 重 新初 始化 屏幕 reset 查 询用 过的 命令 默认 1000 条 history 清 楚记 录命 令 history -c cat /root/.bash_history 查 看登 陆过 的用 户信 息 last last -n user who /var/log/wtmp 列 出登 录系 统失 败的 用户 相关 信息 lastb -a /var/log/btmp 防 火墙 日志 tail -f /var/log/messages ssh 日志 tail -f /var/log/secure 随 机生 成密 码 mkpasswd -l位数-C 大小-c小写-d数字-s特 殊字 符 mkpasswd -l 8 -C 2 -c 2 -d 4 -s 0 当 前在 线用 户 who w 查 看当 前用 户名 whoami 查 看登 陆用 户名 logname 显 示月 历 cal 查 看服 务器 启动 时间 uptime 设 日期 date -s 20091112 设 时间 date -s 18:30:50 同 步时 间 /usr/sbin/ntpdate stdtime.gov.hk 7天 前日 期 `date -d "7 days ago" +%Y%m%d` 日 期格 式转 换 `date +%Y-%m-%d -d '20110902'` 日 期和 时间 date +%Y-%m-%d_%X 查 看时 间 hwclock 账 户影 子文 件 /etc/shadow 列 出所 有语 系 locale -a 修 改语 言 LANG=en 修 改编 码 vi /etc/sysconfig/i18n utf-8 <---> GBK 强 制字 符集 export LC_ALL=C 查 询静 态主 机名 vi /etc/hosts 最 大连 接 /etc/security/limits.conf grub 开 机启 动项 添加 /etc/grub.conf title ms-dos rootnoverify (hd0,0) chainloader +1 别名 alias 监 测命 令 watch 查看Linux 版 本信 息 uname -a cat /proc/version cat /etc/issue lsb_release -a 查看cpu 信息 more /proc/cpuinfo 查看cpu 型 号和 逻辑 核心 数 cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c cpu 运 行的 位数 getconf LONG_BIT 物理cpu 个数 cat /proc/cpuinfo | grep physical | uniq -c 结 果大 于 0支持64位 cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l 查看cpu 是 否支 持虚 拟化 cat /proc/cpuinfo|grep flags pae 支 持半 虚拟 化 Intel VT 支 持全 虚拟 化 查 看内 存信 息 more /proc/meminfo 查 看全 面硬 件信 息 dmidecode 查 看服 务器 型号 dmidecode | grep "Product Name" 查 看软 raid 信息 cat /proc/mdstat 查 看硬 raid 信息 cat /proc/scsi/scsi 查 看硬 件信 息 lspci 查 看是 否支 持 raid lspci|grep RAID 显 示开 机信 息 dmesg 进 程树 pstree 每 隔一 秒报 告虚 拟内 存统 计信 息 9次 vmstat 1 9 把180 号 进程 的优 先级 加 1 renice +1 180 终 止某 个 PID 进程 kill -9 PID 指 定三 天后 下午 5:00 执行/bin/ls at 5pm + 3 days /bin/ls 编 辑周 期任 务 crontab -e 分钟小时天月星期命 令或 脚本 01 1-3/2 *** 命 令或 脚本 直 接将 命令 写入 周期 任务 echo "40 7 ** 2 /root/sh">>/var/spool/cron/root 查 看自 动周 期性 任务 crontab -l 删 除自 动周 期性 任务 crontab -r 禁 止或 允许 用户 使用 周期 任务 cron.deny 和cron.allow 启 动自 动周 期性 服务 service crond 启动|停止|重启|状态> 是 否打 开了 某个 端口 netstat -anlp | grep 端 口号 查 看监 听 netstat -anlp sudo 命 令权 限添 加 visudo 用户别名(可用all)=NOPASSWD:命令1, 命令 2 wangming linuxfan=NOPASSWD:/sbin/apache start,/sbin/apache restart UserName ALL=(ALL) ALL 制 作补 丁 diff suzu.c suzu2.c > sz.patch 安 装补 丁 patch suzu.c < sz.patch 显 示打 开指 定文 件的 所有 进程 lsof 文件 查 看端 口的 进程 lsof -i :32768 显 示消 耗内 存最 多的 10个 运行 中的 进程 ,以 内存 使用 量排 序 .cpu +3 ps aux |grep -v USER | sort -nk +4 | tail 查 看内 核模 块 lsmod yum 扩 展源 http://download.fedoraproject.org/pub/epel wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh epel-release-5-4.noarch.rpm 升 级所 有包 版本 ,依 赖关 系, 系统 版本 内核 都升 级 yum -y update 升 级指 定的 软件 包 yum -y update 软 件包 名 不 改变 软件 设置 更新 软件 ,系 统版 本升 级, 内核 不改 变 yum -y upgrade yum 搜 索相 关包 yum search mail 会 改变 配置 文件 ,改 变旧 的依 赖关 系, 改变 系统 版本 dist-upgrade 编 辑启 动项 /boot/grub/grub.conf 开 机启 动脚 本顺 序 /etc/profile /etc/profile.d/*.sb ~/bash_profile ~/.bashrc /etc/bashrc -------------------------------------------------------------------- top 前 五行 是系 统整 体的 统计 信息 。 第 一行 是任 务队 列信 息, 同 uptime 命 令的 执行 结果 。其 内容 如下 : 01:06:48 当 前时 间 up 1:22 系 统运 行时 间, 格式 为时 :分 1 user 当 前登 录用 户数 load average: 0.06, 0.60, 0.48 系 统负 载, 即任 务队 列的 平均 长度 。 三 个数 值分 别为 1分 钟、 5分 钟、 15分 钟前 到现 在的 平均 值。 第 二、 三行 为进 程和 CPU 的 信息 。当 有多 个 CPU 时 ,这 些内 容可 能会 超过 两行 。内 容如 下: Tasks: 29 total 进 程总 数 1 running 正 在运 行的 进程 数 28 sleeping 睡 眠的 进程 数 0 stopped 停 止的 进程 数 0 zombie 僵 尸进 程数 Cpu(s): 0.3% us 用 户空 间占 用 CPU 百 分比 1.0% sy 内 核空 间占 用 CPU 百 分比 0.0% ni 用 户进 程空 间内 改变 过优 先级 的进 程占 用 CPU 百 分比 98.7% id 空闲CPU 百 分比 0.0% wa 等 待输 入输 出的 CPU 时 间百 分比 0.0% hi 0.0% si 最 后两 行为 内存 信息 。内 容如 下: Mem: 191272k total 物 理内 存总 量 173656k used 使 用的 物理 内存 总量 17616k free 空 闲内 存总 量 22052k buffers 用 作内 核缓 存的 内存 量 Swap: 192772k total 交 换区 总量 0k used 使 用的 交换 区总 量 192772k free 空 闲交 换区 总量 123988k cached 缓 冲的 交换 区总 量。 内 存中 的内 容被 换出 到交 换区 ,而 后又 被换 入到 内存 ,但 使用 过的 交换 区尚 未被 覆盖 , 该 数值 即为 这些 内容 已存 在于 内存 中的 交换 区的 大小 。 相 应的 内存 再次 被换 出时 可不 必再 对交 换区 写入 。 进 程信 息区 统 计信 息区 域的 下方 显示 了各 个进 程的 详细 信息 。首 先来 认识 一下 各列 的含 义。 序号列名含义 a PID 进程id b PPID 父 进程 id c RUSER Real user name d UID 进 程所 有者 的用 户 id e USER 进 程所 有者 的用 户名 f GROUP 进 程所 有者 的组 名 g TTY 启 动进 程的 终端 名。 不是 从终 端启 动的 进程 则显 示为 ? h PR 优 先级 i NI nice 值 。负 值表 示高 优先 级, 正值 表示 低优 先级 j P 最 后使 用的 CPU, 仅在 多 CPU 环 境下 有意 义 k %CPU 上 次更 新到 现在 的 CPU 时 间占 用百 分比 l TIME 进 程使 用的 CPU 时 间总 计, 单位 秒 m TIME+ 进 程使 用的 CPU 时 间总 计, 单位 1/100 秒 n %MEM 进 程使 用的 物理 内存 百分 比 o VIRT 进 程使 用的 虚拟 内存 总量 ,单 位 kb。VIRT=SWAP+RES p SWAP 进 程使 用的 虚拟 内存 中, 被换 出的 大小 ,单 位 kb。 q RES 进 程使 用的 、未 被换 出的 物理 内存 大小 ,单 位 kb。RES=CODE+DATA r CODE 可 执行 代码 占用 的物 理内 存大 小, 单位 kb s DATA 可 执行 代码 以外 的部 分 (数 据段 +栈)占 用的 物理 内存 大小 ,单 位 kb t SHR 共 享内 存大 小, 单位 kb u nFLT 页 面错 误次 数 v nDRT 最 后一 次写 入到 现在 ,被 修改 过的 页面 数。 w S 进 程状 态。 D=不 可中 断的 睡眠 状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵 尸进 程 x COMMAND 命 令名 /命 令行 y WCHAN 若 该进 程在 睡眠 ,则 显示 睡眠 中的 系统 函数 名 z Flags 任 务标 志, 参考 sched.h ################################## iptables 内 建三 个表 : nat mangle 和filter filter 预 设规 则表 ,有 INPUT、FORWARD 和OUTPUT 三 个规 则链 INPUT 进入 FORWARD 转发 OUTPUT 出去 ACCEPT 将 封包 放行 REJECT 拦 阻该 封包 DROP 丢 弃封 包不 予处 理 -A 在 所选 择的 链 (INPUT 等)末 添加 一条 或更 多规 则 -D 删 除一 条 -E 修改 -p tcp、udp、icmp 0相 当于 所有 all!取反 -P 设 置缺 省策 略 (与 所有 链都 不匹 配强 制使 用此 策略 ) -s IP/掩码(IP/24) 主 机名 、网 络名 和清 楚的 IP 地址!取反 -j 目 标跳 转, 立即 决定 包的 命运 的专 用内 建目 标 -i 进 入的 (网 络) 接口 [名称] eth0 -o 输 出接 口 [名称] -m 模块 --sport 源 端口 --dport 目 标端 口 #配 置文 件 vi /etc/sysconfig/iptables #将 防火 墙中 的规 则条 目清 除掉 iptables -F #注意:iptables -PINPUTACCEPT #导 入防 火墙 规则 iptables-restore <规 则文 件 #保 存防 火墙 设置 /etc/init.d/iptables save #重 启防 火墙 服务 /etc/init.d/iptables restart #查 看规 则 iptables -L-n iptables -L-n --line-numbers #从 某个 规则 链中 删除 一条 规则 iptables -DINPUT--dport 80 -j DROP iptables -DINPUT 8 #取 代现 行规 则 iptables -RINPUT 8 -s 192.168.0.1 -j DROP #插 入一 条规 则 iptables -IINPUT 8 --dport 80 -j ACCEPT #查 看转 发 iptables -t nat -nL #在 内核 里打 开 ip 转 发功 能 echo 1 > /proc/sys/net/ipv4/ip_forward ################################## #允 许本 地回 环 iptables -AINPUT-s 127.0.0.1 -p tcp -j ACCEPT #允 许已 建立 的或 相关 连的 通行 iptables -AINPUT-m state --state ESTABLISHED,RELATED-j ACCEPT #开 放对 外访 问 iptables -POUTPUTACCEPT #指 定某 端口 针对 IP开放 iptables -AINPUT-s 192.168.10.37 -p tcp --dport 22 -j ACCEPT #允 许的 IP或IP段 访问 iptables -AINPUT-s 192.168.10.37 -p tcp -j ACCEPT #开 放对 外开 放端 口 iptables -AINPUT-p tcp --dport 80 -j ACCEPT #关 闭入 口 iptables -PINPUTDROP #关 闭转 发 iptables -PFORWARDDROP ################################## iptables 规 则文 件 # Generated by iptables-save v1.2.11 on Fri Feb 9 12:10:37 2007 *filter :INPUTDROP[637:58967] :FORWARDDROP[0:0] :OUTPUTACCEPT[5091:1301533] #允 许的 IP或IP段 访问 -AINPUT-s 127.0.0.1 -p tcp -j ACCEPT -AINPUT-s 192.168.0.0/255.255.0.0 -p tcp -j ACCEPT #开 放对 外开 放端 口 -AINPUT-p tcp --dport 80 -j ACCEPT #指 定某 端口 针对 IP开放 -AINPUT-s 192.168.10.37 -p tcp --dport 22 -j ACCEPT #拒 绝所 有协 议 (INPUT 允 许的 情况 ) #-AINPUT-p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,URGRST-j DROP # 允 许已 建立 的或 相关 连的 通行 iptables -AINPUT-m state --state ESTABLISHED,RELATED-j ACCEPT #拒绝ping -AINPUT-p tcp -m tcp -j REJECT--reject-with icmp-port-unreachable COMMIT # Completed on Fri Feb 9 12:10:37 2007 ################################## 常 用实 例 #允 许在 IP访 问指 定端 口 iptables -AINPUT-s 192.168.62.1 -p tcp --dport 22 -j ACCEPT #禁 止使 用某 端口 iptables -AINPUT-p tcp --dport 22 -j DROP iptables -AINPUT-p tcp --dport 31 -j REJECT #禁止QQ端口 iptables -DFORWARD-p udp --dport 8000 -j REJECT #禁止icmp 端口 #除192.168.62.1 外 ,禁 止其 它人 ping 我 的主 机 iptables -AINPUT-i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT iptables -AINPUT-i eth0 -p icmp -m icmp --icmp-type 8 -j DROP #其 它情 况不 允许 iptables -AINPUT-i eth0 -j DROP #禁 止指 定 IP访问 iptables -AINPUT-p tcp -s IP-j DROP #禁 止指 定 IP访 问端 口 iptables -AINPUT-p tcp -s IP--dport port -j DROP #阻 止所 有没 有经 过你 系统 授权 的 TCP 连接 iptables -t filter -AINPUT-i eth0 -p tcp --syn -j DROP #添 加网 段转 发 iptables -t nat -APOSTROUTING-s 10.8.0.0/24 -j MASQUERADE #IP 包 流量 限制 iptables -AINPUT-f -m limit --limit 100/s --limit-burst 100 -j ACCEPT iptables -AINPUT-i eth0 -p icmp -j DROP #端 口映 射 iptables -t nat -APREROUTING-i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT--to-ports 3128 #列 出某 规则 链中 的所 有规 则 iptables -LINPUT #删 除某 个规 则链 ,不 加规 则链 ,清 除所 有非 内建 的 iptables -X allowed #将 封包 计数 器归 零 iptables -ZINPUT #定 义新 的规 则链 iptables -N allowed #定 义过 滤政 策 iptables -PINPUTDROP #修 改某 自订 规则 链的 名称 iptables -E allowed disallowed #比 对通 讯协 议类 型是 否相 符 #-p ! tcp 排除tcp 以 外的 udp、icmp。-p all 所 有类 型 iptables -AINPUT-p tcp #比 对封 包的 来源 IP #192.168.0.0/24 ! 反 向对 比 iptables -AINPUT-s 192.168.1.1 #比 对封 包的 目的 地 IP iptables -AINPUT-d 192.168.1.1 #比 对封 包是 从哪 片网 卡进 入 #eth+表 示所 有的 网卡 iptables -AINPUT-i eth0 #比 对封 包要 从哪 片网 卡送 出 iptables -AFORWARD-o eth0 #比 对某 段时 间内 封包 的平 均流 量 #例 子是 用来 比对 :每 小时 平均 流量 是否 超过 一次 3 个 封包 。除 了每 小时 平均 次外 ,也 可以 每 秒钟、每 分钟 或每 天平 均一 次 ,默 认值 为每 小时 平均 一次 ,参 数如 后 :/second、/minute、/day。 除 了进 行封 数量 的比 对外 ,设 定这 个参 数也 会在 条件 达成 时, 暂停 封包 的比 对动 作, 以避 免因 骇 客使 用洪 水攻 击法 ,导 致服 务被 阻断 。 iptables -AINPUT-m limit --limit 3/hour #比 对瞬 间大 量封 包的 数量 #例子是用来比对一次同时涌入的封包是否超过5 个(这是默认值),超过此上限的封包将被直 接 丢弃 。使 用效 果同 上。 iptables -AINPUT-m limit --limit-burst 5 #比 对来 自本 机的 封包 #是 否为 某特 定使 用者 所产 生的 ,这 样可 以避 免服 务器 使用 root 或 其它 身分 将敏 感数 据传 送出 , 可 以降 低系 统被 骇的 损失 。可 惜这 个功 能无 法比 对出 来自 其它 主机 的封 包。 iptables -AOUTPUT-m owner --uid-owner 500 #比 对来 自本 机的 封包 iptables -AOUTPUT-m owner --gid-owner 0 iptables -AOUTPUT-m owner --pid-owner 78 iptables -AOUTPUT-m owner --sid-owner 100 #用 来比 对联 机状 态 iptables -AINPUT-m state --state RELATED,ESTABLISHED 联 机状 态共 有四 种: INVALID、ESTABLISHED、NEW 和RELATED。 #-j 参数指定进行的处理动作,处理动作包括:ACCEPT、REJECT、DROP、REDIRECT、 MASQUERADE、LOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、MARK,说 明: iptables -AFORWARD-p TCP--dport 22 -j REJECT--reject-with tcp-reset #可 以传 送的 封包 有几 个选 择: ICMP port-unreachable、ICMP echo-reply 或是tcp-reset REDIRECT 将 封包 重新 导向 到另 一个 端口 (PNAT) iptables -t nat -APREROUTING-p tcp --dport 80 -j REDIRECT--to-ports 8080 MASQUERADE 改 写封 包来 源 IP 为 防火 墙 NICIP iptables -t nat -APOSTROUTING-p TCP-j MASQUERADE--to-ports 1024-31000 LOG 将 封包 相关 讯息 纪录 在 /var/log 中 iptables -AINPUT-p tcp -j LOG--log-prefix "INPUT packets" SNAT 改 写封 包来 源 IP 为 某特 定 IP 或IP 范围 iptables -t nat -APOSTROUTING-p tcp-o eth0 -j SNAT--to-source 194.236.50.155-194.236.50.160:1024-32000 DNAT 改 写封 包目 的地 IP 为 某特 定 IP 或IP 范围 iptables -t nat -APREROUTING-p tcp -d 15.45.23.67 --dport 80 -j DNAT--to-destination 192.168.1.1-192.168.1.10:80-100 MIRROR 镜 射封 包 QUEUE 中 断过 滤程 序 RETURN 结 束在 目前 规则 炼中 的过 滤程 序 MARK 将 封包 标上 某个 代号 ################################## iptables 配 置实 例 允 许某 段 IP 访 问任 何端 口 iptables -AINPUT-s 192.168.0.3/24 -p tcp -j ACCEPT 设定预设规则(拒绝所有的数据包,再允许需要的,如只做WEB 服务器.还是推荐三个链都是 DROP) iptables -PINPUTDROP iptables -PFORWARDDROP iptables -POUTPUTACCEPT (注:意 直接 设置 这三 条完 已经 掉线 了 ) 开启22端口 iptables -AINPUT-p tcp --dport 22 -j ACCEPT 如果OUTPUT 设 置成 DROP 的 ,要 写上 下面 一条 iptables -AOUTPUT-p tcp --sport 22 -j ACCEPT (注:,不 写导 致无 法 SSH.其 他的 端口 一样 ,OUTPUT 设 置成 DROP 的话,也 要添 加一 条链 ) 如 果开 启了 web 服 务器 ,OUTPUT 设 置成 DROP 的话,同 样也 要添 加一 条链 iptables -AOUTPUT-p tcp --sport 80 -j ACCEPT 做WEB 服 务器 ,开启80端口,其 他同 理 iptables -AINPUT-p tcp --dport 80 -j ACCEPT 做 邮件 服务 器 ,开启25,110 端口 iptables -AINPUT-p tcp --dport 110 -j ACCEPT iptables -AINPUT-p tcp --dport 25 -j ACCEPT 允许icmp 包 通过 ,允许ping iptables -AOUTPUT-p icmp -j ACCEPT(OUTPUT 设 置成 DROP 的话) iptables -AINPUT-p icmp -j ACCEPT(INPUT 设 置成 DROP 的话) 允许loopback!(不 然会 导致 DNS 无 法正 常关 闭等 问题 ) IPTABLES-AINPUT-i lo -p all -j ACCEPT(如 果是 INPUTDROP) IPTABLES-AOUTPUT-o lo -p all -j ACCEPT(如 果是 OUTPUTDROP) ==================================================================== ---------------------------------- 4服 务管 理 ---------------------------------- 启动sendmail 服务 ./sendmail start /etc/init.d/sendmail start 关闭sendmail 服务 ./sendmail stop 查看sendmail 服 务当 前状 态 ./sendmail status 发 送邮 件 echo 内容| /bin/mail -s "标题" 收 件箱 打 开服 务列 表 需 要打 * ntsysv 让 某个 服务 不自 动启 动 35指 的是 运行 级别 httpd:chkconfig --level 35 httpd off 让 某个 服务 自动 启动 httpd:chkconfig --level 35 httpd on 查 看所 有服 务的 启动 状态 chkconfig --list 查 看某 个服 务的 启动 状态 chkconfig --list |grep httpd 查 看服 务的 状态 chkconfig –-list [服 务名 称 ] 设 置非 独立 服务 启状 态 chkconfig 服 务名 on|off|set 开启mysql 后 台运 行 /usr/local/mysql/bin/mysqld_safe --user=mysql & 开 机启 动执 行 vi /etc/rc.d/rc.local 开 机启 动和 关机 关闭 服务 连接 /etc/rc.d/rc3.d/S55sshd #S开机start K关机stop 55级别后 跟服 务名 ln -s -f /usr/local/httpd/bin/apachectl /etc/rc.d/rc3.d/S15httpd ==================================================================== ---------------------------------- 5网 络管 理 ---------------------------------- ################################## 本 机网 络配 置文 件 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none BROADCAST=192.168.1.255 HWADDR=00:0C:29:3F:E1:EA IPADDR=192.168.1.55 NETMASK=255.255.255.0 NETWORK=192.168.1.0 ONBOOT=yes TYPE=Ethernet GATEWAY=192.168.1.1 ################################## 增 加逻 辑 IP 地址 ifconfig eth0:0 192.168.1.221 netmask 255.255.255.0 查 看路 由表 route 添 加路 由表 route add default gw 192.168.1.1 dev eth0 设置DNS vi /etc/resolv.conf 禁 用网 卡 ifconfig eth0 down 启 用网 卡 ifconfig eth0 up ifup eth0:0 up 测 试跳 数 traceroute www.baidu.com (linux) tracert www.baidu.com (windows) 根据IP 和 主机 最大 数计 算掩 码 ipcalc -m "$ip" -p "$num" 用wget 的 递归 方式 下载 整个 网站 wget --random-wait -r -p -e robots=off -U Mozilla www.example.com 通过DNS 来 读取 Wikipedia 的hacker 词条 dig +short txt hacker.wp.dg.cx host -t txt hacker.wp.dg.cx rz ssh 小 文件 上传 sz ssh 小 文件 下载 从linux ssh 登 录另 一台 linux ssh -p 22 wang@192.168.1.209 利用ssh 操 作远 程主 机 ssh -p 22 root@192.168.1.209 环 境变 量中 脚本 把 本地 文件 拷贝 到远 程主 机 scp -P 22 文件root@ip:/目录 ssh 连 接不 提示 yes ssh -o StrictHostKeyChecking=no 192.168.70.130 把 远程 指定 文件 拷贝 到本 地 scp root@192.168.1.209:远 程目 录 本 地目 录 通过SSH 挂 载远 程主 机上 的文 件夹 sshfs name@server:/path/to/folder /path/to/mount/point 卸 载的 话使 用 fusermount 命令 fusermount -u /path/to/mount/point 用DIFF 对 比远 程文 件跟 本地 文件 ssh user@host cat /path/to/remotefile | diff /path/to/localfile - 用SSH 创 建端 口转 发通 道 ssh -N-L2001:remotehost:80 user@somemachine 嵌 套使 用 SSH ssh -t host_A ssh host_B 密 钥信 任 ssh-keygen –t rsa vi 用户/.ssh/authorized_keys 远 程关 掉一 台 WINDOWS 机器 net rpc shutdown -IIP_ADDRESS-U username%password 禁ping echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all ################################## 先ping 在 扫描 主机 开放 端口 nmap -PT 192.168.1.1-111 扫 描出 系统 内核 版本 nmap -O 192.168.1.1 扫 描端 口的 软件 版本 nmap -sV 192.168.1.1-111 半 开扫 描( 通常 不会 记录 日志 ) nmap -sS 192.168.1.1-111 不 支持 windows 的 扫描 (判 断是 否是 windows) nmap -sF 192.168.1.1-111 nmap -sX 192.168.1.1-111 nmap -sN 192.168.1.1-111 不ping 直 接扫 描 nmap -P0 192.168.1.1-111 详 细信 息 nmap -d 192.168.1.1-111 无 法找 出真 正扫 描主 机( 隐藏 IP) nmap -D 192.168.1.1-111 端 口范 围 nmap -p 20-30,139,60000- 表 示: 扫描 20到30号 端口 , 139 号 端口 以及 所有 大于 60000 的 端口 组 合扫 描( 不 ping、 软件 版本 、内 核版 本、 详细 信息 ) nmap -P0 -sV -O-v 192.168.30.251 ################################## ==================================================================== ---------------------------------- 6磁 盘管 理 ---------------------------------- 查 看硬 盘容 量 df -h 查 看磁 盘分 区格 式 df -T 修 改只 读文 件系 统为 读写 mount -o remount,rw / 查 看卷 标 e2label /dev/sda5 创 建卷 标 e2label /dev/sda5 new-label NTFS 添 加卷 标 ntfslabel -v /dev/sda8 new-label ext2 分 区转 ext3 分区 tune2fs -j /dev/sda 格 式化 分区 mkfs -t ext3 /dev/hda3 指 定索 引块 大小 mke2fs -b 2048 /dev/sda5 对 文件 系统 修复 fsck -y /dev/sda6 查 看超 级块 的信 息 dumpe2fs -h /dev/sda5 查 看当 前系 统支 持文 件系 统 cat /proc/filesystems 检 测硬 盘状 态 smartctl -H/dev/sda 检 测硬 盘信 息 smartctl -i /dev/sda 检 测所 有信 息 smartctl -a /dev/sda 检 测目 录下 所有 文件 大小 du -h 目录 显 示当 前目 录中 子目 录的 大小 du -h --max-depth=1 挂 载光 驱 mount -t iso9660 /dev/dvd /mnt 挂 载镜 像文 件 mount -o loop /software/rhel4.6.iso /mnt/ ################################## 磁盘grub 开 机引 导项 添加 /etc/grub.conf title ms-dos rootnoverify (hd0,0) chainloader +1 ################################## 建 立软 RAID1 两 块硬 盘分 区一 样, 分别 新建 分区 文件 类型 为 software RAID 创 建两 个就 点击 raid 合 并为 RAID1, 这里 的挂 载点 为正 常 linux 目录 查看raid 工 作状 态 cat /proc/mdstat 两 个盘 都加 grub 引导 查看 cat /boot/grub/grub.conf grub root (hd0,0) setup (hd0) root (hd1,0) setup (hd1) 修改grub 启 动项 配置 文件 vi /boot/grub/grub.conf 复制title CentOS 到 最后 的四 行 在 下面 粘贴 修改 为刚 才新 加的 引导 (hd1,0)。 查 看分 区 sfdisk -d /dev/hda 导出A盘 分区 列表 sfdisk -d /dev/hda > fq.hda 将 分区 列表 导入 到新 加的 硬盘 sfdisk /dev/hdb < fq.hda 恢 复新 挂载 的硬 盘分 区 mdadm /dev/md1 -a /dev/hdb5 # raid5 可 利用 lvm 扩容 ################################## 新 硬盘 挂载 fdisk /dev/sdc p # 打 印分 区 d # 删 除分 区 n # 创 建分 区 ,( 一块 硬盘 最多 4个 主分 区, 扩展 占一 个主 分区 位置 。 p主 分区 e扩 展) w # 保 存退 出 mkfs -t ext3 -L 卷标/dev/sdc1 # 格 式化 相应 分区 mount /dev/sdc1 /mnt # 挂载 添 加开 机挂 载分 区 vi /etc/fstab 用 卷标 挂载 LABEL=/data /data ext3 defaults 1 2 用 真实 分区 挂载 /dev/sdb1 /data4 ext3 defaults 1 2 第 一个 数字 "1"该 选项 被 "dump"命 令使 用来 检查 一个 文件 系统 应该 以多 快频 率进 行转 储 ,若 不需 要 转储 就设 置该 字段 为 0 第 二个 数字 "2"该 字段 被 fsck 命 令用 来决 定在 启动 时需 要被 扫描 的文 件系 统的 顺序 ,根 文件 系统 "/"对 应该 字段 的值 应该 为 1,其 他文 件系 统应 该为 2。若 该文 件系 统无 需在 启动 时扫 描则 设置 该 字 段为 0 ################################## ==================================================================== ---------------------------------- 7用 户管 理 ---------------------------------- 建 立用 户 useradd xuesong 修 改密 码 passwd 用户 echo "xuesong" | passwd xuesong --stdin 查 找用 户显 示信 息 finger 添 加组 groupadd 修 改文 件拥 有者 (R递归) chown -R 修 改所 有者 用户 中包 含点 "." chown y\.li:mysql 修 改用 户组 chgrp 修 改用 户名 usermod -l 新 用户 名 老 用户 名 修 改用 户所 属组 usermod -g user group 修 改用 户家 目录 usermod -d 目录-m 用户 将 用户 添加 到附 加组 usermod -G user group 删 除帐 号及 家目 录 userdel -r 指 定组 并不 允许 登录 的用 户 useradd -g www -M-s /sbin/nologin www 切 换用 户执 行 su - user -c " #命令1 " ==================================================================== ---------------------------------- 8脚 本相 关 ---------------------------------- ################################## 正 则表 达式 ^ 行 首定 位 $ 行 为定 位 . 匹 配除 换行 符以 外的 任意 字符 * 匹配0或 多个 重复 字符 + 重 复一 次或 更多 次 ? 重 复零 次或 一次 [] 匹 配一 组中 任意 一个 字符 [^] 匹 配不 在指 定组 内的 字符 \ 用 来转 义元 字符 \< 词 首定 位符 (支持vi 和grep) \ 词 尾定 位符 (支持vi 和grep) love\> x\{m\} 重 复出 现 m次 x\{m,\} 重 复出 现至 少 m次 x\{m,n\} 重 复出 现至 少 m次 不超 过 n次 X? 匹 配出 现零 次或 一次 的大 写字 母 X X+ 匹 配一 个或 多个 字母 X (abc|def)+ 匹 配一 连串 的( 最少 一个 ) abc 或def;abc 和def 将 匹配 \d 匹 配任 意一 位数 字 \D 匹 配任 意单 个非 数字 字符 \w 匹 配任 意单 个字 母数 字字 符, 同义 词是 [:alnum:] \s 匹 配任 意的 空白 符 \b 匹 配单 词的 开始 或结 束 [:alpha:] 代 表所 有字 母不 论大 小写 [:lower:] 表 示小 写字 母 [:upper:] 表 示大 写字 母 [:digit:] 表 示数 字字 符 () 括 号内 的字 符为 一组 ################################## 基 本流 程结 构 if [ $a == $b ] then echo "等于" else echo "不 等于 " fi ################################## case $xs in 0) echo "0" ;; 1) echo "1" ;; *) echo "其他";; esac ################################## num=1 # while true 等同while : while [ $num -lt 10 ] do echo $num ((num=$num+2)) done ################################## grep a a.txt | while read a do echo $a done ################################## w=`awk -F":"'{print $1}' c` for d in $w do $d done ################################## for ((i=0;i<${#o[*]};i++)) do echo ${o[$i]} done ################################## until 循环# 当command 不为0时 until command do body done ################################## 流 程控 制 break N# 跳 出几 层循 环 continue N# 跳 出几 层循 环, 循环 次数 不变 continue # 重 新循 环次 数不 变 ################################## 变量 将变量A 赋 值为 字串 A="a b c def" A=`命令` 间 接调 用 eval a=\$$a 将变量A 定 义为 組数 A=(a b c def) set a1 a2 a3 a4 $1 $2 $* 在子shell 中 运行 (a=bbk) 定 义变 量类 型 declare 或者typeset -r 只读(readonly 一样) -i 整形 -a 数组 -f 函数 -x export declare -i n=0 env # 查 看环 境变 量 env | grep "name" # 查 看定 义的 环境 变量 set # 查 看环 境变 量和 本地 变量 read name # 输 入变 量 readonly name # 把name 这 个变 量设 置为 只读 变量 ,不 允许 再次 设置 readonly # 查 看系 统存 在的 只读 文件 export name # 变量name 由 本地 升为 环境 export name="RedHat" # 直 接定 义 name 为 环境 变量 export Stat$nu=2222 # 变 量引 用变 量赋 值 unset name # 变 量清 除 export -n name # 去 掉只 读变 量 shift # 用 于移 动位 置变 量 ,调 整位 置变 量 ,使$3的 值赋 给 $2.$2 的 值赋 予 $1 name + 0 # 将 字符 串转 换为 数字 number ""# 将 数字 转换 成字 符串 常 用系 统变 量 $0 # 脚 本启 动名 (包 括路 径 ) basename $0 # 只 取脚 本名 $n # 当 前程 式的 第 n个 参数 ,n=1,2,…9 $* # 当 前程 式的 所有 参数 (不 包括 脚本 本身 ) $# # 当 前程 式的 参数 个数 (不 包括 脚本 本身 ) $$ # 当 前程 式的 PID $! # 执 行上 一个 指令 的 PID $? # 执 行上 一个 指令 的返 回值 变 量引 用技 巧 ${} ${name:+value} # 如 果设 置了 name,就把value 显示,未 设置 则为 空 ${name:-value} # 如 果设 置了 name,就 显示 它 ,未 设置 就显 示 value ${name:?value} # 未 设置 提示 用户 错误 信息 value ${name:=value} # 如 未设 置就 把 value 设 置并 显示 <写 入本 地中 >, ${#A} # 可 得到 变量 中字 节 ${#A[*]} # 数 组个 数 ${A[2]} # 脚 本的 一个 参数 ${A:4:9} # 取 变量 中第 4位 到后 面 9位 ${A/www/http} # 取 变量 并且 替换 每行 第一 个关 键字 ${A//www/http} # 取 变量 并且 全部 替换 每行 关键 字 定 义了 一个 变量 为: file=/dir1/dir2/dir3/my.file.txt ${file#*/} # 去 掉第 一条 / 及 其左 边的 字串 : dir1/dir2/dir3/my.file.txt ${file##*/} # 去 掉最 后一 条 / 及 其左 边的 字串 : my.file.txt ${file#*.} # 去 掉第 一个 . 及 其左 边的 字串 : file.txt ${file##*.} # 去 掉最 后一 个 . 及 其左 边的 字串 : txt ${file%/*} # 去 掉最 后条 / 及 其右 边的 字串 : /dir1/dir2/dir3 ${file%%/*} # 去 掉第 一条 / 及 其右 边的 字串 : (空值) ${file%.*} # 去 掉最 后一 个 . 及 其右 边的 字串 : /dir1/dir2/dir3/my.file ${file%%.*} # 去 掉第 一个 . 及 其右 边的 字串 : /dir1/dir2/dir3/my ## 是 去掉 左边 (在 键盘 上 # 在$ 之 左边 ) #% 是 去掉 右边 (在 键盘 上 % 在$ 之 右边 ) # 单 一符 号是 最小 匹配 ﹔两 个符 号是 最大 匹配 ################################## test 条 件判 断 # 符号[] 等同test expression 为 字符 串操 作 -n str # 字 符串 str 是 否不 为空 -z str # 字 符串 str 是 否为 空 expression 为 文件 操作 -b # 是 否块 文件 -p # 文 件是 否为 一个 命名 管道 -c # 是 否字 符文 件 -r # 文 件是 否可 读 -d # 是 否一 个目 录 -s # 文 件的 长度 是否 不为 零 -e # 文 件是 否存 在 -S# 是 否为 套接 字文 件 -f # 是 否普 通文 件 -x # 文 件是 否可 执行 ,则 为真 -g # 是 否设 置了 文件 的 SGID 位 -u # 是 否设 置了 文件 的 SUID 位 -G# 文 件是 否存 在且 归该 组所 有 -w # 文 件是 否可 写, 则为 真 -k # 文 件是 否设 置了 的粘 贴位 -t fd # fd 是 否是 个和 终端 相连 的打 开的 文件 描述 符( fd 默 认为 1) -O# 文 件是 否存 在且 归该 用户 所有 !# 取反 expression 为 整数 操作 expr1 -a expr2 # 如果expr1 和expr2 评 估为 真, 则为 真 expr1 -o expr2 # 如果expr1 或expr2 评 估为 真, 则为 真 两 值比 较 整数字 符串 -lt <:# 小于 -gt >:# 大于 -le <=:# 小 于或 等于 -ge >=:# 大 于或 等于 -eq ==:# 等 不等 -ne !=:# 不 等于 判 断大 小 ,0为真,1为假 test 10 -lt 5 echo $? 1 判 断字 符串 长度 是否 为 0 test -n "hello" 0 ################################## 重 定向 # 标 准输 出 stdout 和标 准错 误 stderr 标 准输 入 stdin cmd 1> fiel # 把标 准输 出 重 定向 到 file 文 件中 cmd > file 2>&1 # 把标 准输 出 和标 准错 误 一 起重 定向 到 file 文 件中 cmd 2> file # 把标 准错 误 重 定向 到 file 文 件中 cmd 2>> file # 把标 准错 误 重 定向 到 file 文 件中 (追加) cmd >> file 2>&1 # 把标 准输 出 和标 准错 误 一 起重 定向 到 file 文 件中 (追加) cmd < file >file2 # cmd 命 令以 file 文 件作 为 stdin(标 准输 入 ),以file2 文 件作 为 标 准 输出 cat <>file # 以 读写 的方 式打 开 file cmd < file cmd # 命 令以 file 文 件作 为 stdin cmd << delimiter cmd; #从stdin 中 读入 ,直 至遇 到 delimiter 分 界符 。 delimiter >&n # 使 用系 统调 用 dup (2) 复 制文 件描 述符 n 并 把结 果用 作标 准输 出 <&n # 标 准输 入复 制自 文件 描述 符 n <&- # 关 闭标 准输 入( 键盘 ) >&- # 关 闭标 准输 出 n<&- # 表 示将 n 号 输入 关闭 n>&- # 表 示将 n 号 输出 关闭 ################################## 运 算符 $[]等 同于 $(()) # $[]表 示形 式告 诉 shell 求 中括 号中 的表 达式 的值 ~var # 按 位取 反运 算符 ,把var 中 所有 的二 进制 为 1的 变为 0,为0的 变为 1 var\<>str # 右移运算符,把var 中所有的二进制位向右移动str 位,忽略最右移出的各位, 最 左的 各位 上补 0,每 次做 一次 右移 就有 实现 var 除以2 var&str # 与 比较 运算 符 ,var 和str 对 应位 ,对 于每 个二 进制 来说 ,如 果二 都 为1,结果为1. 否 则为 0 var^str # 异或运算符,比较var 和str 对应位,对于二进制来说如果二者互补,结果为1, 否 则为 0 var|str # 或 运算 符 ,比较var 和str 的 对应 位 ,对 于每 个二 进制 来说 ,如 二都 该位 有一 个1 或 都是 1,结 果为 1,否 则为 0 运 算符 的优 先级 级别运 算符 说明 1 =,+=,-=,/=,%=,*=,&=,^=,|=,<<=,>>== # 赋 值运 算符 2 || # 逻 辑或 前 面不 成功 执行 3 &&# 逻 辑与 前 面成 功后 执行 4 | # 按 位或 5 ^ # 按 异位 与 6 &# 按 位与 7 ==,!= # 等于/不 等于 8 <=,>=,<,> # 大 于或 等于 /小 于或 等于 /大于/小于 9 \<<,>> # 按 位左 移 /按 位右 移 (无 转意 符号 ) 10 +,- # 加减 11 *,/,%# 乘,除,取余 12 !,~ # 逻 辑非 ,按 位取 反或 补码 13 -,+ # 正负 ################################## 数 学运 算 $(( )) 整 数运 算符 号大 致有 这些 : + -*/**: 分別 为 "加 、減 、乘 、除 、密 运算 " & | ^ !: 分別 为 "AND、OR、XOR、NOT" 运算 %: 余数 运算 运算 let let x=16/4 let x=5**5 手 工命 令行 计数 器 expr SUM=`expr 2 \* 3` 计 算字 串长 度 expr length "bkeep zbb" 抓 取字 串 expr substr "bkeep zbb" 4 9 抓 取第 一个 字符 数字 串出 现的 位置 expr index "bkeep zbb" e 整 数运 算 expr 14 % 9 expr 30 / 3 / 2 # 运 算符 号有 空格 增 量计 数 (加 循环 即可 ) LOOP=0 LOOP=`expr $LOOP + 1` 数 值测 试 (如 果试 图计 算非 整数 ,则 会返 回错 误。 ) rr=3.4 expr $rr + 1 expr: non-numeric argument rr=5 expr $rr + 1 6 模 式匹 配 (可 以使 用 expr 通 过指 定冒 号选 项计 算字 符串 中字 符数 ) .* 意 即任 何字 符重 复 0次 或多 次 expr bkeep.doc :'.*' 在expr 中 可以 使用 字符 串匹 配操 作, 这里 使用 模式 抽取 .doc 文 件附 属名 。 expr bkeep.doc :'\(.*\).doc' 次 方计 算 echo "m^n"|bc ################################## grep 用法 -c 显 示匹 配到 得行 的数 目, 不显 示内 容 -h 不 显示 文件 名 -i 忽 略大 小写 -l 只 列出 匹配 行所 在文 件的 文件 名 -n 在 每一 行中 加上 相对 行号 -s 无 声操 作只 显示 报错 ,检 查退 出状 态 -v 反 向查 找 -e 使 用正 则表 达式 -A1 打 印匹 配行 和下 一行 -wc 匹 配出 现次 数 grep 可 用于 if 判 断, 找到 $?为then 过 滤关 键字 符行 grep -v "a" txt 精 确匹 配字 符串 grep 'a\>' txt 大 小写 敏感 grep -i "a" txt 同 时匹 配大 小写 grep "a[bB]" txt 查找0-9 重 复三 次的 所在 行 grep '[0-9]\{3\}' txt 任 意条 件匹 配 grep -E"word1 | word2 | word3" file 同 时匹 配三 个 grep word1 file | grep word2 |grep word3 ################################## tr 用法 -c 用 字符 串 1中 字符 集的 补集 替换 此字 符集 ,要 求字 符集 为 ASCII。 -d 删 除字 符串 1中 所有 输入 字符 。 -s 删 除所 有重 复出 现字 符序 列, 只保 留第 一个 ;即 将重 复出 现字 符串 压缩 为一 个字 符串 。 [a-z] a-z 内 的字 符组 成的 字符 串。 [A-Z] A-Z 内 的字 符组 成的 字符 串。 [0-9] 数 字串 。 \octal 一 个三 位的 八进 制数 ,对 应有 效的 ASCII 字 符。 [O*n] 表 示字 符 O重 复出 现指 定次 数 n。 因此 [O*2]匹配OO的 字符 串。 tr 中 特定 控制 字符 的不 同表 达方 式 速 记符 含义 八进 制方 式 \a Ctrl-G 铃声\007 \b Ctrl-H 退 格符 \010 \f Ctrl-L 走 行换 页 \014 \n Ctrl-J 新行\012 \r Ctrl-M 回车\015 \t Ctrl-I tab 键\011 \v Ctrl-X \030 将 所有 大写 转换 成小 写字 母 tr A-Z a-z 将 空格 替换 为换 行 tr """\n" 删 除空 行 tr -s "[\012]" < plan.txt tr -s ["\n"] < plan.txt 删 除文 件中 的 ^M, 并代 之以 换行 tr -s "[\015]" "[\n]" < file tr -s "[\r]" "[\n]" < file 替换passwd 文 件中 所有 冒号 ,代 之以 tab 键 tr -s "[:]""[\011]" < /etc/passwd tr -s "[:]""[\t]" < /etc/passwd 增 加显 示路 径可 读性 echo $PATH | tr ":""\n" tr 在vi 内 使用 ,在 tr 前 加处 理行 范围 和感 叹号 ('$'表 示最 后一 行 ) 1,$!tr -d '\t' Mac -> UNIX tr "\r" "\n" unixfile UNIX-> Mac tr "\n" "\r" macfile DOS-> UNIX Microsoft DOS/Windows 约 定, 文本 的每 行以 回车 字符 (\r)并 后跟 换行 符 (\n)结束 tr -d "\r" unixfile UNIX-> DOS: 在这 种情 况下 ,需 要用 awk, 因为 tr 不 能插 入两 个字 符来 替换 一个 字符 awk '{ print $0"\r" }' dosfile ################################## awk 用法 \b 退格 \f 换页 \n 换行 \r 回车 \t 制 表符 Tab \c 代 表任 一其 他字 符 -F 改变FS 值(分 隔符 ) ~ 匹配 = 赋值 == 匹配 += 叠加 [:alnum:] 字 母数 字字 符 [:alpha:] 字 母字 符 [:cntrl:] 控 制字 符 [:digit:] 数 字字 符 [:graph:] 非 空白 字符 (非 空格 、控 制字 符等 ) [:lower:] 小 写字 母 [:print:] 与[:graph:]相 似, 但是 包含 空格 字符 [:punct:] 标 点字 符 [:space:] 所 有的 空白 字符 (换 行符 、空 格、 制表 符 ) [:upper:] 大 写字 母 [:xdigit:] 十 六进 制的 数字 (0-9a-fA-F) 内 建变 量 $n 当 前记 录的 第 n 个 字段 ,字 段间 由 FS 分隔 $0 完 整的 输入 记录 ARGC 命 令行 参数 的数 目 ARGIND 命 令行 中当 前文 件的 位置 ( 从0 开 始算 ) ARGV 包 含命 令行 参数 的数 组 CONVFMT 数 字转 换格 式 ( 默 认值 为 %.6g) ENVIRON 环 境变 量关 联数 组 ERRNO 最 后一 个系 统错 误的 描述 FIELDWIDTHS 字 段宽 度列 表 ( 用 空格 键分 隔 ) FILENAME 当 前文 件名 FNR 同NR, 但相 对于 当前 文件 FS 字 段分 隔符 ( 默 认是 任何 空格 ) IGNORECASE 如 果为 真( 即非 0 值), 则进 行忽 略大 小写 的匹 配 NF 当 前记 录中 的字 段数 (列) NR 当 前行 数 OFMT 数 字的 输出 格式 ( 默 认值 是 %.6g) OFS 输 出字 段分 隔符 ( 默 认值 是一 个空 格 ) ORS 输 出记 录分 隔符 ( 默 认值 是一 个换 行符 ) RLENGTH 由match 函 数所 匹配 的字 符串 的长 度 RS 记 录分 隔符 ( 默 认是 一个 换行 符 ) RSTART 由match 函 数所 匹配 的字 符串 的第 一个 位置 SUBSEP 数 组下 标分 隔符 ( 默 认值 是 /034) 。 BEGIN 先 处理 (可 不加 文件 参数 ) END 结 束时 处理 [[:digit:][:lower:]] 数 字和 小写 字母 (占 一个 字符 ) -F"[]+|[%]+" 已 多个 空格 或多 个 %为 分隔 符 [a-z]+ 多 个小 写字 母 [a-Z] 代 表所 有大 小写 字母 (aAbB...zZ) [a-z] 代 表所 有大 小写 字母 (ab...z) 打 印匹 配到 得行 awk '/Tom/' 文件 如 果第 三个 字段 值小 于 4000 才 打印 awk '$3 <4000' 文件 匹配Tom 开 头的 行 打 印第 一个 字段 awk '/^Tom/{print $1}' 显 示所 有第 一个 字段 不是 以 ly 结 尾的 行 awk '$1 !~ /ly$/' 文件 条 件判 断 (如果$1大于$2,max 值 为为 $1,否 则为 $2) awk '{max=($1 > $2) ? $1 : $2; print max}' 文件 awk '{print ($1>$2)?"第 一排 "$1:"第 二排 "$2}' e.txt (括 号代 表 if 语 句判 断 "?"代表then ":"代表else) 算 术运 算 (第 三个 字段 和第 四个 字段 乘积 大于 500 则 显示 ) awk '$3 * $4 > 500' 文件 打印tom 到suz 之 间的 行 awk '/tom/,/suz/' 文件 去 掉前 三行 awk '{$1="";$2="";$3="";print}' a.sh 将date 值 赋给 d, 并将 d设 置为 数组 mon, 打印 mon 数 组中 第 2个 元素 awk 'BEGIN{"date" | getline d; split(d,mon) ; print mon[2]}' 文件 以 空格 、 :、 制表 符 Tab 为 分隔 符 awk -F'[:\t]' '{print $1,$2}' 取 关键 字下 第几 行 awk '/关 键字 /{a=NR+2}a==NR {print}' awk 中 引用 变量 a=22aa &&echo 88:99:44|awk -F":"'{print $1,"'"$a"'",$2,$3}' 指 定类 型 (%d 数字,%s 字符) /sbin/ifconfig |awk '{printf("line %d,%s\n",NR,$0)}' awk -v RS=# 'NF{for(i=1;i<=NF;i++)if($i) printf $i;print ""}' 文件 awk 加if 判断 awk '{if ( $6 > 50) print $1 " Too high" ;\ else print "Range is OK"}' file awk '{if ( $6 > 50) { count++;print $3 }\ else { x+5; print $2 }}' file awk 加 循环 awk '{i = 1; while ( i <= NF){ print NF, $i ; i++ }}' file awk '{ for ( i = 1; i <= NF; i++ ) print NF,$i }' file 提 取时 间, 空格 不固 定 ll | awk -F'[]+|[ ][]+' '/^$/{print $8}' 查 看磁 盘空 间 df|awk -F"[]+|%" '$5>14{print $5}' 取 出第 四列 等于 90的 第五 列 awk '$4==90{print $5}' 打 印所 有以 模式 no或so开 头的 行 awk '/^(no|so)/' test 排 列打 印 awk 'END{printf "%-10s%-10s\n%-10s%-10s\n%-10s%-10s\n","server","name","123","12345","234","1234"}' txt awk 'BEGIN{printf "|%-10s|%-10s|\n|%-10s|%-10s|\n|%-10s|%-10s|\n","server","name","123","12345","234","1234"}' awk 'BEGIN{ print "*** 开始***"; print "+-----------------+"; printf "|%-5s|%-5s|%-5s|\n","id","name","ip"; } $1!=1 && NF==4{printf "|%-5s|%-5s|%-5s|\n",$1,$2,$3" "$11} END{ print "+-----------------+"; print "*** 结束***" }' txt awk 中 计算 (求 余数 ) echo list|awk '{ i=($1%100);if ( $i >= 0 ){print $0,$i}}' sub 匹 配第 一次 出现 的符 合模 式的 字符 串, 相当 于 sed 's//' awk '{sub(/Mac/,"Macintosh");print}' urfile #用Macintosh 替换Mac gsub 匹 配所 有的 符合 模式 的字 符串 ,相 当于 sed 's//g' awk '{sub(/Mac/,"MacIntosh",$1); print}' file #第 一个 域内 用 Macintosh 替换Mac 处理sql 语句 cat 1.txt|awk -F"#"'{print "insert into user (user,password,email)values(""'\''"$1"'\'\,'""'\''"$2"'\'\,'""'\''"$3"'\'\)\;'"}' >>insert_1.txt 引 用外 部变 量 awk '{print "'"$a"'","'"$b"'"}' 在END 块 里面 把数 组内 容写 到文 件 awk -F:'{name[x++]=$1};END{for(i=0;itmp 将$1的 值叠 加后 赋给 sum awk 'sum+=$1{print sum}' <a) a=$1 fi}END{print a}' #设 定一 个变 量开 始为 0, 遇到 比该 数大 的值 ,就 赋值 给该 变量 ,直 到结 束 求 最小 值 cat txt |awk 'BEGIN{a=11111}{if ($1tmp 多 选界 面 (圆 括号 ) dialog --title "title" --radiolist "checklist" 20 60 14 tag1 "item1" on tag2 "item2" off 2>tmp 单 选界 面 dialog --title "title" --menu "MENU" 20 60 14 tag1 "item1" tag2 "item2" 2>tmp 进 度条 dialog --title "Installation" --backtitle "Star Linux" --gauge "Linux Kernel" 10 60 50 选择yes/no dialog --title "标题"--backtitle "Dialog" --yesno "说明" 20 60 公告 dialog --title "公 告标 题 "--backtitle "Dialog" --msgbox "内容" 20 60 显 示讯 息后 立即 离开 dialog --title "hey" --backtitle "Dialog" --infobox "Is everything okay?" 10 60 输 入对 话框 dialog --title "hey" --backtitle "Dialog" --inputbox "Is okay?" 10 60 "yes" 显 示文 档内 容 dialog --title "Array 30" --backtitle "All "--textbox /root/txt 20 75 多 条输 入对 话框 dialog --title "Add a user" --form "Add a user" 12 40 4 "Username:" 1 1 "" 1 15 15 0 "Full name:" 2 1 "" 2 15 15 0 2>tmp 星 号显 示输 入 --insecure dialog --title "Password" --insecure --passwordbox "请 输入 密码 " 10 35 选 择日 期 dialog --stdout --title "日历"--calendar "请 选择 " 0 0 9 1 2010 ################################## 脚 本头 # sh为 当前 系统 默认 shell,可 指定 为 bash 等 #!/bin/sh 临 时文 件定 义 errtmp=/tmp/$$`date +%s%N`.errtmp outtmp=/tmp/$$`date +%s%N`.outtmp true > $outtmp 随 机数 $RANDOM 进 程号 $$ 纳秒 date +%N 在 当前 bash 环 境下 读取 并执 行 FileName 中 的命 令 source file-name # 等同. FileName 间 隔睡 眠 5秒 sleep 5 在 接收 到信 号后 将要 采取 的行 动 trap 当 前目 录 $PWD 之 前一 个目 录的 路径 $OLDPWD 返 回上 一个 目录 路径 cd - 重 复打 印 yes 自 动回 答 y或 者其 他 yes |rm -i * 查 看目 录所 有文 件夹 ls -p /home 查 看匹 配完 整路 径 ls -d /home/ 命 令替 换 xargs #将 前面 的内 容, 作为 后面 命令 的参 数 find /-perm +7000 | xargs ls -l 不 换行 执行 下一 句话 echo -n aa;echo bb 使 转义 生效 echo -e "s\tss\n\n\n" 取 字符 串中 字元 echo $a | cut -c2-6 排 列组 合 (括 号内 一个 元素 分别 和其 他括 号内 元素 组合 ) echo {a,b,c}{a,b,c}{a,b,c} 返 回目 录名 pwd | awk -F/'{ print "目 录名 :",$2 }' 替 换上 一条 命令 中的 (foo)一 个短 语 (bar) ^foo^bar^ !!:s/foo/bar/ !!:gs/foo/bar ################################## shell 例子 判 断参 数是 否为 空 -空 退出 并打 印 null #!/bin/sh echo $1 name=${1:?"null"} echo $name ################################## 循 环数 组 for ((i=0;i<${#o[*]};i++)) do echo ${o[$i]} done ################################## 判 断路 径 if [-d /root/Desktop/text/123 ];then echo "找 到了 123" if [-d /root/Desktop/text ] then echo "找 到了 text" else echo "没 找到 text" fi else echo "没 找到 123 文 件夹 " fi ################################## 匹 配替 换密 码 #!/bin/sh cat mailpassword > temp.txt sed -i "s/:/ = /" temp.txt w=`awk -F" = "'{print $1}' temp.txt` for d in $w do grep -w $d svnpassword >/dev/null if [ $? -eq 0 ] then sed -i "/^$d/d" svnpassword grep "^$d" temp.txt >> svnpassword #替 换到 转义 就出 问题 #sed -i "/^$d/c $(grep "^$d" temp.txt)" svnpassword fi done rm temp.txt ################################## 多 行合 并 将 两行 并为 一行 (去 掉换 行符 ) sed '{N;s/\n//}' file 将4行 合并 为一 行 (可 扩展 ) awk '{if (NR%4==0){print $0} else {printf"%s ",$0}}' file 将 所有 行合 并 awk '{printf"%s ",$0}' ################################## shift 用法 ./cs.sh 1 2 3 #!/bin/sh until [ $# -eq 0 ] do echo "第 一个 参数 为 : $1 参 数个 数为 : $#" #shift 命 令执 行前 变量 $1 的 值在 shift 命 令执 行后 不可 用 shift done ################################## 给 脚本 加参 数 getopts #!/bin/sh while getopts :ab: name do case $name in a) aflag=1 ;; b) bflag=1 bval=$OPTARG ;; \?) echo "USAGE:`basename $0` [-a] [-b value]" exit 1 ;; esac done if [!-z $aflag ]; then echo "option -a specified" echo "$aflag" echo "$OPTIND" fi if [!-z $bflag ]; then echo "option -b specified" echo "$bflag" echo "$bval" echo "$OPTIND" fi echo "here $OPTIND" shift $(($OPTIND -1)) echo "$OPTIND" echo " `shift $(($OPTIND -1))` " ################################## 判 断脚 本参 数是 否正 确 ./test.sh -p 123 -P 3306 -h 127.0.0.1 -u root #!/bin/sh if [ $# -ne 8 ];then echo "USAGE: $0 -u user -p passwd -P port -h host" exit 1 fi while getopts :u:p:P:h: name do case $name in u) mysql_user=$OPTARG ;; p) mysql_passwd=$OPTARG ;; P) mysql_port=$OPTARG ;; h) mysql_host=$OPTARG ;; *) echo "USAGE: $0 -u user -p passwd -P port -h host" exit 1 ;; esac done if [-z $mysql_user ] || [-z $mysql_passwd ] || [-z $mysql_port ] || [-z $mysql_host ] then echo "USAGE: $0 -u user -p passwd -P port -h host" exit 1 fi echo $mysql_user $mysql_passwd $mysql_port $mysql_host #结果root 123 3306 127.0.0.1 ################################## dialog 取 值接 值退 出 outtmp=/tmp/outtmp dialog --no-shadow --backtitle "雪松制作"--title "请选择"--ok-label "提交"--cancel-label "取消" --menu "请 选择 " 10 60 0 \ 1 "[目录]"\ q "[退出]"\ 2> $outtmp #判 断提 交取 消 if [ $? == "1" ] then break #continue fi #只 判断 退出 pt=`awk '{print}' $outtmp` if [ $pt == q ] then break fi #判 断操 作 case $pt in 1) #操作 ;; q) exit #break ;; esac ################################## dialog 输 入对 话框 加判 断 while : do outtmp=/tmp/outtmp dialog --title "雪松制作"--form "请输入" 20 60 10 "用户:" 1 2 "" 1 15 35 0 "ID:" 2 2 "" 2 15 35 0 "" 6 2 "" 6 0 0 0 "输入格式如下" 7 2 "" 7 0 0 0 "说明" 8 2 "" 8 0 0 0 2> $outtmp yh=`sed -n '1p' $outtmp` id=`sed -n '2p' $outtmp` if echo $yh | grep -e '^[1-9][0-9]\{0,2\}' > /dev/null 2>&1 then if echo $id | grep -e '^[1-9][0-9]\{0,12\}' > /dev/null 2>&1 then break else echo "您 输入 的不 合法 ,请 从新 输入 ! " fi else echo "您 输入 的不 合法 ,请 从新 输入 ! " fi done ################################## 打 印表 格 #!/bin/sh clear awk 'BEGIN{ print "+--------------------+--------------------+"; printf "|%-20s|%-20s|\n","Name","Number"; print "+--------------------+--------------------+"; }' a=`grep "^[A-Z]" a.txt |sort +1 -n |awk '{print $1":"$2}'` #cat a.txt |sort +1 -n |while read list for list in $a do name=`echo $list |awk -F:'{print $1}'` number=`echo $list |awk -F:'{print $2}'` awk 'BEGIN{printf "|%-20s|%-20s|\n","'"$name"'","'"$number"'"; print "+--------------------+--------------------+"; }' done awk 'BEGIN{ print "*** The End ***" print "" }' ################################## 判 断日 期是 否合 法 #!/bin/sh while read a do if echo $a | grep -q "-"&& date -d $a +%Y%m%d > /dev/null 2>&1 then if echo $a | grep -e '^[0-9]\{4\}-[01][0-9]-[0-3][0-9]$' then break else echo "您 输入 的日 期不 合法 ,请 从新 输入 ! " fi else echo "您 输入 的日 期不 合法 ,请 从新 输入 ! " fi done echo "日 期为 $a" ################################## 打 印日 期段 所有 日期 #!/bin/bash qsrq=20010101 jsrq=20010227 n=0 >tmp while :;do current=$(date +%Y%m%d -d"$n day $qsrq") if [[ $current == $jsrq ]];then echo $current >>tmp;break else echo $current >>tmp ((n++)) fi done rq=`awk 'NR==1{print}' tmp` ################################## 打 印提 示 cat <outtmp #mysql 命令 EOF ################################## 数 学计 算的 小算 法 #!/bin/sh A=1 B=1 while [ $A -le 10 ] do SUM=`expr $A \* $B` echo "$SUM" if [ $A = 10 ] then B=`expr $B + 1` A=1 fi A=`expr $A + 1` done ################################## 竖 行转 横行 (三种) cat file|tr '\n' '' echo $(cat file) #!/bin/sh for i in `cat file` do a=${a}" "${i} done echo $a ################################## 取 用户 的根 目录 #!/bin/bash #showhome.sh IFS=: while read name pass uid gid gecos home shell do echo $home done 执行./showhome.sh < /etc/passwd ################################## 把 汉字 转成 encode 格 式: echo 论坛| tr -d "\n" | xxd -i | sed -e "s/ 0x/%/g" | tr -d ",\n" %c2%db%cc%b3 大 写的 : echo 论坛| tr -d "\n" | xxd -i | sed -e "s/ 0x/%/g" | tr -d ",\n" | tr "[a-f]" "[A-F]" %C2%DB%CC%B3 ################################## 把 带有 大写 字母 的文 件名 改为 全部 小写 #!/bin/bash for f in *;do mv $f `echo $f |tr "[A-Z]""[a-z]"` done ################################## 查 找连 续多 行, 在不 连续 的行 前插 入 #/bin/bash lastrow=null i=0 cat incl|while read line do i=`expr $i + 1` if echo "$lastrow" | grep "#include <[A-Z].h>" then if echo "$line" | grep -v "#include <[A-Z].h>" then sed -i ''$i'i\\/\/All header files are include' incl i=`expr $i + 1` fi fi lastrow="$line" done ################################## ==================================================================== ---------------------------------- 9服 务配 置 ---------------------------------- samba 修 改配 置文 /etc/samba/smb.conf [global] workgroup = WORKGROUP server string = sambaserver security=share hosts allow=网 络主 机 [file] comment=home directories path=/etc/samba/xuesong public=yes writable=yes browseable=yes 重启 service smb restart linux 访问windows 共享 smbclient -L//ip 地 址或 计算 机名 ################################## DNS 服 务器 DNS 主 配置 文件 , moon.com 域 名, zone.moon.com 域 的配 置文 件 vi /etc/named.conf zone "moon.com" IN{ type master; file "zone.moon.com"; allow-update { none; }; }; 测 试主 配置 文件 named-checkconf 新 建域 的配 置文 件 zone.moon.com vi /var/named/chroot/var/named/zone.moon.com $TTL 86400 @INSOA xs. quanzhou722.163.com. ( 20102014 3H 15M 1W 1D ) INNS xs. INMX 5 mail. www INA 192.168.1.209 ftp INA 192.168.1.209 mail INA 192.168.1.209 测试moon.com 域 配置 文件 named-checkzone moon.com /var/named/chroot/var/named/zone.moon.com 建 立域 配置 文件 的软 连接 ln -s /var/named/chroot/var/named/zone.moon.com /var/named/zone.moon.com 重启named 服务 service named restart 设置DNS vi /etc/resolv.conf 测 试解 析是 否成 功 host www.moon.com nslookup www.moon.com ################################## ftp 配置 查看vsftp 是 否安 装 rpm -qa | grep vsftp 主 配置 文件 vi /etc/vsftpd/vsftpd.conf 启动VSFTPD 服务 service vsftpd restart 查看21端 口是 否开 放 netstat -atln |grep 21 1、 匿名 用户 是否 允许 访问 anonymous_enable=YES anon_mkdir_write_enable=YES 2、 本地 用户 管理 local_enable=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list 将 用户 添加 到 vsftpd.chroot_list 文 件中 允许 访问 cat /etc/passwd |grep ":5[0-9][0-9]:" | awk -F:'{print $1}' > /etc/vsftpd.chroot_list 3、 虚拟 用户 管理 (1) 要用 到文 件数 据库 db4 rpm -qa |grep db4 (2) 将帐 户放 入文 本 :( 奇数 行) 用户 名 ( 偶数 行) 密码 vi zhanghu.dat (3) 生成 帐户 的文 件数 据库 db_load -T-t hash -f zhanghu.dat /etc/vsftpd/vsftpd_zhanghu.db (4) 修改 文件 数据 库访 问权 限 chmod 600 /etc/vsftpd/vsftpd_zhanghu.db (5) 手工 建立 虚拟 用户 所需 的 PAM 配 置文 件 vi /etc/pam.d/vsftpd.zhanghu auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_zhanghu account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_zhanghu (6) 添加 一个 虚拟 用户 的入 口帐 户 useradd -d /var/ZhanDian -s /sbin/nologin XuNiRuKou (7) 在主 配置 文件 中添 加虚 拟用 户的 配置 内容 虚 拟用 户的 新添 加配 置 chroot_local_user=YES guest_enable=YES guest_username=XuNiRuKou pam_service_name=vsftpd.zhanghu (8)在vsftpd.conf 配 置文 件中 指定 用户 配置 文件 的目 录 user_config_dir=/etc/vsftpd/vsftpd_zhandian (9) 建立 配置 文件 中指 定用 户配 置文 件的 目录 mkdir /etc/vsftpd/vsftpd_zhandian (10)因 为入 口帐 户是 一个 本地 帐户 ,所 以要 指定 虚拟 用户 具有 本地 帐户 的权 限 ,才 能读 写 自 己 空间 中的 文件 虚 拟用 户就 可以 就拥 有写 权限 virtual_use_local_privs=YES (11) touch /etc/vsftpd/vsftpd_zhandian/xuesong echo "local_root=/var/ZhanDian/xuesong" >> /etc/vsftpd/vsftpd_zhandian/xuesong (12) mkdir /var/ZhanDian/xuesong (13) chown -R XuNiRuKou:XuNiRuKou /var/ZhanDian/ (14) 重启 服务 /etc/init.d/vsftpd restart (15) 客户 端虚 拟账 号测 试 建 立用 户脚 本。 最好 在加 上判 断用 户名 是否 存在 #!/bin/sh echo 请 输入 用户 名 read y echo $y >> zhanghu.dat echo 请 输入 密码 read m echo $m >> zhanghu.dat db_load -T-t hash -f zhanghu.dat /etc/vsftpd/vsftpd_zhanghu.db chmod 600 /etc/vsftpd/vsftpd_zhanghu.db touch /etc/vsftpd/vsftpd_zhandian/$y echo "local_root=/var/ZhanDian/$y" >> /etc/vsftpd/vsftpd_zhandian/$y mkdir /var/ZhanDian/$y chown -R XuNiRuKou:XuNiRuKou /var/ZhanDian/$y /etc/init.d/vsftpd restart ################################## httpd 安装 tar zxvf httpd-2.2.12.tar.gz cd httpd-2.2.12 ./configure --prefix=/usr/local/httpd \ --enable-rewrite make && make install ls /usr/local/ groupadd www useradd -g www -M-s /sbin/nologin www cd /usr/local/httpd/ vi conf/httpd.conf 服 务器 开启 在软 件安 装目 录的 bin 中 ./apachectl start 网 页放 在的 htdocs 中 开 机启 动 vi /etc/rc.d/rc.local /usr/local/httpd/bin/apachectl start 如 果启 动提 示 httpd: Could not reliably determine the server fully qualified domain name, using 127.0.0.1 for ServerName 修改/etc/hosts 计 算机 名 在httpd.conf 中 开启 ServerName 127.0.0.1:80 编 码设 置 AddDefaultCharset UTF-8 AddDefaultCharset GB2312 ################################## mysql 源 码安 装 groupadd mysql useradd mysql -g mysql -M-s /bin/false tar zxvf mysql-5.0.22.tar.gz cd mysql-5.0.22 ./configure --prefix=/usr/local/mysql \ --with-client-ldflags=-all-static \ --with-mysqld-ldflags=-all-static \ --with-mysqld-user=mysql \ --with-extra-charsets=all \ --with-unix-socket-path=/var/tmp/mysql.sock make && make install 生成mysql 用 户数 据库 和表 文件 ,在 安装 包中 输入 。 scripts/mysql_install_db --user=mysql vi ~/.bashrc export PATH="$PATH: /usr/local/mysql/bin" 配 置文 件 ,有large,medium,small 三 个, 根据 机器 性能 选择 cp support-files/my-medium.cnf /etc/my.cnf cp support-files/mysql.server /etc/init.d/mysqld chmod 700 /etc/init.d/mysqld cd /usr/local chmod 750 mysql -R chgrp mysql mysql -R chown mysql mysql/var -R cp /usr/local/mysql/libexec/mysqld mysqld.old ln -s /usr/local/mysql/bin/mysql /sbin/mysql ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin ln -s -f /usr/local/mysql/bin/mysqld_safe /etc/rc.d/rc3.d/S15mysql5 ln -s -f /usr/local/mysql/bin/mysqld_safe /etc/rc.d/rc0.d/K15mysql5 ################################## mysql rpm 安装 到http://www.mysql.com/downloads/mysql 下载mysql RPM(service 和client), MySQL-server-community-5.1.51-1.rhel5.i386.rpm 安 装服 务端 MySQL-client-community-5.1.51-1.rhel5.i386.rpm 安 装客 户端 MySQL-devel-community-5.1.51-1.rhel5.i386.rpm 用于php 的mysql 安装 rpm –ivh MySQL-server-community-5.1.51-1.rhel5.i386.rpm rpm –ivh MySQL-client-community-5.1.51-1.rhel5.i386.rpm rpm –ivh MySQL-devel-community-5.1.51-1.rhel5.i386.rpm /etc/init.d/mysqld start mysqladmin -u root password 'xuesong' mysql -u root -S/var/lib/mysql/mysql.sock -p 数 据目 录 /var/lib/mysql chkconfig --list |grep mysqld chkconfig --level 3 mysqld on 配 置文 件 (日志\pid) /etc/my.cnf ll /usr/bin/mysql* ################################## mysql 常 用命 令 启动mysql 服务 ./mysql/bin/mysqld_safe --user=mysql & 登录mysql 的 命令 格 式: mysql -h 主 机地 址 -u 用 户名 -p 用 户密 码 mysql -h110.110.110.110 -P3306 -uroot -p mysql -uroot -p -S/data1/mysql5/data/mysql.sock -A--default-character-set=GBK 刷新 flush privileges; 显 示所 有数 据库 show databases; 打 开数 据库 use dbname; 显 示选 中数 据库 中所 有的 表 show tables; 查 看表 结构 desc tables; 删 除数 据库 drop database name; 删 除表 drop table name; 创 建数 据库 create database name; mysqladmin -h myhost -u root -p create dbname 创 建表 create table ka(ka_id varchar(6),qianshu int); 插 入字 段 alter table name add column accountid(列名) int(11) NOTNULL(字 段不 为空 ); 不 登陆 mysql 插 入字 段 mysql -uroot -p -S mysql.sock -e "use db;alter table gift add column accountid int(11) NOT NULL;flush privileges;" 查询 select 列 名称 from 表 名称 ; select host,user,password from user; 备 份数 据库 mysqldump -h host -u root -p dbname >dbname_backup.sql mysqlhotcopy 只 能备 份 MyISAM 引擎 /bin/mysqlhotcopy -u root -p 还 原数 据库 mysql -h host -u root -p dbname < dbname_backup.sql 登陆mysql 后 还原 sql 文件 source 路径.sql 赋 予查 询权 限 (没 有用 户, 直接 创建 ) grant select on db.* to log@"%" Identified by "123456"; 赋 予所 有权 限 (没 有用 户, 直接 创建 ) grant all privileges on db.* to log@"IP" identified by '123456' with grant option; 更 改密 码 update user set password=password('新 密码 ') where user='root' mysqladmin -u root password 'xuesong' mysql 查 看所 有用 户的 语句 select user(); 删 除用 户 delete from user where user='sss' and host='localhost' ; 查 看主 从 show slave status\G; 查 看主 从复 制进 程 show processlist; 添 加索 引 解 决停 mysql 速 度慢 ALTERTABLE player ADDINDEX weekcredit_faction_index (weekcredit, faction); 创 建主 从复 制用 户 grant replication slave on *.* to '用户'@'%' identified by '密码'; 备 份表 mysqldump -u root -p -S mysql.sock --default-character-set=utf8 --hex-blob db table1 table1 > /data/db.sql 查 看系 统的 字符 集和 排序 方式 的设 定 SHOWVARIABLESLIKE'character_set_%'; 查看mysql 所 有参 数 show variables; 删 除空 用户 delete from user where user=''; 创 建表 指定 存储 引擎 的类 型 : CREATETABLE innodb (id int, title char(20)) ENGINE = INNODB CREATETABLE myisam (id int, title char(20)) ENGINE = MyISAM 改 变现 有的 表使 用的 存储 引擎 : ALTERTABLE mytable ENGINE = MyISAM 查 询表 引擎 SHOWTABLESTATUS from 数 据库 库名 where Name='表名'; SHOWTABLESTATUS from db where Name='innodb'; 查看mysql 变量 SHOWVARIABLES; 查 询用 户权 限 select host,user,password from user; 查 看表 的引 擎状 态 show table status ################################## gd 安装 分 别安 装组 件 libxml、zlib、freetype、libpng、jpegsrc、gd libxml2-2.6.24.tar.bz2 zlib-1.2.3.tar.gz freetype-2.2.1.tar.gz libpng-1.2.10.tar.gz jpegsrc.v6b.tar.gz gd-2.0.33.tar.gz libxml 安装 tar xzvf libxml2-2.6.24.tar.bz2 tar xvf libxml2-2.6.24.tar cd libxml2-2.6.24 ./configure make make install zlib 安装 tar xzvf zlib-1.2.3.tar.gz cd zlib-1.2.3 ./configure make make install freetype 安装 tar xzvf freetype-2.2.1.tar.gz cd freetype-2.2.1 ./configure --prefix=/usr/local/php/modules/freetype make make install libpng 安装 tar xzvf libpng-1.2.10.tar.gz cd libpng-1.2.10 ./configure --prefix=/usr/local/php/modules/libpng jpeg 安装 mkdir /usr/local/php/modules/jpeg6 mkdir /usr/local/php/modules/jpeg6/bin mkdir /usr/local/php/modules/jpeg6/lib mkdir /usr/local/php/modules/jpeg6/include mkdir /usr/local/php/modules/jpeg6/man mkdir /usr/local/php/modules/jpeg6/man/man1 一 句创 建 mkdir -pv /usr/local/jpeg/{,bin,lib,include,man/man1,man1} tar zxvf jpegsrc.v6b.tar.gz cd jpeg-6b/ ./configure --prefix=/usr/local/php/modules/jpeg6 \ --enable-shared \ --enable-static make make install gd 安装 tar zxvf gd-2.0.33.tar.gz cd gd-2.0.33 ./configure --prefix=/usr/local/gd2 \ --with-jpeg=/usr/local/php/modules/jpeg6 \ --with-png=/usr/local/php/modules/libpng \ --with-zlib \ --with-freetype=/usr/local/php/modules/freetype 修改Makefile 文件231 行 ,重 复的 第二 个 freetype 改为libpng make make install php 安装 tar xvf php-5.1.6.tar cd php-5.1.bz2.6 ./configure --prefix=/usr/local/php \ --sysconfdir=/etc \ --with-apxs2=/usr/local/httpd/bin/apxs \ --with-config-file-path=/usr/local/php/lib \ --with-libxml-dir=/usr/local/libxml2 \ --with-zlib \ --with-jpeg-dir=/usr/local/php/modules/jpeg6 \ --with-freetype-dir=/usr/local/php/modules/freetype \ --with-gd=/usr/local/gd2 \ --with-openssl \ --with-regex=php \ --with-gnu-ld \ --with-tsrm-pthreads \ --with-bz2 \ --with-gettext \ --with-db4=/usr \ --enable-ftp \ --enable-bcmath \ --enable-dba \ --enable-sockets \ --enable-soap \ --enable-zend-multibyte \ --enable-mbstring \ --with-curlwrappers \ --with-curl=/usr/local/curl \ --with-pdo-mysql=/usr/local/mysql \ --with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config make make install cp php.ini-recommended /usr/local/php/lib/php.ini vi /usr/local/php/lib/php.ini 在PHP.IN 添加 [eaccelerator] extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so eaccelerator.shm_size="32" eaccelerator.cache_dir="/usr/local/cache/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" 完 成后 在 /usr/local/httpd/conf/httpd.conf 文 件上 添加 如下 一行 : AddType application/x-httpd-php .php .php5 ln -s /usr/local/php/bin/php /sbin/php vi index.php 重启httpd /usr/local/httpd/bin/apachectl restart 最 后一 步重 新启 动 apache 报 如下 错误 : httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied 不 关闭 SELINUX 的 方法 : # setenforce 0 # chcon -c -v -R-u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so # service httpd restart # setenforce 1 ################################## LINUX 集群 LVS-- ipvsadm 命 令参 考 ipvsadm 的用法和格式如下:ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p [timeout]] [-M netmask] ipvsadm -D-t|u|f virtual-service-address ipvsadm -C ipvsadm -R ipvsadm -S[-n] ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port [-g|i|m] [-w weight] ipvsadm -d -t|u|f service-address -r server-address ipvsadm -L|l [options] ipvsadm -Z[-t|u|f service-address] ipvsadm --set tcp tcpfin udp ipvsadm --start-daemon state [--mcast-interface interface] ipvsadm --stop-daemon ipvsadm -h 命 令选 项解 释: 有两 种命 令选 项格 式, 长的 和短 的, 具有 相同 的意 思。 在实 际使 用时 ,两 种都 可 以。 -A--add-service 在 内核 的虚 拟服 务器 表中 添加 一条 新的 虚拟 服务 器记 录。 也就 是增 加一 台新 的 虚 拟服 务器 。 -E--edit-service 编 辑内 核虚 拟服 务器 表中 的一 条虚 拟服 务器 记录 。 -D--delete-service 删 除内 核虚 拟服 务器 表中 的一 条虚 拟服 务器 记录 。 -C--clear 清 除内 核虚 拟服 务器 表中 的所 有记 录。 -R--restore 恢 复虚 拟服 务器 规则 -S--save 保 存虚 拟服 务器 规则 ,输 出为 -R 选 项可 读的 格式 -a --add-server 在 内核 虚拟 服务 器表 的一 条记 录里 添加 一条 新的 真实 服务 器记 录 。也 就是 在一 个 虚 拟服 务器 中增 加一 台新 的真 实服 务器 -e --edit-server 编 辑一 条虚 拟服 务器 记录 中的 某条 真实 服务 器记 录 -d --delete-server 删 除一 条虚 拟服 务器 记录 中的 某条 真实 服务 器记 录 -L|-l --list 显 示内 核虚 拟服 务器 表 其他的选项:-t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务[vip:port] or [real-server-ip:port] -u --udp-service service-address 说明虚拟服务器提供的是udp 的服务[vip:port] or [real-server-ip:port] -f --fwmark-service fwmark 说 明是 经过 iptables 标 记过 的服 务类 型。 -s --scheduler scheduler 使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,-p --persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同 一 台真 实的 服务 器处 理。 timeout 的 默认 值为 300 秒。 -M--netmask netmask persistent granularity mask -r --real-server server-address 真 实的 服务 器 [Real-Server:port] -g --gatewaying 指定LVS 的 工作 模式 为直 接路 由模 式( 也是 LVS 默 认的 模式 ) -i --ipip 指定LVS 的 工作 模式 为隧 道模 式 -m --masquerading 指定LVS 的 工作 模式 为 NAT 模式 -w --weight weight 真 实服 务器 的权 值 --mcast-interface interface 指 定组 播的 同步 接口 -c --connection 显示LVS 目 前的 连接 如:ipvsadm -L-c ################################## VS-NAT 模式 内 容服 务器 的容 量 10~20 使 用保 留地 址的 LAN 双 向重 写 安装ipvsadm 软件 内 核做 个连 接 ln -s /usr/src/kernels/2.6.18-53.e15-i686/ /usr/src/linux 安 装软 件 查看ipvsadm 版本 ipvsadm --version 建 立脚 本 /etc/rc.d/lvs echo "1" > /proc/sys/net/ipv4/ip_forward #清除ipvsadm 一 系列 规则 ipvsadm -C ipvsadm -A-t 外网IP:端口-s rr ipvsadm -a -t 外网IP:端口-r 内网1服 务器 IP:端口-m -w 1 ipvsadm -a -t 外网IP:端口-r 内网2服 务器 IP:端口-m -w 1 修 改内 网服 务器 ip 和 网关 ,开 启 httpd, 建立 不同 页面 测试 缺 点不 能排 除宕 机的 web 服 务器 ,可 使用 LVS+Keepalived 组合 ################################## heartbeat 心 跳检 测( 双机 热备 ) 安装heartbeat 的rpm 包 需 要先 装 heartbeat-pils 和heartbeat-stonith 两 个包 主 节点 的配 置 安 装完 解压 配置 文件 rpm -q heartbeat -d cd /etc/ha.d cp /usr/share/doc/heartbeat-2.1.3/ha.cf . cp /usr/share/doc/heartbeat-2.1.3/authkeys . cp /usr/share/doc/heartbeat-2.1.3/haresources . 查 看计 算机 名, 记录 下来 uname -n vi ha.cf 打 开日 志记 录文 件 logfile /var/log/ha-log 打 开心 跳检 测 keepalive 2 死 亡时 间 deadtime 30 warntime 10 initdead 120 用 什么 协议 端口 ( udp) udpport 694 使 用哪 个网 卡作 为心 跳检 测 bcast eth1 备 用的 IP ucast eth1 192.168.1.20 主 节点 服务 器 node 主 节点 计算 机名 node 另 一个 计算 机名 ping 外 网测 试 ping 一 个外 网的 IP 配 置验 证模 式 vi authkeys 打开 auth1 1 crc 配 置虚 拟服 务 vi haresources 加 上一 条名 称和 IP 计 算机 名 IP httpd sev1.example.com 222.90.88.88 httpd hosts 文 件要 配置 上两 个机 器的 机器 名和 IP vi /etc/hosts 222.90.88.10 sev1.example.com sev2 192.168.1.10 sev1 222.90.88.20 sev1.example.com sev2 192.168.1.20 sev1 chmod 600 authkeys service heartbeat start 在 配置 备用 节点 直 接拷 贝主 节点 的文 件修 改 安 装完 进入 安装 目录 cd /etc/ha.d 用sftp 登 陆主 机 sftp 222.90.88.10 cd /etc/ha.d get ha.cf get authkeys get hare* bye 只 需要 修改 ha.cf 文件 vi ha.cf ucast eth1 192.168.1.10 启 动备 用节 点 service heartbeat start 测试 主 节点 和负 节点 建立 不同 index 页面 主 节点 虚拟 出外 网 ip eth0:0 停 掉主 节点 任务 重 新访 问 启 动后 在访 问 ################################## DR直 接路 由模 式 同 一网 段的 LAN 内 容服 务器 的容 量 20以上 降低LVF 的 负载 VIP 服 务器 的配 置脚 本 vi /etc/init.d/vip.sh ifconfig eth0:0 222.90.88.88 broadcast 222.90.88.88 netmask 255.255.255.255 up route add -host 222.90.88.88 dev eth0:0 ipvsadm -C ipvsadm -A-t 222.90.88.88:80 -s rr ipvsadm -a -t 222.90.88.88:80 -r 222.90.88.10 -g ipvsadm -a -t 222.90.88.88:80 -r 222.90.88.20 -g ipvsadm chmod 777 /etc/init.d/vip.sh /etc/init.d/vip.sh 服 务器 配置 脚本 vi /etc/init.d/lvs.sh ifconfig lo:0 222.90.88.88 broadcast 222.90.88.88 netmask 255.255.255.255 up route add -host 222.90.88.88 dev lo:0 echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce sysctl -p chmod 777 /etc/init.d/lvs.sh /etc/init.d/lvs.sh 第 二台 服务 器 sftp 222.90.88.10 get /etc/init.d/lvs.sh bye mv lvs.sh /etc/init.d/ /etc/init.d/lvs.sh 测 试两 个服 务器 测试 页面 写入 不同 内容 分 别启 动 httpd 真是IP 可 以分 别访 问不 同服 务器 ,访 问虚 拟 IP88, 则互 相伦 叫 ################################## IP隧 道模 式 WAN(或LAN 也 可) 内 容服 务器 的容 量能 到 100 vip-server vi /etc/init.d/vip.sh ifconfig tunl0 222.90.88.88 broadcast 222.90.88.88 netmask 255.255.255.255 up route add -host 222.90.88.88 dev tunl0 ipvsadm -C ipvsadm -A-t 222.90.88.88:80 -s rr ipvsadm -a -t 222.90.88.88 :80 -r 222.90.88.10 -i ipvsadm -a -t 222.90.88.88 :80 -r 222.90.88.20 -i ipvsadm chmod -R 777 /etc/init.d/vip.sh /etc/init.d/vip.sh 1web 服 务器 ifconfig runl0 222.90.88.88 broadcast 222.90.88.88 netmask 255.255.255.255 up route add -host 222.90.88.88 dev tunl0 echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_annaunce echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_annaunce sysctl -p chmod 777 /etc/init.d/lvs.sh /etc/init.d/lvs.sh 2web 服 务器 sftp 222.90.88.10 get /etc/init.d/lvs.sh bye mv lvs.sh /etc/init.d/ /etc/init.d/lvs.sh 测 试两 个服 务器 测试 页面 写入 不同 内容 分 别启 动 httpd 真是IP 可 以分 别访 问不 同服 务器 ,访 问虚 拟 IP88, 则互 相伦 叫 ################################## sendmail 邮 件服 务器 配置DNS 服 务器 为 mail 服 务器 IP解析 在 配置 文件 中添 加 INMX 5 mail. mail INA 192.168.1.209 重 启服 务 service named restart 测试 ping mail.xuesong.com nslookup mail.xuesong.com mail 服 务器 上设 置 DNS 服 务器 vi /etc/resolv.conf 安 装软 件 sendmail-8.13.8-8.el5.i386.rpm sendmail-cf-8.13.8-8.el5.i386.rpm sendmail-doc-8.13.8-8.el5.i386.rpm yum install dovecot m4 sendmail 配 置文 件目 录: /etc/mail vi local-host-names 添加xuesong.com vi sendmai.mc 去 掉前 面两 个 dnl dnl TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl dnl define('confAUTH_MECHANISMS', 'EXTERNALGSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 修改IP DAEMON_OPTIONS('Port=smtp,Addr=192.168.1.209, Name=MTA')dnl 生成sendmail 配 置文 件 sendmail.cf m4 sendmail.mc > sendmail.cf 查 看启 动级 别 chkconfig --list |grep sas 开 启启 动级 别 3 chkconfig --level 3 saslauthd on makemap hash access.db < access vi /etc/dovecot.conf 打 开下 面一 句话 protocols = imap imaps pop3 pop3s service sendmail restart service dovecot restart group mail useradd -g mail -M-s /sbin/nologin 用 户名 ################################## JDK 安装 rpm -qa|grep jdk 确认gcj 的 版本 号 rpm -qa | grep gcj 卸载gcj yum -y remove java-1.4.2-gcj-compat 从SUN 下载jdk-1_5_0_14-linux-i586-rpm.bin 或jdk-1_5_0_14-linux-i586.bin mkdir /usr/java cd /usr/java 1. jdk-1_5_0_14-linux-i586-rpm.bin 文 件安 装 chmod 777 jdk-1_5_0_14-linux-i586-rpm.bin rpm -ivh jdk-1_5_0_14-linux-i586.rpm 2. jdk-1_5_0_14-linux-i586.bin 文 件安 装 chmod u+x jdk-1_5_0_14-linux-i586.bin ./jdk-1_5_0_14-linux-i586.bin 添 加环 境变 量 vi /etc/profile export JAVA_HOME=/usr/local/java/jdk1.6.0_23 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin reboot 重 启生 效 ################################## xen 管理 查 看虚 拟主 机列 表 xm list 使 用文 本方 式连 接虚 拟系 统 xm console test 启 动虚 拟主 机 xm create test 虚 拟机 和主 机切 换 ctrl+] 关 闭虚 拟主 机 xm shutdown 主 机名 虚 拟机 克隆 (关 闭后 克隆 ) virt-clone -o test -n test1 -f /data/xen/test1.img 虚 拟机 增加 硬盘 dd if=/dev/zero of=/data/xen/test.img bs=1M count=8 编 辑原 来配 置文 件, 添加 新磁 盘文 件 vi /etc/xen/vm11 name = "vm11" uuid = "91b0200b-eb41-46d3-1e11-ee2a87035f24" maxmem = 128 memory = 128 vcpus = 1 bootloader = "/usr/bin/pygrub" on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" vfb = ["type=vnc,vncunused=1,keymap=en-us" ] disk = ["tap:aio:/data/vm11.img,xvda,w", "tap:aio:/data/vm11b.img,xvdb,w" ] vif = ["mac=00:16:36:75:8a:ea,bridge=virbr0,script=vif-bridge" ] 启动XEN 虚 拟机 并登 陆测 试新 加的 磁盘 增 加虚 拟机 网卡 cat /etc/xen/vm11 name = "vm11" uuid = "91b0200b-eb41-46d3-1e11-ee2a87035f24" maxmem = 512 memory = 128 vcpus = 1 bootloader = "/usr/bin/pygrub" on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" vfb = ["type=vnc,vncunused=1,keymap=en-us" ] disk = ["tap:aio:/data/vm11.img,xvda,w" ] vif = ["mac=00:16:36:75:8a:ea,bridge=xenbr0,script=vif-bridge", "mac=00:16:36:75:8a:eb,bridge=xenbr0,script=vif-bridge" ] ====================================================================
还剩67页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 11 金币 [ 分享pdf获得金币 ] 2 人已下载

下载pdf

pdf贡献者

hcpyou

贡献于2012-09-01

下载需要 11 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf