课程简介
linux服务器配置及常⽤命令centos
开发软件配置及服务环境的搭建
软件的安装和配置
mysql数据库使⽤、monDB使⽤、redius的使⽤
git的使⽤html/css
js、jquery、vue
课程学习⽅式
学习⽅法:
linux学习基本上都是命令和配置命令要多敲多记
掌握基本配置
多在⽹上浏览相关⽂章增⻓⻅识
⼀、操作系统
操作系统是电脑的管家,管理电脑软硬件资源,直接运⾏在裸机上的,其他软件都必须在操作系统上运⾏
操作系统分类
桌⾯操作系统:windows、linux(ubuntu、centos、rehat、
debian)、mac os 、中标麒麟
移动端:android、symbian、ios、winphone、blackberry
服务器端:windows、os server 、rehat、centos、geetoo(贱兔)、
ubuntu
嵌⼊式操作系统
类unix 把由unix衍⽣出来的系统称之为类unix系统。
32位和64位,寻址⽅式不同,64位效率更⾼
- linux操作系统
Linux是⼀套免费使⽤和⾃由传播的类Unix操作系统,是⼀个基于POSIX的多⽤户、多任务、⽀持多线程和多CPU的操作系统,继承了Unix以⽹络为核⼼的设计思想,是⼀个性能稳定的多⽤户⽹络操作系统。
Linux操作系统诞⽣于1991 年10 ⽉5 ⽇(这是第⼀次正式向外公布时间)。Linux 存在着许多不同的Linux版本,但它们都使⽤了Linux内核。Linux可安装在各种计 算机硬件设备中,⽐如⼿机平板电脑、路由器、视频游戏控制台、台式计算机、⼤型机和超级计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上⼈们已经习惯了⽤Linux 来形容整个基于Linux内核,并且使⽤GNU⼯程各种⼯具和数据库的操作系统。
内核 操作系统最基础的部分,其他应⽤都要通过内核对计算机硬件进⾏安全访问。内核源码⽹址:http://www.kernel.org
外围程序:构成Linux系统的外围程序⼤部分来⾃ GNU 项⽬或其他组织的开源软件,例如顶顶有名的C语⾔编译⼯具 GCC ,命令解析器程序 bash ,⽹站服务程序 httpd 等,因此Linux操作系统最确切的含义为 “GNU/Linux操作系统”
2. linux的发展史
Linux 操作系统的诞⽣、发展和成⻓过程始终依赖着五个重要⽀柱:
UNIX操作系统
MINIX操作系统
GNU计划
POSIX标准
Internet ⽹ 络
Unix操作系统
Unix 操作系统,是⼀个强⼤的多⽤户、多任务操作系统,⽀持多种处理器架构, 按照操作系统的分类,属于分时操作系统,最早由Ken Thompson、Dennis
Ritchie 和 Douglas McIlroy于1969年在 AT&T 的⻉尔实验室开发。
肯•汤普逊最初在 GE-645 机器上,写出了⼀个仿真器,可以让⼀个⽂件系统与内存分⻚机制运作起来。他同时也写了⼀个程序语⾔Bon,编写了⼀个太空旅⾏游戏。 经过实际运⾏后,他发现游戏速度很慢⽽且耗费昂贵,每次运⾏会花费75美元。在GE-645 被搬⾛后,肯•汤普逊在实验室中寻找没⼈使⽤的机器,找到了⼏台 PDP-
7。丹尼斯•⾥奇的帮助下,汤普逊⽤ PDP-7 的汇编语⾔重写了这个游戏,并使其在 DEC PDP-7上运⾏起来。
1969年,肯•汤普逊开发了⼀个壳层(shell)与⼀些驱动程序,做出⼀个操作系统 的雏形。在团队合作下,最终做出了⼀个分时多任务操作系统,成为第⼀版
UNIX。
第⼀版 UNIX 是⽤PDP-7汇编语⾔编写的,⼀些应⽤是由叫做B语⾔的解释型语⾔和汇编语⾔混合编写的。
在进⾏系统编程时不够强⼤,所以汤普逊和⾥奇对其进⾏了改造,并于1971年共 同发明了C语⾔。
1973年汤普逊和⾥奇⽤C语⾔重写了Unix,形成第三版UNIX。在当时,为了实现 最⾼效率,系统程序都是由汇编语⾔编写,所以汤普逊和⾥奇此举是极具⼤胆创新和⾰命意义的。⽤C语⾔编写的Unix代码简洁紧凑、易移植、易读、易修改,为此 后Unix的发展奠定了坚实基础。
此后的10年,Unix在学术机构和⼤型企业中得到了⼴泛的应⽤,当时的UNIX拥有 者AT&T公司以低廉甚⾄免费的许可将Unix源码授权给学术机构做研究或教学之
⽤,许多机构在此源码基础上加以扩展和改进,形成了所谓的“Unix变种”,这些变 种反过来也促进了 Unix 的发展,其中最著名的变种之⼀是由加州⼤学柏克莱分校开发的伯克利软件套件(BSD)产品。
后来AT&T意识到了Unix的商业价值,不再将Unix源码授权给学术机构,并对之前 的Unix及其变种声明了著作权权利。BSD在Unix的历史发展中具有相当⼤的影响
⼒,被很多商业⼚家采⽤,成为很多商⽤Unix的基础。其不断增⼤的影响⼒终于引 起了AT&T的关注,于是开始了⼀场持久的著作权官司,这场官司⼀直打到AT&T将
⾃⼰的Unix系统实验室卖掉,新接⼿的Novell采取了⼀种⽐较开明的做法,允许柏 克莱分校⾃由发布⾃⼰的Unix变种,但是前提是必须将来⾃于AT&T的代码完全删 除,于是诞⽣了4.4 BSD Lite版,由于这个版本不存在法律问题,4.4 BSD Lite成为了现代柏克莱软件包的基础版本。尽管后来,⾮商业版的Unix系统⼜经过了很多演 变,但其中有不少最终都是创建在BSD版本上(Linux、Minix等系统除外)。所以 从这个⻆度上,4.4 BSD ⼜是所有⾃由版本Unix的基础,它们和System V及Linux 等共同构成Unix操作系统这⽚璀璨的星空。
GNU
1983年,Richard Stallman发起了GNU项⽬,⽬标是创建⼀个完全⾃由且向下兼容UNIX的操作系统。
1991年,GNU计划已经开发出了许多⼯具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核⼼HURD⼀直处于实验阶段,没有任何可⽤性,实质上也没能开发出完整的GNU操作系统,但是GNU奠定了Linux⽤户基础和开发环境。
minix
1987年,荷兰阿姆斯特丹的Vrije⼤学计算机科学系的Andrew S. Tanenbaum教授所发展的⼀个类Unix操作系统,主要⽤于教学
linux
1991年初,林纳斯•托瓦兹开始在⼀台386sx兼容微机上学习minix操作系统。1991
年4⽉,林纳斯•托瓦兹开始酝酿并着⼿编制⾃⼰的操作系统。
1991 年4 ⽉13 ⽇在comp.os.minix 上发布说⾃⼰已经成功地将bash 移植到了
minix 上,⽽且已经爱不释⼿、不能离开这个shell软件了。
1991年7⽉3⽇,第⼀个与Linux有关的消息是在comp.os.minix上发布的(当然此 时还不存在Linux这个名称,当时林纳斯•托瓦兹的脑⼦⾥想的可能是FREAX,
FREAX的英⽂含义是怪诞的、怪物、异想天开等)。
1991年的10⽉5⽇,林纳斯•托瓦兹在comp.os.minix新闻组上发布消息,正式向外 宣布Linux内核的诞⽣(Freeminix-likekernel sources for 386-AT)。
1993年,⼤约有100余名程序员参与了Linux内核代码编写/修改⼯作,其中核⼼组 由5⼈组成,此时Linux 0.99的代码⼤约有⼗万⾏。
1994年3⽉,Linux1.0发布,代码量17万⾏,当时是按照完全⾃由免费的协议发 布,随后正式采⽤GPL协议。
1995年1⽉,Bob Young创办了RedHat(⼩红帽),以GNU/Linux为核⼼,集成了400多个源代码开放的程序模块,搞出了⼀种冠以品牌的Linux,即RedHat
Linux,称为Linux"发⾏版",在市场上出售。这在经营模式上是⼀种创举。
1996年6⽉,Linux 2.0内核发布,此内核有⼤约40万⾏代码,并可以⽀持多个处理器。此时的Linux 已经进⼊了实⽤阶段,全球⼤约有350万⼈使⽤。
1998年2⽉,以Eric Raymond为⾸的⼀批年轻的"⽼⽜羚⻣⼲分⼦"终于认识到
GNU/Linux体系的产业化道路的本质,并⾮是什么⾃由哲学,⽽是市场竞争的驱 动,创办了"Open Source Intiative"(开放源代码促进会)"复兴"的⼤旗,在互联
⽹世界⾥展开了⼀场历史性的Linux产业化运动。
2001年1⽉,Linux 2.4发布,它进⼀步地提升了SMP系统的扩展性,同时它也集成了很多⽤于⽀持桌⾯系统的特性:USB,PC卡(PCMCIA)的⽀持,内置的即插即
⽤,等等功能。
2003年12⽉,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的⽀持都有很
⼤的变化。
2004年的第1⽉,SuSE嫁到了Novell,SCO继续顶着骂名四处强⾏“化缘”, Asianux, MandrakeSoft也在五年中⾸次宣布季度赢利。3⽉,SGI宣布成功实现了Linux操作系统⽀持256个Itanium 2处理器。
-
主要特征
基本思想 Linux的基本思想有两点:第⼀,⼀切都是⽂件;第⼆,每个软件都有确定的⽤途。其中第⼀条详细来讲就是系统中的所有都归结为⼀个⽂件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核⽽⾔,都被视为拥有各⾃特性或类型的⽂件。⾄于说Linux是基于Unix的,很⼤程度上也 是因为这两者的基本思想⼗分相近。
多⽤户、多任务 Linux⽀持多⽤户,各个⽤户对于⾃⼰的⽂件设备有⾃⼰特殊的权利,保证了各⽤户之间互不影响。多任务则是现在电脑最主要的⼀个特 点,Linux可以使多个程序同时并独⽴运⾏。
⽀持多种平台 Linux可以运⾏在多种硬件平台上,如具有x86、680x0、
SPARC、Alpha等处理器的平台。此外Linux还是⼀种嵌⼊式操作系统,可以运
⾏在掌上电脑、机顶盒或游戏机上。2001年1⽉份发布的Linux 2.4版内核已经能够完全⽀持Intel 64位芯⽚架构。同时Linux也⽀持多处理器技术。多个处理器同时⼯作,使系统性能⼤⼤提⾼
良好的界⾯ Linux同时具有字符界⾯和图形界⾯。在字符界⾯⽤户可以通过键盘输⼊相应的指令来进⾏操作。它同时也提供了类似Windows图形界⾯的X-
Window系统,⽤户可以使⽤⿏标对其进⾏操作。在X-Window环境中就和在
Windows中相似,可以说是⼀个Linux版的Windows。
Linux发⾏版 (也被叫做 GNU/Linux 发⾏版) 通常包含了包括桌⾯环境、办公套件、媒体播放器、数据库等应⽤软件。linux重要的发⾏版本
RedHat: 最成功的商⽤linux
CentOS: 社区版的redhat,免费
Fedora: 个⼈版的redhat
Debian: 纯粹的⾃由软件构件的发⾏版,拥有最⼤开源软件库
Ubuntu: 友好的桌⾯版linux
Geentoo: ⼀切从源码开始⼿动安装
Arch: 省去编译,⼿动安装⼀切,性能优异
Deepin:国⼈制作的发⾏版,QQ、office、搜狗输⼊法等除游戏外能满⾜ 你全部的习惯
linux有两⼤发⾏版阵营 -
linux系统优点:
免费、开源
速度快,资源少
稳定、安全,不宕机多⽤户、多任务
⽀持多种平台
- Linux启动流程(了解)
加载BIOS(Basic Input Output System):BIOS是系统启动时加载的第⼀个软件。
启动上电⾃检POST(Power-On-Self-Test),负责完成对CPU、主板、内 存、软硬盘⼦系统、显示⼦系统(包括显示缓存)、串并⾏接⼝、键盘、CD-ROM光驱等的检测,主要检查硬件的好坏。
对外部设备进⾏初始化,读取BIOS参数,并和实际的硬件进⾏⽐较,如果不符合,会影响系统启动。
查找MBR(Master Boot Record,主引导分区)。如果未找到,会提示找不到
硬盘。
读取主引导分区(MBR):拷⻉启动引导代码BootLoader,不同的系统有不同的 主引导程序(BootLoader),CentOS⼀般使⽤的是grub。GRUB(GRand Unified Bootloader)是⼀个来⾃GNU项⽬的多操作系统启动程序。
GRUB菜单:GRUB程序加载执⾏并引导kernel(内核)程序。内核引导:加载驱动,切换到真正的根⽂件系统
系统初始化阶段:设置运⾏级别、初始化系统,加载中底层服务系统的运⾏级别。
根据对应的运⾏级别,查找对应的脚本⽂件。例如,运⾏5级别,查找
/etc/rc5.d⽬录,启动该⽬录下的相关服务。
这些⽂件夹下的init脚本都有⼀些特别的名字,命名都以S(start)、
K(kill)或D(disable)开头,后⾯跟⼀个数字。当init进⼊⼀个运⾏ 等级的时候,它会按照数字顺序运⾏所有以K开头的脚本并传⼊stop 参数,除⾮对应的init脚本在前⼀个运⾏等级中没有启动。然后init按 照数字顺序运⾏所有以S开头的脚本并传⼊start参数。任何以D开头的
init脚本都会被忽略—这让你可以在指定的运⾏等级禁⽌⼀个脚本,或 者你也可以仅仅移除全部符号链接。
查看和设置运⾏级别
systemctl 命令说明
systemctl get-default 获得当前的运⾏级别
systemctl set-default multi- user.target 设置默认的运⾏级别为mulit-user
systemctl isolate multi- user.target 在不重启的情况下,切换到运⾏级别
mulit-user下
systemctl isolate graphical.target 在不重启的情况下,切换到图形界⾯下
runlevel centos6命令,获得当前的运⾏级别
init n centos6命令,设置运⾏级别,n取值0-6
-
远程连接服务器
在实际开发中,Linux服务器都是被放在服务器机房⾥的,我们不能直接进⼊到服 务器机房去操作这台Linux服务器,⽽是通过⼀些远程链接⼯具,对Linux服务器进
⾏管理。 -
ssh协议
SSH 为 Secure Shell的缩写,由 IETF 的⽹络⼩组(Network Working
Group)所制定;SSH 为建⽴在应⽤层基础上的安全协议。SSH 是⽬前较可靠,专为远程登录会话和其他⽹络服务提供安全性的协议。
linux默认没有安装ssh服务,需要我们使⽤代码⼿动的在CentOS服务器上安 装ssh服务。
传输是加密,可以有效防⽌数据再传输过程中被截取传输的数据是压缩的,所以速度超快
开启器ssh服务,CentOS如果没有安装ssh服务,⾸先需要安装ssh服务器 -
远程连接⼯具
xshell( 收 费 ) scrt( 收 费 ) putty( 免 费 ) finalshell(免费) -
常⽤命令
Linux系统的命令通常都是如下所示的格式: -
获取登录信息 - w / who
-
查看⾃⼰使⽤的Shell
Shell也被称为“壳”或“壳程序”,它是⽤户与操作系统内核交流的翻译官,简单 的说就是⼈与计算机交互的界⾯和接⼝。⽬前很多Linux系统默认的Shell都是bash(Bourne Again SHell),因为它可以使⽤tab键进⾏命令和路径补全、可以保存历史命令、可以⽅便的配置环境变量以及执⾏批处理操作。 -
查看命令的说明和位置 - whatis / which / whereis。
-
清除屏幕上显示的内容 - clear。
-
查看帮助⽂档 - man / info / help
-
查看系统和主机名 - uname / hostname。
说明: 是连接⽂件内容并打印到标准输出的命令,后⾯会讲到该命
令; /etc 是Linux系统上的⼀个⾮常重要的⽬录,它保存了很多的配置⽂
件; 是该⽬录下的⼀个⽂件,因为我⾃⼰使⽤的Linux发
⾏版本是CentOS 7.6,因此这⾥会有⼀个这样的⽂件。
7. 时间和⽇期 - date / cal。
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
- 重启和关机 - reboot / shutdown。
说明:在执⾏ 命令时会向登录系统的⽤户发出警告,可以在命
令后⾯跟上警告消息来替换默认的警告消息,也可以在来表示⽴刻关机。
9. 退出登录 - exit / logout。
10. 查看历史命令 - history。
参数后通过
说明:查看到历史命令之后,可以⽤ 来重新执⾏该命令;
通过 可以清除历史命令。
⼆、软件安装
简单来说,Linux系统可以分为Debian和RedHat两⼤分⽀。基于Debian平台⽐较 流⾏的操作系统是Ubuntu,基于RedHat平台⽐较流⾏的操作系统是fedora.两种 不同的分⽀,它们所使⽤的软件管理命令也是不⼀样的。
基于Debian平台的操作系统,使⽤dpkg和apt指令管理软件,基于RedHat平台的 操作系统,使⽤rpm和yum指令来管理软件。它们的命名⽅式不同,但是命令的执
⾏效果⼤致相同,我们主要学习基于Fedora平台CentOS系统下的rpm和yum指 令。
rpm安装
yum安装
源码安装(后续讲述)
1.rpm
pm是“Red-Hat Package Manager”的简写,为 Red Hat专⻔开发的套件管理系统,⽅便软件的安装、更新及移除。所有源⾃Red Hat的“Linux ”发⾏版都可以使
⽤ rpm.
2.yum
yum(全称为 Yellow dog Updater, Modified)是⼀个在Fedora和RedHat以及
CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器⾃动下载RPM包并且安装,可以⾃动处理依赖性关系,并且⼀次安装所有依赖的软件 包,⽆须繁琐地⼀次次下载、安装。
命令⾏ 作⽤ 示例
yum search 搜索软件包 yum search python
yum list installed 列出已经安装的软件包 yum list installed
yum install [-y] 安装指定的软件包 yum install vim
yum remove 移除软件包 yum remove vim
yum update 更新软件包 yum updat tar
yum check-update 检查更新 yum check-update
yum info 列出指定软件包详情 yum info python
yum clear all 清除yum源缓存 yum clear all
yum makecache ⽣成新的yum源缓存 yum makecache
rpm和yum的区别
yum是基于rpm的,它的功能更加强⼤。
场景 rpm yum
离线的.rpm 安装包 能够安装,但是不能⾃动下载安装依赖 能够安装,并且能够⾃动安装下载安装依赖
在线安装 不⽀持,只能把安装包下载到本地安装 ⽀持在线下载安装
切换yum源
以nginx为例,说明yum的使⽤
[root ~]# yum -y install nginx
…
Installed:
nginx.x86_64 1:1.12.2-2.el7 Dependency Installed:
nginx-all-modules.noarch 1:1.12.2-2.el7 nginx-mod-http-geoip.x86_64 1:1.12.2-2.el7
nginx-mod-http-image-filter.x86_64 1:1.12.2-2.el7 nginx-mod-http-perl.x86_64 1:1.12.2-2.el7
nginx-mod-http-xslt-filter.x86_64 1:1.12.2-2.el7 nginx-mod-mail.x86_64 1:1.12.2-2.el7