
1.2 Linux操作系统基础
很多Web应用的后台运行在Linux操作系统中。Linux来源于UNIX,是UNIX操作系统的开放源代码实现。Linux通过SSH客户端软件连接到远程的Linux服务器。SSH服务器通常作为大多数Linux发行版上易于安装的软件包提供。可以尝试使用ssh localhost命令来测试它是否正在运行。
如果有现成的Linux服务器可用,可以使用支持SSH(Secure Shell,安全外壳)协议的终端仿真程序SecureCRT连接到远程Linux服务器。因为它可以保存登录密码,所以使用比较方便。除了SecureCRT,还可以使用开源软件PuTTY(http://www.chiark.greenend.org.uk/~sgtatham/putty),或者保存登录密码的KiTTY(https://www.fosshub.com/KiTTY.html)及Xshell。如果用root账户登录,则终端提示符是#;否则,终端提示符是$。
也可以在Windows下安装Cygwin,使用它来练习Linux常用命令。
小袋鼠在袋鼠妈妈的袋子里长大。使用VMware,Linux可以运行在Windows系统下。VMware让Linux运行在虚拟机中,而且不会破坏原来的Windows操作系统。首先要准备好VMware,当然仍然需要Linux光盘文件。
就好像华山派有剑宗和气宗,Linux也有很多种版本,如RedHat、CentOS、Ubuntu及SUSE。这里介绍Ubuntu(https://www.ubuntu.com)和CentOS(http://www.centos.org/)。
操作系统中可能会安装好几个版本的JDK。在Linux中,为了切换JDK版本,只需要修改/etc/alternatives中的符号链接指向。
在Ubuntu中,如果需要安装软件,可以下载deb安装包,然后使用dpkg命令安装。但一个软件包可能依赖其他的软件包。为了安装一个软件可能需要下载其他的好几个它所依赖的软件包。
为了简化安装操作,可以使用高级包装工具(Advanced Packaging Tool,APT)。APT会自动计算出程序之间的相互关联性,并且计算出完成软件包的安装需要哪些步骤。这样在安装软件时,不会再被那些关联性问题所困扰。
在/etc/apt/sources.list文件中指示了包的来源存储库。包的来源可以是CD或DVD、硬盘上的目录、HTTP或FTP服务器上的目录。请求的数据包位于服务器或本地硬盘上,它将自动下载并安装。APT主要关注采购包、包的可用版本的比较,以及包档案的管理。实际上,可以通过浏览器浏览在HTTP或FTP服务器上的存储库。
如果需要修改/etc/apt/sources.list文件,可以先备份这个文件:
#sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
如果这一步出现
sudo: unable to resolve host t-000004
这样的错误,则可以考虑执行如下命令修改/etc/hosts文件的内容:
#echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo tee -a /etc/hosts
如果安装过程中出现“E: Could not get lock /var/lib/dpkg/lock”这样的错误,则可以尝试使用如下命令修复:
#sudo fuser -cuk /var/lib/dpkg/lock #sudo rm -f /var/lib/dpkg/lock
在CentOS中,如果需要安装软件,可以下载RPM安装包,然后使用RPM安装。例如,下载Elasticsearch软件的安装包elasticsearch-6.6.0.rpm:

使用如下命令安装:
#rpm -ivh elasticsearch-6.6.0.rpm
但有些操作系统对应的RPM安装包找起来比较麻烦。一个软件包可能依赖其他的软件包。为了安装一个软件可能需要下载其他的好几个它所依赖的软件包。
为了简化安装操作,可以使用黄狗升级管理器(Yellow dog Updater,Modified),一般简称yum。yum会自动计算出程序之间的相互关联性,并且计算出完成软件包的安装需要哪些步骤。这样在安装软件时,不会再被那些关联性问题所困扰。
yum软件包管理器自动从网络下载并安装软件。yum有点类似360软件管家,但是不会有商业倾向的推销软件。例如,安装支持wget命令的软件:
#yum install wget
为了方便在服务器端编写Shell脚本,可以采用Micro(https://github.com/zyedidia/micro)这样的终端文本编辑器。
在Linux上,可以通过snap安装micro:
#snap install micro --classic
保存文件后,按Ctrl+Q组合键退出。