20140910V1

20141010V2


一、 Linux基础入门和架构了解

          1)Linux操作系统

                 1B=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB

                 操作系统(OS)用于管理与驱动硬件; 内核kernal

                 shell调度内核

                 1971~1973 Bell实验室的KenThompson利用汇编语言写成unix前身,后由DennisRitchie以C程序语言进行改写,称为UNIX

                 1977            BillJoy释出BSD(BerkeleySoftwareDistribution),这些称为UNIXlike

                 1984            AndrewTannenbaum制作出Minix操作系统,同年RichardStallman提倡GNU项目,并规范出GPL授权模式

                 1991,芬兰人LinuxTorvalds开发出Linux系统,GNU软件开发团队

                 Linux distributions是"Linux Kernel + Free Software + Documentations(Tools) + 可完全安装的程序"


          2)Linux根文件系统

                  /boot /dev /dev /etc /home /root /lib /media /mnt /opt /proc /sys /tmp /vrp

                      

          3)shell概念

                 什么是shell: 用户使用 shell——>内核——>硬件

                 认识bash: BourneSHell(sh)、sun里默认的CSHell,商业上常用的KSHell,还有TCSH

                 Bourne Again Shell(bash)这个shell是BourneShell的增强版本

                 操作系统有多少可以使用shell,可以检查/etc/shells这个文件   

                 type  [-tpa] name

                 -t : file 外部命令 alias 别名所设置的命令 builtin 表示bash内置功能命令 


二、 Linux命令使用和管理

          1)基本命令深入讲解

                 首先命令登入的样式:[用户名@主机名 ~]$ ,其中~是变量,当前所在目录,而$则是用户账户提示符,#为root账户提示符。

                 命令执行格式: command [-options] parameter1 parameter2……

                 基础命令:  date 显示日期,修改日期

                                      cal   显示日历

                                       bc    简单好用的计算器

                 重要的热键: [Tab],[Ctrl]+c,[Ctrl]+d   

                 查询功能说明:man,info,--help

                 超简单文本编辑器:nano

                 正确关机方法: 1. 查看系统使用状态 who, netstat -a, ps -aux

                                                 2. 将数据同步写入硬盘 sync

                                                 3. 惯用关机命令 shutdown

                                                      重启、关机 reboot halt poweroff

                  切换执行等级:init                                                      

          2)用户权限及权限管理详解

                 linux文件属性

                 文件权限 连接数 文件所属用户组 文件大小 文件最后被修改时间 文件名 

                 系统语言配置文件位置: /etc/sysconfig/i18n

                 目录文件权限意义:rxw 4 2 1                  

                 chmod chown chgrp  eg:chmod (u g o a) (+ - =) (rwx) 文件or目录

                 Linux的账号与用户组:uid gid                  

                 用户组类别: 管理组 普通用户组                  

                 私有组 基本组 附加组

                 用户与用户组                 

                 存放账号路径 /etc/passwd 存放密码路径/etc/shadow

                  useradd userdel

                  passwd usermod

                  acl

                  su

                  sudo

                  查询用户: w who last lastlog

                  用户对谈: write mesg wall

             3)常用文件管理命令

                  文件种类与扩展名:文件种类 普通文件(-)( 纯文本文件 二进制文件 数据格式文件)

                                                                             目录(d)                 

                                                                             连接文件(l) 

                                                                             设备与设备文件(b)( c )

                                                                             套接字(s)

                                                                             管道(p)

                                                           Linux文件扩展名 Linux扩展名没有真正意义,只是用于帮助了解,

                                                                                            Ext2/3文件系统时,单一文件名长度为255个字符,包含完整路径名的文件名为4096字符                                                          

                  Linux目录配置标准:FHS(Filesystem Hierarchy Standard)                                   

                  相对路径 从根目录开始的路径

                  绝对路径

                  pwd显示路径 cd切换路径 ls列出文件

                  mkdir创建目录 rmdir删除目录

                  umask 

                  chattr lsattr

                  SUID SGID SBIT                   

                  file查看文件属性

                  文件查找 where  whereis

                                     locate

                                     find [PATH] [option] [action]      1. 与时间有关的参数:-atime -ctime -mtime

                                                                                              2. 与用户或用户组有关的参数:-uid -gid -user -group -nouser -nogroup

                                                                                              3. 与文件权限及名称有关的参数:-name -size -type -perm

                                                                                              4. 其他可进行的操作:-exec -print                                             

                 rm删除文件 mv移动文件 cp复制文件 touch创建文件

                 文本处理命令:   cat more less head tail 

        文本编辑器:   vi vim

        VIM按键说明: 第一部分 一般模式

                                               h光标左移一个字符,j光标下移一个字符,k光标上移一个字符,l光标右移一个字符

                                               [crtl]+f 相当于page down [crtl]+b 相当于page down

                                               [crtl]+d屏幕向下移动半页 [crtl]+u 屏幕向上移动半页

                                               n<space>

                                               0或功能键home移动到这一行最前面  $或功能键end移动到这一行最后面                                              

                                               H光标移动到屏幕上方第一个字符 M光标移动到屏幕中央行第一个字符 L光标移动到屏幕下方第一个字符 

                                               G移动到这个文件最后一行 nG移动到这个文件第n行 gg移动到第一行 N[enter]光标向下移动n行

                                               /word向下寻找word字符串 ?word向上寻找word字符串 n继续向下查找 N继续向上查找

                                               :n1,n2s/word1/word2/g 在n1行到n2行中间查找word1字符串替换为word2

                                               :1,$s/word1/word2/g     从第一行到最后一行中查找word1字符串并替换为word2

                                               :1,$s/word1/word2/gc   从第一行到最后一行中查找word1字符串并替换为word2。替换前提示用户确认。

                                               x  向后删除一个字符                X向前删除一个字符                                      nx连续向后删除n个字符 

                                               dd删除光标所在那一行           ndd删除光标所在向下n行                           d1G删除光标所在到第一行所有数据

                                               dG删除光标到最后一行数据 d$删除从光标所在到该行行尾所有数据 d0删除从光标所在到该行最前面所有数据

                                               yy复制光标所在的那一行       nyy复制光标所在向下n行                            y1G复制光标所在行到第n行数据

                                               yG复制光标到最后一行数据  y$复制从光标所在到该行行尾所有数据 y0复制从光标所在到该行最前面所有数据

                                               p将已复制数据贴在下一行    P将已经复制数据贴在上一行

                                               j将光标所在行与下一行数据结合成一行 c重复删除多个数据,例如[10cj] 

                                               u撤销上一次操作 [ctrl]+r重做上一次操作 .重复前一个操作

                     第二部分 编辑模式

                                               i,I        进入插入模式,从光标所在开始插入

                                               a,A     进入插入模式,从光标所在下一个字符开始插入   

                                               o,O     进入插入模式,从光标所在的下一行开始插入

                                               r,R      进入替换模式,只会替换光标所在的那一个字符

                     第三部分 命令行模式   

                     :w   保存           ZZ                   没有改动,不保存离开;改动了,保存离开                         

                     :w!  强制保存       :w [filename]        将编辑的文件保存成另一个文件                 

                     :q   离开           :r [filename]        将编辑的数据读入另一文件

                     :q!  强制离开       :n1,n2 w [filename]  将n1到n2数据保存成filename

                     :wq  保存后离开     :! Command           暂时离开vi到命令行执行command的显示结果   

                     :set nu   设置行号 

                     :set nonu 取消行号

        vim被编辑时,会生成一个swp文件,如果有人已经在编辑,或不正常关闭,会有提示告警。

                 vim块选择工具(visual block)

                                               v字符选择,光标经过地方反白 V行选择,光标经过的行反白 [ctrl]+v块选择,可以用长方形方式选择数据

                                               y将反白地方复制起来                  d将反白地方删除

                  多文本编辑       :n编辑下一个文件                         :N上一个文件                                :files列出目前这个vim打开所有文件

                  多窗口功能       :sp [filename]打开一个新窗口    [ctrl]+w+(jkq)

                  vim环境设置与记录: ~/.vimrc , ~/.viminfo记录vim操作记录


            3) bashshell深入了解                   

                 bash shell的功能:    

                 1. [Tab]按一次为命令补全,按两次显示所有命令

                 2. alias        

                 3. histoy,记录存放在/.bash_history中

                     命令历史使用技巧 !n !-n !! ![string] ;ctrl+r搜索历史命令

                 4. 作业控制、前台、后台控制(job control,foreground,background)

                 5. 程序脚本(shell script)

                 6. 通配符(wildcard)

                 shell的环境变量: 

                 echo unset

                 变量的设置规则:1.  变量与变量内容以一个“=”连接,如 myname=Vbird

                                                     2.  等号两边不能直接接空格符

                                                     3.  变量名称不能以数字开头 

                                                     4.  变量内容若有空格字符,可以使用双引号(能保有特殊字符原有特性)or单引号将变量内容结合起来

                                                     5.  可用转义字符 \ 

                                                     6.  在一串命令中需要其他命令提供信息使用“`` ,$”,如version=$(uname -r),再echo $version

                                                     7.  为了增加变量内容可以这样:PATH="$PATH":/home/bin

                                                     8.  若该变量要在其他子进程执行,则需export PATH

                                                     9.  通常大写字符为系统默认变量,自定义的变量使用小写字符

                                                     10.取消变量方法为:unset 变量名称

                 用evn查看环境变量与常见环境变量说明:

                 HOME 代表用户主文件夹

                 SHELL 目前环境使用的默认shell

                 MISTSIZE 命令历史缓冲区大小

                 MAIL 收信时系统会去读取的邮件信箱文件

                 PATH 命令搜索路径

                 LANG 系统语言环境

                 RANDOM 随机数的变量

                 也用set查看环境变量

                 $本身也是变量,是目前shell的线程代号(PID),?也是变量,是上一个执行命令所回传的值

                 export 自定义变量转成环境变量: export 变量名称

                 影响显示结果的语系变量 locale  ;cat /etc/sysconfig/i18n

                 变量键盘读取、数组与声明:read array declare

                 与文件系统系统及程序的限制关系ulimit: ulimit -a 显示所有限制                 

        变量内容删除、替代及替换: eg: echo "this dirctory is $(pwd)"  ; touch file-$(date +%F-%H%M%S).txt 

         终端机的环境设置:stty,set

                                                          组合按键 ^c终止目前命令 ^d ^m ^s ^q ^u ^z暂停目前命令

                 通配符与特殊符号: 通配符 * ? [] [-] [^]

                                                          特殊符号 # \ | ; ~ $ & ! /

                                                                            > >> < << 

                                                                            '' "" `` 

                                                                            ()中间为子shell的起始与结束 {}中间为命令块的组合

                 数据流重定向: > < >> <<

                 命令执行判断依据: ;      不考虑命令相关性,直接执行

                                                          && 前面命令正确执行接下来命令

                                                          ||   前面命令执行错误接着执行第二条

                 管道命令(pipe): |  

                 选取命令 grep [-acinv] [--color=auto] '查找字符串' filename 

                           cut '分隔字符' filename 一般用法:cut -d '分隔字符' -f fields

        排序命令:        sort

        重复数据显示一遍:uniq

        文字统计:        wc

        双向重定向: tee

                 字符转换命令 : tr,col,join,paste,expand

                 切割命令:split [-bl] file prefix         eg:split -b 300k /etc/tmermcap termcap

                 参数代换:xargs

                 关于减号-的用途                                                        


          4)grep及正则表达式

                 1. 正则表达式就是处理字符串的方法

                 2. 特殊符号意义:[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:]

                                                     [:lower:] [:print:] [:punct:] [:upper:] [:space:] [:xdigit:] 

                 3. 基础正则表达式字符

                      ^word word$ \ * [list] [n1-n2] [^list] \{n,m\}

                 4. sed工具

                 5. 扩展正则表达式

                 6. 文件的格式化与相关处理:printf awk

                 7. 文件比较工具

                 8. 文件打印准备

          

          5)运维自动化shell                      

                 脚本格式: shell script 

                   #!/bin/bash

                   #explain

                   path

                   progam 

                  条件判断:  if...then                                                                                                                 

                                       case...esac

                                       fuction                                         

                  循环判断: while do done,until do done

                                      for...do...done

                                      for...do...done

              

三、 Linux磁盘及文件系统管理

              Linux最传统的文件系统使用的是Ext2(现在应该都是Ext3)

            1) 硬盘的组成与分区: 扇区 柱面 

                                                    第一个扇区最重要,里面有硬盘主引导记录(MBR),及分区表(partition table)

              /dev/sd[a-p][1-15]: 为SCSI,SATA,USB,BLASH

              /dev/hd[a-d][1-63]: 为IDE

             * 主分区与扩展分区最多可以有4个(硬盘的限制)

             * 扩展分区最多只能有一个(操作系统限制)

             * 逻辑分区是由扩展分区持续分出来的分区

             * 能够被格式化后作为数据访问的分区为主要分区和逻辑分区,扩展分区无法格式化 

             * 逻辑分区数量依操作系统而不同。Linux系统中,IDE硬盘最多59个逻辑分区(5号~63号),SATA硬盘则是11个逻辑分区(5号~15号)

              2)Ext2系统(Linux second extended file system,Ext2fs)

              indoe: 文件权限与文件属性

              block:  实际数据则放置到data block,另还有一个超级superblock记录整个文件系统的整体信息

              dumper2fs [-bh] 设备文件名

              ext2文件系统示意图

启动扇区 

Boot sector Block group1 Block group2 Block group3 Block groupn...

              inodetable(inode表格),superblock(超级块)             

              ext2/ext3 文件的访问与日志文件系统的功能 

              3)文件系统的简单操作

              df du

              连接文件ln:  ln -s 源文件 目标文件

              4)新增一块硬盘: 磁盘分区、格式化、检验与挂载

              fdisk,mkfs mke2fs,fsck badblocks, mount

              fdisk -l 设备名称

              fdisk 设备名 ==>接着出现如下行

              command(m for help): 【输入m】 (d删除一个分区 n新增一个分区 p在屏幕上显示分区表 q离开 w保存)

              partprobe (强制让内核重新找一次分区表)


              mkfs -t ext3 设备名

              fsck

              mkdir 

              mount 

             

              5)  设置开机挂载/etc/fstab 及/etc/mtab ;特殊设备loop


              6)  内存交换空间swap


              7)  Linux常见压缩命令: compress; gzip zcat; bzip2 bzcat; tar

                       compress压缩文件 *.z; gzip压缩文件          *.gz;   bzip2压缩文件         *.bz2; 

                       tar打包文件               *.tar;  经过gzip压缩后打包文件 *.tar.gz; 经过bzip2压缩后打包文件 *.tar.bz2

              8)  完整备份工具: dump restore 

              9)  光盘写入工具: mkisofs cdrecord

              10)其他常见的压缩与备份工具: dd cpio 


四、 企业级yum软件管理

       rpm

       yum 本地yum平台搭建     

                   联网yum搭建

 

五、 Linux使用管理和进程管理

      1)Quota      

      2)raid 

      3)lvm:


      4)crontab: 分 时 日 月 周


      5)进程管理:ps

                ps -l显示的数据  F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

                ps aux显示的数据 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

                top

                pstree

                kill


      6)系统资源查看:free uname uptime netstat dmesg vmstat


      7)/proc


      8)SELinux


      9)系统服务 daemons 

         stand_alone

         super daemon 

         daemon的工作形态类型:signal-control interval-control 

         daemon的启动脚本及配置文件位置: /etc/init.d/* 启动脚本放置处

                                                                                             /etc/sysconfig/* 各服务的初始化环境配置文件

                                                                                             /etc/xinted.conf,/etc/xinetd.d/* super daemon配置文件

                                                                                             /etc/* 各服务各自的配置文件

                                                                                             /var/lib/*   各服务产生的数据库

                                                                                             /var/run* 各服务的程序的PID记录处

                     standalone的启动方式:

                     superdaemon的启动方式: 

                     解析super daemon的配置文件: 默认配置文件 xinetd.conf

                                                                                     =

                                                                                     +=  

                                                                                     -=

          /etc/hosts.allow,/etc/hosts.deny管理

          TCP Wrappers特殊功能

          chkconfig:管理系统服务默认开机启动与否

                     chkconfig --list [服务名称]

                     chkconfig [--level [0123456]] [服务名称] [on|off]     

              

      10)日志与分析

                    常见的日志文件: /var/log/cron

                                                         /var/log/dmesg

                                                         /var/log/lastlog

                                                         /var/log/maillog或/var/log/mail/*

                                                         /var/log/messages

                                                         /var/log/secure

                                                         /var/log/wtmp,/var/log/faillog

                                                         /var/log/httpd/*,/var/log/news/*,/var/log/samba/*

                   日志服务所需相关服务daemon与进程: syslogd    主要登录系统与网络等服务的信息

                                                                                                 klogd       主要登录内核产生的各项信息

                                                                                                 logrotate 主要进行日志文件的轮替功能

                    syslogd:记录日志文件的服务

                    syslogd的配置文件 /etc/syslog.conf               

                                                        服务名称[.=!]信息等级 信息记录的文件名或设备或主机


                    logrotate

                    logwatch


      11)每周系统备份的脚本    


六、 Linux系统管理员

          1) 启动流程、管理模块与loader    

           Linux系统启动过程:1 加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备

                                                    2 读取并执行第一个启动设备内MBR的boot Loader(即是grub,spfdisk等程序)

                                                    3 依据boot loader的设置加载kernel,kernel会开始检测硬件与加载驱动程序

                                                    4 在硬件驱动成功后,Kernel会主动调用init进程,而init会取得run-level信息

                                                    5 init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境

                                                    6 init执行run-level的各个服务启动(script方式)

                                                    7 init执行/etc/rc.d/rc.local文件

                                                    8 init执行终端机模拟程序mingetty来启动login进程,最后就等待用户登录


七、 Linux精简系统和内核管理裁剪

      kernel

      grub