4.2 Linux基础

本节主题: 4.2 Linux基础

课程讲师: Charlie

观看地址: 点我进入


1 本节要点

  • 了解Linux、CentOS、Ubuntu等;
  • 了解服务器的常用命令;
  • 重点掌握将接口服务部署在服务器的方法。

2 课前准备

注意:Xshell及Xftp只支持Windows系统,Mac可以用自带终端进行SSH连接替代XshellMac终端教程

Xftp可以用 filezilla 替代,Mac filezilla教程


2.1 Xshell

安装Xshell:强大的终端管理软件(用来远程连接服务器)

下载地址:点我查看

如果是家庭或者学校的用户,填写信息后,可以免费使用!


2.2 Xftp

安装Xftp:强大的SFTP、FTP文件传输软件

下载地址:点我查看

同上,家庭或者学校也可以免费试用!


2.3 服务器

准备一个Ubuntu 18.04服务器(购买1周时间,成本约5元。使用相应版本的虚拟机也可以,但是需要做穿透,映射到一个公网ip,否则无法进行接口开发);


服务器购买步骤(以阿里云为例):

登录阿里云账号;


点击云服务器ECS,进入服务器购买页面;


点击立刻购买,进入配置页面。建议选择包年包月,地域选择最近的区域,分类选择入门级(共享型)的第一个即可,本身接口的处理对于服务器消耗很低,所以最低配置即可满足需求;


选择公共镜像Ubuntu 18.04,高效云盘填写20GB即可,购买时长建议1周,都选好后,点击下一步;


选择默认专有网络,然后建议选择按使用流量付费,正常调用接口的流量占用非常低,其他都选择默认,点击下一步;


系统配置栏,登录凭证选择自定义密码,然后设置好自己的服务器密码;然后直接确认订单即可。


支付成功后,进入控制台即可看到你租用的服务器;


如图,是我购买的服务器;


2.4 设置安全组

服务器需配置安全组规则,否则无法开放端口到外网环境,除了默认开放的、用来进行SSH连接的22端口,我们本节课进行接口开发,需要用到其他端口,所以我们先设置安全组规则,开f放此端口。点击左边的安全组按钮;


点击配置规则,进入页面后点击添加安全组规则;


点击添加安全组规则,我们后面主要使用3100端口,所以这里直接开放3100端口即可,当然在实际开发过程中,可以自由选择开放的端口!


2.5 配置服务器环境

登录Xshell,点击图标新建一个SSH连接;


在下图主机处,输入你服务器的公网ip;


点击连接,选择保存并接受此主机密钥,在弹出的对话框用户名处填写root,密码填写创建服务器时设置的密码。出现下图即代表成功连接(同理可登录Xftp);


下面我们开始配置服务器的环境!

python3 -V                      #查看python3的版本
pip3 -V                         #查看pip3的版本

如下图可以发现,Python版本为3.6.8,并没有安装pip,那我们下面来安装pip!


sudo apt-get update             #升级apt-get


sudo apt install python3-pip

弹出 Do you want to continue? [Y/n] 后,输入Y,回车;


输入pip3 -V,指向python 3.6即表示安装成功!


2.6 课程所需库

服务器输入

sudo pip3 install requests

sudo pip3 install flask

sudo pip3 install apscheduler

出现 Requirement already satisfied …表示之前已经安装,出现Successfully installed …表示成功地完成了安装~!


本地输入

(已经安装过的库无需再次安装)

pip install requests

pip install flask

pip install apscheduler

3 课程内容

3.1 Linux

3.1.2 为什么是LInux


Linux是一个以开发者为中心的操作系统,而windows是以消费者为中心的操作系统。


安全稳定: 内核高效稳定。Linux内核的高效和稳定已在各个领域内得到了大量事实的验证。 Linux中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等;


源码公开: 任何人、任何组织只要遵守GPL条款,就可以自由使用Linux 源代码,为用户提供了最大限度的自由度。由于Linux源代码公开,也使用户不用担心有“后闸”等安全隐患;


软件丰富: Linux的软件资源十分丰富,每种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。这一切就使设 计者在其基础之上进行二次开发变得非常容易。Win平台也有丰富的软件,但是大部分为收费软件;


