一.Linux基础知识及学习准备

Linux基础知识及学习准备

  • 1.Linux学习大致介绍
    • 1.1 linux课程内容
    • 1.2 linux学习方向
    • 1.3 linux应用领域
    • 1.4 linux进阶之路
    • 1.5 Linux的学习方法
  • 2.Linux基础知识
    • 2.1 Linux入门
    • 2.2 安装VM和Linux系统
      • 2.2.1 VM的网络模式
        • VMware虚拟机三种网络模式详解
      • 2.2.2 VM安装
      • 2.2.3 centos安装
        • 虚拟机克隆
      • 2.2.4 VM tools安装和共享文件夹的设置
    • 2.3 Linux目录结构
      • 2.3.1 基本介绍
      • 2.3.2 每个目录的作用
      • 2.3.1 Linux 目录总结
  • 3.linux实操篇-远程登陆Linux
    • 3.1 为什么需要远程登录
    • 3.2 SSH
      • 3.2.1基于用户名/密码的验证方式:
      • 3.2.2 基于秘钥的登录方式(免密登陆)
      • 3.2.3 OpenSSH使用(免密登陆的设置)
    • 3.3 Xshell与Xftp的安装、配置与使用
      • 3.3.1 Xshell介绍
      • 3.3.2 Xshell安装
      • 3.3.3 XFtp5 软件的安装、配置与使用
        • SFTP 与 SFTP远程连接
        • XFtp5 软件安装

1.Linux学习大致介绍

https://www.bilibili.com/video/av47702283/?p=2

1.1 linux课程内容

一.Linux基础知识及学习准备_第1张图片

一.Linux基础知识及学习准备_第2张图片

JavaEE:至少得会Linux搭建JavaEE环境

大数据对服务器集群的操作,需要学习shell编程:脚本

python专业开发平台:Ubuntu;及开发环境搭建

1.2 linux学习方向

一.Linux基础知识及学习准备_第3张图片

1)linux运维工程师:

  • 服务器的规划、调试优化、日常监控、故障处理、数据备份、日志分析
  • 服务器瘫痪,要迅速恢复

2)linux嵌入式工程师:

  • 熟练掌握linux下各种驱动程序开发
  • 在嵌入式系统中进行程序开发

3)linux下开发项目:

  • 程序开发、部署、维护
  • python、JavaEE、c/c++、PHP……

程序员为什么要学linux:程序的开发、部署、维护都需要linux操作系统的使用。

1.3 linux应用领域

1)个人桌面领域
2)服务器领域:因为Linux OS

  • 免费、开源
  • 安全、稳定
  • 高效、处理高并发非常强悍
    3)嵌入式系统
  • 运行稳定
  • 对网络良好支持
  • 低成本
  • 可以根据需求进行软件裁剪,内核最小可以达到几班KB
  • 主要应用:物联网、智能硬件方面将会是主要应用领域

1.4 linux进阶之路

一.Linux基础知识及学习准备_第4张图片

1)第一阶段:基本操作命令

  • ①文件操作命令
  • ②编辑工具使用:vi、vim
  • ③Linux用户管理:useradd、userdel、usermod……

2)第二阶段:linux各种配置

  • ①环境变量配置
  • ②网络配置
  • ③服务配置

3)第三阶段:linux下搭建对应语言的开发环境

  • ①大数据
  • ②JavaEE
  • ③Python

4)第四阶段:能写shell脚本,对linux服务器进行维护

  • shell编程

更高要求:(已经达到运维工程师的要求)

5)第五阶段:能进行安全设置,防止攻击。保障服务器正常运行,能对系统调优

6)第六阶段:深入理解linux系统(对内核有研究),熟练掌握大型网站应用架构组成、并熟悉各环节的部署和维护方法

1.5 Linux的学习方法

1)高效而愉快的学习:学习结果——达到实操水平
2)先建立整体框架,然后细节
3)不需要掌握所以指令,学会查询手册和百度(基本指令要掌握)
4)先know how,再know why
5)计算机是一门“做中学”的学科,必须上手做了才会
6)适当的囫囵吞枣(实操中会使你大彻大悟)
7)Linux不是编程,重点是实际操作,各种指令要玩的溜

2.Linux基础知识

2.1 Linux入门

linux系统组成及结构:

https://blog.csdn.net/hguisu/article/details/6122513

一.Linux基础知识及学习准备_第5张图片

1)计算机硬件、操作系统内核、操作系统发现版本的关系

  • 硬件层
  • 操作系统层
  • shell层:命令解释层
  • 应用软件

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。

一.Linux基础知识及学习准备_第6张图片

2)Liunx发展历史:Unix与Linux关系(GNU计划)
一.Linux基础知识及学习准备_第7张图片

2.2 安装VM和Linux系统

2.2.1 VM的网络模式

VMware虚拟机三种网络模式详解

参考文章:
https://www.linuxidc.com/Linux/2016-09/135521.htm

首先是VMware的几个虚拟设备:

  • VMnet0:这是VMware用于虚拟桥接网络下的虚拟交换机;
  • VMnet1:这是VMware用于虚拟Host-Only网络下的虚拟交换机;
  • VMnet8:这是VMware用于虚拟NAT网络下的虚拟交换机;
  • VMware Network Adapter VMnet1:这是Host用于与Host-Only虚拟网络进行通信的虚拟网卡;
  • VMware Network Adapter VMnet8:这是Host用于与NAT虚拟网络进行通信的虚拟网卡;

1.vmware为我们提供了三种网络工作模式,它们分别是:

  • Bridged(桥接模式)
  • NAT(网络地址转换模式)
  • Host-Only(仅主机模式)。

打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),那么这些都是有什么作用呢?其实,我们现在看到的VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机。
一.Linux基础知识及学习准备_第8张图片
2.宿主机的网卡:包含自己的网络适配器,以及两个虚拟机网络适配器

同时,在主机上对应的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,它们分别作用于仅主机模式与NAT模式下。在“网络连接”中我们可以看到这两块虚拟网卡,如果将这两块卸载了,可以在vmware的“编辑”下的“虚拟网络编辑器”中点击“还原默认设置”,可重新将虚拟网卡还原。
一.Linux基础知识及学习准备_第9张图片

一.Linux基础知识及学习准备_第10张图片
一.Linux基础知识及学习准备_第11张图片
一.Linux基础知识及学习准备_第12张图片
一.Linux基础知识及学习准备_第13张图片
一.Linux基础知识及学习准备_第14张图片
一.Linux基础知识及学习准备_第15张图片
一.Linux基础知识及学习准备_第16张图片

2.2.2 VM安装

1.需求:

  • 1)安装虚拟机
  • 2)通过vm创建一个虚拟空间
  • 3)在虚拟机上安装Centos系统:通过vm软件在虚拟空间上,安装Centos
  • 4)使用Centos

2.windows、vm和centos关系:

一.Linux基础知识及学习准备_第17张图片

3.VM安装步骤

1)安装虚拟机软件:
BOIS里修改设置开启虚拟化设备支持(F2/F10)

2)虚拟空间的设置:
虚拟机网络连接的三种形式

一.Linux基础知识及学习准备_第18张图片

2.2.3 centos安装

1.安装流程

http://mirrors.163.com/centos/

1)CentOs磁盘分区的设置:

  • /boot分区:操作系统的引导文件:200M
  • swap:交换分区,当系统内存不足时,可以使用该分区暂时替代内存。物理内存的1~2倍之间:2048M
  • /:根分区:

2)CentOs安装模块的选择:桌面、还是最小安装……

3)CentOs root 用户的创建

虚拟机克隆

  • 1)完全克隆
  • 2)连接克隆

第一步:修改改静态IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.2
DNS1=192.168.1.2
NAME=eth0

第二步:改主机名

vim /etc/sysconfig/network

  • 改HOSTNAME字段
  • 改成 HOSTNAME=hadoop100

第三步:改网卡脚本文件(新虚拟机)

vim /etc/udev/rules.d/70-persistent-net.rules

  • 第一行删掉
  • 第二行最后 NAME=“eth1” 改成 NAME=“eth0”

2.2.4 VM tools安装和共享文件夹的设置

1)VMware Tools的主要作用是:

  • 虚拟硬件的驱动,鼠标的无缝移出移入,
  • 剪贴板共享;
  • 共享主机上的文件夹等功能;

一.Linux基础知识及学习准备_第19张图片

2)安装:https://blog.csdn.net/blessed_sy/article/details/81173746

3)windows和linux共享文件夹的设置:

https://www.cnblogs.com/huangjianxin/p/6343881.html

4)共享文件夹的使用:

在终端命令行输入 cd /mnt/ + 按下两次Tab键 ,回车,即可进入主机中的共享文件夹。

2.3 Linux目录结构

2.3.1 基本介绍

linux 的文件系统:

  • 采用级层式的树状目录结构, 在此结构中的最上层是根目录“/” , 然后在此目录下再创建其他的目录。

记住一句经典的话: 在 Linux 世界里, 一切皆文件。

深刻理解 linux 树状文件目录是非常重要的:

一.Linux基础知识及学习准备_第20张图片

