当前位置: 首页 > news >正文

网站方案讲解技巧网页设计实验报告总结

网站方案讲解技巧,网页设计实验报告总结,学做网页的网站,推销产品怎样才能打动客户1 文件管理2 软件管理3 系统管理4 服务管理5 网络管理6 磁盘管理7 用户管理8 脚本相关9 服务配置----------------------------------1 文件管理----------------------------------创建空白文件touch不提示删除非空目录rm -rf 目录名(-r:递归删除-f 强制)####################…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 文本dos2unixlinux 文本转windows 文本unix2dos转换编码iconv -f gbk -t utf8 原.txt 新.txt查看md5 值md5sum硬链接ln符号连接ln -s查看上下翻页且显示行号cat ? | nl |lessq 退出结束状态ctrlz查看文件开头内容head查看文件结尾内容tail -f # 监视日志文件检查文件类型file重命名renamerename 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-editorvi 配置文件vi /etc/vimrc编辑文件vim打开行号:set nu取消行号:set nonu跳转到200200G取消高亮: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 软件管理----------------------------------解包tartar xvf 1.tar -C 目录打包tartar -cvf 1.tar *查看tartar tvf 1.tar给tar 追加文件tar -rvf 1.tar 文件名解包gztar zxvpf gz.tar.gz打包gztar zcvpf gz.tar.gz查看gztar ztvpf gz.tar.gz解压bzip2bzip2 -dv 1.tar.bz2解压gzip 到targzip -dv 1.tar.gz压缩tar 到gzgzip -v 1.tarbzip2 压缩bzip2 -v 1.tar查看bzip2bzcatrpm 安装rpm -ivh卸载rpm -e lynx强制卸载rpm -e lynx --nodeps测试rpm --test lynx查看所有安装的rpm 包rpm -qa查找包是否安装rpm -qa | grep http解压zipunzip zip.zip压缩zipzip 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.rar7z 压缩7z a 7z.7z *7z 解压7z e 7z.7z查看字符行zgrep 字符1.gz打包/home, /etc 但排除/home/dmtsaitar --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/makemake installperl 程序编译perl Makefile.PLmakemake testmake installperl 程序编译python file.py编译c 程序gcc -g hello.c -o hello----------------------------------3 系统管理----------------------------------终端锁屏CtrlS解锁屏CtrlQPS1 环境变量控制提示显示PS1[\u \H \w \A \#]\$开机启动模式vi /etc/inittab查找命令的目录whereis查看当前要执行的命令所在的路径which让部命令后台运行命令将前台放入后台(暂停)ctrlz查看后台运行程序jobs启动后台暂停进程bg 2调回后台进程fg 2后台运行不受shell 退出影响nohup cmd 清空整个屏幕clear重新初始化屏幕reset查询用过的命令默认1000 条history清楚记录命令history -ccat /root/.bash_history查看登陆过的用户信息lastlast -n userwho /var/log/wtmp列出登录系统失败的用户相关信息lastb -a/var/log/btmp防火墙日志tail -f /var/log/messagesssh 日志tail -f /var/log/secure随机生成密码mkpasswd-l 位数-C 大小-c 小写-d 数字-s 特殊字符mkpasswd -l 8 -C 2 -c 2 -d 4 -s 0当前在线用户whow查看当前用户名whoami查看登陆用户名logname显示月历cal查看服务器启动时间uptime设日期date -s 20091112设时间date -s 18:30:50同步时间/usr/sbin/ntpdate stdtime.gov.hk7 天前日期date -d 7 days ago %Y%m%d日期格式转换date %Y-%m-%d -d 20110902日期和时间date %Y-%m-%d_%X查看时间hwclock账户影子文件/etc/shadow列出所有语系locale -a修改语言LANGen修改编码vi /etc/sysconfig/i18nutf-8 --- GBK强制字符集export LC_ALLC查询静态主机名vi /etc/hosts最大连接/etc/security/limits.confgrub 开机启动项添加/etc/grub.conftitle ms-dosrootnoverify (hd0,0)chainloader 1别名alias监测命令watch查看Linux 版本信息uname -acat /proc/versioncat /etc/issuelsb_release -a查看cpu 信息more /proc/cpuinfo查看cpu 型号和逻辑核心数cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -ccpu 运行的位数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 flagspae 支持半虚拟化Intel VT 支持全虚拟化查看内存信息more /proc/meminfo查看全面硬件信息dmidecode查看服务器型号dmidecode | grep Product Name查看软raid 信息cat /proc/mdstat查看硬raid 信息cat /proc/scsi/scsi查看硬件信息lspci查看是否支持raidlspci|grep RAID显示开机信息dmesg进程树pstree每隔一秒报告虚拟内存统计信息9 次vmstat 1 9把180 号进程的优先级加1renice 1 180终止某个PID 进程kill -9 PID指定三天后下午5:00 执行/bin/lsat 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 -anlpsudo 命令权限添加visudo用户别名(可用all)NOPASSWD:命令1命令2wangming linuxfanNOPASSWD:/sbin/apache start,/sbin/apache restartUserName ALL(ALL) ALL制作补丁diff suzu.c suzu2.c sz.patch安装补丁patch suzu.c sz.patch显示打开指定文件的所有进程lsof 文件查看端口的进程lsof -i :32768显示消耗内存最多的10 个运行中的进程以内存使用量排序.cpu 3ps aux |grep -v USER | sort -nk 4 | tail查看内核模块lsmodyum 扩展源http://download.fedoraproject.org/pub/epelwget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpmrpm -Uvh epel-release-5-4.noarch.rpm升级所有包版本,依赖关系系统版本内核都升级yum -y update升级指定的软件包yum -y update 软件包名不改变软件设置更新软件系统版本升级内核不改变yum -y upgradeyum 搜索相关包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% hi0.0% si最后两行为内存信息。内容如下Mem: 191272k total 物理内存总量173656k used 使用的物理内存总量17616k free 空闲内存总量22052k buffers 用作内核缓存的内存量Swap: 192772k total 交换区总量0k used 使用的交换区总量192772k free 空闲交换区总量123988k cached 缓冲的交换区总量。内存中的内容被换出到交换区而后又被换入到内存但使用过的交换区尚未被覆盖该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。序号列名含义a PID 进程idb PPID 父进程idc RUSER Real user named UID 进程所有者的用户ide 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。VIRTSWAPRESp SWAP 进程使用的虚拟内存中被换出的大小单位kb。q RES 进程使用的、未被换出的物理内存大小单位kb。RESCODEDATAr CODE 可执行代码占用的物理内存大小单位kbs DATA 可执行代码以外的部分(数据段栈)占用的物理内存大小单位kbt SHR 共享内存大小单位kbu nFLT 页面错误次数v nDRT 最后一次写入到现在被修改过的页面数。w S 进程状态。D不可中断的睡眠状态R运行S睡眠T跟踪/停止Z僵尸进程x COMMAND 命令名/命令行y WCHAN 若该进程在睡眠则显示睡眠中的系统函数名z Flags 任务标志参考sched.h##################################iptables内建三个表nat mangle 和filterfilter 预设规则表有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 -P INPUT ACCEPT#导入防火墙规则iptables-restore 规则文件#保存防火墙设置/etc/init.d/iptables save#重启防火墙服务/etc/init.d/iptables restart#查看规则iptables -L -niptables -L -n --line-numbers#从某个规则链中删除一条规则iptables -D INPUT --dport 80 -j DROPiptables -D INPUT 8#取代现行规则iptables -R INPUT 8 -s 192.168.0.1 -j DROP#插入一条规则iptables -I INPUT 8 --dport 80 -j ACCEPT#查看转发iptables -t nat -nL#在内核里打开ip 转发功能echo 1 /proc/sys/net/ipv4/ip_forward###################################允许本地回环iptables -A INPUT -s 127.0.0.1 -p tcp -j ACCEPT#允许已建立的或相关连的通行iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT#开放对外访问iptables -P OUTPUT ACCEPT#指定某端口针对IP 开放iptables -A INPUT -s 192.168.10.37 -p tcp --dport 22 -j ACCEPT#允许的IP 或IP 段访问iptables -A INPUT -s 192.168.10.37 -p tcp -j ACCEPT#开放对外开放端口iptables -A INPUT -p tcp --dport 80 -j ACCEPT#关闭入口iptables -P INPUT DROP#关闭转发iptables -P FORWARD DROP##################################iptables 规则文件# Generated by iptables-save v1.2.11 on Fri Feb 9 12:10:37 2007*filter:INPUT DROP [637:58967]:FORWARD DROP [0:0]:OUTPUT ACCEPT [5091:1301533]#允许的IP 或IP 段访问-A INPUT -s 127.0.0.1 -p tcp -j ACCEPT-A INPUT -s 192.168.0.0/255.255.0.0 -p tcp -j ACCEPT#开放对外开放端口-A INPUT -p tcp --dport 80 -j ACCEPT#指定某端口针对IP 开放-A INPUT -s 192.168.10.37 -p tcp --dport 22 -j ACCEPT#拒绝所有协议(INPUT 允许的情况)#-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,URG RST -j DROP# 允许已建立的或相关连的通行iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT#拒绝ping-A INPUT -p tcp -m tcp -j REJECT --reject-with icmp-port-unreachableCOMMIT# Completed on Fri Feb 9 12:10:37 2007##################################常用实例#允许在IP 访问指定端口iptables -A INPUT -s 192.168.62.1 -p tcp --dport 22 -j ACCEPT#禁止使用某端口iptables -A INPUT -p tcp --dport 22 -j DROPiptables -A INPUT -p tcp --dport 31 -j REJECT#禁止QQ 端口iptables -D FORWARD -p udp --dport 8000 -j REJECT#禁止icmp 端口#除192.168.62.1 外禁止其它人ping 我的主机iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type 8 -j ACCEPTiptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP#其它情况不允许iptables -A INPUT -i eth0 -j DROP#禁止指定IP 访问iptables -A INPUT -p tcp -s IP -j DROP#禁止指定IP 访问端口iptables -A INPUT -p tcp -s IP --dport port -j DROP#阻止所有没有经过你系统授权的TCP 连接iptables -t filter -A INPUT -i eth0 -p tcp --syn -j DROP#添加网段转发iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE#IP 包流量限制iptables -A INPUT -f -m limit --limit 100/s --limit-burst 100 -j ACCEPTiptables -A INPUT -i eth0 -p icmp -j DROP#端口映射iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT --to-ports3128#列出某规则链中的所有规则iptables -L INPUT#删除某个规则链,不加规则链清除所有非内建的iptables -X allowed#将封包计数器归零iptables -Z INPUT#定义新的规则链iptables -N allowed#定义过滤政策iptables -P INPUT DROP#修改某自订规则链的名称iptables -E allowed disallowed#比对通讯协议类型是否相符#-p ! tcp 排除tcp 以外的udp、icmp。-p all 所有类型iptables -A INPUT -p tcp#比对封包的来源IP#192.168.0.0/24 ! 反向对比iptables -A INPUT -s 192.168.1.1#比对封包的目的地IPiptables -A INPUT -d 192.168.1.1#比对封包是从哪片网卡进入#eth表示所有的网卡iptables -A INPUT -i eth0#比对封包要从哪片网卡送出iptables -A FORWARD -o eth0#比对某段时间内封包的平均流量#例子是用来比对每小时平均流量是否超过一次3 个封包。除了每小时平均次外也可以每秒钟、每分钟或每天平均一次默认值为每小时平均一次参数如后 /second、/minute、/day。除了进行封数量的比对外设定这个参数也会在条件达成时暂停封包的比对动作以避免因骇客使用洪水攻击法导致服务被阻断。iptables -A INPUT -m limit --limit 3/hour#比对瞬间大量封包的数量#例子是用来比对一次同时涌入的封包是否超过5 个(这是默认值)超过此上限的封包将被直接丢弃。使用效果同上。iptables -A INPUT -m limit --limit-burst 5#比对来自本机的封包#是否为某特定使用者所产生的这样可以避免服务器使用root 或其它身分将敏感数据传送出可以降低系统被骇的损失。可惜这个功能无法比对出来自其它主机的封包。iptables -A OUTPUT -m owner --uid-owner 500#比对来自本机的封包iptables -A OUTPUT -m owner --gid-owner 0iptables -A OUTPUT -m owner --pid-owner 78iptables -A OUTPUT -m owner --sid-owner 100#用来比对联机状态iptables -A INPUT -m state --state RELATED,ESTABLISHED联机状态共有四种INVALID、ESTABLISHED、NEW 和RELATED。#-j 参数指定进行的处理动作处理动作包括 ACCEPT、REJECT、DROP、REDIRECT、MASQUERADE、LOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、MARK,说明iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset#可以传送的封包有几个选择ICMP port-unreachable、ICMP echo-reply 或是tcp-resetREDIRECT 将封包重新导向到另一个端口(PNAT)iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080MASQUERADE 改写封包来源IP 为防火墙NIC IPiptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 1024-31000LOG 将封包相关讯息纪录在/var/log 中iptables -A INPUT -p tcp -j LOG --log-prefix INPUT packetsSNAT 改写封包来源IP 为某特定IP 或IP 范围iptables -t nat -A POSTROUTING -p tcp-o eth0 -j SNAT --to-source194.236.50.155-194.236.50.160:1024-32000DNAT 改写封包目的地IP 为某特定IP 或IP 范围iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination192.168.1.1-192.168.1.10:80-100MIRROR 镜射封包QUEUE 中断过滤程序RETURN 结束在目前规则炼中的过滤程序MARK 将封包标上某个代号##################################iptables 配置实例允许某段IP 访问任何端口iptables -A INPUT -s 192.168.0.3/24 -p tcp -j ACCEPT设定预设规则(拒绝所有的数据包再允许需要的,如只做WEB 服务器.还是推荐三个链都是DROP)iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT ACCEPT(注:意直接设置这三条完已经掉线了)开启22 端口iptables -A INPUT -p tcp --dport 22 -j ACCEPT如果OUTPUT 设置成DROP 的要写上下面一条iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT(注:,不写导致无法SSH.其他的端口一样,OUTPUT 设置成DROP 的话,也要添加一条链)如果开启了web 服务器,OUTPUT 设置成DROP 的话,同样也要添加一条链iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT做WEB 服务器,开启80 端口,其他同理iptables -A INPUT -p tcp --dport 80 -j ACCEPT做邮件服务器,开启25,110 端口iptables -A INPUT -p tcp --dport 110 -j ACCEPTiptables -A INPUT -p tcp --dport 25 -j ACCEPT允许icmp 包通过,允许pingiptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT 设置成DROP 的话)iptables -A INPUT -p icmp -j ACCEPT (INPUT 设置成DROP 的话)允许loopback!(不然会导致DNS 无法正常关闭等问题)IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)----------------------------------4 服务管理----------------------------------启动sendmail 服务./sendmail start/etc/init.d/sendmail start关闭sendmail 服务./sendmail stop查看sendmail 服务当前状态./sendmail status发送邮件echo 内容| /bin/mail -s 标题 收件箱打开服务列表需要打*ntsysv让某个服务不自动启动35 指的是运行级别httpdchkconfig --level 35 httpd off让某个服务自动启动httpdchkconfig --level 35 httpd on查看所有服务的启动状态chkconfig --list查看某个服务的启动状态chkconfig --list |grep httpd查看服务的状态chkconfig –-list [服务名称]设置非独立服务启状态chkconfig 服务名on|off|set开启mysql 后台运行/usr/local/mysql/bin/mysqld_safe --usermysql 开机启动执行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-eth0DEVICEeth0BOOTPROTOnoneBROADCAST192.168.1.255HWADDR00:0C:29:3F:E1:EAIPADDR192.168.1.55NETMASK255.255.255.0NETWORK192.168.1.0ONBOOTyesTYPEEthernetGATEWAY192.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设置DNSvi /etc/resolv.conf禁用网卡ifconfig eth0 down启用网卡ifconfig eth0 upifup 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 robotsoff -U Mozilla www.example.com通过DNS 来读取Wikipedia 的hacker 词条dig short txt hacker.wp.dg.cxhost -t txt hacker.wp.dg.cxrz ssh 小文件上传sz ssh 小文件下载从linux ssh 登录另一台linuxssh -p 22 wang192.168.1.209利用ssh 操作远程主机ssh -p 22 root192.168.1.209 环境变量中脚本把本地文件拷贝到远程主机scp -P 22 文件rootip:/目录ssh 连接不提示yesssh -o StrictHostKeyCheckingno 192.168.70.130把远程指定文件拷贝到本地scp root192.168.1.209:远程目录本地目录通过SSH 挂载远程主机上的文件夹sshfs nameserver:/path/to/folder /path/to/mount/point卸载的话使用fusermount 命令fusermount -u /path/to/mount/point用DIFF 对比远程文件跟本地文件ssh userhost cat /path/to/remotefile | diff /path/to/localfile -用SSH 创建端口转发通道ssh -N -L2001:remotehost:80 usersomemachine嵌套使用SSHssh -t host_A ssh host_B密钥信任ssh-keygen –t rsavi 用户/.ssh/authorized_keys远程关掉一台WINDOWS 机器net rpc shutdown -I IP_ADDRESS -U username%password禁pingecho 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 的扫描判断是否是windowsnmap -sF 192.168.1.1-111nmap -sX 192.168.1.1-111nmap -sN 192.168.1.1-111不ping 直接扫描nmap -P0 192.168.1.1-111详细信息nmap -d 192.168.1.1-111无法找出真正扫描主机隐藏IPnmap -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-labelNTFS 添加卷标ntfslabel -v /dev/sda8 new-labelext2 分区转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-depth1挂载光驱mount -t iso9660 /dev/dvd /mnt挂载镜像文件mount -o loop /software/rhel4.6.iso /mnt/##################################磁盘grub 开机引导项添加/etc/grub.conftitle ms-dosrootnoverify (hd0,0)chainloader 1##################################建立软RAID1两块硬盘分区一样分别新建分区文件类型为software RAID创建两个就点击raid 合并为RAID1这里的挂载点为正常linux 目录查看raid 工作状态cat /proc/mdstat两个盘都加grub 引导查看cat /boot/grub/grub.confgrubroot (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/sdcp # 打印分区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)\love\ 词尾定位符(支持vi 和grep)love\x\{m\} 重复出现m 次x\{m,\} 重复出现至少m 次x\{m,n\} 重复出现至少m 次不超过n 次X? 匹配出现零次或一次的大写字母XX 匹配一个或多个字母X(abc|def) 匹配一连串的最少一个 abc 或defabc 和def 将匹配\d 匹配任意一位数字\D 匹配任意单个非数字字符\w 匹配任意单个字母数字字符同义词是[:alnum:]\s 匹配任意的空白符\b 匹配单词的开始或结束[:alpha:] 代表所有字母不论大小写[:lower:] 表示小写字母[:upper:] 表示大写字母[:digit:] 表示数字字符() 括号内的字符为一组##################################基本流程结构if [ $a $b ]thenecho 等于elseecho 不等于fi##################################case $xs in0) echo 0 ;;1) echo 1 ;;*) echo 其他 ;;esac##################################num1# while true 等同while :while [ $num -lt 10 ]doecho $num((num$num2))done##################################grep a a.txt | while read adoecho $adone##################################wawk -F : {print $1} cfor d in $wdo$ddone##################################for ((i0;i${#o[*]};i))doecho ${o[$i]}done##################################until 循环# 当command 不为0 时until commanddobodydone##################################流程控制break N # 跳出几层循环continue N # 跳出几层循环循环次数不变continue # 重新循环次数不变##################################变量将变量A 赋值为字串Aa b c defA命令间接调用eval a\ a 将变量A 定义为組数 A(a b c def) set a1 a2 a3 a4 $1 $2 $* 在子shell 中运行 (abbk) 定义变量类型 declare 或者typeset -r 只读(readonly 一样) -i 整形 -a 数组 -f 函数 -x export declare -i n0 env # 查看环境变量 env | grep name # 查看定义的环境变量 set # 查看环境变量和本地变量 read name # 输入变量 readonly name # 把name 这个变量设置为只读变量,不允许再次设置 readonly # 查看系统存在的只读文件 export name # 变量name 由本地升为环境 export nameRedHat # 直接定义name 为环境变量 export Stat$nu2222 # 变量引用变量赋值 unset name # 变量清除 export -n name # 去掉只读变量 shift # 用于移动位置变量,调整位置变量,使$3 的值赋给$2.$2 的值赋予$1 name  0 # 将字符串转换为数字 number   # 将数字转换成字符串 常用系统变量 $0 # 脚本启动名(包括路径) basename $0 # 只取脚本名 $n # 当前程式的第n 个参数,n1,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 条件判断# 符号[ ] 等同testexpression 为字符串操作-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 5echo $?1判断字符串长度是否为0test -n hello0##################################重定向# 标准输出stdout 和标准错误stderr 标准输入stdincmd 1 fiel # 把标准输出重定向到file 文件中cmd file 21 # 把标准输出和标准错误一起重定向到file 文件中cmd 2 file # 把标准错误重定向到file 文件中cmd 2 file # 把标准错误重定向到file 文件中(追加)cmd file 21 # 把标准输出和标准错误一起重定向到file 文件中(追加)cmd file file2 # cmd 命令以file 文件作为stdin(标准输入)以file2 文件作为标准输出cat file # 以读写的方式打开filecmd file cmd # 命令以file 文件作为stdincmd delimitercmd; #从stdin 中读入直至遇到delimiter 分界符。delimitern # 使用系统调用dup (2) 复制文件描述符n 并把结果用作标准输出n # 标准输入复制自文件描述符n- # 关闭标准输入键盘- # 关闭标准输出n- # 表示将n 号输入关闭n- # 表示将n 号输出关闭##################################运算符$[]等同于$(()) # $[]表示形式告诉shell 求中括号中的表达式的值~var # 按位取反运算符,把var 中所有的二进制为1 的变为0,为0 的变为1var\str # 左移运算符,把var 中的二进制位向左移动str 位,忽略最左端移出的各位,最右端的各位上补上0 值,每做一次按位左移就有var 乘2varstr # 右移运算符,把var 中所有的二进制位向右移动str 位,忽略最右移出的各位,最左的各位上补0,每次做一次右移就有实现var 除以2varstr # 与比较运算符,var 和str 对应位,对于每个二进制来说,如果二都为1,结果为1.否则为0var^str # 异或运算符,比较var 和str 对应位,对于二进制来说如果二者互补,结果为1,否则为0var|str # 或运算符,比较var 和str 的对应位,对于每个二进制来说,如二都该位有一个1或都是1,结果为1,否则为0运算符的优先级级别运算符说明1 ,,-,/,%,*,,^,|,, # 赋值运算符2 || # 逻辑或前面不成功执行3 # 逻辑与前面成功后执行4 | # 按位或5 ^ # 按异位与6 # 按位与7 ,! # 等于/不等于8 ,,, # 大于或等于/小于或等于/大于/小于9 \, # 按位左移/按位右移(无转意符号)10 ,- # 加减11 *,/,% # 乘,除,取余12 ! ,~ # 逻辑非,按位取反或补码13 -, # 正负##################################数学运算$(( )) 整数运算符号大致有这些 - * / **分別为加、減、乘、除、密运算 | ^ !分別为AND、OR、XOR、NOT 运算% 余数运算运算letlet x16/4let x5**5手工命令行计数器exprSUMexpr 2 \* 3计算字串长度expr length bkeep zbb抓取字串expr substr bkeep zbb 4 9抓取第一个字符数字串出现的位置expr index bkeep zbb e整数运算expr 14 % 9expr 30 / 3 / 2 # 运算符号有空格增量计数(加循环即可)LOOP0LOOPexpr $LOOP 1数值测试(如果试图计算非整数则会返回错误。)rr3.4expr $rr 1expr: non-numeric argumentrr5expr $rr 16模式匹配(可以使用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.txttr -s [\n] plan.txt删除文件中的^M并代之以换行tr -s [\015] [\n] filetr -s [\r] [\n] file替换passwd 文件中所有冒号代之以tab 键tr -s [:] [\011] /etc/passwdtr -s [:] [\t] /etc/passwd增加显示路径可读性echo $PATH | tr : \ntr 在vi 内使用在tr 前加处理行范围和感叹号($表示最后一行)1,$!tr -d \tMac - UNIXtr \r \nmacfile unixfileUNIX - Mactr \n \runixfile macfileDOS - UNIXMicrosoft DOS/Windows 约定文本的每行以回车字符(\r)并后跟换行符(\n)结束tr -d \rdosfile unixfileUNIX - DOS在这种情况下需要用awk因为tr 不能插入两个字符来替换一个字符awk { print $0\r }unixfile 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 /关键字/{aNR2}aNR {print}awk 中引用变量a22aa 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(i1;iNF;i)if($i) printf $i;print } 文件awk 加if 判断awk {if ( $6 50) print $1 Too high ;\else print Range is OK} fileawk {if ( $6 50) { count;print $3 } \else { x5; print $2 } } fileawk 加循环awk {i 1; while ( i NF ) { print NF, $i ; i } } fileawk { for ( i 1; i NF; i ) print NF,$i } file提取时间空格不固定ll | awk -F[ ]|[ ][ ] /^$/{print $8}查看磁盘空间df|awk -F[ ]|% $514{print $5}取出第四列等于90 的第五列awk $490{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} txtawk 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 NF4{printf |%-5s|%-5s|%-5s|\n,$1,$2,$3 $11}END{print -----------------;print *** 结束*** } txtawk 中计算(求余数)echo list|awk { i($1%100);if ( $i 0 ) {print $0,$i}}sub 匹配第一次出现的符合模式的字符串相当于sed s//awk {sub(/Mac/,Macintosh);print} urfile#用Macintosh 替换Macgsub 匹配所有的符合模式的字符串相当于sed s//gawk {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(i0;iNR;i)print i,name[i]} data tmp将$1 的值叠加后赋给sumawk sum$1{print sum} EOF1 11 1112 22 2228 33 33310 44 444EOF加入END 只打印最后的结果awk {sum2$2;countcount1}END{print sum2,sum2/count} EOF1324236000: 4.8726625090e06 1.4806911317e071324236300: 3.1952608823e05 1.3144868085e071324236600: 5.0792587262e05 1.4931600767e07EOF#结果中第一个值是$2 的总和第二个值是$3 的总和第三个值是$2 总和除个数平均值 第四个值是$3 总和除个数平均值#e06 是科学计数法表示乘以10 的6 次方awk {sum2$2;countcount1}END{print sum2,sum2/count} EOF1: 3 302: 6 603: 9 90EOF列求和cat txt |awk {a$1}END{print a}列求平均值cat txt |awk {a$1}END{print a/NR}列求最大值cat txt |awk BEGIN{a0}{if ($1a) a$1 fi}END{print a}#设定一个变量开始为0遇到比该数大的值就赋值给该变量直到结束求最小值cat txt |awk BEGIN{a11111}{if ($1a) a$1 fi}END{print a}判断$1 是否整除(awk 中定义变量引用时不能带$ )cat txt |awk { i$1%10;if ( i 0 ) {print i}}##################################sed 用法-n 输出由编辑指令控制(取消默认的输出,必须与编辑指令一起配合)-i 直接对文件操作-e 多重编辑p 打印d 删除s 替换g 配合s 全部替换i 行前插入a 行后插入r 读y 转换q 退出.. 保存..作为标签1(\1) 代表查找的串内容* 前导符.* 匹配任意多个字符模式空间(两行两行处理)N 将第二行追加到第一行将换行符\n 替换空极为一行n 将第二行覆盖到第一行h 把模式空间里的行拷贝到暂存空间H 把模式空间里的行追加到暂存空间g 用暂存空间的内容替换模式空间的行G 把暂存空间的内容追加到模式空间的行后x 将暂存空间的内容于模式空间里的当前行互换 对所选行以外的所有行应用命令。注意暂存空间里默认存储一个空行。sed 命令替换并打印出替换行( -i 改变文本)sed -n -e {s/文本(正则表达式)/替换的文本/p}打印并删除正则表达式的那部分内容sed -n -e {s/^ *[0-9]*//p}删除含关键的一行sed -i /^$f/d a直接对文本替换sed -i s//:/ c找到pearls 开头在行尾加jcuised -i /^pearls/s/$/jcui/ ab.txt标签(保存mar作为标签1)sed -n s/margot/\1ianne/p 文件echo margot|sed -n s/mar.*t/\1\2/psed -e s/^[a−zA−Z]\ [a−zA−Z]\.∗/\2 \1\3/g file在以[0-9][0-9]结尾的行后加5sed s/[0-9][0-9]$/5 文件打印从第5 行到以no 开头行之间的所有行sed -n 5,/^no/p 文件修改west 和east 之间的所有行在结尾处加*VACA*sed /west/,/east/s/$/*VACA*/ 文件多重编辑(先删除1-3 行在将1 替换成2)sed -e 1,3d -e s/1/2/ 文件找到含suan 的行在后面加上读入的文件内容sed /suan/r 读入文件 文件找到含no 的行写入到指定文件中sed -n /no/w 写入文件 文件取出第一组数字并且忽略掉开头的0sed s/[^1-9]*[0−9]\.*/\1/打印1 和3 之间的行sed /1/,/3/p file取出指定行sed -n 1p 文件在第5 行之前插入行sed 5i\aaa file在第5 行之后抽入行sed 5a\aaa file在匹配行前插入一行echo a|sed -e /a/i\b在匹配行后插入一行echo a|sed -e /a/a\becho a|sed s/a/\nb/g引用外部变量sed -n $a,10psed -n $a,10p取用户家目录(匹配不为/的字符和匹配:到结尾的字符全部删除)sed -n {s/^[^\/]*//;s/\:.*//;p} /etc/passwd将换行符转换为换行echo abcd\\nabcde |sed s/\\n//g |tr \n删除掉后面所有字符和空行sed -e s/.*//g -e /^$/d将几行合并成一行echo $(cat file)|sed s/ //g取一列最大值cat tmp|awk {print $1}|sort -n|sed -n $p查找属主权限为7 的文件ls -l|sed -n /^.rwx.*/p在a 前面加#号echo a|sed -e s/a/#/g##################################图形dialog多选界面[方括号]dialog --title Check me --checklist Pick Numbers 15 25 3 1 one off 2 two on 3 threeoff 2tmp多选界面(圆括号)dialog --title title --radiolist checklist 20 60 14 tag1 item1 on tag2 item2 off 2tmp单选界面dialog --title title --menu MENU 20 60 14 tag1 item1 tag2 item2 2tmp进度条dialog --title Installation --backtitle Star Linux --gauge Linux Kernel 10 60 50选择yes/nodialog --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 Fullname: 2 1 2 15 15 0 2tmp星号显示输入--insecuredialog --title Password --insecure --passwordbox 请输入密码 10 35选择日期dialog --stdout --title 日历 --calendar 请选择 0 0 9 1 2010##################################脚本头# sh 为当前系统默认shell,可指定为bash 等#!/bin/sh临时文件定义errtmp/tmp/ ‘dateouttmp/tmp/ date %s%N.outtmptrue $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/shecho $1name${1:?null}echo $name##################################循环数组for ((i0;i${#o[*]};i))doecho ${o[$i]}done##################################判断路径if [ -d /root/Desktop/text/123 ];thenecho 找到了123if [ -d /root/Desktop/text ]then echo 找到了textelse echo 没找到textfielse echo 没找到123 文件夹fi##################################匹配替换密码#!/bin/shcat mailpassword temp.txtsed -i s/:/ / temp.txtwawk -F {print $1} temp.txtfor d in $wdogrep -w $d svnpassword /dev/nullif [ $? -eq 0 ]thensed -i /^$d/d svnpasswordgrep ^$d temp.txt svnpassword#替换到转义就出问题#sed -i /^$d/c $(grep ^$d temp.txt) svnpasswordfidonerm temp.txt##################################多行合并将两行并为一行(去掉换行符)sed {N;s/\n//} file将4 行合并为一行(可扩展)awk {if (NR%40){print $0} else {printf%s ,$0}} file将所有行合并awk {printf%s ,$0}##################################shift 用法./cs.sh 1 2 3#!/bin/shuntil [ $# -eq 0 ]doecho 第一个参数为: $1 参数个数为: $##shift 命令执行前变量$1 的值在shift 命令执行后不可用shiftdone##################################给脚本加参数getopts#!/bin/shwhile getopts :ab: namedocase $name ina) aflag1;;b) bflag1bval$OPTARG;;\?) echo USAGE:basename $0 [-a] [-b value]exit 1;;esacdoneif [ ! -z $aflag ] ; thenecho option -a specifiedecho $aflagecho $OPTINDfiif [ ! -z $bflag ] ; thenecho option -b specifiedecho $bflagecho $bvalecho $OPTINDfiecho here $OPTINDshift $(($OPTIND -1))echo $OPTINDecho shift $(($OPTIND -1)) ##################################判断脚本参数是否正确./test.sh -p 123 -P 3306 -h 127.0.0.1 -u root#!/bin/shif [ $# -ne 8 ];thenecho USAGE: $0 -u user -p passwd -P port -h hostexit 1fiwhile getopts :u:p:P:h: namedocase $name inu)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 hostexit 1;;esacdoneif [ -z $mysql_user ] || [ -z $mysql_passwd ] || [ -z $mysql_port ] || [ -z $mysql_host ]thenecho USAGE: $0 -u user -p passwd -P port -h hostexit 1fiecho $mysql_user $mysql_passwd $mysql_port $mysql_host#结果root 123 3306 127.0.0.1##################################dialog 取值接值退出outtmp/tmp/outtmpdialog --no-shadow --backtitle 雪松制作 --title 请选择 --ok-label 提交 --cancel-label 取消--menu 请选择 10 60 0 \1 [目录] \q [退出] \2 $outtmp#判断提交取消if [ $? 1 ]thenbreak#continuefi#只判断退出ptawk {print} $outtmpif [ $pt q ]thenbreakfi#判断操作case $pt in1)#操作;;q)exit #break;;esac##################################dialog 输入对话框加判断while :doouttmp/tmp/outtmpdialog --title 雪松制作 --form 请输入 20 60 10 用户: 1 2 1 15 35 0 ID: 2 2 215 35 0 6 2 6 0 0 0 输入格式如下 7 2 7 0 0 0 说明 8 2 8 0 00 2 $outtmpyhsed -n 1p $outtmpidsed -n 2p $outtmpif echo $yh | grep -e ^[1-9][0-9]\{0,2\} /dev/null 21thenif echo $id | grep -e ^[1-9][0-9]\{0,12\} /dev/null 21thenbreakelseecho 您输入的不合法请从新输入fielseecho 您输入的不合法请从新输入fidone##################################打印表格#!/bin/shclearawk BEGIN{print ----------------------------------------;printf |%-20s|%-20s|\n,Name,Number;print ----------------------------------------;}agrep ^[A-Z] a.txt |sort 1 -n |awk {print $1:$2}#cat a.txt |sort 1 -n |while read listfor list in $adonameecho $list |awk -F: {print $1}numberecho $list |awk -F: {print $2}awk BEGIN{printf |%-20s|%-20s|\n,$name,$number;print ----------------------------------------;}doneawk BEGIN{print *** The End *** print }##################################判断日期是否合法#!/bin/shwhile read adoif echo $a | grep -q - date -d $a %Y%m%d /dev/null 21then if echo $a | grep -e ^[0-9]\{4\}-[01][0-9]-[0-3][0-9]$thenbreakelseecho 您输入的日期不合法请从新输入fielseecho 您输入的日期不合法请从新输入fidoneecho 日期为$a##################################打印日期段所有日期#!/bin/bashqsrq20010101jsrq20010227n0tmpwhile :;docurrent$(date %Y%m%d -d$n day $qsrq)if [[ $current $jsrq ]];thenecho $current tmp;breakelseecho $current tmp((n))fidonerqawk NR1{print} tmp##################################打印提示cat EOF#内容EOF登陆远程执行命令特殊符号需要\转义ssh rootip EOF#执行命令EOF登陆mysql 执行命令mysql -uroot -ppasswd -S mysql.sock --default-character-setgbk -AEOFouttmp#mysql 命令EOF##################################数学计算的小算法#!/bin/shA1B1while [ $A -le 10 ]doSUMexpr $A \* $Becho $SUMif [ $A 10 ]thenBexpr $B 1A1fiAexpr $A 1done##################################竖行转横行(三种)cat file|tr \n echo $(cat file)#!/bin/shfor i in cat filedoa${a} ${i}doneecho $a##################################取用户的根目录#! /bin/bash#showhome.shIFS:while read name pass uid gid gecos home shelldoecho $homedone执行./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/bashfor f in *;domv $f echo $f |tr [A-Z] [a-z]done##################################查找连续多行在不连续的行前插入#/bin/bashlastrownulli0cat incl|while read linedoiexpr $i 1if echo $lastrow | grep #include [A-Z].hthenif echo $line | grep -v #include [A-Z].hthensed -i $ii\\/\/All header files are include incliexpr $i 1fifilastrow$linedone##################################----------------------------------9 服务配置----------------------------------samba修改配置文/etc/samba/smb.conf[global]workgroup WORKGROUPserver string sambaserversecuritysharehosts allow网络主机[file]commenthome directoriespath/etc/samba/xuesongpublicyeswritableyesbrowseableyes重启service smb restartlinux 访问windows 共享smbclient -L //ip 地址或计算机名##################################DNS 服务器DNS 主配置文件moon.com 域名zone.moon.com 域的配置文件vi /etc/named.confzone moon.com IN {type master;file zone.moon.com;allow-update { none; };};测试主配置文件named-checkconf新建域的配置文件zone.moon.comvi /var/named/chroot/var/named/zone.moon.com$TTL 86400 IN SOA xs. quanzhou722.163.com. (201020143H15M1W1D)IN NS xs.IN MX 5 mail.www IN A 192.168.1.209ftp IN A 192.168.1.209mail IN A 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设置DNSvi /etc/resolv.conf测试解析是否成功host www.moon.comnslookup www.moon.com##################################ftp 配置查看vsftp 是否安装rpm -qa | grep vsftp主配置文件vi /etc/vsftpd/vsftpd.conf启动VSFTPD 服务service vsftpd restart查看21 端口是否开放netstat -atln |grep 211、匿名用户是否允许访问anonymous_enableYESanon_mkdir_write_enableYES2、本地用户管理local_enableYESchroot_list_enableYESchroot_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_list3、虚拟用户管理1要用到文件数据库db4rpm -qa |grep db42将帐户放入文本奇数行用户名偶数行密码vi zhanghu.dat3生成帐户的文件数据库db_load -T -t hash -f zhanghu.dat /etc/vsftpd/vsftpd_zhanghu.db4修改文件数据库访问权限chmod 600 /etc/vsftpd/vsftpd_zhanghu.db5手工建立虚拟用户所需的PAM 配置文件vi /etc/pam.d/vsftpd.zhanghuauth required /lib/security/pam_userdb.so db/etc/vsftpd/vsftpd_zhanghuaccount required /lib/security/pam_userdb.so db/etc/vsftpd/vsftpd_zhanghu6添加一个虚拟用户的入口帐户useradd -d /var/ZhanDian -s /sbin/nologin XuNiRuKou7在主配置文件中添加虚拟用户的配置内容虚拟用户的新添加配置chroot_local_userYESguest_enableYESguest_usernameXuNiRuKoupam_service_namevsftpd.zhanghu8在vsftpd.conf 配置文件中指定用户配置文件的目录user_config_dir/etc/vsftpd/vsftpd_zhandian9建立配置文件中指定用户配置文件的目录mkdir /etc/vsftpd/vsftpd_zhandian10因为入口帐户是一个本地帐户所以要指定虚拟用户具有本地帐户的权限才能读写自己空间中的文件虚拟用户就可以就拥有写权限virtual_use_local_privsYES11touch /etc/vsftpd/vsftpd_zhandian/xuesongecho local_root/var/ZhanDian/xuesong /etc/vsftpd/vsftpd_zhandian/xuesong12mkdir /var/ZhanDian/xuesong13chown -R XuNiRuKou:XuNiRuKou /var/ZhanDian/14重启服务/etc/init.d/vsftpd restart15客户端虚拟账号测试建立用户脚本。最好在加上判断用户名是否存在#!/bin/shecho 请输入用户名read yecho $y zhanghu.datecho 请输入密码read mecho $m zhanghu.datdb_load -T -t hash -f zhanghu.dat /etc/vsftpd/vsftpd_zhanghu.dbchmod 600 /etc/vsftpd/vsftpd_zhanghu.dbtouch /etc/vsftpd/vsftpd_zhandian/$yecho local_root/var/ZhanDian/$y /etc/vsftpd/vsftpd_zhandian/$ymkdir /var/ZhanDian/$ychown -R XuNiRuKou:XuNiRuKou /var/ZhanDian/$y/etc/init.d/vsftpd restart##################################httpd 安装tar zxvf httpd-2.2.12.tar.gzcd httpd-2.2.12./configure --prefix/usr/local/httpd \--enable-rewritemake make installls /usr/local/groupadd wwwuseradd -g www -M -s /sbin/nologin wwwcd /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 forServerName修改/etc/hosts 计算机名在httpd.conf 中开启ServerName 127.0.0.1:80编码设置AddDefaultCharset UTF-8AddDefaultCharset GB2312##################################mysql 源码安装groupadd mysqluseradd mysql -g mysql -M -s /bin/falsetar zxvf mysql-5.0.22.tar.gzcd mysql-5.0.22./configure --prefix/usr/local/mysql \--with-client-ldflags-all-static \--with-mysqld-ldflags-all-static \--with-mysqld-usermysql \--with-extra-charsetsall \--with-unix-socket-path/var/tmp/mysql.sockmake make install生成mysql 用户数据库和表文件在安装包中输入。scripts/mysql_install_db --usermysqlvi ~/.bashrcexport PATH$PATH: /usr/local/mysql/bin配置文件,有large,medium,small 三个根据机器性能选择cp support-files/my-medium.cnf /etc/my.cnfcp support-files/mysql.server /etc/init.d/mysqldchmod 700 /etc/init.d/mysqldcd /usr/localchmod 750 mysql -Rchgrp mysql mysql -Rchown mysql mysql/var -Rcp /usr/local/mysql/libexec/mysqld mysqld.oldln -s /usr/local/mysql/bin/mysql /sbin/mysqlln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladminln -s -f /usr/local/mysql/bin/mysqld_safe /etc/rc.d/rc3.d/S15mysql5ln -s -f /usr/local/mysql/bin/mysqld_safe /etc/rc.d/rc0.d/K15mysql5##################################mysql rpm 安装到http://www.mysql.com/downloads/mysql 下载mysql RPMservice 和clientMySQL-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.rpmrpm –ivh MySQL-client-community-5.1.51-1.rhel5.i386.rpmrpm –ivh MySQL-devel-community-5.1.51-1.rhel5.i386.rpm/etc/init.d/mysqld startmysqladmin -u root password xuesongmysql -u root -S /var/lib/mysql/mysql.sock -p数据目录/var/lib/mysqlchkconfig --list |grep mysqldchkconfig --level 3 mysqld on配置文件(日志\pid)/etc/my.cnfll /usr/bin/mysql*##################################mysql 常用命令启动mysql 服务./mysql/bin/mysqld_safe --usermysql 登录mysql 的命令格式 mysql -h 主机地址-u 用户名-p 用户密码mysql -h110.110.110.110 -P3306 -uroot -pmysql -uroot -p -S /data1/mysql5/data/mysql.sock -A --default-character-setGBK刷新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) NOT NULL(字段不为空);不登陆mysql 插入字段mysql -uroot -p -S mysql.sock -e use db;alter table gift add column accountid int(11) NOTNULL;flush privileges;查询select 列名称from 表名称;select host,user,password from user;备份数据库mysqldump -h host -u root -p dbname dbname_backup.sqlmysqlhotcopy 只能备份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 logIP identified by 123456 with grant option;更改密码update user set passwordpassword(新密码) where userrootmysqladmin -u root password xuesongmysql 查看所有用户的语句select user();删除用户delete from user where usersss and hostlocalhost ;查看主从show slave status\G;查看主从复制进程show processlist;添加索引解决停mysql 速度慢ALTER TABLE player ADD INDEX weekcredit_faction_index (weekcredit, faction);创建主从复制用户grant replication slave on *.* to 用户% identified by 密码;备份表mysqldump -u root -p -S mysql.sock --default-character-setutf8 --hex-blob db table1 table1 /data/db.sql查看系统的字符集和排序方式的设定SHOW VARIABLES LIKE character_set_%;查看mysql 所有参数show variables;删除空用户delete from user where user;创建表指定存储引擎的类型:CREATE TABLE innodb (id int, title char(20)) ENGINE INNODBCREATE TABLE myisam (id int, title char(20)) ENGINE MyISAM改变现有的表使用的存储引擎:ALTER TABLE mytable ENGINE MyISAM查询表引擎SHOW TABLE STATUS from 数据库库名where Name表名;SHOW TABLE STATUS from db where Nameinnodb;查看mysql 变量SHOW VARIABLES;查询用户权限select host,user,password from user;查看表的引擎状态show table status##################################gd 安装分别安装组件libxml、zlib、freetype、libpng、jpegsrc、gdlibxml2-2.6.24.tar.bz2zlib-1.2.3.tar.gzfreetype-2.2.1.tar.gzlibpng-1.2.10.tar.gzjpegsrc.v6b.tar.gzgd-2.0.33.tar.gzlibxml 安装tar xzvf libxml2-2.6.24.tar.bz2tar xvf libxml2-2.6.24.tarcd libxml2-2.6.24./configuremakemake installzlib 安装tar xzvf zlib-1.2.3.tar.gzcd zlib-1.2.3./configuremakemake installfreetype 安装tar xzvf freetype-2.2.1.tar.gzcd freetype-2.2.1./configure --prefix/usr/local/php/modules/freetypemakemake installlibpng 安装tar xzvf libpng-1.2.10.tar.gzcd libpng-1.2.10./configure --prefix/usr/local/php/modules/libpngjpeg 安装mkdir /usr/local/php/modules/jpeg6mkdir /usr/local/php/modules/jpeg6/binmkdir /usr/local/php/modules/jpeg6/libmkdir /usr/local/php/modules/jpeg6/includemkdir /usr/local/php/modules/jpeg6/manmkdir /usr/local/php/modules/jpeg6/man/man1一句创建mkdir -pv /usr/local/jpeg/{,bin,lib,include,man/man1,man1}tar zxvf jpegsrc.v6b.tar.gzcd jpeg-6b/./configure --prefix/usr/local/php/modules/jpeg6 \--enable-shared \--enable-staticmakemake installgd 安装tar zxvf gd-2.0.33.tar.gzcd 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 改为libpngmakemake installphp 安装tar xvf php-5.1.6.tarcd 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-regexphp \--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_configmakemake installcp php.ini-recommended /usr/local/php/lib/php.inivi /usr/local/php/lib/php.ini在PHP.IN 添加[eaccelerator]extension/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.soeaccelerator.shm_size32eaccelerator.cache_dir/usr/local/cache/eacceleratoreaccelerator.enable1eaccelerator.optimizer1eaccelerator.check_mtime1eaccelerator.debug0eaccelerator.filtereaccelerator.shm_max0eaccelerator.shm_ttl0eaccelerator.shm_prune_period0eaccelerator.shm_only0eaccelerator.compress1eaccelerator.compress_level9完成后在/usr/local/httpd/conf/httpd.conf 文件上添加如下一行AddType application/x-httpd-php .php .php5ln -s /usr/local/php/bin/php /sbin/phpvi index.php? phpphpinfo();?重启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 restoresegment 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-addressipvsadm -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|fservice-address -r server-addressipvsadm -L|l [options]ipvsadm -Z [-t|u|f service-address]ipvsadm --set tcp tcpfin udp ipvsadm --start-daemon state [--mcast-interface interface] ipvsadm--stop-daemonipvsadm -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 模式内容服务器的容量1020使用保留地址的LAN双向重写安装ipvsadm 软件内核做个连接ln -s /usr/src/kernels/2.6.18-53.e15-i686/ /usr/src/linux安装软件查看ipvsadm 版本ipvsadm --version建立脚本/etc/rc.d/lvsecho 1 /proc/sys/net/ipv4/ip_forward#清除ipvsadm 一系列规则ipvsadm -Cipvsadm -A -t 外网IP:端口-s rripvsadm -a -t 外网IP:端口-r 内网1 服务器IP:端口-m -w 1ipvsadm -a -t 外网IP:端口-r 内网2 服务器IP:端口-m -w 1修改内网服务器ip 和网关开启httpd建立不同页面测试缺点不能排除宕机的web 服务器可使用LVSKeepalived 组合##################################heartbeat 心跳检测双机热备安装heartbeat 的rpm 包需要先装heartbeat-pils 和heartbeat-stonith 两个包主节点的配置安装完解压配置文件rpm -q heartbeat -dcd /etc/ha.dcp /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 -nvi ha.cf打开日志记录文件logfile /var/log/ha-log打开心跳检测keepalive 2死亡时间deadtime 30warntime 10initdead 120用什么协议端口udpudpport 694使用哪个网卡作为心跳检测bcast eth1备用的IPucast eth1 192.168.1.20主节点服务器node 主节点计算机名node 另一个计算机名ping 外网测试ping 一个外网的IP配置验证模式vi authkeys打开auth11 crc配置虚拟服务vi haresources加上一条名称和IP计算机名IP httpdsev1.example.com 222.90.88.88 httpdhosts 文件要配置上两个机器的机器名和IPvi /etc/hosts222.90.88.10 sev1.example.com sev2192.168.1.10 sev1222.90.88.20 sev1.example.com sev2192.168.1.20 sev1chmod 600 authkeysservice heartbeat start在配置备用节点直接拷贝主节点的文件修改安装完进入安装目录cd /etc/ha.d用sftp 登陆主机sftp 222.90.88.10cd /etc/ha.dget ha.cfget authkeysget hare*bye只需要修改ha.cf 文件vi ha.cfucast eth1 192.168.1.10启动备用节点service heartbeat start测试主节点和负节点建立不同index 页面主节点虚拟出外网ip eth0:0停掉主节点任务重新访问启动后在访问##################################DR 直接路由模式同一网段的LAN内容服务器的容量20 以上降低LVF 的负载VIP 服务器的配置脚本vi /etc/init.d/vip.shifconfig eth0:0 222.90.88.88 broadcast 222.90.88.88 netmask 255.255.255.255 uproute add -host 222.90.88.88 dev eth0:0ipvsadm -Cipvsadm -A -t 222.90.88.88:80 -s rripvsadm -a -t 222.90.88.88:80 -r 222.90.88.10 -gipvsadm -a -t 222.90.88.88:80 -r 222.90.88.20 -gipvsadmchmod 777 /etc/init.d/vip.sh/etc/init.d/vip.sh服务器配置脚本vi /etc/init.d/lvs.shifconfig lo:0 222.90.88.88 broadcast 222.90.88.88 netmask 255.255.255.255 uproute add -host 222.90.88.88 dev lo:0echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 /proc/sys/net/ipv4/conf/all/arp_announcesysctl -pchmod 777 /etc/init.d/lvs.sh/etc/init.d/lvs.sh第二台服务器sftp 222.90.88.10get /etc/init.d/lvs.shbyemv lvs.sh /etc/init.d//etc/init.d/lvs.sh测试两个服务器测试页面写入不同内容分别启动httpd真是IP 可以分别访问不同服务器访问虚拟IP88则互相伦叫##################################IP 隧道模式WAN或LAN 也可内容服务器的容量能到100vip-servervi /etc/init.d/vip.shifconfig tunl0 222.90.88.88 broadcast 222.90.88.88 netmask 255.255.255.255 uproute add -host 222.90.88.88 dev tunl0ipvsadm -Cipvsadm -A -t 222.90.88.88:80 -s rripvsadm -a -t 222.90.88.88 :80 -r 222.90.88.10 -iipvsadm -a -t 222.90.88.88 :80 -r 222.90.88.20 -iipvsadmchmod -R 777 /etc/init.d/vip.sh/etc/init.d/vip.sh1web 服务器ifconfig runl0 222.90.88.88 broadcast 222.90.88.88 netmask 255.255.255.255 uproute add -host 222.90.88.88 dev tunl0echo 1 /proc/sys/net/ipv4/conf/tunl0/arp_ignoreecho 2 /proc/sys/net/ipv4/conf/tunl0/arp_annaunceecho 1 /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 /proc/sys/net/ipv4/conf/all/arp_annauncesysctl -pchmod 777 /etc/init.d/lvs.sh/etc/init.d/lvs.sh2web 服务器sftp 222.90.88.10get /etc/init.d/lvs.shbyemv lvs.sh /etc/init.d//etc/init.d/lvs.sh测试两个服务器测试页面写入不同内容分别启动httpd真是IP 可以分别访问不同服务器访问虚拟IP88则互相伦叫##################################sendmail 邮件服务器配置DNS 服务器为mail 服务器IP 解析在配置文件中添加IN MX 5 mail.mail IN A 192.168.1.209重启服务service named restart测试ping mail.xuesong.comnslookup mail.xuesong.commail 服务器上设置DNS 服务器vi /etc/resolv.conf安装软件sendmail-8.13.8-8.el5.i386.rpmsendmail-cf-8.13.8-8.el5.i386.rpmsendmail-doc-8.13.8-8.el5.i386.rpmyum install dovecotm4sendmail 配置文件目录/etc/mailvi local-host-names添加xuesong.comvi sendmai.mc去掉前面两个dnldnl TRUST_AUTH_MECH(EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN)dnldnl define(confAUTH_MECHANISMS, EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5LOGIN PLAIN)dnl修改IPDAEMON_OPTIONS(Portsmtp,Addr192.168.1.209, NameMTA)dnl生成sendmail 配置文件sendmail.cfm4 sendmail.mc sendmail.cf查看启动级别chkconfig --list |grep sas开启启动级别3chkconfig --level 3 saslauthd onmakemap hash access.db accessvi /etc/dovecot.conf打开下面一句话protocols imap imaps pop3 pop3sservice sendmail restartservice dovecot restartgroup mailuseradd -g mail -M -s /sbin/nologin 用户名##################################JDK 安装rpm -qa|grep jdk确认gcj 的版本号rpm -qa | grep gcj卸载gcjyum -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.binmkdir /usr/javacd /usr/java1. jdk-1_5_0_14-linux-i586-rpm.bin 文件安装chmod 777 jdk-1_5_0_14-linux-i586-rpm.binrpm -ivh jdk-1_5_0_14-linux-i586.rpm2. jdk-1_5_0_14-linux-i586.bin 文件安装chmod ux jdk-1_5_0_14-linux-i586.bin./jdk-1_5_0_14-linux-i586.bin添加环境变量vi /etc/profileexport JAVA_HOME/usr/local/java/jdk1.6.0_23exportCLASSPATH.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH$PATH:$JAVA_HOME/binreboot 重启生效##################################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 bs1M count8编辑原来配置文件添加新磁盘文件vi /etc/xen/vm11name vm11uuid 91b0200b-eb41-46d3-1e11-ee2a87035f24maxmem 128memory 128vcpus 1bootloader /usr/bin/pygrubon_poweroff destroyon_reboot restarton_crash restartvfb [ typevnc,vncunused1,keymapen-us ]disk [ tap:aio:/data/vm11.img,xvda,w, tap:aio:/data/vm11b.img,xvdb,w ]vif [ mac00:16:36:75:8a:ea,bridgevirbr0,scriptvif-bridge ]启动XEN 虚拟机并登陆测试新加的磁盘增加虚拟机网卡cat /etc/xen/vm11name vm11uuid 91b0200b-eb41-46d3-1e11-ee2a87035f24maxmem 512memory 128vcpus 1bootloader /usr/bin/pygrubon_poweroff destroyon_reboot restarton_crash restartvfb [ typevnc,vncunused1,keymapen-us ]disk [ tap:aio:/data/vm11.img,xvda,w ]vif [ mac00:16:36:75:8a:ea,bridgexenbr0,scriptvif-bridge,mac00:16:36:75:8a:eb,bridgexenbr0,scriptvif-bridge ]转载于:https://www.cnblogs.com/lsxs-wy/p/6965366.html
http://www.huolong8.cn/news/13623/

