Linux知识概括

Linux介绍

为什么使用Linux?

  • Linux与开源软件:Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。GNU通用公共许可协议(GNU General Public License,简称GNU GPL或GPL),是一个广泛被使用的自由软件许可协议条款,最初由理查德斯托曼为GNU计划而撰写,GPL给予了计算机程序自由软件的定义, 任何基于GPL软件开发衍生的产品在发布时必须采用GPL许可证方式,且必须公开源代码。Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。随着Linux操作系统飞速发展,各种集成在Linux上的开源软件和实用工具也得到了应用和普及,因此,Linux也成为了开源软件的代名词。

  • Linux在服务器领域的发展:随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。此外,考虑到Linux的快速成长性以及国家相关政策的扶持力度,Linux服务器产品一定能够冲击更大的服务器市场。据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。

  • Linux在桌面领域的发展:近年来,特别在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗Linux、深度Linux等系统软件厂商都推出的Linux桌面操作系统,目前已经在政府、企业、OEM等领域得到了广泛应用。另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已经积累了大量社区用户。但是,从系统的整体功能、性能来看,Linux桌面系统与Windows系列相比还有一定的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面。

  • Linux在嵌入式系统方面广泛使用及领域的发展:Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目前Linux以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。的Android操作系统就是创建在Linux内核之上的。目前,Android已经成为全球最流行的智能手机操作系统,据2015年权威部门最新统计,Android操作系统的全球市场份额已达84.6%。此外,思科在网络防火墙和路由器也使用了定制的Linux,阿里云也开发了一套基于Linux的操作系统“YunOS”,可用于智能手机、平板电脑和网络电视;常见的数字视频录像机、舞台灯光控制系统等都在逐渐采用定制版本的Linux来实现,而这一切均归功与Linux与开源的力量。

  • Linux在云计算/大数据领域的发展:互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。

  • 下面我们谈下linux的发展:linux是基于unix发展而来的,最一开始是由linus为首开发的,而那个时候linux还是一个学生,由此可见,国外牛人也是非常强悍的,一开始呢,unix其实也是开源的,linux所在的学校是用unix来教学的,但是突然有一天unix宣布要收费,而且采取闭源的方式,因此就不能继续使用了,所以linux这个时候就自己折腾操作系统出来,这就是鼎鼎大名的linux前身。目前主流的linux版本有redhat/centos,ubuntu,suse,包括国产的红旗等等一系列,那么在企业中最常用的一般是redhat 和 centos redhat是收费的,centos可以认为是redhat的免费版本,因此很多企业也使用centos, 我们的教学过程中也使用centos, 像ubuntu的话,更加适合个人PC机,桌面版本的。

学习linux流程为:

  • 第1阶段:linux环境下的基本操作命令,包括 文件操作命令(rm mkdir chmod, chown) 编 辑工具使用(vi vim)linux用户管理(useradd userdel usermod)等
  • 第2阶段:linux的各种配置(环境变量配置,网络配置,服务配置)
  • 第3阶段:linux下如何搭建对应语言的开发环境(大数据,JavaEE, Python等)
  • 第4阶段:能编写shell脚本,对Linux服务器进行维护。
  • 第5阶段:能进行安全设置,防止攻击,保障服务器正常运行,能对系统调优。
  • 第6阶段:深入理解Linux系统(对内核有研究),熟练掌握大型网站应用架构组成、并熟悉各个环节的部署和维护方法。

shell脚本(linux命令集):

  • Shell脚本也叫Shell Script,与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。
  • shell和shell脚本有什么区别?
    ①确切一点说,Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。
    ②作为命令语言,它互动式地解释和执行用户输入的命令;
    ③作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。
  • 总括,shell脚本是linux命令集的概称,是属于命令行的人机界面。Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。
  • 注意:
    ①shell文件后缀名是.sh
    shell脚本就是是linux命令
    ③常见的命令行shell:bash (Bourne-Again shell),目前绝大多数 Linux 发行版的默认 shell。
    ④也就是说linux命令可以单行打也可以成批打,日常操作就是单行打使用脚本就是成批打的,然后一次性执行

Linux和Windows比较:
在这里插入图片描述
Linux与Unix:在这里插入图片描述

Linux内核与发行版:

  • Linux内核:linux内核是一种开放源码的操作系统,由Linux Torvalds负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。
  • Linux发行版:linux发行版基于linux内核源码,将Linux系统的内核与外围实用程序(Utilities)软件和文档包装起来,并提供一些系统安装界面和系统配置、设定与管理工具,就构成了一种发行版本(distribution),Linux的发行版本其实就是Linux核心再加上外围的实用程序组成的一个大软件包。
    在这里插入图片描述

