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

服务器建站用哪个系统好自己编辑网站怎么做的

服务器建站用哪个系统好,自己编辑网站怎么做的,建设品牌网站公司,百度首页快速排名系统Day1:Linux发展史与安装 一、Linux发展史 1、Linux前身-Unix 1968年 Multics项目 MIT、Bell实验室、美国通用电气有限公司走到了一起#xff0c;致力于开发Multics项目。到后期由于开发进度不是很好#xff0c;MIT和Bell实验室相继离开这个项目的开发#xff0c;最终导致项目… Day1:Linux发展史与安装 一、Linux发展史 1、Linux前身-Unix 1968年 Multics项目 MIT、Bell实验室、美国通用电气有限公司走到了一起致力于开发Multics项目。到后期由于开发进度不是很好MIT和Bell实验室相继离开这个项目的开发最终导致项目搁浅。 1970年Unix元年时间戳 Unix诞生 当时在开发Multics项目的时候实验室中有一个开发成员开发了一款游戏travel space遨游太空因为两个实验室相继离开项目开发导致这名开发人员没法玩游戏后来他提议组织人员重新在Multics项目之上重新的开发也就出现了1970年的Unix。当时Unix操作系统是使用的汇编语言机器语言开发的。 1973年 用C语言重写Unix 因为汇编语言有一个最大的局限性对于计算机硬件过于依赖。导致移植性不好所以后期在1973年使用了C语言对其进行重新开发。 1975年 Bell实验室允许大学使用Unix。 1975年bell实验室允许大学使用Unix操作系统用于教学作用而不允许用于商业用途。 2、Linux诞生 人物 Linus Linux的开发作者Linux之父李纳斯·托瓦兹。Linux诞生时是荷兰在校大学生。 1991年 0.0.1版本 李纳斯当时学校使用的就是Unix操作系统然后其对系统的底层代码进行了修改放到了学校为学生开放的网站上原先他把文件命名写成了Linus’s Unix后期网络管理发现之后觉得这个名字不好自己手动的将名字改成Linux。随后其他同学下载之后发现这个版本还是挺好用的随后都把自己代码贡献给李纳斯。 1992年 0.0.2版本 1994年 1.0版本 2003年 2.6版本 上述所提及的版本号并不是分支版本而是指Linux的内核版本。 3、开源文化 Linux是开源的操作系统。所谓开源就是指开放源代码。 人 物 Stallman 斯特曼开源文化的倡导人。 1983年 GNU计划 1985年 FSF基金会 1990年 Emacs、GCCc语言的编译器、程序库 1991年 Stallman去找Linus商谈让Linux加入其开源计划GNU计划 1992年 GNU/Linux 4、Linux系统特点 开放性开源、多用户、多任务、良好的用户界面、优异的性能与稳定性 多用户多任务 单用户一个用户在登录计算机操作系统只能允许同时登录一个用户 单任务一个任务允许用户同时进行的操作任务数量 多用户多个用户在登录计算机操作系统允许同时登录多个用户进行操作 多任务多个任务允许用户同时进行多个操作任务 Windows属于单用户、多任务。 Linux属于多用户、多任务。 5、Linux分支 分支Linux分支有很多现在比较有名的ubuntu、debian、centosCommunity Enterprise Operating System、redhat、suse等等。 二、Linux系统的安装 1、安装方式 目前安装操作系统方式有2种真机安装、虚拟机安装。 真机安装使用真实的电脑进行安装像安装windows操作系统一样真机安装的结果就是替换掉当前的windows操作系统 虚拟机安装通过一些特定的手段来进行模拟安装并不会影响当前计算机的真实操作系统 如果是学习或者测试使用强烈建议使用虚拟机安装方式。 2、虚拟机软件了解 什么是虚拟机 虚拟机有些时候想模拟出一个真实的电脑环境碍于使用真机安装代价太大因此而诞生的一款可以模拟操作系统运行的软件。 虚拟机目前有2个比较有名的产品vmware出品的vmware workstation、oracle 出品的virtual Box。 3、虚拟机的安装 3.1、VMware Workstation的安装 ①打开安装程序 ②进行下一步开始安装 ③同意许可协议 ④根据需要决定是否需要更改软件的安装位置 点击下一步 ⑤用户体验设置 ⑥快捷方式创建的步骤 ⑦点击安装按钮 ⑧点击完成 ⑨最重要的地方在安装完之后需要检查检查虚拟机软件是否有安装2个虚拟网卡 如果没有这2个网卡的话则会影响后期windows系统与虚拟机其中操作系统之间的相互通信比如共享网络、文件传输等。 3.2、Virtual Box的安装 ①运行安装程序 ②点击下一步 ③选择性更改安装的位置 ④安装的选项设置 ⑤断网警告点击是即可 ⑤点击安装按钮 ⑥完成 ⑦检查是否有对应的虚拟网卡存在 两个软件安装完成之后在桌面上都有对应的快捷方式 4、Linux版本的选择 版本选择CentOS 6.5 【镜像一般都是xxx.iso文件】 问题为什么不选择最新版的7.x版本 6.x目前依然是主流 6.x的各种系统操作模式是基础 7.x实际上也支持大多数6.x的操作形式 官网https://www.centos.org/ 从官网下载得到的镜像文件 5、新建虚拟机 5.1、使用VMware Workstation重点 ①点击“文件”菜单选择“新建虚拟机…”选项选择“自定义”点击下一步 ②选择兼容性默认即可直接下一步 ③选择镜像文件的时候选择“稍后….”点击下一步 ④选择需要安装的操作系统 ⑤选择虚拟机的名称名称将会后期出现在左侧和设置虚拟系统的安装位置 ⑥cpu设置 ⑦分配内存 ⑧选择网络类型选择nat即可 NAT配置好之后windows即可和虚拟机进行互相通信但是教室内的其他同学是访问不了的只能自己可以访问虚拟机中的操作系统 桥接配置好之后其他同学也可以访问你的虚拟机操作系统 ⑨后续默认的步骤直接下一步 ⑩点击完成 5.2、使用Virtual Box了解 ①点击左上角的新建按钮 ②选择操作系统由于centos在列表中是没有的所以选择centos对应的主线redhat 32位 ③选择内存大小 ④创建磁盘默认即可 ⑤选择磁盘类型默认即可 ⑥选择磁盘大小的分配方式方式为动态分配即可 ⑦设置磁盘的位置和大小确认 6、Linux操作系统安装 6.1、使用VMware workstation进行安装 a. 由于之前没有指定iso镜像文件因此此处需要先指定系统镜像文件 b. 运行此虚拟机 注意如果开机之后鼠标点进去虚拟机出不来则可以按下组合快捷键“ctrlalt”。 如果启动之后出现类似提示框不是错误框则勾选不再提示并且确定即可 如果在启动时候出现下述错误则说明电脑没有开启cpu的虚拟化如果需要开启则需要重启计算机并且在开启的时候进入主板的BIOS设置开启虚拟化然后保存设置重启电脑 c. 选择升级/安装已经存在的系统通过↑/↓方向键按下回车 d. 在检测到光盘disc之后选择跳过完整性检测直接进行安装 随后提示不支持的硬件忽略直接下一步 e. 点击下一步 f. 选择在安装过程中使用的语言 g. 选择键盘类型美国式英语 h. 选择存储设备类型 i. 对磁盘进行空白盘的初始化操作选择“是忽略所有的数据” j. 设置网卡自动连接依次应用– 关闭– 下一步 k. 设置时区默认亚洲/上海 l. 设置密码设置好了之后下一步 m. 使用全部的磁盘空间来安装Linux系统点击下一步 n. 选择安装的Linux类型 o. 选择开发– 开发工具前面复选框√点击下一步 p. 等待软件包的安装 等待完成点击重新引导 q. 重新引导之后点击“前进” r. 在协议许可界面选择同意然后点击前进 s. 创建普通用户帐号可选然后点击前进 t. 时间设置设置好之后前进 u. 关于kdump之后点击完成 v. 登录界面 如果需要使用非列出的用户进行登录则点击其他否则双击列出的用户名即可随后输入密码。 w. 使用root帐号登录之后的提示 x. 看到的桌面 6.2、使用virtual Box安装Linux了解 a. 选择需要安装的系统镜像 b. 启动虚拟机 注意如果鼠标在虚拟机中想退出到windows则需要按下ctrlalt组合键空格右侧的 c. 后续全部操作按照上面6.1章节中的步骤继续安装即可。 PS6.3PSubuntu 安装ubuntu也是一样的操作直接下一步下一步内存选2G、普通用户磁盘空间选30/40G就差不多了。 7、终端 问题在目前的桌面系统中如果需要关机可以通过“系统”“关机”进行关机那么后期服务器都是命令行模式的届时这种方式将不好用那会要怎么关机呢 答可以通过命令行方式进行关机。命令的输入需要在终端中进行输入。 所谓终端其实类似于windows下cmd命令行模式。在终端中可以输入需要执行的一些指令同样可以通过终端进行关机注意以后在工作中很少会去使用关机命令会使用重启比较多。 终端的形式 终端组成部分 如何使用终端命令进行关机 在Linux中关机命令有以下几个shutdown -h now正常关机、halt关闭内存、init 0 8、使用VMware备份操作系统 在vm中备份方式有2种快照、克隆。 快照又称还原点就是保存在拍快照时候的系统的状态包含了所有的内容在后期的时候随时可以恢复。【侧重在于短期备份需要频繁备份的时候可以使用快照做快照的时候虚拟的操作系统一般处于开启状态】 ①在菜单“虚拟机”-“快照”-“拍摄快照” 输入相关信息点击拍摄快照 ②搞事情 ③使用快照恢复搞事情之前的状态 路径虚拟机– 快照– 快照管理器 恢复好之后的状态 克隆就是复制的意思。【侧重长期备份做克隆的时候是必须得关闭】 路径先关机– 右键需要克隆的虚拟机– 管理– 克隆 上述的名称和位置与之前新建虚拟机的时候是一样的含义。 等待克隆完成 克隆好的服务器相关密码帐号等信息与被克隆的系统一致。 三、Linux系统的文件 1、文件与文件夹目录 什么是文件 一般都是一个独立的东西可以通过一些特定的工具进行打开并且其中不能在包含除了文字以外的东西。例如 什么是文件夹 可以在其中包含其他文件的东西。 为什么先讲文件 1:日常运维工作中有近一半以上的工作内容精力其实都是对文件的操作。 2: Linux 本身也是一个基于文件形式表示的操作系统。 Linux一切皆文件。 ①在windows是文件的在Linux下同样也是文件 ②在windows不是文件的在Linux下也是以文件的形式存储的 日常学习中和日常工作中对于文件的操作的都有哪些种类 创建文件、编辑文件、保存文件、关闭文件、重命名文件、删除文件、恢复文件。 2、Linux系统的文件目录结构 目录结构 Bin全称binary含义是二进制。该目录中存储的都是一些二进制文件文件都是可以被运行的。 Dev该目录中主要存放的是外接设备例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的需要挂载类似windows下的分配盘符。 Etc该目录主要存储一些配置文件。 Home表示“家”表示除了root用户以外其他用户的家目录类似于windows下的User/用户目录。 Procprocess表示进程该目录中存储的是Linux运行时候的进程。 Root该目录是root用户自己的家目录。 Sbin全称super binary该目录也是存储一些可以被执行的二进制文件但是必须得有super权限的用户才能执行。 Tmp表示“临时”的当系统运行时候产生的临时文件会在这个目录存着。 Usr存放的是用户自己安装的软件。类似于windows下的program files。 Var存放的程序/系统的日志文件的目录。 Mnt当外接设备需要挂载的时候就需要挂载到mnt目录下。 Day2:Linux的基本指令 一、指令与选项 什么是Linux的指令 指在Linux终端命令行中输入的内容就称之为指令。 一个完整的指令的标准格式Linux通用的格式 #指令主体空格[选项]空格[操作对象] 一个指令可以包含多个选项 操作对象也可以是多个 例如需要让张三同学帮忙去楼下小卖铺买一瓶农夫山泉水和清风餐巾纸在这个指令中“买东西”是指令的主体买的水和餐巾纸是操作的对象农夫山泉、清风是操作的选项。 二、基础指令重点 1、ls指令 含义ls list 用法1#ls 含义列出当前工作目录下的所有文件/文件夹的名称 用法2#ls 路径 含义列出指定路径下的所有文件/文件夹的名称 关于路径重要 路径可以分为两种相对路径、绝对路径。 相对路径相对首先得有一个参照物一般就是当前的工作路径 相对路径的写法在相对路径中通常会用到2个符号“./”【表示当前目录下】、“../”【上一级目录下】。 绝对路径绝对路径不需要参照物直接从根“/”开始寻找对应路径 用法3#ls 选项 路径 含义在列出指定路径下的文件/文件夹的名称并以指定的格式进行显示。 常见的语法 #ls-l 路径 #ls-la 路径 选项解释 -l表示list表示以详细列表的形式进行展示 -a表示显示所有的文件/文件夹包含了隐藏文件/文件夹 上述列表中的第一列字符表示文档的类型其中“-”表示改行对应的文档类型为文件“d”表示文档类型为文件夹。 在Linux中隐藏文档一般都是以“.”开头。 用法4#ls -lh 路径 含义列出指定路径下的所有文件/文件夹的名称以列表的形式并且在显示文档大小的时候以可读性较高的形式显示 参数含义 2、pwd指令 用法#pwd print working directory打印当前工作目录 3、cd指令 命令#cd change directory改变目录 作用用于切换当前的工作目录的 语法#cd 路径 案例当前在“/”下需要使用绝对路径切换到/usr/local。 案例当前在/usr/local下需要使用相对路径切换目录到home目录下的Linux123用户家目录中去。 补充 在Linux中有一个特殊的符号“~”表示当前用户的家目录。 切换的方式#cd ~ 4、mkdir指令 指令mkdir make directory创建目录 语法1#mkdir 路径 【路径可以是文件夹名称也可以是包含名称的一个完整路径】 案例在当前路径下创建出目录“yunweihenniux” 注意ls列出的结果颜色说明其中蓝色的名称表示文件夹黑色的表示文件绿色的其权限为拥有所有权限。 案例在指定路径下创建出一个文件夹“yunweihenniux” 语法2#mkdir -p路径 含义当一次性创建多层不存在的目录的时候添加-p参数否则会报错 语法3#mkdir 路径1 路径2 路径3 …. 【表示一次性创建多个目录】 5、touch指令 指令touch 作用创建文件 语法#touch 文件路径 【路径可以是直接的文件名也可以是路径】 案例使用touch来在当前路径下创建一个文件命名为Linux.txt 案例使用touch来同时创建多个文件 案例使用touch来在“Linux123”用户的家目录中创建文件Linux.txt 6、cp指令 指令cp copy复制 作用复制文件/文件夹到指定的位置 语法#cp 被复制的文档路径 文档被复制到的路径 案例使用cp命令来复制一个文件 注意Linux在复制过程中是可以重新对新位置的文件进行重命名的但是如果不是必须的需要则建议保持前后名称一致。 案例使用cp命令来复制一个文件夹 注意当使用cp命令进行文件夹复制操作的时候需要添加选项“-r”【-r表示递归复制】否则目录将被忽略 7、mv指令 指令mv move移动剪切 作用移动文档到新的位置 语法#mv 需要移动的文档路径 需要保存的位置路径 确认移动之后原始的文件还在不在原来的位置原始文件是不在原始位置的 案例使用mv命令移动一个文件 案例使用mv命令移动一个文件夹 补充在Linux中重命名的命令也是mv语法和移动语法一样。 8、rm指令 指令rm remove移除、删除 作用移除/删除文档 语法#rm 选项需要移除的文档路径 选项 -fforce强制删除不提示是否删除 -r表示递归 案例删除一个文件 在删除的时候如果不带选项会提示是否删除如果需要确认则输入“y/yes”否则输入“n/no”按下回车。 注意如果在删除的时候不想频繁的确认则可以在指令中添加选项“-f”表示force强制。 案例删除一个文件夹 注意删除一个目录的时候需要做递归删除并且一般也不需要进行删除确认询问所以移除目录的时候一般需要使用-rf选项。 案例删除多个文档 案例要删除一个目录下有公共特性的文档例如都以Linux开头 其中*称之为通配符意思表示任意的字符Linux*则表示只要文件以Linux开头后续字符则不管。 9、vim指令 指令vim vim是一款文本编辑器 语法#vim 文件的路径 作用打开一个文件可以不存在也可以存在 案例使用vim来打开文件 退出打开的文件在没有按下其他命令的时候按下shift英文冒号输入q按下回车即可 10、输出重定向 一般命令的输出都会显示在终端中有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计则这时候需要使用到的输出重定向技术。 覆盖输出会覆盖掉原先的文件内容 追加输出不会覆盖原始文件内容会在原始内容末尾继续添加 语法#正常执行的指令 / 文件的路径 注意文件可以不存在不存在则新建 案例使用覆盖重定向保存ls -la 的执行结果保存到当前目录下的ls.txt 案例使用追加重定向保存ls -la的执行结果到ls.txt中 11、cat指令 作用1cat有直接打开一个文件的功能。 语法1#cat 文件的路径 作用2cat还可以对文件进行合并 语法2#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n 合并之后的文件路径 例如合并3个文件并存到一个文件中【配合输出重定向使用】 三、进阶指令重点 1、df指令 作用查看磁盘的空间 语法#df -h -h表示以可读性较高的形式展示大小 2、free指令 作用查看内存使用情况 语法#free -m -m表示以mb为单位查看 剩余的真实可以用的内存为1665mb。 Swap用于临时内存当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。 3、head指令 作用查看一个文件的前n行如果不指定n则默认显示前10行。 语法#head -n 文件路径 【n表示数字】 4、tail指令 作用1查看一个文件的未n行如果n不指定默认显示后10行 语法#tail -n 文件的路径 n同样表示数字 作用2可以通过tail指令来查看一个文件的动态变化内容【变化的内容不能是用户手动增加的】 语法#tail -f 文件路径 该命令一般用于查看系统的日志比较多。 5、less指令 作用查看文件以较少的内容进行输出按下辅助功能键数字回车、空格键上下方向键查看更多 语法#less 需要查看的文件路径 在退出的只需要按下q键即可。 6、wc指令 作用统计文件内容信息包含行数、单词数、字节数 语法#wc -lwc 需要统计的文件路径 -l表示lines行数 -w表示words单词数 依照空格来判断单词数量 -c表示bytes字节数 7、date指令重点 作用表示操作时间日期读取、设置 语法1#date 输出的形式2018年3月24日星期六15:54:28 语法2#date %F 等价于#date “%Y-%m-%d” 输出形式2018-03-24 语法3#date “%F %T” 引号表示让“年月日与时分秒”成为一个不可分割的整体 等价操作#date “%Y-%m-%d%H:%M:%S” 输出的形式2018-03-24 16:01:00 语法4获取之前或者之后的某个时间备份 #date -d “-1 day” “%Y-%m-%d %H:%M:%S” 符号的可选值之后或者- 之前 单位的可选值day天、month月份、year年 %F表示完整的年月日 %T表示完整的时分秒 %Y表示四位年份 %m表示两位月份带前导0 %d表示日期带前导0 %H表示小时带前导0 %M表示分钟带前导0 %S表示秒数带前导0 8、cal指令 作用用来操作日历的 语法1#cal 等价于 #cal -1 直接输出当前月份的日历 语法2#cal -3 表示输出上一个月本月下个月的日历 语法3#cal -y 年份 表示输出某一个年份的日历 9、clear/ctrl L指令 作用清除终端中已经存在的命令和结果信息。 语法clear 或者快捷键ctrl L 需要注意的是该命令并不是真的清除了之前的信息而是把之前的信息的隐藏到了最上面通过滚动条继续查看以前的信息。 10、管道重要 管道符| 作用管道一般可以用于“过滤”“特殊”“扩展处理”。 语法管道不能单独使用必须需要配合前面所讲的一些指令来一起使用其作用主要是辅助作用。 ①过滤案例100%使用需要通过管道查询出根目录下包含“y”字母的文档名称。 #ls /| grep y 针对上面这个命令说明 ①以管道作为分界线前面的命令有个输出后面需要先输入然后再过滤最后再输出通俗的讲就是管道前面的输出就是后面指令的输入 ②grep指令主要用于过滤 ②特殊用法案例通过管道的操作方法来实现less的等价效果了解 之前通过less查看一个文件可以#less 路径 现在通过管道还可以这么#cat 路径|less ③扩展处理请使用学过的命令来统计某个目录下的文档的总个数 答#ls / | wc -l Day3:Linux的基本指令2 一、高级指令 1、hostname指令 作用操作服务器的主机名读取、设置 语法1#hostname 含义表示输出完整的主机名 语法2#hostname -f 含义表示输出当前主机名中的FQDN全限定域名 2、id指令 作用查看一个用户的一些基本信息包含用户id用户组id附加组id…该指令如果不指定用户则默认当前用户。 语法1#id 默认显示当前执行该命令的用户的基本信息 语法2#id 用户名 显示指定用户的基本信息 验证上述信息是否正确 验证用户信息通过文件/etc/passwd 验证用户组信息通过文件/etc/group 3、whoami指令 作用“我是谁”显示当前登录的用户名一般用于shell脚本用于获取当前操作的用户名方便记录日志。 语法#whoami 4、ps -ef指令重点 指令ps 作用主要是查看服务器的进程信息 选项含义 -e等价于“-A”表示列出全部的进程 -f显示全部的列显示全字段 执行结果 列的含义 UID该进程执行的用户id PID进程id PPID该进程的父级进程id如果一个程序的父级进程找不到该程序的进程称之为僵尸进程parent process ID CCpu的占用率其形式是百分数 STIME进行的启动时间 TTY终端设备发起该进程的设备识别符号如果显示“?”则表示该进程并不是由终端设备发起 TIME进程的执行时间 CMD该进程的名称或者对应的路径 案例100%使用的命令在ps的结果中过滤出想要查看的进程状态 #ps-ef|grep “进程名称” 再例如查看火狐浏览器的进程 5、top指令重点 作用查看服务器的进程占的资源100%使用 语法 进入命令#top 动态显示 退出命令按下q键 输出的结果 表头含义 PID进程id USER该进程对应的用户 PR优先级 VIRT虚拟内存 RES常驻内存 SHR共享内存 计算一个进程实际使用的内存 常驻内存RES- 共享内存SHR S表示进程的状态statussleeping其中S表示睡眠R表示运行 %CPU表示CPU的占用百分比 %MEM表示内存的占用百分比 TIME执行的时间 COMMAND进程的名称或者路径 在运行top的时候可以按下方便的快捷键 M表示将结果按照内存MEM从高到低进行降序排列 P表示将结果按照CPU使用率从高到低进行降序排列 1当服务器拥有多个cpu的时候可以使用“1”快捷键来切换是否展示显示各个cpu的详细信息 6、du -sh指令 作用查看目录的真实大小 语法#du -sh 目录路径 选项含义 -ssummaries只显示汇总的大小 -h表示以高可读性的形式进行显示 案例统计“/root/yunweihenniux”目录的实际大小 案例统计“/etc”目录实际大小 7、find指令 作用用于查找文件其参数有55个之多 语法#find 路径范围 选项 选项的值 选项 -name按照文档名称进行搜索支持模糊搜索 -type按照文档的类型进行搜索 文档类型“-”表示文件在使用find的时候需要用f来替换“d”表示文件夹 案例使用find来搜索httpd.conf #find / -name httpd.conf 案例搜索etc目录下所有的conf后缀文件 #find /etc -name *.conf 案例使用find来搜索/etc/sane.d/目录下所有的文件 #find /etc/sane.d/ -type f 案例使用find来搜索/etc/目录下所有的文件夹 #find /etc -type d 8、service指令重点 作用用于控制一些软件的服务启动/停止/重启 语法#service 服务名 start/stop/restart 例如需要启动本机安装的Apache网站服务器软件其服务名httpd #service httpd start 通过ps命令来检查httpd服务是否启动 9、kill指令重点 作用表示杀死进程 当遇到僵尸进程或者出于某些原因需要关闭进程的时候 语法#kill 进程PID 语法需要配合ps一起使用 案例需要kill掉Apache的进程 与kill命令作用相似但是比kill更加好用的杀死进程的命令killall 语法#killall 进程名称 10、ifconfig指令重点 作用用于操作网卡相关的指令。 简单语法#ifconfig 获取网卡信息 Eth0表示Linux中的一个网卡eth0是其名称。Loloop本地回还网卡其ip地址一般都是127.0.0.1也是一个网卡名称。 注意inet addr就是网卡的ip地址。 11、reboot指令 作用重新启动计算机 语法1#reboot 重启 语法2#reboot -w 模拟重启但是不重启只写关机与开机的日志信息 12、shutdown指令 作用关机 慎用 语法1#shutdown -h now “关机提示” 或者 #shutdown -h 15:25 “关机提示” 案例设置Linux系统关机时间在12:00 如果想要取消关机计划的话则可以按照以下方式去尝试 ①针对于centos7.x之前的版本ctrlc ②针对于centos7.x包含之后的版本#shutdown -c 除了shutdown关机以外还有以下几个关机命令 #init0 #halt #poweroff 13、uptime指令 作用输出计算机的持续在线时间计算机从开机到现在运行的时间 语法#uptime 14、uname指令 作用获取计算机操作系统相关信息 语法1#uname 获取操作系统的类型 语法2#uname -a all表示获取全部的系统信息类型、全部主机名、内核版本、发布时间、开源计划 15、netstat -tnlp指令 作用查看网络连接状态 语法#netstat -tnlp 选项说明 -t表示只列出tcp协议的连接 -n表示将地址从字母组合转化成ip地址将协议转化成端口号来显示 -l表示过滤出“state状态”列中其值为LISTEN监听的连接 -p表示显示发起连接的进程pid和进程名称 16、man指令 作用manual手册包含了Linux中全部命令手册英文 语法#man 命令 退出按下q键 案例通过man命令查询cp指令的用法 #man cp 二、练习题 1、如何通过命令行重启linux操作系统 #reboot 2、如何在命令行中快速删除光标前/后的内容 前ctrl u 后ctrl k 3、如何删除/tmp下所有A开头的文件 #rm-f /tmp/A* 4、系统重要文件需要备份如何把/etc/passwd备份到/tmp目录下 #cp /etc/passwd /tmp/ 5、如何查看系统最后创建的3个用户 #tail -3 /etc/passwd 6、什么命令可以统计当前系统中一共有多少账户 #wc -l /etc/passwd #cat /etc/passwd|wc -l 7、如何创建/tmp/test.conf文件 #touch /tmp/test.conf 8、如何通过vim编辑打开/tmp/test.conf? #vim /tmp/test.conf 9、如何查看/etc/passwd的头3行和尾3行 #head -3 /etc/passwd #tail -3 /etc/passwd 10、如何一次性创建目录/text/1/2/3/4 #mkdir -p /text/1/2/3/4 11、如何最快的返回到当前账户的家目录 #cd ~ #cd 12、如何查看/etc所占的磁盘空间 #du -sh /etc 13、如何删除/tmp下所有的文件 #rm -rf /tmp/* 14、尝试启动Apache的服务并且检查是否启动成功。 #service httpd start #ps -ef|grep httpd 15、使用已学命令杀死Apache的进程。 #killall httpd Day4:编辑器之神——vim编辑器 一、vi介绍 Vi编辑器是所有Unix及Linux系统下标准的编辑器类似于windows系统下的notepad记事本编辑器由于在Unix及Linux系统的任何版本Vi编辑器是完全相同的因此可以在其他任何介绍vi的地方都能进一步了解它Vi也是Linux中最基本的文本编辑器学会它后我们将在Linux的世界里畅行无阻尤其是在终端中。 关于vim vi和vim都是Linux中的编辑器不同的是vim比较高级可以视为vi的升级版本。vi使用于文本编辑但是vim更适用于coding写代码的。 Vim重点是光标的移动模式切换删除查找替换复制粘贴撤销命令的使用。 二、vim三种模式重点 Vim中存在三种模式大众的认知命令模式、编辑模式输入模式、末行模式尾行模式。 命令模式在该模式下是不能对文件直接编辑可以输入快捷键进行一些操作删除行复制行移动光标粘贴等等【打开文件之后默认进入的模式】 编辑模式在该模式下可以对文件的内容进行编辑 末行模式可以在末行输入命令来对文件进行操作搜索、替换、保存、退出、撤销、高亮等等 Vim的打开文件的方式4种要求掌握的就前三种 #vim 文件路径 作用打开指定的文件 #vim 数字 文件的路径 作用打开指定的文件并且将光标移动到指定行 #vim /关键词 文件的路径 作用打开指定的文件并且高亮显示关键词 #vim 文件路径1 文件路径2 文件路径3 作用同时打开多个文件 重点先复制出一个/etc/passwd文件复制当前家目录下千万不要在etc下直接修改 后续一切vim命令都是基于/root/passwd文件进行操作。 退出方式输入:q按下回车即可 三、命令模式 注意该模式是打开文件的第一个看到的模式打开文件即可进入 1、光标移动 ①光标移动到行首 按键shift 6 或^T字母上面的6不要按小键盘的6 ②光标移动到行尾 按键shift 4 或$R字母的左上角的4不是小键盘的4 ③光标移动到首行 按键gg ④光标移动到末行 按键G ⑤翻屏 向上翻屏按键ctrl b before 或 PgUp 向下翻屏按键ctrl f after 或 PgDn 2、复制操作 ①复制光标所在行 按键yy 粘贴在想要粘贴的地方按下p键 ②以光标所在行为准包含当前行向下复制指定的行数 按键数字yy ③可视化复制 按键ctrl v可视块或V可视行或v可视然后按下↑↓←→方向键来选中需要复制的区块按下y键进行复制最后按下p键粘贴 3、剪切/删除 ①剪切/删除光标所在行 按键dd 删除之后下一行上移 注意dd严格意义上说是剪切命令但是如果剪切了不粘贴就是删除的效果。 ②剪切/删除光标所在行为准包含当前行向下删除/剪切指定的行 按键数字dd 删除之后下一行上移 ③剪切/删除光标所在的当前行之后的内容但是删除之后下一行不上移 按键D 删除之后当前行会变成空白行 ④可视化删除 按键ctrl v可视块或V可视行或v可视上下左右移动按下D表示删除选中行d表示删选中块 4、撤销/恢复 撤销输入:u 不属于命令模式 或者 u undo 恢复ctrl r 恢复取消之前的撤销操作 5、扩展1光标的快速移动 ①快速将光标移动到指定的行 按键数字G ②以当前光标为准向上/向下移动n行 按键数字↑数字↓ ③以当前光标为准向左/向右移动n字符 按键数字←数字→ ④末行模式下的快速移动方式移动到指定的行 按键输入英文“:”其后输入行数数字按下回车 四、模式间的切换重点 五、末行模式 进入方式由命令模式进入按下“:”或者“/表示查找”即可进入 退出方式 a.按下esc b.连按2次esc键 c.删除末行全部输入字符 ①保存操作write 输入“:w” 保存文件 输入“:w 路径” 另存为 ②退出quit 输入“:q” 退出文件 ③保存并退出 输入“:wq” 保存并且退出 ④强制! 输入“:q!” 表示强制退出刚才做的修改操作不做保存 ⑤调用外部命令了解 输入“:!外部命令” 例如 当外部命令执行结束之后按下任意键回到vim编辑器打开的内容 ⑥搜索/查找 输入“/关键词” 例如我想在passwd文件中搜索“sbin”关键词 在搜索结果中切换上/下一个结果N/n next 如果需要取消高亮则需要输入“:nohl”【no highlight】 ⑦替换 :s/搜索的关键词/新的内容 替换光标所在行的第一处符合条件的内容 :s/搜索的关键词/新的内容/g 替换光标所在行的全部符合条件的内容 :%s/搜索的关键词/新的内容 替换整个文档中每行第一个符合条件的内容 :%s/搜索的关键词/新的内容/g 替换整个文档的符合条件的内容 %表示整个文件 g表示全局global ⑧显示行号临时 输入“:set nu”[number] 如果想取消显示则输入“:set nonu” ⑨扩展2使用vim同时打开多个文件在末行模式下进行切换文件 查看当前已经打开的文件名称“:files” 在%a的位置有2种显示可能 %aaactive表示当前正在打开的文件 #表示上一个打开的文件 切换文件的方式 a. 如果需要指定切换文件的名称则可以输入“:open 已经打开的文件名” b. 可以通过其他命令来切换上一个文件/下一个文件 输入“:bn”切换到下一个文件back next 输入“:bp”切换到上一个文件back prev 六、编辑模式 重点看前2个进入方式iinsert、aafter。 退出方式按下esc键 七、实用功能 1、代码着色 案例首先创建简单的c语言程序 如何控制着色显示与否 显示“:syntax on” syn tax语法 关闭显示“:syntax off” 2、vim中计算器的使用 当在编辑文件的时候突然需要使用计算器去计算一些公式则此时需要用计算器但是需要退出vim自身集成了一个简易的计算器。 a. 进入编辑模式 b. 按下按键“ctrl R”然后输入“”此时光标会变到最后一行 c. 输入需要计算的内容按下回车 八、扩展3 1、vim的配置重点 Vim是一款编辑器编辑器也是有配置文件的。 Vim配置有三种情况 a.在文件打开的时候在末行模式下输入的配置临时的 b.个人配置文件~/.vimrc如果没有可以自行新建 c.全局配置文件vim自带/etc/vimrc ①新建好个人配置文件之后进入编辑 ②在配置文件中进行配置 比如显示行号set nu 配置好之后vim打开文件就会永远显示行号 问题如果某个配置项在个人配置文件与全局配置文件产生冲突的时候应该以谁为准 测试步骤在两个配置文件中针对同一个配置项设置不同的值 ①先在全局的配置中设置不显示行号在个人的配置文件中设置显示行号观察结果 最后显示行号说明以个人为准 ②先在全局中配置显示行号在个人中设置不显示行号观察结果 最后的显示是不显示行号说明以个人为准 结论如果针对同一个配置项个人配置文件中存在则以个人配置文件为准如果个人配置文件中不存在这一项则以全局配置文件为准。 2、异常退出 什么是异常退出在编辑文件之后并没有正常的去wq保存退出而是遇到突然关闭终端或者断电的情况则会显示下面的效果这个情况称之为异常退出 解决办法将交换文件在编程过程中产生的临时文件删除掉即可 #rm -f.passwd.swp 3、别名机制实用 作用相当于创建一些属于自己的自定义命令 例如在windows下有cls命令在Linux下可能因为没有这个命令而不习惯清屏。现在可以通过别名机制来解决这个问题可以自己创造出cls命令 别名机制依靠一个别名映射文件~/.bashrc #vim ~/.bashrc 注意如果想新创造的命令生效必须要重新登录当前用户。 4、退出方式 回顾之前vim中退出编辑的文件可以使用“:q”或者“:wq”。 除了上面的这个语法之外vim还支持另外一个保存退出方法“:x”。 说明 ①“:x”在文件没有修改的情况下表示直接退出在文件修改的情况下表示保存并退出 ②如果文件没有被修改但是使用wq进行退出的话则文件的修改时间会被更新但是如果文件没有被修改使用x进行退出的话则文件修改时间不会被更新的主要是会混淆用户对文件的修改时间的认定。 因此建议以后使用“:x”来进行对文件的保存退出。 但是不要使用X不要使用X不要使用XX表示对文件进行加密操作。 九、作业 1、参考作业文件“httpd-vhosts.conf”的描述 2、使用别名机制创建出一个快捷命令“kj”要求实现按下“kj”回车之后能够实现 统计出Apache的服务进程数量。 Day5:Linux自有服务1 自有服务即不需要用户独立去安装的软件的服务而是当系统安装好之后就可以直接使用的服务内置。 一、运行模式 运行模式也可以称之为运行级别。 在linux中存在一个进程init initialize初始化进程id是1。 查看进程#ps -ef|grep init 该进程存在一个对应的配置文件inittab系统运行级别配置文件位置/etc/inittab 文件的主要内容 根据上述的描述可以得知Centos6.5中存在7中运行级别/模式。 0 — 表示关机级别不要将默认的运行级别设置成这个值 1 — 单用户模式 2 — 多用户模式不带NFSNetwork File Syetem 3 — 多用户模式完全的多用户模式不带桌面的纯命令行模式 4 — 没有被使用的模式被保留模式 5 — X11完整的图形化界面模式 6 — 表示重启级别不要将默认的运行级别设置成这个值 与该级别相关的几个命令 #init 0 表示关机 #init 3 表示切换到不带桌面的模式 #init 5 切换到图形界面 #init 6 重启电脑 注意init指令需要超级管理员的权限普通用户无法执行。 这些命令其实都是调用的init进程将数字运行级别传递给进程进程去读配置文件执行对应的操作。 ①切换到纯命令行模式下临时切换重启之后又恢复 #init 3 切换之后需要输入用户名和密码在输入密码的时候没有“*”提示输入只要自己确认输入的密码没有错误按下回车即可。 ②回到桌面模式 #init 5 ③设置模式永久为命令行模式 将/etc/inittab文件中的initdefault值设置成3然后重启操作系统。 二、用户与用户组管理重点 Linux系统是一个多用户多任务的操作系统任何一个要使用系统资源的用户都必须首先向系统管理员申请一个账号然后以这个账号的身份进入系统。 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪并控制他们对系统资源的访问另一方面也可以帮助用户组织文件并为用户提供安全性保护。 每个用户账号都拥有一个惟一的用户名和各自的密码。 用户在登录时键入正确的用户名和密码后就能够进入系统和自己的主目录。 要想实现用户账号的管理要完成的工作主要有如下几个方面 用户账号的添加、删除、修改以及用户密码的管理。 用户组的管理。 注意三个文件 /etc/passwd 存储用户的关键信息 /etc/group 存储用户组的关键信息 /etc/shadow 存储用户的密码信息 1、用户管理 ①添加用户 常用语法#useradd 选项用户名 常用选项 -g表示指定用户的用户主组选项的值可以是用户组的id也可以是组名 -G表示指定用户的用户附加组选项的值可以是用户组的id也可以是组名 -uuid用户的id用户的标识符系统默认会从500之后按顺序分配uid如果不想使用系统分配的可以通过该选项自定义【类似于腾讯QQ的自选靓号情况】 -ccomment添加注释 案例创建用户zhangsan不带任何选项 验证是否成功 a.验证/etc/passwd的最后一行查看是否有zhangsan的信息 b.验证是否存在家目录在Centos下创建好用户之后随之产生一个同名家目录 扩展认识passwd文件 用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell 用户名创建新用户名称后期登录的时候需要输入 密码此密码位置一般情况都是“x”表示密码的占位 用户ID用户的识别符 用户组ID该用户所属的主组ID 注释解释该用户是做什么用的 家目录用户登录进入系统之后默认的位置 解释器shell等待用户进入系统之后用户输入指令之后该解释器会收集用户输入的指令传递给内核处理 注意在不添加选项的时候执行useradd之后会执行一系列的操作 a. 创建同名的家目录 b. 创建同名的用户组 案例添加选项创建用户lisi让lisi属于501主组附加组500自选靓号666。 注意查看用户的主组可以查看passwd文件查看附加组可以查看group文件。 ②修改用户 常用语法#usermod 选项用户名 Usermoduser modify用户修改 常用选项 -g表示指定用户的用户主组选项的值可以是用户组的id也可以是组名 -G表示指定用户的用户附加组选项的值可以是用户组的id也可以是组名 -uuid用户的id用户的标识符系统默认会从500之后按顺序分配uid如果不想使用系统分配的可以通过该选项自定义【类似于腾讯QQ的自选靓号情况】 -l修改用户名 案例修改zhangsan用户主组为500附加组改为501 #usermod -g 500 -G 501 zhangsan 案例修改zhangsan用户用户名改为wangerma #usermod -l 新的用户名 旧的用户名 #usermod -l wangerma zhangsan ③设置密码 Linux不允许没有密码的用户登录到系统因此前面创建的用户目前都处于锁定状态需要设置密码之后才能登录计算机。 常用语法#passwd 用户名 案例设置wangerma用户的密码 在设置密码的时候也是没有任何输入提示的放心输入确保两次输入的密码一致按下回车即可。 也可以使用弱密码但是不建议否则会看到以下的提示 设置密码之后shadow文件中的体现能够看出lisi用户没有密码的。 在设置用户密码之后可以登录帐号例如此处需要登录wangerma 切换用户命令#su [用户名] switchuser 如果用户名不指定则表示切换到root用户。 切换用户需要注意的事项 a. 从root往普通用户切换不需要密码但是反之则需要root密码 b. 切换用户之后前后的工作路径是不变的 c. 普通用户没有办法访问root用户家目录但是反之则可以 ④删除用户 常用语法#userdel 选项用户名 Userdeluser delete用户删除 常用选项 -r表示删除用户的同时删除其家目录 案例删除wangerma用户 注意已经登录的wangerma用户删除的时候提示删除失败但是没有登录的lisi用户可以正常删除。 解决办法简单粗暴kill对应用户的全部进程 提示所有跟用户操作的命令除passwd外只有root超级管理员有权限执行。 2、用户组管理 每个用户都有一个用户组系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同如Linux下的用户属于与它同名的用户组这个用户组在创建用户时同时创建。 用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。 文件结构 用户组名:密码:用户组ID:组内用户名 密码X表示占位符虽然用户组可以设置密码但是绝大部分的情况下不设置密码 组内用户名表示附加组是该组的用户名称 ①用户组添加 常用语法#groupadd 选项用户组名 常用选项 -g类似用户添加里的“-u”-g表示选择自己设置一个自定义的用户组ID数字如果自己不指定则默认从500之后递增 案例使用groupadd指令创建一个新的用户组命名为Administrators ②用户组编辑 常用语法#groupmod 选项用户组名 常用选项 -g类似用户修改里的“-u”-g表示选择自己设置一个自定义的用户组ID数字 -n类似于用户修改“-l”表示设置新的用户组的名称 案例修改Administrators用户组将组ID从502改成520将名称改为admins ③用户组删除 常用语法#groupdel 用户组名 注意当如果需要删除一个组但是这个组是某个用户的主组时则不允许删除如果确实需要删除则先从组内移出所有用户。 三、网络设置 首先知道网卡配置文件位置/etc/sysconfig/network-scripts 在目录中网卡的配置文件命名格式ifcfg-网卡名称 ONBOOT是否开机启动 BOOTPROTOip地址分配方式DHCP表示动态主机分配协议 HWADDR硬件地址MAC地址 如果后续需要重启网卡怎么去操作呢 #servicenetwork restart 在有的分支版本中可能没有service命令来快速操作服务但是有一个共性的目录/etc/init.d 这个目录中放着很对服务的快捷方式。 此处重启网卡命令还可以使用 #/etc/init.d/networkrestart 扩展1如果修改网卡的配置文件但是配置文件的目录层次很深此时可以在浅的目录中创建一个快捷方式软连接方便以后去查找 #ln -s 原始文件的路径 快捷方式的路径 通过ls -l可以列出如下的效果 其中文件类型位置的“l”表示其类型为link连接类型后面的“-”指向的是原始文件路径。 扩展2如何去重启单个网卡 停止某个网卡#ifdown 网卡名 开启某个网卡#ifup 网卡名 例如需要停止-启动重启eth0网卡则可以输入 #ifdown eth0 #ifup eth0 提示在实际工作的时候不要随意禁网卡。 四、ssh服务重点 sshsecure shell安全外壳协议该协议有2个常用的作用远程连接协议、远程文件传输协议。 协议使用端口号默认是22 可以是被修改的如果需要修改则需要修改ssh服务的配置文件 #/etc/ssh/ssh_config 端口号可以修改但是得注意2个事项 a. 注意范围端口范围是从0-65535 b. 不能使用别的服务已经占用的端口 服务启动/停止/重启 #service sshd start/stop/restart #/etc/init.d/sshd start/stop/restart 1、远程终端 终端工具主要帮助运维人员连接远程的服务器常见终端工具有Xshell、secureCRT、Putty等。以putty为例 ①获取服务器ip地址可以通过ifconfig命令进行查看然后顺手测试ip的连接相通性 ②打开putty输入相关的信息 ③在弹出key确认的时候点击“是”以后不会再提示 ④输入登录信息 2、SSH服务文件传输 可视化的界面传输工具Filezilla 安装好之后可以查看到桌面图标 ①选择“文件”- “站点管理器Ctrl S” ②点击“文件”菜单下方的“▽”选择需要连接的服务器连接好之后的效果 ③从本地windows上传文件到linux中方式 支持直接拖拽文件也可以右键本地需要上传的文件然后点选“上传”即可 ④下载linux文件到本地 支持服务器文件直接拖拽到本地也可以在右侧窗口选择需要下载的文件右键点选“下载”。 扩展3通过命令行工具来传输文件/文件夹 工具PSCP.exe必须通过cmd命令行打开为了使用方便可以将其放到环境变量目录中 如果不清楚哪些路径是环境变量路径只需要将其放到C:/Windows目录下即可。 用法 a. pscp 选项 用户名linux主机地址:资源路径 windows本地的地址 下载到win b. pscp 选项 资源路径 用户名linux主机地址:远程路径 上传到linux c.pscp 选项 -ls 用户名linux主机地址列出远程路径下结构 ①下载到本地windows 要求将远程linux服务器下的/etc整个目录下载到本地E:\tmp下 #pscp -r root192.168.21.128:/etc E:\tmp 在CMD中输入之后输入密码 ②上传文件到linux 将“E:\coursedocs\运维学科\北京运维01期\01-基础班\20180329_Linux自有服务”所有的内容传输到linux下root用户的家目录 #pscp -r “E:\coursedocs\运维学科\北京运维01期\01-基础班\20180329_Linux自有服务” root192.168.21.128:/root 五、作业 1、能够分别使用Filezilla和PSCP工具传输给定文件到“/usr/src/data”目录下如目录不存在则自行创建。 Day6:Linux自有服务2 自有服务即不需要用户独立去安装的软件的服务而是当系统安装好之后就可以直接使用的服务内置。 一、设置主机名 回顾 #hostname #hostname -f FQDN全限定域名 ①临时设置主机名立竿见影需要切换用户使之生效 #hostname 设置的主机名 ②永久设置主机名需要重启 先找到一个文件 /etc/sysconfig/network 【主机名的配置文件】 修改其中的HOSTNAME为自己需要设置的永久主机名 ③修改linux服务器的hosts文件将yunwei指向本地设置FQDN Hosts文件的位置/etc/hosts 问题不设置FQDN会怎么样 ①很多开源服务器软件例如Apache则无法启动或出现报错 ②方便记忆看到主机名对其作用有一个初步判断 ③如果不设置则会影响本地的域名的解析本地访问 二、chkconfig 作用相当于windows下“安全卫士”、“电脑管家”之类的安全辅助工具提供“开机启动项”的一个管理服务。 在linux下不是所有的软件安装完成之后都有开机启动服务有的可能需要自己去添加。除此之外还可以查看和删除。 ①开机启动服务查询 #chkconfig --list 其中0-6表示各个启动级别 例如以httpd为例其3级别为关闭off则表示其在3启动形式下默认开机不启动 5对应的也是关闭则表示其在桌面环境下也是开机不启动。 再例如kdump服务在2345的级别下默认开机启动的其他级别下默认开机不启动 ②删除服务 #chkconfig --del 服务名 例如删除httpd服务 ③添加开机启动服务 #chkconfig --add 服务名 【必须要保证服务正常运行才可以添加】 ④设置服务在某个级别下开机启动/不启动【重点命令】 #chkconfig--level 连在一起的启动级别服务名on/off 案例设置httpd服务在35级别下默认开机启动 案例设置httpd服务在5的级别下默认开机不启动 三、ntp服务 作用ntp主要是用于对计算机的时间同步管理操作。 时间是对服务器来说是很重要的一般很多网站都需要读取服务器时间来记录相关信息如果时间不准则可能造成很大的影响。 例如当前虚拟机里的linux时间就是不准确的 同时服务器时间方式有2个一次性同步手动同步、通过服务自动同步。 上游的概念 ①一次性同步时间简单 #ntpdate时间服务器的域名或ip地址 Ip地址查看可以访问http://www.ntp.org.cn/pool.php ②设置时间同步服务 服务名ntpd 启动ntpd服务 #servicentpd start 或者 /etc/init.d/ntpd start 设置ntpd服务开机启动 # chkconfig --list|grep ntpd # chkconfig --level 35 ntpd on 四、防火墙服务 防火墙防范一些网络攻击。有软件防火墙、硬件防火墙之分。 防火墙选择让请求通过从而保证网络安全性。 在当前的centos6.5中防火墙有一个名称iptables【7.x中默认使用的是firewalld】 ①查看iptables是否开机启动 ②iptables服务启动/重启/关闭 #service iptables start/restart/stop /etc/init.d/iptables start /restart/stop ③查看iptables的状态规则 ]# service iptables status 如果iptables没有启动则提示服务没启动如果已经启动则显示防火墙的相关的规则信息 ④查看规则的命令 #iptables -L -n 含义 -L表示列出规则 -n表示将单词表达形式改成数字形式显示 ⑤简单设置防火墙规则 例如需要允许80端口通过防火墙则规则可以用以下的命令来设置 #iptables -I INPUT -p tcp --dport 80 -j ACCEPT #允许访问80端口 Iptables主命令 -I表示将规则放到最前面 -Aadd添加规则最后 INPUT进站请求【出站output】 -pprotocol指定协议icmp/tcp/udp --dport指定端口号 -j指定行为结果允许accept/禁止reject/丢弃drop 添加完成之后需要保存操作 /etc/init.d/iptables save 测试80端口访问 五、rpm管理重点 作用rpm的作用类似于windows上的电脑管家中“软件管理”、安全卫士里面“软件管家”等产品主要作用是对linux服务器上的软件包进行对应管理操作管理分为查询、卸载、安装。 ①查询某个软件的安装情况 #rpm-qa|grep 关键词 选项 -q查询query -a全部all 案例查询linux上是否安装firefox 案例查询是否安装qq ②卸载某个软件 #rpm -e 软件的名称 火狐卸载的时候是没有依赖关系的所以可以直接卸载。 但是在卸载Apache的时候提示无法卸载 当存在依赖关系的时候又不想去解决这个问题的时候可以 #rpm -e软件包名--nodeps ③软件的安装 要想装软件和windows下一样先得找到安装包。 软件包的获得方式 a.去官网去下载 b.不介意老版本的话可以从光盘或者镜像文件中读取 此处以光盘文件为例 查看块状设备的信息 #lsblk list block devices 查看块状设备的信息 Name名称 Size设备大小 Type类型 MountPoint挂载点类似windows下盘符 扩展光盘的挂载和解挂 a. 解挂操作 命令umount 语法#umount 当前设备的挂载点路径 此时相当于U盘在windows上已经被弹出了但是没有拔下电脑USB接口。 b. 挂载光盘 命令mount 语法#mount 设备原始地址 要挂载的位置路径 设备原始地址地址统一都在/dev下然后根据大小确定具体name值拼凑在一起组成原始地址例如当前“/dev/sr0” 要挂载的位置路径挂载目录一般都在mnt下也可以在mnt下建目录此处以“/mnt/dvd”为例 安装软件的命令 #rpm -ivh 软件包完整名称 选项 -iinstall安装 -v显示进度条 -h表示以“#”形式显示进度条 六、cron/crontab计划任务重点 作用操作系统不可能24小时都有人在操作有些时候想在指定的时间点去执行任务例如每天夜里2点去重新启动Apache此时不可能真有人每天夜里2点去执行命令此时可以交给计划任务程序去执行操作。 语法#crontab 选项 常用选项 -llist列出指定用户的计划任务列表 -eedit编辑指定用户的计划任务列表 -uuser指定的用户名如果不指定则表示当前用户 -rremove删除指定用户的计划任务列表 ①列出 ②编辑计划任务重点 计划任务的规则语法格式以行为单位一行则为一个计划 分 时 日 月 周 需要执行的命令 例如如果想要每天的0点0分执行reboot指令则可以写成 0 0 * * * reboot 取值范围 分0~59 时0~23 日1~31 月1~12 周0~70和7表示星期天 四个符号 *表示取值范围中的每一个数字 -做连续区间表达式的要想表示1~7则可以写成1-7 /表示每多少个例如想每10分钟一次则可以在分的位置写*/10 ,表示多个取值比如想在1点2点6点执行则可以在时的位置写1,2,6 问题1每月1、10、22日的4:45重启network服务 45 4 1,10,22 * * service network restart 问题2每周六、周日的1:10重启network服务 10 1 * * 6,0 service network restart 问题3每天18:00至23:00之间每隔30分钟重启network服务 */30 18-23 * * * service network restart 问题4每隔两天的上午8点到11点的第3和第15分钟执行一次重启 3,15 8-11 */2 * * reboot 案例真实测试案例每1分钟往root家目录中的RT.txt中输入当前的时间信息为了看到效果使用追加输出 计划任务*/1 * * * * ls ~/root/RT.txt Crontab权限问题本身是任何用户都可以创建自己的计划任务。 但是超级管理员可以通过配置来设置某些用户不允许设置计划任务 配置文件位于黑名单 /etc/cron.deny 里面写用户名一行一个 还有一个配置文件白名单 /etc/cron.allow 本身不存在自己创建 注意白名单优先级高于黑名单如果一个用户同时存在两个名单文件中则会被默认允许创建计划任务。 Day7:Linux的权限管理操作 Linux的权限操作与用户、用户组是兄弟操作。 一、权限概述 总述Linux系统一般将文件可存/取访问的身份分为3个类别owner、group、others且3种身份各有read、write、execute等权限。 1、权限介绍 什么是权限 在多用户可以不同时计算机系统的管理中权限是指某个特定的用户具有特定的系统资源使用权力像是文件夹、特定系统指令的使用或存储量的限制。 在Linux中分别有读、写、执行权限 读权限 对于文件夹来说读权限影响用户是否能够列出目录结构 对于文件来说读权限影响用户是否可以查看文件内容 写权限 对文件夹来说写权限影响用户是否可以在文件夹下“创建/删除/复制到/移动到”文档 对于文件来说写权限影响用户是否可以编辑文件内容 执行权限 一般都是对于文件来说特别脚本文件。 2、身份介绍 Owner身份文件所有者默认为文档的创建者 由于Linux是多用户、多任务的操作系统因此可能常常有多人同时在某台主机上工作但每个人均可在主机上设置文件的权限让其成为个人的“私密文件”即个人所有者。因为设置了适当的文件权限除本人文件所有者之外的用户无法查看文件内容。 例如某个MM给你发了一封Email情书你将情书转为文件之后存档在自己的主文件夹中。为了不让别人看到情书的内容你就能利用所有者的身份去设置文件的适当权限这样即使你的情敌想偷看你的情书内容也是做不到的。 Group身份与文件所有者同组的用户 与文件所有者同组最有用的功能就体现在多个团队在同一台主机上开发资源的时候。例如主机上有A、B两个团体A中有a1,a2,a3三个成员B中有b1,b2两个成员这两个团体要共同完成一份报告F。由于设置了适当的权限A、B团体中的成员都能互相修改对方的数据但是团体C的成员则不能修改F的内容甚至连查看的权限都没有。同时团体的成员也能设置自己的私密文件让团队的其它成员也读取不了文件数据。在Linux中每个账户支持多个用户组。如用户a1、b1即可属于A用户组也能属于B用户组【主组和附加组】。 Others身份其他人相对于所有者 这个是个相对概念。打个比方大明、二明、小明一家三兄弟住在一间房房产证上的登记者是大明owner所有者那么大明一家就是一个用户组这个组有大明、二明、小明三个成员另外有个人叫张三和他们三没有关系那么这个张三就是其他人了。 同时大明、二明、小明有各自的房间三者虽然能自由进出各自的房间但是小明不能让大明看到自己的情书、日记等这就是文件所有者用户的意义。 Root用户超级用户 在Linux中还有一个神一样存在的用户这就是root用户因为在所有用户中它拥有最大的权限所以管理着普通用户。 3、Linux的权限介绍 要设置权限就需要知道文件的一些基本属性和权限的分配规则。在Linux中ls命令常用来查看文件的属性用于显示文件的文件名和相关属性。 #ls -l路径 【ls -l 等价于 ll】 标红的部分就是Linux的文档权限属性信息。 Linux中存在用户、用户组和其他人概念各自有不同的权限对于一个文档来说其权限具体分配如下 十位字符表示含义 第1位表示文档类型取值常见的有“d表示文件夹”、“-表示文件”、“l表示软连接”、“s表示套接字”等等 第2-4位表示文档所有者的权限情况第2位表示读权限的情况取值有r、-第3位表示写权限的情况w表示可写-表示不可写第4位表示执行权限的情况取值有x、-。 第5-7位表示与所有者同在一个组的用户的权限情况第5位表示读权限的情况取值有r、-第6位表示写权限的情况w表示可写-表示不可写第7位表示执行权限的情况取值有x、-。 第8-10位表示除了上面的前2部分的用户之外的其他用户的权限情况第8位表示读权限的情况取值有r、-第9位表示写权限的情况w表示可写-表示不可写第10位表示执行权限的情况取值有x、-。 权限分配中,均是rwx的三个参数组合且位置顺序不会变化。没有对应权限就用–代替。 例如以下一个文档权限是怎么样的 a. 其是文件夹类型 b. 所有者拥有全部权限读写执行 c. 同组用户可读、可执行 d. 其他用户可读、可执行 二、权限设置 语法#chmod 选项 权限模式 文档 注意事项 常用选项 -R递归设置权限 当文档类型为文件夹的时候 权限模式就是该文档需要设置的权限信息 文档可以是文件也可以是文件夹可以是相对路径也可以是绝对路径。 注意点如果想要给文档设置权限操作者要么是root用户要么就是文档的所有者。 1、字母形式 给谁设置 u表示所有者身份owneruser g表示给所有者同组用户设置group o表示others给其他用户设置权限 a表示all给所有人包含ugo部分设置权限 如果在设置权限的时候不指定给谁设置则默认给所有用户设置 权限字符 r读 w写 x表示执行 -表示没有权限 权限分配方式 表示给具体的用户新增权限相对当前 -表示删除用户的权限相对当前 表示将权限设置成具体的值注重结果【赋值】 例如需要给anaconda-ks.cfg文件-rw-------.设置权限要求所有者拥有全部的权限同组用户拥有读和执行权限其他用户只读权限。 答案 ①#chmod ux,grx,or anaconda-ks.cfg ②#chmod urwx,grx,or anaconda-ks.cfg 提示当文档拥有执行权限任意部分则其颜色在终端中是绿色。 #chmodugrwx 形式如果有两部分权限一样则可以合在一起写的 例如如果anaconda-ks.cfg文件什么权限都没有可以使用root用户设置所有人都有执行权限则可以写成 ①#chmod x anaconda-ks.cfg ②#chmod ax anaconda-ks.cfg ③#chmod ax anaconda-ks.cfg 2、数字形式 经常会在一些技术性的网页上看到类似于#chmod 777 a.txt 这样的一个权限这种形式称之为数字形式权限777。 读r 4 写w 2 执行x 1 没有任何权限0 例如需要给anaconda-ks.cfg设置权限权限要求所有者拥有全部权限同组用户拥有读执行权限其他用户只读。 全部权限u读写执行4217 读和执行g读执行415 读权限o读4 由上得知权限为754 #chmod 754 anaconda-ks.cfg 面试题用超级管理员设置文档的权限命令是#chmod-R 731 aaa请问这个命令有没有什么不合理的地方 拥有者7421读写执行 同组用户321写执行 其他用户11执行 注意在写权限的时候千万不要设置类似于上面的这种“奇葩权限”。如果一个权限数字中但凡出现2与3的数字则该权限有不合理的情况。 3、注意事项 使用root用户创建一个文件夹/oo权限默认权限如下 需要在oo目录下创建文件oo/xx.txt需要给777权限 切换到test用户不是文档所有者也不是同组用户属于other部分 问题1test用户是否可以打开oo/xx.txt文件【能打开】 问题2test用户是否可以编辑oo/xx.txt文件【可以】 问题3test用户是否可以删除oo/xx.txt文件【不可以同样还不允许创建文件/文件夹、移动文件、重命名文件】 在Linux中如果要删除一个文件不是看文件有没有对应的权限而是看文件所在的目录是否有写权限如果有才可以删除。 三、属主与属组设置 属主所属的用户文件的主人 属组所属的用户组 前面的那个root就是属主 后面的那个root就是属组 这两项信息在文档创建的时候会使用创建者的信息用户名、用户所属的主组名称。 如果有时候去删除某个用户则该用户对应的文档的属主和属组信息就需要去修改。 1、chown重点 作用更改文档的所属用户 语法#chown -R username文档路径 案例将刚才root用户创建的oo目录所有者更改为test #chown test oo/ 2、chgrp了解 作用更改文档的所属用户组 语法#chgrp -R groupname 文档的路径 案例将刚才root用户创建的oo目录所有者更改为test并且将所属用户组也改为test #chgrp test oo/ 思考如何通过一个命令实现既可以更改所属的用户也可以修改所属的用户组呢 答可以实现的通过chown命令 语法#chown -R username:groupname 文档路径 案例要求只使用chown指令将oo目录的所属用户和用户组改回成root并且包含其子目录 四、扩展1 问题reboot、shutdown、init、halt、user管理在普通用户身份上都是操作不了但是有些特殊的情况下又需要有执行权限。又不可能让root用户把自己的密码告诉普通用户这个问题该怎么解决 该问题是可以被解决的可以使用sudoswitch user do命令来进行权限设置。Sudo可以让管理员root事先定义某些特殊命令谁可以执行。 默认sudo中是没有除root之外用户的规则要想使用则先配置sudo。 Sudo配置文件/etc/sudoers a. 配置sudo文件请使用“#visudo”打开之后其使用方法和vim一致 b. 配置普通用户的权限 Root表示用户名如果是用户组则可以写成“%组名” ALL表示允许登录的主机地址白名单 (ALL)表示以谁的身份执行ALL表示root身份 ALL表示当前用户可以执行的命令多个命令可以使用“,”分割 案例本身test用户不能添加用户要求使用sudo配置将其设置为可以添加用户并且可以修改密码但是不能修改root用户密码。 注意在写sudo规则的时候不建议写直接形式的命令而是写命令的完整路径。 路径可以使用which命令来查看 语法#which 指令名称 在添加好对应的规则之后就可以切换用户切换到普通用户test再去执行 此时要想使用刚才的规则则以以下命令进行 #sudo 需要执行的指令 在输入sudo指令之后需要输入当前的用户密码进行确认的操作不是root用户密码输入之后在接下来5分钟内再次执行sudo指令不需要密码。 特别注意此处按照案例要求不能让test用户修改root密码因此规则还需要调整不然其可以修改root密码的 禁止修改root密码的配置先允许全部再拒绝root密码设置/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root 补充在普通用户下怎么查看自己具有哪些特殊权限呢 #sudo -l 最后sudo不是任何Linux分支都有的命令常见centos与ubuntu都存在sudo命令。 作业给普通用户设置一个关机命令执行权限。 Day8:Linux的网络基础 一、网络相关概述 1、网络发展 信息传递 远古时期人们就通过简单的语言、壁画等方式交换信息 千百年来人们一直在用语言、图符、钟鼓、烟火、竹简、纸书等传递信息 古代人的烽火狼烟、飞鸽传信、驿马邮递 现代社会中交通警的指挥手语、航海中的旗语等 这些信息传递的基本方式都是依靠人的视觉与听觉 电的产生 1831年法拉第制出了世界上最早的第一台发电机 1866年德国人西门子Siemens制成世界上第一台大功率发电机 1837年美国人塞缪乐·莫乐斯成功地研制出世界上第一台电磁式电报机 1844年5月24日莫乐斯在国会大厦联邦最高法院会议厅进行了“用莫尔斯电码”发出了人类历史上的第一份电报从而实现了长途电报通信 网络诞生 1957年前苏联发射了第一颗人造卫星震惊了美国 1958年美国成立了国防部高级研究计划署ARPAAdvanced Research Projects Agency应对冷战形势ARPA是一个管理机构没有实验室和科学家 1969年ARPANET阿帕网开始联机因此1969年被称为Internet元年 网络分类记忆 局域网Local Area NetworkLAN是指范围在几百米到十几公里内办公楼群或校园内的计算机相互连接所构成的计算机网络。 城域网Metropolitan Area NetworkMAN所采用的技术基本上与局域网相类似只是规模上要大一些。城域网既可以覆盖相距不远的几栋办公楼也可以覆盖一个城。 广域网Wide Area NetworkWAN通常跨接很大的物理范围如一个国家。 除了上述的划分网络还可以按照所有者分为公网、私网是两种Internet的接入方式。公网接入方式上网的计算机得到的IP地址是Internet上的非保留地址公网的计算机和Internet上的其他计算机可随意互相访问。私网则反之。 2、ip地址重点记忆 IP是英文Internet Protocol的缩写意思是“网络之间互连的协议”也就是为计算机网络相互连接进行通信而设计的协议。 IP地址类型分为公有地址、私有地址。 公有地址 公有地址Public address由Inter NICInternetNetwork Information Center因特网信息中心负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。 私有地址重点 私有地址Private address属于非注册地址专门为组织机构内部使用。以下列出留用的内部私有地址 A类 10.0.0.0--10.255.255.255 B类 172.16.0.0--172.31.255.255 C类192.168.0.0--192.168.255.255 IP地址按类型可以分为三类 类别最大网络数IP地址范围最大主机数私有IP地址范围A1262^7-2)1.0.0.0-127.255.255.2551677721410.0.0.0-10.255.255.255B16384(2^14)128.0.0.0-191.255.255.25565534172.16.0.0-172.31.255.255C2097152(2^21)192.0.0.0-223.255.255.255254192.168.0.0-192.168.255.255 网络运维相关技能ip分类、子网划分、划分vlan、ACL、综合布线、各种Serve的搭建。 127.0.0.1 本机ip 3、网卡 网卡是一个网络组件属于硬件范畴主要负责计算机之间数据的封装和解封。 MAC地址网卡的物理地址网卡设备的编号默认情况是全球唯一的16进制。 与IP地址的区别 长度不同。IP地址为32位MAC地址为48位。 分配依据不同。 网络寻址方式不同。OSI参考模型ip地址是基于第三层工作网络层mac地址是第二层数据链路层 4、网线 网线是连接局域网必不可少的。在局域网中常见的网线主要有双绞线RJ45接口、铜轴电缆、光缆三种。 5、交换机 交换机Switch意为“开关”是一种用于电光信号转发的网络设备交换机它可以为接入交换机的任意两个网络节点提供独享的电信号通路。 目前交换机品牌比较有名的是华为、华三h3c、思科、锐捷。 6、路由器 路由器Router又称网关设备Gateway是用于连接多个逻辑上分开、相对独立的网络。 7、拓扑结构图扩展 所谓“拓扑”就是把实体抽象成与其大小、形状无关的“点”而把连接实体的线路抽象成“线”进而以图的形式来表示这些点与线之间关系的方法其目的在于研究这些点、线之间的相连关系。表示点和线之间关系的图被称为拓扑结构图。 常见的几种拓扑结构图 二、网络相关命令 1、ping 作用检测当前主机与目标主机之间的连通性不是100%准确有的服务器是禁ping 语法#ping 主机地址ip地址、主机名、域名等 例如测试和baidu.com之间的连通性。 该命令可以跨平台windows下也可以使用语法一致。区别在于Linux下默认一直发送windows下默认发送4个数据包 2、netstat 作用表示查看网络的连接信息 语法#netstat -tnlp -ttcp协议-n将字母转化成数字-l列出状态为监听-p显示进程相关信息 #netstat -an -a表示全部-n将字母转化为数字 TCP/IP协议需要使用这个命令。 3、traceroute 作用查找当前主机与目标主机之间所有的网关路由器会给沿途各个路由器发送icmp数据包路由器可能会不给响应。 该命令不是内置命令需要安装但是目前的已经安装好了之前选了开发工具。 语法#traceroute 主机地址 类似于查看快递的跟踪路由 扩展在windows下也有类似的命令tracert 主机地址 在线工具网址http://tool.chinaz.com 4、arp 地址解析协议即ARPAddress Resolution Protocol是根据IP地址获取MAC物理地址的协议。 当一个主机发送数据时首先查看本机MAC地址缓存中有没有目标主机的MAC地址 如果有就使用缓存中的结果如果没有ARP协议就会发出一个广播包该广播包要求查询目标主机IP地址对应的MAC地址拥有该IP地址的主机会发出回应回应中包括了目标主机的MAC地址这样发送方就得到了目标主机的MAC地址。如果目标主机不在本地子网中则ARP解析到的MAC地址是默认网关的MAC地址。 常用语法#arp -a 查看本地缓存mac表 #arp -d 主机地址 删除指定的缓存记录 该命令在windows下同样适用。 5、tcpdump(了解) 作用抓包抓取数据表 常用语法 #tcpdump协议 port 端口 #tcpdump协议 port 端口 host 地址 #tcpdump-i 网卡设备名 查看22端口ssh的数据包 00:09:17.xxxx 监听数据的时分秒 IP使用的协议类型 192.168.21.1 数据包的一个方向来自 数据的流向 192.168.21.136 数据包的另外一个方向到达 三、项目上线流程必须掌握 1、服务器选配购买 项目上线服务器必须是外网服务器。 一般服务器有2种情况购买真实服务器、购买云服务器。 购买真实服务器一次性成本过高所以现在基本都是选择云服务器。 云服务的厂商阿里云、腾讯云、知道创宇加速乐、华为云、盛大云、新浪云sae、亚马逊云等等。 以后以阿里云为例 官网http://www.aliyun.com ①打开阿里云官网选择产品中的“云服务器ECS” 在页面上点击“立即购买” ②选择具体的配置 安全组需要先在控制面板中创建创建好之后才能在这里进行选择安全组类似于防火墙可以设置相关规则 进入后台查看信息 需要重置密码的话则可以选择右侧“更多”选择“重置密码”然后重启服务器最后可以通过远程终端连接服务器 2、域名购买 ①在首页产品中找到域名注册 域名注册得先查看是否可以注册 选择需要的域名 确认购买信息 购买之后就可以在后台控制面板中去查看域名情况。 3、域名备案 备案当申请域名的人要想在国内使用域名则需要向当地的通信管理局省级去申请报备。 备案前提想要使用境内服务器的话则必须得备案。 在管理后台点击“ICP备案系统” 点击新增主体备案 填写完基本信息之后点击增加网站 备案服务号可以在控制台顶部去获取 申请到备案服务号之后填写继续 会让用户下载一个图片网站真实性核验单 下载打印填写好上传到阿里云备案系统中。 后面等待初审初审通过之后继续下一步初审时间一般1天即可 拍照 上传照片 等待管局审核到这个步骤基本是已经通过审核周期一般是15个工作日。 等待审核通过就会收到工信部发送的短信与邮件通知邮件中有备案号和备案密码备案密码用于注销备案。 4、域名解析 点击“解析” 解析将域名绑定到一个服务器地址的操作 DNSdomain name server用于将域名转化成ip地址的服务器。 点击右上角的添加记录 选择记录 例如需要将www.linux123.xyz解析到之前购买的云主机上则解析可以设置如下 解析之后可以通过在线ping命令检测效果 5、配置生产环境最后1天 6、上传代码 此时需要使用上传工具pscpfilezilla。 和之前使用的方式一样。 Day9:Shell基础 一、关于shell 1、什么是shell 什么是shell Shell外壳是一个用 C 语言编写的程序它是用户使用 Linux 的桥梁。Shell 既是一种命令语言又是一种程序设计语言。 Shell 是指一种应用程序这个应用程序提供了一个界面用户通过这个界面访问操作系统内核的服务。 什么是脚本 脚本简单地说就是一条条的文字命令这些文字命令是可以看到的如可以用记事本打开查看、编辑。 常见的脚本JavaScriptJS前端VBScriptASPJSPPHP后端SQL数据库操作语言PerlShellpythonRubyJavaFXLua等。 为什么要学习和使用shell Shell属于内置的脚本 程序开发的效率非常高依赖于功能强大的命令可以迅速地完成开发任务批处理 语法简单代码写起来比较轻松简单易学 常见的shell种类 在linux中有很多类型的shell不同的shell具备不同的功能shell还决定了脚本中函数的语法Linux中默认的shell是/bin/bash重点流行的shell有ash、bash、ksh、csh、zsh等不同的shell都有自己的特点以及用途。 csh C shell 使用的是“类C”语法,csh是具有C语言风格的一种shell其内部命令有52个较为庞大。目前使用的并不多已经被/bin/tcsh所取代。 ksh Korn shell 的语法与 Bourne shell 相同同时具备了 C shell的易用特点。许多安装脚本都使用 ksh ksh有42条内部命令与bash相比有一定的限制性。 tcsh tcsh是csh的增强版与 C shell 完全兼容。 sh 是一个快捷方式已经被/bin/bash所取代。 nologin 指用户不能登录 zsh 目前Linux里最庞大的一种shellzsh。它有84个内部命令使用起来也比较复杂。一般情况下不会使用该shell。 bash 大多数Linux系统默认使用的shellbash shell 是 Bourne shell 的一个免费版本它是最早的 Unix shellbash还有一个特点可以通过help命令来查看帮助。包含的功能几乎可以涵盖shell所具有的功能所以一般的shell脚本都会指定它为执行路径。 2、shell入门 编写规范 代码规范 #!/bin/bash [指定告知系统当前这个脚本要使用的shell解释器] Shell相关指令 文件命名规范 文件名.sh .sh是linux下bash shell 的默认后缀 使用流程 ①创建.sh文件 touch/vim ②编写shell代码 ③执行shell脚本 脚本必须得有执行权限 案例1创建test.sh实现第一个shell脚本程序输出hello world. 输出命令#echo 123 注意输出的内容如果包含字母和符号不包含变量则需要用引号包括起来。如果是纯数字可以包也可以不包。 注意这里在运行时一定要写成 ./test.sh而不是 test.sh运行其它二进制的程序也一样直接写 test.shLinux 系统会去 PATH环境变量 里寻找有没有叫 test.sh 的而只有 /bin, /sbin, /usr/bin/usr/sbin 等在 PATH 里你的当前目录通常不在 PATH 里所以写成 test.sh 是会找不到命令的要用 ./test.sh 告诉系统说就在当前目录找。 案例2使用root用户帐号创建并执行test2.sh实现创建一个shelltest用户并在其家目录中新建文件try.html。 脚本执行的另外一个方式/bin/bash 脚本的路径了解 # Shell脚本分为简单的写法简单命令的堆积和复杂写法程序的设计 二、shell进阶重点 1、变量重点 1.1、变量的含义 a. 什么是量 量就是数据. b. 什么是变量 数据可以发生改变就是变量. 在一个脚本周期内,其值可以发生改变的量就是变量. c. 什么叫做一个脚本周期 一个脚本周期我们可以简单的理解为当前的shell文件 变量是shell中不可或缺的一部分也是最基础、最重要的组成部分。 1.2、变量的定义与使用重点 变量先定义后使用。 定义形如class_nameyunwe 使用形如echo $class_name 变量就是由2部分组成,一个是变量名左边另外一部分是变量的值右边 变量名和变量值是什么关系?? 变量名和变量值是使用和被使用关系; 我们的变量名来使用变量值; 在使用变量的时候一定需要在变量名前面添加一个$符号该要求在其他语言中也存在的例如php。 变量名的规范 注意变量名后面的等号左右不能有空格这可能和你熟悉的所有编程语言都不一样。同时变量名的命名须遵循如下规则 命名只能使用英文字母数字和下划线首个字符不能以数字开头。 中间不能有空格可以使用下划线“_”。 不能使用标点符号。 不能使用bash里的关键字可用help命令查看保留关键字。 问题以下哪个shell变量名是合法的 A. var B.?var C. user*name D.echo 案例1使用变量改写入门脚本中的第1个shell脚本。 关于单双引号的问题 双引号能够识别变量双引号能够实现转义类似于“\*” 单引号是不能识别变量只会原样输出单引号是不能转义的 案例2定义一个变量输出当前时间要求格式为“年-月-日时:分:秒”。 注意反引号esc键下方的那个键当在脚本中需要执行一些指令并且将执行的结果赋给变量的时候需要使用“反引号”。 1.3、只读变量了解 语法readonly 变量名 案例定义变量a并且其值为10随后设置其为只读变量再去尝试重新赋值 1.4、接收用户输入重点 语法read -p 提示信息 变量名 案例编写一个脚本test6.sh要求执行之后提示用户输入文件的名称路径然后自动为用户创建该文件 1.5、删除变量了解 语法unset 变量名 案例定义变量b20再输出b的值随后删除b最后再输出下b 2、条件判断语句 老婆给当程序员的老公打电话下班顺路买一斤包子带回来如果看到卖西瓜的买一个。当晚程序员老公手捧一个包子进了家门…老婆怒道你怎么就买了一个包子老公答曰因为看到了卖西瓜的。 把程序员老婆的话当作一段需求分析一下吧。买一斤包子是一个确定无疑的需求项无论后面是什么情况什么条件前面这一斤包子是肯定要买的。看到卖西瓜的是一个条件判断后面“买一个”是一个模糊不清的需求项买一个什么呢需求里没说啊。客户把这个当作开发人员默认了解的内容了。可是作为一个成熟合格的程序员该老婆的丈夫应该马上跟进确认需求“买一个什么”要不然程序可怎么写呢所以笑话里该程序员是不合格的起码是不积极不负责的。在没有明确需求的情况下他只能按照自己的理解来完成工作了。那比较可能的结果就有如下几种 1 看到卖西瓜的买一个西瓜 如果看到卖西瓜的 那么 买一个西瓜 否则 买一斤包子 2 看到卖西瓜的买一个包子 如果看到卖西瓜的 那么 买一个包子 3 看到卖西瓜的买一个卖西瓜的 4 看到卖西瓜的买一个老婆一直想买的东西 5 看到卖西瓜的随便买一个东西 上述1和2下面的条件汉字描述称之为“伪代码”也是属于条件表达式的语法。 语法1一个条件 ifcondition then command1 command2 ... fi 单行写法一般在命令行中执行的时候if [condition ]; then command; fi 语法2两个条件 ifcondition then command1 command2 ... else command fi 语法3多个条件 ifcondition1 then command1 elifcondition2 then command2 else commandN fi 3、运算符 在shell中运算符和其他编程脚本语言一样常见的有算数运算符、关系运算符、 逻辑运算符、字符串运算符、文件测试运算符等 3.1、算数运算符 下表列出了常用的算术运算符假定变量 a 为 10变量 b 为 20 运算符说明举例加法expr $a $b 结果为 30。-减法expr $a - $b 结果为 -10。*乘法expr $a \* $b 结果为 200。/除法expr $b / $a 结果为 2。%取余expr $b % $a 结果为 0。赋值a$b 将把变量 b 的值赋给 a。相等。用于比较两个数字相同则返回 true真。[ $a $b ] 返回 false假。!不相等。用于比较两个数字不相同则返回 true。[ $a ! $b ] 返回 true。 注意条件表达式要放在方括号之间并且要有空格例如: [$a$b] 是错误的必须写成 [ $a $b ]。 原生bash不支持简单的数学运算但是可以通过其他命令来实现例如 awk 和 exprexpr 最常用。 expr 是一款表达式计算工具使用它能完成表达式的求值操作。 例如两个数相加(注意使用的是反引号 而不是单引号) #!/bin/bash valexpr2 2 echo两数之和为 : $val 两点注意 表达式和运算符之间要有空格例如 22 是不对的必须写成 2 2这与我们熟悉的大多数编程语言不一样。 完整的表达式要被 包含注意这个字符不是常用的单引号在 Esc 键下边。 3.2、关系运算符 关系运算符只支持数字不支持字符串除非字符串的值是数字。 下表列出了常用的关系运算符假定变量 a 为 10变量 b 为 20 运算符说明举例-eq检测两个数是否相等相等返回 true。[ $a -eq $b ] 返回 false。-ne检测两个数是否相等不相等返回 true。[ $a -ne $b ] 返回 true。-gt检测左边的数是否大于右边的如果是则返回 true。[ $a -gt $b ] 返回 false。-lt检测左边的数是否小于右边的如果是则返回 true。[ $a -lt $b ] 返回 true。-ge检测左边的数是否大于等于右边的如果是则返回 true。[ $a -ge $b ] 返回 false。-le检测左边的数是否小于等于右边的如果是则返回 true。[ $a -le $b ] 返回 true。 -eqequal -nenot equal -gtgreat than -ltless than -gegreat than or equal -leless than or equal 案例使用a10b20来实现本案例 课堂作业 写一个脚本判断当前输入的用户是否存在。如果存在则提示“用户存在”否则提示“用户不存在”。 3.3、逻辑运算符 下表列出了常用的布尔运算符假定变量 a 为 10变量 b 为 20 运算符说明举例!非运算表达式为 true 则返回 false否则返回 true。[ ! false ] 返回 true。-o或或者运算有一个表达式为 true 则返回 true。[ $a -lt 20 -o $b -gt 100 ] 返回 true。-a与并且运算两个表达式都为 true 才返回 true。[ $a -lt 20 -a $b -gt 100 ] 返回 false。 或运算一个为真即为真全部为假才是假 与运算一个为假即为假全部为真才是真 3.4、字符串运算符 下表列出了常用的字符串运算符假定变量 a 为 abc变量 b 为 efg 运算符说明举例检测两个字符串是否相等相等返回 true。[ $a $b ] 返回 false。!检测两个字符串是否相等不相等返回 true。[ $a ! $b ] 返回 true。-z检测字符串长度是否为0为0返回 true。[ -z $a ] 返回 false。-n检测字符串长度是否为0不为0返回 true。[ -n $a ] 返回 true。str检测字符串是否为空不为空返回 true。[ $a ] 返回 true。 案例将上述的语法验证下 3.5、文件测试运算符重点 文件测试运算符用于检测 Unix/Linux 文件的各种属性。 属性检测描述如下 操作符说明举例-b file检测文件是否是块设备文件如果是则返回 true。[ -b $file ] 返回 false。-c file检测文件是否是字符设备文件如果是则返回 true。[ -c $file ] 返回 false。-d file检测文件是否是目录如果是则返回 true。[ -d $file ] 返回 false。-f file检测文件是否是普通文件既不是目录也不是设备文件如果是则返回 true。[ -f $file ] 返回 true。-g file检测文件是否设置了 SGID 位如果是则返回 true。[ -g $file ] 返回 false。-k file检测文件是否设置了粘着位(Sticky Bit)如果是则返回 true。[ -k $file ] 返回 false。-p file检测文件是否是有名管道如果是则返回 true。[ -p $file ] 返回 false。-u file检测文件是否设置了 SUID 位如果是则返回 true。[ -u $file ] 返回 false。-r file检测文件是否可读如果是则返回 true。[ -r $file ] 返回 true。-w file检测文件是否可写如果是则返回 true。[ -w $file ] 返回 true。-x file检测文件是否可执行如果是则返回 true。[ -x $file ] 返回 true。-s file检测文件是否为空文件大小是否大于0不为空返回 true。[ -s $file ] 返回 true。-e file检测文件包括目录是否存在如果是则返回 true。[ -e $file ] 返回 true。 案例测试上述标绿色的效果 注意权限几个判断如果只有一个部分符合则认为是有权限的。 4、shell脚本附带选项重点 问题描述在linux shell中如何处理tail -10 access.log这样的命令行选项 步骤 调用tail指令 系统把后续选项传递给tail Tail先去打开指定的文件 取出最后10行 问题自己写的shell是否也可以像内置命令一样传递一些选项呢 答可以的传递方式与上述的描述是一样的关键是怎么接收。例如 传递 #./test.sh a b c 接收 在脚本中可以用“$1”来表示a“$2”来表示b以此类推。 接收可以用“$”加上选项对应的序号即可。 测试编写test14.sh传递abc输出其值 其实$1、$2是变量。 练习创建自定义指令“user”可以直接执行要求该指令具备以下语法和功能 a.#user -add 用户名 【添加用户】 b.#user -del 用户名 【删除用户及其家目录】 同时题目中要求是指令所以可以再去添加个别名 三、作业 1、尝试写一个shell的简易计算器功能实现加减乘除。 2、作业使用-e文件测试运算符改写“1.4接收用户输入”的案例在创建文件的时候需要先判断是否存在如果存在则提示用户并且不执行创建操作如果不存在则创建。 3、尝试创建一个shell脚本该脚本要求可以类似于“touch”指令一样能够使用“touch 文件路径”的形式进行创建文件操作并且要求创建好的文件权限默认为755。 Day10:MySQL基础 一、关于数据库 1、什么是数据库 如果一个项目是动态内容会变化的网页后缀.jsp、.php、.shtml等内容的话则数据库是必不可少的一个环节。 2、MySQL简介 MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发2008年被Sun公司收购目前属于 Oracle 旗下产品。MySQL 是最流行的数据库管理系统之一在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System关系数据库管理系统) 应用软件。其和php是黄金搭档LAMP/LNMP。 3、常见的其他数据库软件 目前市场上还有Oracle重量级的数据库、MS SQL Server微软、Access微软、PostgreSQL、DB2、MariadbMySQL分支完全兼容MySQL。 二、MySQL的安装与初始化 操作之前先确保计算机时间准确。 1、Linux下的软件安装方式初步 a. 源码包建议 优点 开源如果有足够的能力可以修改源代码 编译安装更加适合自己的系统稳定高效 缺点 安装步骤较多容易出错 编译过程时间较长 案例使用源码编译安装方式安装ncurses一种常用的终端库 扩展解包 常用语法 #tar -zxvf *.tar.gz 大多数 #tar -jxvf *.tar.bz2 选项含义 -z或--gzip或--ungzip通过gzip指令处理文件 -x或--extract或--get从文件中还原文件 -v显示操作过程 -f或--file指定一个文件 -j支持bzip2解压文件 ①先将软件包传递到服务器上“/usr/local/src” ②解压需要安装的源码包 # tar -zxvf ncurses-6.1.tar.gz ③切换到源码文件夹然后执行后续操作 配置config/configure/bootstrap→编译make/bootstrapd→安装make install/bootstrapdinstall 配置操作主要是指定软件的安装目录、需要的依赖在什么地方、指定不需要可选依赖、配置文件的路径、通用数据存储位置等等。 指定安装的路径--prefix路径 需要依赖的路径--with-PACKAGE名[包所在的路径] 不需要依赖--without-PACHAGE名 # ./configure --prefix/usr/local/ncurses # make # make install 成功之后查看目录可选 b. 二进制包rpm 优点: 包管理系统简单只需要几个命令就可以实现包的安装升级查询和卸载 缺点: 经过编译不再可以看到源代码 回顾rpm相关指令 #rpm -qa|grep 关键词 #rpm -e 关键词[--nodeps] #rpm -ivh 完整名称 #rpm -Uvh 完整名称 #rpm -qf 文件路径 【查询指定文件属于哪个包】 案例使用二进制包安装lynx一款纯命令行的浏览器 在光盘中就有这个包 例如查看百度#lynx --dump www.baidu.com c. yum等傻瓜式安装 优点: 安装简单快捷 缺点: 完全丧失了自定义性 注意如果不更改软件来源的情况下是需要联网才能使用yum的。 常用的yum指令 #yum list [installed] 列出当前已经装的和可以装的软件全部 #yum search 名 搜索指定的关键词的包 #yum [-y] install 包名 安装指定的包-y表示允许不再确认 #yum [-y] update [包名] 更新指定的包不指定包则更新全部软件 #yum [-y] remove 包名 卸载指定的包 案例使用yum指令卸载火狐浏览器 #yum remove firefox 案例使用yum指令安装火狐浏览器 #yum install firefox 2、安装MySQL重点 注此处安装以yum安装为例 2.1、MySQL安装 #yum install mysql-server 完成的 2.2、MySQL初始化 #service mysqld start 查看端口号默认端口号3306 # mysql_secure_installation Entercurrent password for root (enter for none):请输入当前root用户的密码如果没有按回车注意此root并非linux的root用户。 Setroot password?是否设置root密码 需要设置的密码qhabOfhlluB9 Removeanonymous users?是否移除匿名用户选择移除Y Disallowroot login remotely?是否不允许root远程登录默认不允许 Removetest database and access to it?是否移除测试数据库建议先不移除 Reloadprivilege tables now?是否重新加载权限表当我们更改了mysql用户相关的信息之后建议去重载权限 2.3、MySQL的启动控制 语法service mysqldstart/stop/restart 进入mysql的方式 #mysql -u用户名 -p 退出MySQL到linux命令行 mysql exit 2.4、默认目录/文件位置了解 数据库存储目录/var/lib/mysql 配置文件/etc/my.cnf 三、MySQL的基本操作难点 1、名词介绍 以Excel文件举例 数据库可以看作是整个excel文件。 数据表可以看作是一个excel文件中的工作表。 行记录可以看作是一个工作表中的一行 列字段可以看作是一个工作表总的一列 2、库操作重点 以下命令在MySQL终端命令行中执行大小写均可 SHOW DATABASES; 显示当前MySQL中全部的数据库 CREATE DATABASE 库名; 创建数据库 DROP DATABASE 库名; 删除数据库 USE 库名; 切换数据库 Show databases效果 创建数据库创建yunwei数据库 删除数据库删除yunwei数据库 切换数据库切换到test数据库 3、表操作 SHOW TABLES; 显示当前数据库中所有的表名必须先use数据库 CREATE TABLE 表名称 在当前数据库下创建数据表 ( 列名称1 数据类型[NOT NULL AUTO_INCREMENT], 列名称2 数据类型, 列名称3 数据类型, ...., PRIMARY KEY(主键字段名) ); 常见的数据类型int整型、char定长字符、varchar不定长字符。 主键一般就是序号所在的那一列主键不能重复。 DESC 表名; 描述一个数据表查看表结构 DROP TABLE [IF EXISTS] 表名; 删除一个数据表 案例使用上述的语法 查看所有的数据表 创建数据表去test库中创建 要求表名xg要求有字段如下 Id字段11位整型不为空自增主键 Username字段varchar类型20长度 Password字段char类型32长度 SQLstandard query language语句 Create table xg( Idint(11) not null auto_increment, Usernamevarchar(20), Passwordchar(32), Primary key(id) ); 查看表结构 删除数据表 4、记录/字段操作重点 4.1、增加记录 语法1INSERT INTO 表名称 VALUES (值1, 值2,....); 语法2INSERT INTO 表名称 (列1, 列2,...) VALUES (值1, 值2,....); 案例往数据表xg表中新增一个记录username为zhangsanpassword为123456加密结果E10ADC3949BA59ABBE56E057F20F883E Sql语句 insert into xg (username,password) v alues(‘zhangsan’,’E10ADC3949BA59ABBE56E057F20F883E’) 要求前面的列名与值要一一对应。 4.2、更新记录 语法UPDATE 表名称 SET 列名称1 新值1,列名称2 新值2… WHERE 列名称 某值; 案例使用更新语句更新id大于等于2的记录将其密码改为25F9E794323B453885F5181F1B624D0B SQL语句 Update xg set password ‘25F9E794323B453885F5181F1B624D0B’where id 2; 以后在执行影响行数的sql操作的时候一定需要注意条件是否写错或者漏写。 4.3、查询记录 SELECT列名称1,列名称2… FROM 表名称WHERE 条件; SELECT * FROM 表名称WHERE 条件; 案例查询刚才新增的记录 只查询用户名和密码并且是id2的 Select username,password from xg where id 2; 查询全部 Select * from xg; 4.4、删除记录 DELETEFROM 表名称 WHERE列名称 值; 案例删除id为2的记录 Delete from xg where id 2; 5、备份与还原重点 5.1、备份导出 全量备份数据结构#mysqldump -uroot-p123456 -A 备份文件路径 指定库备份数据结构# mysqldump-uroot -p123456 库名 备份文件路径 多个库备份数据结构# mysqldump -uroot -p123456 --databases db1db2 备份文件路径 案例备份整个库 # mysqldump -uroot -pqhabOfhlluB9 -A /root/sql_201804061609.sql 案例每1分钟自动备份1次test数据库 计划任务编写 等待几分钟观察目录情况 5.2、还原导入 还原部分分1mysql命令行source方法和 2系统命令行方法 1.还原全部数据库: (1) mysql命令行mysql source 备份文件路径 (2) 系统命令行#mysql -uroot -p123456 备份文件路径 2.还原单个数据库(需指定数据库) (1) mysql use 库名 mysql source 备份文件路径 (2) #mysql -uroot -p123456 库名 备份文件路径 3.还原单个数据库的多个表(需指定数据库) (1) mysql use 库名 mysql source 备份文件路径 (2) mysql -uroot -p123456 库名 备份文件路径 4.还原多个数据库一个备份文件里有多个数据库的备份此时不需要指定数据库 (1) mysql命令行mysql source 备份文件路径 (2) 系统命令行 mysql -uroot -p123456 备份文件路径 案例1人为删除xg表模拟数据表丢失然后通过最后一次备份还原数据表。 先删除数据表 还原操作 案例2需要还原sql文件到test库mobile.sql 31万条数据 设置Mysql连接字符集 Mysqlset names utf8; 【三码一致服务器端传输过程中客户端】 四、扩展 1、mysql的远程管理工具 分为两大类B/S架构、C/S架构。 B/SB是指浏览器S是指服务器。例如百度搜索应用就属于BS架构软件。 C/SC是指客户端S是指服务器。例如QQ、电脑端微信等应用程序都是CS架构。 在BS中mysql有个典型的管理工具PMAphpMyAdmin CS中比较典型的软件navicat、mysql workbrach 要解决的问题允许mysql远程登录 a. 先进入数据库选择mysql数据库 b. 执行sql语句select host,user fromuser; c. 将其中的一个记录的host值改为“%”表示可以允许任何地方登录 d. 刷新权限表或者重启mysql 刷新权限mysql flushprivileges; e. navicat登录成功 五、作业 1、导入sql文件mobile.sql到test数据库并使用该数据表进行数据的增删改查练习。 2、请编写一个简单的shell脚本文件名为autoBakup.sh并写出计划任务指令能够实现每天0点整自动备份整个MySQL数据库。 Day11:Yum项目上线实战 网站运维 一、编译安装与卸载Nginx Nginx是一款比较流行的web服务器软件类似于Apache。 1、安装nginx ①下载nginx 下载地址https://nginx.org/en/download.html 使用在服务器端下载的方式进行下载此处不使用filezilla #wget 地址 例如当前需要下载nginx到“/usr/local/src” #wget https://nginx.org/download/nginx-1.13.11.tar.gz ②解压nginx安装包 # tar -zxvf nginx-1.13.11.tar.gz ③进入nginx解压目录 开始进行配置、编译、安装操作 在配置时候报错没有PCRE库 直接yum安装pcre-devel #yum installpcre-devel 报错缺少zlib库 直接使用yum安装zlib库 #yum installzlib-devel 还需要自己去下载一个zlib的源码包然后解压出来 最终的nginx配置命令 #./configure--prefix/usr/local/nginx --with-pcre --with-zlib/usr/local/src/zlib-1.2.11 开始安装 #make 最后安装 #make install 安装好的目录 ④运行nginx 先停止Apache然后再运行nginx #/usr/local/nginx/sbin/nginx 【启动命令】 #/usr/local/nginx/sbin/nginx-s reload 【重载重载配置文件】 启动效果 ⑤了解卸载编译安装的软件 #rm -rf 软件的安装目录 注意卸载一个编译安装的软件的时候必须先停止。 二、关于LAMP LAMPLinux Apache MySQL PHP LAMP架构组合 LNMPLinux Nginx MySQL php-fpm LNMP架构组合 LNMPALinux Nginx MySQL PHP Apache Nginx代理方式 三、LAMP环境部署 首先登录控制台获取需要连接的主机ip地址 后续可以进行远程登录。 在整个LAMP中需要自己安装的也就只有Apache PHP Mysql。后续以yum为例。 1、PHP与Apache的安装 #yuminstall php 【在安装好php的同时会一起顺带安装Apache】 启动Apache#service httpd start 此处会有一个警告无法确定主机的FQDN如果需要处理则需要修改Apache的配置文件/etc/httpd/conf/httpd.conf # vim /etc/httpd/conf/httpd.conf 在文件中搜索“ServerName” 将前面的“#”去除保存退出重启apache 测试访问在地址栏中输入ip地址直接访问关闭防火墙 测试php是否可以运行默认的Apache站点目录/var/www/html 创建一个index.php文件 运行php看到页面 2、MySQL的安装与初始化 #yum install mysql-server 初始化操作 #service mysqld start 【启动】 # mysql_secure_installation 测试进行命令行登录 #mysql -uroot -p 如果需要远程登录则需要修改登录主机 重启MYSQL或者刷新权限 Mysql flush privileges; 阿里云上的安全组端口放行 使用navicat进行登录 3、项目上线 解压项目包将upload其中的内容上传到服务器站点目录/var/www/html ①使用filezilla上传需要的代码文件 ②传完之后打开网站的首页会运行DZ的安装向导 a. 选择同意协议 b. 赋予指定目录写权限 # chmod 777 -R /var/www/html #yum install php-mysqli 重启Apache 重启之后保证所有的配置项都是绿色的勾才可以下一步。 c. 选择DZ的安装方式 d. 填写数据库与管理员的信息 e. 安装完成 f. 首页
http://www.dnsts.com.cn/news/83166.html

相关文章:

  • 做网站用什么软件知乎wordpress文章商品模板
  • 网站备案要营业执照原件吗开发者模式是干什么的
  • 常德建设网站长沙制作公园仿竹围栏供货商
  • 建设工程现行标准查询网站合肥做网站专家
  • 乐清市住房和城乡建设规划局网站中瑞网络网站建设流程
  • 怎么在公众号上做网站电商网站优化方案
  • 企业网站源码搜一品资源网西宁网站建设嘉荐君博l
  • 网站联系我们的地图怎么做的深圳市造价信息网
  • 平台网站建设 厦门宁夏吴忠网站建设
  • 红酒商城网站建设方案楚雄企业网站建设公司
  • 深圳网站建设联雅wordpress博客的搭建
  • flashfxp上传网站模板开发网站的流程步骤
  • 网站主页调用wordpress伪静态插件
  • 太原建设网站公司网页制作公司的职员
  • 北京市建设工程质量监督站网站wordpress 新建栏目
  • 上海 网站建郑州黑帽seo培训
  • h5做网站教程dede网站转移
  • 网站嵌套代码百度指数的各项功能
  • 想做cpa 没有网站怎么做口碑好的网站建设多少钱
  • 兰溪网站建设五台网站建设
  • 外网设计网站网站建设怎么找到客户
  • 手机网站导航设计模板亚马逊雨林探险之旅作文
  • 网站上不去首页seo要怎么办青岛的互联网公司
  • 网站源文件做网站一个月工资
  • 淄博网站seo价格云南文山在哪里
  • 中小企业怎么优化网站只做旧房翻新的装修公司
  • 顺德做网站推广哪家好信息管理网站开发实验体会
  • 查询建设工程施工规范网站成都住建局官网e蓉
  • 上海网站建设百度推广公司哪家好苏州招聘网站制作
  • 那些知名网站是外包做的做自己的网站logo