鸟哥linux私房菜笔记(第一部分 Linux的规划与安装)

来源:互联网 发布:java图片压缩开源框架 编辑:程序博客网 时间:2024/05/29 02:49

00_chapter 计算机概论

(较快速的阅读了——)
重点回顾

计算机的定义为:『接受使用者输入指令与数据,经由中央处理器的数学与逻辑单元运算处理后,以产生或储存成有用的信息』;计算机的五大单元包括:输入单元、 输出单元、CPU内部的控制单元、算数逻辑单元与主内存五大部分;数据会流进/流出内存是CPU所发布的控制命令,而CPU实际要处理的数据则完全来自於主内存;CPU依设计理念主要分为:精简指令集(RISC)与复杂指令集(CISC)系统;关於CPU的频率部分:外频指的是CPU与外部组件进行数据传输时的速度,倍频则是CPU内部用来加速工作效能的一个倍数, 两者相乘才是CPU的频率速度;一般主机板芯片组有分北桥与南桥,北桥的系统总线称为系统系统总线,因为是内存传输的主要通道,所以速度较快。 南桥就是所谓的输入输出(I/O)系统总线,主要在联系硬盘、USB、网络卡等周边设备;北桥所支持的频率我们称为前端系统总线速度(Front Side Bus, FSB),而每次传送的位数则是系统总线宽度。CPU每次能够处理的数据量称为字长大小(word size),字长大小依据CPU的设计而有32位与64位。 我们现在所称的计算机是3264位主要是依据这个 CPU解析的字长大小而来的!个人计算机的主内存主要组件为动态随机访问内存(Dynamic Random Access Memory, DRAM), 至於CPU内部的第二层缓存则使用静态随机访问内存(Static Random Access Memory, SRAM);BIOS(Basic Input Output System)是一套程序,这套程序是写死到主机板上面的一个内存芯片中, 这个内存芯片在没有通电时也能够将数据记录下来,那就是只读内存(Read Only Memory, ROM);显示卡的规格有PCI/AGP/PCIe,目前的主流为PCIe介面;硬盘的组成为:圆形磁碟盘、机械手臂、 磁碟读取头与主轴马达所组成的,其中磁碟盘的组成为磁区、磁轨与磁柱;操作系统(Operating System, OS)其实也是一组程序, 这组程序的重点在於管理计算机的所有活动以及驱动系统中的所有硬件。计算机主要以二进位作为单位,常用的磁碟容量单位为bytes,其单位换算为1 Byte = 8bits。最阳春的操作系统仅在驱动与管理硬件,而要使用硬件时,就得需要透过应用软件或者是壳程序(shell)的功能, 来呼叫操作系统操纵硬件工作。目前称为操作系统的,除了上述功能外,通常已经包含了日常工作所需要的应用软件在内了。

0001:
Linux环境下,可以使用『cat /proc/cpuinfo』 及使用『lspci』来查阅各项组件的型号;
注:Linux 查看系统硬件信息(实例详解)http://blog.csdn.net/icevmj/article/details/44210823

01_chapter Linux是什么

