linux基础知识

1 .虚拟机安装linux(centos 32bit)
     1.1  虚拟机安装前置工作的准备,如内存。硬盘。CPU分配。镜像下载等
     1.2  安装方式(图形界面或者命令行  推荐图形界面即直接回车)
     1.3  安装过程默认,如默认语言、键盘式等
     1.4  安装分区
         1.4 . 1  在选定磁盘上删除所有分区
         1.4 . 2  在选定驱动器上删除linux分区
         1.4 . 3  在选定驱动器上使用空闲空间
         1.4 . 4  自定义分区
             1.4 . 4.1  linux磁盘表示
                 1.4 . 4.1 . 1  IDE磁盘  hd(磁盘前缀)  hda(磁盘 1 )hdb(磁盘 2 ) hda1(磁盘 1 1 分区) hdb1(磁盘 2 1 分区)
                 1.4 . 4.1 . 2  SATA磁盘  sd(磁盘前缀) sda(磁盘 1 )sdb(磁盘 2 ) sda1(磁盘 1 1 分区) sdc6(磁盘 3 6 分区)
             1.4 . 4.2  linux分区表示
                 1.4 . 4.2 . 1  挂载点  即所有分区的根
                 1.4 . 4.2 . 2  文件系统类型  即分区存储格式
                 1.4 . 4.2 . 3  分区大小
                 1.4 . 4.2 . 4  交换分区(swap  即windows下的虚拟内存)
     1.5  网络配置(IP、网关、子网掩码、主机名、DNS等)
     1.6  时区、用户密码设置
     1.7  默认软件包安装
     1.8  安装完毕后重新启动系统即可
     1.9  系统初始化设置(防火墙、创建用户、SELinux等)
     1.10   如果是一机多系统的話,先装windows再装linux。因为装windows会重写引导文件
     
2 .熟悉系统图形界面
     2.1  文件夹标签打开方式显示(编辑,首选项里面设置)
     2.2  隐藏文件查看(首选项里面设置  以.开头的文件或者文件夹均为隐藏文件/文件夹)
     2.3  常用工具栏使用
     2.4  支持 7 个终端(前 6 个均为命令 后 1 个为图形 快捷键为ctrl+alt+ f1~f7) 
     
3 .命令
     3.1  命令格式
         3.1 . 1  命令 -选项.... 参数
     3.2  常用命令
         3.2 . 1  ls命令 显示当前目录文件信息
                 ls -l  显示目录的完整信息 =》ll
                 ls -i  显示目录所有的文件,包括隐藏文件
                 ls -s  显示文件大小
                 ls --help  显示关于ls的选项帮助信息
                 ls -lis 等同于 ls -l -i -s
         3.2 . 2  pwd命令  显示当前目录名
         3.2 . 3  clear命令(ctrl+l) 清屏
         3.2 . 4  date命令 显示当前时间日期
         3.2 . 5  cal命令  显示日历
                 cal  12  2012   查看 2012 12 月的日历  注意年月次序
                 cal  2012  查看 2012 年所有月份日历
         3.2 . 6  bc命令  计算器
                 scale= 4 (小数点后 4 位,默认情况下不保留小数点后的数字)
                 1 / 3
         3.2 . 7  history命令 执行过的命令集合( 1000 个有重复)
                 history
                 ! 22  (执行第 22 条命令)
     3.3  命令大小写区分
     
4 .热键和快捷键
     4.1  Tab热键————自动补齐命令
             如果唯一则自动补齐,如果不唯一需要按两次则加载所有可能性
     4.2  上下热键————执行历史命令切换
     4.3  ctrl+i/home————命令行光标快速切换到本行开头
     4.4  ctrl+e/end————命令行光标快速切换到本行结束
     4.5  ctrl+u————从当前光标处往前删除
     4.6  ctrl+k————从当前光标处往后删除
     4.7  ctrl+c————中止输入命令执行
     4.8  ctrl+shift+t—————多开终端
     4.9  ctrl+d————关闭终端
         
5 .帮助信息
     5.1  whatis 命令————查看该命令作用
             whatis ls
     5.2  ls --help ————该命令常用的选项有哪些
     5.3  man命令————查看该命令具体详细信息
             man ls
             man -k clock ————查看含有clock关键字的所有命令
             man host.allow————查看该文件配置说明
             
             输入 /+关键字 可将关键字高亮显示
             使用m/n可向上下查找(或向上向下键)
             退出按q
     5.4  info命令————用法跟man差不多。man可取代
             
6 .编译器
     6.1  nano
     6.2  gedit
     6.3  vi
     
7 .一些使用小技巧
     7.1  数据同步问题
         sync命令————同步内存数据到硬盘
     7.2  开关机命令
         7.2 . 1  shutdown命令
         7.2 . 2  reboot命令
         7.2 . 3  poweroff命令
         7.2 . 4  halt命令
     7.3  运行级别
         7.3 . 1  级别( 7 种)
               0 :关机模式
               1 :单用户模式
               2 :多用户模式(无NFS)
               3 :多用户模式(有NFS)
               4 :系统保留
               5 :图形化界面
               6 :系统正常关闭并重启
         7.3 . 2  init命令————切换运行级别
                 init  3   切换到 3 级别
                 init  0   切换到 0 级别 即关机
                 init  6   切换到 6 级别 即重启
     7.4  忘记root密码
         1 .开机时按e键进去可选进入项
         2 .进去编译模式
         3 .敲 1 按回车,按b进去编译
         4 .编译完成后输入passwd更改密码
         5 .然后重启即可使用新密码登陆
         
