Linux学习入门

近期有身边的朋友在学习Linux,整理一些提纲作为学习的要点。

常见的Linux两大分支:RedHat & Debian,两者主要的差别在于,root权限的使用方式,包机制的差别(deb、rpm)。目前常见的Linux,皆是基于该两大分支,如CentOS,基于RH,Ubuntu基于Debian。

我比较熟悉Ubuntu,所以直接说服对方加入了Debian阵营。其实熟悉了Linux以后,无论Debian还是RedHat,也都好适应。相比之下,Debian包机制更加先进易用,对于新手而言,会亲切些。

作为一个程序员,了解Linux系统,应该从Server系统入手(当然你狠狠的装个图形化界面,我也没意见),即从命令行入手,这才是Linux的本来面貌。学习的方向一共有三个:

1、权限的问题,区别以不同的权限执行不同的任务,用户权限和root权限的分离等。

2、使用和熟悉Shell指令。

3、学习部署基础的服务器环境,远的不说,近的如LAMP,手动编译可以慢慢来,但基本的,通过包机制管理更新删除服务、软件,也应该掌握。

我终究会认为,系统管理员,是有其价值的,程序员还是别捞过界了。不过作为程序员应该尽可能了解更多和服务器相关的知识,这也是一种素质、修养。至于是不是将他替代了写程序,看自己的兴趣和爱好。

以下就Windows下,安装VisualBox,然后安装Ubuntu Server做个简短的记录。

0.1 安装VisualBox,这个不用说了,安装过程会问你添加VisualBox Host-Only Bridge,添加。

0.2 然后添加新的虚拟系统,选Ubuntu,设定好内存和硬盘的大小。

0.3 在虚拟机的设置里面,Storage -> IDE控制 -> 选择第一个光盘 -> 右边的属性有个光盘的按钮 -> Choose a visual CD/DVD File... 选择事先下载好的Ubuntu Server 10.04的iso。

0.4 安装,就安装吧,不罗嗦了,安装过程自己看看英文学习学习,语言最好选英语,虚拟系统硬盘分区那里可以选择分一个区,默认服务最好一个都别装,快的10多分钟就完成了。

0.5 装完重启,顺利进入系统即可,然后关掉,开始配置虚拟网络。

0.5.1 回到虚拟的设置 -> 网络 -> Adapter 1,选择“Host-Only Adapter”,该设置用于暴露虚拟系统的ip予宿主系统,以确保宿主系统可以通过该ip访问虚拟系统的服务器,比如sshd、web啥的,什么sshd是什么?就是你能通过putty访问的一个服务。

0.5.2 网络 -> Adapter 2,选择Nat(或者其他),该设置用于上网。

0.5.3 设置完毕,点确定,重新启动系统,登录,编辑文件:/etc/network/interfaces,由于你安装的时候,网卡只有一个,所以默认会有auto lo和auto eth0,添加auto eth1,即刚才0.5.2添加的网卡。具体添加代码如下:

auto eth1
iface eth1 inet dhcp

0.5.4 保存退出,执行:sudo /etc/init.d/networking restart。然后你可以看看ifconfig -a看看是不是eth1和eth0都正常启动,而且也分配了相应的ip了。其中如果按章上述设置,eht1应该是192.168.56.x,eht0应该是10.0.3.x。

宿主系统在开始菜单,选中dos命令行(运行cmd),ipconfig -all,看看本机(Windows),那个VirtualBox Host-Only Network,这是虚拟网卡上的ip,虚拟系统(Ubuntu)的eth0和该ip处于同一网段,是通信的基础。

然后你就可以开始装一些基础的服务,比如sudo apt-get install openssh-server,虚拟机中,命令行没法用滚动条,而且也不支持复制,而装了openssh-server以后,你可以通过putty访问,还允许复制粘贴。

而后,你可以试试,apt-cache search php5,这是搜索更新源中既有的包含php5关键字的相关可安装包,你可以找到相关的包来安装试试。你可能会输入apt-get install xxx,为什么执行失败呢?你可以把提示的信息复制下来,去Google搜索一下,哦,权限不够,需要加sudo,这又是你了解权限的差别所在(windows用户,win7其实也有这种提问)。

当然,你还可以选择手动编译。比如wget(命令行中单线程的下载工具),php,呃,不过手动编译PHP会是比较困扰的事情,nginx可能简单些。

基础的东西就是那么多了,虽然要学的东西很多,不过别被庞大的体系吓到,不妨树立一个短期的目标,比如手动编译nginx通过,或者手动编译PHP通过,然后针对实现这个目标进行学习,直到达成这个目标。因为事实上,完成这个目标后,接下去的问题,就是怎么运行起来,这里面就涉及到配置、权限分配,添加用户(当然,前提是你要自己手动编译,不是apt-get)。再接着,就是尝试编写自己的服务启动脚本,学习较为高级的Shell指令。完成这个过程,你已经完成了对Linux的入门了。

posted @ 2012-02-08 14:42  FaceSun  阅读(257)  评论(0编辑  收藏  举报