查看原文
其他

第一次亲密接触

张小方 程序员小方 2023-09-29

有一对儿异地的恋人,他们每天在手机上聊天,显示的距离永远是 1648km。快到年底了,女孩实在受不了这种距离而提出分手,男孩沉默不语。除夕之夜,女孩在家中刷新手机,看到男孩距离她只有 1.1 km,再刷新,只有 0.9km。

她似乎明白即将要发生什么,含着热泪走向门口......当晚,在隆隆的焰火中,他们的距离变成了 -5 cm,于是第二天他们还是分手了......

你知道他们的距离为啥变成 -5cm 吗?好吧,不说了,再说下,好多老司机要说我在开车了......

上面这段话可不是我编造的,而是来自《Linux 就是这个范儿》的第一章第一节,这本书由自阿里巴巴集团的资深Linux系统专家赵鑫磊和同样来自阿里巴巴集团的支付宝网络技术有限公司的高级专家Jie Zhang(张洁)共同著写。

这可不是一本小黄书,而是一本非常好的介绍 Linux 系统操作的图书。那么作者为什么要在书的开头写上这么一个“小荤段子”呢?其实作者是想告诉大家,Linux 系统的学习最好的方式是——“亲密接触”,即自己多玩 Linux。很多人在学习 Linux 之前,接触的是 Windows 电脑,对 Linux 不熟悉,同时由于没有像 Windows 这样完善的图形化界面,产生了不适感,更加重了学习 Linux 的恐惧心。

我的学习建议是:

一、多接触,多操作

根据我自己的经历来说一下,我当年从 Windows 转到 Linux,虽然勉强入职了,但是非常害怕工作中因不熟悉 Linux 的操作被同事质疑。后来,我就在自己的电脑上撞了一个 CentOS,然后自己玩,再业余时间结合一些 Linux 系统学习资料/图书学习,没过多久也熟悉了。

通常情况下,记不住 Linux 命令有如下几种原因:

原因一:刚接触,习惯了之前的图形化界面操作,不习惯 Linux 各种命令行操作,心存恐惧之心。

原因二:不经常使用 Linux,操作生疏。

如果是上述两个原因的话,建议读者多玩一玩 Linux 操作系统,可以在自己电脑上通过虚拟机安装一个 Linux 系统(如 CentOS、Ubuntu)。自己在虚拟机中安装 Linux 系统的好处是你可以任意把玩这个系统,只要愿意可以搞清楚这个系统的方方面面。

如果你的机器配置不行,或者不愿意自己安装 Linux 系统,可以花一点费用去各大云主机上(如阿里云、腾讯云)买一些低配的 Linux 主机空间来玩,然后用 XShell、SecureCRT 这样的工具去远程登录到云主机上去玩。下图就是我使用 SecureCRT 连接到我的阿里云主机上进行操作:


原因三:命令比较复杂,用法比较多。

如果是这个原因,建议先搞懂这个命令的用法(例如一些常见功能),实在太复杂的命令,只要知道其有哪些用途,需要用的时候去查一下帮助文档就可以了,Linux 的 man 手册要多查多用。

举个例子,我开始学习 Linux 的 lsof 命令时,总是记不住这个命令的一些参数,后来,我总结了一下,我的使用场景大多数情况下就是用来查看操作系统的 IP 地址和端口号信息,其常用的参数也就 -i 和 -Pn。

[root@myaliyun ~]# lsof -i -Pn
COMMAND     PID  USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
ntpd        522   ntp   16u  IPv4    12575      0t0  UDP *:123 
ntpd        522   ntp   17u  IPv6    12576      0t0  UDP *:123 
ntpd        522   ntp   18u  IPv4    12596      0t0  UDP 127.0.0.1:123 
ntpd        522   ntp   20u  IPv4    15777      0t0  UDP 172.16.210.241:123 
dhclient    743  root    6u  IPv4    13435      0t0  UDP *:68 
mysqld     1256 mysql   13u  IPv4    16416      0t0  TCP *:3306 (LISTEN)
sshd       1485  root    3u  IPv4    17012      0t0  TCP *:22 (LISTEN)
nginx      1723  root    6u  IPv4    26732      0t0  TCP *:80 (LISTEN)
nginx      1724  root    6u  IPv4    26732      0t0  TCP *:80 (LISTEN)
server    11761  root    4u  IPv4 13328465      0t0  TCP 172.16.210.241:39312->118.178.56.143:8080 (ESTABLISHED)
server    12402  root    4u  IPv4 13328465      0t0  TCP 172.16.210.241:39312->118.178.56.143:8080 (ESTABLISHED)
fileserve 18483  root    5u  IPv4 10028642      0t0  TCP *:20001 (LISTEN)
imgserver 18496  root    6u  IPv4 10028977      0t0  TCP *:20002 (LISTEN)
route_ser 19613  root    5u  IPv4   833919      0t0  TCP *:8200 (LISTEN)
file_serv 19644  root    6u  IPv4   834017      0t0  TCP *:8600 (LISTEN)
file_serv 19644  root    7u  IPv4   834018      0t0  TCP 127.0.0.1:8601 (LISTEN)
msfs      20274  root    5u  IPv4   834510      0t0  TCP *:8700 (LISTEN)
AliYunDun 21538  root   20u  IPv4 11768616      0t0  TCP 172.16.210.241:60868->100.100.30.26:80 (ESTABLISHED)
sshd      23923  root    3u  IPv4 13533428      0t0  TCP 172.16.210.241:22->116.236.159.130:56739 (ESTABLISHED)
sshd      31548  root    3u  IPv4 13537639      0t0  TCP 172.16.210.241:22->116.236.159.130:61055 (ESTABLISHED)

当然,这个命令还可以在一些情况下恢复被删除的 Linux 文件,那我知道有这么回事,我实际需要的时候去查一下帮助文档就可以了。

再比如 nc 命令,我用的多了,我也知道,我用的最常用的参数就是 -v -l -p。

但是像 awk 命令的具体格式我是实在记不住的,我每次用的时候都是去查。

当然,良好的英语水平也能帮助你记忆一些 Linux 命令,如 ls => list,lsof => list opened file。

其实 Linux 系统常用的命令并不多。

二、理解一些 Linux 原理

有一些 Linux 操作你一定要理解其背后的原理,比如经常有一些学生来面试,告诉我熟悉 Linux 系统,我就问他 Linux 下如何判断一个文件是可执行文件,很多同学只知道可以使用 chmod +x 授予执行权限,却不知道这个权限怎么看。

三、多积累一些小技巧

除了系统地阅读一些 Linux 书籍之外,平常可以找一些 Linux 各种小技巧的文章来看一看。比如一些同学可能不知道 vim 中如何复制粘贴、如何撤销一个操作、命令行中如何在从一键跳转到命令行的开始或者结尾处、如何使用命令与 Windows 系统之间传输文件等等。

这些技巧可以自己收集于网络,也可以自己细心观察学习自你的同学、同事等等。

四、推荐一些学习资源

就事论事,Linux 系统并不比 Windows 难多少,克服恐惧,一定能上手的

推荐几本学习书籍吧:

《Linux 就是这个范儿》

《鸟哥的 Linux 私房菜基础篇》

《鸟哥的Linux私房菜服务器架设篇》


那么回到最初的问题上来:你知道他们的距离为啥变成 -5cm 吗?为啥还分手了吗?


推荐阅读



我是程序员小方,一个放浪不羁的程序员,扫码关注我:




欢迎加我微信 easy_coder 围观我的朋友圈~


原创不易,在看是最大的支持

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存