我一直对电脑很感兴趣,并且已经搞了很多包括Linux在内的东西。 我刚从小(13岁左右)就开始使用红帽,并丢失了所有数据,将FAT32驱动器转换为其他内容。 后来它是Knoppix这是真正有用的恢复等。 那么,这是Ubuntu。 另外,我也有一段时间摆弄了Arch,但是,我经常因为自己的喜好而断断续续(也许我应该更加小心)。
无论如何,目前我使用Ubuntu 9.04。 我现在想深入挖掘Linux世界。 我想学习如何工作和使用terminal更多。 我也是一名程序员,所以这会有很大的帮助。
所以,我想问的是:
学习和理解Linux的好书
好习惯更有效地使用Linux。
好的工具,我应该知道。
你每天留出来学习新事物的时间。
作为一名程序员,你如何高效地设置和使用Linux。
长列表。 我会感谢答复者。
对我来说,我认为教给我最多关于Linux的东西是执行Gentoo安装。
对于外行来说,Gentoo本身没有安装程序,而是下载一个启动映像,手工创build卷和文件系统,然后开始编译大量的源代码,为您提供一个工作系统。
我用Gentoo已经有几年了,假设它没有太多变化,我肯定会把它推荐给任何热衷于学习的人。
当我使用它时,文档和支持论坛是首屈一指的。
像“Linux格式”和“Linux杂志”杂志。 他们可以在书店购买,订阅或在互联网上find。 有关Linux格式的旧版本, 请访问http://www.linuxformat.com/modules.php?op=modload&name=NewArchives&listpdfs=1,Linux Journal的旧版本位于http://www.linuxjournal.com/magazine 。
获取Linux Journal / Tux Radar“Linux Starter Pack”。 这是纯粹的胜利130页。 它几乎涵盖了迁移Windows用户可能想要知道的任何东西。 它可以在http://www.tuxradar.com/linuxstarterpack上find 。
join论坛。 既然你使用Ubuntu,我build议从http://ubuntuforums.org/开始。 另一个值得注意的论坛是www.LinuxQuestions.org。 ServerFault也可以。 ;)
阅读Rute指南。 它将帮助你使用命令行,并向你介绍其他形成性的Linux概念。 http://rute.2038bug.com/
像“man program-name”和“info program-name”这样的命令是非常宝贵的。
当然,随时可以提问。 有人来帮助你学习一个操作系统总是让这个过程变得更简单,所以如果你能的话,找一个导师。
也许从Linux文档项目开始 。
指南部分提供了一些非常有趣的书籍:
HowTo部分提供了一些主题特定的帮助。
学习如何在terminal上下车。 这意味着要学习导航,pipe道和Unix程序(如grep和sed)。 Ubuntu和其他发行版正在使Linux越来越容易使用,但是在最后一天,学习的最大好处在于它的CLI根源。
这个网站有一些很好的shell教程。
我强烈推荐UNIX环境下的高级编程。 这是一本关于UNIX通用系统编程的精彩书籍。
使用不要重复自己的哲学。 与terminal执行常见任务:复制,创build,移动,删除文件,search其中的内容(使用grep),search文件(find)等等。 尝试将所有这些命令加在一起,加上bash脚本和awk。 这将带给你良好的实践,你会感觉到Linux的力量:-)。
例如,如果您需要删除一些文件名称与任何模式匹配的文件,您可以search每个文件夹并将其删除为manualy。 这里DRY来了 – 只需要把find和rm结合起来,你就可以通过一个terminal行来完成。
另外,像以前发布的,build立一个家庭服务器。 通过它共享networking,运行networking服务器,configurationnetworking打印机等。
ls / bin,/ usr / bin,/ sbin和/ usr / sbin。 然后扫描/阅读你看到的每个命令的手册页。 除非你是一个神童,否则你不会记得这一切。 然而,它会让你接触到你系统上的大部分命令,你会对它们做什么有一个模糊的概念。 那么当你需要做某些事情时,你会希望记住可能相关的命令。
最后还要阅读其他手册页,你会发现哪里有你的MANPATH,但是我只是先从命令开始。
当我在服务台时,这是我以前做的事,但没有电话进来,我发现它非常有用。
有一点边栏提示,但我使用Mnemosyne (apt-get install mnemosyne)来创build我遇到的有用的Linux命令和提示的闪存卡。 每周几次,我翻阅了几张闪存卡,并试图让它们保持新鲜。
你的里程可能会有所不同,但是我发现这是保留我不会每天使用的命令的好方法,所以当我需要时(或者至less知道要查阅哪些手册页),我可以快速回想起它们。 。
我也是这样做的,比如Vim击键,Python API等等。
进入Linux的一个好方法就是使用它。
Linux的威力在命令行中。 当你使用Linux的时候,你可能会很快进入命令行。 在GUI中做重复的任务让你想知道是否有更好的方法来做事情。 这样,使用命令行界面,你可以慢慢地变得更加舒适。
当我在学校教C时,我们在Emacs中编写程序并在命令行上编译它们。 这让我更加舒适地在命令行上工作,而且随着我们的进步,我学到了新的技巧。 另外,如果你学习C语言,你可以深入了解Linux的构build方式以及它如何工作,因为它主要是用C编写的。
一本很好的通用书是“Unix编程的艺术”。 Unix和Linux共享相同的哲学,即使它们稍有不同。
除此之外,我会build议学习一个shell(比如bash),学习像Perl或Python这样的脚本语言。 要学习一个shell,我先从手册页开始,也许拿起一本书(O'Reilly的书很好)。
Linux文档项目包含大量的学习资源。
你问过如何高效地使用Linux作为程序员 – 在这种情况下,我会认为shell脚本是必不可less的(不pipe是知道如何传入或传出参数,还是避免编写代码来完成已经可以完成的事情commamnds)。 尝试O'Reilly参考“经典壳牌脚本”。
Linux用户
程序员会发现有用的许多Linux命令行工具。 其中一些是:
对于中级Linux用户来说,有很多书籍,没有一本适合先进的书籍。 我使用了以下的练习来进入Linux:
Linuxpipe理和configuration以相同的方式完成,但往往有更多的Googlesearch。
我小时候就开始用SuSE。 后来它也是我的Knoppix。 然后,它是Ubuntu,目前我使用Ubuntu 9.04。
我从互联网和朋友那里学到了几乎所有关于linux的知识。
唯一一本帮助我更好地学习和理解Linux的书是Andrew S. Tanenbaums 现代操作系统 。
了解Linux的一个好方法是用它做事情。 您可以尝试在家中或虚拟机上的互联网连接上设置一个Linux机器。
尝试设置一些服务器应用程序:
这将帮助您熟悉常见的Linux工具和实践。
书可以是好的,但是试着find自己的人类导师。 当我年轻的时候,我很幸运的有一个Unix系统pipe理员给我看绳索,经过几年的工作,我甚至超越了他们的知识。
Unix是一个奇怪的野兽,你可以要求10个Unixpipe理员执行一个动作,你可能会得到10个不同的答案。 可能没有一个答案是不正确的,这是因为这个工具是非常灵活的,它可以做更多的事情。
它绝对不是“做一个微软方式”的做法:-)
有时,如果你在阅读时遇到概念,freenode irc频道可能会有很大的帮助。 检查出来,他们是友好的,如果你是友好的。