8 .文件权限和目录配置
     8.1  文件权限
         8.1 . 1  权限说明
                 drwxr-xr-x.  2  root root   4096  Oct  23  23 : 53  Desktop
                 drwxr-xr-x:文件/文件夹权限
                             第一位:
                                 d为文件夹 
                                 -为文件
                                 b为设备(块)  U盘、硬盘等
                                 c为设备(字符)键盘、鼠标等
                                 l为软连接(快捷方式)
                             其他位:
                                 r读
                                 w写
                                 x运行
                             前三位为所有者权限(u)
                             中间三位为所有组权限(g)
                             后三位为其他人权限(o)
                 .:是否为隐藏文件
                 root:文件/文件夹所有者
                 root:文件/文件夹所有组
                 4096 :文件/文件大小
                 Oct  23  23 : 53 : 创建时间/修改时间
                 Desktop: 文件/文件夹名
         8.1 . 2  默认权限
             1 .umask命令————文件默认权限
             2 .chattr/lsattr命令————文件隐藏属性
             3 .SUID/SGID/SBIT命令————文件特殊权限
             4 .file命令————文件类型
     8.2  更改文件/文件夹权限
         8.2 . 1  chmod命令————修改文件/文件夹读写运行权限
               第一种方式:chmod u+x,g+r,o+r xyz(不会改变子文件权限)
               第二种方式(推荐):chmod  766  xyz(不会改变子文件权限)
                                       r: 4
                                       w: 2
                                       x: 1
                                     7 :rwx
                                     6 :rw
                                     5 :rx
                                     3 :wx
                                   chmod -R  766  xyz(会改变子文件权限)
         8.2 . 2  chown命令————可以修改所有者和所有组权限
                     chown hadoop xyz/
                     将xyz的所有者更改为hadoop用户
                     
                     chown -R hadoop:root xyz/
                     将xyz下的所有文件所有者更改为hadoop用户,所有组更改为root
         8.2 . 3  chgrp命令————只能更改所有组
                     chgrp root xyz/
                     将xyz的所有组更改为root
     8.3  文件目录结构
         bin————可运行程序
         boot————系统启动文件,内核初始化
         dev————设备文件
         etc————配置文件
         home————用户的家目录
         lib————链接库文件
         lost+found————默认的
         media————挂载点,自动
         misc————默认的
         mnt————挂载点,手工
         net————网络文件
         opt————使用源码安装包时安装目录
         proc————内核参数,不占用磁盘大小
         root————root用户的家目录
         sbin————类似bin,系统管理员的命令
         selinux————selinux文件目录
         srv————
         sys————系统配置文件
         tmp————临时文件
         usr————安装软件默认路径
         var————日志文件、缓存文件、数据文件
     8.4  绝对路径和相对路径
         当前目录  .
         上一级目录  ..
     8.5  基本查看命令
         1 .uname命令————返回系统类型名
             uname -a  查看系统所有信息
         2 .lsb_release命令
 
9 .文件和目录的管理
     9.1  目录和文件相关操作
         1 .cd命令————切换目录
             cd:change directory
             ~:一个变量,代表当前用户家目录
             
             cd -  上次所在目录(注意不是上一级目录)
         2 .mkdir————增加目录
             mkdir xx yy zz 创建三个目录分别为xx yy zz
             mkdir -p xx/yy(如果父文件夹不存在创建父文件夹)
         3 .rmdir————删除目录(不能删除非空目录)
             rmdir xx yy zz
             rmdir -p xx/yy(如果父文件夹中只有一个文件,会删除掉父文件夹)
         4 .rm————删除文件
             rm -rf xx(删除xx中的所有文件)
         5 .cp————复制文件
             1 .cp xx/yy   xx1/yy1
                 如果yy是文件,且yy1是文件夹时,则将yy拷贝到yy1下
                 如果yy是文件,且yy1是文件或者不存在时,则将yy拷贝到xx1中并重命名为yy1
             2 .cp -rf xx/yy   xx1/yy1
                 yy是文件夹  即将yy所有文件拷贝到xx1下的yy1中(没复制权限属性信息)
             3 .cp -rfp xx/yy   xx1/yy1
                 yy是文件夹  即将yy所有文件拷贝到xx1下的yy1中(复制权限属性信息) 
         6 .mv————移动文件(与cp用法一致)
         7 .查看文件内容
             1 .cat————顺序显示,只能看到最后一屏的内容  适合查看小文件
                cat -n xx   有行号
             2 .tac————倒序显示
             3 .nl————相当于 cat -n
             4 .head————查看文件前几行
                 head - 5  xx 前五行(默认头 10 行)         
             5 .tail————查看文件后几行
                 tail - 5  xx 后五行(默认尾 10 行)
             6 .more————分屏查看内容
                 more xx (回车一行一行  空格一屏幕一屏幕  只能往后看, 不能往前看)
             7 .less————分屏查看内容
                 less xx(往前往后都可)
             8 .od————查看二进制文件
         8 .touch————创建文件
             touch xx
         9 .whereis/locate/find————查找文件
             whereis xx
             locate xx(不及时,在数据库来找,如果需要及时的話,要更新数据库 updatedb)
             find 目录 -属性 属性值(不指明目录在当前目录查找)
                        属性:权限、大小、时间等
     9.2  路径变量$PATH
         1 .变量赋值
         $PATH= ".:/usr/local/hadoop/bin:/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
         2 .输出打印变量值

        echo $PATH 

