没错,windows要深入进去非常复杂,但一般来说根本没这个必要。就好像你会开车但你并不需要深入了解车的构架一样。linux更像是一部你需要自己了解一些零件的性能,自己去“拼装”这样一部操作系统。单单想想让用户从X windows入手,这其实根本不够,后面用户会需要的问题,肯定远远不止X windows下的东西。
水木linux版上简单列举过,要在linux下做到自己能基本解决一些问题,至少所需要的知识:
十条 Linux 新手必知
每一条基本是一个归类,如果新手能事先看纸质的书,能节约自己
不少时间,减少对Linux的恐惧感以及挫折感,这些都是基本知识,
不需要图形界面。
1. i386启动过程、硬盘分区、单用户进入系统;
原因:装系统、grub、急救系统跟这个很有关系
2. 发行版的概念,明白Linux这个词是一个泛称,熟悉各自发行版
的包管理工具,比如rpm,apt,yum;清楚各自发行版的手册在哪里,
各个软件的手册在哪里;
原因:提问时说出发行版的名字和版本,虽然都是Linux,不少设置
在不同发行版是有差异的。新手装软件别无它途,别想着编译到HOME
目录了,如果在公共服务器上没权限就自己弄虚拟机吧,现在vmware
server都免费了,速度慢点无所谓,学这些基本知识足够了。
3. 系统基本使用,如下命令:(下面的4,5,6跟这个结合起来学习)
bash 环境变量,HOME下几个配置文件,PATH的用途, 能写简单的脚本;
*man*,cd, pwd, ls, mkdir, rmdir, cp, rm, mv, find,
grep/egrep/fgrep, df, du, vim(先这个吧,Emacser就不要争了,
nano之类的也不谈), chmod, chown, more/less, head, tail,
cat, tar, gzip, bzip2, who, whoami, w, top, ifconfig,
ping, tracert, passwd, adduser/useradd, mail/mailx/mutt,
mount, umount, clear,reset,lftp/ncftp, fdisk/cfdisk/parted,
ps, kill, killall, jobs, bg, fg, crontab, at, batch, dmesg,
talk, message
原因:差不多是日常使用命令的80%了。
4. 文件系统的知识:
Linux目录结构(FHS),每个目录的用途,为什么没有Windows下
的盘符,常见文件系统类型(ext2, ext3, reiserfs, jfs, xfs,
ntfs, vfat, iso9660),符号链接和硬链接,特殊文件类型(
字符设备文件,块设备文件,socket...),相对路径和绝对路径,
/etc/fstab
原因:真是很基本。
5. 权限问题,包括/etc/passwd, /etc/group, /etc/shadow,
权限位rwxsSt的概念, uid, gid
原因:基本,系统安全首先从这里开始。
6. 进程的概念,特别是子进程、父进程的关系,能通过ps命令
输出的pid, ppid找出这个关系;信号的概念,知道用kill发信号;
前台进程和后台进程;守护进程;管道,输入输出的重定向;
原因:常识问题。
7. linux日志系统,了解/var/log下各种日志的用途
原因:系统出了问题先看看有无可疑log。
8. 系统启动脚本的熟悉,对init那一套清楚,知道怎么
启动、重启、停止服务,怎么往这一套机制里增加服务删除
服务
原因:基本,也是学习shell脚本的好起点
9. TCP/IP的基本概念和使用,包括:
OSI网络模型;
以太网和MAC地址;
IP协议和IP地址,IP地址段的表示法;
ICMP和DHCP协议的作用;
DNS系统;
TCP协议和UDP协议,端口的概念,客户机/服务器模型;
/etc/hosts /etc/resolv.conf /etc/services,
/etc/network/interfaces文件的作用;
ifconfig arp arping ping telnet ssh netstat route
ip traceroute常用网络工具的使用;
原因:UNIX从一开始就跟网络结下不解之缘,所以了解网络的
基本问题是非常必要的。
10. X window的基本概念,弄明白X server和 X client
的含义,这方面有王垠的《理解 Xwindow》:
http://learn.tsinghua.edu.cn:8080/2001315450/x.html原因:以后就步入X window的世界了,路还很长,先打点
基础:-)
正如你所说,Windows下的一般用户根本无需了解这些就能正常地做大部分事情了。
Linux有linux存在的意义,Windows有Windows存在的意义。我所反感的正是这种自我感觉良好的黑客,从来不会考虑自己的软件是否做得足够人性化;以及把Windows视为垃圾,过分宣传Linux的传教士们。他们的行为在我看来反而招致更多人对Linux的畏惧以及反感。
事情上从当初Unix到现在的Linux,大部分情况下都是在以程序员为中心来考虑问题,以技术为中心来考虑问题,而并非如何设计友好的UI,以及让用户不需要了解很多细节就能正常地使用你的软件。这也就注定了Linux会远离一般的小白用户,在操作系统的小众向。努力降低门槛,以用户为中心来考虑问题,这才是能推广linux的正途,也是现在Ubuntu, Suse努力的方向。