VMware软件与发行版:
在这里插入图片描述
ISO镜像文件:

  • .iso是电脑上光盘镜像(CDMirror)的存储格式之一,因为其是根据ISO-9660有关CD-ROM文件系统标准存储的文件,所以通常在电脑中以后缀.iso命名,俗称iso镜像文件。它形式上只有一个文件,可以真实反映光盘的内容,可由刻录软件或者镜像文件制作工具创建。
  • 镜像,原意是光学里指的物体在镜面中所成之像。引用到电脑网络上,一个网站的镜像是指对一个网站内容的拷贝。镜像通常用于为相同信息内容提供不同的源,特别是在下载量大的时候提供了一种可靠的网络连接。制作镜像是一种文件同步的过程。“镜像网站”,又译作““镜像站点” ,亦即把一个互联网上的网站数据“拷贝”到本地服务器,并保持本地服务器数据的同步更新,因此也称为“复制网络站点” 。

VMware工具与远程登录

VMware工具介绍:

  • vmtools 安装后,可以让我们在windows下更好的管理vm虚拟机:
    ①可以直接粘贴命令在windows 和 虚拟机系统之间
    ②可以设置windows和虚拟机系统的共享文件夹
  • 设置共享文件夹:
    ①为了方便,可以设置一个共享文件夹,比如d:/share 。
    ②windows 和 contos 就可以共享文件了,但是在实际公司开发中,文件的上传下载是需要使用远程方式完成的。
  • 设置共享文件夹具体步骤:
    ①菜单->vm->setting, 如图设置即可注意:设置选项为always enable ,这样可以读写了
    ②windows和虚拟机系统可共享 d:/share目录可以读写文件了
    ③在centos的 /mnt/hgfs/ 下
  • VMware网络配置:
    ①桥连接:Linux可以和其它的系统通信,但是可能造成ip冲突。
    ②NAT:网络地址转换方式:,linux可以访问外网,不会造成ip冲突。
    ③主机模式:你的linux是一个独立的主机,不能访问外网。
    ④链接:VMware中,该如何理解桥接网络与NAT 网络模式

