设为首页 收藏本站
查看: 2689|回复: 0

[经验分享] RHCE学习笔记

[复制链接]

尚未签到

发表于 2015-4-18 10:05:51 | 显示全部楼层 |阅读模式
  命令行编辑的几个辅助操作




  Tab键:自动补齐



  反斜杠“\”:强制换行



  快捷键 Ctrl+U:清空至行首



  快捷键 Ctrl+K:清空至行



  快捷键 Ctrl+L:清屏



  快捷键 Ctrl+C:取消本次命令编辑



  ·上述快捷键操作中一般使用小写字母(大小字母效果也相同)



  ·Ctrl+L快捷键操作相当于内部命令“clear”的功能



  ·Ctrl+C快捷键实际起中断的作用,还可以用于中止前台程序的运行



目录操作命令 —— ls







ls命令



  用途:列表(List)显示目录内容



  格式:ls  [选项]...  [目录或文件名]



  常用命令选项



  -l :以长格式显示



  -a:显示所有子目录和文件的信息,包括隐藏文件



  -d:显示目录本身的属性



  -A:类似于“-a”,但不显示“.”和“..”目录的信息



  -h:以更易读的字节单位(K、M等)显示信息



  -R:递归显示内容



  --color:以颜色区分不同类型文件



目录操作命令 —— du



  

文件系统——df

     常用格式 df -hT



file命令

  用途:查看文件类型

  格式: file  文件名…



文件操作命令 —— find

  find命令

  用途:用于查找文件或目录
  格式:find  [查找范围]  [查找条件]
  常用查找条件
    -name:按文件名称查找
    -size:按文件大小查找
    -user:按文件属主查找
    -type:按文件类型查找
                      -print : 打印查找结果


  

  例:

       find / -name httpd.conf



  Bash的命令历史
  保存用户曾经执行过的命令操作
  存放位置:~/.bash_history 文件
  查看历史命令
  history
目录 文件
  文件权限前的第一个字母用来标识文件类型:
  -:一般文件
  d:目录文件
  b:块设备文件
  c:字符设备文件
  l:链接文件
  p:人工管道


  文件权限系统,将操作文件的用户都分成三类
  文件的拥有者(u)
  文件所属组的成员(g)
  其他用户(o)
  读(r)4 :用户是否有权力读文件的内容
  写(w)2 :用户是否有权利改变文件的内容
  执行(x)1 :用户是否有权利执行文件


  目录权限
       目录的读权限位意味着可以列出其中的内容。写权限位意味着可以在该目录中创建文件,如果不希望其他用户在你的目录中创建文件,可以取消相应的写权限位。执行权限位则意味着搜索和访问该目录。如下图所示:
  
  ____________________________________________________________________
|                r                           |                     w               |                  x            |
-------------------------------------------------------------------------------------------------------------
| 可列出目录中的文件   | 可在目录中删除或建立文件   |     可搜索或进入目录     |
-------------------------------------------------------------------------------------------------------------
  如果把同组用户或其他用户针对某一目录的权限设置为- - x,那么他们将无法列出该目录中的文件。如果该目录中有一个执行位置位的脚本或程序,只要用户知道它的路径和文件名,仍然可以执行它。用户不能够进入该目录并不妨碍他执行该目录中的文件。
  [kevinz@stationXX kevinz] $ ls –il ( 显示file1和file2的属性)
4029     -rw-r--r–  2         root          root          0         Jul 25 16:13   file1
inode号  权限        硬链接数  文件的拥有者  文件的拥有组  文件大小  最后修改时间   文件名
  find
  find 是我们最常用的文件查找工具,相比slocat 而言它有纪实性的优点,语法如下:
  find  [路径]  [参数]   [表达式]             例如:
  [kevinz@stationXX kevinz] $ find       /usr/share/doc       -name        filename
                                       命令     路径                     参数           表达式
  find的常用find参数如下:
  -user:根据文件拥有者寻找文件
  -group:根据文件所属组寻找文件
  -name:根据文件名寻找文件
  -perm:根据文件权限寻找文件
  -size:根据文件大小寻找文件
       -size +1M     大于1M的文件
       -size -10M    小于10M的文件
  -type:根据文件类型寻找文件,参数对应c、b、l、f、d
       f     查找的文件类型为文件
       d     目录
  -type    b/d/c/p/l/f         #查是块设备、目录、字符设备、管道、符号链接、普通文件
  find的表达式使用通配符时需要使用“”圈界。例如:
  [kevinz@stationXX kevinz] $ find . –name “*.html”
  find 操作找到的文件
  当使用-exec 指令时,{} \ ; 必须一同添加 例如:
  [kevinz@stationXX kevinz] $find . –exec ls  {} \;
  当操作指令需要征询用户意见,可以添加-ok自动回答‘是’ 例如:
  [kevinz@stationXX kevinz] $find . –ok rm {} \;
  添加用户帐号
       useradd命令
  格式:useradd  [选项]...  用户名
  常用命令选项
    -u:指定 UID 标记号
    -d:指定宿主目录,缺省为 /home/用户名
    -e:指定帐号失效时间
    -g:指定用户的基本组名(或UID号)
    -G:指定用户的附加组名(或GID号)
    -M:不为用户建立并初始化宿主目录
    -s:指定用户的登录Shell
  用户帐号的初始配置文件
  ~/.bash_profile:用户每次登录时执行
  ~/.bashrc:每次进入新的Bash环境时执行
  ~/.bash_logout:用户每次退出登录时执行
  
  修改用户帐号的属性
  usermod命令
  格式:usermod  [选项]...  用户名
  常用命令选项
  -l:更改用户帐号的登录名称
  -L:锁定用户账户
  -U:解锁用户账户
  以下选项与useradd命令中的含义相同
  -u、-d、-e、-g、-G、-s
  删除用户帐号
  格式:userdel  [-r]  用户名
  添加 -r 选项时,表示连用户的宿主目录一并删除
  useradd 增加用户
userdel  删除用户
usermod  修改用户
groupadd  增加组
groupdel  删除组
groupmod  修改组
passwd   设置密码
chpasswd  用文件配置修改密码
  更该文件的所有权
  改变文件的所有权命令chown
  改变用户分组命令chgrp
  改变文件属性命令chmod
  修改密码的有效期
  chage命令
  格式:chage [选项]...  用户帐号名
  常用命令选项
  -m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
  -M 密码保持有效的最大天数。
  -W 用户密码到期前,提前收到警告信息的天数。
  -E 帐号到期的日期。过了这天,此帐号将不可用。
  -d 上一次更改的日期
  -i 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
  -l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
  文件的权限和SetUID,SetGID
  文件是通过SetUID位和SetGID位来控制访问权限的。
  SetUID位的作用是通过二进制位进行设置的方法使程序按照其所有者的访问权限运行,不再受运行它的用户的访问权限的限制。
  当用户运行一个应用程序的时候,这个程序将继承该用户所具有的全部权利(或者限制)。用户不能够读取这个文件,那么他运行的程序也不能读取该文件。这个权限可能会与该程序文件(通常叫做二进制文件)所有者所具有的权限有所不同。
  例如:ls程序是归根用户所有的,它的访问权限被设置为每一个用户都能够执行,某用户young运行了ls命令,限制这份ls命令的是分配给用户young的访问权限而不是根用户。
  如果把一个执行程序的SetUID位设置为on,并且让这个命令的二进制文件归属于根用户,那么就意味着如果用户young运行这个命令,这命令就是以根用户的访问权限运行的,不再受到用户young访问权限的限制。
  SetGID位的是作用于文件用户分组的设置情况
       如果SGID是设定在目录上面,则在该目录内所建立的文件或目录的所属组,将会自动     成为此目录的所属组。
  如果想激活SetUID或者SetGID位,需要使用chmod命令
  如果想把某个程序设置为SetUID状态,在打算分配给它的访问权限数值前面加上一个数字4 , 或者把所有者的可执行权限x改为s. chmod u+s ./file
  如果想把某个程序设置为SetGID状态,在打算分配给它的访问权限数值前面加上一个数字2 , 或者把所属组的可执行权限x改为s. chmod g+s ./file
  # chmod 4755 /bin/ls
  文件的粘滞位(Sticky bit)
                 -t
                 作用:
                      为公共目录(例如,权限为777的)设置,权限字符为“t”
                       用户不能删除该目录中其他用户的文件
                 chmod a+t aa.bat
  如果用户对目录有写权限,则可以删除其中的文件和子目录,即使该用户不是这些文件的所有者,而且也没有读或写许可。粘着位出现执行许可的位置上,用t表示,设置了该位后,其它用户就不可以删除不属于他的文件和目录。但是该目录下的目录不继承该权限,要再设置才可使用。
  
  文件ACL权限 用于针对单一使用者,单一文件或目录来进行r,w,x的权限规范.
       查看:
       $ getfacl filename
       修改 :
         $ setfacl -m u:username:rw filename
         $ setfacl -m g:groupname:rw filename
       删除 :
         $ setfacl -x u:username filename
  
  启动服务(httpd, vsfptd等)
       service XXX start     启动服务
                        stop     停止服务
                        restart  重启服务