计算机主要以二进制作为单位,而目前常用的磁盘容量单位为bytes,其单位换算为1Byte = 8bits, 其他的以1024为其倍数,如 1GByte=1024MBytes等等。操作系统(Operation System)主要在管理与驱动硬件,因此必须要能够管理内存、管理装置、 负责行程管理以及系统呼叫等等。因此,只要能够让硬件准备妥当(Ready)的情况, 就是一个阳春的操作系统了。最阳春的操作系统仅在驱动与管理硬件,而要使用硬件时,就得需要透过应用软件或者是壳程序(shell) 的功能,来呼叫操作系统操纵硬件工作。因此,目前称为操作系统的, 除了上述功能外,通常已经包含了日常工作所需要的应用软件在内了。Unix的前身是由贝尔实验室(Bell lab.)的Ken Thompson利用汇编语言写成的, 后来在1971-1973年间由Dennis Ritchie以C程序语言进行改写,才称为Unix。1977年由Bill Joy释出BSD (Berkeley Software Distribution),这些称为Unix-like的操作系统。1984年由Andrew Tanenbaum制作出Minix操作系统,该系统可以提供原始码以及软件;1984年由Richard Stallman提倡GNU计划,倡导自由软件(Free software), 强调其软件可以『自由的取得、复制、修改与再发行』,并规范出GPL授权模式, 任何GPL(General Public License)软件均不可单纯仅贩卖其软件,也不可修改软件授权。1991年由芬兰人Linus Torvalds开发出Linux操作系统。简而言之,Linux成功的地方主要在于: Minix(Unix), GNU, Internet, POSIX 及虚拟团队的产生。Linux本身就是个最阳春的操作系统,其开发网站设立在http://www.kernel.org,我们亦称Linux操作系统最底层的数据为『核心(Kernel)』。目前Linux核心的发展分为两种版本,分别是稳定版本的偶数版,如2.6.X,适合于商业与家用环境使用; 一种是发展中版本的奇数版如2.5.X 版,适合开发特殊功能的环境。Linux distributions的组成含有:『Linux Kernel + Free Software + Documentations(Tools) + 可完全安装的程序』所制成的一套完整的系统。

02_chapter Linux如何学习

Linux在企业应用方面,著重於『网路服务器』、『关键任务的应用(金融数据库、大型企业网管环境)』及『高效能运算』等任务;Linux在个人环境的使用上,著重於:桌面计算机、手持系统(PDA、手机)、嵌入式设备(如家电用品等);Linux distributions有针对桌面计算机所开发的,例如Ubuntu, OpenSuSE及Fedora等等,为学习X Window的好工具;有心朝Linux学习者,应该多接触文字介面(shell)的环境,包括正规表示法、管线命令与资料流重导向,最好都要学习! 最好连shell script都要有能力自行撰写;『实作』是学习Linux的最佳方案,空读书,遇到问题也不见得能够自己处理的!学习Linux时,建立兴趣、建立成就感是很重要的,另外,协助回答问题、参与社群活动也是增加热情的方式!Linux文件计画的网站在:http://www.tldp.org

03_chapter 主机规划与磁盘分区

新添购计算机硬件配备时,需要考量的角度有『游戏机/工作机的考量』、『效能/价格比的考量』、『支持度的考量』等;旧的硬件配备可能由於保存的问题或者是电子零件老化的问题, 导致计算机系统非常容易在运行过程中出现不明的死机情况Red Hat的硬件支持:https://hardware.redhat.com/?pagename=hcl在Linux系统中,每个装置都被当成一个文件来对待,每个装置都会有装置档名。磁碟的装置档名主要分为 (1)IDE介面的/dev/hd[a-d]及 (2)SATA/SCSI/U盘介面的/dev/sd[a-p]两种;磁碟的第一个磁区主要记录了两个重要的资讯,分别是: (1)主要启动记录区(Master Boot Record, MBR):可以安装启动管理程序的地方,有446 bytes (1)分割表(partition table):记录整颗硬盘分割的状态,有64 bytes;磁碟的主要与扩展分配最多可以有四个,逻辑分割的装置档名号码,一定由5号开始;启动的流程由:BIOS-->MBR-->-->boot loader-->核心文件;boot loader的功能主要有:提供菜单、加载核心、转交控制权给其他loaderboot loader可以安装的地点有两个,分别是 MBR 与 boot sectorLinux操作系统的文件使用目录树系统,与磁碟的对应需要有『挂载』的动作才行;新手的简单分割,建议只要有/及swap两个分割槽即可
磁盘分区表(partition table)    主要分割、扩展分配与逻辑分割的特性我们作个简单的定义罗:        主要分割与扩展分配最多可以有四笔(硬盘的限制)        扩展分配最多只能有一个(操作系统的限制)        逻辑分割是由扩展分配持续切割出来的分割槽;        能够被格式化后,作为数据存取的分割槽为主要分割与逻辑分割。扩展分配无法格式化;        逻辑分割的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分割(5号到63号), SATA硬盘则有11个逻辑分割(5号到15号)。    启动流程与主要启动记录区(MBR):        BIOS:启动主动运行的韧体,会认识第一个可启动的装置;        MBR:第一个可启动装置的第一个磁区内的主要启动记录区块,内含启动管理程序;        启动管理程序(boot loader):一支可读取核心文件来运行的软件;        核心文件:开始操作系统的功能...    这个boot loader的主要任务有底下这些项目:        提供菜单:使用者可以选择不同的启动项目,这也是多重启动的重要功能!        加载核心文件:直接指向可启动的程序区段来开始操作系统;        转交其他loader:将启动管理功能转交给其他loader负责。    文件系统与目录树的关系(挂载):        所谓的『挂载』就是利用一个目录当成进入点,将磁盘分区槽的数据放置在该目录下; 也就是说,进入该目录就可以读取该分割槽的意思。这个动作我们称为『挂载』,那个进入点的目录我们称为『挂载点』。 由於整个Linux系统最重要的是根目录,因此根目录一定需要挂载到某个分割槽的。 至於其他的目录则可依使用者自己的需求来给予挂载到不同的分割槽。

