1. 发行版选择
- 帮你选择适合你的发行版的问答集 :这里是问答集的中文翻译版本,我觉得很准,结果恰好就是我目前最喜欢的Debian。
比较喜欢的发行版:
- 我的 Debian 经验:Debian Gnu/Linux 是我现在主要使用的Linux的发行版,该页面汇集了一些我写的以及我收集的Debian Gnu/Linux的使用经验。
- Ubuntu 简要笔记:Ubuntu 作为桌面用发行版不错,绝大多数功能装好就算好用。虽然每个版本都有不少问题,但基本上每个问题在官方 Wiki 都有详细说明怎么搞定,不得不说这就是流行度高的威力!
- 这玩意儿借助自带的一个叫 Wubi 的工具,可以装在 Windows 分区上,虽然这样 IO 性能差了点,不过免去了重新分区的麻烦,作为体验系统还是非常不错。
- 也可以在 U 盘上运行系统,相关的数据变化也保存到 U 盘上。具体办法参考 How to Create Persistent Live USB of Ubuntu。
- GentooLinux :我一直很感兴趣但一直没有仔细碰的一个发行版,该页放一些Gentoo Gnu/Linux的一些资源链接。喜欢自己定制优先考虑这个。
- TopologiLinux:基于Slackware Linux的发行版,特点是可以直接在Windows分区上用一个文件作为Linux的根目录(这样就不用动你的分区了),也支持其默认带有的colinux绑定而直接运行在Windows下。很特别的发行版。
- http://www.colinux.org/ :让Linux系统运行在Windows下。运行效率比所有虚拟机方案都高,利用VNC也可以获得X桌面;安装复杂程度算是可以接受,在网上寻找详细的针对自己发行版的说明文档就不会有太大的困难。[以我的试用及评测结果,colinux的效率远差于虚拟机]
- http://www.opensuse.org/ :Suse Linux的官方网站,开发版中已经有了用于ppc的版本。
- CentOS 使用笔记:CentOS 是基于 Redhat 企业版源代码发展出来的开源版本。说实话我很不喜欢 7.1 之后的 Redhat 系列,可是国内很多公司在服务器上用这个玩意儿,只要也记一点笔记备用。
Windows 下的 Linux 环境:
- WSL:从 Win10 开始,提供了一个叫 WSL 的解决方案,可以在 Windows 下获得包括 GUI 在内的完整 Linux 生态,因此在 Windows 下也可以进行 Linux 服务端开发了。
其他 Unix:
- FreeBSD:不少人用这东西做服务器,里头的东西不算新,但是一旦配置起来,稳定程度要比 Linux 系列好一些。使用参考:FreeBSD 8.0的十四条优化策略
有意思的东西:
- http://hackndev.com/ :有一拨人聚在这个网站想办法在Palm掌上电脑上跑Linux,很有意思的工作。目前已经能够把Linux运行起来,但还缺少键盘等设备的驱动。
- http://www.pdaxrom.org/ :Sharp有一个使用Linux系统的PDA系列Zaurus,默认的系统使用嵌入式QT,pdaxrom则是将之修改为标准的xwindows接口,这样软件一下丰富很多,变成一个PDA大小的笔记本了。hi-pda上的pdaxrom教学贴、一个老外写的Zaurus应用经验的Blog
- LinuxNAS:借助Linux系统来实现NAS设备(网络连接存储设备)的一些解决方案。NAS设备可以是家用网络存储服务,也可以是公司用的流媒体服务器,甚至可以扩展到Web站点、FTP站点,以致提供任何Linux能够提供的服务。要点是24×7开机、省电、安静、可靠。
2. 软件技巧
2.1 软件推荐
2.2 系统管理
- Mosh:这是替代 ssh 的一个解决方案,能够在移动网络等不稳定的环境下获得非常明显的远程管理体验提升。
- Supervisor:监控服务进程,实现故障自动重启功能的工具。
- 具体用法可参考 Supervisor 使用笔记
- Linux系统管理技巧
- Linux Shell快捷方式
- 【转帖】Linux进程查看
- Unix Toolbox - 中文版:介绍 Unix/Linux 系统管理的方方面面,覆盖几乎所有主流的发行版。
- 其 英文版 的内容要更新一些~
- 高级Unix命令
- 10 个最酷的 Linux 单行命令
- 适用于任何 UNIX 系统的 10 个出色的工具
- 转载:高效率编辑器 VIM - 操作篇
- 寻找程序崩溃的原因——调试之
- 在shell中先运行script指令,可以将所有终端显示记录成为文件(默认记录在typescript)。
- shell中先运行screen指令,可以获得控制台下的多窗口支持(顺序按Ctrl+A,?可以转到screen的帮助界面)。
- 个人认为 tmux 比 screen 更为易用一些(两者功能差不太多),参考 使用tmux。
- tmux 里对屏幕输出上下翻页的操作是:ctrl+b [, PageUp/PageDown 。
- screen and tmux (cheat sheet)
- 通常为了使程序在终端退出后继续运行都使用“nohup”指令来启动程序。其实只要在screen里面使用detach机制,就可以将screen的Session和当前终端分离,这样即使终端退出,screen里面正在执行的程序也仍然会继续运行。如果只需要detach这个机制,那么也可以考虑用dtach这个软件来代替screen。
- 使用screen的常用选项包括(详细参照:Linux 技巧:让进程在后台可靠运行的几种方法):
- 用screen -dmS session name 来建立一个处于断开模式下的会话(并指定其会话名)。
- 用screen -list 来列出所有会话。
- 用screen -r session name 来重新连接指定会话。
- 用快捷键CTRL-a d 来暂时断开当前会话。
- 个人认为 tmux 比 screen 更为易用一些(两者功能差不太多),参考 使用tmux。
2.3 HowTo 指南
3. 服务解决方案
- Puppet: 强大的中心化配置管理系统 大致是帮助把对系统的改变(安装软件,修改配置文件,增删用户等)录制成puppet配置文件,然后再其他机器上执行同样的改变。(A new way to deploy web applications讲的东西和 Puppet 有何区别?)
- 类似的工具还有 Cfengine 和 Bcfg2 等,更多的选择见Comparison of open source configuration management software。
- Python 社区推荐 saltstack ,据说是学习曲线最简单的解决方案。
- Openduckbill:跨服务器文件实时监控及同步工具。大致是利用内核的 Inotify 机制实时发现文件变化,利用 rsync 工具实现文件的服务器间传输。其他类似的东西还有inotify + rsync实现linux文件实时同步,使用触发同步机制以及Sersync。再有还可以参考大量小文件的实时同步方案以及uLFS: Your Manageable and Reusable Linux From Scratch。