实现服务开机启动
       chkconfig XXX on/off
  设置文件系统的自动挂载
       /etc/fstab配置文件
       包含了需要开机后自动挂载的文件系统记录
       [iyunv@localhost ~]# vi  /etc/fstab
       设备位置                              挂载点     文件系统类型                     开机是否检测         优先级
                                                                                                      磁盘错误               (默认为0)
                                                                                                      (1:检测 0:不检测)
       /dev/VolGroup00/LogVol00       /             ext4      defaults                 0                         0
  UUID=硬盘的UUID号                        /boot         
       (设备位置建议使用UUID号)
  Linux 定时任务
       命令:     at
       用于在制定的时间点一次性的执行命令.
       打开at服务:
            service atd start
       at 23:45
       at> shutdown -h now     此处输入要执行的命令
       完成按ctrl + d 结束
       命令:      crontab
  使用权限: root用户和crontab文件的所有者
  crontab格式语法:
  crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
  命令行中-r选项的作用是从/usr/spool/cron/crontabs目录下删除用户定义的文件crontab;
  命令行中-l选项的作用是显示用户crontab文件的内容。
  使用命令crontab -e命令编辑当前用户user的cron(c)作业。
  使用命令crontab -u user -e命令编辑用户user的cron(c)作业。用户通过编辑文件来增加或修改任何作业请求。
  执行命令crontab -u user -r即可删除当前用户的所有的cron作业。
  
  用户crontab文件的基本格式 :
  *  *  *  *  *  command
  分  时   日  月   周   命令
  第1列表示分钟1~59 每分钟用*或者 */1表示
  第2列表示小时1~23(0表示0点)
  第3列表示日期1~31
  第4列表示月份1~12
  第5列标识号星期0~6(0表示星期天)
  第6列要运行的命令
DSC0000.png
  crontab文件的一些例子:
    30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每晚的21:30重启apache。
  
  Find命令的使用
  exec选项:
  -exec:对搜索的结构指令指定的shell命令。注意格式要正确:"-exec 命令 {} \;"
  在}和\之间一定要有空格才行;
  {}表示命令的参数即为所找到的文件;命令的末尾必须以“ \;”结束。
  find命令指令实例:
  find . - name ‘main*’ - exec more {} \;
  文件内容操作命令—— grep
  用途:在文件中查找并显示包含指定字符串的行
  格式:grep  [选项]...  查找条件  目标文件
  常用命令选项
  -i:查找时忽略大小写
  -v:反转查找,输出与查找条件不相符的行
  查找条件设置
  要查找的字符串以双引号括起来
  “^……”表示以……开头,“……$”表示以……结尾
  “^$”表示空行
  基本的正则表达式

d文字:字母 “d”dog
*修饰符:前一个字符出现零次或多次hel*o
.通配符:任意单个字符test.txt
[]通配符:集合中的任意单个字符file[1234]
[^]通配符:不在集合中的任意单个字符file[^0-9]
^定位点:行首^test
$定位点:行尾test$
.*.(任一字符)与*(零或以上)的组合^test.*123
\将下一个字符视为文字test\.$
\                    alove glove
  
  归档及压缩命令 —— tar
                  tar命令
    用途:制作归档文件、释放归档文件
    格式:tar  [选项]...  归档文件名  源文件或目录
             tar  [选项]...  归档文件名  [-C 目标目录]
  常用命令选项
      -c:创建 .tar 格式的包文件
      -x:解开.tar格式的包文件
      -v:输出详细信息
      -f:表示使用归档文件
      -p:打包时保留原始文件及目录的权限
      -t:列表查看包内的文件
      -C:解包时指定释放的目标文件夹
      -z:调用gzip程序进行压缩或解压
      -j:调用bzip2程序进行压缩或解压
  制作压缩包文件
         tar jcf test.tar.bz2 /etc/httpd/
释放压缩包文件
         tar jxf test.tar.bz2 -C /
  系统监视
          uname:显示系统信息
  hostname:显示主机名
  last:列出最近的用户登录
  lastlog:列出每一个用户的最近登录情况
  free:显示内存使用状况
  top:系统监视器
查询进程的指令:
  ps  [option]
  pstree可以用来以树状的方式表现进程的父子关系
  top是一个常用的系统监视工具。
  
  规划硬盘中的分区
  fdisk命令
  用途:在交互式的操作环境中管理磁盘分区
  格式:fdisk  [磁盘设备]
  fdisk -cu /dev/sdb
  交互模式中的常用指令
    m:查看操作指令的帮助信息
    p:列表查看分区信息
    n:新建分区
    d:删除分区
    t:变更分区类型
    w:保存分区设置并退出
    q:放弃分区设置并退出
