Linux--1 初识

一、服务器核心知识

1、电脑和电脑的硬件组成

  现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机)、笔记型电脑(笔电)、平板电脑,还是智慧型手机等等,这些东西都算是电脑。虽然接触这么多,但是,你了解电脑里面的元件都有什么吗?以桌机来说,电脑的机壳里面含有什么元件?不同的电脑可以应用在哪些工作中?你生活周遭有哪些电器用品内部是含有电脑相关元件的?接下来我们就来谈一谈这些东西!

  所谓的电脑就是一种计算机,而计算机其实是:『接受使用者输入指令与资料,经由中央处理器的数学与逻辑单元运算处理后,以产生或储存成有用的资讯』。因此,只要有输入设备(不管是键盘还是触控式萤幕)及输出设备(例如电脑萤幕或直接由印表机列印出来),让你可以输入资料使该机器产生资讯的,那就是一部计算机了。

  好了,根据这个定义你知道哪些东西是计算机了吗?其实包括一般商店用的简易型加减乘除计算机、打电话用的手机、开车用的卫星定位系统(GPS)、提款用的提款机(ATM)、你上课会使用的桌上型个人电脑、外出可能会带的笔记型电脑(包括notebook与netbook),还有近几年(2015前后)非常热门的平板电脑与智慧型手机,甚至是未来可能会大流行的单版电脑(Xapple pi, banana pi, Raspberry pi, )与智慧型手表,甚至于更多的智慧型穿戴式电脑等等,这些都是计算机喔!

2、电脑硬件组成

  关于电脑的硬件组成部分,依外观来说主要可分为三部分:

    - 输入单元:包括键盘、滑鼠、读卡机、扫描器、手写板、触控萤幕等等一堆;

    - 主机部分:这个就是系统单元,被主机机壳保护住了,里面含有一堆板子、CPU 与主记忆体等;

    - 输出单元:例如萤幕、印表机等等;

3、硬件介绍

  电源:保障电源供应,就需要质量好的电源,生产环境中单个核心服务器最好是双电源AB线路(一个接220V电路;一个可能接蓄电池UPS,即不间断电源)。

  CPU:常见品牌有Intel、AMD;

  内存:是CPU和磁盘之间的缓冲设备,也叫临时存储器(存放数据),断电时数据丢失,一般程序运行时会被调度到内存中执行,服务器关闭或程序关闭后,数据从内存中释放掉。

4、互联网常见服务器介绍

  - DELL(大多数公司在用)

  - HP

  - IBM(百度,银行,政府)(贵)

  - 浪潮

  - 联想

  服务器指的是网络中能对其他机器提供某些服务的计算机系统,相对普通PC,服务器指的是高性能计算机,稳定性、安全性要求更高。

  服务器的高性能体现在高速的运转能力,长时间的可靠运行,强大的数据吞吐能力。

5、服务器分类

  包括大型机、小型机和UNIX服务器,价格昂贵,体系封闭,但是稳定性极强,性能强、主要用在金融、电信等大型企业核心系统中。

  机房托管服务器是按照服务器的厚度来收费的,每一个机柜规格有限,标准机柜可以放16台1u服务器,如果你的服务器太厚太大,机柜能放的服务器就少一些

  1U 单位是==unit==厚度是4.45cm

二、Linux入门 

1、操作系统的分类

  - Windows系列操作系统

  - Mac操作系统

  - Unix类操作系统

  - Linux类操作系统

 

2、linux系统的优势

3、为什么要去学习Linux

  如果Windows意味着生活和游戏,那么Linux久代表着严谨和工作,学习Linux代表着你要开发软件,你要测试程序,你要维护服务器。

  不信,你可以去招聘网站搜一下例如开发python开发工程师,python爬虫开发,python数据工程师等职位,经常能看到如下这样的要求:

    - 掌握Linux操作系统,熟悉nginx,WSGI;

    - 熟悉使用shell等脚本语言,熟悉linux操作系统;

    - 熟悉linux操作系统及git版本管理工作优先;

    - 熟悉linux操作系统及常用命令,熟悉多线程,网络相关知识等等。

  由此可见,无论你是python后端开发,还是python测试开发,又或者是爬虫、数据挖掘开发,统统都必须学会Linux,这是开发者必须的技能。

  我们都知道Linux这玩意是在电脑上运行的,所以说Linux就是一组软件,问题是这个软件是操作系统还是应用程序?而且Linux可以在哪些种类的电脑上运行呢?Linux来自哪里?为什么Linux不收钱?(万恶的windows分为各种收费版、家庭版、专业版、企业版。。。。)这些问题我们都得了解。

