共计 5427 个字符,预计需要花费 14 分钟才能阅读完成。
前言
最近想出一系列关于Linux操作系统的文章,文章场景主要以云服务器为主。这一系列文章将放在一个集合里,姑且命名为:《玩废Linux》
。这个集合将分享一些我大一入门Linux时踩的一些坑,一些我常用的基础指令和参考其它大佬总结的学习建议。这里我简单提出《玩废Linux》系列的主要目标:摆脱传统图形化界面进行计算机操作,以纯指令的方式运行我们的程序。
《玩废Linux》里的文章,将会为之后的Docker教程打下基础,因为后续我也打算分享一些Docker的相关操作,并且利用我们自己的Linux服务器部署一些有趣的Docker项目。
本篇作为《玩废Linux》的第一篇文章,我并不打算从Linux是什么,Linux怎么来的等等内容开始,我想以最直接了当的方式,让你快速上手Linux,而在此之前,我只要求你知晓一点:Linux是一个开源的、免费的操作系统
。对于操作系统的学习,我认为可以类比我们熟知的Windows操作系统,我们在小时候使用Windows操作时,可从来没有从Windows是什么,Windows怎么来的等一系列废话开始,而是靠我们自己摸索使用(当然,Linux系统会有别于我们日常生活使用的Windows操作系统,这一点会在后面简单强调下)。
正文
准备工作
学习Linux我们需要准备什么?首先,《玩废Linux》的目标就是摆脱传统图像化界面的操作方式,将以最纯净的环境为主,即不使用任何图形化界面,不设置任何镜像源,相关软件包均是从官方源进行下载,因此,国内的云服务器是无法满足这一点的,所以你需要准备一台国外的云服务器
进行学习(关于具体的操作系统选择,请参考下面的第二部分)。这里我推荐Vultr
,里面最低价可达2.5刀一个月,并且是按量计费,即你可以随时部署你的云服务器进行使用,也可以随时删除你的云服务器,费用则只计算你使用期间损耗的费用,对于需要一个纯净的Linux环境,这一点是很难得的。
坑点:学习Linux一定要先在国外的服务器上玩明白!不要拿国内的服务器学习,因为国内服务器很多都设置了镜像源,再加上下载国外软件包时,网速特别特别慢,非常浪费时间,对学习Linux的人来说一点也不友好,因为你要下载某个软件包时,可能还得考虑下载源的问题,还要搜索相关的镜像源,学习怎么设置等一大堆事,并且在你完成安装后,可能还会出现各种不知名的BUG,除非你能像我一样坚持下去,能够上网搜索解决方案独立解决,否则我建议先在国外的云服务器上玩Linux。
其次,你还需要准备一个连接你Linux服务器的连接工具,这里我推荐使用XShell
,Xshell个人使用免费,用于学习足够了。而对于想使用付费的SSH连接工具,我这里推荐Termius
,这款工具也是我目前使用的SSH工具,也是我最喜欢的SSH工具,土豪朋友可以买一个Pro订阅试试,一个月10美刀,当然,Termius可以通过GitHub的学生包进行白嫖,我就是通过这一方式获取的一年Pro订阅。
有了服务器和连接服务器的工具之后,就暂时不需要准备什么了,我将上述提到的相关的信息列在下方供大家快速访问:
Vultr:
https://www.vultr.com/,提供低价的国外云服务器厂商,学习的最佳选择。
Xshell:
https://www.xshell.com/zh/free-for-home-school/ 一个用于连接我们云服务器的工具,个人使用免费。如何需要向服务器上上传文件,请顺便下载Xftp。
Termius:
https://termius.com/,我个人非常喜欢的SSH连接工具,付费的,Pro订阅一个月10美刀,可通过GitHub学生包白嫖。
关于Xshell和Xftp的相关安装包,我已经为大家准备好了,下载连接:
- 国外MEGA盘:https://mega.nz/folder/s2BjxBTb#RUFEC7yqc6ct42Ko6F-4Vg
- 国内百度云盘:https://pan.baidu.com/s/1i-2UCN3PQ7xSEEfTMyosXQ
提取码:0wyl
Linux操作系统的选择
Linux是类Unix内核开发的操作系统内核,一般性的认为,Linux就是一类基于该内核实现的操作系统。在Linux的基础上,有很多的Linux发行版,这些发行版主要分为三类:Centos、Ubuntu和Debian。
发行版是什么意思?发行版可以简单理解为Linux的衍生版,类比人有{白、黄、黑}三种人,Linux的主流衍生版就是Centos、Ubuntu和Debian这三类。其中Centos Linux 7和8已于2021年停止维护和更新,并且Centos主要面向企业,因此Centos不作为这次学习Linux的选择,至于另外两个Ubuntu和Debian都可面向普通用户,适合学习Linux的人使用,Ubuntu多用于桌面和个人计算机,注重易用性和友好的用户界面。Debian则更加通用,适用于各种用途。
Centos、Ubuntu和Debian怎么读?Centos发音类似sen·tos
,森透死,Ubuntu发音类似u·boon·too
,乌班图,Debian发音类似Deb'-ee-e
,"德便"朝"答辩"读,保持德发音。这里强调这三类Linux发行版的读法是希望我们在使用某一类操作系统时,能够正确读出它们的名字。这或许对你们日后和他人进行交流时有帮助。
本篇文章以Debian
为例,选择Ubuntu也可以,Centos可以考虑换下,Vultr可以随时删除随时安装,并不会额外计费;工具选择Xshell
。
在Vultr上购买Debian服务器
因为我们将服务器只用于学习,所以我这里建议直接往最便宜的选,下方给出了相关示例:
你也可以选择2.5美刀一个月的,这类不会分配公共的IPv4地址,只提供IPv6地址,我这里选择3.5美刀一个月的使用。
连接你的服务器
我们在选择好后,点击部署
,等待20~30s后即可在你的服务器列表界面上看到你的服务器。(长时间没变化时,刷新页面试试)
点击刚刚部署上的服务器,查看相关服务器信息:
打开Xshell,新建会话,依据下图填入你服务器的相关信息:
点击连接后就会连接到你的服务器。
一键更新你服务器
有时候我们的服务器上面的软件包并不是最新的,就比如我们拿到的新手机,上面总有一些需要更新的应用软件。为了保证我们服务器的稳定性和安全性,我们需要在拿到服务器后更新已安装的软件包,保证所有软件包都是最新的。我们可以使用下述指令更新当前列表的软件包:
apt update -y
上述简单的指令中,apt
是Debian和Ubuntu的包管理工具,提供了一套命令行,用于管理软件包的安装、更新和卸载等操作。在Centos中,它的包管理工具则是yum
,我们使用apt进行的相关操作在Centos中使用yum也是可以进行的。update
则是更新,-y是运行apt update的一个参数,表示在执行apt update时自动应答"yes"。
上面只是apt简单的更新操作,其它常用的操作如下:
- apt upgrade:升级已安装的软件包到最新版本。
- apt install \<package>:安装指定的软件包。
- apt remove \<package>:卸载指定的软件包。
- apt search \<keyword>:搜索包含指定关键字的软件包。
我们使用Debian和Ubuntu前,必须学会这几个简单的包管理工具指令。我们类比Windows,这个apt其实就类似于软件商店的东西,我们通过apt安装其它的软件包,才能通过安装的软件包进行相关的操作。当我们需要卸载某些软件时,也需要通过apt进行操作。因此,正如我们使用Windows前需要学会使用鼠标一样,我们学习Linux就需要学会这些简单的基础指令。
我们只使用上述的update操作是远远不足以保证服务器处于最新、最稳定的状态,这里我把一键更新的指令给出,感兴趣的朋友可以自行拆解分析:
apt update -y && apt full-upgrade -y && apt autoremove -y && apt autoclean -y
对于Centos用户,我们可以使用如下指令达到一键更新:
yum update -y && yum upgrade -y && yum autoremove -y && yum clean all
其中&&
和我们学的编程语言里的逻辑运算相似,含有"并且"的意思,表示相邻的指令会依次运行,上述将4个apt的相关操作放在了一行依次执行,这样我们就不需要一个一个运行了。
这里我们可以思考下将
&&
换成单个&
会有什么区别?我们同样可以想想C语言里的&&
和&
两种运算的区别。
我们执行完上述指令后,再安装一些常用的工具,比如:wget
、curl
。这两个工具涉及到从网络上下载文件到我们的服务器上,因为我们现有的服务器列表可能并不存在我们需要的软件,这就需要从互联网上进行下载。
apt install wget curl
apt install
后面可以跟多个需要下载的软件包名称,如果不嫌麻烦,也可以选择一个一个下载。服务器上一般也都会有这两个软件包的。
必会的基础指令
学习Linux离不开很多很多的指令,尽管Linux的指令众多(有人估计有7000多个),实际经常使用的只有500个左右,而这所谓的500个是普遍适用于Linux高手的,我们普通玩家只需100个以内。而我能一口气列出的Linux指令也才20~30个。因此我们学习Linux并不需要去死记各种各样的指令,我们只需要经常使用Linux就能学会很多,唯手熟尔。
这里我推荐两个渠道去搜索相关的Linux指令及其详细信息:
- https://git.io/linux:Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。
- ChatGPT:关于ChatGPT怎么免费使用,我已经在公众号的其它文章中写得很多了。
在我们连接到服务器后,常用的三条指令是:ls
、cd
和cat
,ls
一般用于列出指定目录的文件内容,默认是当前目录,cd
则是移动到某一目录下,cat
则可以用来查看文件内容。操作相关示例如下:
ls
基本操作
# 列出所有文件
ls -a
# 列出文件详情信息
ls -l
# 上述两个操作可进行合并
ls -al
# 列出/usr/bin目录下的内容
ls -al /usr/bin
cd
基本操作
# 移动到指定目录位置
cd 目录路径 根路径为/
cd /etc/default # 移动到/etc/default目录下
cd / # 移动到服务器的根目录
# 移动到上一级目录
cd ../
cat
基本操作
# 查看指定目录的文件
cat /var/log/auth.log # 查看/var/log下的auth.log日志文件
# 假设当前在/var/lib目录,那么可以使用下述指令查看auth.log日志文件
cat ../log/auth.log
我们可以使用pwd
指令来查看我们当前的目录。这些指令是使用频率最多的一类,我们可以在自己的服务器上从根目录(/
)开始,使用上述指令一个一个的查看服务器文件内容。
杀死Linux的一条指令
这里我提前介绍一条指令:rm -rf *
,这条指令常用于我们所说的删库跑路。我这里提前介绍,一是担心一些朋友会在后面学习过程中不小心输入了这条命令导致整个系统崩溃,二是趁着我们的服务器还没有存储很重要的数据,我们可以借此机会狠狠爽一把。
删库跑路的核心代码就是:rm -rf *
,这里rm
指令会在下一篇文章进行介绍,它主要用于文件的删除操作,-rf
是作为参数传递,表示递归式的强制删除文件,这意味着它会删除整个文件夹,*
则表示所有匹配文件。
我们执行完上述指令后,程序会将Linux上根目录的所有文件删除,其中就包括了Linux的核心文件和数据。这些文件一旦删除,就会造成Linux系统崩溃。
我们使用完上述代码后,通过
vultr
重新部署一个服务器即可。
总结
本篇文章介绍的指令都是非常简单并且非常基础的指令,其中apt
是类似于软件管家的存在,用于下载、更新、卸载软件包等操作,cd
操作则类似于我们在Windows上使用鼠标操作我们的文件夹,它用于移动到某一目录中,ls
指令则是用来显示文件信息的,我们一般搭配cd
命令,因为我们移动到某一目录下,就需要查看当前目录有啥文件嘛,cat
指令则是用来查看文件内容的,这类似于我们双击打开了一个文本文件,可以查看文件的文本信息,最后介绍了一个杀死Linux的指令rm -rf *
,这个指令会删除Linux的所有的文件,其中就包括了Linux操作系统的核心,这一点你可以想象下删除Windows的C盘会有什么后果。
其它
最近我的博客网站在备案上出现了很多问题,比如:个人主体网站不得出现博客
等字样,身份证过期需要更新啊等等。备案这种麻烦事,让我不得不考虑是否要将自己的博客迁至国外,我并不想依托在某个第三方平台,只想趁着精力有限,自己能够长期维护一个博客网站,写一些技术文章。目前我已将我之前的博客数据进行了备份,并将原来的网站:rjkfteam.top
暂时关闭,只显示一个简单的网页,之后一段时间写的博客文章只会发布在这个公众号上。
最近刚开学,无法和平时假期里一样抽出很多的时间写博客,不过还是要坚持三天憋出一篇水文的习惯,日积月累,对我的学习理解就会起到很大的帮助。