linux centos6 系统优化脚本-经典
#!/bin/bash# ID 201510192126# Author Ricky# E-mail 564001002@qq.com# CentOS 6 系统初始优化脚本 IT运维管理技术交流群 16548318# version 1.1.0# 检查是否为root用户,脚本必须在root权限下运行 #if [[ "$(whoami)" != "root" ]]; then echo "please run this script as root !" >&2 exit 1fiecho -e "\033[31m the script only Support CentOS_6 x86_64 \033[0m"echo -e "\033[31m system initialization script, Please Seriously. press ctrl+C to cancel \033[0m"# 按Y继续默认N,其他按键全部退出 #yn="n"echo "please input [Y\N]"echo -n "default [N]: "read ynif [ "$yn" != "y" -a "$yn" != "Y" ]; then echo "bye-bye!" exit 0fi# 倒计时 #for i in `seq -w 3 -1 1` do echo -ne "\b>>>>>$i"; sleep 1; doneecho -e "\b\Good Luck"# 检查是否为64位系统,这个脚本只支持64位脚本platform=`uname -i`if [ $platform != "x86_64" ];then echo "this script is only for 64bit Operating System !" exit 1fiecho "the platform is ok"# 安装必要支持工具及软件工具yum -y install redhat-lsb vim unzip openssl-client gcc gcc-c++# clearecho "Tools installation is complete"# 检查系统版本为centos 6distributor=`lsb_release -i | awk '{print $NF}'`version=`lsb_release -r | awk '{print substr($NF,1,1)}'`if [ $distributor != 'CentOS' -o $version != '6' ]; then echo "this script is only for CentOS 6 !" exit 1fi# clearcat << EOF+---------------------------------------+| your system is CentOS 6 x86_64 || start optimizing |+---------------------------------------+EOFsleep 3# instll repoyum_update(){#make the 163.com as the default yum repoif [ ! -e "/etc/yum.repos.d/bak" ]; then mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/bak/CentOS-Base.repo.backupfi#addwget http://mirrors.163.com/.help/CentOS6-Base-163.repo -O /etc/yum.repos.d/CentOS-Base.repo#add the third-party repo#rpm -Uvh http://download.Fedora.RedHat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm rpm -Uvh ftp://ftp.muug.mb.ca/mirror/centos/6.7/extras/x86_64/Packages/epel-release-6-8.noarch.rpm#add the epelrpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6#add the rpmforgerpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpmrpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag#update the systemyum clean all && yum makecacheyum -y update glibc\*yum -y update yum\* rpm\* python\* yum -y updateecho -e "\033[31m yum update ok \033[0m"sleep 1}#time zonezone_time(){#install ntpyum -y install ntp#time zoneif [ `date +%z` != "+0800" ]; then rm -rf /etc/localtime ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimecat > /etc/sysconfig/clock << EOFZONE="Asia/Shanghai"UTC=falseARC=falseEOFif [ `date +%z` != "+0800" ]; then echo "The Shanghai time zone error" rm -rf /etc/localtime ln -sf /usr/share/zoneinfo/Asia/Chongqing /etc/localtimecat > /etc/sysconfig/clock << EOFZONE="Asia/Chongqing"UTC=falseARC=falseEOFif [ `date +%z` != "+0800" ]; then echo "The Chongqing time zone error" rm -rf /etc/localtime ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtimecat > /etc/sysconfig/clock << EOFZONE="Asia/Hang_Kong"UTC=falseARC=falseEOFif [ `date +%z` != "+0800" ]; then echo "The Hang_Kong time zone error, To write Shanghai time zone " echo -e "\033[31m time zone error , please manual settings \033[0m" rm -rf /etc/localtime ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimecat > /etc/sysconfig/clock << EOFZONE="Asia/Shanghai"UTC=falseARC=falseEOFfifififiecho "Present time zone:"`date +%z`cat /etc/sysconfig/clockecho -e "\033[31m time zone ok \033[0m"sleep 1# set timeecho "update time please wait!"/usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1#sed -i "/ntpdate/s/^/#/g" /var/spool/cron/rootsed -i "/ntpdate/d" /var/spool/cron/rootsed -i "/hwclock/d" /var/spool/cron/rootcat >> /var/spool/cron/root << EOF*/5 * * * * /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1* * * * */1 /usr/sbin/hwclock -w > /dev/null 2>&1EOFchmod 600 /var/spool/cron/root/sbin/service crond restartecho -e "\033[31m time zone ok \033[0m"sleep 1}# set hostshosts(){#修改hostname为127.0.0.1if [ "$(hostname -i)" != "127.0.0.1" ]; then sed -i "s@^127.0.0.1\(.*\)@127.0.0.1 `hostname`\1@" /etc/hostsfihostname -iecho -e "\033[31m hosts ok \033[0m"sleep 1}#set the file limitlimits_config(){#修改文件打开数sed -i "/^ulimit -SHn.*/d" /etc/rc.localecho "ulimit -SHn 102400" >> /etc/rc.localsed -i "/^ulimit -s.*/d" /etc/profilesed -i "/^ulimit -c.*/d" /etc/profilesed -i "/^ulimit -SHn.*/d" /etc/profilecat >> /etc/profile << EOF###ulimit -c unlimitedulimit -s unlimitedulimit -SHn 102400EOFsource /etc/profileulimit -acat /etc/profile | grep ulimitecho -e "\033[31m hosts ok \033[0m"if [ ! -f "/etc/security/limits.conf.bak" ]; then cp /etc/security/limits.conf /etc/security/limits.conf.bakfised -i "/^*.*soft.*nofile/d" /etc/security/limits.confsed -i "/^*.*hard.*nofile/d" /etc/security/limits.confsed -i "/^*.*soft.*nproc/d" /etc/security/limits.confsed -i "/^*.*hard.*nproc/d" /etc/security/limits.confcat >> /etc/security/limits.conf << EOF#####---------custom-----------------------#* soft nofile 65535* hard nofile 65535* soft nproc 65535* hard nproc 65535EOFcat /etc/security/limits.conf | grep "^* .*"echo -e "\033[31m limits ok \033[0m"sleep 1}# tune kernel parametres #优化内核参数sysctl_config(){#deleteif [ ! -f "/etc/sysctl.conf.bak" ]; then cp /etc/sysctl.conf /etc/sysctl.conf.bakfised -i "/^net.ipv4.ip_forward/d" /etc/sysctl.confsed -i "/^net.ipv4.conf.default.rp_filter/d" /etc/sysctl.confsed -i "/^net.ipv4.conf.default.accept_source_route/d" /etc/sysctl.confsed -i "/^kernel.sysrq/d" /etc/sysctl.confsed -i "/^kernel.core_uses_pid/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_syncookies/d" /etc/sysctl.confsed -i "/^kernel.msgmnb/d" /etc/sysctl.confsed -i "/^kernel.msgmax/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_max_tw_buckets/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_sack/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_window_scaling/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_rmem/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_wmem/d" /etc/sysctl.confsed -i "/^net.core.wmem_default/d" /etc/sysctl.confsed -i "/^net.core.rmem_default/d" /etc/sysctl.confsed -i "/^net.core.rmem_max/d" /etc/sysctl.confsed -i "/^net.core.wmem_max/d" /etc/sysctl.confsed -i "/^net.core.netdev_max_backlog/d" /etc/sysctl.confsed -i "/^net.core.somaxconn/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_max_orphans/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_max_syn_backlog/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_timestamps/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_synack_retries/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_syn_retries/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_tw_recycle/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_tw_reuse/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_mem/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_fin_timeout/d" /etc/sysctl.confsed -i "/^net.ipv4.tcp_keepalive_time/d" /etc/sysctl.confsed -i "/^net.ipv4.ip_local_port_range/d" /etc/sysctl.conf#sed -i "/^net.ipv4.tcp_tw_len/d" /etc/sysctl.conf#addcat >> /etc/sysctl.conf << EOF#####-------custom---------------------------------------------#net.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0kernel.sysrq = 0kernel.core_uses_pid = 1net.ipv4.tcp_syncookies = 1kernel.msgmnb = 65536kernel.msgmax = 65536net.ipv4.tcp_max_tw_buckets = 6000net.ipv4.tcp_sack = 1net.ipv4.tcp_window_scaling = 1net.ipv4.tcp_rmem = 4096 87380 4194304net.ipv4.tcp_wmem = 4096 16384 4194304net.core.wmem_default = 8388608net.core.rmem_default = 8388608net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.core.netdev_max_backlog = 262144net.core.somaxconn = 262144net.ipv4.tcp_max_orphans = 3276800net.ipv4.tcp_max_syn_backlog = 262144net.ipv4.tcp_timestamps = 0#net.ipv4.tcp_synack_retries = 1net.ipv4.tcp_synack_retries = 2#net.ipv4.tcp_syn_retries = 1net.ipv4.tcp_syn_retries = 2net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_mem = 94500000 915000000 927000000#net.ipv4.tcp_fin_timeout = 1net.ipv4.tcp_fin_timeout = 15net.ipv4.tcp_keepalive_time = 30net.ipv4.ip_local_port_range = 1024 65535#net.ipv4.tcp_tw_len = 1EOF#bucketsecho 6000 > /proc/sys/net/ipv4/tcp_max_tw_buckets#deletesed -i "/^kernel.shmmax/d" /etc/sysctl.confsed -i "/^kernel.shmall/d" /etc/sysctl.conf#addshmmax=`free -l |grep Mem |awk '{printf("%d\n",$2*1024*0.9)}'`shmall=$[$shmmax/4]echo "kernel.shmmax = "$shmmax >> /etc/sysctl.confecho "kernel.shmall = "$shmall >> /etc/sysctl.conf#bridgemodprobe bridgelsmod|grep bridge#reload sysctl/sbin/sysctl -pecho -e "\033[31m sysctl ok \033[0m"sleep 1}# control-alt-deleteset_key(){#set the control-alt-delete to guard against the miSUSEsed -i 's#^exec /sbin/shutdown -r now#\#exec /sbin/shutdown -r now#' /etc/init/control-alt-delete.confcat /etc/init/control-alt-delete.conf | grep /sbin/shutdownecho -e "\033[31m control-alt-delete ok \033[0m"sleep 1}#disable selinux #关闭SELINUXselinux(){sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configsetenforce 0echo -e "\033[31m selinux ok \033[0m"sleep 1}#set sshd_config UseDNSssh_GSS(){#sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_configsed -i '/^#UseDNS/s/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_configsed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_configsed -i 's/#PermitEmptyPasswords no/PermitEmptyPasswords no/g' /etc/ssh/sshd_config/etc/init.d/sshd restartcat /etc/ssh/sshd_config | grep -i usednscat /etc/ssh/sshd_config | grep -i PermitEmptyPasswordsecho -e "\033[31m sshd ok \033[0m"sleep 1}#define the backspace button can erase the last character typedbackspace_button(){sed -i "/^stty erase ^H/d" /etc/profileecho 'stty erase ^H' >> /etc/profilesed -i "/^syntax.*/d" /root/.vimrcecho "syntax on" >> /root/.vimrcecho -e "\033[31m backspace ok \033[0m"cat /etc/profile | grep -i "stty erase ^H"cat /root/.vimrc | grep -i "syntax"sleep 1}#stop some crontabstop_crond(){if [ ! -e "/etc/cron.daily.bak" ]; then mkdir /etc/cron.daily.bak mv /etc/cron.daily/makewhatis.cron /etc/cron.daily.bak > /dev/null 2>&1 mv /etc/cron.daily/mlocate.cron /etc/cron.daily.bak > /dev/null 2>&1fiecho -e "\033[31m crond ok \033[0m"sleep 1}#disable some servicedissable_service(){chkconfig bluetooth off > /dev/null 2>&1chkconfig cups off > /dev/null 2>&1chkconfig ip6tables off > /dev/null 2>&1chkconfig | grep -E "cups|ip6tables|bluetooth"echo -e "\033[31m service ok \033[0m"sleep 1}#disable the ipv6stop_ipv6(){cat > /etc/modprobe.d/ipv6.conf << EOFI####---------------custom-----------------------#alias net-pf-10 offoptions ipv6 disable=1EOFIsed -i "/^NETWORKING_IPV6.*/d" /etc/sysconfig/networkecho "NETWORKING_IPV6=off" >> /etc/sysconfig/networkcat /etc/sysconfig/network | grep NETWORKING_IPV6echo -e "\033[31m ipv6 ok \033[0m"sleep 1}#language..inittab(){if [ -z "$(cat /etc/redhat-release | grep '6\.')" ];then sed -i 's/3:2345:respawn/#3:2345:respawn/g' /etc/inittab sed -i 's/4:2345:respawn/#4:2345:respawn/g' /etc/inittab sed -i 's/5:2345:respawn/#5:2345:respawn/g' /etc/inittab sed -i 's/6:2345:respawn/#6:2345:respawn/g' /etc/inittab sed -i 's/ca::ctrlaltdel/#ca::ctrlaltdel/g' /etc/inittab sed -i 's@LANG=.*$@LANG="en_US.UTF-8"@g' /etc/sysconfig/i18nelse sed -i 's@^ACTIVE_CONSOLES.*@ACTIVE_CONSOLES=/dev/tty[1-2]@' /etc/sysconfig/init sed -i 's@^start@#start@' /etc/init/control-alt-delete.conffi/sbin/init q#localeecho $LANGecho -e "\033[31m inittab ok \033[0m"sleep 1}# iptablesiptables(){#add iptablesyum -y install iptables#iptables conf bakif [ ! -e "/etc/sysconfig/iptables.bak" ]; then cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak > /dev/null 2>&1fi#add configcat > /etc/sysconfig/iptables << EOF# Firewall configuration written by system-config-securitylevel# Manual customization of this file is not recommended.# 防火墙规则有先后顺序,修改前请测试确定后更改# E-Mail:564001002@QQ.COM*filter:INPUT DROP [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]:syn-flood - [0:0]#RELATED,ESTABLISHED-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT#io-A INPUT -i lo -j ACCEPT#ping-A INPUT -p icmp -j ACCEPT#redis#-A INPUT -p tcp -m tcp --dport 6379 -j ACCEPT#-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 6379 -j ACCEPT#mysql#-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT#-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 3306 -j ACCEPT#memcache#-A INPUT -p tcp -m tcp --dport 11211 -j ACCEPT#-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 11211 -j ACCEPT#php#-A INPUT -p tcp -m tcp --dport 9000 -j ACCEPT#-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 9000 -j ACCEPT#ssh-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT#-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 --name SSH --rsource -j DROP#-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource -j ACCEPT#http 500 * 90% 需要限制情况下可以取消第一行注释#-A INPUT -p tcp -m tcp --dport 80 -m connlimit --connlimit-above 500 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT#https 500 * 90% 需要限制情况下可以取消第一行注释#-A INPUT -p tcp -m tcp --dport 443 -m connlimit --connlimit-above 500 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT#---service--------------------------------------------------#DNS 安装DNS服务器后需要打开#-A INPUT -p udp --sport 53 -j ACCEPT#ntp 配置ntp服务器时候需要打开#-A INPUT -p udp --sport 123 -j ACCEPT#对外访问,比如api接口 需要结合OUTPUT DROP 全部关闭情况下才需要打开,这种限制非常严格情况下才配置#-A OUTPUT -p tcp --dport 80 -j ACCEPT#-A OUTPUT -p tcp --dport 443 -j ACCEPT#######################################################################################以下#号部分未测试或为成功,并可能有错误开启之前请先测试,并保证能与你的环境匹配#syn-flood#-A syn-flood -p tcp -m limit --limit 500/sec --limit-burst 10000 -j RETURN#------FIN SYN RST ACK SYN-----------------#-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT#-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 10/sec --limit-burst 100 -j ACCEPT#######################################################################################PORTSAN 端口扫描拒绝,缺少工具没能测试好,请慎用。#-A INPUT -p tcp --syn -m recent --name portscan --rcheck --seconds 60 --hitcount 10 -j LOG#-A INPUT -p tcp --syn -m recent --name portscan --set -j DROP-A INPUT -j REJECT --reject-with icmp-host-prohibited-A syn-flood -j REJECT --reject-with icmp-port-unreachable-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMITEOF/sbin/service iptables restartsource /etc/profilechkconfig iptables on/sbin/iptables -L -vchkconfig | grep iptablesecho -e "\033[31m iptables ok \033[0m"sleep 1}# othersother(){# initdefaultsed -i 's/^id:.*$/id:3:initdefault:/' /etc/inittab/sbin/init qcat /etc/inittab | grep "id:"# PS1 /tmp/sed -i "/^PS1=.*/d" /etc/profileecho 'PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[35;40m\]\W\[\e[0m\]]\\$ \[\e[33;40m\]"' >> /etc/profile# HISTSIZsed -i 's/^HISTSIZE=.*$/HISTSIZE=300/' /etc/profilecat /etc/profile | grep "^HISTSIZE"# Record commandsed -i "/^export PROMPT_COMMAND=.*/d" /root/.bash_profileecho "export PROMPT_COMMAND='{ msg=\$(history 1 | { read x y; echo \$y; });user=\$(whoami); echo \$(date \"+%Y-%m-%d %H:%M:%S\"):\$user:\`pwd\`/:\$msg ---- \$(who am i); } >> /tmp/\`hostname\`.\`whoami\`.history-timestamp'" >> /root/.bash_profile# Wrong password five times locked 180ssed -i "/^auth required pam_tally2.so deny=5 unlock_time=180/d" /etc/pam.d/system-authsed -i '4a auth required pam_tally2.so deny=5 unlock_time=180' /etc/pam.d/system-authsource /etc/profilecat /etc/pam.d/system-auth | grep "auth required pam_tally2.so"echo -e "\033[31m other ok \033[0m"sleep 1}# donedone_ok(){cat << EOF+-------------------------------------------------+| optimizer is done || it's recommond to restart this server ! || E-mail:564001002@QQ.COM || || Please Reboot system |+-------------------------------------------------+EOF}# mainmain(){ yum_update zone_time hosts limits_config sysctl_config set_key selinux ssh_GSS backspace_button stop_crond dissable_service stop_ipv6 inittab iptables other done_ok}mainlinux centos6 系统优化脚本-经典的更多相关文章
- Linux 【Shell脚本经典案例】
Shell 简介 hell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口 当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理 ...
- Linux Shell 小脚本经典收藏
原文:http://www.cnblogs.com/Javame/p/3867686.html 1.在两个文件中找出相同的号码 diff -y xx.txt oo.txt | egrep -v &qu ...
- centos6 系统优化脚本
#!/bin/bash # 检查是否为root用户,脚本必须在root权限下运行 # if [[ "$(whoami)" != "root" ]]; then ...
- linux bash Shell脚本经典 Fork炸弹演示及命令详解
Jaromil 在 2002 年设计了最为精简的一个Linux Fork炸弹,整个代码只有13个字符,在 shell 中运行后几秒后系统就会宕机: :(){:|:&};: 这样看起来不是很好理 ...
- 100个Linux Shell脚本经典案例(附PDF)
转载自:https://mp.weixin.qq.com/s/tCKAM67_7K7q2vJthaIsDQ 原文链接:https://wenku.baidu.com/view/4f089430a116 ...
- Linux操作系统优化
figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-wid ...
- 使用C#给Linux写Shell脚本
在这个逼格决定人格,鄙视链盛行的年头,尤其是咱们IT界,请问您今天鄙视与被鄙视的次数分别是多少?如果手中没有一点压箱的本事,那就只有看的份了.今天我们也要提升下自己的格调,学习些脑洞大开的东西,学完之 ...
- Linux 内核学习的经典书籍及途径
from:http://www.zhihu.com/question/19606660 知乎 Linux 内核学习的经典书籍及途径?修改 修改 写补充说明 举报 添加评论 分享 • 邀请回答 ...
- Linux基础 - 系统优化及常用命令
目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...
随机推荐
- Git常用操作命令收集
Git常用操作命令收集 1.进入本地仓库访问位置之后执行命令 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远 ...
- JQuery基础知识==认识JQuery
jQuery API 中文文档:https://www.jquery123.com/ jQuery Mobile 菜鸟教程:http://www.runoob.com/jquerymobile/jqu ...
- MVC与MVVM的关系
什么是MVC? M(Model数据层) 职能单一,只负责操作数据库,执行对于的 Sql 语句,进行数据的CRUD C: create 增加 R: Read 读取 U: update 修改 D: Del ...
- es6-Iterator与for...of
Iterator(遍历器)的概念 JavaScript原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set.这样就有了四种数据集合,用户还可以组合 ...
- LAMP stack-5.6.22 (OpenLogic CentOS 7.2)
平台: CentOS 类型: 虚拟机镜像 软件包: apache2.4.20 mysql5.6.30 php5.6.22 apache application server basic softwar ...
- Dll注入:x86/X64 SetThreadContext 注入
在<Windows核心编程>第七章说到了线程优先级等知识,其中谈到了ThreadContext线程上下背景文. 其中介绍了GetThreadContext函数来查看线程内核对象的内部,并获 ...
- linux 命令——7 mv(转)
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...
- Sql Server配置管理器与 Sql Server Management Studio
起初只安装了Sql Server配置管理器,之后用Navicat连接,总是报错(命名管道提供程序: 无法打开与 SQL Server 的连接 [53]) (另记:Navicat的“主机名或IP地址:” ...
- JQUERY操作JSON数组添加新的属性和值
语法: var data = {}; data["Order"] =order; data["Sort"] = sort; 但是需要注意的是,如果data后面还 ...
- 2018.6.12 Oracle问题
ORA-01950: 对表空间 'USERS' 无权限 创建新的用户时,要指定default tablespace,否则它会把system表空间当成自己的缺省表空间.这样做是不提倡的.估计原来创建某个 ...