什么是Linux
简单的说, Linux 和 Windows 、macOS 一样,都是操作系统,而操作系统本质上来讲也是一种软件(超大型的软件,代码量都在千万级以上)。
Linux 对于我们最大的意义在于,绝大多数的服务器上都使用 Linux 作为操作系统。我们的产品的开发、测试也都在 Linux 系统上进行操作。
搭建 Linux 环境
搭建 Linux 环境大致有两种做法,一种是在本地(虚拟机)模拟一台服务器,然后安装 Linux 系统。另外一种就是选择云服务器厂商购买一台在线的服务器。
我更倾向于第二种方式,更加的快捷方便,但是需要一定的学习成本。第一种方式,对本地电脑的配置有一定要求,但是成本相对较低。
如果选择云服务器产品的话,可以选择阿里云、腾讯云、百度云、京东云、滴滴云、青云等等。滴滴云的成本最低,阿里云的应用较为广泛。对于初期学习而言,其实也都差不多,生产环境一般会选择阿里云或者腾讯云,如果是服务国外,可能会选择阿里云、Google Cloud Platform 以及亚马逊云。
什么是发行版
在购买服务器的时候,会要求选择操作系统,当然我们会选择 Linux,另外还会要求选择 Linux 的发行版。那么什么是发行版呢?
简单的来说,我们平时所说的 Linux 指的是 Linux 内核(可以理解成 Linux 的核心)。不同的厂商、组织、开发者会针对某一版本的 Linux 内核做一些优化、加装一些软件形成自己的发行版本。
常见的发行版有 CentOS、RedHat、Ubuntu、Debian 等等。生产环境一般选用 CentOS, 而学习的话可以选择 CentOS 或者 Ubuntu。不严谨的定义,如下:
接下来的系列文章,都会采用 CentOS 7.6 版本或者更高,推荐可以使用 Rocky Linux。
什么是命令行
相对于 Windows,我们所有的操作都是在图形化的界面中完成的,Linux 的所有操作都可以在命令行中完成。这样的操作更加的原始,但却更加的快速有效。
另外,Linux 的服务器一般都在异地的大型机房中,我们都需要通过网络连接去操作它。使用命令行传输指令相对于传出图形界面,会占用更小的带宽,传输更快。
Linux 的命令行界面一般如下图所示:

初学者对于这样的界面是困惑的,黑漆漆的背景,几个不知道含义的文本,不知道怎么做。但是我相信,你很快就会喜欢上这样的界面,因为它非常的高效,极客。
这就是命令行,你可以用各种各样的命令去做任何你想做的事情,前提是你需要理解命令的运作机制,这是学习 Linux 的第一道门槛,跨过去!
我们使用操作系统,通常是为了使用一些基于操作系统的软件,不管是聊天软件还是游戏软件或者是浏览器。因为在 Linux 中,我们通常都是使用命令行的,所以没有平时使用 Windows 中看到的哪些界面。而所谓的命令,其实就是一个个的软件,我们通过下面这种方式去运行,而不是通过鼠标去界面上点击:

你看,你平时使用微信或者QQ,是不是要鼠标双击 QQ或者微信的图标啊,那么在命令行中,我们并不需要用鼠标,只需要输入 QQ 就可以了。另外,当你打开QQ 的界面的时候,你需要告诉QQ你的用户名和密码,而在 命令行中使用过命令行参数来告诉运行的软件一些信息的, 比如 --username 和 --password 。
所以,你其实不用恐惧命令行,学习 Linux 其实就是学习这些软件怎么使用,就和你学习微信、QQ 如何使用一样,只是稍微比微信、QQ 这样的软件要复杂一点点。
所以, 究其本质来说,命令行和图形化界面没有什么区别,只是一个是通过文本来运行软件,一个是通过界面来简化软件的使用罢了 。理解这一点很重要!
常用的命令
下面介绍一些常用的软件(命令), 不要去死记硬背,只要常常去用就好了。首先,我们创建一个文件夹, 这个文件夹名字叫做 test:
你会发现,如果熟练掌握了这些命令,那种用鼠标去点击各种按钮的操作会显得非常没有效率。接下来,我们来安装一个软件:
相对上面的命令,这个看上去要复杂很多,解释一下:
如果你登录的账户是 root 用户,并不需要使用 sudo 就可以拥有安装软件的权限。因为 root 是 Linux 中权力做大的用户。否则,你可能需要使用 sudo 去提升你的权限, sudo 的意思就是 super to do ,使用超级管理员的权限去做某件事。
yum 是 CentOS 发行版中使用的软件管理工具,你可以使用它来安装一些软件,就像是 Windows 上的 360 软件管家。
install 是 yum 的子命令,表示安装。
wget 是要安装的名字。而 -y 是说直接安装,不需要我确认了。
我举一个 qq 发送消息的例子:
这条命令翻译过来就是: 使用 qq 这个软件发送给 bob 这个人一条消息,消息的内容为 "hi" 。
这个 wget 是干什么的呢?就像是 Windows 上的迅雷,用来下载文件的:
用法非常简单,后面跟上文件的地址就可以了。
使用网络学习命令
其实命令行就这么简单,不需要死记硬背,用到的时候去查一下,多用用就好了。下面推荐一个地址 LinuxCool ,用来学习、搜索各种命令:
这个网站对命令提供了搜索功能,对一些常见的命令还进行了分类。我更推荐向 GhatGPT 提出你的疑问。
使用 man 手册
如果有一个人问我,这条命令怎么用,我会告诉他去问那个男人(man)。在 Unix/Linux 这个男人大名鼎鼎,比谁都更了解 Unix/Linux。其实 man 并不是指男人的意思,而是英文单词 manuals 的缩写,意为手册。
man 是 Unix/Linux 系统手册,我们可以使用 man 来查看 man 命令的帮助:
它是一个在线的参考手册的接口,首先是参考手册,然后你自己的程序也可以实现它的接口,提供程序的帮助信息。 这个参考手册分为若干的章节(section),如下:
章节 | 内容 |
|---|---|
章节 1 | 一般的命令 |
章节 2 | 系统调用 |
章节 3 | C 库函数 |
章节 4 | 特殊文件 |
比如我们查询 sh 这条 Shell 的命令,可以使用如下方式:
然后关于 sh 这条命令的显示信息如下:

更换镜像源
由于某种不能抗拒的原因,国内访问国外的网站、服务都特别的慢。当我们使用 Yum 去安装各种软件的时候,由于服务器都在国外,经常会安装失败或者速度慢到不能忍受。
这时候,我们可以尝试更换成国内的镜像源。比如说阿里云、腾讯云等服务商会定时去同步国外 Yum 的官方服务器资源到国内自己的服务器上。当我们使用 Yum 去更新或安装的时候,就会比较快。
上面是 CentOS7 的实例,其他的发行版或不同的版本请访问腾讯 CentOS 源帮助文档。