在第2次世界大战刚刚结束(以抗日战争胜利做为标记),也就是19世纪的40年代末西方国家的通用电气,麻省理工大学和贝尔工做室倡导了一个超级计算机的开发计划,这计划被称为Multics工程计划,这个计划最终是以失败了结。php
但这个计划的失败为后人对计算机操做系统的研究和开发的宝贵经验,肯•汤谱森和丹尼斯•里奇总结了失败的经验在19世纪的60年代末(苏美冷战时代)发明了闻名中外的Unix操纵系统,因为肯•汤谱森和丹尼斯•里奇不局限于计算机科学只用于军事和国防领域,使得计算机科学获得了迅速的发展。html
今天人们常说的苹果,安卓和Linux操纵系统都是从Unix发展而来的,因此计算机科学实际上是站在巨人的肩膀上发展起来的一个领域。node
Linux是林纳斯•托瓦茨在Uninx的基础上开发和改良的操做系统,在理查德•马修•斯托曼的帮助下Linux进行了开源发布,发展到了今天产生了各类以Linux为核心的操做系统,人们习惯上把以Linux做为核心发展起来的操做系通通称为Linux的分支,在科学的应用领域,主要也是使用Linux的分支为主。mysql
其中以Red Hat(红帽子)系列的分支最为出名,而该公司开发其中一款产品CentOS被世界上大多数公司用于做为服务器的操做系统底层,目前国内版本以CentOS6为主导,其中CentOS6.5和CentOS6.8运用最为普遍,阿里云的服务器产品当中就能够选择CentOS6.8这个操做系统,CentOS6.5和CentOS6.8的功能是如出一辙的,然而CentOS6.8的CA证书须要提交相关的专业认证方式,咱们通常作不到因此咱们没法正常使用CentOS6.8,但阿里云公司帮用户实现了这个专业认证,因此在阿里云上咱们可使用CentOS6.8linux
在学习时咱们通常选择安装CentOS6.5来进行学习就能够了sql
1.简单易用,安全性高,且支持图形操做界面shell
2.其安装步骤支持全图形操做,且有中文包补丁数据库
3.可以免费实如今线安装服务(yum命令)apache
4.被誉为世界上最适合做为服务器的底层的Linux操做系统,其性能十分稳定vim
5.有32位和64位两种操做系统安装镜像
6.多任务,多用户的操做系统
虚拟机其实是一个虚拟PC的软件,它能够在现有的操做系统上
虚拟出一个新的硬件环境,至关于虚拟了一台新的计算机,
从而实现了一台机器独立运行两个或者两个以上的操做系统。
虚拟机软件:Vmware,VirtulBox,VisualPC
安装详细步骤:请参考《VMware虚拟机安装》
因为安装VMware的过程和安装一个QQ软件差很少,因此建议同窗们安装手册一步一步安装就能够了.
第1步:选择建立新的虚拟机按钮
第2步:在弹出的界面中选择自定义安装
第3步:默认操做,点击下一步
第4步:选择稍后安装
第5步:正确选择操做系统
第6步:命名虚拟机名称和选择安装路径,不要出现中文和特殊字符
第7步:默认操做,选择下一步
第8步:必须选择内存为1024M,不然安装可能会失败,同时会占据很是高的内存消耗
第9步:选择桥接网络
第10步:默认操做,选择下一步(安装时主要对比图中选项,由于不一样电脑默认项可能不一样)
第11步:出现如下的界面,那么就表明成功配置了虚拟机
镜像下载地址:
http://www.centoscn.com/CentosSoft/iso/2013/1205/2196.html
安装Centos6.5详细步骤以下:
第1步:打开CD/DVD选项
第2步:选择下载回来的Cenos6.5的镜像文件(映像文件),默认是.iso的后缀名,选择完成后,点击肯定按钮
第3步:开启并运行虚拟机,点击下图所示的按钮
第4步:让鼠标进入虚拟机当中(Ctrl+G或双击进入),而后选择第一项,回车
第5步:跳过镜像的检查,选择skip按钮,使用tab键,而后回车
第6步:若是你的操做系统出现这个选项就选择Ok而后回车,可是有一些系统计算机的操做系统是不会出现该选项的,因此若是你不出现,那么这一步能够忽略,由于这个界面的出现会跟你的硬盘设备有关系
第7步:默认操做,选择next按钮
第8步:选择语言为简体中文和选择键盘为美式键盘
第9步:选择基本设备,而后选择下一步
第10步:忽略全部的数据
第11步:默认操做,选择下一步
第12步:时区的选择咱们通常放在命令行操做当中,因此安装时直接使用默认操做,点击下一步便可
第13步:牢记你输入的密码是什么,由于这个密码是root超级管理员的密码,建议使用123456
第14步:选择替换现有Linux系统,而后点击下一步
第15步:格式化操做,选择将修改写入磁盘,点击下一步
第16步:选择安装图形操做界面
第17步:软件的安装和编译,耐心等待15分钟左右
编译后须要从新引导,从新引导其实就是一个重启的过程.
第18步:默认操做,选择前进
第19步:因为linux存在两种用户(root用户,普通用户),如下的界面实际上是建立一个普通用户登陆linux操做系统
第20步:默认操做
第21步:若是出现如下界面就表明linux安装成功了
在咱们学习的过程当中,咱们通常使用虚拟机去运行Linux这时咱们须要知道如下两个小技巧:
1.进入虚拟机(鼠标对着虚拟机双击或者使用ctrl+G)
2.退出虚拟机(按下ctrl+alt键)
以上内容无须死记硬背,能够参看虚拟机的下方提示
其实在linux当中有普通用户和root用户,不过linux它是一个分权限的操做系统,为了方便学习通常咱们使用root先进行登陆,由于root是超级用户,基本不授权限的限制,因此学习起来更简单和方便,当咱们学习完了权限的操做以后咱们再尝试使用普通用户登陆操做系统.
若是但愿在图形操做界面中使用root进行登陆,那么就要遵循如下步骤
第1步:选择其余
第2步:输入用户名为root,这个用户名是安装时自动生成的超级管理用户名,严格区别大小写,root必须是小写的用户名
输入完成选择登陆按钮,就会让您输入密码
第3步:输入root的密码就是安装时的密码,这里为123456
而后点击登陆就能够进入centos的桌面
第4步:进入桌面后,通常会出现这样的界面,选择关闭,有时还会抛出一些所谓的异常提示,这一切都不须要关心,直接忽略便可,不影响你的学习
在Linux操做系统当中与windows最大的区别在于Linux没有盘符(没有C盘,D盘...的说法),由于Linux把一切都当作目录和文件,包括鼠标,磁盘linux都把它们当成了目录和文件来对待而且存入到对应目录当中,所以学习linux最好的方法是首先要创建一个目录结构认识,但这些认识并不是叫你死记硬背
如下这些目录就是咱们可能会用到的目录,可是咱们用到时候咱们再去记住会比较容易理解,如今只需创建一个 概念就能够了
根目录( / ) : 根目录用于存放Linux全部的文件和相关目录,根目录占据硬盘空间是最大
启动目录( /boot ) : 至关于windows的C盘,存放linux启动的时候必须调用的启动相关文件和目录,这个目录通常只有200M左右,该目录不能随便的修改和删除,不然可能会致使linux没法正常启动
设备硬件目录(/dev) : 该目录用于存放计算机的硬件设备,如:磁盘,鼠标,硬盘信息等..
配置选项目录(/etc) : 用于存放linux相关的配置文件和软件配置文件,如:数据库配置,网卡配置等等,通常用于开发当中的使用率是100%
宿主目录(/home和/root) : 至关于一个用户的房间,存放着与linux用户相关的文件和操做信息,在开发当中使用宿主目录的概率比较低,/home目录通常表示普通用户的房间,/root表示超级管理员的房间
核心库目录(/lib) : 通常用户存放一些软件运行时的核心文件,好比你安装了一个mysql,那么该目录就会存放mysql的相关数据文件和链接文件,通常这个目录咱们在php开发当中使用的概率也是100%
挂载目录(/media /misc /mnt) : 通常用于文件,光盘和移动设备的挂载,在开发当中使用挂载的概率比较低,然而咱们会在rpm的安装当中讲解
第三方软件下载或者安装的目录(/opt) : 可是这个目录通常没有人会使用它,由于人们习惯上是使用/usr/local/src的目录来代替该目录,咱们会在sphinx部分详解
资源目录(/usr) : 注意usr不是user,其英文是unix software resource的简写,实际上是unix遗留下的一个资源目录,通常人用它来进行软件的安装和软件下载,好比安装sphinx等等,在开发当中使用的概率是100%
运行时目录(/var) : 这个目录也称为可变目录,通常用于php当中是做为apache服务器的站点目录,表示为/var/www/html,在lamp的开发环境中使用的概率也是100%
若是用到更多目录,咱们须要参看对应Linux文档和手册,通常是用到时候再去看,不须要死记硬背
1.Linux没有盘符,windows拥有盘符
2.Linux严格区分大小写,而windows不区分大小写,因为linux严格区分大小写,所以linux认为a.php和A.PHP是两个不一样的文件,而在windows当中windows会认为这是2个相同的文件,因此windows会有如下的效果
(linux的效果)
(windows的效果)
3.windows大部分的工做是经过图形操做界面就可以完成,linux大部分的工做是经过命令行来完成,linux的图形操做界面可以完成的工做是很基本的,假设你须要安装sphinx的数据库软件,那么linux的图形操做没法完成这项工做,由于这时必需要经过linux的命令编译才能完成安装,因此学习linux必需要学习linux的命令
Linux不少人认为它很是难学,缘由就是由于linux命令听说有17800多个,若是你经过当当网或其余的网站进行搜索的话,你会发觉linux有一些所谓的命令大全手册让你去购买,然而咱们若是购买这样手册是很是不值得的,由于linux的命令是贵在理解而不是死记硬背,在开发当中其实咱们使用到的经常使用命令顶多只有60多个,这命令通常都是有应用场景和帮助能够查看不必买一本命令大全.
学习Linux的命令必须先理解什么叫shell,其实shell是一个命令的解析器,对于linux来讲shell其实有不少工具,好比图形操做中的终端就是一个shell解析器的命令输入工具,更为强大和人性化的工具备putty和xshell,咱们学习之初能够先从终端的shell工具开始,在linux图形操做界面中右键选择终端打开,以下图所示:
shell各项详解以下:
若是但愿切换用户登陆操做系统,那么咱们应该如何切换用户,而且shell的标志会产生如何的变化呢?
命令做用:切换用户
命令格式: su [一个存在的linux用户]
命令测试效果以下:
由root切换为普通用户zhangsan,会发觉shell标志发生改变,登陆名改变为zhangsan,身份标志改变为$,若是由root切换一个不存在的用户chenguanxi,那么出现如下提示:
注意事项:
若是当前是root用户切换为普通用户,那么是不须要输入任何密码的,由于root是超级管理员。若是当前的用户是一个普通的用户切换成为root,那么必须输入超级管理员的密码。
效果以下:
若是咱们但愿在linux的shell命令行当中切换目录那么应该怎么作呢?
答案就是使用cd命令
命令做用:切换目录
命令格式: cd [目的目录]
命令测试效果以下:
思考:输入命令cd /bin和输入命令cd /usr/bin获得的shell标识结果是同样的吗?
获得这样效果,咱们应该如何区分当前因此在的位置的详细信息?
命令做用:显示当前所在的工做目录
命令格式: pwd
命令测试效果以下:
①宿主目录(~):这个目录比如用户的房间,存放着当前登陆Linux系统用户的相关信息
在linux操做系统当中只有两个目录是表示用户的宿主目录,1个是root目录1个是home目录,root目录为root用户单独全部,home目录为全部的普通用户所共享,普通共享的目录都存在在home下以本身的用户名进行命名
②上一层目录:这个目录的表示方式用 .. 或者 ../ 来表示
..或者../彻底取决于我的的喜欢,功能是同样的
③当前所在目录:这个目录用 . 或者 ./ 来表示
当前我所在目录在home下表示当前的目录zhangsan,咱们可使用如下命令进行简写
命令做用:列出目录当中的内容(目录和文件)
命令格式:
①直接键入ls命令的结果以下图所示
②使用格式 ls [-选项][文件或目录...]
使用选项 -l(long) :表示以详细格式显示列表(等同于ll命令的做用)
虽然ls -l能够详细显示当前目录的内容,可是咱们发觉人性化比较差,如何提升人性化的阅读方式?
使用选项 -h:表示以人性化的方式显示列表
注意:-h选项通常不多单独使用,它是组合其余的选项共同使用的,若是单独使用-h选项会没有任何的效果
使用选项 -a(all) :表示显示所有文件(包括隐藏文件)
在linux当中隐藏的通常在前面会存在一个.
-a能够单独使用,以下图所示:
这个指令其实就是ls -l指令的简写
①直接关机:poweroff , halt(这两个实际上是unix的关机命令)
②定时关机:按照规定关机,以分钟做为单位
好比:若是但愿10分钟后关机,可使用命令: shutdown -h 10
注意:ctrl+c在Linux不是复制,而是终止命令的运行
若是但愿立刻关机,那么应该如何操做呢?
使用命令: shutdown -h 0 或者 shutdown -h now
回车后立刻关机,运行结果以下:
命令做用:使系统进行重启
命令格式: reboot
重启命令的使用通常咱们是用于修改了配置文件以后,好比修改selinux的配置文件就必须重启服务器才能生效,这时就须要用到reboot,编写命令以下:
回车执行就会使得linux发生重启
命令做用:建立目录
命令格式: mkdir [目录名称]
命令测试效果以下:
命令做用:建立一个或多个文件
命令格式: touch [一个或多个文件名]
命令测试效果以下:
touch这个命令除了能够建立单个文件,也能够同时建立多个文件
①格式: [命令] --help
例如:查看ls命令的帮助,咱们可使用命令ls --help
注意:不是全部的命令都具有--help这个选项,例如使用cd命令加上--help就获取不了任何的帮助信息,以下图所示:
②格式: man [命令]
例如:可使用man去查看cd命令的帮助,以下图所示:
执行后,获取的文档是所有为英文的,同时打开帮助以后,须要使用特殊的手段退出帮助
注意:只有英文的帮助文档,退出帮助:q
在职场的开发当中,若是咱们进行开发咱们还须要时时在身边准备一个离线的命令帮助文档
命令做用:清除屏幕命令
命令格式:clear
虽然clear命令能够清除屏幕,可是人们在习惯中使用得不多,由于人们习惯使用快捷键来取代命令的输入,clear命令的快捷键是ctrl+l
命令做用:显示当前登陆用户的操做历史
命令格式:history
命令测试效果以下:
注意:history看到只是本身相关操做历史,若是切换用户为zhangsan那zhangsan这个用户 使用history命令只可以查看本身的相关操做
问题来了:在project目录当中那么咱们须要为index.php写入相关代码,这时咱们应该如何才能作到呢?答案确定是使用编辑器,可是Linux咱们使用的编辑器不叫Sublime Text也不叫Editplus等等,在Linux有一个默认安装好的编辑器软件叫作vim(vim有一个美誉叫作,编辑器之神,可是我的很不认同这个美誉,由于vim编写代码不是非理想,可是vim编写配置文件很是方便)
VI/VIM是一款编辑器,它们是Linux自带编辑器。VIM是VI的升级版.
功能上VI和VIM都是同样的。
VIM具备语法着色的功能而VI没有,因此人们会更加喜欢使用VIM
输入命令vim那么弹出如下界面就表明vim是存在的(退出,输入:q回车)
命令格式: vim [打开一个或者多个文件,文件是能够存在的文件也能够是存在的文件]
vim若是打开一个不存在的文件,那么会在底部显示一个新文件的标识,以下图所示:
若是这个文件已经存在,vim打开是不会显示新文件的标识的:
vim打开一个不存的文件若是没有保存,这文件其实并没建立
注意:vim没有菜单,只有命令,跟windows编辑器不同
vim其实有所谓编辑模式,vim在打开一个文件以后其实vim处于一个命令模式的状态在等待用户输入正确的指令才能切换到编辑模式当中,若是你输入的是1111这的内容在vim的命令模式下看来这个不是一个正确的指令,因此vim什么都不会作,这时有些人认为当前是死机的状态,然而不是,这是一个等待命令输入的状态
①输入表格中的命令就能够进入编辑模式
命令 |
|
i |
在光标以前插入内容 |
a |
在光标以后插入内容,a就是after的意思 |
o |
在光标的下一行插入内容 |
I |
让光标回到行首进行内容的插入 |
A |
让光标去到行末进行内容的插入 |
O |
在光标的上一行插入内容 |
出现如下标志表明当前处于编辑模式:
②退出编辑模式按esc键
①输入:就可让vim进入末行模式,如下命令是末行模式的经常使用功能
命令 |
|
:w |
w是write的意思,保存 |
:q |
退出 |
:wq |
保存并退出 |
:x |
保存并退出(是:wq的简写方式) |
:q! |
强制退出,一般用于不保存修改就退出 |
:w! |
强制写入 |
:wq! |
强制写入并退出 |
/搜索关键字 |
高亮显示搜索的关键字 |
:nohls |
取消高亮显示 |
:set nu |
设置行号 |
:set nonu |
取消行号 |
:数字 |
定位到某一行 |
出现如下标志表明当前处于末行模式:
②使用两次esc键能够退出末行模式
只要键入vim打开文件就处于命令行模式
命令 |
|
gg |
回到首行 |
G |
去到末行 |
dd |
删除1行 |
ndd |
删除 n行,4dd删除4行 |
u |
撤销操做 |
uu |
类前进操做 |
yy |
复制 |
p |
粘贴 |
r |
r是replace的意思,替换光标处的内容 |
x |
删除光标定位的字符 |
有时咱们须要使用vim编辑多个文件,那么我可使用如下命令进行编辑:
若是须要切换文件的编辑就须要使用如下命令,:wq只能保存并退出当前的文件编辑,建议使用:w
命令 |
|
:next |
进入下一个文件的编辑状态,该命令必须先保存当前文件才能使用 |
:prev |
进入上一个文件的编辑状态,该命令必须先保存当前文件才能使用 |
Linux操做系统是一个多用户,多任务的操做系统,按道理来讲,那么它应该具有了某种管理和查看用户的命令,例如:su能够切换用户,若是但愿查看一个用户在linux操做系统当中的详细信息,咱们可使用一个叫作finger的命令,其做用以下:
命令格式; finger [已经存在的用户名],执行结果以下:
finger zhangsan : 查看zhangsan的详细信息,执行命令后会出现如下意想不到的结果:
提示命令不存在,这时这个缘由,并不是是finger这命令拼写错了,而是finger命令属于linux之外的软件命令,所以但愿使用这个软件的命令咱们须要安装该软件,问题来了,在linux当中应该如何安装软件呢?
在windows操做系统当中,咱们安装一个软件,通常使用.exe文件进行安装,因此windows不管什么.exe的文件都会执行,然而在linux当中,linux安装有3中方式:
①使用rpm安装,这种安装方式就相似于exe的安装
②使用编译安装,这种安装方式是Linux特有的方式,使用源码进行编译
③使用在线安装(yum)安装,通常用于阿里云等服务器比较多。
rpm安装的包就叫rpm软件包,yum安装也是安装rpm软件包,世界上没有一种叫yum包,编译安装的包叫源码包(通常指代c语言的源码)
rpm是一个linux自带的安装命令,其格式以下:
rpm -ivh [完整的rpm包名] : 表示使用rpm命令进行安装
rpm -e [不完整的包名] [--nodeps]: 表示使用rpm卸载软件
案例1:使用rpm -ivh安装finger软件包
i 表明 install,安装的意思
v 表明view,显示安装视图
h表明以人性化的方式显示安装的视图过程
其步骤以下:
第1步:首先咱们须要寻找软件包所在的位置,因为咱们是使用镜像进行linux的安装的因此全部的软件都在镜像光盘当中,如何知道镜像光盘所示在的位置呢?咱们可使用磁盘管理命令df -h进行查看,以下图所示:
可是/dev/sr0是硬件的设备名称,该设备对应的文件存放在/media/CentOS_6.5_Final目录当中,若是咱们但愿查找软件包那么我须要对对应的文件存放目录中进行查找。
第2步:切换到cd /meida/CentOS_6.5_Final目录,以下图所示:
咱们切换目录时可使用tab键进行目录或者命令的补全功能,切换成功后找到Packages目录,以下图所示:
进入该目录,以下:
第3步:若是单纯使用ls命令那么会搜索出,当前目录全部的软件包,若是你但愿定位到某一个软件包,那么你能够加上grep工具进行关键字定位,语法以下:
ls | grep 软件包的关键字
好比定位finger软件包,其命令以下:
ls | grep finger
第4步:使用rpm -ivh命令进行软件包的安装,语法格式以下:
rpm -ivh [完整的rpm包名] : 表示使用rpm命令进行安装
回车执行以上命令,就会进行安装:
出现的结果为100%而且没有任何的错误信息,就表明安装成功
第5步:使用finger命令去查看普通用户zhangsan,命令以下:
finger zhangsan,执行结果以下:
若是但愿使用rpm进行卸载,在linux操做系统当中rpm的卸载100%的状况都强制卸载的过程,因此卸载的命令格式必须加上--nodeps
卸载vim的mimal软件步骤以下:
第1步:使用rpm -qa | grep vim定位vim所安装的软件包有哪些?
-q : 表示query,表明查询已经安装过的软件
-a : 查询全部已经安装的软件
rpm -qa | grep vim就是在全部已经安装的软件中定位vim是否已经被安装,执行命令以下:
第2步:使用rpm -e进行卸载不加上--nodeps,其语法格式以下:
rpm -e [不完整的包名]
执行命令以下:
但愿删除minimal必须先删除依赖,可是删除 依赖的过程若是不想进行,那么咱们就能够强制删除,加上--nodeps,其语法格式以下:
rpm -e [不完整的包名] [--nodeps]: 表示使用rpm卸载软件
第3步:从新使用rpm -qa | grep vim 查看
删除这个软件其实不会影响vim的正常工做,由于这个软件是多余文件,不过若是你但愿多练习这个rpm的命令,那你能够尝试从新安装这个minimal软件,步骤以下图所示:
再次使用rpm -qa | grep vim发觉minimal就又存在了