vagrant与virtualBox简介:

  • vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。使用Oracle的开源virtualBox虚拟化系统,使用Chef创建自动化虚拟环境。同时,vagrant也支持其他类型的虚拟机系统,如:vmware、kvm、qemu,甚至是容器系统,如docker等,当然,用的比较多的还是virtralBox。
  • vagrant与virtualBox原理:这里我们简述一下vagrant与virtualBox的原理,virtualBox(本身也可以创建虚拟机,只是相对麻烦)会开放一个创建虚拟机的接口,Vagrant会利用这个接口创建虚拟机,并且通过Vagrant来管理,配置和自动安装虚拟机。
  • VirtualBox配置:通过菜单 管理 -> 全局设定,或者按下快捷键 Ctrl + g,在全局设定对话框中,修改 默认虚拟电脑位置,指定一个容量较大的磁盘。
  • 使用Vagrant来创建虚拟机:
    ①前提,首先确保本机已经安装好两者。
    ②新建一个空文件夹:mkdir centos7 ,并进入该文件夹:cd centos7/
    ③在该目录下初始化一个创建centos7的Vagrantfile文件,执行命令:vagrant init centos/7
    ④创建centos7虚拟机,执行命令:vagrant up,如果本地有base box,会使用本地的,否则将会从网络中下载,此过程可能偏久,会生成名字为如下图所示的虚拟机。
    ⑤接下来,我们将在virtualBox中看到刚刚创建的虚拟机:
    ⑥注:
    <1>在vagrant中box概念,是一个打包的单一文件,其中包含了一个完整系统的虚拟机相关数据。
    <2>vagrant中的虚拟机root的账号密码都是root/vagrant
  • vagrant的基本使用:
    ①执行命令:vagrant ssh ,就会通过ssh连接至刚刚我们所创建的虚拟机
    ②如果需要退出当前连接,执行命令:exit,将会回到本地目录
    ③查看虚拟机状态,在本地目录里执行命令:vagrant status
    ④停掉虚拟机,执行命令:vagrant halt
    ⑤开启虚拟机,执行命令:vagrant up
    ⑥删除虚拟机:vagrant destroy
    ⑦查看目前已有的box:vagrant box list
    ⑧新增加一个box:vagrant box add
    <1>这种方式是从本地磁盘中新增一个下载好的针对 vagrant 的 .box 文件。
    ⑨删除指定box:vagrant box remove
    ⑩重启虚拟机:vagrant reload
    <1>执行该命令会重启虚机,并且重新加载 Vagrantfile 中的配置信息。
  • ssh远程连接vagrant:
    ①su root切换root用户后,进入/etc/ssh目录,修改sshd_config文件配置,然后systemctl restart sshd 命令重启服务:
    <1>PermitRootLogin yes
    <2>PasswordAuthentication yes
    ②修改vagrant创建虚拟机生成的Vagrantfile配置文件,将虚拟机IP固定为指定IP。该IP地址为主机网络中未被使用的地址
    ③即可直接连接:
    <1>账号密码为root账号密码,端口为22,IP地址为Vagrant配置文件的IP。
    <2>账号密码为root账号密码,端口为2222,IP地址为127.0.0.1。(2222端口为虚拟机22端口在宿主机的映射)
  • Vagrant的网络配置:在 Vagrantfile 配置文件中,使用config.vm.network配置虚拟机的网络。Vagrant 支持三种网络模型:端口转发(Forwarded Ports)、私有网络(Private Network)和公有网络(Public Network),他们和多数虚拟机提供的网络模型是对应的。
    端口转发 forwarded_port:端口转发将访问宿主机的某个端口的流量全部转发到虚拟机的某个端口
    私有网络 private_network:私有网络适用于可以从宿主机访问虚拟机但 LAN 中的其他人不需要也无法访问虚拟机的情况。使用同一虚拟网络的虚拟机之间网络互通。Vagrant 的私有网络对应 VirtualBox 的 hostonly 网络模型。
    公有网络 public_network:使用公有网络时,虚拟机暴露为 LAN 中的一台主机。对于私有网络来说,外网肯定无法访问,但是对于公有网络来说,这个不一定。Vagrant 公有网络对应 VirtualBox 的 Bridge 网络,虚拟机在宿主机所在的 LAN 中等价于一台物理机器。

虚拟机 VMware 和 VirtualBox 哪个更好用?

  • VirtualBox是开源软件,好处多多,功能可能vmware强一点,但一般使用都不大会用到,装个Linux学习,VirtualBox足够了。
  • vmware要找注册码也麻烦。用过VirtualBox就再也不用VMware了。
  • VirtualBox优势:开源软件,免费中文界面比VMware小多了安装配置简单实用,社区活跃

为什么需要远程登录Linux?

  • 公司开发时候, 具体的情况是这样的:
    ①linux服务器是开发小组共享的.
    ②正式上线的项目是运行在公网的.
    ③因此程序员需要远程登录到虚拟操作系统进行项目管理或者开发.
    ④画出简单的网络拓扑示意图(帮助理解)
    ⑤远程登录客户端有 Xshell5,SecureCRT。远程上传下载文件有 Xftp5 ,WinSCP,。我们学习使用 Xshell5 和 Xftp , 其它的远程工具大同小异。
    在这里插入图片描述

远程登录Linux-Xshell5:

  • Xshell 是目前最好的远程登录到Linux操作的软件,流畅的速度并且完 美解决了中文乱码的问题, 是目前程序员首选的软件。
  • Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET协议。
  • Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好 的达到远程控制终端的目的

远程上传下载文件Xftp5:

  • 是一个基于 windows 平台的功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,windows 用户能安全地在UNIX/Linux 和 Windows PC 之间传输文 件。

Linux目录结构

Linux目录简介:

  • linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
  • 记住一句经典的话:在Linux世界里,一切皆文件。
    在这里插入图片描述
  • 具体的目录结构:
    /bin [重点] :(/usr/bin 、 /usr/local/bin)是Binary的缩写, 这个目录存放着最经常使用的命令。
    /sbin (/usr/sbin 、 /usr/local/sbin):S就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
    /home [重点]:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
    /root [重点]:该目录为系统管理员,也称作超级权限者的用户主目录
    /lib系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
    /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
    /etc [重点]:所有的系统管理所需要的配置文件和子目录 my.conf。
    /usr [重点]:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
    /boot [重点]:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
    /proc:这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。
    /srv:service缩写,该目录存放一些服务启动之后需要提取的数据。
    /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统
    /tmp这个目录是用来存放一些临时文件的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值