4、什么是操作系统

  我们都知道windows 7/8/xp 其实就是操作系统,操作系统全称是Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行及用户操作必备的基础环境支撑。

  整个电脑主机是由一堆硬件所组成,为了有效的控制这些硬件资源,于是就有操作系统的产生了。操作系统除了有效的控制这些硬件资源的运作,并且提供电脑运行所需的功能(例如网络功能)。

  由上图看出操作系统跑于硬件之上,应用程序运行在操作系统之上,由于Linux只是一套操作系统并不含有其他应用程序,因此工程师需要在下载Linux系统并且安装之后,就可以使用了。  

  Shell(也叫做终端或壳)充当的是人与内核(硬件)之间的翻译官,用户吧一些命令“传递”给终端,它就会调用相应的程序服务去完成工作。红帽Linux默认使用的终端是Bash解释器。

5、Linux起源与发展

  1991年,一个名不见经传的芬兰研究生购买了自己的第一台PC,并且决定开始开发自己的操作系统。这个想法非常偶然,最初只是为了满足自己读写新闻和邮件的需求。这个芬兰人选择了 Minix作为自己研究的对象。Minix是由荷兰教授 Andrew S Tanenbaum开 发的一种模型操作系统,这个开放源代码的操作系统最初只是用于研究目的。 这个研究生名叫 Linus torvalds,他很快编写了自己的磁盘驱动程序和文件系统,并且 慷慨地把源代码上传到互联网上。 Linus把这个操作系统命名为 Linux,意指“ Linus的 Minix” ( Linus, Minix)。

  1)开源潮流

    简单来说,开源软件的特点就是把软件程序与源代码文件一起打包提供给用户,让用户不受限制地使用某个软件功能的基础上还可以按需进行修改,或编制成衍生产品再发布出去。用户具有使用自由、修改自由、重新发布自由以及创建衍生品的自由。这也正好符合了黑客和极客对自由的追求,因此国内外开源社区的根基都很庞大,人气也相当高。

    坦白来讲,每位投身于 Linux 行业的技术人或者程序员只要听到开源项目就会由衷地感到自豪,这是一种从骨子里带有的独特情怀。开源的企业不单纯是为了利益,而是互相扶持,努力服务好更多的用户。

    开源软件最重要的特性有下面这些:

  - 低风险:使用闭源软件无疑把命运交付给他人,一旦封闭的源代码没有人来维护,你 将进退维谷;而且相较于商业软件公司,开源社区很少存在倒闭的问题。
  - 高品质:相较于闭源软件产品,开源项目通常是由开源社区来研发及维护的,参与编 写、维护、测试的用户量众多,一般的 bug 还没有等爆发就已经被修补。
  - 低成本:开源工作者都是在幕后默默且无偿地付出劳动成果,为美好的世界贡献一份 力量,因此使用开源社区推动的软件项目可以节省大量的人力、物力和财力。
  - 更透明:没有哪个笨蛋会把木马、后门等放到开放的源代码中,这样无疑是把自己的罪行暴露在阳光之下。

    如果开源软件一味的追求“自由”却牺牲了程序员的利益,这样也会影响程序员的激情,因此世界上就有了“开源许可协议”来保证开源工作者的权益。

  2)linux为什么受欢迎

    Linux以高效和灵活著称,Linux同时具有多任务、多用户的能力,支持多线程,多CPU。

    Linux包括了文本编辑器,高级语言编译器,以及图形用户界面等应用软件,当然绝大多数服务器都是使用命令行,文本模式操作Linux的。

    Linux遵循GNU通用公共许可协议,属于自由软件,用户不需要支付费用就可以获得系统和系统源代码,无偿使用且自由传播。

    Linux具有很高的系统稳定性和可靠性。

    具有很高的系统安全性。

    众多业界厂商支持,如IBM、Oracle、Intel、HP、Google等。

    有完善的数据库平台,包括Oracle、DB/2、Sybase、MySQL、PostgreSQL等。

    有完善的图形化用户界面,包括GNOME、KDE等。

    有完善的开发平台,包括C/C++、Java、Python等。

  3)linux的发行版本

    其实Linux这个词并不能(代表)操作系统,Linux实际上只是定义了一个操作系统的内核,这个内核由kernel.org维护。不同的企业和组织在基础上开发了一系列的辅助软件,打包发布自己的“发行”版本。

    在介绍常见的 Linux 系统版本之前,首先需要区分 Linux 系统内核与 Linux 发行版的不同。

    Linux 系统内核指的是一个由 Linus Torvalds 负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。

    Linux 发行版系统是我们常说的 Linux 操作系统,也就是由Linux 内核与各种常用软件的集合产品。

    全球大约有数百款的 Linux 系统版本,每个系统版本都有自己的特性和目标人群,下面将可以从用户的角度选出最热门的几款进行介绍。

    - RedHat Enterprise Linux RHEL :红帽公司是全球最大的开源技术厂商,RHEL 是全世界内使用最广泛的Linux 系统。RHEL 系统具有极强的性能与稳定性,并且在全球范围内拥有完善的技术支持。

    - Community Enterprise Operating System:CentOS 通过把 RHEL 系统重新编译并发布给用户免费使用的 Linux 系统,具有广泛的使用人群。CentOS 当前已被红帽公司 “收编”。 

    - Debian:稳定性、安全性强,提供了免费的基础支持,可以良好地支持各种硬件架构,以及提供近十万种不同的开源软件,在国外拥有很高的认可度和使用率。

    - openSUSE:源自德国的一款著名的 Linux 系统,在全球范围内 有着不错的声誉及市场占有率。主要使用客户是中国移动、中国电信、交通银行、浦发银行等等安全性极高的客户。

    - Ubuntu:是一款派生自 Debian 的操作系统,对新款硬件具有极 强的兼容能力。Ubuntu 与 Fedora 都是极其出色的 Linux 桌面系统,而且 Ubuntu 也可用于服务器领域。 

    在过去的10年中,Red hat公司一直是 Linux乃至开源世界的领导者。2003年,公司高层决定将其产品分成两个不同的发行版本。商业版本被称为 Red Hat Enterprise Linux,这个发行版本专注于企业级应用,并向使用它的企业提供全套技术支持,Red Hat公司从中收取相关许可证费。

    RedHat Linux对硬件的支持非常友好,主流硬件厂商早早的将服务器拿去测试,很少遇见硬件兼容性问题,大量的商业软件都是基于RedHat认证的,例如Oracle。Linux内核代码的贡献,redhat厂商的大牛也是最多,要知道全世界的互联网大客户,一般都会使用商业服务器,因为出了问题有专业的技术人员技术支持。

    CentOS 系统是通过把 RHEL 系统释放出的程序源代码经过二次编译之后生成的一种 Linux 系统,其命令操作和服务配置方法与 RHEL 完全相同,但是去掉了很多收费的服务套件功能,而且还不提供任何形式的技术支持,出现问题后只能由运维人员自己解决。

    重点推荐redhat,原因是熟悉了centos/redhat找工作更容易。