硬件要求: 对硬件要求很低。Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多种体系结构的微处理器。目前已成功地移植到数十种硬件平台,几乎能运行在所有流行的处理器上。 由于世界范围内有众多开发者在为Linux的扩充贡献力量,所以Linux有着异常丰富的驱动程序资源,支持各种主流硬件设各和最新的硬件技术,甚至可在没有存储管理单元MMU 的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用;


系统学习: 系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易;


模块化: Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得Linux系统内核可以裁剪得非常小巧。


3.1.2 CentOS

Ubuntu / CentOS 最常见的Linux发行版


CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。


3.1.3 Ubuntu


Ubuntu 是一个以桌面应用为主的Linux操作系统。Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。


Ubuntu在桌面界面上要做的更为出色 , CentOS作为运维服务器更加稳定。


3.2 服务器常用命令

3.2.1 系统目录

  • var: 保存经常变化的信息,如:log 中保存的系统的日志信息;
  • usr: 保存安装的应用软件;
  • tmp: 临时目录,里面放置临时文件,系统隔一段时间会自动删除;
  • sys: 系统底层信息;
  • sbin: super binary bin文件夹升级版,只有root用户才能运行的可执行文件;
  • proc: 不存在系统的硬盘上,只存在于系统的内存中,是一个虚拟的文件系统。显示系统的实时信息;
  • opt: 很多时候是空的,通常用来安装大型软件,如oracle。不是强制放置的;
  • mnt: 挂载目录(一定有) 等同于media;
  • media: 挂载目录(不一定有)自动挂载,插入U盘插入光盘自动挂载会挂载到media下;
  • lib: 保存系统的库文件;
  • home: 家文件夹,每一个用户都会有一个和用户名相同的文件夹存在于home中;
  • etc: 存放系统的配置文件;
  • dev: device的缩写,意思为设备装置。保存计算机所有硬件设备,在linux中所有的硬件设备都被抽象为一个文件;
  • boot: 启动的意思,引导目录,存放linux系统引导启动文件;
  • bin: binary的缩写,意思为二元的,二进制的。里面存放是的linux系统中的可执行文件;

3.2.2 文件目录管理

输入tab可以自动命令或文件名

cd /                  #打开系统根目录
cd xxx                #跳转目录 xxx
ll                    #列出文件和目录
rm xxx                #rm [选项] 文件
mkdir xxx             #创建文件夹
pwd                   #用于显示用户当前所处的工作目录
cp                    #用于复制文件或目录,格式为 "cp[选项] 源文件 目标文件"
mv                    #用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”
file                  #用于查看文件的类型,格式为“file 文件名”

#在shell中编辑文件
vim python            #通过vim去编辑python
q!                    #退出vim不保存(esc, :)
wq                    #退出vim并保存(esc, :)   

3.2.3 重启与关机

shutdown --help
# 可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。

shutdown -h now 现在立即关机

shutdown -r now 现在立即重启

shutdown -r +3 三分钟后重启

shutdown -h +3 “The System will shutdown after 3 minutes” 提示使用者将在三分钟后关机

shutdown -r 20:23 在20:23时将重启计算机

shutdown -r 20:23 & 可以将在20:23时重启的任务放到后台去,用户可以继续操作终端

3.2.4 top命令

top命令用于动态地监视进程活动与系统负载等信息,其格式为top

  • 第 1 行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为 1 分钟、5分钟、15 分钟内的平均值,数值越小意味着负载越低);
  • 第 2 行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数;
  • 第 3 行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等;
  • 第4行:内存状态;
  • 第5行:swap交换分区(在top里我们要时刻监控第五行swap交换分区的used)。

top   

ctrl + C  #退出

free     # 用于显示当前系统中内存的使用量信息

cat /proc/version     # 查看当前版本的详细信息
cat /proc/cpuinfo     # 查看CPU

uname    # 命令用于查看系统内核与系统版本等信息

3.2.5 后台运行命令

python3 1.py          #运行Python程序
nohup python3 1.py &  #加入后台运行
lsof -i:3100            #查看3100端口的进程
kill 9555             #杀死PID进程

执行日志的查看 nohup.out


3.2.6 可视化的管理

通过纯命令行的模式去管理服务器确实有些难度,可以为服务器安装GNOME桌面以及面板(但是我们买的服务器非常轻量级,建议最多安装面板); 更方便地进行管理!


面板管理的截图:

本文是否对您有帮助?
 有帮助
 没帮助
您是否遇到了以下问题?
如需获取即时帮助,请联系技术支持