1 .Linux磁盘和文件系统
     VFS————虚拟文件系统
     df命令————查看已挂载的分区
         df 分区名
     du命令————查看文件夹大小
         du 文件夹名
     ln命令————符号链接
     fdisk命令————分区命令
       fdisk 硬盘名
     partprobe命令————更新分区表
       partprobe 硬盘名
     mkfs命令————格式化分区(新建分区只有格式化后才能使用)
         mkfs -t 文件系统类型(ext3、ext4) 分区名
         mkfs.文件系统类型(ext3、ext4) 分区名(等同于上面的)
     fsck/badblocks命令————磁盘检验
         badblocks -sv 分区名
     mount命令————挂载设备(临时,关机重启后无效)
         mount 外部设备 目录  将外部设备挂载在目录里
     umount命令————卸载设备
         umount 挂载点
         umount 外部设备
     fstab文件————挂载文件(重启关机均有效)
         配置信息格式:  设备名  挂载点  格式类型 默认权限 备份标识 检验标识
 
2 .文件的压缩和打包
     2.1  常用的压缩命令
         Compress命令
         gzip/zcat命令
             gzip 文件名(会直接将原文件压缩成.gz后缀的文件,源文件没有了)
             gzip -c 文件名 > 文件名.gz(会直接将原文件压缩成.gz后缀的文件,源文件还存在)
             gzip -d 文件名(会直接将源文件解压,源文件没有了)
             zcat 文件名(查看压缩文件内容,纯文本)
         bzip2/bzcat命令(使用方式同上 注意后缀为bz2) 
     2.2  常用的打包命令
         tar命令(无压缩功能)
             tar cvf  文件名.tar  文件名(打包文件,保留源文件)
             tar cvf  文件名.tar  文件名 --remove-files(打包文件,不保留源文件)
             tar tvf  文件(不解包下查看文件内容)
             tar xvf  文件(解包下查看文件内容)
     2.3  常用备份命令
         ————完全备份 ( 0
         ————差异备份 (级别从高往低)
         ————增量备份 (级别从低往高)
         dump命令————备份
             dump 级别( 0 ~ 9 ) 备份文件名  需备份文件
     2.4  常用还原命令
         restore命令————恢复
         
3 .vim程序编辑器
     vim是vi的增强版
     1 .插入模式:
         1 .i 当前光标后一字符
         2 .I 本行开头
         3 .a 当前光标后后一字符
         4 .A 本行行尾
         5 .o 本行后空一行
         6 .O 本行前空一行
         7 .insert  当前光标
     2 .命令模式:
         1 .esc
         2 .yy————复制行
         3 .p————粘贴行
         4 .dd————删除当前行
         5 .x————删除当前字符
         6 .r————替换当前字符
     3 .末行模式:
         1 .冒号:(保存w、退出q、替换s、定位(直接输入数字跳转到该数字行))
         2 .斜杠/   (查找)
         3 .next 切换下个文件
         4 .first 第一个文件
         5 .last  最后一个文件
     4 .特殊符号:
         1 .^ 表示行开头
         2 .$ 表示尾部
         3 .% 表示所有行
 
4 .认识和学习bash
     1 .查看系统支持的shell
         cat /etc/shells(Linux 默认使用bash)
     2 .which命令————查看命令所在目录
         which 命令名(如果找不到目录且该命令可用,则表示该命令为bash内置命令)
     3 .type命令————查看命令所属信息
         type 命令名
     4 .变量
         1 .变量赋值:变量名=值
         2 .变量使用:$变量名(前面一定要有美元符号)
         3 .变量取消:unset 变量名
         4 .本地变量(只在当前会话有效)
             定义  变量名=变量值
         5 .环境变量(所有会话有效)
             定义  export 变量名=变量值
         6 .位置变量(指定位置的变量)
             $ 0 (第一个变量)
             $ 1 (第二个变量)
             $#(总共几个变量)
             $*(变量分别是...)
         7 .变量查看
             set命令(查看所有变量 即本地和环境变量)
             env/export/export -p 命令(显示环境变量)
         8 .read命令————将键盘输入的值赋值给变量(以回车为结束标识)
             read 变量名
         9 .数组
             定义  xx=(aa bb cc)
             输出  echo ${xx[*]}  全部输出
                   echo ${xx[ 0 ]}  输出第一个元素
                   echo ${#xx[*]} 输出数组元素个数
                   echo ${!xx[*]} 输出所有元素下标
         10 .declare命令————定义变量
             declare -x aa= 1   (是环境变量)
             declare +x aa= 1  (不是环境变量)
             declare -r aa (aa值不能更改,即常量)
         11 .通配符
             1 .[] 匹配一个字符
             2 .-  表示范围  a-z即  a到z
             3 .?  表示任意一个字符
             4 .!或者^  表示非   [^ 0 - 9 ]即非数字
             5 .*  表示任意一个或多个字符
     5 .输出重定向
         1 .>命令————将控制台的输出输出到文件(若文件不存在,则创建该文件,如果存在,则覆盖)
             cal > 文件名 (只能重定向正确的结果)
             cal  2 > 文件名 (只能重定向不正确的结果)
         2 .>>命令————将控制台的输出输出到文件(若文件不存在,则创建该文件,如果存在,则追加)
             cal >> 文件名 (只能重定向正确的结果)
             cal  2 >> 文件名 (只能重定向不正确的结果)
         3 .&>命令————将控制台的输出输出到文件(无论正确或者错误均可重定向,覆盖文件)
     6 .命令特殊符号
         1 .:        命令 1 :命令 2 (即执行完命令 1 后执行命令 2 ,无论命令 1 是否正确)
         2 .&&        命令 1 &&命令 2 (如果命令 1 不正确,不会执行命令 2 )
         3 .||        命令 1 ||命令 2 (如果命令 1 正确,不会执行命令 2 )
     7 .管道
        命令 1 的结果通过管道传给命令 2 做参数  如 命令 1  | 命令 2
         1 .选取命令
             cut————分隔文件内容,适用于有规律的文件 如:cut -d: -f1 文件名(即按:来选取第 1 部分的文件内容)
             grep————选取文件内容,适用于无规律但知道关键字的文件 如:ifconfig eth1 | grep  "Mask" (即按Mask关键字将所在行过来展现出来) 
         2 .排序命令
             sort————将结果排序输出 如: grep -ivn  "abc"  文件名 | sort -r (将结果反向输出)
             wc————字数统计   如:wc 文件名(返回行号、单词数、字符数(空格和换行符均算))
             uniq————结果统计 如:uniq 文件名 -c(返回结果和结果次数)
         3 .双向重定向命令
             tee————将结果输出到文件 如: ifconfig eth1 | tee 文件名 |grep  "Mask"
         4 .字符转换命令
             tr————转换字符 如: tr  'a-z'  'A-Z'  < 文件名
             col————转换字符(将tab转换成空格) 如: col -x  文件名
             join————匹配合并文件(匹配文件 1 和文件 2 关键字再合并,以分隔符标识关键字) 如:join -t  ':'  文件 1  文件 2
             paste————粘贴合并文件(直接粘贴合并)  如:paste 文件 1  文件 2
             expand————(功能与col一致) 如: expand 文件名
         5 .切割命令
             split————把大文件切割成若干个小文件 如: split -b 10k 大文件 小文件(小文件大小为10k)
         6 .参数代换
             xargs————对于不支持管道的命令提供参数支持 如:find -name  "xxx*"  |xargs ls -h
 
5 .shellscript脚本
     1 .开头格式
         #!/bin/bash
     2 .注释行使用 #
     3 .执行脚本
         1 .source 脚本文件名
         2 .bash  脚本文件名
         3 . ./脚本文件名
     4 .返回值
         1 .执行成功返回 0
         2 .执行错误返回非 0
     5 .判断分支
         1 . if ...;then...elif...;then... else ....fi
         2 . case ...esac
         3 .function
     6 .循环分支
         1 . while  /until ...  do  ... done
         2 . for ... do ...done
1 .Linux帐号和ACL权限管理
     1 .帐号和用户组
         1.1  用户标识符————UID(root为 0  系统用户为 1 ~ 499  普通用户为 500 ~ 65535 )
         1.2  用户组标识符————GID()
         1.3  用户帐号信息文件————/etc/passwd
             hadoop:x: 500 : 500 :hadoop:/home/hadoop:/bin/bash
                 hadoop为用户名      x为密码加密符      500 为UID
                 500 为GID         hadoop为注释信息 /home/hadoop为用户家目录
                 /bin/bash为shell信息
         1.4  用户密码信息文件————/etc/shadow
             hadoop:$ 1 $0HZuNsCv$URJuS1MRpjafAVcmYO0bI1: 15957 : 0 : 99999 : 7 :::
                 hadoop为用户名     
                 $ 1 $0HZuNsCv$URJuS1MRpjafAVcmYO0bI1为加密后的密码信息
                 15957 为密码有效日期时间
                 0 为密码最小使用天数
                 99999 为密码最大使用天数
                 7 为最大天数到期后警告天数
     2 .帐号管理
         2.1  useradd命令————添加用户
                 useradd -p  "用户名"  用户名 (创建一个密码跟用户名一样的用户)
         2.2  usermod命令————修改用户信息(含密码)
                 usermod -s /bin/bash 用户名(修改用户的shell信息)
         2.3  userdel命令————删除用户
                 userdel -r 用户名(-r 会删除用户相关缓存和家目录)
         2.4  passwd命令————修改用户信息(仅限密码)
                 passwd 用户名
         2.5  chage命令————修改帐号信息(不含密码)
                 chage -d   2015 - 10 - 1   tom (修改tom最近设置密码时间为 2015 - 10 - 1 )
         2.6  su命令————用户身份切换
                 su - 用户名
         2.7  sudo命令————特权用户切换
                 sudo 用户名
     3 .组管理
         3.1  groupadd命令————添加组
                 如:groupadd 组名
         3.2  groupdel命令————删除组
                 如:groupdel 组名
         3.3  groupmod命令————修改组
                 如:groupmod -n 新组名  旧组名
         3.4  groups命令————查看用户所属组(一个用户可存在于一个或多个组) 
                 如: groups root
         3.5  gpasswd命令————操作用户组 
                 如: gpasswd -a tom test(即把tom用户添加到test组中)
                      gpasswd -d tom test(即把tom用户从test组中删除)
         3.6  newgrp命令————临时将一个组转换成用户的主组 
                 如: newgrp test(即将当前登陆用户的主组修改为test)
     4 .ACL————访问控制列表
         4.1  setfacl命令————设置权限
                 setfacl -m u:hadoop:rw- xx文件(为hadoop用户对xx文件设置rw权限,会覆盖原来权限)
                 setfacl -m g:test:rw- xx文件(为test组对xx文件设置rw权限,会覆盖原来权限)
                 setfacl -x u:hadoop xx.sh(取消hadoop用户对xx文件的权限)
         4.2  getfacl命令————获取权限
                 getfacl xx文件(获取xx文件的权限明细信息)
     5 .用户shell命令
         5.1  查询用户
             who命令————查看当前登陆用户
             last命令————查看历史登陆信息
             lastlog命令————查看所有用户的登陆信息
         5.2  用户对谈
             write命令————发送消息给用户化
                 write 用户 2 (即表示当前用户发送信息给用户 2 ,输入消息以ctrl+d为结束符)
             mesg命令————信息收发状态
                 mesg y(开启当前用户收信息)
                 mesg n(关闭当前用户收信息,如果消息是root发送的即使关闭也能收到)
             wall命令————广播(所有人都能收到)
                 wall 广播内容
 
2 .磁盘配额和高级文件系统管理
     2.1  磁盘配额
         1 .quotacheck命令————设置磁盘配额功能(默认不开启,注意:分区需在挂载时设置是否以配额方式挂载才能设置该功能)
             quotacheck -cug /dev/sda3(即对sda3这个分区设置关于用户和用户组的磁盘配额功能 其中u表示用户 g表示用户组)
         2 .quotaon命令————启动磁盘配额服务
         3 .quotaoff命令————关闭磁盘配额服务
         4 .edquota命令————配置磁盘配额功能信息
             edquota -u 用户 1 (配置用户 1 磁盘配额信息)
             其中配额信息如下:
                 1 .文件系统 
                 2 .文件大小(该用户已有文件)
                 3 .软配额(软限制,满足即通知)(已有文件大小,单位是Kb, 0 为无限) 
                 4 .硬配额(硬限制,满足即不能再创建文件)(已有文件大小,单位是Kb, 0 为无限)
                 5 .文件个数(总文件个数)
                 6 .软配额(软限制,满足即通知)(文件个数, 0 为无限)
                 7 .硬配额(硬限制,满足即不能再创建文件)(文件个数, 0 为无限)
         5 .quota命令————查看配额设置信息
             quota -u 用户 1 (查看用户 1 的配额设置信息) 
     2.2  高级文件系统管理
         1 .RAID——阵列
             RAID0————长度相加(无备份,至少两块)
             RAID1————镜像备份(有备份,至少两块)
             RAID5————校验和(有备份,至少三块) 
         2 .LVM——逻辑虚拟卷  动态扩展或缩小分区空间
                     
3 .计划任务
     3.1  仅执行一次任务
         atq命令————查看计划任务
         at命令————设置计划任务(仅一次)
             at  10302015 (MMDDYYYY) 回车
                 任务 1
                 任务 2
                 任务 3 (ctrl+d为结束符)
         atrm命令————删除计划任务
             atrm 任务序号
         /etc/at.deny 文件出现的用户没权限运行at命令
         /etc/at.allow 文件出现的用户有权限运行at命令(优先级allow > deny) 
     3.2  循环执行任务
         crontab命令————设置计划任务(循环周期性执行)
             crontab -l (查看当前用户计划任务)
             crontab -l -u 用户 1 (查看用户 1 计划任务)
             crontab -e 回车
                 编辑任务(跟vim编辑器使用一致,一个任务可多条命令)
                 任务格式:分  时   天   月   周   命令内容(*为每一)
                           0      19   *   *   *   date(每天 19 时执行date命令)
                           0      19   *   *    1 - 5  date(每周 1 - 5 每天 19 时执行date命令)
             crontab -r (删除计划任务)
             /etc/crontab.deny 文件出现的用户没权限运行crontab命令
             /etc/crontab.allow 文件出现的用户有权限运行crontab命令(优先级allow > deny)   
         run-parts命令————运行某个目录里面的所有脚本
             run-parts 目录名(注意需有可运行权限)
     3.3  可唤醒执行任务————本来应该按计划执行的因为关机而没有执行到的任务,开机后重新执行
         /etc/anacrontab 可唤醒执行任务配置文件
         
4 .程序管理和SELinux
     4.1  工作管理
         jobs命令————查看后台运行工作
         ps aux命令————查看所有运行进程
         bg命令————设置后台运行程序
             bg 序号(设置后台已停止运行的进程继续后台运行)
         fg命令————设置前台运行程序
             fg 序号(设置后台进程前台运行)
         &命令————后台运行标识(关闭控制台不运行)
             firefox &(将firefox这个进程后台启动运行)
         nohup命令————后台运行(关闭控制台也运行)
             nohup 命令 1
         kill命令————杀死进程
             kill - 9  % 1 (杀死后台标识为 1 的进程)
             kill - 9  1 (杀死进程标识为 1 的进程,注意跟前者区分)     
     4.2  进程管理
         ps命令————当前shell的所有进程
         pidof命令————查看某个进程pid(即进程标识号)
             pidof ping
         killall命令————根据进程名杀死进程
             killall - 9  进程名
         renice命令————更改已经正在运行的进程优先级
             renice 优先级数  进程pid
                 其中优先级数取值范围是:- 20 ~ 19   越大执行优先级越低 默认值为 0
         nice命令————更改还未运行的进程优先级
             nice -n - 19  cat(cat命令以- 19 优先级来运行)
         free命令————查看内存资源使用信息
         uptime命令————查看系统资源负荷信息
         vmstat命令————查看系统IO信息
             vmstat  3  6 (即 3 秒钟执行一次vmstat,总共执行 6 次)
     4.3  SELinux————可以理解为进程设置权限
         1 .运行模式
             强制模式————不满足条件时警告并阻止运行
             允许模式————不满足条件时警告但可运行
             关闭模式————不启用selinux
             getenforce命令————获取当前模式状态
             setenforce命令————设置模式
                 setenforce  1 (强制模式)
                 setenforce  0 (允许模式)
             /etc/selinux/config  默认设置文件(重启系统后也生效)          
         2 .启动、关闭、查看
         3 .网络服务运行
         4 .所需的服务
         5 .策略和规则
 
5 .系统服务和daemon
     1 .daemon和service
         service 对外提供的服务
         daemon  一直在系统中运行的进程
         分类:独立服务和非独立服务( super  daemon)
         服务于端口一一对应 即服务使用端口来表示 /etc/services 可查看相关服务端口对应关系
     2 .配置和启动daemon
         独立服务启动文件: /etc/init.d/下的所有服务
         独立服务启动方式(以下两种方式均可):
                     1 .service 服务名 restart
                     2 ./etc/init.d/服务名 restart
         非独立服务启动文件:/etc/xinet.d/下的所有服务
         非独立服务启动步骤:
                     1 .设置配置文件  /etc/xinetd.conf
                     2 .重启xinetd服务  service xinetd restart(由此可见xinetd是独立服务)
     3 .查看系统服务
         netstat命令————查看正在运行服务
             netstat -nutlp(查看当前正在监听的服务)
         chkconfig命令————查看系统启动服务
             chkconfig --list
         setup命令
         ntsysv命令
 
6 .日志文件
     6.1  事件级别
             1 .emerg 恐慌状态
             2 .alert 紧急状态
             3 .crit  临界状态
             4 .err   其他错误状态     
             5 .warning   警告消息
             6 .notice    通知事项
             7 .info      信息消息
             8 .debug     调试
             (由上往下,级别越低)
     6.2  日志配置文件
             /etc/syslog.conf
     6.3  日志格式
             时间 地点 人物 事件
     6.4  日志保护的两种方式
             1 .使用chattr命令设置日志文件只能增加不能减少的权限
             2 .配置中央日志服务器(即将该主机的日志文件通过网络传输给中央日志服务器)
     6.5  日志备份————logrotate
             1 .配置文件 /etc/logrotate.conf
             2 .执行logrotate -f /etc/logrotate.conf
     6.6  日志分析————logwatch
             
7 .启动引导和内核模块
     7.1  Linux启动流程
             1 .BIOS自检
             2 .MBR激活,找到分区表,找到boot分区
             3 .加载文件系统配置文件(即加载文件系统为ext3/ext4)
             4 .加载系统配置文件
             5 .加载内核到内存并初始化 (即加载系统驱动和系统模块)
             6 .运行系统第一个程序/sbin/init
             7 .init读取运行 /etc/inittab 配置文件
             8 .启动配置文件中的相关服务
             9 .加载 /etc/rc.d/rc.local 设置管理员设置的系统启动项
             10 .加载其他一些配置文件
     7.2  内核模块       
             模块文件  /lib/modules/下
             lsmod命令————查看系统加载模块
             modinfo命令————查看某个模块的信息
                 modinfo 模块名
     7.3  BootLoad引导器
             grub文件 /boot/grub
             两个stage1和*stage1_5 其中*stage1_5是文件系统类型信息
             stage2存储系统内核配置信息
1 .系统设置工具(网络和打印机)和硬件检测
     1.1  setup工具
         1.1 . 1  用户身份验证设置
         1.1 . 2  网络配置
         1.1 . 3  防火墙设置
         1.1 . 4  键盘形式设置
         1.1 . 5  时区设置
         1.1 . 6  系统服务设置
         1.1 . 7  X界面设置
     1.2  设置打印机
         lpr命令————添加打印请求
         lpq命令————查看打印请求
         lprm命令————删除打印请求
     1.3  硬件数据收集和Im_sensors
         1.3 . 1  硬件数据收集
               lspci命令————查看pci硬件信息
                 lspci | grep -i net (查看网卡信息)
               lsusb命令————查看usb硬件信息
               iostat命令————监控硬件信息
                 iostat -c  1  3 (每 1 秒钟监控cpu使用信息,总共 3 次)
               hal-device-manage命令————查看硬件信息(相当windows的设备管理器)     
         1.3 . 2  Im_sensors————查看硬件温度信息
                 1 .安装————pkgs.org下载相关包
                 2 .配置和启动相关模块
                 3 .运行sensors命令
 
2 .软件包安装
     2.1  源码包安装————可以指定安装路径,但很麻烦
         安装gcc(编译源码包需要用到)
         解压源码包(一般后缀为.tar.gz)  tar zvxf 文件名
         进入解压目录,运行configure文件生成makefile文件  ./configure --prefix=需要安装到的文件夹名(默认安装到/usr/local)
         编译   make
         安装   make install  
     2.2  rpm包安装————不可以指定安装路径且有可能存在包依赖,但很简便
             rpm命令————安装或卸载软件
                 rpm -ivh 文件包名(i为安装,v为显示进度,h为校验签名)
                 rmp -qa(q为查询,a为全部包)
                 rmp -ql 包名 (查看安装文件路径)
                 rmp -qc 包名 (查看配置文件路径)
                 rmp -e  软件名 (卸载软件)
                 rmp -Uvh 包名 (更新软件包,先卸载旧包再安装新包)
1 .连接到Internet
     1.1  配置网络信息
             dmesg命令————查看网卡信息
                 dmesg | grep -i net
             ifconfig命令————查看IP、网关等相关信息
                 ifconfig(可查看活跃的网卡)
                 ifconfig -a (查看所有的网卡)
     1.2  配置文件
             /etc/sysconfig/network  -- 全局网络配置即更改后所有网卡都生效
             /etc/sysconfig/network-scripts/ifcfg-eth0  --针对eth0网卡的配置信息
     1.3  重启网络
         修改完配置或者参数后需重启网络才能生效
             service network restart
     1.4  网络常用命令
             ip命令————网络参数综合命令
                 ip link show eth0 (显示网卡eth0的硬件地址信息)
                 ip addr show eth0 (显示网卡eth0的ip信息)
             route命令————修改路由
                 route -n
                 route add  default  gw  192.168 . 1.1 (给所有网卡添加网关)
                 route add  default  gw  192.168 . 1.1  dev eth0(给eth0添加网关)
                 route del  default  gw  192.168 . 1.1 (删除网关)
             ping命令————查看两台主机沟通
                 ping Ip地址
             traceroute命令————分析节点之间的信息
                 traceroute Ip地址
     1.5  网络排错
         1 .硬件问题
             网线
             设备
         2 .软件问题
             IP参数
             路由设置
             服务和防火墙
         3 .步骤
             网卡工作确认
             连接设备检测
             IP参数确认
             路由表规则确认
             主机名和DNS错误
             服务和路由设备出问题
             Internet供应商问题
     1.6  动静态配置路由映射
         1 .静态——————配置路由表
         2 .动态——————安装相关包,配置充当路由的服务器
     1.7  ARP代理配置
             
2 .防火墙
     2.1  Iptables工具
           2.1 . 1  数据包进入流程规则
                     第一条规则匹配成功后,后面的规则不再匹配,如此后推到最后
           2.1 . 2  表格和链
                 filter表————过滤表
                     Input链——————进来
                     Output链————出去
                     Forward链————内部访问
                 nat表————地址转换表
                     POSTROUTING链————内部IP转公网IP(源地址转换)
                     PREROUTING链——————公网IP转内部IP(目的地址转换)
           2.1 . 3  语法 
                 iptable -t filter -A{I,D} INPUT{OUTPUT,FORWARD} { 1 } -p tcp{udp,icmp}
                         {!} -s  192.168 . 1.1 / 24  --sport m:n --dport x:y -j ACCEPT{DROP,REJECT}
                 
                     -t:(不指定默认为filter表)
                     -A{I,D}:添加 A/修改 I/删除 D
                     INPUT{OUTPUT,FORWARD}:规则链对应项
                     { 1 }:(-此条只有当选择删除或者修改时才需要写, 1 为规则号)
                     tcp{udp,icmp} :协议对应项
                     {!}:不允许
                     -s  192.168 . 1.1 / 24 :源地址
                     --sport m:n ---源地址对应从m到n的端口
                     --dport x:y ---目标地址对应从x到y的端口
                     ACCEPT{DROP,REJECT}:满足规则后所做的操作  允许/丢弃/拒绝
                 service iptables save(修改后一定要保存)
                 
3 .架构DHCP服务器
     3.1  架构流程
         1 .打开端口( 67 - 68
             iptables -I INPUT  1  -p tcp --dport  67  -j ACCEPT
             iptables -I INPUT  1  -p udp --dport  67  -j ACCEPT
             iptables -I INPUT  1  -p tcp --dport  68  -j ACCEPT
             iptables -I INPUT  1  -p udp --dport  68  -j ACCEPT
             service iptables save(保存)
         2 .安装dhcp软件
             yum install dhcp -y(-y 为所有选项y/n时默认选择y)
         3 .配置参数文件
             cd /etc/dhcp
             vim dhcp.conf(默认为空,可参考模板,路径详见文件)
                 修改里面的相关参数(具体含义可度娘)
         4 .重启服务
             service dhcpd restart
         5 .工作原理
             1 .客户端启动发送discover给域中的所有机子
             2 .域中的dhcp服务器收到信息后回复一个offer
             3 .客户机收到第一个offer向域中的所有服务器发送停止发送广播信号,并发送request给选定服务器
             4 .服务器收到request后发送ack给客户机确认IP
                     
4 .NFS服务器(相当windows下的文件共享)      
     4.2  架构流程
         1 .工作原理
             RPC—————远程过程调用
             由服务器调用RPC分配端口,客户端在访问时调用rpc查询端口,再连接这些端口         
         2 .安装NFS
             yum install nfs-utils -y
         3 .参数设置
             vim /etc/sysconfig/nfs
         4 .打开端口
             iptables -I INPUT  1  -p tcp --dport  111  -j ACCEPT
             iptables -I INPUT  1  -p udp --dport  111  -j ACCEPT
             iptables -I INPUT  1  -p tcp --dport  2049  -j ACCEPT
             iptables -I INPUT  1  -p udp --dport  2049  -j ACCEPT
             iptables -I INPUT  1  -p tcp --dport  4000 : 4002  -j ACCEPT
             iptables -I INPUT  1  -p udp --dport  4000 : 4002  -j ACCEPT
             (其中 111 为rpc端口   2049 为nfs端口   4000 ~ 4002 为配置文件中所设端口)
         5 .设置访问目录
             vim /etc/exports
                 共享目录    范围(属性 1 ,属性 2 ,......)
                 如:/xx   192.168 . 1.0 / 24 (rw,sync)
             exportfs -arv(修改完配置文件后,执行这条语句无需重启服务)
         6 .挂载共享目录并设置相关权限
                 mount  192.168 . 77.80 :/xx /mnt
                 chmod  777  /xx
         7 .重启服务
1 .SAMBA服务器————(linux和windows的文件共享)
     1.1  安装
         yum install samba -yum
     1.2  配置文件
         /etc/samba/smb.conf(具体参数可度娘)
     1.3  具体服务
         nmbd————提供旧系统服务(可启动也可以不启动)
         smbd————主进程(必须启动)
     1.4  打开端口
         udp: 137 ~ 138
         tcp: 139 45
     1.5  更改共享文件夹的上下文
         chcon -t samba_share /xx/
     1.6  更改布尔值
         setenforce  0 (关闭) //访问不了的話关闭它
         setenforce  1 (开启)
     1.6  重启服务
         service smb restart
     1.7  异常排查
         1 .配置文件是否开启写权限
         2 .文件夹是否开启写权限
         3 .更改上下文或者X-linux的布尔值
     1.8  创建samba的用户和密码(必须是系统中存在的用户)
         samba用户名是系统的用户
         samba密码(可以跟系统密码不一致)
             添加:
                 smbpasswd -a 用户名
             禁用:
                 smbpasswd -d 用户名
             启用:
                 smbpasswd -e 用户名
     1.9  清理连接缓存
         net use * /del(windows cmd命令下执行)
         
2 .WEB服务器————LAMP(L linux A apache M mysql P php)
     2.1  Apache服务器安装
         1 .服务安装
             yum install httpd\* -y
         2 .配置文件
             配置文件目录 /etc/httpd/
             具体配置项可度娘
         3 .打开端口
             iptables -I INPUT  1  -p tcp --dport  80  -j ACCEPT
             iptables -I INPUT  1  -p udp --dport  80  -j ACCEPT
             service iptables save
         4 .重启服务
             service httpd restart
 
3 .FTP服务器
     3.1  工作模式————相对服务器而言
             主动模式:服务器使用 20 端口主动连接客户端
             被动模式:客户端使用服务器端的 21 端口连接
     3.2  安装
             yum install vsftpd -y
     3.3  配置文件
             配置文件夹  /etc/vsftpd
             vim /etc/vsftpd/vsftpd.conf
             
     3.4  打开端口
             iptables -I INPUT  1  -p tcp --dport  20 : 21  -j ACCEPT
             iptables -I INPUT  1  -p udp --dport  20 : 21  -j ACCEPT
             service iptables save
     3.5  重启服务
             service vsftpd restart

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值