Linux 操作系统

对于 PHP 开发人员个人而言,用什么操作系统写代码并不重要,重要的是适合,用着顺手、用着爽。。。

@使用 Windows 的 PHP 开发同学们,鉴于 Windows 命令行窗口(cmd.exe)一如既往、毫无改进的表现,强烈推荐大家使用 Cmder 替代之。在中文环境下,Cmder 默认安装完毕后您可能会遇到一些问题,解决办法在此 - Cmder 简单使用小结

但是,毕竟PHP 程序多数情况都会运行在 Linux 服务器上,因此个人认为每个 PHP 开发人员都应该熟悉 Linux 系统常用操作以及相关 LA/NMP 环境的搭建、配置。

关于 Linux 发行版

关于 Linux 发行版的选择问题(好吧,又是坑。。。),不过从服务器用户数量来讲, Redhat 系、SUSE 系 与 Ubuntu 系占了多数 。相对比而言,个人更喜欢 Redhat系的 CentOS(关于 Fedora, Redhat 和 CentOS 三者的关系可以 参考这里 ),个人觉得 CentOS 跑服务器相对稳定些(受鸟哥影响较深)、系统本身也干净简单,缺点是很多包官方源里面没有,就算是 EPEL 里面也没多少东西,因此对于 LA/NMP 开发,这里推荐下 EPEL源 + IUS 源,具体的配置方法可以 参考这里

一些 Linux 命令/工具

粗体部分 - 个人认为应该多加关注的

  • Shell
    • echo, printf, test(写shell脚本判断条件 -n -z 傻傻分不清楚的时候就靠 ta 了), sleep, sh, set
  • 用户环境
    • clear, env, export, history, passwd, su, sudo, exit, who
  • 包管理
    • yum, rpm or apt-get, dpkg
  • 文件系统
    • pwd, cd, cp, ls, mkdir, mv, rm, ln
    • file, du, df, mount, touch, cat
    • chmod, chown, chgrp, chksum
  • 查找
    • find, grep, whatis, whereis
  • 文本处理
    • awk, sed, cut, diff, sort, uniq, wc, xargs
    • head, tail(tail -f), less
  • 进程相关
    • at, cron, crontab, kill, killall, pgrep, ps, time, nohup, screen(远程会话管理), supervisord(进程守护神)
  • 网络
    • dig, host, ifconfig, netstat, nslookup, ping, route, traceroute, iptables, wget, curl
  • 压缩
    • tar, gzip, unzip
  • 远程
    • ssh, scp, sftp, rsync(文件同步)
  • 系统状况
    • uname, free, df, du, top, htop(比 top 好用多了), iftop, iotop, iostat, isof

      **Linux Perf Observability Tools Map**

      该图很好的说明了 Linux 下各种性能监测工具 — from Linux perf Examples

  • 其他
    • man (查阅命令帮助信息), alias, ab(简单性能测试), service, chkconfig, ulimit, sysctl

扩展阅读: