制作一个网站或者搭建某种代理工具,无论目的是什么,对一直使用Windows或OS X桌面系统的我们,在初次接触 linux、ECS、VPS、脚本和命令时,对这些概念一片茫然。
虫子虽然目前连门都没入,但经过最近几年折腾“网站”,稍微积累了一些linux服务器的使用经验,纯小白的经验,分享给同样是小白的你们;请大神们略过。
硬件概念
购买“服务器”时可能会遇到网页空间
、VPS
、ECS
、独立服务器
这些名词,它们大致分为3类。
网页空间
拥有的权限非常小,通常只能通过FTP
上传类似wordpress的程序来搭建一个小网站,目前已经很少见了,不推荐使用。
云服务器
不同厂家叫法不同,像vultr、搬瓦工等叫VPS
,阿里云叫ECS
,腾讯云叫CVM
,谷歌云叫VM
,亚马逊云叫EC2
。可以简单的理解为把一台或多台完整的服务器分成独立的几部分,比如一台10核20GB内存500GB硬盘的服务器,分成5个2核4GB内存100GB硬盘的VPS。
云服务器拥有和独立服务器相同的权限,多数支持弹性伸缩,例如你感觉2核不够用了,可以云端升级到4核,而部署在云服务器上的网站或业务不受影响。
独立服务
这个很好理解,就是一台完整的服务器
不和任何人共用,如同租赁了一台服务器放到机房托管,机房为你供电和提供公网IP、宽带,你拥有这台服务器的几乎所有的管理权限。
独立服务器的配置一般都比较高,和云服务器相比,相同配置的独立服务器价格较为便宜,适合部署大型业务。
软件概念
linux
与Windows、os X一样,是一种操作系统,logo是一只可爱的企鹅。这里有两个概念,linux内核
和linux发行版
。
linux内核是操作系统的核心
,负责控制硬件、管理文件系统、程序进程。
linux发行版是在linux内核基础上,集成各种系统管理软件或应用工具软件,最终组成的一套完整的操作系统
。
常见的linux发行版有CentOS
、Ubuntu
、Debian
、Arch Linux
等等,虫子个人建议,搞网站可以选择CentOS(最新版是CentOS 7)、搭建网络代理工具可以选择Debian(最新版是Debian 9 代号stretch)
常用工具
SSH客户端
服务器所在地远的在海外,近的也在国内各省市,在家中如何控制呢?我们一般称这些软件为SSH 客户端:
- ⭕Windows:Xshell、PuTTY;
- ⭕Mac:可用系统自带 [终端];
- ⭕安卓:JuiceSSH、Termius;
- ⭕iOS:Termius、HyperApp。
上传下载
使用FTP客户端可以从服务器下载文件到本地电脑,或从本地电脑上传文件到服务器。
Windows系统推荐使用Xftp
,它和Xshell同出一个公司,从Xshell启动Xftp时不需要再次输入账号密码,非常方便。
- ⭕Xftp:[使用教程]
代码编辑
电脑自带的记事本可以编辑PHP、js等格式的文件,但和专业的编辑器相比不支持代码高亮和检错等功能,体验非常差,建议安装一些专用的代码编辑器,例如
执行命令
在服务器上,linux发行版多数是命令行界面(CLI)
,没有Windows这种图形用户界面(GUI)
不能通过鼠标点点点来操作。
我们通过SSH客户端
连接服务器,然后在SSH客户端输入命令行
对服务器进行控制。像虫子这种小白对命令行非常不熟悉,有时候看别人教程中的命令行截图,不知道哪些是需要输入到客户端的命令行,哪些服务器执行命令行后反馈的结果,如何看懂这些教程呢?
我们以执行查询句柄数的命令ulimit -n
为例,它在不同教程中可能会有如下写法
#开头
[root@server05 ~]# ulimit -n 1024
- ⭕root:是用户名(一般root权限账号的名字都是root),
- ⭕server05:是服务器名字(不同服务器的名字可能不同),
- ⭕ulimit -n:#后面的 ulimit -n 就是输入到SSH客户端命令,是我们跟着教程要在SSH客户端输入并执行的内容,注意不需要将 # 输进去。
- ⭕1024:则是执行完 ulimit -n 这条命令后服务器的反馈也就是执行后的结果。
除了上述的形式,有些教程可能不展示[root@server05 ~],而是直接写作如下形式:
# ulimit -n 1024
$开头
$ ulimit -n 1024
- ⭕$ ulimit -n:一般$ 后的内容 ulimit -n 是输入到SSH客户端的命令,注意不需要将 $ 输进去。
- ⭕1024:服务器执行命令后的反馈。
#和//
//查询句柄数 ulimit -n
#查询句柄数 ulimit -n
在上述两个例子中,有//和#符号,并且符号后面通过文字作了说明
- ⭕//和#:在这里一般是注释符号,用来解释说明下方命令的作用。注意不要和第一种形式的“#开头”混淆,比如#做注释时后面跟的是中文
- ⭕ulimit -n:要执行的命令
常见问题
wget: command not found
wget
是一个从网络上自动下载文件的自由工具,command not found
的意思是没有找到命令,合在一起就是没找到wget无法执行这个命令。
一般是系统太干净,我们给服务器安装wget工具,然后在执行之前的wget命令就不会提示wget: command not found了。
这里需要重点说明,比如执行 screen
命令时,提示 screen: command not found
,或者其它命令反馈 命令+: command not found
,多数是指缺少这个“工具”,那么先安装这个工具再去执行命令一般就不会报错了。
不知道如何安装这些“工具”?非常简单,直接网上搜索服务器反馈的提示,例如搜索“wget: command not found”,可以找到很多关于导致这个提示的原因和解决办法的文章。一定要善于使用搜索,未经搜索就发帖和留言询问,是极不负责也是最低效的解决办法。
apt-get 与 yum
还是以wget为例,根据提示发现服务器缺少wget工具,我们需要单独安装。不同linux发行版本使用的安装方法是不同的
CentOS一般使用yum
,例如安装wget的命令是
yum -y install wget
Ubuntu、Debian一般使用apt-get
,例如安装wget的命令是
apt-get install -y wget
sudo -i
有些脚本或命令的执行,需要root管理员权限
,如果你登陆SSH使用的账号密码没有root权限(登录时用户名不是root)将无法执行,所以需要临时获取root权限。
在SSH执行 sudo -i
命令,可以让你临时获取root权限,之后可以正常执行需要root权限的脚本或命令
sudo -i
时间
某些程序对时间有严格的要求,服务器需时间如果不正确需要进行调整。
[root@server05 ~]# date -R Tue, 30 Oct 2018 22:40:44 +0800
+0800是东八区时区也就是北京、上海时间;如果显示的时区是+0000,则是格林威治标准时间;显示时区是+0100则是东一区。同一时间,不同的时区显示的时间会不同,具体你可以网上搜索转换。只要转换后的时间是对,时区不一样没关系。
假如时间不对,可以通过执行时间修改命令:
[root@server05 ~]# sudo date --set="2018-10-30 22:40:44" Tue, 30 Oct 2018 22:40:44 +0800
暂无评论
要发表评论,您必须先 登录