在分区中创建文件系统
  将新硬盘分好区以后,还需要对分区进行格式化(即创建文件系统),并挂载到Linux系统中的指定目录下,然后才能用于存储文件、目录等数据
  mkfs命令
       用途:Make Filesystem,创建文件系统(格式化)
       格式:mkfs -t 文件系统类型 分区设备
  -t 的参数如下
       ext4         ext3     ...
       查看RHEL支持的分区类型,可以输入 mkfs. 再两次tab查看.
       mkfs.cramfs     mkfs.ext3     mkfs.ext4dev     mkfs.vfat
       mkfs.ext2        mkfs.ext4     mkfs.msdos
       去掉 mkfs.就是 -t 的参数
  
  mkswap命令
  用途:Make Swap,创建交换文件系统
  格式:mkswap 分区设备
  格式化交换分区     mkswap
    [iyunv@localhost ~]# mkswap /dev/sdb5
    Setting up swapspace version 1, size = 2006929 kB
  启用交换分区     swapon
    [iyunv@localhost ~]# swapon /dev/sdb6
    [iyunv@localhost ~]# free | grep -i swap
    Swap:      3008456          0    3008456
  停用交换分区     swapoff
    [iyunv@localhost ~]# swapoff /dev/sdb6
  查看交换空间     swapon -s
    [iyunv@localhost ~]# swapon -s
  free命令 查看内存
  功能说明:显示内存状态。
  语  法: free [-bkmotV][-s ]
  补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
  参  数:
   -b  以Byte为单位显示内存使用情况。
   -k  以KB为单位显示内存使用情况。
   -m  以MB为单位显示内存使用情况。
   -o  不显示缓冲区调节列。
   -s  持续观察内存使用状况。
   -t  显示内存总和列。
   -V  显示版本信息。
  光盘制作iso镜像
         cp /dev/cdrom /aaa.iso
  挂载光盘镜像
         mount  -o loop  ISO镜像文件  挂载点目录
  通过分区加密启用数据保密
         1.使用fdisk创建新分区
         2. cryptsetup luksFormat /dev/sda7 对新分区进行加密,并设置解密密钥.
      Are you sure Type Uppercase yes :YES
      ENTER LUKS PASSPHRASE:123
      VERIFY PASSPHASE:123
         3. cryptsetup luksOpen  /dev/sda7  test 会将加密的卷/dev/sda7解锁为/dev/mapper/test
         4. 在解密的卷上创建ext4文件系统:
               mkfs  –t  ext4   /dev/mapper/test
         5. 创建目录挂载点,并挂载文件系统:
               mkdir  /test
               mount  /dev/mapper/test   /test
         6. 配置自动挂载
               在.etc/fstab加入如下行
                /dev/mapper/secret /mnt/testsecret ext4  defaults    0 0
  
  逻辑卷LVM
          /boot分区用于存放引导文件,不能应用LVM机制
         LVM机制的基本概念
    PV(Physical Volume,物理卷)
      整个硬盘,或使用fdisk等工具建立的普通分区.包括许多默认4MB大小的PE(Physical Extent,基本单元)
    VG(Volume Group,卷组)
      一个或多个物理卷组合而成的整体
    LV(Logical Volume,逻辑卷)
      从卷组中分割出的一块空间,用于建立文件系统
  LVM的管理命令
    功能            物理卷管理  卷组管理    逻辑卷管理
    Scan    扫描      pvscan     vgscan      lvscan
    Create   建立      pvcreate     vgcreate    lvcreate
    Display     显示       pvdisplay      vgdisplay   lvdisplay
    Remove   删除      pvremove     vgremove   lvremove
    Reduce   缩减               vgreduce   lvreduce
    Extend     扩展               vgextend    lvextend
  主要命令的用法
    pvcreate  设备名
    vgcreate  -s 8M 卷组名  物理卷名1 物理卷名2
    vgextend 卷组名  物理卷名1 物理卷名2
    vgreduce 卷组名  物理卷名1 物理卷名2
    lvcreate   -L  大小  -n  逻辑卷名  卷组名
    lvextend  -L  +大小  /dev/卷组名/逻辑卷名  
    lvreduce –L +大小  /dev/卷组名/逻辑卷名
  准备物理卷
    1.fdisk (type 0x8e linux LVM)
    2.pvcreate /dev/sdb5
       pvcreate /dev/sdb6
       pvcreate /dev/sdb7
  




  创建卷组

    1.vgcreate –s 8M  testvg /dev/sdb5 /dev/sdb6 /dev/sdb7

  创建和使用新逻辑卷
    1.lvcreate –n testlv –l 100 /dev/testvg



    2.mkfs –t ext4 /dev/testvg/testlv
  挂载逻辑卷
    mkdir /testlv
    mount /dev/testvg/testlv /testlv  扩展逻辑卷和ext4文件系统


  ifconfig 查看网络接口信息

       -a 查看所有接口

       eth 第一个以太网卡.



  route   查看主机的路由信息.

  ping  查看网络连通性
            traceroute  测试当前主机到目标主机之间经过的所有网络节点.
          hostname  显示当前主机名称.
          nslookup  可以进行域名的查询.
           ip配置命令
             ifconfig eth0 192.268.0.1     
           设置网关
             route add default gw 192.168.0.154
           主机名设置命令
             hostname server2.example.com
            以上命令即时生效, 重启后丢失


  配置文件设置网络参数
              网络接口的文件位于目录“/etc/sysconfig/network-scripts/”中
              网络接口eth0的配置文件是ifcfg-eth0
  # cat /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0                        设备名
    ONBOOT=yes                        设置网络接口是否在启动时启用
    BOOTPROTO=static               BOOTPROTO用于设置网络接口是配置为静态地址(static)或是配               
                                               置为使用DHCP(dhcp)获得地址
    IPADDR=192.168.152.133      IPADDR用于设置网络接口的ip地址
    NETMASK=255.255.255.0      NETMASK用于设置网络接口的子网掩码
    GATEWAY=192.168.152.2     GATEWAY用于设置网络接口的缺省网关地址
    DNS1=192.168.0.254
  主机名称配置文件
            network文件位于“/etc/sysconfig/”目录中,其中保存了主机的名称配置
  # cat /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=localhost.localdomain  
  在文件“/etc/sysconfig/network”中对HOSTNAME配置项进行配置后,需要重新启动计算机使新设置的主机名生效
            本地主机名称解析文件
            “/etc/hosts”文件保存本地的主机名与ip地址的对应记录
  # cat /etc/hosts
  127.0.0.1               localhost.localdomain localhost
    hosts文件和DNS服务器功能的比较
    在hosts文件中设置主机名称的解析更加灵活,可以立即生效
    hosts文件中的设置内容只在当前的Linux主机中有效,无法作用于整个网络
    hosts文件无法完全取代DNS服务器的作用,只能完成辅助的本地主机名称解析
  域名服务器配置文件
            系统使用的DNS服务器的ip地址保存在“resolv.conf”文件中
  # cat /etc/resolv.conf
  nameserver 192.168.152.2
  文件中最多可以有3个“nameserver”配置记录
  系统会优先使用文件中前面的“nameserver”配置记录
  当前面的DNS服务器无效时系统会自动使用后面的DNS服务器进行域名解析   
  查看ip地址和子网掩码: ip addr(ifconfig)
  /etc/sysconfig/network-scripts/ifcfg-eth0
  查看路由和默认网关:ip route(route)
  /etc/sysconfig/network-scripts/ifcfg-eth0
  查看系统主机名:hostname
  /etc/sysconfig/network
  查看DNS服务器地址:nslookup(host)
  /etc/resolv.conf
  挂载网络文件系统
            NFS( Network File System)
  showmount –e nfsserver.domain
            查询远程主机上共享的目录
            mkdir /remote1
            创建本地挂载点目录
            mount nfsserver.domain:/exported/path /remote1
            挂载远程主机的目录
            开机自动挂载, 在/etc/fstab文件添加
             nfsserver.domain:/exported/path      /remote1     nfs     default 0 0
            文件系统类型为nfs
  自动挂载
          修改/etc/auto.master
            添加
              /server                /etc/auto.server
            挂载点的本地位置     
  创建 /etc/auto.server文件
  public                                 -ro   192.168.0.254:/exported/path
  远程文件(目录)映射到本地的名称     权限    远程文件(目录)的位置
  直接访问/server/public目录
         LDAP网络用户配置
            1.服务器的完全限定主机名
    Instructor.example.com
  2.基础DN,用于搜索用户定义
    dc=example, dc=com
  3.认证机构CA证书,用于签署LDAP服务器的SSL证书
    http://instructor.example.com/pub/EXAMPLE-CA
    安装directory-client软件包,包括sssd、authconfig-gtk、oddjob-mkhomedir
    使用getent passwd username 验证正在使用的账户信息
                      4.网络挂载主目录
                    1.showmount –e nfsserver.domain获取导出的路径
    2.getent passwd username获取所需主目录挂载点
    3.vim  /etc/auto.master 配置间接映射
     /home/guests /etc/auto.guests
    创建/etc/auto.guests 文件,配置共享目录
    ldapuser1 –rw instructor:/home/guests/ldapuser1
    ldapuser2 –rw instructor:/home/guests/ldapuser2
    or
    *  -rw instructor:/home/guests/&
  重新启动服务
    service autofs stop
    service autofs start
  检查硬盘空间
  df 检查硬盘的剩余硬盘空间
  df 文件名
  检查文件所在的磁盘分区的剩余空间
  -h 参数可以使数据更容易阅读.
  du 检查目录下所有子目录的使用空间.
       用法同df
  ls -i 参数可以检视没一个文件所对应的inode 数量
  ln -s 源文件 目标文件 建立软连接.
  ln 源文件 目标文件 建立硬链接.
  VI编辑器进阶
       VI中指令模式下按G切换到最后一行,nG切换到第n行,1G切换到第一行
             go down half a screen
             go up half a screen
       H      go to first line on the screen
       M     go to middle line on the screen
       L      go to last line on the screen           
       z      make current line first line
       z-      make current line last line


