admin管理员组

文章数量:1535374

大家好,我是蓝蓝。

就不多说这段时间干啥去了吧,期间和很多的同学聊了天,有的童鞋已经开始工作,聊了聊工作上的事儿。有的是今年即将毕业的童鞋,有着自己的小目标,有的想尝试互联网,所以现在基本上都快进行二轮的复习了,有的同学备战公务员,凭着年轻这股劲儿向往自己理想的生活状态,无论怎么样,长路漫漫,走一步,算一步,每一步都算数。

今天分享的这篇文章是 Linux 相关的基础知识,深一点的内容基本上没有,不过对于刚需小伙伴来说,也就够了,有时间的话,最好按照这些命令去试一试,敲一敲,这样记忆更加深刻。

老规矩,先看目录,目录原图比较大,微信公众号后台没法放,本文文章比较长,代码部分全部采用贴图的方式,这样看着更加整洁,相关函数或命令的使用方法,如果涉及到多个参数,我则采用的思维导图的方式,更加直观,所以导致本文图片100张,建议大家收藏后慢慢看。

为什么使用 Linux 或者 为什么要去学习 Linux

在看这篇之前,大家需要知道为什么去学习它,对于我而言,是一次偶然的比赛中接触到 Linux,从而开启 Linux 的学习。

知道了很多线上的服务,很多的服务器都是 Linux 系统,那么对于迟早都要入职的我们,提早的学习 Linux 的基本使用将尤为的必要。

总结一下,学习 Linux 最重要的几点:

  • 对于使用 C/C++ 开发者,可以方便直接在 Linux 中编译运行程序
  • Linux 作为开源项目,其精妙的数据结构设计值得深入学习
  • 我们将要面对的各种笔试,面试需要它

在我的面试过程中,大厂互联网的面试会考察 Linux 操作系统中概念的基本底层原理,而对于国企,事业单位,银行等企业就会直接问 Linux 的基本使用了。

好了,正式开始学习。

一 Linux简介及安装

不同学校开设的课程不一样,我们学校计算机专业在大三的时候开设 Linux 这门课程,不过学习的内容偏向理论,至于相关命令和功能的实现具体原理并不清楚。

直到几年后,发现大部分的系统,诸如团购,打车等系统都部署在 Linux 中,另外相关云计算,大数据,容器相关技术也都是基于Linux

为什么说了解Linux 的生态,会让你学到更多的新技术?

我们要知道很多的大牛通过Linux来开发各种如那件,数据库 MysqlkafkaSpark 等技术都会默认提供 Linux 的安装运维手册,所以尽快的进入 Linux 的世界对于个人的进步和职业发展都是非常有好处的

每当我们买了手机,买了电脑,上手就可以用,这是因为预装了操作系统。所以呀,哪有什么岁月静好,其实有人帮我们负重前行了,操作系统就是这样一个角色。

那么操作系统帮助我们做了哪些事儿呢?

  • 我们只需要点击桌面上的图标,应用程序就开启
  • 电脑咋个知道我们鼠标点击的那个位置
  • 为什么我一回车,这些字符就飞出去了

这几个任何一个操作,基本上都覆盖了操作系统的所有功能,现在就进入熟悉而陌生的操作系统世界。

1 vmvare

虚拟机是什么?

虚拟机通过软件的方式来模拟完整的硬件系统,运行在完全隔离的计算机系统。每个虚拟计算机可以独立运行并安装各种软件和应用。

学习 Linux 最简单、最实用的环境即虚拟机环境,通常即本文中的 VMvare

使用虚拟机模拟出来的 Linux 学习环境简单且容易上手,能够较为真实的模拟出真正的Linux

当然你也可以将自己的笔记本装成 Linux 的环境,但是这样加大了学习的难度,如果需要 进行 Linux 集群的学习,那就更不方便了。

使用虚拟机系统环境,我们可以对虚拟系统随意进行任何的设置和更改,甚至可以格式化虚拟机系统硬盘,进行重新分区等操作,而且完全不用担心会丢掉有用的数据,因为虚拟机是系统上运行的一个虚拟软件,对虚拟机系统的任何操作都相当于是在操作虚拟机的虚拟机设备和系统,不会影响电脑上的真实数据。