6、Linux与Windows的区别

  1)收费与否

    正版的window操作系统是收费的;而Linux几乎免费(更多人愿意钻研开源软件,而收费的产品出现更多的盗版)

  2)软件与支持

    Windows平台:数量和质量的优势,补过大部分为收费软件;由微软提供技术支持和服务;

    Linux平台:大多为开源软件,用户可以修改定制与发布,由于免费没有资金支持,部分软件质量可能欠缺;

  3)安全稳定性

    Windows平台:三天两头修复补丁,仍然会中毒(即便装了360,瑞星,金山毒霸...);

    Linux平台:安全问题很少,无需安装xx杀毒,xx卫士;

  4)使用习惯

    Windows:普通用户基本依靠图形界面操作,鼠标和键盘完成一切需求,上手简单容易;

    Linux:兼具图形界面(需要带有桌面环境的发行版Linux)和完全命令行操作,无法使用鼠标,新手入门困难,需要学习后方可使用,熟练后效率极高!

  5)应用领域

    Linux:人们日常在Windows上访问的百度、谷歌、淘宝、qq、迅雷(xxxx大片),支撑这些软件运行的,后台是成千上万的Linux服务器,它们时时刻刻进行着忙碌的数据处理和运算;

    Windows:可以运行英雄联盟、绝地求生、仙剑三、地下城与勇士、我的世界...等等游戏,而Linux开发的游戏几乎很少; 