04_chapter 安装CentOS 5.x与多重引导技巧

不论你要安装什么样的Linux操作系统角色,都应该要事先规划例如分割、开机管理程序等;建议练习机安装时的磁碟分割能有/, /boot, /home, swap四个分割槽;调整开机装置的顺序必须要重新开机并进入BIOS系统调整;安装CentOS 5.x的模式至少有两种,分别是图形介面与文字介面;若安装笔记本电脑时失败,可尝试在开机时加入『linux nofb apm=off acpi=off』来关闭省电功能;安装过程进入分割后,请以『自订的分割模式』来处理自己规划的分割方式;在安装的过程中,可以建立软件磁盘阵列(software RAID);一般要求swap应该要是1.5~2倍的实体内存量;即使没有swap依旧能够安装与运作Linux操作系统;CentOS 5.x的开机管理程序为grub,安装时最好选择安装置MBR中;没有连上Internet时,可尝试关闭防火墙,但SELinux最好选择『强制』状态;设定时不要选择启动kdump,因为那是给核心开发者查阅当机数据的;可加入时间服务器来同步化时间,台湾可选择tock.stdtime.gov.tw这一部;尽量使用一般用户来操作Linux,有必要再转身份成为root即可。

05_chapter首次登陆与在线求助 man page

重新启动 X Window 的快捷按钮:(注:不是重启系统哦)
1,直接注销,然后重新登录
2,在 X 的画面中直接按下[Alt] + [Ctrl] + [Backspace]
X Window 与文本模式的切换:
[Ctrl] + [Alt] + [F1] ~ [F6] :文字接口登入 tty1 ~ tty6 终端机;
[Ctrl] + [Alt] + [F7] :图形接口桌面
注:Linux的默认登入模式中,主要分为两种:
一种是仅有纯文本接口(所谓的执行等级run level 3)的登入环境,在这种环境中你可以有tty1~tty6的终端界面,但是并没有图形窗口接口的环境喔。
另一种则是图形接口的登入环境(所谓的执行等级run level 5),在这个环境中你就具有tty1~tty7了!其中的tty7就是开机完成后的默认登入的图形环境!
如果你是以纯文本环境启动Linux的,预设的tty7是没有东西的!万一如此的话,那要怎举启动X窗口画面呢? 你可以在tty1~tty6的任意一个终端接口使用你的账号登入后(登入的方法下一小节会介绍), 然后下达如下的命令即可:
startx
使用条件:
你的tty7并没有其他的窗口软件正在运作(tty7必须是空出来的);
你必须要已经安装了X Window system,并且X server是能够顺利启动的;
你最好要有窗口管理员,例如GNOME/KDE或者是阳春的TWM等;
启动X所必须要的服务,例如字型服务器(X Font Server, xfs)必须要先启动。

下达指令的注意事项:
当所输入的指令太长时,可用反斜杠(\)来逃脱[Enter]符号使指令连续到下一行