filtering

intro: 1.the output of a command can be placed in the file

     the data in the file can be used as input of a command



      !!+     在文件中插入命令的输出结果

        !}sort                 从文件输入再输出到文件.
        !}fmt -w60        从文件输入再输出到.文件.  
  linux中extend mode:search and replace
       sed     search and replace
       替换当前行
            s//
            ex: s/this/that
            这种方式只能替换每行的第一个目标,要替换每行的所有目标用 g;
            ex: s/this/that g
  1,10     替换从第一行到第十行的内容
              ex: 1,10s/this/that
  1,$(or %)       替换从第一行到最后的内容     ,用来区隔从哪里到哪里     $表示到最后
              ex: 1,$s/this/that
  .  表示当前行     .+10表示当前行之后的第十行     .-10表示当前行之前的第十行
         ex: .,.+3s/this/that/g
  advanced reading and saving
         :r file1     read file1 into current file
         :1,20w file2     write line 1through 20 to the file2
         :1,$w file3     write entire file to the file3
         :1,20w>>file4     append lines 1 through 20 to the file4
  vi testvi1 testvi2 testvi3 同时打开3个文件
       多文件操作
            :n     move to the next file     
            :rew     move to the first file
            :n#     jump to the prevous file
  vi Configure
       :set     impotant settings
       :set all     detailed settings
  13 字符串操作
head     tail     wc     命令
uniq \
   vimtutor 关于vim的使用教程.
  NTP服务
            NTP配置文件
    #/etc/ntp .conf
    restrict default kod nomodify notrap nopeer noquery
    restrict -6 default ignore
    restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap nopeer
    restrict 192.168.0.101 kod nomodify notrap
    restrict 192.168.0.2
    server 192.168.0.2
    server 192.168.0.3
                        peer 192.168.0.101
  修改配置文件后, 执行
                        service ntpd restart
              重启ntp服务
  ssh服务
  主要软件包:openssh-server、openssh-clients
  服务名:sshd
  服务端主程序:/usr/sbin/sshd
  客户端主程序:/usr/bin/ssh
  服务端配置文件:/etc/ssh/sshd_config
  客户端配置文件:/etc/ssh/ssh_config
            登录
            ssh student@192.168.0.100
            ssh -l student 192.168.0.100
  构建密钥对验证的SSH登录体系
       生成公钥私钥对
              ssh-keygen -t rsa
       生成的文件
              ~/.ssh/id_rsa           私钥
              ~/.ssh/id_rsa.pub     公钥
       将公钥文件上传至服务器
              ssh-copy-id –i  id_rsa.pub user@remote
  
  配置 VNC 服务
           1.下载tigervnc软件
              yum install tigervnc-server
           2.设置VNC用户密码
             vncpasswd
             3.设置配置文件
              /etc/sysconfig/vncservers
                     VNCSERVERS="1:root 2:student"     此行为连接vnc的用户序号
                     VNCSERVERARGS[1]='-grometry 800x600 -nolisten tcp'
                     VNCSERVERARGS[2]='-grometry 800x600 -nolisten tcp'     连接用户的参数
  客户端用vnc viewer 软件连接
  CentOS6环境 安装pixman, pixman-devel, LibXFtot软件包.
DSC0001.png
  INIT进程
由Linux内核加载运行 /sbin/init 程序
是系统中第一个进程,PID(进程标记)号永远为1
配置文件:/etc/inittab
  /etc/rc.d/rc.sysinit
由init进程调用执行
完成设置网络、主机名、加载文件系统等初始化工作
/etc/rc.d/rc脚本文件
由init进程调用执行
根据指定的运行级别, 加载或终止相应的系统服务
/etc/rc.local脚本文件
由rc脚本调用执行
保存用户定义的需开机后自动执行的命令
  rc.sysinit脚本:是init进程所调用的系统初始化脚本,文件全称是/etc/rc.d/rc.sysinit,rc.sysinit脚本主要完成包括设置网络、主机名、加载文件系统、设置时钟等一系列初始化工作(例如检查并启用磁盘配额功能就是在该脚本中完成的) 。
rc脚本:同样由init进程进行调用,文件全称是/etc/rc.d/rc。rc脚本通过指定不同的级别参数分别加载及终止不同的系统服务,进入到相应的系统运行级别。
rc.local脚本:是一个额外的启动控制文件, 文件全称是/etc/rc.d/rc.local。rc.local脚本通常由rc脚本在最后进行加载,其作用主要是为管理员自行设置启动命令提供一种途径,通常都将一些需要随系统启动的命令和脚本添加到该文件中。
  GRUB启动设置
          /boot/grub/grub.conf:主文件,改grub配置文件,最好直接改该文件。
          常用参数
  default
  这个参数决定了GRUB引导时光标默认停留的引导标签。
  timeout
  这个参数设置的是GRUB的等待时间。
  splashimage
  当进入GRUB引导界面的背景图片,
  title
  其实title就是一个引导标签,可以对title后的文字部分进行修改,使它更加符合我们的使用习惯。
  password
  password参数可以对GRUB设置密码。GRUB的密码设置可分为全局密码和菜单密码。
  使用 grub-md5-crypt 命令可以生成一个MD5加密的密码,使用–md5 选项可以包含这个加密的密码指令
  SELinux 设置
       配置文件: /etc/selinux/config
  SELINUX有「disabled」「permissive」,「enforcing」3种选择。
  Disabled就是禁用SELinux
        permissive就是Selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你的违反的内容记录下来。在我们开发策略的时候非常的有用。
  相当于Debug模式。
  Enforcing就是你违反了策略,你就无法继续操作下去。
  SELINUXTYPE呢,现在主要有2大类,一类就是红帽子开发的targeted,它只是对于,主要的网络服务进行保护,比如 apache ,sendmail, bind,postgresql等,不属于那些domain的就都让他们在unconfined_t里,可导入性高,可用性好但是不能对整体进行保护。
  另一类是Strict,是NAS开发的,能对整个系统进行保护,但是设定复杂,我认为虽然它复杂,但是一些基本的会了,还是可以玩得动的
  常用服务配置
       Web服务器
              Package name = httpd
              Service name = httpd
      Config file = /etc/httpd/conf/httpd.conf
      Document root = /var/www/html
      Home page = index.html
  MySQL的配置
  [iyunv@www ~]# yum install mysql mysql-server
  [iyunv@www ~]# service mysqld start
  [iyunv@www ~]# chkconfig mysqld on
          登录到数据库
            mysql  -u  root
            更改数据库管理员密码
            mysqladmin  -u  root  password  "123456"
  httpd 基于域名的虚拟主机
       在一个物理主机上配置多个www网站
       配置文件: /etc/httpd/conf/httpd.conf     也就是httpd的配置文件
         NameVirtualHost [ip地址]
         
                DocumentRoot 网站文件目录
                ServerName url目录位置
         
  可以更改 /etc/hosts 文件修改dns解析.
  httpd服务的访问控制
       基于客户端地址的访问控制
   Order配置项,定义控制顺序
    先允许后拒绝,默认拒绝所有:Order allow,deny
    先拒绝后允许,默认允许所有:Order deny,allow
  Allow、Deny配置项,设置允许或拒绝的地址
  Deny from address1 address2 …
  Allow from address1 address2 …
  httpd配置文件中添加以下内容
  
        Order allow,deny
        Allow from 192.168.0.0/24
        Deny from 192.168.0.100
  
  注意: 如果设置的是虚拟主机, 那么必须写到虚拟主机的目录里
  
         
          Order allow,deny
          Allow from 192.168.0.0/24
          Deny from 192.168.0.100
         
  
          不是虚拟主机的话,可以在任意位置添加
  使用awstats分析Web日志
     awstats安装步骤
