当前位置: 技术问答>linux和unix
散 分
来源: 互联网 发布时间:2016-06-18
本文导语: 散分!! 顺便 问个问题: 我想 学 linux 要 学 哪些方面!! linux 只是些那些 纯命令么?? 请 各位 大哥 大姐 帮帮忙 ...... | 随着Linux应用的扩展许多朋友开始接触Linux,根...
散分!!
顺便 问个问题:
我想 学 linux 要 学 哪些方面!!
linux 只是些那些 纯命令么??
请 各位 大哥 大姐 帮帮忙 ......
|
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。
一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linux 的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些朋友们常常一接触Linux 就是希望构架网站,根本没有想到要先了解一下Linux 的基础。这是相当困难的。
二、Linux命令是必须学习虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。举一个例子: Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手.它的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间. 不同版本的Linux命令数量不一样,这里笔者把它们中比较重要的和使用频率最多的命令,按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统: 安装和登录命令:login、 shutdown、 halt、 reboot 、mount、umount 、chsh 文件处理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln 系统管理相关命令: df、 top、 free、 quota 、at、 lp、 adduser、 groupadd kill、 crontab、 tar、 unzip、 gunzip 、last 网络操作命令:ifconfig、 ip 、ping 、 netstat 、telnet、 ftp、 route、 rlogin rcp 、finger 、mail 、nslookup 系统安全相关命令: passwd 、su、 umask 、chgrp、 chmod、chown、chattr、sudo、 pswho
三、选择一个适合你的Linux发行版本目前全球有超过1百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,Redhat Linux 和Debian Linux是网络管理员的理想选择。对于英语不是很好的读者红旗Linux、中标Linux这些中文版本比较适合。现在一些Linux网站有一些 Linux版本的免费下载,这里要说的是并不适合Linux初学者。
四、 养成在命令行下工作:一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外地远程系统。
五、 选择一个适合你的Linux社区;随着Linux应用的扩展,出现了不少Linux社区。其中有一些非常优秀的社区:
1)www.csdn.net(中国最大的IT技术专业社区)
2)http://www.chinaunix.net/ (中国最大的Unix/Linux技术社区)
3)www.armjishu.com(中国最好的嵌入式技术社区,有许多实际项目)
但是这几个论坛往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。还有一些非常丰富的学习资料及社区的综合站点.
六、勤于实践: 要增加自己Linux 的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个 Linux 发行版本,然后进入精彩的Linux世界。相信对于你自己的 Linux 能力必然大有斩获。此外,人脑不像计算机的硬盘一样,除非硬盘坏掉了或者是资料被你抹掉了,否则储存的资料将永远而且立刻的记忆在硬盘中。在人类记忆的曲线中,你必须要不断的重复练习才会将一件事情记得比较熟。同样的,学习 Linux 也一样,如果你无法经常学习的话,学了后面的,前面的忘了。你对Linux命令熟悉后你可以开始搭建一个小的Linux网络,这是最好的实践方法。 Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。当然你不需搭建所有服务,可以慢慢来。需要说明的是这个Linux网络对于初学者有两三台计算机即可,其中一台计算机最好安装Windows系统。自己多动手,不要非要等着别人帮你解决问题。
七、 如何得到联机帮助 和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
1. 主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
2. 查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。
八、在Linux论坛获取帮助如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人, Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问,否则只会得到到草率的回答或者根本得不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。 下面笔者在论坛看到的一个好问题:“安装红旗4.0 后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练,笔者五分钟后就给出了解决方法:“首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini ,最后重启动计算机,生成新的unispimsp.ksc”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的,这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、 Sendmail服务器,谢谢” 这样的问题我想即使Linux高手也很难快速准确精练的回答你。你需要提供精确有效的信息。这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。另外把这个问题放在其他Linux社区请求帮助也是一种选择。如果得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。另外发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。
九.用Unix思维学习Linux Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
十.学习专业英文如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的,最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。如果说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。
十一.最后是Linux学习的路线图:
1. 掌握至少50个以上的常用命令。
2. 熟悉Gnome/KDE等X-windows桌面环境操作 。
3. 掌握.tgz、.rpm等软件包的常用安装方法
4. 学习添加外设,安装设备驱动程序(比如网卡)
5. 熟悉Grub/Lilo引导器及简单的修复操作 。
6. 熟悉Linux文件系统 和目录结构。
7. 掌握vi,gcc,gdb等常用编辑器,编译器,调试器 。
8. 理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。
9. 学习Linux环境下的组网。
以上是笔者学习Linux一些经验,希望对你有些帮助。
一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linux 的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些朋友们常常一接触Linux 就是希望构架网站,根本没有想到要先了解一下Linux 的基础。这是相当困难的。
二、Linux命令是必须学习虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。举一个例子: Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手.它的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间. 不同版本的Linux命令数量不一样,这里笔者把它们中比较重要的和使用频率最多的命令,按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统: 安装和登录命令:login、 shutdown、 halt、 reboot 、mount、umount 、chsh 文件处理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln 系统管理相关命令: df、 top、 free、 quota 、at、 lp、 adduser、 groupadd kill、 crontab、 tar、 unzip、 gunzip 、last 网络操作命令:ifconfig、 ip 、ping 、 netstat 、telnet、 ftp、 route、 rlogin rcp 、finger 、mail 、nslookup 系统安全相关命令: passwd 、su、 umask 、chgrp、 chmod、chown、chattr、sudo、 pswho
三、选择一个适合你的Linux发行版本目前全球有超过1百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,Redhat Linux 和Debian Linux是网络管理员的理想选择。对于英语不是很好的读者红旗Linux、中标Linux这些中文版本比较适合。现在一些Linux网站有一些 Linux版本的免费下载,这里要说的是并不适合Linux初学者。
四、 养成在命令行下工作:一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外地远程系统。
五、 选择一个适合你的Linux社区;随着Linux应用的扩展,出现了不少Linux社区。其中有一些非常优秀的社区:
1)www.csdn.net(中国最大的IT技术专业社区)
2)http://www.chinaunix.net/ (中国最大的Unix/Linux技术社区)
3)www.armjishu.com(中国最好的嵌入式技术社区,有许多实际项目)
但是这几个论坛往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。还有一些非常丰富的学习资料及社区的综合站点.
六、勤于实践: 要增加自己Linux 的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个 Linux 发行版本,然后进入精彩的Linux世界。相信对于你自己的 Linux 能力必然大有斩获。此外,人脑不像计算机的硬盘一样,除非硬盘坏掉了或者是资料被你抹掉了,否则储存的资料将永远而且立刻的记忆在硬盘中。在人类记忆的曲线中,你必须要不断的重复练习才会将一件事情记得比较熟。同样的,学习 Linux 也一样,如果你无法经常学习的话,学了后面的,前面的忘了。你对Linux命令熟悉后你可以开始搭建一个小的Linux网络,这是最好的实践方法。 Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。当然你不需搭建所有服务,可以慢慢来。需要说明的是这个Linux网络对于初学者有两三台计算机即可,其中一台计算机最好安装Windows系统。自己多动手,不要非要等着别人帮你解决问题。
七、 如何得到联机帮助 和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
1. 主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
2. 查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。
八、在Linux论坛获取帮助如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人, Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问,否则只会得到到草率的回答或者根本得不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。 下面笔者在论坛看到的一个好问题:“安装红旗4.0 后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练,笔者五分钟后就给出了解决方法:“首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini ,最后重启动计算机,生成新的unispimsp.ksc”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的,这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、 Sendmail服务器,谢谢” 这样的问题我想即使Linux高手也很难快速准确精练的回答你。你需要提供精确有效的信息。这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。另外把这个问题放在其他Linux社区请求帮助也是一种选择。如果得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。另外发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。
九.用Unix思维学习Linux Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
十.学习专业英文如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的,最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。如果说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。
十一.最后是Linux学习的路线图:
1. 掌握至少50个以上的常用命令。
2. 熟悉Gnome/KDE等X-windows桌面环境操作 。
3. 掌握.tgz、.rpm等软件包的常用安装方法
4. 学习添加外设,安装设备驱动程序(比如网卡)
5. 熟悉Grub/Lilo引导器及简单的修复操作 。
6. 熟悉Linux文件系统 和目录结构。
7. 掌握vi,gcc,gdb等常用编辑器,编译器,调试器 。
8. 理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。
9. 学习Linux环境下的组网。
以上是笔者学习Linux一些经验,希望对你有些帮助。
|
一.为什么要学linux?
当然最重要是爱好和兴趣!如果你这种必要学,或者根本不喜欢,请不要浪费时间,你学也学不好!
二.起步
你应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix
问题1:版本的选择
北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的linux
开发人员中用debian的最多,其次是redhat,从全球linux各应用领域市场份额来看
无疑redhat是最多的,此外还有很多出名的发行版本,不再列举。
对于初学linux的人来说,我建议是使用redhat,原因如下:
1)现在很多书都是以redhat为例讲的,为了与书本协调一致
2)周围的人都用redhat,交流比较方便
3)redhat应用范围广,有典型性和代表性
4)它易于使用和安装,我们没有必要把时间浪费在“装系统”上
而应集中精力学习最有用的东西。
//注:现在觉得RH很死板,AS,ES等用在服务器上或许不错,
Personal desktop用mandrake,debian,suse都不错,笔者现在用Mandrake,因为她长得漂亮
如果你并不打算深入学习linux,而是有诸如适应北京市政府办公平台迁移到
linux上这种需要,那么中软,红旗等中文linux是不错的选择
我强烈建议:自己亲自动手把linux装到你的硬盘上,
你必须学会独立安装linux系统的技能,对于现在的版本来说,其实跟装WinXP一样简单
从此现在开始,请不要以windows的工作方式来考虑问题,
应该尝试挖掘linux身上的“天才unix”的气质。
三.进阶
掌握至少50个以上的常用命令
理解shell管道"|",文件流重定向">"及追加">>"等
熟悉Gnome/KDE等X-windows桌面环境操作
掌握.tgz.rpm.biz等软件包的常用安装方法
学习添加外设,安装设备驱动程序(比如modem)
熟悉Grub/Lilo引导器及简单的修复操作
熟悉系统固有目录的名称及公用
学会用mount命令访问其他文件系统
了解vi,gcc,gdb等常用编辑器,编译器,调试器
学习linux环境下的简单组网
建议:买一本不需要太厚的linux教材,大致可以满足要求
//现在的书越来越多了,还带很多图,我当时可没这么多书:)
四.高级应用
澄清一些概念:
linux的普通操作与真正的系统管理不能相提并论,后者需要很多知识
我个人认为比较重要几种linux语言
1.英语
即使你不学linux,我也强烈建议你学好英文[U.S.english]
因为实质上计算机语言就是英文和字符,所谓的多国语言只是外部包装
你必须能无障碍的阅读大量的英文技术文档
在搜索引擎找到的英文网站和网页中熟练的检索
最好能有用英文直接交流的能力,
摆脱了这个障碍,你的学习和理解速度就能快很多,你就有机会拉开和别人的差距
2.shell[sed/awk]
shell是命令解释器,是内核与用户界面交流通道,shell写的小脚本有点类似于win下的.bat
但shell比.bat强大的多,shell不只是解释命令,更是一种编程语言,有时候几百行的c用shell
几十行就能代替完成工作,因为shell的工作方式建立在系统已有的众多应用程序之上
这也是CS中的一个重要思想。
此外,shell可以实现工作自动化,这个概念也比较重要
sed,awk用来处理文本,历来很常用
3.Perl/PHP
漂亮的脚本, CGI的首选,比ASP好,应用面很广
4.CC++
C、C++是linux/unix的核心语言,系统代码都是C写的
5.ASM
系统底层及内核,硬件,设备驱动程序,嵌入式开发都需要
//走核心路线的话,才cc++,asm最重要
6.Java,Python,Tcl,XML
*系统管理篇
在熟悉linux的基础上还需要掌握至少一种unix
我首推Solaris,其次是FreeBSD
比如运营级系统一般是Solaris+Oracle/DB2之类的
学习apache,ssh,sendmail/Qmail,proftp/vsftp,Samba,Squid,MySQL/PostgreSQL/Oracle,Bind
等各种应用服务器的构架及电子商务的应用
熟悉TCP/IP协议族,学习诸如apache+php+proftp+mysql+quota的实现以及大型局域网,分布式集群
等各种企业级应用解决方案
熟悉多用户管理,数据库管理,文件系统,逻辑存储管理,日志分析,备份与灾难数据修复
系统补丁,内核升级,以及在此基础上的防火墙构架等以保障系统安全在内的各种系统管理技能
我觉得,如果在此基础上再掌握路由/交换设备便是一个不错的系统管理员
各种基于linux的解决方案可参考相关书籍和文献,必要时用google或各大linux站点站内
搜索引擎寻找最新文档,以避免错误和漏洞
有几本技术大全和技术内幕我认为都是这方面不错的书
*深入学习linux
我个人理解的读linux内核需要的基础:
在此之前,希望先把应用层的东西学一下,那样会比较好理解
1.C
如果学过潭浩强的大学教科书(除了编几个数学模型好像什么也做不了的那种),
建议再看一下
《The C Programming Language》Second Edition这本圣经
/*如果想学缓冲区溢出,这点C的功力可能是不够的*/
还有,,,
反正经典书看多了是没有坏处的
2.asm (AT&T语法,保护模式)
保护模式下的比较复杂,基本上每本讲内核的书都会有介绍
有80x86 Intel语法的基础就行,
有兴趣可以看看Intel的官方****
3.数据结构(离散数学)
计算机专业的核心课程,重要性我就不说了
4.操作系统原理
看懂这个再去读linux吧
5.微机原理/组成原理(数字电路)
底层直接和硬件打交道,所以这个也要
6.了解linux/unix
我想至少你要会操作吧,了解unix的API
7.软件工程/编译原理
这方面的经典书去www.china-pub.com可以搜到很多
我觉得APUE这种书不适合初学者,还是先看看UPE之类的吧
APUE:
《advanced programming in the unix environment》
《unix环境高级编程》
作者:W.Richard.Stevens共有6本经典书,尊为“圣经”
他的书为全世界黑客所拜读!
UPE:《unix programming environment》
《unix编程环境》比较适合初学者的,深入浅出,
其中有一些比较重要的思想
另外,介绍linux下应用层编程的书也有很多,比如
,redhat,redflag出的书...........
经典书还有很多很多......
操作系统:设计与实现 //交大的考研参考书目,讲Minix的
unix操作系统设计
4.4BSD操作系统设计与实现
昂莱氏unix源代码分析
ulk:understanding the linux kernel (2nd)深入理解linux内核
linux设备驱动程序 (2nd)
linux内核源代码情景分析
保护方式下的80386及其编程(次书已绝版,只有超星的电子版,如果谁能搞到纸书,清一定告诉我一下,非常感激!!!)
在这里你能明白"黑客"及"haching"一词所代表的真正意义
希望我写的这篇文章能造就更多的黑客,而不是骇客
五.一些资源 www.linuxforum.net //国内最高水平GNU站点 www.chinaunix.net //unix、系统管理的不错 www.linuxeden.com //下载软件不错 www.linuxaid.com.cn www.linuxsir.org
其实还有很多,包括国外的
当然最重要是爱好和兴趣!如果你这种必要学,或者根本不喜欢,请不要浪费时间,你学也学不好!
二.起步
你应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix
问题1:版本的选择
北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的linux
开发人员中用debian的最多,其次是redhat,从全球linux各应用领域市场份额来看
无疑redhat是最多的,此外还有很多出名的发行版本,不再列举。
对于初学linux的人来说,我建议是使用redhat,原因如下:
1)现在很多书都是以redhat为例讲的,为了与书本协调一致
2)周围的人都用redhat,交流比较方便
3)redhat应用范围广,有典型性和代表性
4)它易于使用和安装,我们没有必要把时间浪费在“装系统”上
而应集中精力学习最有用的东西。
//注:现在觉得RH很死板,AS,ES等用在服务器上或许不错,
Personal desktop用mandrake,debian,suse都不错,笔者现在用Mandrake,因为她长得漂亮
如果你并不打算深入学习linux,而是有诸如适应北京市政府办公平台迁移到
linux上这种需要,那么中软,红旗等中文linux是不错的选择
我强烈建议:自己亲自动手把linux装到你的硬盘上,
你必须学会独立安装linux系统的技能,对于现在的版本来说,其实跟装WinXP一样简单
从此现在开始,请不要以windows的工作方式来考虑问题,
应该尝试挖掘linux身上的“天才unix”的气质。
三.进阶
掌握至少50个以上的常用命令
理解shell管道"|",文件流重定向">"及追加">>"等
熟悉Gnome/KDE等X-windows桌面环境操作
掌握.tgz.rpm.biz等软件包的常用安装方法
学习添加外设,安装设备驱动程序(比如modem)
熟悉Grub/Lilo引导器及简单的修复操作
熟悉系统固有目录的名称及公用
学会用mount命令访问其他文件系统
了解vi,gcc,gdb等常用编辑器,编译器,调试器
学习linux环境下的简单组网
建议:买一本不需要太厚的linux教材,大致可以满足要求
//现在的书越来越多了,还带很多图,我当时可没这么多书:)
四.高级应用
澄清一些概念:
linux的普通操作与真正的系统管理不能相提并论,后者需要很多知识
我个人认为比较重要几种linux语言
1.英语
即使你不学linux,我也强烈建议你学好英文[U.S.english]
因为实质上计算机语言就是英文和字符,所谓的多国语言只是外部包装
你必须能无障碍的阅读大量的英文技术文档
在搜索引擎找到的英文网站和网页中熟练的检索
最好能有用英文直接交流的能力,
摆脱了这个障碍,你的学习和理解速度就能快很多,你就有机会拉开和别人的差距
2.shell[sed/awk]
shell是命令解释器,是内核与用户界面交流通道,shell写的小脚本有点类似于win下的.bat
但shell比.bat强大的多,shell不只是解释命令,更是一种编程语言,有时候几百行的c用shell
几十行就能代替完成工作,因为shell的工作方式建立在系统已有的众多应用程序之上
这也是CS中的一个重要思想。
此外,shell可以实现工作自动化,这个概念也比较重要
sed,awk用来处理文本,历来很常用
3.Perl/PHP
漂亮的脚本, CGI的首选,比ASP好,应用面很广
4.CC++
C、C++是linux/unix的核心语言,系统代码都是C写的
5.ASM
系统底层及内核,硬件,设备驱动程序,嵌入式开发都需要
//走核心路线的话,才cc++,asm最重要
6.Java,Python,Tcl,XML
*系统管理篇
在熟悉linux的基础上还需要掌握至少一种unix
我首推Solaris,其次是FreeBSD
比如运营级系统一般是Solaris+Oracle/DB2之类的
学习apache,ssh,sendmail/Qmail,proftp/vsftp,Samba,Squid,MySQL/PostgreSQL/Oracle,Bind
等各种应用服务器的构架及电子商务的应用
熟悉TCP/IP协议族,学习诸如apache+php+proftp+mysql+quota的实现以及大型局域网,分布式集群
等各种企业级应用解决方案
熟悉多用户管理,数据库管理,文件系统,逻辑存储管理,日志分析,备份与灾难数据修复
系统补丁,内核升级,以及在此基础上的防火墙构架等以保障系统安全在内的各种系统管理技能
我觉得,如果在此基础上再掌握路由/交换设备便是一个不错的系统管理员
各种基于linux的解决方案可参考相关书籍和文献,必要时用google或各大linux站点站内
搜索引擎寻找最新文档,以避免错误和漏洞
有几本技术大全和技术内幕我认为都是这方面不错的书
*深入学习linux
我个人理解的读linux内核需要的基础:
在此之前,希望先把应用层的东西学一下,那样会比较好理解
1.C
如果学过潭浩强的大学教科书(除了编几个数学模型好像什么也做不了的那种),
建议再看一下
《The C Programming Language》Second Edition这本圣经
/*如果想学缓冲区溢出,这点C的功力可能是不够的*/
还有,,,
反正经典书看多了是没有坏处的
2.asm (AT&T语法,保护模式)
保护模式下的比较复杂,基本上每本讲内核的书都会有介绍
有80x86 Intel语法的基础就行,
有兴趣可以看看Intel的官方****
3.数据结构(离散数学)
计算机专业的核心课程,重要性我就不说了
4.操作系统原理
看懂这个再去读linux吧
5.微机原理/组成原理(数字电路)
底层直接和硬件打交道,所以这个也要
6.了解linux/unix
我想至少你要会操作吧,了解unix的API
7.软件工程/编译原理
这方面的经典书去www.china-pub.com可以搜到很多
我觉得APUE这种书不适合初学者,还是先看看UPE之类的吧
APUE:
《advanced programming in the unix environment》
《unix环境高级编程》
作者:W.Richard.Stevens共有6本经典书,尊为“圣经”
他的书为全世界黑客所拜读!
UPE:《unix programming environment》
《unix编程环境》比较适合初学者的,深入浅出,
其中有一些比较重要的思想
另外,介绍linux下应用层编程的书也有很多,比如
,redhat,redflag出的书...........
经典书还有很多很多......
操作系统:设计与实现 //交大的考研参考书目,讲Minix的
unix操作系统设计
4.4BSD操作系统设计与实现
昂莱氏unix源代码分析
ulk:understanding the linux kernel (2nd)深入理解linux内核
linux设备驱动程序 (2nd)
linux内核源代码情景分析
保护方式下的80386及其编程(次书已绝版,只有超星的电子版,如果谁能搞到纸书,清一定告诉我一下,非常感激!!!)
在这里你能明白"黑客"及"haching"一词所代表的真正意义
希望我写的这篇文章能造就更多的黑客,而不是骇客
五.一些资源 www.linuxforum.net //国内最高水平GNU站点 www.chinaunix.net //unix、系统管理的不错 www.linuxeden.com //下载软件不错 www.linuxaid.com.cn www.linuxsir.org
其实还有很多,包括国外的
|
先熟悉linux的环境,shell基本指令是有用的,可以看《鸟哥的私房菜》
熟悉了可以进阶《shell脚本编程》
要熟悉linux的系统调用,以及基本的系统原理,看《Unix环境高级编程》
熟悉了可以进阶《shell脚本编程》
要熟悉linux的系统调用,以及基本的系统原理,看《Unix环境高级编程》
|
呵呵 接分 ,帮顶1!
|
《Unix环境高级编程》
|
1楼的真全面。。。
|
同意5楼观点,进阶多联系基础命令,常记得MAN一下,这样对于你帮助会很多,综合1楼的观点,常常在命令行界面下联系 对于以后的学习有很大的帮助,我以前就是用X-WINDOWS,最后改过来了 呵呵
|
需要学的东东很多,我做了一年多,只是皮毛而已。
|
学学GTK Qt MINIGUI
没准你手机、MP4就是拿这些做的GUI
没准你手机、MP4就是拿这些做的GUI
|
有兴趣的话可以看看内核代码
|
恩……帮顶……
关注……
收藏了……
关注……
收藏了……
|
收分
|
先装一个Ubuntu或Fedora吧,个人建议Ubuntu,熟悉一下环境,其实你会发现Linux又酷又炫,而且并不难用。在使用的过程再慢慢去学,去用命令行(其实大部分工作都不再需要命令行了,但Linux的精髓真的就是在于命令行)。不要急躁,这需要一个过程的。
|
祝楼主学有所成
|
顶!
以上几关都通关了之后还不过瘾,可以再看看 《unix网络编程 卷1 卷2》《The Art Of Unix Programming》,内核情景分析之类
|
鸟哥的私房菜,强烈推荐这个,新手看了很有帮助
|
先学常用的命令,再学编程。。。。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。