对 Linux 初学者的一些建议

今天周末有点时间,可以给大家讲一讲一些基本的方法。
1. 网络:因为现在虚拟机盛行,所以你需要知道 NAT/Bridge 模式,基本的网关,掩码,静态路由的配置,/etc/resolv.conf 和 /etc/nsswitch.conf ,以及新版本的操作系统各种配置静态和动态地址的方法。  其实这个已经很难了。 还没提到多块网卡的 bonding


2. 服务:操作系统的启动进程 0 ,有两种方式(内核决定),init 和 systemd ,现代大多数都使用 systemd 了。 所以了解 systemd 很重要, 对于之前的 init 过来的人, 用过 systemd 后会喜欢的。 服务就是启动一个进程,占用一个网络端口号, < 1024 的端口号需要 root 启动,当然服务也可以写 unix socket ,譬如 php-fpm 可以选择两种都启动。 服务在 tcp 端口上的时候,需要注意侦听的 IP 地址,有些数据库服务如果不对外的,就要侦听在 127.0.0.1 上,如果需要对外的服务,就要侦听在 0.0.0.0 上。netstat 命令可以查看,就不具体介绍了。


3. 包管理:apt/yum 做个 install/remove 大家都会。但是具体到搜索,找寻某个程序属于那个软件包, 很多人都懒得去学, 这个就是错误的学习方法,如果自己会稍微动下脑筋,把这些都记录下来,就事半功倍,万事不求人了。 当然, 打造自己的工具的话, 把 mirror 修改成国内的地址,还是很重要。


4.  shell 下的文字处理: sed/cut/awk/grep/tail/head/sort 是用得最多的文字处理的几个命令,所以,你当然需要使用得滚瓜烂熟。vim/nano 是编辑器,有的人就是用 vim 写代码的,如果有人还在问 vi 怎么用,可以想想自己有多么的没有动脑子。 :-(

5.  find/locate 命令了, 那绝对是利器, 当然凡是有问题, 就打开日志查看。 

6. 对于现在 Web Stack 常用的 LAMP 或者 LNMP, 就是了解 Apache 是怎么和 PHP 连接的,  PHP 又是怎么和 MySQL 连接的。
所以核心的就是看相关的模块是不是加载了。  Apache 就是用 httpd -M  看看里面有没有 php 模块     , PHP 就是 php -m 看看里面有没有 mysql 的模块。Nginx 的话因为走 FPM(FastCGI Process Manager)和 PHP 通信,所以, 要看 fpm 服务是否起来, 是否连接到了正确的 fpm 的 socket 或者 TCP 端口。

最后, 搞运维的是 100% 的理解文档,熟悉文档, man/info/xxx –help 来理解命令的使用。搞开发的,其实也一样,也是要熟悉调用库的使用。例如你写 PHP,就要了解 PHP 的各种原生函数,你用 PHP的框架,就要理解框架的各种工具。所以,还是阅读文档。

作者: 甬洁网络

--移动互联网&物联网技术提供商