初识Linux,总是因为命令行与我们常用的Win有着天壤之别让人头痛,那为什么还要学习Linux呢?
Linux的优势
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,相比于Win系统,Linux具有更节省资源的特性:举例来说512M内存的服务器上跑Win Service和Linux系统流畅程度不是一个级别,可见Linux对硬件的要求很低很低!
其次,相比与Win高昂的授权费用(server版最低$500多),Linux可以说是免费,而且常用的软件Nginx,PHP,MySQL都是免费的,极个别的应用虽然需要少量授权费用,但也比Win强太多太多了!
再有,Linux的稳定性和高效率是Win服务器无法相比的,因为如此,我们日常的微信、支付宝、抖音等等应用全部是依赖于Linux,使用Win服务器的知名应用基本等于零点几,是不是少的可怜?
还有就是Linux有开源社区的支持,海量软件都可以自由下载安装,这是一个封闭的系统无论如何也是无法相提并论的!
鉴于以上几点,学习Linux是非常有必要的!
Linux的缺点
要说缺点也不是没有,Linux最大的缺点是学习成本太高,也就是说这玩意太难学了,这是我个人见解;倘若你不怕困难,想挑战一下,那就来试试!
++PS:本教程面向的是Linux服务器系统新手,而且我也从来没写过Linux教程,有错误或者不足请指正!++
购置第一台Linux VPS
比方说,你现在要开始搭建网站创业,或者是学习Python,或者随便写个博客、脚本,再或者是搭建个节点等等,我建议你立即选Linux,不要浪费时间在Win服务器上,最开始的选择就要正确!
Linux服务器系统(也可以叫映像)也有很多种,国内流行的Ubuntu、Debian、CentOS(无支持)、RHEL;国外流行Ubuntu、Debian、Oracle Linux、Alma Linux等等,我本篇教程命令都是是在Ubuntu 20.04 64位系统上操作的,请知晓!
为啥建议大家购买一台vps,而不是安装虚拟机,因为如果你立志想学习Linux,收费的机器更能激发起学习斗志,收费的机器闲置起来多心疼啊,抓紧时间多练习两个命令也是好的——起码我开始时候是这样的,见笑啦!
购买推荐 CC or RN,因为性价比高。不建议购买国内的实例,软件源或者镜像拉取都可能成问题。
ssh连接到服务器
我假设你使用的是Windows系统电脑,连接到Windows server需要使用统远程桌面,Linux服务器的连接不一样,要使用的是ssh工具,例如:putty、xshell、termius等等,我本教程中所使用的是开源的:Windterm
首先,下载Windterm,目前版本2.5,解压到D盘任意目录,双击启动WindTerm.exe,调整界面让自己习惯,接下来,新建ssh服务。
1、主机处填写:你vps的ip地址;
2、标签是你来定义这个机器的词如:加油学习1号(选填);分组是你来定义这个机器的组名称如:Linux主机(可选)
3、系统这里,默认就是Linux,我们不要改动!!
4、点击连接,出现登陆窗口,我是先勾选“下次自动登陆”,然后输入vps的用户名,例如:root;点击继续!
5、在密码界面,如果你的vps是密码登陆,请直接输入密码;如果是密钥登陆,请点击“公钥”然后选择身份文件,然后点击“连接”按钮!
在这里说明一下,有人可能不喜欢让应用记住密码自动登陆,而是手动登录,这当然可以,但是别忘了,ssh到Linux时候基本都是提示login as:
在这里首先,你首先需要输入用户名,例如:root ,用户名和密码在服务提供商vps管理面板中得到;
然后,服务器会询问密码,提示 * password:
这时候,你要直接输入密码即可,没有任何显示,输入后直接回车即可,若成功即可进入系统,如图:
你的第一条Linux命令
是的,感觉有点像dos,可又不完全像,不要害怕,先来看看你光标前面的字符。
如果是 $ ,说明你仅仅是一个用户;
如果是 # ,说明你直接就是root管理员,也可以叫根用户,反正具有最大权限;
我们先暂时不谈你的权限问题,请跟我一起输入 ls ,然后回车看看结果!!
root@racknerd-1efb57:~# ls
root@racknerd-1efb57:~#
Linux收到了你的命令,ls就是让系统列出你家里的文件和目录,而输出是一个空行,原因就是,你家里现在没有文件,隐藏的现在先不研究。
恭喜、恭喜、恭喜你!你现在已经超过了50%学习Linux的人了,因为有一半的人连ls都没有输入,就已经放弃学习Linux啦!
文件的新建和删除
接下来,我们继续静下来,开始学习最简单的几个命令,因为我们家里没有文件,我们就先来创建一个!!
直接输入:touch readme.txt
然后我们输入ls,这时候我们发现,太棒了:终于有了一个文件
root@racknerd-1efb57:~# touch readme.txt
root@racknerd-1efb57:~# ls
readme.txt
新建的文件肯定是没有内容的,我们写入一点内容吧:
输入: echo “My name is Ange” >>readme.txt,然后我们用cat查看一下文件内容:
root@racknerd-1efb57:~# echo “My name is Ange” >>readme.txt
root@racknerd-1efb57:~# cat readme.txt
“My name is Ange”
你当然可以照样子继续追加内容写入文件中,当然这就是一种很好的练习,我上面使用的两个命令,echo 和 cat,分别是“输出字符串”和“显示文件内容”命令。
练习完成后,删除readme.txt,使用命令 rm readme.txt
root@racknerd-1efb57:~# rm readme.txt
root@racknerd-1efb57:~# ls
root@racknerd-1efb57:~#
看看,文件被删除,木有啦!这真是令人兴奋,是个有趣的操作,而且很简单,每次当你键入命令的时候,你需要知道它们代表的含义,上面的几个命令是Linux的皮毛的皮毛的皮毛的皮毛...要么怎么说Linux非常难学呢,我们往下看。
当然啦,我们又不是要做运维,一般情况下仅仅是安装运行软件,或者是运行个脚本罢了,但总是遇到这样或者那样的错误,这是咋回事呢?
一个错误引发的思考
我在《vps常用脚本》一文中,引用了秋水逸冰的Bench.sh脚本:wget -qO- bench.sh | bash 有些人执行就不行!!我来试试:
root@racknerd-1efb57:~# wget -qO- bench.sh | bash
-bash: wget: command not found
root@racknerd-1efb57:~#
是的,命令没找到!但是请认真一点,系统告诉你了 wget 没找到!!安装一个就行了!!
首先,一般高手都是这样做的,新安装的系统都要更新一下,使用:sudo apt update -y
root@racknerd-1efb57:~# apt update -y
0% [Waiting for headers] [Waiting for headers] (在此省略很多内容)
可能你和我一样,此刻看到满屏的跑码都懵了,怎么了?这是啥?什么意思呀...其实,新手没有必要知道这些,我都不用看,基本上等待一会之后,系统会更新完成,再次回到提示符 $ 或者 #的状态。
上面内容的最后几行,基本上就是告诉你更新了多少个包,你可以用命令看看,诸如此类的话!
Reading package lists... Done
Building dependency tree
Reading state information... Done
170 packages can be upgraded. Run 'apt list --upgradable' to see them.
下面安装 wget吧,执行:sudo apt install wget,不管出现什么内容,我们只看最后一行,没有出错就可以!有时候安装比较复杂的包,会让我们确认,键入一个“y”回车就行了。然后我们看到的内容类似这样:
Preparing to unpack .../wget_1.20.3-1ubuntu2_amd64.deb ...
Unpacking wget (1.20.3-1ubuntu2) ...
Setting up wget (1.20.3-1ubuntu2) ...
root@racknerd-1efb57:~#
wget此时应该已经安装完成,执行:wget -qO- bench.sh | bash 来试试吧!此时屏幕展示的是vps的测试信息,说明成功了。
解释一下,wget -qO- bench.sh | bash 意思就是 wget(下载)-qO(参数)bench.sh(脚本文件) |(重定向让后面的程序)hash(执行),我不知道这也解释会不会挨揍,但这也许是让新手理解的最快方法了。
如果不出意外的话,意外马上就会发生了。
可能你也是按照我说的去做的,但是仍然不能执行,那么请查看出错信息,复制出来,翻译一下,了解大概也行,然后搜索能100%解决问题!
防火墙端口开放
平时在使用Linux vps的时候,遇到要开放某某端口令人头疼,算了,我们就要狠一点,直接全部开放它,当然这方法绝对不适合生产环境!!
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables-save
最快的学习方式
如果你有点时间能看看书,我给你推荐个pdf:刘遄老师的《Linux就应该这样学》
若仅仅是记不住命令参数,这个网站能帮你:https://www.linuxcool.com/
同样的,bilibili和Youtube都有Linux比较系统的免费教学课,搜一搜看看。
最后就是我的群里也会经常讨论,https://t.me/iweec_com
结语
第一次写这么复杂的教程,本意是由浅入深多写一点,但个人水平实在有限,时间也挺紧张,能给到初学者一点点启发,我就知足了。
精彩内容: