Linux操作系统原理及应用

1、 Linux概述
什么是Linux
     简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 Linux最早由一位名叫芬兰人林纳斯•托瓦兹(Linus Torvalds)的计算机爱好者开发,他的目的是设计一个代替Minix的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能。 
     Linux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。
     Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改和无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。
2、  Linux系统的主要特点
开放性:指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。
多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。
多任务:它是指计算机同时执行多个程序,而且各个程序的运行互相独立。
良好的用户界面 :Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界面是基于文本的命令行界面,即shell。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。系统调用给用户提供编程时使用的界面,用户可以在编程时直接使用系统提供的系统调用命令,系统通过这个界面为用户程序提供低级、高效率的服务。
设备独立性:是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力。
提供了丰富的网络功能: Linux 内置了很丰富的免费的网络服务器软件、数据库和网页的开发工具,如Apache、Qmail、VsFtp、SSH、MySQL 、PHP和JSP等。近年来,越来越多的企业在Linux下建立了企业的网络服务器。
可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。
良好的可移植性:是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。
3、  Linux系统的组成
LINUX的内核:内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
LINUX SHELL: Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。Shell也有多种不同的版本,如Bash、Korn shell、C shell等。
LINUX文件系统: Linux文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种文件系统,如EXT2、EXT3、VFAT、ISO9660、NFS、SMB等。
LINUX应用系统:标准的Linux系统都有一整套称为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。
4、  Linux系统的主要版本
Linux发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。
1.Red Hat Linux:国内,乃至是全世界的Linux用户所最熟悉、最耳闻能详的发行 版。目前Red Hat分为两个系列:由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux,及由社区研发的免费的Fedora Core。
2.Debian GNU/Linux:Debian或者称Debian系列,包括Debian和Ubuntu等。 Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。
3.

SUSE是德国最著名的Linux发行版,在全世界范围中也享有较高的声誉。SUSE自主研发的软件包管理系统YaST也大受好评。SUSE于2003年年末被Novell收购。
4.

Ubuntu 严格来说不能算一个独立的发行版本, 是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。
5.

Turbolinux简单易用的图形安装程序;友好的图形界面;丰富的软件包;提供了完整的源代码程序。
6.其他:
SlackWare、 OpenLinux 、BluePoint、RedFlag、Centos …  
常用的Linux版本:
redhat 9.0、REHL(Red Hat Enterprise Linux)AS4.0、AS5.0、AS5.2、AS5.3、AS5.5、Turbolinux10.5、11.2、SUSE9、10
5、  Linux系统的安装流程(以redhat为例)
1、把准备好的Linux 光盘放入光盘驱动器,重新启动服务器,光盘自动运行如下图:图中提示选择安装 “图形界面操作模式” 或 “文本操作模式”,直接Enter开始安装。
2、选择右侧的skip按钮,跳过对光盘介质的扫描检测。
3、选择安装过程中的语言为英语,跟根你自已的不同选取语言,默认为英语。
4、选择键盘类型为美国英语。
5、分区方式有两种:自动分区和手动分区。使用自动分区的话,那么所有的分区都会放在根目录上。若使用手动分区,则要创建独立的/、swap、home等分区。Swap分区一般设为内存的2倍。
6、设置启动菜单名称,直接点击下一步即可。
7、设置网络连接。点击“Edit”按钮。输入IP地址和子网掩码。
8、选择“Enable firewall”,即启用防火墙。
9、选择安装好之后的操作系统语言是英语,(英语兼容性更好亦可显示中文),但你要选上中文的编码的语言包。
10、选择时区为“Asia/Shanghai”。
11、输入root密码。
12、选择安装软件列表。这里务必选择Customize自定义方式,否则安装程序会安装不必要的图形界面,并占用数GB的磁盘空间。因为这里做为服务器用的,如果你有不同,可以按你要求选取安装。
13、选择所需的软件包,点击下一步开始安装。
14、安装完成,光盘会被自动弹出,点击Reboot重新启动服务器。
6、  Linux系统的开机启动流程
一、加载BIOS
        打开电源,主机首先加载Bios,检测硬件的信息,了解整个系统硬件的状态,如cpu、内存、显卡等。
二、读取MBR
        硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,可里面却存放了预启动信息、分区表信息。系统将其复制到内存。
三、Boot Loader
        Boot Loader 就是在操作系统内核运行之前运行的一段小程序。Boot Loader有若干种,其中Grub和Lilo是常见的Loader。系统读取内存中的grub配置信息(grub.conf),并依照此配置信息来选择启动不同的操作系统。
四、加载内核
              根据grub设定的内核映像所在路径,系统读取内核映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。
五、init依据/etc/inittab文件来设定运行等级
            内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,来设定linux运行级别。 Linux的运行等级设定如下:
     0:关机 1:单用户模式    2:无网络支持的多用户模式
     3:有网络支持的多用户模式4:保留,未使用
     5:有网络支持有X-Window支持的多用户模式
     6:重新引导系统,即重启
六、init进程执行rc.sysinit
             在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、网络配置(/etc/sysconfig/network)、启动swap分区、根据/etc/fstab挂载所有分区等等。
七、启动内核模块
            依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块
八、执行不同运行级别的脚本程序
            根据运行级别的不同,系统会运行/etc/rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。
九、执行/etc/rc.d/rc.local
          /etc/rc.d/rc.local文件是开机自启动的配置文件。所以,如果需要什么程序开机启动的话,可以写个脚本或命令到这里面。