语系的支持:

    1,显示目前所支持的语系:    echo $LANG    2,修改语系为英语语系:      LANG=en_US    3,再次显示目前所支持的语系:    echo $LAN注意:这样一来,就可以在“这次登录”查看英文信息了,如果注销Linux,则下达的指令就没有了。(见11章)

基础指令的操作:
显示日历的指令:cal
cal 2015 //显示2015年年历
简单好用的计算器:bc
scale=3 //设置小数位为3(默认为整数)
quit //离开bc

重要的几个热键[TAB],[ctrl]-c,[ctrl]-d
[TAB]:命令补全,档案补齐
[ctrl]-c:中断目前程序
[ctrl]-d:硬盘输入结束符(End Of File或End Of Input),另外,还可用来取代exit的输入。(相当于exit)

man page:
(man man)

    代号      代表内容       1      User Commands       2      System Calls       3      C Library Functions       4      Devices and Special Files       5      File Formats and Conventions       6      Games et. Al.       7      Miscellanea       8      System Administration tools and Deamons
man page中的快捷按键及功能:    空格键、[Page Down]、[Page Up]、[Home]、[End]不赘述    /string     向下搜寻string这个字符串    ?string     向上搜寻string这个字符串    n,N         用n来继续下一个搜寻(不论是/或者?),可以利用N来进行反向查询    q           结束这次man page

注:man page的数据一般放在/usr/share/man目录中,可以通过写该man page的搜索路径来改善这个目录问题。修改/etc/man.comfig(有的版本为man.conf或manpath.conf)即可。

man -f 指令 只会找数据中的左边那个指令(或档案)的完整名称(==whatis 指令)
man -k 指令 找出系统的说明文件中,只要有man这个关键词就该说明列出来

info page:

其他有用的文件(documents):
存放在目录:/usr/share/doc/中

超简单文本编辑器:nano

正确的关机方法:

    观察系统的使用状态:        who           看目前有谁在线        netstat -a    看网络的联机状态        ps -aux       看背景执行的程序    通知在线使用者关机的时刻        shutdown    几个关机/重启相关的指令        将数据同步写入硬盘中的指令:sync            将内存中尚未被更新的数据写入硬盘中            一般账号用户使用sync只能将自己的数据更新到硬盘中,root可以更新整个系统的数据        惯用的关机指令:shutdown            除了你是在主机面前以tty7图形接口来登入系统时,不论什么身份都能够关机以外,若你使用远程管理工具,那关机就只有root有权利。
[root@www ~]# /sbin/shutdown [-t 秒] [-arkhncfF] 时间 [警告信息] 选项与参数: -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思 -k     : 不要真的关机,只是发送警告信息出去! -r     : 在将系统的服务停掉之后就重新启动(常用) -h     : 将系统的服务停掉后,立即关机。 (常用) -n     : 不经过 init 程序,直接以 shutdown 的功能来关机 -f     : 关机并启动之后,强制略过 fsck 的磁盘检查 -F     : 系统重新启动之后,强制进行 fsck 的磁盘检查 -c     : 取消已经在进行的 shutdown 命令内容。 时间   : 这是一定要加入的参数!指定系统关机的时间!时间的范例底下会说明。 范例: [root@www ~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins'  告诉大家,这部机器会在十分钟后关机!并且会显示在目前登陆者的屏幕前方![root@www ~]# shutdown -h now 立刻关机,其中 now 相当于时间为 0 的状态 [root@www ~]# shutdown -h 20:25 系统在今天的 20:25 分会关机,若在21:25才下达此命令,则隔天才关机 [root@www ~]# shutdown -h +10 系统再过十分钟后自动关机 [root@www ~]# shutdown -r now 系统立刻重新启动 [root@www ~]# shutdown -r +30 'The system will reboot'  再过三十分钟系统会重新启动,并显示后面的信息给所有在在线的使用者 [root@www ~]# shutdown -k now 'This system will reboot'  仅发出警告信件的参数!系统并不会关机啦!吓唬人! 

重新启动,关机:reboot,halt,poweroff
通常鸟哥在重新启动时,都会下达如下的命令喔:

[root@www ~]# sync; sync; sync; reboot 