2.3.2 每个目录的作用

每个目录的存放内容都有要求,需要清楚。

可参考博客:https://blog.csdn.net/u013239236/article/details/48845251

1./bin:重点(/usr/bin、/usr/local/bin)

  • 二进制可执行命令, binary的缩写;
  • 这个目录存放着最经常使用的命令;

2./sbin(/usr/sbin、/usr/local/sbin)

  • s代表super user的意思;
  • 这里存放的是系统管理员使用的系统管理程序;

3./home:重点

  • 存放普通用户的主目录;
  • 每天用户都有自己的主目录,一般名称为自己账户名;

4./root:重点

  • 该目录为系统管理员的用户主目录

5./boot:重点

  • 存放启动Linux时使用的一些核心文件;
  • 包括一些连接文件,以及镜像文件;

6./proc

  • 是一个虚拟目录;
  • 是系统内存的映射,通过访问这个目录来获取系统信息

如:查看Linux内核版本命令(两种方法):

[root@S-CentOS home]# cat /proc/version

7./srv

  • service的缩写;
  • 存放一些服务启动之后需要提取的数据;

8./sys

  • 这是linux2.6内核的一个很大变化文件系统
  • 目录下安装了2.6内核中新出现的一个

9./tmp

  • 公用的临时文件存储点;
  • 这个目录是用来存放一些临时文件;

10./dev

  • 类似于windows的设备管理器;
  • 把所有硬件用文件的形式存储;

11./media:重点

  • linux系统会自动识别一些设备:如U盘、光驱……
  • 当识别后,linux会把识别的设备,挂载到这个目录下

12./mnt:重点

  • 系统提供该目录,是为了让用户临时挂载别的文件系统;
  • 可以将外部存储挂载在/mnt/上,然后进入该目录,就可以查看内容;
  • eg.安装VM Tools之后,在虚拟机上设置“共享文件夹”,该文件夹就挂载在/mns目录下

13./opt

  • 给主机额外安装软件所摆放的目录;
  • 如安装Mysql,可以将安装软件包放在该目录下;

14./usr/local:重点

  • 这是一个给主机安装额外软件所用的安装目录
  • 一般是通过编译源码的方式安装程序;

15./var:重点

  • 存放不断扩充的东西, 某些大文件的溢出区;
  • 习惯将经常被修改的目录放在该目录下;
  • 包括各种日志文件;

16./selinux(security-enhanced linux)

  • SELinux是一种安全子系统,能控制程序只能访问特定文件。

17./etc

  • 系统管理和配置文件

18./lost+found

  • 这个目录平时是空的,
  • 系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

19./lib

  • 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件

20./usr

  • 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。

2.3.1 Linux 目录总结

  • 1)linux 的目录中有且只要一个根目录 /
  • 2)linux 的各个目录存放的内容是规划好,不要乱放文件。
  • 3)linux 是以文件的形式管理我们的设备, 因此 linux 系统, 一切皆为文件。硬件也是通过文件进行管理,通过把硬件映射成文件来进行管理。
  • 4)linux 的各个文件目录下存放什么内容, 要明确。
  • 5)脑海中应该有一颗 linux 目录树

3.linux实操篇-远程登陆Linux

3.1 为什么需要远程登录

  • 1)实现PC对远端服务器的操作:SSH(安全外壳协议) —远程登录软件(如Xshell)
  • 2)实现PC与服务器的文件上传与下载:XFtp软件

一.Linux基础知识及学习准备_第21张图片

说明:公司开发时候, 具体的情况是这样的

  1. linux 服务器是开发小组共享的.
  2. 正式上线的项目是运行在公网的.
  3. 因此程序员需要远程登录到 centos 进行项目管理或者开发.
  4. 画出简单的网络拓扑示意图(帮助理解)
  5. 远程登录客户端有 Xshell5, Xftp5 , 我们学习使用 Xshell5 和 Xftp , 其它的远程工具大同小异

3.2 SSH

Secure Shell 的缩写,是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性协议;通过使用SSH,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。

从客户端来看,有两种验证登录方式:

  • 1)基于密码
  • 2)基于秘钥

3.2.1基于用户名/密码的验证方式:

连接请求发送,基本语法:

ssh 用户名@服务器IP地址

每次客户端连接服务器,都需要输入密码:

  • 1)客户端发起SSH请求;
  • 2)服务器会把自己的公钥发送给客户端;
  • 3)客户端会根据服务器发来的公钥,对密码进行加密,将加密后的信息回传给服务器;
  • 3)服务器使用自己的私钥进行解密、判断;

一.Linux基础知识及学习准备_第22张图片