1. 解包至 /usr/local/ 目录
2. 执行安装脚本 awstats_configure.pl
3. 修改 awstats.XXX.conf 配置文件,确认日志位置     (XXX代指域名)
          虚拟主机的日志位置在httpd配置文件中
          默认的日志文件在/var/log/httpd/
4. 创建数据库存放目录,并更新分析数据
5. 设置cron计划任务,以便定时运行日志分析程序
6. 在网页浏览器中查看分析报告
     linux默认的日志分析软件
          webalizer
          配置文件:/etc/webalizer.conf
  测试httpd服务器的性能
  ab命令
  Apache Benchmark,Apache基准测试工具
  格式:ab [-q] -c 并发请求数 -n 总的请求数 [http://]域名[:端口]/路径
  应用示例:
        [iyunv@www ~]# ulimit -n 3600
         [iyunv@www bin]# ab -q -c 2000 -n 4000 http://www.example.com/
  ab测试工具为httpd服务自带的工具,结合使用-q选项时,将不显示测试进度信息
  当测试的目标是Web站点的根路径时,注意最后的“/”符号不能省略。指定的并发请求数不能小于总的请求数
  测试目标最后的路径(例如“/”)不能少,否则执行将出错
  切换到虚拟机环境演示如何使用ab命令进行测试,并简单讲解输出结果:
      在RHEL5系统中,默认允许打开的最大文件数为1024。由于使用ab测试工具时可能需要同时打开更多的文件,因此需要使用ulimit命令突破这个限制,如果不更改最大文件数限制,在使用ab工具时可能会出现“socket: Too many open files   (24)”的错误提示信息,导致测试无法进行
  FTP服务
            主程序:/usr/sbin/vsftpd
  服务名:vsftpd
  用户控制列表文件
    /etc/vsftpd/ftpusers          禁止登录的用户列表
    /etc/vsftpd/user_list         
  主配置文件
    /etc/vsftpd/vsftpd.conf
  常用的全局配置项
  listen=YES:是否以独立运行的方式监听服务
listen_address=192.168.4.1:设置监听的IP地址
listen_port=21:设置监听FTP服务的端口号
write_enable=YES:是否启用写入权限
download_enable=YES:是否允许下载文件
userlist_enable=YES:是否启用user_list列表文件
userlist_deny=YES:是否禁用user_list中的用户
max_clients=0:限制并发客户端连接数
max_per_ip=0:限制同一IP地址的并发连接数
write_enable=YES 启用任何形式的写入权限(如上传、删除文件等)都需要开启此项。
download_enable=YES 是否允许下载文件(建立仅限于上传的FTP服务器时可将其设为NO)。
dirmessage_enable=YES 用户切换进入目录时显示.message文件(如果存在)的内容。
xferlog_enable=YES 启用xferlog日志,默认记录到/var/log/xferlog文件。
xferlog_std_format=YES 启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式。
connect_from_port_20=YES 允许服务器主动模式(从20端口建立数据连接)。
pasv_enable=YES 允许被动模式连接
pasv_max_port=24600 设置用于被动模式的服务器最大端口号
pasv_min_port=24500 设置用于被动模式的服务器最小端口号
pam_service_name=vsftpd 设置用于用户认证的PAM文件位置(/etc/pam.d/目录中对应的文件名)。
userlist_enable=YES 是否启用user_list用户列表文件。
userlist_deny=YES 是否禁止user_list列表文件中的用户帐号。
max_clients=0 最多允许多少个客户端同时连接(0为无限制)。
max_per_ip=0 对来自相同IP地址的客户端,最多允许多少个并发连接(0为无限制)。
tcp_wrappers=YES 是否启用TCP_Wrappers主机访问控制(TCP Wrappers出其用途,只要稍微理解一下其英文含义就很容易记住了
  listen=YES 是否以独立运行的方式监听服务
listen_port=21 设置监听FTP服务的端口号。
write_enable=YES 启用任何形式的写入权限(如上传、删除文件等)都需要开启此项。
download_enable=YES 是否允许下载文件(建立仅限于上传的FTP服务器时可将其设为NO)。
dirmessage_enable=YES 用户切换进入目录时显示.message文件(如果存在)的内容。
xferlog_enable=YES 启用xferlog日志,默认记录到/var/log/xferlog文件。
xferlog_std_format=YES 启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式。
connect_from_port_20=YES 允许服务器主动模式(从20端口建立数据连接)。
pasv_enable=YES 允许被动模式连接
pasv_max_port=24600 设置用于被动模式的服务器最大端口号
pasv_min_port=24500 设置用于被动模式的服务器最小端口号
pam_service_name=vsftpd 设置用于用户认证的PAM文件位置(/etc/pam.d/目录中对应的文件名)。
userlist_enable=YES 是否启用user_list用户列表文件。
userlist_deny=YES 是否禁止user_list列表文件中的用户帐号。
max_clients=0 最多允许多少个客户端同时连接(0为无限制)。
max_per_ip=0 对来自相同IP地址的客户端,最多允许多少个并发连接(0为无限制)。
tcp_wrappers=YES 是否启用TCP_Wrappers主机访问控制(TCP Wrappers的应用将在后续课程中讲解)。
  常用的匿名FTP配置项
anonymous_enable=YES:启用匿名访问
anon_umask=022:匿名用户所上传文件的权限掩码
anon_root=/var/ftp:匿名用户的FTP根目录
anon_upload_enable=YES:允许上传文件
anon_mkdir_write_enable=YES:允许创建目录
anon_other_write_enable=YES:开放其他写入权
anon_max_rate=0:限制最大传输速率,单位为字节
  常用的本地用户FTP配置项
local_enable=YES:是否启用本地系统用户
local_umask=022:本地用户所上传文件的权限掩码
local_root=/var/ftp:设置本地用户的FTP根目录
chroot_local_user=YES:是否将用户禁锢在主目录
local_max_rate=0:限制最大传输速率(字节/秒)
  
  电子邮件系统
       邮件应用协议
    SMTP,简单邮件传输协议,TCP 25端口
    POP3,第3版邮局协议,TCP 110端口
         POP3协议用于收取电子邮件,通常需要将邮件内容全部下载后才能进行阅读
    IMAP4,第4版因特网消息访问协议,TCP 143端口
         IMAP4协议用于收取、管理电子邮件,可以在下载邮件之前先查看对应的邮件          头,以确定需要下载还是删除等操作,更适合用于电子邮件的远程管理
  linux软件包
    Postfix:提供邮件发送服务(SMTP)
    Dovecot:提供邮件收取服务(POP3)
  安装Postfix
              [iyunv@mail ~]# yum install postfix
    [iyunv@mail ~]# service postfix restart
    [iyunv@mail ~]#chkconfig postfix on
  Postfix的主要目录
    配置文件目录:/etc/postfix/
    邮件队列目录:/var/spool/postfix/*
    incoming、active、deferred
    hold、corrupt
    邮件管理程序目录:/usr/sbin/*
    postalias、postmap、
    postconf、postfix
    postqueue、postsuper
  Postfix的配置文件
    /etc/postfix/master.cf
  master主程序的配置文件
    /etc/postfix/main.cf
  postfix 配置文件修改
    [iyunv@mail ~]# vi /etc/postfix/main.cf
    inet_interfaces = all
    myhostname =serverX.example.com            
    mydomain = example.com                  
    mydestination = $mydomain, $myhostname ,localhost
  设置邮件存储位置
    [iyunv@mail ~]# vi /etc/dovecot/conf.d/10-mail.conf
    ……
    mail_location = mbox:~/mail:INBOX=/var/mail/%u
    ……
    重新加载配置:postfix reload
  构建dovecot服务器
         修改配置文件
         vi /etc/dovecot/dovecot.conf
              protocols = pop3 imap          支持的邮局协议
              login_trusted_networks = 192.168.0.0/24          指定允许登录的网段地址
         vi /etc/dovecot/conf.d/10-mail.conf
              mail_location = mbox:~/mail:INBOX=/var/mail/%u……     邮件存储格式及位置
  设置邮件别名和邮件群发功能
       修改aliases文件
              /etc/aliases
         aliases文件的记录格式
             name: addr_1, addr_2, addr_3, . . .
       设置邮件别名
              admin:   mike
       设置邮件群发
              testgroup:   mike,john
       修改aliases文件后更新aliases.db文件
              newaliases
  Samba服务
            Samba服务器的主要程序
  smbd:提供对服务器中文件、打印资源的共享访问
  nmbd:提供基于NetBIOS主机名称的解析
  安装
    yum install samba
  启动服务
         service smb start
  Samba的配置文件
        /etc/samba/smb.conf
  创建samba用户
            从系统用户创建samba用户
              smbpasswd管理命令,常用的选项:
      -a:添加指定的Samba帐号
      -d:禁用指定的Samba帐号
      -e:启用指定的Samba帐号
      -x:删除指定的Samba帐号
      -h:显示帮助信息
      不指定选项时可以修改指定Samba帐号的密码
  samba配置文件构成
    [global] 全局设置:这部分配置项的内容对整个Samba服务器有效
                workgroup设置服务器所在的工作组名称,例如“WORKGROUP”(Windows主机默认工作组名)
                server string 设置服务器的说明文字,用于描述Samba服务器
                security 设置服务器的安全级别,可设为以下4个值中的一个:share(可匿名访问)、user(需由本服务器验证用户名及密码)、server(由另一台服务器验证用户名及密码)、domain(由Windows域控制器验证用户名及密码)
log file 设置Samba服务器的日志文件,默认设置为“/var/log/samba/%m.log”,表示日志文件保存到/var/log/samba/目录中,按每个客户机建立一个日志文件,“%m”变量表示客户端主机名或IP地址
                max log size 设置日志文件的最大容量,默认为50,表示50KB(默认单位为KB)
      [homes] 用户目录共享设置:设置对应Samba用户宿主目录的默认共享,即当用户访问服务器中与自己用户名同名的共享文件夹时,默认会映射到自己的宿主目录
      [printers] 打印机共享设置:如果需要共享打印机,则在这部分配置
在文件末尾用户可以自定义新的共享目录设置,自定义目录共享的名称可以随便起,其中的配置可以参考“[homes]”、“[printers]”中的部分配置项
  配置共享目录项
              [name]          共享目录名
                    comment:对共享目录的注释、说明信息
    path:共享目录在服务器中对应的实际路径
    browseable:该共享目录在“网上邻居”中是否可见
    guest ok:是否允许所有人访问,等效于“public”
    writable:是否可写,与read only的作用相反           Samba服务设置的读取、写入权限,优先级要低于文件系统中设置的权限
  
            如果远程登录可以看到目录无法打开是由于SELinux拒绝.
            输入 chcon -t samba_share_t /path 解决
                      详细参照samba配置文件
  NFS的基本概念
       NFS是系统间进行文件共享的一种网络协议
       在NFS的应用结构中有服务器和客户机两种角色
       NFS客户端通过挂载NFS文件系统的方式访问NFS服务器中输出的共享目录
       在同一台主机中即可以是NFS服务器也可以作为NFS客户机
       软件包: nfs-utils
  NFS服务器的配置文件
         /etc/exports
       “exports”文件用于配置NFS服务器中输出的共享目录
       /home/share     *(sync,ro)
       nfs共享目录名     客户端主机地址(设置选项)
       查询某一主机的共享目录
         showmount -e 192.168.0.111
  nfs服务进程名: nfs
       查询服务器的状态
  为了保证NFS服务器能够正常工作,系统中需要运行portmap和nfs两个服务程序
    # service nfs status
  启动服务器
    # service nfs start
  停止服务器运行
    # service nfs stop
  Linux 防火墙
       iptables 命令
            设置即时生效
            使用service iptables save保存防火墙配置.
       iptables的规则表、链结构
              规则是防火墙的基本构成元素,规则链是规则的集合, 规则表是规则链的集合.
            规则链
    规则的作用在于对数据包进行过滤或处理,根据处理时机的不同,各种规则被组织在不同的“链”中
    规则链是防火墙规则/策略的集合
    默认的5种规则链
      INPUT:处理入站数据包
      OUTPUT:处理出站数据包
      FORWARD:处理转发数据包
      POSTROUTING链:在进行路由选择后处理数据包
      PREROUTING链:在进行路由选择前处理数据包
  规则表
    具有某一类相似用途的防火墙规则,按照不同处理时机区分到不同的规则链以后,被归置到不同的“表”中
    规则表是规则链的集合
    默认的4个规则表
      raw表:确定是否对该数据包进行状态跟踪
      mangle表:为数据包设置标记
      nat表:修改数据包中的源、目标IP地址或端口
      filter表:确定是否放行该数据包(过滤)
DSC0002.png
  
  iptables -t 表名 -[APLDFXN] 链名 规则 -j 处理方式
                 -A     添加一条规则                         [ACCPCT, DROP, REJECT, LOG, SNAT. DNTA]
                 -P     默认处理
                 -L     列出规则链的规则
                 -D     删除指定位置或内容的规则
                 -F     清空规则链的所有规则
                 -N     创建一条新的规则链
                 -X     删除自定义的规则链
  设置匹配数据包的条件
                 通用条件匹配
    可直接使用,不依赖于其他的条件或扩展模块
    包括网络协议、IP地址、网络接口等匹配方式
  协议匹配
    使用“-p 协议名”的形式
    协议名可使用在“/etc/protocols”文件中定义的名称
    常用的协议包括tcp、udp、icmp等
  地址匹配
    使用“-s 源地址”、 “-d 目标地址”的形式
    地址可以是单个IP地址、网络地址(带掩码长度)
  接口匹配
    使用“-i 网络接口名”、 “-o 网络接口名”的形式,分别对应接收、发送数据包的网络接口
  示例:
                    [iyunv@localhost ~]# iptables -I INPUT -p icmp -j REJECT
[iyunv@localhost ~]# iptables -A FORWARD -p ! icmp -j ACCEPT
[iyunv@localhost ~]# iptables -A FORWARD -s 192.168.1.11 -j REJECT
[iyunv@localhost ~]# iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
[iyunv@localhost ~]# iptables -A FORWARD -o eth1 -d 61.35.4.3 -j DROP
  隐含条件匹配
       端口匹配
    使用“--sport 源端口”、“--dport 目标端口”的形式
    采用“端口1:端口2”的形式可以指定一个范围的端口
  TCP标记匹配
    使用“--tcp-flags  检查范围  被设置的标记”的形式
    如“--tcp-flags  SYN,RST,ACK  SYN”表示检查SYN、RST、ACK这3个标记,只有SYN为1时满足条件
  ICMP类型匹配
    使用“--icmp-type ICMP类型”的形式
    ICMP类型可以使用类型字符串或者对应的数值,例如Echo-Request、Echo-Reply
  示例:
          [iyunv@localhost ~]# iptables -A FORWARD -p tcp --dport 22 -j ACCEPT
[iyunv@localhost ~]# iptables -A OUTPUT -p tcp --sport 20:80 -j ACCEPT
[iyunv@localhost ~]# iptables -I INPUT -i eth1 -p tcp --tcp-flags  SYN,RST,ACK  SYN -j REJECT
[iyunv@localhost ~]# iptables -A INPUT -i eth0 -p icmp --icmp-type Echo-Request -j DROP
[iyunv@localhost ~]# iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT
  LINUX端口定义文件
                    /etc/services
  linux启动
      INIT进程
    由Linux内核加载运行 /sbin/init 程序
    是系统中第一个进程,PID(进程标记)号永远为1
  配置文件:/etc/inittab
                             这个文件可定义系统的运行级别
              /etc/rc.d/rc.sysinit
    由init进程调用执行
    完成设置网络、主机名、加载文件系统等初始化工作
  /etc/rc.d/rc脚本文件
      由init进程调用执行
      根据指定的运行级别, 加载或终止相应的系统服务
    /etc/rc.local脚本文件
           由rc脚本调用执行
           保存用户定义的需开机后自动执行的命令
     
  默认的7种运行级别
    0:关机状态
    1:单用户模式
    2:字符界面的多用户模式(不支持网络)
    3:字符界面的完整多用户模式
    4:未分配使用
    5:图形界面的多用户模式
    6:重新启动
  更改运行级别
                   1. 改配置文件
                   2. init 命令更改
  GRUB常用参数
            default
    这个参数决定了GRUB引导时光标默认停留的引导标签。
  timeout
    这个参数设置的是GRUB的等待时间。
  splashimage
    当进入GRUB引导界面的背景图片,
  title
    其实title就是一个引导标签,可以对title后的文字部分进行修改,使它更加符合我们的使用习惯。
  password
    password参数可以对GRUB设置密码。GRUB的密码设置可分为全局密码和菜单密码。
    使用 grub-md5-crypt 命令可以生成一个MD5加密的密码,使用–-md5 选项可以包含这个加密的密码指令
  password=123456 密码行如果放在title行上面为菜单密码, 保护的是grub选项.输入正确的密码才能修改启动项
                                                    如果放在title行下面为全局密码, 保护的是启动项.输入正确的密码才能启动对应的系统
  支持的体系和内核标识
            1.cat /etc/redhat-release
  2.uname –r
  3.yum list installed kernel\*
  4.uname –a or arch
  linux内核文件
            /boot/vmlinuz*
     linux内核映像文件
            /boot/initramfs*.img
     内核组件
            /sys/module
  管理内核模块
             /boot/vmlinuz-VERSION 引导时加载的核心内核映像
  /lib/modules/VERSION/ 动态加载的模块
  lsmod   列出当前加载的模块
  modprobe MODULENAME  手工加载模块
  modprobe –r MODULENAME 手工删除模块
  模块参数
  modinfo  列出模块支持的参数
  modprobe ecryptfs ecryptfs_verbosity=1 指定参数
  /etc/modprobe.d/local.conf  自动应用参数
  options ecryptfs ecryptfs_verbosity=1
  
     修改内核命令行
            1. 将参数 max_Ioop=32 添加到/boot/grub/grub.conf中的内核命令行。
  2. 重新引导服务器
  3. 确认内核
  cat /proc/cmdline
            另一种方法是修改/etc/sysctl.conf 文件
  故障排除
       1.fstab文件被修改,根分区无法挂载
            重新以可写方式挂载根分区
            mount -o remount,rw /
  RHEL开启ip转发
       打开配置文件 /etc/sysctl.conf
       修改 net.ipv4.ip_forward = 1
  验证命令: sysctl -p
            net.ipv4.ip_forward = 1 时成功
  ISCSI =internet SCSI (SCSI over TCP)
IQN =iSCSI 限定名称
Format:iqn-yyyy-mm.com.example:lable
Iscsi服务使用默认端口:port 3260/tcp
  挂载iSCSI磁盘
       配置ip地址和hostname.
         isciadm 程序挂载
              具体参考man手册example
         isciadm --mode discoverydb --type sendtargers --portal 192.168.0.254 --discover
  系统监控和日志管理
            1.df :创建磁盘空间使用情况报告
  2.iostat :创建磁盘I/O使用情况报告
  3.vmstat :创建交换分区使用情况报告
  使用aide验证系统完整性
            1.安装aide软件:yum install aide
  2.修改配置文件:/etc/aide.conf
  3.初始化数据库 :/usr/sbin/aide --init
  4.将 /var/lib/aide/aide.db.new.gz复制到/var/lib/aide/aide.db.gz
  5.运行 /usr/sbin/aide --check 检查系统
  使用sar监控系统
  sar –A       显示今天收集的所有信息
  sar –u 2 5  显示间隔2秒的5个系统cpu使用情况
  tmpwatch :linux tmp 文件清理系统使用时间长后会产生临时文件(/tmp下),使用tmpwatch命令清理文件。
  logrotate   logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。
  配置远程日志服务
          修改配置文件/etc/rsyslog.conf,启动远程日志服务
  启动 UDP or TCP的514端口
  $ModLoad imudp.so
  $UDPServerRun 514
  $ModLoad imtcp.so
  $INPUTTCPServerRun 514
  配置远程主机,发送日志到日志服务器
      *.info @remote.hostname
  Bash 编程
       Shell 变量
    FRUIT=apple
    $FRUIT   ${FRUIT}
  命令替换
    $(… some shell command…)
    touch datafile.$(id -un)
    TODAY=$(date+%Y-%m-%d)
  引用和转义
    弱引用 “” 保留扩展
    强引用  ‘’  禁用扩展
  转义   \
  循环
    for i in item1 item2;
    do
         cmd1; cmd2;
    done
  条件分支
    if cmd;
        then
            cmd1;
            cmd2;
        else
            cmd3;
    fi
  


  读取输入和位置参数

     read –p “enter your first and last name:” FIRST LAST

    $#

    $1,$2,$3,…

    “$@”   在远程计算机上运行命令
    ssh user@host ‘cmd1;cmd2’ > log.local
    ssh user@host ‘cmd1;cmd2 > log.remote’
            反引号代表运行其中的命令并返回值
                   DAY=`date +%Y%m%d`
            case VariableName in
                  value1)
                        instruction
                        ;;
                  value2)
                        instruction
                        ;;
                  *)
                       default
                       ;;
            esac
  
  DNS服务器配置
       DNS系统的作用
  正向解析:根据主机名称(域名)查找对应的IP地址
  反向解析:根据IP地址查找对应的主机域名
  DNS查询方式:
  递归查询
    大多数客户机向DNS服务器解析域名的方式
  迭代查询
    大多数DNS服务器向其他DNS服务器解析域名的方式
  DNS服务器的类型(角色)
  缓存域名服务器
  也称为 唯高速缓存服务器
  通过向其他域名服务器查询获得域名->IP地址记录
  将域名查询结果缓存到本地,提高重复查询时的速度
  主域名服务器
  特定DNS区域的官方服务器,具有唯一性
  负责维护该区域内所有域名->IP地址的映射记录
  从域名服务器
   也称为 辅助域名服务器
   其维护的 域名->IP地址记录 来源于主域名服务器
  NDS服务器
  软件: bind
  服务名: named
  主配置文件: /etc/named.conf
  保存DNS解析记录的数据文件位于: /var/named/
  
  主配置文件named.conf
  修改部分:




options {
listen-on port 53 { 173.16.16.1; };          监听的IP地址和端口
directory   "/var/named";
allow-query  { 192.168.1.0/24; 173.16.16.0/24; };     允许DNS查询的客户机地址
recursion yes;
};
zone " " IN {          设置要解析的域名
type hint;           类型: hint表示根区域、master表示主区域、slave表示辅助区域
file "named.ca";   区域数据配置文件
};
  配置样例:
  



//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query     { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation no;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "example.com" IN {
type master;
file "example.com.zone";
};
include "/etc/named.rfc1912.zones";
  
  文件example.com.zone



$TTL 3H
@ IN SOA www.example.com. root.exampel.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.example.com.
www A 192.168.0.119
ftp A 192.168.0.119
mail A 192.168.0.119
AAAA ::1
  
  区域数据配置文件
 域名解析记录
  NS域名服务器(Name Server)记录
  MX邮件交换(Mail Exchange)记录
  A地址(Address)记录,只用在正向解析的区域数据文件中
  CNAME别名(Canonical Name)记录



@ IN    SOA    [该DNS区域的地址] [该DNS区域管理员的邮箱地址]
(
2009021901     ;更新序列号
3H     ;刷新时间
15M     ;重试延时
1W     ;失效时间
1D   ;无效地址解析记录的默认缓存时间
)
  
  NS     [该DNS区域的地址]
    [主机名]     A          [主机IP地址]
    [主机名]     A          [主机IP地址]
  
  NS域名服务器(Name Server)记录
  MX邮件交换(Mail Exchange)记录
  A地址(Address)记录,只用在正向解析的区域数据文件中
  CNAME别名(Canonical Name)记录
    反向解析:




named.conf
zone "16.16.173.in-addr.arpa" IN {          反向写IP地址
type master;
file "173.16.16.arpa";
};
  173.16.16.arpa文件
  前面和正向解析一样
    IN      NS      ns2.benet.com.
    [ip地址 主机号]        IN      PTR     [完整主机名]



  DHCP
       0.0.0.0代表本地主机
       255.255.255.255
  服务名: dhcp
       配置文件
            主配置文件: /etc/dhcp/dhcpd.conf
            配置样例:



#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see 'man 5 dhcpd.conf'
#
ddns-update-style none;
default-lease-time 3600;
max-lease-time 7200;
option domain-name-servers 192.168.0.119;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option routers 192.168.0.254;
option subnet-mask 255.255.255.0;
}
  /etc/sysconfig/dhcpd
  定义哪个端口启用dhcp.
  DHCPDARGS="eth0"
  TCPwrapper
       允许或禁止服务的启动
       配置文件
              /etc/hosts.allow
              /etc/hosts.deny
       格式
              服务:网段
              sshd:192.168.0.0/255.255.255.0
              可以使用通配符?(代表一个数字), *(代表任意数字)


  代理服务器
       linux上squid
       端口: 3128
       软件包: sqiud
       服务名: squid
       配置文件: /etc/squid/squid.conf
       默认访问日志文件:/var/log/squid/access.log


  windows上ISA
       端口: 8080
  传统代理
            每台客户机都设置代理服务器
       透明代理
       反向代理
            提供负载均衡
            nginx
         
  透明代理


  iptables 防火墙
       语法
       iptables  [-t 表名]  管理选项  [链名]  [条件匹配]  [-j 目标动作或跳转]
            不指定表名时,默认表示filter表
  不指定链名时,默认表示该表内所有链
  除非设置规则链的缺省策略,否则需要指定匹配条件


  脚本格式



#!/bin/bash
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -P INPUT DROP //更改INPUT链的默认规则为DROP

iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
(允许ping其他的主机)
  数据包状态匹配
使用“-m state”结合“--state 状态类型”的形式
同时表示多种状态时以逗号“,”分隔
常见的数据包状态包括:NEW、ESTABLISHED、RELATED


  常用服务端口:
           ssh     22(tcp)
           ftp     20(tcp) 20(udp) 21(tcp) 21(udp)
           smtp     25(tcp) 25(udp)
          pop3     110(tcp) 110(udp)
          name-server(dns解析)     53(tcp) 53(udp)
          dhcp     67(tcp) 67(udp) 68(tcp) 68(udp)
          snmp    161(tcp) 161(udp) 162(tcp) 162(udp)
          vnc      5900:5(tcp) 5900:5(udp)
               第一个用户端口为5901, 第二个为5902, 以此类推
  DNAT: 将局域网内主机发布到外网.
          iptables -t nat -A PREROUTING -i [外网接口eth0] -d [网关的公网IP地址] -p tcp --dport [目标主机端口] -j DNAT --to-destination [内网服务器地址]
     SNAT: 局域网主机共享单个公网IP地址接入Internet
          SNAT策略的原理
源地址转换,Source Network Address Translation
修改数据包的源IP地址
          iptables -t nat -A POSTROUTING -s [来自特定局域网段的数据包] -o [需要从接口eth0外出的数据包] -j SNAT --to-source [网关主机外网接口的IP地址]
  NAT配置实例



#!/bin/bash
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -A PREROUTING -i eth1 -d 61.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.119:80
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 61.1.1.1
  远程连接 vnc服务
            软件包: tigervnc-server     (服务器端)
                            tigervnc               (客户端)
            服务名: vncserver
            配置文件: /etc/sysconfig/vncservers
                   VNCSERVERS="1:root"     //设置用户名对应的登录序号
                                                         //登录时用192.168.0.192:1
            为当前用户设置VNC用户密码: vncpasswd
  访问远程主机命令vncviewer
     vncviewer –via user@host localhost:display
      user:远程主机用户
      host:远程主机
      display:远程VNC或X窗口显示
  网络监控
       构建Cacti
              配置被监测端
                   安装net-snmp软件包
         调整snmpd.conf配置文件
              配置文件: /etc/snmp/snmpd.conf
              修改内容:
                   41行     com2sec   notConfigUser    192.168.4.4(将default改为允许向本机查询监测数据的Cacti服务端主机地址)              publicsvr(SNMP的组识别字串,作用类似于密码)
         62行     access    notConfigGroup   ""    any    noauth    exact  all(将systemview改为all,提供所有的SNMP访问权)  none  none
         85行     view all    included  .1                     80     (去掉此行开头的# 注释符号)
         启动snmpd服务     “service snmpd start”
  配置监测服务端
                   安装依赖软件
    AMP平台,中安装下列软件包
      httpd、mysql、mysql-server、mysql-connector-odbc
      php、php-mysql、php-common、php-pdo、php-gd
    SNMP数据采集工具
      lm_sensors、net-snmp、net-snmp-utils
    RRDTool引擎
      rrdtool、rrdtool-devel
  安装Cacti程序套件
    解压文件包至网页目录,并调整权限
         ./log 和 ./rra目录
  建立监测数据库
                   create database cactidb default character set utf8;
                        注意字符集设定为utf8(中文版)
                   mysql -u root -p cactidb < cacti/cacti.sql
                        创建数据表
            调整Cacti系统的配置
                   修改cacti目录中的include/config.php配置文件
  [iyunv@localhost ~]# vi /var/www/html/cacti/include/config.php

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-58374-1-1.html 上篇帖子: RHCA视频12G教程下载 下篇帖子: RHCSA和RHCE
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表