三、VMware与Centos系统安装

  按照博客步骤安装VMware和Centos。

  完成后输入root账号(linux默认有一个root用户,系统管理员账号)与密码,成功进入linux系统,如下:

  注意:要确保你的Linux支持虚拟化

  安装 RHEL 7 或 CentOS 7 系统时,大家的电脑的 CPU 需要支持 VT(Virtualization Technology,虚拟化技术)。所谓VT,指的是让单台计算机能够分割出多个独立资源区,并让每个资源区按照需要模拟出系统的一项技术,其本质就是通过中间层实现计算机资源的管理和再分配,让系统资源的利用率最大化。其实只要你的电脑不是五六年前买的,价格不低于三千元,它的 CPU 就肯定会支持 VT 的。如果开启虚拟机后依然提示“CPU 不支持 VT 技术”等报错信息,请重启电脑并进入到 BIOS 中把 VT 虚拟化功能开启即可。

四、远程连接linux

1、为什么要远程连接linux

  在实际的工作场景中,虚拟机界面或者物理服务器本地的终端都是很少接触的,因为服务器装完系统之后,都要拉到IDC机房托管,如果是购买的云主机,那更碰不到服务器本体了,只能通过远程连接的方式管理自己的Linux系统。

  因此在装好Linux系统之后,使用的第一步应该是配置好客户端软件(ssh软件进行连接)连接Linux系统。

  通过什么软件连接呢?

    - Xshell

    - SecureCRT

2、远程连接必备的知识

  1)ip地址定位服务器的位置

    互联网上的计算机都会有一个唯一的32位的ip地址,对应到服务器的位置。我们找人,可以通过身份证号码对应某个人,那我们找到某台服务器,也必须是通过IP地址。

  2)局域网的IP地址

    (针对自己班级/家庭所在环境)里也有预留的ip地址,一般是192/10/172开头,局域网的IP地址也是唯一的。

    Windows查看ip方式:

1
ipconfig       查看“以太网适配器 本地连接  IPv4”的Ip地址就是自身网线的ip地址

    

    Linux查看ip方式:

1
2
方式1:ip addr  (或者ip addr show)
方式2:ifconfig

 

    lo表示本地回环地址,ens33为虚拟机网卡名(不同的虚拟机可能网卡名不同)。

  3)外网ip

    全世界哪里都可以访问。

  4)虚拟机网络配置

复制代码
  - NAT方式
    电脑宿主机的ip在局域网内是唯一的,选择了NAT模式创建虚拟机,虚拟机就是一个新的局域网;通过nat网络地址转换的技术,在自己的网卡下,虚拟化出一个自己的局域网,并且局域网可以分配ip地址,这样就不会和桥接网段内的同学发生ip冲突

  - 桥接模式     用此模式,虚拟机就是局域网中一台独立的主机,它可以访问该类网段任意一台机器;

  - 仅主机模式(only-host)     单机模式,你的linux只能和你自己的windows相同,其他人都无法访问;