说了这么多,现在开始安装 VMvare。

  • 首先从官方下载并解压虚拟机安装包,然后双击运行

  • 点击下一步

  • 选择安装位置,最好不要出现中文哈,不然后续可能出现莫名奇妙的问题。

  • 设置用户体验选项,都可以选择

  • 在桌面和开始菜单程序文件夹创建快捷方式。

  • 百度一个许可证ZG1WH-ATY96-H80QP-X7PEX-Y30V4,注意选择的版本号。

  • 打开 Vmvare。

  • 点击新建虚拟机向导-选择文件-新建虚拟机-打开。

  • 选择自定义,然后下一步。

  • 下一步。

  • 安装客户机操作系统,选择稍后安装操作系统。

  • 命名虚拟机-更改虚拟机名称并选择安装的位置。

  • 更改主机配置进行处理的分配。

  • 虚拟内存分配:注意内存分配不能大于主机内存。

  • 设置虚拟机网络得类型,这里选择 NAT(下文会介绍三种网络配置方式的区别)

  • IO控制器选择,选择LSILogic。
  • 磁盘类型选择SCSI即可。

  • 创建磁盘选择创建新虚拟磁盘

  • 指定磁盘文件

  • 修改路径

  • 选择自定义硬件

  • 选择centos得ISO镜像文件,先选择CDDVN—ISO镜像文件—浏览找到镜像、

  • 点击完成

  • 开启虚拟机 选择配置好的虚拟机。

  • 鼠标移动到虚拟机内部,上下键选择install centos7然后回车。

  • 选择软件选择最小安装,选择语言。

  • 软件安装。

  • 选择计算节点。

  • 开始安装。

  • 设置root密码,点击完成配置。

2 进行网络配置

现在我们的 Centos 还是个空壳子,如果我们需要访问外网,则需要进一步配置。“秀才不出门,便知天下事”,你是秀才你试试。

没有网络,我们可能停留在看电视,跳皮筋的年代,我还真是会跳皮筋

为了让我们下载软件更加的顺畅,速度更快,最快速度白嫖资源,不得不个配置网络

  • 打开配置文件
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
  • 更改相应的配置
DEVICE=eth0 #设备名称,可根据ifcofnig命令查看到。
BOOTPROTO=dhcp #连接方式,dhcp会自动分配地址,此时不需要在下面设置ip和网关
HWADDR=00:0C:29:AD:66:9F #硬件地址,可根据ifcofnig命令查看到。
ONBOOT=yes #yes表示启动就执行该配置,需要改为yes
  • service restart network 完事 ping www.baidu

既然要配置网络,我们先看看网络的配置文件在哪里,以及相关的配置有哪些,分别代表是什么意思

  • 打开网络配置文件

BOOTPROTO = static,表示启用了静态 IP 地址,默认为 none

NAME = eth0,与网卡配置文件对应的一个标签,如果为 eth0 则配置文件是ifcfg-eth0

UUID = xxxx,网卡唯一设备标识,系统自动得生成

DEVICE = XXX,网卡设备名称,是物理设备标识

IPADDR0 = XXX,表示设置IP地址。这里注意后面的数字,在 Centos7 以后可以一个网卡配置多个 IP 地址

PREFIX0 = 24,设置子网掩码,这里设置子网掩码的方法和之前的版本也不一样,24代表是255.255.255.0

Getway = XXX,网关地址,什么是网关线面会详细阐述

知道配置文件每一行代表的含义以后,就可以根据自己的需求进行配置了,记得配置完成以后重启网络,如果是Centos7,那么命令

service network restart
  • 本地回环配置文件 /etc/sysconfig/network-scriptis/ifcfg-lo

第一行 Device:网络的设备名

第二到四行:lo 接口的 IP 地址,子网掩码,网络号

第七行:lo 接口的广播地址

第八行:开机启动 lo接口

第九行:将lo接口设置为本地回环地址

  • DNS 配置文件/etc/resolv.conf

这里的「namespace」 表示域名服务器,后面的 IP地址就是DNS 服务器,当用户在Linux中访问某个域名的时候,就需要靠这些 DNS 服务器来解析

  • 设置主机和 IP 绑定配置文件 /etc/hosts

为什么会说说这个配置文件呢,因为当在部署集群的时候,我们需要在此配置,方便我们不用每次都是输入其他机器得IP进行访问,而是直接使用用户名即可。

类似于 Windows 下得 hosts 文件,我们看看 Linux 中的 /etc/hosts 的内容

从上面我们发现,hosts 文件中的每一行内容为一个主机,每一行由三个部分组成,其中每个部分按空格隔开。

多说一句,以后大家如果需要分析一些日志文件的时候,一定要清楚是按照什么分割的,免得浪费了时间却还没有处理好问题

  • 第一部分:网络 IP 地址

  • 第二部分:主机名域名

  • 第三部分:主机名

路由

我和你的通信需要网络的传输,这个传输过程中可以说经历了九九八十一难,就是这样穿过无数的节点,无数的路由器才将信息传递到你的屏幕。

那么为了保证将信息传递给你,在数据传输到达某一个网络节点后,这个网络节点需要根据**「约定」将数据传送到另一个网络节点,然后再传输到下一个节点,以此类推到达目标主机。这里的每个网络节点就是「路由」,所谓的约定即路由规则**