相关文章:

  • 周口城乡建设网站郑州开发小程序多少钱
  • 网站建设国标行业分类网站名称跟域名
  • 集团网站建设特点助君php 免费装修网站
  • 成都网站建设网学生个人主页设计图片
  • 网站打开太慢网站开发课程建议
  • 许昌市建设局网站聊城做企业网站
  • 织梦企业门户网站wordpress超好看主题
  • 网站的网站建设公司做网站什么职业
  • 威海住房和城乡建设局官方网站永久不收费免费的软件app
  • 南京做网站的公司有哪些建设网站需要多长时间
  • 广州网站关键词排名深圳网站建设hi0755
  • 跨境电商网站开发做视频网站要什么
  • 网站建设规划书网页制作怎么建站点
  • 西安地产网站建设哈尔滨刚刚发生的大事件
  • 南京网站建设 个人ssc网站建设教程
  • 网站添加谷歌地图如何在微信公众号中导入wordpress
  • 青岛设计网站的公司哪家好一键配置wordpress
  • 专门为98k做的网站品牌企业建站
  • 网站 会员管理国际快递网站建设
  • 怎样做交互式网站狠狠做网站改成什么了
  • 做视频哪个网站素材好电脑做网站用什么软件
  • 如何用cms做网站wordpress音频播放器插件
  • .net是建网站的吗建设自动弹出qq对话框的网站
  • 织梦wap网站模版网站建设商家公司
  • 网站开发技术架构万站群cms
  • 做的好点的外贸网站上海公司网页设计
  • 深圳宝安大型网站建设一诺互联 网站建设
  • 怎么做提取微信62的网站网页源代码是什么
  • 网站类别标签文本赣州行业网站建设
  • 做网站接口多少钱扬州恒通建设网站