复制代码

  5)端口的概念

    一台服务器可以有一个ip地址,例如是192.168.11.1,服务器是需要对外提供服务的,例如web服务,FTP服务。那么仅凭ip地址,主机无法区分不同的服务,ip地址和网络服务是一对多的关系,一个ip提供多个服务,因此就有了“端口号”来区分不同的服务。

    端口(port)的设计规定是有65536(0~65535)这么多端口,每个端口对应唯一的程序,0-1024端口之间被操作系统占用,因此开发人员能使用的是1025-65535区间的端口。

    - ftp:23
    - dns:53
    - http:80
    - https(http+ssl加密技术,对http通信加密):443
    - ssh:22
    - mysql:3306
    - redis:6379

  6)协议的概念

    protocol是为网络中的数据交换而建立的规则、标准或者约定,两个实体要通信,必须有同一种语言。

    常见协议有超文本传输协议(HTTP)、文件传输协议(FTP),简单邮件传输协议(SMTP)、网络通信协议(TCP)、用户数据报协议(UDP)。

    总结:

    ip           ip地址         找人,找服务器  
    port          端口号         提供什么服务
    protocol      协议           说什么语言

  7)Xshell第一次连接Linux

    下载并安装Xshell,打开并输入如下ssh命令:

    ssh root@ip

    输入上面命令会后有一个SSH安全警告的弹框,点击”接受并保存“。
    在SSH用户身份验证的弹框中输入linux的root用户对应的密码。

    Linux终端也称为虚拟控制台,Linux终端采用字符命令方式工作,用户通过键盘输入命令,通过Linux终端对系统进行控制。

    Linux是一个多用户、多任务、支持多线程和多CPU的操作系统。

  8)linux切换虚拟终端

    ctrl+Alt+F[1~7],如想切换到第二号虚拟终端,则同时按Ctrl+Alt+F2

    logout退出当前终端:

    root用户登录后系统的提示符:#

    普通用户登录后系统的提示符:$

  9)查看终端信息的shell命令

    命令             解释
    tty             查看当前终端
    who am i        仅显示当前用户正在使用的终端和登录时间
    w               查看所有终端(功能最全,显示用户名,终端标记,登录时间,负载等信息)

  10)linux安装好了之后,如何初始化服务器

  - 关闭防火墙

    防火墙1:iptables  第三方

    防火墙2:selinux  系统自带的

复制代码
  a、关闭linux的防火墙(就是一堆安全机制的规则,如同保安的贴墙上的那些规则,共享单车禁止入内),因为后期我们去学习软件,学习nginx、mysql、redis,为了学习的方便,关闭防火墙,允许所有的端口可以访问,命令如下:
    iptables -F   清空防火墙规则 
    systemctl stop firewalld      关闭防火墙服务
    systemctl disable firewalld    关闭防火墙开机自启的服务
  b、关闭selinux ,此配置,需要重启linux方可生效,步骤如下:     vi /etc/selinux/config     找到 SELINUX=enforcing 并改成 SELINUX=disabled
复制代码

  11)配置linux的ip地址的方法

    - 选择上网的方式,可以选择2种:

      桥接  

      NAT

    - 修改网卡配置文件 

1
cd /etc/sysconfig/network-scripts/       进入网卡的工作目录

      查看网卡配置文件,我的叫做ifcfg-ens33,如下:

      vi ifcfg-ens33    

      找到ONBOOT=no    这一行

      改为ONBOOT=yes    使得下次开启机器,自动加载网络服务

    - 选择了上网模式并确保网卡配置文件的ONBOOT参数为yes后,可以通过下面命令管理网卡服务,其实执行下面命令时会读取上面提到的网卡配置文件,使得网络服务生效

      systemctl stop network     停止网络服务

      systemctl start network     开启网络服务

      systemctl restart network     重启网络服务

五、linux基本使用命令

  linux的命令,其实就是一堆英文缩写。

  输入linux命令,多用tab键去补全,用不着自己去记。

  使用linux系统的熟练度,就是看你命令掌握了多少。

1
2
3
4
5
6
7
8
9
ip addr show  
ls                               查看linux文件夹信息,list的缩写
                                     linux 白色的是普通文件,蓝色的是目录、文件夹
pwd                            打印当前工作目录,print work directory的缩写 
mkdir  文件夹名                 创建文件夹
mkdir  hanju  huoying  lol  kele    创建多个文件夹
cat 文件名                       查看linux 文件内容
cd 目录                           更改目录,change directory的缩写
touch 文件1 文件2 文件3        创建普通文本文件
复制代码
  mv,移动指令,move的缩写
  - 移动文件/文件夹到别的目录  
  - 改名 mv 原名 新名

  rm,删除指令,remove的缩写,删除命令在服务器上慎用 
  - rm 文件名             删除文件的命令
  - rm 文件名*            支持通配符
复制代码

  vi是linux下的文本编辑器,相当于notepad++ ,vi命令的用法如下:

  - vi 文件名                此时进入了一个命令模式,需要你输入 i 字母,插入指令
  - 在编辑模式下,可以输入一堆字符串
  - 当代码写完了,按下esc 回到命令模式,输入冒号 : wq! 
    :wq!  write 写入 quit 退出 !强制性
    :q!  不保存强制退出

 

posted @ 2018-12-24 20:49  卍风衍  阅读(192)  评论(0编辑  收藏  举报