不使用路由就不行么

举个例子,我给你寄几箱猕猴桃,我的地点在北京,到了快递点,我需要写你的地址,比如是"成都市高新区马保国镇222单元",通常邮寄点不会直接帮你送到指定的地址,而是可能先到成都,然后成都这边揽收再送到马保国镇,这种就是采用分发得策略来提升效率。

这里的寄送系统就是一个大型的网络系统,每个寄存点主要负责快递的传送任务,只要快递到达寄存点,就得准确,迅速将信件投递到下一个寄存点处,这里的快递就是通过「路由机制」准确,快速的寄送到目的地的。

有哪几种路由呢

  • 静态路由

静态路由是系统管理员通过 route 手工加入的静态路由规则

  • 动态路由

动态路由是不同机器彼此经由程序相互交换路由规则而来的。如果网络发生了变化,路由软件会重新计算路由并发出新的路由更新信息

路由如何配置

Linux 中,通过 route 命令配置静态路由信息,

route [-n|ee]

常用的选项

  • 查看当前路由表信息

从上面我们可以知道通过route -n 输出的为纯IP 地址,而route输出的信息就会包含主机名信息,下面说说选项的含义

  • Destination :网络号,即 network 的意思
  • Gateway:连出去的网关地址
  • Flag
    • U:代表路由启动勒
    • H:代表目标路由是一部主机而非网络
    • R:代表使用动态路由的时候,回复路由信息标识
    • G:表示需要通过外部的主机来转递数据
    • M:表示路由已经修改了

网关是什么

不知道大家经历过在宿舍买台交换机,然后几台机器组成局域网打游戏的日子没有。那个时候苦逼呀,只能打局域网的游戏,不能上网

时代在进步,科技在腾飞呐,学校就给每个宿舍分配一一个IP 地址,这个IP 地址是学校的网管部门负责,宿舍网的IP 通常是 192.168.1.x,校园网的 IP 地址假设是 10.10.x.x

如果此时你想在宿舍上网,通常有两个方案

  • 第一种方案:舍友们众筹买一张网卡,然后插入到A同学的电脑上,一张网卡的线插在宿舍的交换机,另一张网卡插在校园网的网口,此时就可以上网,但是A同学电脑就贡献出去了,只能看你们打游戏,他自嗨,多可怜
  • 第二种方案:买个路由器,这个路由器有内网网口和外网网口,外网网口插在校园网的网口上面(当然配置的时候根据网管部门所要求的),内网网口连接上宿舍的所有电脑,这样的话,路由器就得一直都开着

宿舍长可以上网了,其他人的电脑要上网还需要配置下各自的网卡,通常是DHCP 默认配置,在配置的时候你就会发现有个叫做Gateway的东西,这就是网关,要了解网关不得不去了解MAC 头和 IP 的头部

MAC和IP头部有啥?

网卡自出生那天起,就带上了这个地址,那么问题来了,为啥不使用 MAC 地址进行通信呢?因为靠 MAC 地址没法定位准确,它更像身份证,作为唯一标识。举个例子,我住在“成都市高新区 B 座 5 楼”,有个女娃儿可以问路人:“成都市高清区 B座在哪里”,路人可以给他比较明确的地点,但是如果她问:“你知道小蓝(身份证)在哪儿吗”,很明显无从得知,说不定以为"你是个傻子吧"。

你可以找到IP地址(成都市高新区 B5 楼),但是可能还是找不到我,这个时候假设你可能去服务台问(其实是靠吼,身份证为XXX的是哪位),这个时候我听到自然就会答应,不过你如果在北京喊,就听不见了,所以 MAC 地址实际上通信范围是比较小的,局限在一个子网里。它的头部结构如下

图中的类型大部分都是IP 数据包,IP 里面可能包含了 TCPHTTP 等,这都是封装的事儿了。拥有了这个 MAC 地址,就会在链路上广播,MAC 的网卡才发现这个包原来是给它的,网卡将包收进来,打开 IP 包,发现 IP地址是自己的,再打开 TCP 包发现端口是自己,还是 80,正好就是目前监听的端口

上述IP 头部的详细信息就先不说了,这里主要述说源 IP 和目标 IP 地址,当我们要访问一个IP 地址的时候,需要判断这个目标 IP 是否和当前的IP 地址在同一个网段

怎么判断是否在同一个网段

此时涉及到网络的 CIDR 和子网掩码了。我们通常将 IP地址比喻为门牌号码,既然是门牌号码,如果一样了就会冲突。假设大家都将地址设置为三单元 110,那快递小哥就压根找不到地方,所以,我们使用电脑的时候,有时出现上不了网了,很可能是I

本文标签: 基础图学进大厂必学Linux