1.系统管理1

    * 版本查询:http://distrowatch.com/

    * Red Hat系列:

          官方版:Red Hat Enterprise Linux 5/6/7     http://www.redhat.com/

          先行测试版:Fedora Core 20              http://fedoraproject.org/

          民间版(现已被红帽收编):CentOS 5/6      

    * 不同界面、控制台切换

                 图形界面 --> 字符终端:Ctrl+Alt+Fn

                 字符终端 --> 字符终端:Alt+Fn

                 字符终端 --> 图形界面:Alt+F1

    * 常见配置文件及命令

                  /etc/sysconfig/network-scripts/ifcfg-eth0               //网卡

              /etc/resolv.conf                                //DNS配置文件

              /etc/sysconfig/network                        //主机名默认网关

              /etc/hosts                                    //本地主机名映射文件

              /etc/sysconfig/network-scripts/route-eth1                 //静态路由设置

                  /etc/udev/rules.d/70-persistent-net.rules             //udev规则文件

              /etc/sysconfig/selinux                          

              /etc/sysctl.conf

              /etc/fstab                                  //开机自动挂载文件

              /etc/default/useradd                            //新用户的默认设置

              /etc/login.defs                                  //新用户的默认设置

              /etc/sysconfig/i18n                            //系统默认语言配置

              alias cq="shutdown -r+15"                        //临时别名设置

              du  -sh                                    //[目录或文件大小]

              df -h                                      //查看磁盘文件大小

              wc -l                                     //统计行数

              tune2fs -l  /dev/sda1 | grep acl                 //查看一个分区是否支持ACL权限

              fdisk -l                                    //查看当前磁盘分区

              service                                    //起服务

              /etc/init.d/服务名                           //起服务

              chkconfig  --list 服务名                         //查看自起状态

                 chkconfig [--level 2345] 服务名 on|off                  //随机自起设置

              netstat  -anptu                               //查看网络连接状况

              arp      -an                               //查看 arp缓存表

              top                                        //查看进程   

              ps  aux                                       //查看进程

 

              useradd

                           -u:设置 UID 标记号

                           -d:指定宿主目录,缺省为 /home/用户名

                           -g:指定所属的基本组

                                  -G:指定所属的附加组

                           -e:指定账号失效时间

                           -M:不为用户建立并初始化宿主目录

                           -s:指定用户的登录Shell

              passwd

                                 -d:清空用户的密码,使之无需密码即可登录

                           -l:锁定用户账号       【在shadow中的对应密码串前加两个叹号 !!

                           -S:查看用户账号的状态(是否被锁定)

                           -u:解锁用户账号        【解除锁定时添加的两个叹号 !

                                 --stdin:从标准输入(比如管道)取密码

              usermod

                                 -l:更改用户的登录名

                           -L:锁定用户账户          【在shadow中的对应密码串前加一个叹号 !

                           -U:解锁用户账户        【解除锁定时添加的一个叹号 !

                           -u-d-e-g-G-s:与useradd命令相同

              chage

                                  -l:列出密码有效期信息

                           -E:指定账号过期时间,YYYY-MM-DD

                           -I:指定当密码失效后多少天锁定账号

                           -m:指定密码的最小天数

                           -M:指定密码的最大天数

              userdel  用户名                    //只删用户账号(不宿主目录邮箱文件等数据)

              userdel  -r  用户名                 //删除用户账号及数据

              gpasswd

                                 -A:定义组管理员列表

                           -a:添加组成员,每次只能加一个

                           -d 删除组成员,每次只能删一个

                           -M:定义组成员用户列表,可设置多个

              grep   -i(忽略大小写)  -v(反转查找) -c(输出匹配结果数量)

                            ^...:表示以 ... 开头

                                   ...$:表示以 ... 结尾

                             ^$:表示空行

              tar

                                  -c:创建 .tar 格式的归档文件

                                  -x:解开.tar格式的归档文件

                                  -C:解包时指定释放的目标文件夹

                                  -f:表示使用归档文件

                                  -z:调用 gzip 执行压缩或解压缩

                                  -j:调用 bzip2 执行压缩或解压缩

                                   -J:调用 xz 执行压缩或unxz解压缩

                           -v:输出详细信息

                                  -t:列表查看包内的文件

               which           专门用于查找外部命令,程序文件所在位置  

                     eg: # which scp

                           /usr/bin/scp

                             # rpm -qf /usr/bin/scp

                          openssh-clients-5.3p1-111.el6.x86_64

               find    [路径]   [条件]   (默认不指定路径,就是当前路径)

                        [路径]     [条件]   -exec  命令 {} \    代表find额外命令开始到结束({} 替代每一个查找结果)

                                  -name      名字

                                  -a      (多个条件同时满足)

                                  -o      (多个条件满足一条即可)

                                  -size     大小(单位c表示bytek表示1024bytes

                     eg  find /boot -type l -size +2048k -exec ls -l{} \;

                         find /var -mtime+4    //+4代表大于等于5天前的文件名,-4代表小于等于4天内的文件名,4则是代表4~5那一天的文件名

              

    * 用户的初始化配置文件

                  配置文件来源:新建用户时,根据 /etc/skel 模板目录复制

                     主要的初始配置文件:

                       ~/.bashrc:每次进入新的Bash环境时执行,多用来设置别名

                      ~/.bash_profile:每次登录时执行,多用来设置环境变量

                       ~/.bash_logout:每次退出登录时执行

    *  全局设置(对所有用户有效):

                  /etc/bashrc/etc/profile

     * 快速编辑命令行

                  辅助操作:Tab键自动补齐、反斜杠 \ 强制换行

                     快捷键:

                       Ctrl + u:清空至行首

                       Ctrl + k:清空至行尾

                       Ctrl + w:删除前一个单词

                       Ctrl + l:清空整个屏幕

                       Ctrl + c:废弃当前编辑的命令行

      Shell环境中的通配符:任意字符 *     单个字符     连续多个字符(任何一个)[a-z]     不连续的多个字符串(全部) {a,min,xy}

     * vim : PgUpPgDn翻页、Home键(或^)、End键(或$)、到第一行(1Ggg)、到最后一行(G

                 复制1行(yy)、复制3行(3yy 粘贴到当前行之后(小写p)、粘贴到当前行之后(大写P

                 删除单个字符(xDelete键)、删除到行首(d^)、删除到行尾(d$)、删除1行(dd)、删除3行(3dd

                 搜索(/word)切换结果(nN)、撤销最近一次操作(小写u)、撤销当前行所有修改(大写U)、恢复前一次撤销(Ctrl + r,即重做)

                 保存(:w)、退出(:q)、另存为(:w /路径/文件)、读入其他文件(:r /路径/文件)

                 替换当前行第一个old  :s/old/new )、替换当前行所有old  :s/old/new/g )、替换第4~9行所有old :4,9 s/old/new/g )、                                                          替换文件内所有old :%  s/old/new/g

                 显示/不显示行号(:set  nu:set  nonu)、启用/关闭语法高亮(:syntax  on:syntax off

                      开启/关闭查询结果高亮显示(:set  hlsearchset  nohlsearch)、启用/关闭自动缩进(:set  ai:set noai

 

                      vim编辑器相关文件:

                              ~/.vimrc     保存用户的vim编辑器设置

                              ~/.viminfo   记录用户的历史操作

                              .filename.swp,编辑过程中的缓存文件

    * rpm软件包管理

                  软件资源站:http://rpmfind.net/http://www.centos.org/

              rpm  -qa(列出已安装的所有RPM软件)、      rpm -q  软件名...(查询软件是否安装)、

              rpm  -qi  软件名...(查询软件的描述信息)、rpm  -ql  软件名...(查询软件的完整安装清单)       

                  rpm -qf  文件或目录的绝对路径...(查询某个文件或目录属于哪个RPM软件)

              rpm  -qpi  /路径/软件名-版本.. .. .(查询软件包的描述信息)

              rpm  -qpl  /路径/软件名-版本.. .. .(查询软件的完整安装清单)

              rpm  -ivh  /路径/软件名-版本.. .. . (全新安装RPM软件包)      

              rpm  -Uvh  /路径/软件名-版本.. .. . (升级若原本未装,则全新安装)

              rpm  -Fvh  /路径/软件名-版本.. .. . (若原本未装,则放弃安装)

                   ** 安装/升级软件包时,可通过  --force  强制覆盖或降级

                   ** 安装或卸载软件时,可通过 --nodeps 忽略依赖关系

                   ** 安装或卸载软件时,可一次提供相互依赖的所有关联包,rpm会自动决定处理顺序

    * yum 配置文件实例

              [root@svr5 ~]# vim  /etc/yum.repos.d/server.repo

                              [rhel6-server]

                              name=Red HatEnterprise Linux 6.5 Server

                                       baseurl=file:///myiso

                              enabled=0

                              gpgcheck=1

                             gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

                  使用yum命令管理软件包:yum  list(列出所有软件)、 yum  list  installed(仅列出已安装的软件)

                                     yum list  available(仅列出可用的软件)、 yum clean  all(清理yum缓存数据)

                                     yum search 关键词(按关键词搜索可用的软件)、yum provides文件路径(查找能提供指定文件的可用软件)

                  安装图形环境: yum -y groupinstall "Desktop""Fonts" "X Window System"                    

                  安装开发环境: yum -y groupinstall "DevelopmentTools"

    * 源码包编译安装

                  环境:安装’开发工具‘包组或者yum -y install gcc gcc-c++ make

                  步骤:        1)解包 tar                         【释放源代码至指定目录】

                                     2)配置                          【指定安装目录/功能模块等选项】

                              ./configure  --prefix=安装目录

                                  ** 查看配置帮助 ./configure  --help | less

                                   ** 此步骤成功后会生成 Makefile 文件

                             3)编译 make       【生成可执行的二进制程序文件】

                             4)安装 make install    【将编译好的文件复制到预先配置的安装目录】

                              ** 编译+安装可合写成 make  &&  make install

    * yum包清单生成

                      # yum -y installcreaterepo

                      # createrepo 清单路径      

                      # vim/etc/yum.repo/*.repo

                      # yum repolist

2.系统管理2

    * ACL访问控制 

                      设置ACL策略:

                          setfacl  -m  u:用户名:权限   文件或目录...

                             setfacl  -m  g:组名:权限   文件或目录...   

                      设置可继承的ACL策略:

                             setfacl -d  -m  u:用户名:权限   目录...

                            setfacl  -d  -m  g:组名:权限   目录...   

                      清除所有ACL策略:

                         setfacl -b 文件或目录..

                      清除指定用户的ACL策略:

                         setfacl -x u:用户名 文件或目录...

                       setfacl -x g:组名文件或目录...

    * 磁盘分区及格式化

                       概念:   每个扇区(sector),512字节

                                    每个磁道(track)划分为63个扇区

                                    逻辑磁头(盘面)数设为255

                               -- > 一个柱面(cylinder)的大小 = 255 x 63 x 512 字节 = 8MB

                               -- > 硬盘或分区的容量 = 柱面大小 x 柱面数

                       两种硬盘分区方案:   

                         MSDOS —— Master Boot Record —— 1个扇区(512)、最多4个主分区、最大磁盘2.2TB  

                         GPT —— GUID Partition Table  最大支持18EB磁盘

 

                        分区工具:      fdisk           【只支持MSDOS分区布局】 

                                             parted             【支持MSDOSGPT分区布局】

                                            parted  /dev/sdb   print                        //查看分区表

                                              mkpart primary|logical|extended ext4|vfat】开始 结束   //新增分区

                                              partx -a /dev/sda                              //刷新所有分区

                                              mkfs-t 文件类型 /dev/xdyz                        //格式化分区

                  swap交换分区

                          mkswap /dev/xdyz     /dev/xdyz格式化成swap类型分区

                          swapon /dev/xdyz 启用/dev/xdyzswap分区中

                          swapoff /dev/xdyz        停用/dev/xdyz

                          swapon -s              查看交换分区

                          free  -m           查看swap分区与内存的使用情况 

                        利用文件创建SWAP分区

                          # dd if=/dev/zeroof=/tmp/swap.db bs=1M count=2048

                          # ls -lh /tmp/swap.db

                          # mkswap /tmp/swap.db

                          # swapon /tmp/swap.db

                          # swapon  -s          

    * 文件系统管理

                          # e2label /dev/sdb1"disk2part1"              设置卷标

                          # e2label /dev/sdb1                       查看卷标

                          # e2label /dev/sdb1""                 删除卷标 

                          # blkid                                 查看块设备属性(UUID

                          # fuser -vm 挂载点                            查看挂载点谁在使用

                          # fuser -km 挂载点                            终止挂载点的使用

                       开机自动挂载文件(/etc/fstab

                                  设备文件|卷标名|UUID 挂载点  类型   挂载参数     备份标记 检测顺序

                          /dev/sdb5        swap  swap defaults      0   0

                   autofs触发挂载

                          /etc/auto.master                        autofs主配置文件

                          /etc/auto.xxx                                挂载配置文件

    * LVM逻辑卷管理

              工具总览  管理物理卷:pvscanpvcreatepvdisplaypvremove

              管理卷组:vgscanvgcreatevgdisplayvgremovevgextendvgreduce

              管理逻辑卷:lvscanlvcreatelvdisplaylvremovelvextendlvreduce

              图形化管理工具: system-config-lvm

                      基本使用过程

                          1)建立物理卷

                             fdisk 分区 ...           【类型 8e

                             partprobe  磁盘设备       【更新分区表】

                             pvcreate  设备名

                          2)整合为卷组

                              vgcreate  卷组名  物理卷...

                                      或者

                              vgcreate -s pe大小 卷组名  物理卷...

                         3)划分逻辑卷

                              lvcreate   -L  大小 -n  逻辑卷名  卷组名

                              lvcreate   -l PE个数  -n  逻辑卷名  卷组名

                          逻辑卷的扩容

                                     如果卷组空间不足,需要先扩展卷组:

                            vgextend    现有卷组名   要添加的物理卷...

                                     扩展现有的逻辑卷:

                            vextend  -L  +大小  /dev/卷组名/逻辑卷名

                                    或者

                            lvextend  -l  +PE个数  /dev/卷组名/逻辑卷名

                                     识别调整后的逻辑卷容量

                            resize2fs  /dev/卷组名/逻辑卷名

                            df  -hT  挂载点

    * 计划任务管理              

                   crontab -e [ -u username]      编辑

                           -l                 查看

                           -r                删除   

                         格式:

                                      命令

                                    *    表示该范围内的任意时间

                                    ,    表示间隔的多个不连续时间点

                                    -    表示一个连续的时间范围

                                    /    指定间隔的时间频率   

                   at任务控制    /etc/at.allow/etc/at.deny

    * Linux引导过程

                          加电自检-->MBR扇区-->GRUB配置(/boot/grub/grub.conf

                 -->root (hd0,0)

                      kernel /boot/vmlinuz-.... --> /sbin/init (PID恒为1)

                      initrd (/boot/initrd-....img)

                 --> /etc/inittab

                     /etc/rc.d/rc.sysinit

                     /etc/rc.d/rc 级别  initdefault默认级别)(01356

                 --> /etc/rcX.d/快捷方式 S75服务名、K24服务名)

                          --> /etc/rc.d/init.d/服务脚本

               -->S99local --> /etc/rc.local (自定开机任务)

               mingetty tty1-tty6 -->

                     --> login --> 验证用户配置(passwdshadow

                                          --> /bin/bash --> 用户正常执行命令

                    ** 如果进入运行级别5,则继续 --> GNOME桌面环境 --> 登录窗口       

    * 主要的启动配置文件   

                   /etc/inittab:配置init程序的引导过程

                   /etc/rc.d/rc.sysinit:由init调用执行,设置网络/时钟、加载文件系统等一系列工作

                   /etc/rc.d/rc:由init调用执行,根据运行级别参数,加载/终止相应服务

                   /etc/rc.d/rc.local:由rc脚本调用执行,存放用户自定义的开机后自动执行的命令

                   /etc/rc.d/init.d/*:各系统服务的可执行脚本程序   

    * 进程管理

                        查看所有进程的静态快照:ps auxps  -elf  // 常见的STAT状态指示:R 运行中、S 休眠状态、Z 僵死状态

                        查看进程的动态排名:toptop -d5

                        查看进程树:pstreepstree  PIDpstree  用户名

                                常用命令选项

                               -a:显示完整的命令行

                               -u:列出各进程所属的用户名

                               -p:列出对应的PID

                        查看后台任务列表:jobs jobs  -l

                        将后台任务恢复到前台运行:fgfg  任务编号  

                        PID杀死进程:kill  PIDkill -9  PID

                        按进程名杀死进程:killall  进程名

    * 网络       

                       测试域名解析

                         格式:host  目标主机 [DNS服务器]

                         nslookup  目标主机  [DNS服务器]

                                             ** 必须有可用的DNS服务器,否则将无法解析

                                             ** 若无法解析域名,就不能以域名的方式访问目标站点

                                              ** 若测试时未指定DNS服务器地址,则使用 /etc/resolv.conf中设置的地址

                       跟踪路由过程

                         格式:tracert   目标地址

                         traceroute    目标地址

                         mtr    目标地址  【集成pingtracert优势】

                     路由

                         route  add default  gw  IP地址

                         route  del default  gw  IP地址

                         route  add -net  目标网段 gw  IP地址

                         route  del -net  目标网段

    * 系统日志管理    

                       内核及系统日志(由系统服务rsyslog统一进行管理)

                         /var/log/messages    内核及公共消息日志

                         /var/log/cron        计划任务日志

                         /var/log/dmesg      系统引导日志

                         /var/log/maillog     邮件系统日志

                         /var/log/secure       记录与访问限制相关日志

                       用户日志(记录系统用户登录及退出系统的相关信息)

                                /var/log/lastlog       最近的用户登录事件

                         /var/log/wtmp        用户登录、注销及系统开关机

                         /var/log/btmp        失败的用户登陆事件

                         /var/run/utmp         当前登录的每个用户详

                       程序日志(由各种应用程序独立管理的日志文件,记录格式不统一)

                         w                 查看当前登陆的用户

                         who                w更加简洁

                         last                    最近系统登陆情况

                         lastb                   最近系统登陆失败的情况

                 rsyslog管理日志(/etc/rsyslog.conf

                                  服务类别.日志级别           日志消息发送位置  //格式

                 logrotate日志轮转(/etc/logrotate.conf

                         weekly                                   轮转频率,默认每周

                         rotate 4                          保留4个轮转备份

                         create                                   执行轮转后创建新文件

                         #compress                                 是否压缩日志

                         include/etc/logrotate.d                        包含此目录下的配置

                         /var/log/wtmp {                             启用轮转的日志文件

                            monthly                        每月轮转一次

                        missingok                                   丢失不提示

                            notifempty                       如果为空则不轮转

                            minsize 1M                       日志达到1MB才开始轮转

                            create 0664 root utmp                      建新文件并设权限

                            rotate 1                               只保留一个备份

                                }