3.2.2 基于秘钥的登录方式(免密登陆)

能不能每次登录远程服务器时,免密登陆:步骤

  • 1)在客户端生成一对秘钥(公钥、私钥);
  • 2)客户端将生成的公钥拷贝到需要访问的服务器端机器上,重命名为authorized_keys
  • 3)客户端再次连接时,发送请求:包括IP、用户名;
  • 4)服务器端接收请求,会到authorized_keys中查找,如果有相应IP和用户,会随机生成一个字符串;
  • 5)服务器使用公钥加密字符串发送给客户端;
  • 6)客户端通过私钥对加密字符串进行解密,然后将解密的字符串发送给服务器;
  • 7)服务器对发送过来的字符串进行对比,一致,就允许免密登陆。

一.Linux基础知识及学习准备_第23张图片

3.2.3 OpenSSH使用(免密登陆的设置)

OpenSSH是SSH协议的免费开源实现。

OpenSSH由客户端和服务端的软件组成:

  • 1)服务端是一个守护进程(daemon),进程在后台运行并响应来自客户端的请求。服务端一般是SSHD进程,提供对远程连接的处理;
  • 2)客户端包含SSH程序,以及像scp(远程拷贝),slogin(远程登录)、sftp(安全文件传输)等其他应用程序。

默认情况,CentOS系统会自带安装OpenSSH服务:

  • 1)安装语法:

yum list installed | grep openssh

  • 2)查看语法:

ps -ef | grep openssh

使用案例:配置node1 至 node2 机器的免密登陆:

a)在node1上,生成秘钥:

ssh-keygen -t rsa [dsa] ->按4下回车

会生成秘钥文件和公钥问价:id_rsa,id_rsa.pub

存放在主目录下 .ssh 文件夹中

rsa/dsa:两种不同的秘钥算法

b)将公钥拷贝给 node2 机器

ssh-copy-id node2的IP

首次连接,需要输入用户密码、验证成功后后续免密登陆;

会在 node2 的.ssh文件夹下复制一份公钥文件:authorized_keys

3.3 Xshell与Xftp的安装、配置与使用

3.3.1 Xshell介绍

Xshell 是目前最好的远程登录到 Linux 操作的软件, 流畅的速度并且完美解决了中文乱码。

Xshell是一个强大的安全终端模拟软件, 它支持 SSH1, SSH2, 以及 Microsoft Windows 平台的 TELNET 协议

Xshell 可以在 Windows 界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。

特别说明:

如果希望安装好 XShell 5 就可以远程访问 Linux 系统的话, 需要有一个前提:

  • 就是Linux 启用了 SSHD 服务, 该服务会监听 22 号端口。

CentOS6 如何查看与开启SSHD服务:

1)查看SSHD服务是否正在运行:

/etc/init.d/sshd status 
或者
service sshd status
服务运行输出:
openssh-daemon (pid  13624) 正在运行...

2)若处于非运行状态则使用(service sshd start)命令开启SSH服务;

3)停止SSHD服务命令(service sshd stop);

4)重启SSHD服务命令(service sshd restart)

3.3.2 Xshell安装

1)安装过程

2)Linux 连接网络、查看IP:ifconfig

3)连接Linux配置:

一.Linux基础知识及学习准备_第24张图片

4)远程连接与操作

3.3.3 XFtp5 软件的安装、配置与使用

SFTP 与 SFTP远程连接

1.《计算机网络》:文件传输协议FTP、SFTP和SCP:

https://www.cnblogs.com/xingxia/p/system_ftp.html

2.SFTP:secure file transfer protocol 安全文件传输协议

  • 可以为文件传输提供一种安全的网络加密方法;
  • sftp是SSH的其中一部分,本身没有单独守护进程,使用SSHD的守护进程(默认端口号22)来完成相应的连接和答复操作;

3.SFTP模式连接

操作:使用SFTP连接方式连接服务器

一.Linux基础知识及学习准备_第25张图片

一.Linux基础知识及学习准备_第26张图片

常用命令

一.Linux基础知识及学习准备_第27张图片

XFtp5 软件安装

1.XFtp5 软件介绍:

是一个基于 windows 平台的功能强大的 SFTP、 FTP 文件传输软件。

使用了 Xftp 以后, windows用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。

2.配置与使用

一.Linux基础知识及学习准备_第28张图片

1)使用哪个用户(如root),就会显示哪个用户的家目录。

2)乱码的解决:

一.Linux基础知识及学习准备_第29张图片

说明: 如上图配置后, 还需要刷新一下, 就可以解决中文乱码

你可能感兴趣的:(Linux,Linux)