shutdown可以依据目前已启动的服务来逐次关闭各服务后才关机;至于halt却能够在不理会目前系统状况下, 进行硬件关机的特殊功能!
你可以在你的主机上面使用root进行底下两个命令来关机,比较看看差异在哪里喔!

[root@www ~]# shutdown -h now [root@www ~]# poweroff -f 

切换运行等级: init
Linux共有七种运行等级(后面会再谈到)

run level 0:关机run level 3:纯文本模式run level 5:含有图形接口模式run level 6:重新启动

启动过程的问题排解:

文件系统错误的问题
如果根目录没有损毁:
假设你发生错误的partition是在/dev/sda7这一块,那么在启动的时候,屏幕应该会告诉你:press root password or ctrl+D : 这时候请输入root的密码登陆系统,然后进行如下动作:

在光标处输入root密码登陆系统,进行单人单机的维护工作;
输入『 fsck /dev/sda7 』(fsck 为文件系统检查的命令,/dev/sda7为错误的partition,请依你的情况下达参数), 这时屏幕会显示开始修理硬盘的信息,如果有发现任何的错误时,屏幕会显示: clear [Y/N]? 的询问信息,就直接输入 Y 吧!
修理完成之后,以 reboot 重新启动啰!

如果根目录损毁了
一般初学者喜欢将自己的硬盘只划分为一个大partition,亦即只有根目录, 那文件系统错误一定是根目录的问题啰!这时你可以将硬盘拔掉,接到另一台Linux系统的计算机上, 并且不要挂载(mount)该硬盘,然后以root的身份运行『 fsck /dev/sdb1 』(/dev/sdb1 指的是你的硬盘装置文件名,你要依你的实际状况来配置),这样就 OK 啰!

另外,也可以使用近年来很热门的Live CD,也就是利用光盘启动就能够进入Linux操作系统的特性, 你可以前往:『http://knoppix.tnc.edu.tw/』 这个网站来下载,并且刻录成为CD,这个时候先用Live CD光盘启动,然后使用fsck去修复原本的根目录, 例如: fsck /dev/sda1 ,就能够救回来了

如果硬盘整个坏掉.。。

那么硬盘该如何预防发生文件系统错误的问题呢?可以参考底下说明:
妥善保养硬盘
划分不同的partition
因为Linux每个目录被读写的频率不同,妥善的块分配将会让我们的Linux更安全! 通常我们会建议划分下列的磁盘区块:
/
/boot
/usr
/home
/var
这样划分有些好处,例如/var是系统默认的一些数据缓存或者是cache数据的储存目录, 像 e-mail 就含在这里面。如果还有使用proxy时,因为常常存取,所以有可能会造成磁盘损坏, 而当这部份的磁盘损坏时,由于其他的地方是没问题的,因此数据得以保存,而且在处理时也比较容易!

忘记 root 密码:

常常有些朋友在配置好了Linux之后,结果root密码给他忘记去!要重新安装吗?不需要的, 你只要以单人维护模式登陆即可更改你的root密码喔!由于lilo这个启动管理程序已经很少见了, 这里鸟哥使用grub启动管理程序作为范例来介绍啰!

先将系统重新启动,在读秒的时候按下任意键就会出现如同第四章图3.2的菜单画面,仔细看菜单底下的说明, 按下『e』就能够进入grub的编辑模式了。此时你看到的画面有点像底下这样:

root (hd0,0)
kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-128.el5.img
此时,请将光标移动到kernel那一行,再按一次『 e 』进入kernel该行的编辑画面中, 然后在出现的画面当中,最后方输入 single :

kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/ rhgb quiet single
再按下『 Enter 』确定之后,按下 b 就可以启动进入单人维护模式了! 在这个模式底下,你会在tty1的地方不需要输入密码即可取得终端机的控制权(而且是使用root的身份喔!)。 之后就能够修改root的密码了!请使用底下的命令来修改root的密码喔!

[root@www ~]# passwd
接下来系统会要求你输入两次新的密码,然后再来reboot即可顺利修订root密码了!

0 0