十、执行/bin/login程序,进入登录状态
             进入login界面,输入用户名和密码,和/etc/passwd、/etc/shadow文件作比较,成功则进入系统,不成功,继续等待输入。
7、  Linux的文件系统
 1、树形目录结构
          文件系统是文件存放在磁盘等存储设备上的组织方法,主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。Linux使用标准的目录结构,在linux安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组织形式,并指定了每个目录的作用和其中存放的文件类型。

/bin:存放二进制可执行命令文件
/dev:存放设备文件。
/etc:系统管理和配置文件
/home:用户主目录的基点。
/lib: 标准程序设计库
/sbin:系统管理命令目录
/tmp:公用的临时文件目录
/root:系统管理员的主目录
/mnt:用于用户临时安装其他文件系统的目录
/proc:虚拟目录,是系统内存的映射。可直接访问这个目录获取系统信息
/var:某些大文件的溢出区,存放例如各种服务的日志文件
/usr:最庞大的目录,会用到应用程序和文件几乎都在这个目录下
2、Linux文件存储的三种权限

权限
普通文件的存取权限
目录的存取权限
r
具有读取文件的权利
能读取文件名称
w
具有写入文件的权利
能建立和删除文件,可以改变文件名
x
具有执行文件的权利
能使用该目录下的文件(如cd命令)搜索文件等
Linux存储文件的三种用户类型

用户类型
说明
owner
文件的属主(拥有者)
group
用户组内成员
other
其他用户(非owner和非group)
3、文件权限的修改方法
       chmod  【用户类型+权限类型】  文件名
       例如:chmod  o+x 文件名  对属主用户加执行权限
                    chmod  a+rwx  文件名  a表示所有用户加读、写、执行权限
       chmod   【权限表示的二进制数字】文件名
       -rw------- (600) 只有所有者才有读和写的权限
       -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限   
       -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限 
      -rw-rw-rw- (666) 每个人都有读写的权限
      -rwxrwxrwx (777) 每个人都有读写和执行的权限 
8、  Linux的常用命令
    1、 shutdown 命令安全地将系统关机。
    2、halt----最简单的关机命令
         其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。
    3、reboot
         reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它的参数与halt相差不多。
     4、init
         init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown 就是使用这种机制。
      5、Ctrl+Alt+Del键重启系统。
      6、ps  显示使用终端有关的进程信息
            ps –u 用户名 显示某用户的进程(如ps -u abc)
            ps –e 显示所有正在运行的进程信息
            ps –f  长列表显示每个进程信息
            ps -ef  长列表显示每个正在运行的进程信息
    7、kill 命令杀掉后台进程
         kill 进程号
         kill -9 进程号 强制杀掉进程
    8、df  查看磁盘剩余空间
           df  -h
    9、du  显示指定的目录或文件所占用的磁盘空间。
           du -h
   10、 fsck 用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。
     fsck的命令格式如下 :
                 fsck [-aANrsTV][-t  fstype][filesys...]
     -a   自动修复文件系统,不询问任何问题。
    -A   依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统。
    -N   不执行指令,仅列出实际执行会进行的动作
    -r   采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。
    -s   依序执行检查作业,而非同时执行。
    -t   指定要检查的文件系统类型。
    -T   执行fsck指令时,不显示标题信息。
    -V   显示指令执行过程。
   11、查看系统信息
    cat  /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
    cat  /proc/ioports - 设备IO端口
    cat  /proc/meminfo - 内存信息(i.e. mem used, free, swap size)
    cat  /proc/partitions - 所有设备的所有分区
    cat  /proc/swaps - 所有Swap分区的信息 相当于swapon -s
    cat  /proc/version - Linux的版本号 相当于 uname -a
    uname -r - 看系统内核等信息
   12、查看系统日志
     cat /var/log/messages 系统启动后的信息和错误日志
     cat /var/log/secure      与安全相关的日志信息
9、 Linux常用工具和实用程序
    1、vi 编辑器
     vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器, 
 基本上vi可以分为两种状态,分别是命令模式(command mode)、插入模式(Insert mode) 。 按Esc可切换模式。
           vi 文件名    对文件 进行编辑
             a 将在光标所在位置之后插入文本(append)
            A 将在光标所在行末插入文本
            i将在光标所在位置之前插入文本(insert)
            I将在光标所在行的第一个非空字符前插入文本
    
    2、find命令    在指定目录及其子目录下查找符合条件的特定文件。
        命令格式:find  目录  文件名
    3、 tar命令
       tar -xvf  *.tar  解压tar包     tar -cvf   *.tar 目录   打成tar 包
       tar zcvf  *.tar.gz 文件名   打包命令
       tar zxvf  *.tar.gz                解压包命令
   4、unzip命令
         unzip *.zip 解压Windows 下的zip压缩软件
   5、mount命令
        mount /dev/hdd /cdrom /mnt/cdrom 挂载光驱  
   6、scp命令
     scp –r  /downloads/*  username@IP:/uploads/   把本机目录 /downloads 的内容传输到远程机器上的 uploads 目录.
   7、top命令 实时显示 process 的动态
   8、rpm命令
         rpm –ivh      安装一个包
         rpm –Uvh    升级一个包
         rpm –e         移走一个包
         rpm –q         查询一个包是否被安装
    安装参数
     --force 即使覆盖属于其它包的文件也强迫安装 
       







你可能感兴趣的:(linux/Unix)