作为程序员一定要保持良好的睡眠,才能好编程

linux常用命令-学习文档

发布时间:2020-01-15

linux操作系统

这个操作系统和苹果系统差不多,菜单栏在上面。

 linux为什么每打开一个文件夹就要新创建 一下窗口?
 
 这是因为系统默认设置的,那我们应该怎么设置?
 打开一个文件夹,edit-->preferences-->Behavior
 把 Always open in borwser windows 打上勾,即可 就不会打开多个文件夹了。
 

  那么我们的菜单在哪里?Applications  犹如windows的开始菜单。

  那么我们如何来打开linux控制端呢?  CLI
  Applications->system->terminal(use the command line) 打开了命令行模式
 
  places->connect to server 这里可以打开连接软件 连接远程机器、共享等
   
   我们使用的shell一般都是bash

   提示符号:$ 、# 这两个符号提示
   $ 这个符号是普通用户
   # 这是root超级管理员
   
   hostname 查看主机名
   exit 退出
   clear 清屏
   ls  列出所有的所有的文件夹  list缩写
   uname 底层 返回所在的操作系统
         -r  内核版本号 
         -a  所有信息   --all

   如何通过命令行打开火狐
   firefox 

   ctrl+c 可以终止当前进程

   firefox & 当加上&这个符号的话,则此进程在后台运行。不受当前终端影响。

   tab可以可以自动补全单词。例如我们输入 uname 这个命令
   uname 当输入成这样的时候,按tab这个键补全。
   tab 可以自动补全文件名
   un 当输入这个un的时候,按两下tab的时候 可以把un 开头的命令全部列出来。供选择。

   可以通过上下键来选择曾经执行过的命令。也可以通过history来查看。
   ctrl+r可以在历史记录中查看以前输入过的命令。
   
   看看通配符:
   * 匹配0个或多个任意字符
   ? 匹配0个或1个字符
   [0-9] 匹配0-9的文件
   [a-z] 匹配a-z的文件
   [^a-z] 匹配不是a-z的文件
   ls Do[a-z]ument 这个命令 

   如何切换用户
   su 
   su - 这里这个横杠,则创建一个全新的环境来运行,会初始化当前用户的各种环境变量

   su root  passowrd song
   即可切换用户 
   sudo 让普通用户拥有执行超级管理员权限。

   id 显示当前用户的信息
   passwd 修改用户密码

   pwd 显示当前所在的文件目录.

   & 在命令后边加一个&后,就是在后台运行 。
   jobs 可以查看 在后台运行的命令。

   sleep 5000 等待5000毫秒后再执行。 通过 ctrl+c 可以终止当前命令。
   bg 2 通过bg可以继续让命令在后台运行 。
   fg 2 可以把后台作业在前台运行 。


   linux文件基本操作
   1.如何复制文件或目录
     cp 源文件 目标文件
     -r 递归复制整个文件夹。
     -v 显示复制的详细信息(可以知道复制的进程)
     
    cp Document Document2   把document这个文件下的文件复制到document2这个目录下。

    cp -r Document Document2 复制Document这个目录复制到Document2这个目录。

    当前目录,复制,则是重命名。

    rm 删除一个文件
    rm Document/a.txt 删除这个目录
    rm -r  Document 删除文件夹以及这里的所有文件
    rm -ri Document 交互式的删除文件,则会提问你,这是否要删除.


    mkdir user  创建目录  mkdir -p /user/php/swoole  连续创建目录
    
    rm -r 删除非空目录也使用这个命令。


    第5讲  系统目录
    
    proc 实时文件 这个文件夹不存在硬盘里,而只是保存在内存中
    
    cd proc 回车
    
    cat cpuinfo 可以查看cpu运行的状态 。
    
    cat meminfo 查看内存大小

    系统常用命令
    
    date 显示当前系统时间  
         date 
         date -u
         date +%Y--%m--%d
         date -s "16:20:20"  修改当前时间 
			cannot set date: Operation not permitted   提示没有操作权限e
         当然这必须是超级管理员才可以的。

         cal 显示一个日历
         uptime 查看当前系统运行时间。


    输出、查看命令
	    echo 用于显示输入内容
	    cat 用于显示文件内容
	    more 用于翻页显示文件内容(只能向下翻页)
	    less 用于翻页显示文件内容(可以上下翻页)
	    
	    head 用于显示文件头几行(默认10行)
	    head -n 则返回指定的条数

	    tail 用于显示文件后几行(默认显示10行)
	         -n 指定显示的条数
	         -f 追踪(用于日志显示)
	
	查看硬件信息

		lspci 用于查看pci设备
			-v 查看详细信息
		
		lsusb用于查看usb设备
		    -v查看详细信息

		lsmod 用于查看加载模块(驱动)
		

	关机、重启

		shutdown 
		  -h 关闭计算机
		  -r 重新启动

		 立即关机:shutdown -h now
		 10分钟后关机: shutdown -h +10
		 定时关机: shutdown -h 23:20
		 立即重新启动   shutdown -r now
		 poweroff  立即关闭计算机
		 reboot	   重新启动

	归档、压缩
		
		zip (这里不使用rar因为有版权限制。)这里我们采用 zip 命令来完成.

		zip  test.zip myfile
		
		unzip test.zip

		命令tar用于归档文件

		tar -cvf etc.tar /etc   
		创建了一个归档文件,但并不会对这个文件进行压缩。只是合并在一起。

		tar -xvf etc.tar 释放这个压缩文件。  把这个tar文件释放出来.

		tar -cvzf etc.tar.gz /etc 归档并压缩 ,命名的文件必须是以.tar.gz这个后缀为名。

		
		命令du 表示查看某个目录或某个文件所占用空间的大小 

		du -sh 文件名. 查看文件大小。
		
		du 命令默认以kb为单位
		
		-m 以兆为单位
		-h 表示系统自动调节单位 是兆  或 G
		-k 以kb为单位  和默认的是一样的
		

		file 文件名  查看文件的信息。

	查找:

		locate keyword
			此命令需要预先建立数据库,数据库默认每天更新一次。
			可以使用updatedb命令手工建立、更新数据库
		
		find 查找位置、查找参数
			 find . -name *keyword*  .代表当前目录  在当前目录中查找 文件名 包含 keyword 的文件。
			 find / -name *.conf  /代表根目录 找到以conf结尾的全部文件

			 find / -perm 777  -perm(权限) 查找文件777这个文件。 

			 find / -type d 查找文件类型是目录的文件。

			 find . -name "a*" -exec ls -l {} \;
			 注意 : -exec {} \; 这是固定格式。

	    -perm 权限 
	    -name 名称
	    -user 基于用户
	    -group 类型
	    -size  大小

 	
 	查看磁盘或目录
 	
 	df 用户查看已挂载磁盘的总容量,使用容量、剩余容量 可以不加任何参数  默认以kb为单位返回。
 	
 	df常用的选项有  -i  -h -k  -m 
 	-h 表示使用合适的单位显示 例如 G
 	
 	
 	VI VIM 文本编辑器

 	 vim命令 打开文件 
 	 	:q 可以退出vim

 	  vi 拥有三种模式
 	  	 A:命令模式(常规模式)
 	  	 B: 插入模式 在命令模式,按i 可以变成插入模式。   I  a A O o R r 都可以进入编辑模式
 	  	 C: ex模式  在命令模式按一下: 即可进入ex模式。

 	  	 在插入模式或ex模式,按esc都返回命令模式。
 	  	 命令模式下的一些常用命令:
 	  	 i 光标前插入文本
 	  	 o 当前行下面插入新行。
 	  	 dd 删除整行。
 	  	 yy 将当前行的放入缓冲区
 	  	 n+yy 复制多行
 	  	 p 把缓冲区的内容粘贴出来。
 	  	 u 撤销上一个操作。
 	  	 r 替换当前字符。
 	  	 / 查找关键字。

 	  	 进入ex模式保存。退出、强制退出、

 	  	 :w 保存当前文件
 	  	 :q 退出
 	  	 :q! 强制退出、不保存
 	  	 :x 保存并退出
 	  	 :set number 显示行号
 	  	 :! 执行一个系统命令。比如 ls who pwd
 	  	 :sh 切换到shell窗口,那我们如何再返回去呢? ctrl+d 返回vim
 	  	 
 	  	 gg 移动到首行
 	  	 G 移动到尾行
 	  	  0 到行首
 	  	  shift+4 到行尾
 	  	  
 	  	  命令模式
 	  	  /word 向光标之后查找一个字符串 word
 	  	  ?word 向光标之前查找一个字符串 word  按 n 向前搜索
 	  	  
 	  	  :n1,n2s/word1/word2/g 在 n1到n2行 把word1 替换到  word2 不加g只替换每一行的第一个word1
 	  	  
 	  	  :1,$s/word1/word2/g 全文替换
 	  	  
 	  	 
 	  	 

 	分区的概念:
 		/dev/sda  
 		/dev/hda  	 
 		sd 和hd 这是根据硬件来定义的,如果硬盘是IDE 那么则是hd
 		如果是usb、串口的那么则是sd

 		要查看sda 则要进入 cd /dev/这个目录。
 		ls /dev/sda* 则这样会查看 到4个

 		MBR分区机制。 支持32位和64位系统。
 					  支持分区数量有限。
 					  只支持不超过2T的硬盘。(有第三方解决方法)
 		MBR分区占用512个字节。
 		MBR 最多可以创建4个主分区
 			扩展分区必须是占用一个主分区
 				逻辑分区是创建在扩展分区里的。
 					63个IDE  15个SCSI分区。

 		GPT 一个较新的分区机制。解决MBR的一些限制。

          但GPT要求硬件支持一些新 技术UEFI。
    我们linux自带的fdisk

    fdisk只有具有超级管理员用户的权限才能运行。具有一定的毁坏性。
    ,可以直接使用root用户来登录。或sudo 、su 超级管理员来使用。

    fdisk -l  显示硬盘列表.

    
  这个操作,必须是在超级管理员下才可以使用。
  # fdisk /dev/sda  显示硬盘信息

  Command (m for help): m

  Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition  添加一个新的分区
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id   修改分区ID
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit  保存硬盘信息
   x   extra functionality (experts only)


 

  当我们按下n 的时候,会提示
  command action 
    e extended 拓展分区
    p primary partition(1-4) 主分区

    我们这里按一下p  创建主分区.
      +2G 就是创建一个2G大小的分区。
    拓展分区是不能使用的。要使用的话,必须在拓展分区上建立逻辑分区,
    那我们如何来创建逻辑分区?
      n  
        l logical (5 or over)
        p primary partition(1-4)

      l
        +2G 回车,即可创建一个逻辑分区。



      t
        Hex code(type L to list codes)  L 

    partprobe 更新分区表.  有时候分区信息会不显示。

    cat /proc/partitions 显示分区信息


    文件系统:这里说的文件系统指是什么呢?
              创建文件系统又称之为格式化。
              没有文件系统的设备被称之为裸(raw)设备
      常见的文件设备有:fat32  ntfs   ext2 ext3  ext4 xfs hfs 等。
      windows 常见的文件系统格式是NTFS
      Linux 是Ext3 Ext4 

      如何在磁盘上创建文件系统呢? 使用 mke2fs -t ext4 /dev/sda1    这样就创建完毕了。
      mke2fs -t 是标准格式   ext4 是文件系统、 /dev/sda1 是硬盘。       
      -c  文件系统检测是否有坏损块。
      -L  指定卷表
      -j  建立日志信息(ext3、ext4 默认带日志)

      dumpe2fs /dev/sda1  显示硬盘信息。

      fsck用于检查并经济关系是损坏的文件系统。
          系统默认创建:lost+found每一个目录都会有一个这样的文件夹。


    如何获取linux的帮助
      -h 或使用--help
      
      ls --help 查看ls所有的参数.


      man是linux最常用的帮助命令.
          man ls 
      会显示出这个ls都有哪些功能,介绍

      使用:q 退出.

      man -k pass 搜索找含有pass的命令
      info 和man 类似 

      info ls 显示更详细的帮助文件。



      用户和组
        每一个用户都有一个shell

        root      ID为0,则root用户
        系统用户  为某些服务来创建
        普通用户

        id     显示此用户的信息。
        passwd 修改密码


        切换到root用户下:(这是三个文件) 需要使用cat命令来查看
         /etc/passwd 保存用户信息
         /etc/shadow 保存密码
         /etc/group  保存组信息

         cat /etc/passwd  用于查看用户信息

         who am i  当前的用户
         who   当前登录到此系统的用户
         w  显示用户,并显示当前用户在做什么。


         添加用户 :
         useradd nash_su  创建一个nash_su的用户

         touch file 新建一个文件夹 
         useradd 支持以下的参数:
          -d 家目录
          -s 登录shell  
          -M  表示不建立家目录
          -u userID
          -g 主族
          -G 附属组(最多31个,多个可以使用","分隔)

          useradd -u 666 -G nash_su testuser2

          passwd testuser1 回车
          出现 new password: 这里输入新密码
               Retype new password: 确认密码
               passwd:all authentication tokens updated successfully
          修改密码成功 successfully.

    修改用户:
      usermod 参数 用户名
        usermod -l newtestuser testuser 修改用户名
        usermod -u 777 testuser 把用户ID改成777
        
        -d 家目录
        -s 登录shell
        -u userID
        -g 主族
        -G 附属组(最多31个,多个可以使用","分隔)

    删除用户
      userdel testuser (删除用户,但不删除家目录)
      userdel -r testuser(删除用户并删除家目录)

  组:
      groupadd nash_su 添加nash_su这个组
      
      groupmod -n newname oldname 修改组名
      groupmod -g newGid  oldGid  修改组ID

        例如:groupmod -n nash_su22 nash_su  将nash_su 更改为 nash_su22
     
      groupdel nash_su 删除nash_su 这个组.


      linux 权限操作:

        linux 在三种权限  r(读)  w(写入)  x(执行)   
              对于目录来说,必须有x(执行)这个权限

        d文件夹
        -文件
        l引用地址
        ls -r  显示   
          drwxr-xr-x.  2 root root  4096 Jun 24 02:00 xinetd.d
          drwxr-xr-x.  2 root root  4096 Jun 24 01:52 xml
          drwxr-xr-x.  5 root root  4096 Jun 24 01:56 yum
          lrwxrwxrwx.  1 root root     10 Jun 24 01:54 rc0.d -> rc.d/rc0.d
          lrwxrwxrwx.  1 root root     10 Jun 24 01:54 rc1.d -> rc.d/rc1.d
          lrwxrwxrwx.  1 root root     10 Jun 24 01:54 rc2.d -> rc.d/rc2.d
          lrwxrwxrwx.  1 root root     10 Jun 24 01:54 rc3.d -> rc.d/rc3.d
          lrwxrwxrwx.  1 root root     10 Jun 24 01:54 rc4.d -> rc.d/rc4.d
          lrwxrwxrwx.  1 root root     10 Jun 24 01:54 rc5.d -> rc.d/rc5.d
          lrwxrwxrwx.  1 root root     10 Jun 24 01:54 rc6.d -> rc.d/rc6.d
          drwxr-xr-x. 10 root root   4096 Jun 23 18:06 rc.d


        chown可以修改这个文件所属关系.

        chown nash_su new_file  把new_file文件夹所属权修改成nash_su(这只是将new_file 这个文件夹的权限修改了,但它的子目录没有被修改)

        chown -R nash_su new_file 这里加上了大R 就可以把它的子类也修改成nash_su。

        chgrp修改组 。

          chgrp nash_su new_file
          chgrp -R nash_su new_file

        修改权限
        chmod
          u、g、o 分别代表 用户、组、其他

          +、- 指是增加还是删除权限 

          chmod u+w 文件夹名    那么只会将此文件夹加上w权限,而它的子目录不会被添加。怎么执行呢? 加 R

          chmod -R u+w 文件夹名    给u加上写的权限
          chmod -R u-w 文件夹名   把u的写权限全部去掉

          drwxr-xr-x.
          lrwxrwxrwx.
          除去第一个字母,后边是依次是 用户 、组、其他
          r读
          w写
          x执行
          每一组都是三个字母。

          chmod -R go+w  组和其他都加上写的权限

          使用数字的方式修改权限 。
             r=4
             w=2
             x=1
          r+x=5
          r+w=6
          rwx=7

          chmod -R 777 文件夹名 修改成777 都可以修改、执行、读取


          ls -ld 


          扩展权限
            umask  
              对于普通用户来说 002  root用户是022
             目录创建默认是 777-umask
             文件创建默认是 666-umask
             如何判断创建这个新文件的权限是什么,这还取决于当前登录的用户是什么?是否具有超级管理员的权限. 
          直接在控制端输入: umask  可以打印出当前umask的值。


      linux网络配置
          IPV4 编址  32位长 
              一个IPV4分为两个部分 网络部分、主机部分
              那么我如何知道哪个是网络部分。这里就要借助于子网掩 码来确定网络部分。
              ARP网络地址解析协议。

              网关:就是为了跨网访问使用的。

          IPV6 编址  128位长  

          以太网连接
           ifconfig -a  显示网卡信息

           ifconfig eth0 直接显示这个接口的网卡信息.

           ifup eth0 启用eth0这个网卡

           ifdown eth0 禁用eth0这个网卡.


           使用setup命令来配置网卡:

             network configuration

           
           网卡的配置信息:
              /etc/sysconfig/newwork-scripts/fcfg-eth0

            如果需要编辑这个文件,可以使用vi  或 vim 来编辑。并保存.
            DNS配置文件
            /etc/resolv.conf 
            主机名配置:
            /etc/sysconfig/newwork这个文件。


            网络测试命令:
              ping 192.168.1.1
              ping www.baidu.com 
              如果需要停止的话,直接ctrl+c取消即可。

              测试DNS解析
                  host 域名
                  host www.baidu.com

              显示路由表
                 ip route

              追踪到达目标地址的网络路径
                 traceroute www.baidu.com

               mtr进行网络质量测试:
                  mtr www.cimie.com  

  修改主机名 :
        hostname 直接显示主机名
        hostname mycomputer 实时修改,当重新启动后就没有了,不会保存。

    如果要永久保存这个主机名,还是要修改
    /etc/sysconfig/  network 这个文件。


    管道及重定向
        stdin  标准输入   0  键盘
        stdout 标准输出   1  终端
        stderr 标准错误   2  终端
      命令是通过stdin接收参数或数据,通过stdout 和stderr 输出信息。


      重定向 
        关键字
          >    重定向到文件  覆盖
               echo "xxxxx" > outfile
          >>   重定向到文件,追加
               echo "SONG" >> outfile (把"SONG"追加到outfile 文件)
          2>   将标准错误
          2>&1 将标准错误和标准输出结合在一起 
          <     小于号做为标准输入到文件并搜索出keyword显示出来
                grep keyword < /etc/passwd  

          管道 | 竖线。

              通常是用来组合不同的命令。

        linux 文本处理      
          
          cat 查看文件内容
          more
          less
          head
          tail

          基于关键字搜索文本
            
            grep 正则表达式

            -i 搜索时不区分大小写
            -n 显示结果所在行。
            -v 输出不带关键字的行。
            -Ax 输出的时候包含结果所在行之后的指定行数.
            -Bx 输出的时候包含结果所在行之前的指定行数

         cut 基于列处理文本内容
            
            -d 指定分割字符(默认分割符:tab)
            -f 指定输出列号
            -c 基于字符进行切割

            cut -d: -fl /etc/passwd
            cut -c2-6 /etc/passwd

            wc用以统计文本信息            
              wc 文本文件
                -l 只统计行数
                -w 统计单词数量
                -c 统计字节数
                -m 统计字符数

      sort 排序文本
        -r 倒序排序
        -n 基于数字进行排序

      产出重复行
        unlq 删除重复行(默认只能删除相邻的重复行)
        cat filename | unlq  
        sort -u 也能删除重复行。

      diff比较两个文件的区别。
        -i 忽略大小写
        -b 忽略空格数量的改变
        -u  统一显示比较显示信息(两个文件不同)
        diff -u file1 file2 > aa.txt 将两上不同的文件比较后,重定向到aa.txt 这个文件。


        tr 删除关键字
           tr -u "apple" "" <aa.txt

        搜索替换
          sed 搜索替换。


        RPM linux软件管理
          
          rpm -i software.rpm  安装
          rpm -e software 删除
          rpm -U software-new.rpm 升级
          
          rpm支持通过http/ftp协议安装软件
          rpm -ivh http://www.lllll.com/software.rpm

          -v 显示相关信息
          -h 显示进度条


          qip 查看rpm 文件

          -k  验证软件是否被修改。


          YUM 仓库 进行软件安装和测试。


          -----------------------------------------
          linux系统服务

          service 是运行在操作后台的一个或多个程序,没有图形界面。
          服务通常是不中断的,随时接收请求、提供服务。

          例如:linux (apache 、nginx)

              服务器最多的就是网络服务。
                ftp
                www
                邮件
                网游
                等服务。
          system V 

            -0 关机
            -3 多用户模式
            -5 图形界面
            -6 重新启动

            不同的用户启动的服务器服务是不一样的。
              对应有启动和不启动服务。 

          system V SCRIPT   systemV启动脚本

            service  服务器名   start/stop/restart/status

            service network  start  开启网卡
            service network  stop 关闭网卡

            /etc/rc.d 
            init.d

            //显示系统所有的服务。
            ls /etc/init.d/

            ls 显示文件,当显示的颜色为绿色的时候,表示可执行文件

            runlevel 返回 5 图形界面


    chkconfig 设置服务开机是否启动 。

            chkconfig 服务名 on   开机启动
            chkconfig 服务名 off  开机不启动
            chkconfig --list 把所有的服务信息列出来

    cent os 6默认不会安装xinetd 需要手工安装
      yum install xinetd
      chkconfig xinetd off 

      xinetd控制的服务配置文件保存在/etc/xinetd.d/下面。


      日志都是以一个纯文本的文件存在的。
        
        系统的运行状态、错误信息.可以进行分析 、保存历史记录。
  
    Linux系统一般会保存以下类型的日志:

        A:内核信息
        B:服务信息
        C:应用程序信息
    linux系统中实现日志功能的服务称之为 syslog 
    在cent os6以上,称之为 rsyslog

     service rsyslog status 查看服务的状态

     /var/log/ 默认查看日志信息(保存在这个目录中)

     tail messages 通过这个命令来显示日志信息

     tail -f messages (实时监控日志信息)这个命令就是可以实时检测文件日志的变化。
     通过 ctrl+c 可以退出 
    
    rsyslog配置文件为:/etc/rsyslog.conf 

    styslog配置
      cd /etc/
      less rsyslog.conf 打这个文件,使用vim 进行修改

      如果需要将日志发送到一个统一的日志服务器,那么需要配置:

      *.* @192.168.1.1 使用(UDP)协议发送

      *.* @@192.168.1.1 使用TCP/IP协议发送到这台服务器



      DNS服务:

        域名解析 要使用域名的话,必须是要有DNS的

        gethostbyname() 使用这个函数

        /etc/hosts   保存IP地址到域名的一个对应。
        /etc/newworks

        在查DNS服务器的时候,一般都会去查hosts这个文件,然后再去查DNS

        我们可以通过 /etc/nsswitch.com 控制DNS查询顺序

        host www.cimie.com 输出的信息较为简单。
        dig www.cimie.com 输出的信息更详细

        dig +trace www.cimie.com 查看域名解析全过程

        DNS的信息通过一个叫资源记录(RR Resource Record)的格式进行保存,
        常用属性有:
          -NAME
          -CLASS
          -TYPE
          -RDATA

          CNAME 叫别名 WWW
          MX 邮箱

           A    IPV4 IP地址
           AAAA IPV6 IP地址

  一个zone文件保存


  dig -t mx cimie.com
  dig -c www.cimie.com
  dig -t soa cimie.com

  现使用最为广泛的DNS服务器软件是BIND (支持操作系统:linux unix mac windows)

  DNS使用53 953这两个端口
  
  yum install -y bind bind-chroot bind-utlis

  bind DNS服务器软件   

  yum install -y bind 
  yum install -y bind-chroot
  yum install -y bind-utils

BIND主配置文件保存在两个位置:
  /etc/named.conf -bind服务器配置文件
  /var/named   -zone文件

如果安装了bind-chroot ,bind会被封装到一个伪根目录内,配置文件的位置变为:
  /var/named/chroot/etc/named.conf
  /varnamed/chroot/var/named
所有的文件保存在 
  /usr/share/doc/bind9.8.2/sample  这个目录下两个文件复制到相对应的目录
 
 
 cp -rv /usr/share/doc/bind-9.8.2/sample/etc/* /var/named/chroot/etc/

  cp -rv /usr/share/doc/bind-9.8.2/sample/var/* /var/named/chroot/var/
 

  1. 在配置文件(/var/named/chroot/etc/named.conf)下添加一个zone的定义
       zone"cimie.com"{
        type master;
        file"cimie.com"; 这里和文件名对应起来
       };
   
   //和上面的那个cimie.com 和上面的那file文件属性对应起来。
   /var/named/chroot/var/named/cimie.com.zone

   www  IN A 192.168.1.111
   mail IN A 192.168.1.222
        IN MX mail.cimie.com

  邮箱的配置应该放最前面。


   1.启动bind 服务或刷新配置
      service named start
      service named reload
       
   named-checkconf /var/named/chroot/etc/named.conf

   named-checkzone /cimie.com.zone


  域从服务器

    在主服务器中配置,从服务器抓取主服务器的配置。
    slave服务器,当主服务器有问题时,从服务器接替主服务器,继续服务。

    从服务器的zone配置文件保存在/var/named/slaves



    使用host 或dig命令查看服务


    web服务的一些基本概念
      web服务分为服务端和客户端

      web服务程序 IIS Apache Nginx Lighttpd 有各自的优缺点。

      目前linux使用多的是 Nginx。如何搭建服务端。HTTP使用TCP协议,
      默认使用80端口

      200 正常,请求成功
      301 永久移动,一般用于域名重定向
      304 未修改 一般用于缓存
      401 禁止访问,未授权
      403 禁止访问 没有权限
      404 未找到资源
      500 服务器错误。


      linux apache基本配置

        apache 在linux下基本都默认支持。
          动态的、预创建进程。
          动态模块加载
          虚拟主机
          SSL主机 (金融网站)

      centOS6 默认自带APACHE版本2.2
      使用最多的版本:(2.0、1.9)

      安装apache:

      yum install -y httpd     

      service httpd start 启动apache服务

      http:80
      https:443

      apache 主配置文件:
          /etc/httpd/conf/httpd.conf

      模块配置文件:
        /etc/httpd/conf.d/

      默认日志文件:
        /var/log/httpd/

      apache 默认自动启动,不需要配置
      默认网站根目录:  /var/www/html/目录下面


    apache配置选项:

     /etc/httpd/conf/httpd.conf 常用配置如下:



     KeepAlive off  是否打开持续链接
     MaxKeepAliveRequests 100
     KeepAliveTimeout 15 保活功能15秒
     Listen 80 默认监听80端口 ,如果服务器有多个IP地址,那么可以使用
     Listen 192.168.1.1:80 这样监听某个IP地址

     LoadModule 加载模块

     User apache
     Group apache 
     ServerAdmin root@cimie.com   管理员邮箱
     ServerName www.cimie.com 如果有报错的话,把服务器的名称定义好。
     DocumentRoot "/var/www/html"
     <Directory "/var/www/html">
     </Directory>
     DirectoryIndex index.html index.html.var 默认的首页的文件名(从左到右,优先级)。

     配置好配置文件后:
      /etc/init.d/httpd restart 重新启动httpd服务

      service httpd configtest
      httpd -t

      apache日志记录:
         /var/log/httpd/ 这个目录下
         可以使用ls查看文件夹下面的文件

         tail access_log 记录了服务器的访问。



    HTTP认证(打开就提示用户名和密码)  apache基于用户和密码

      建立了两个密码文件
      htpasswd -cm /etc/httpd/.htpasswd linuxcast
      htpasswd -m /etc/httpd/.htpasswd nash_su

      <Directory "/var/www/html">
        AuthName "name"  #名称随便写
        AuthType basic
        AuthUserFile /etc/httpd/.htpasswd
        Require valid-user
      </Directory>




 虚拟主机:

  虚拟主机分为两种:
      1.基于IP的虚拟主机(IP需要付费)

      2.基于域名的主机 (常用)
          将不同的域名解析到同一个IP地址上。
          <VirtualHost *:80>
             ServerName  www.cimie.com  
             ServerAdmin webmaster@cimie.com
             DocumentRoot /var/www/cimie
          </VirtualHost>

          <VirtualHost *:80>
             ServerName  www.info-cma.org  
             ServerAdmin webmaster@info-cma.org
             DocumentRoot /var/www/info-cma
          </VirtualHost>

          chown apache cimie
          chown apache info-cma  
          让apache这个用户对cimie和info-cma有访问权限。
          然后每个文件夹中,建立文件,
          配置完后,再重新启动
          
          server httpd restart




         一般使用基于域名的虚拟主机,但是如果需要搭建SSL的虚拟主机,则必须使用IP虚拟主机。


         邮件服务:  MUA  用户收发邮件代理。
                    IMAP(在本地操作和服务器同步) 和 POP3两种协议。
                    MDA负责处理垃圾邮件和病毒扫描
                    Mail Dellver Agent
                        procmall 使用最多的是这个程序负责邮件病毒扫描、垃圾邮件。
                    MRA 收邮件使用。


        FTP  服务器

          vsftpd
          yum install -y vsftpd

          service vsftpd start 启动ftp服务

          /etc/vsftpd/ 都是保存在这个目录下

          /etc/vsftpd/vsftpd.conf   主配置文件
          /etc/vsftpd/vsftpd.conf
          /etc/vsftpd/ftpusers 黑名单
          /etc/vsftpd/user_list 控制名单,由配置文件控制是白名单还是黑名单。
          /var/ftp ftp共享目录
          /var/ftp/xferlog  日志信息


          ftp用户分类:正常用户(系统用户)   匿名用户(anonymous)  虚拟用户(ftp-only)

          可以单独设置不允许匿名用户登录:
           打开/etc/vsftpd/vsftpd.conf 配置文件,
           # Allow anonymous FTP? (Beware - allowed by default if you comment this out).
          anonymous_enable=YES
          把anonymous_enable=YES 改成anonymous_enable=NO
          保存退出即可


          命令行的软件
          yum install -y lftp 安装软件

          lftp 127.0.0.1  默认是以匿名参数登录

          lftp -u song 127.0.0.1 通过-u 指定用户名和密码登录。


          从服务器下载一个文件:
          lftp -u song 127.0.0.1 
          cd pub
          get song.tar.gz  

          上传一个文件
          lftp -u song 127.0.0.1 
          cd pub
          put song.tar.gz 
          只要登录的用户对某个文件具有写权限就可以进行上传或下载。

          anonymous_enable=YES  开启匿名用户
          anon_upload_enable=YES 开启上传功能。
          anon_mkdir_write_enable=YES 打开匿名用户创建文件夹功能


          chmod 777 /var/ftp/pub



          DHCP服务器
            进程:/usr/sbin/dhcpd
            脚本: /etc/init.d/dhcpd


            1.安装:
              yum install dhcp

            2.获取配置文件
              cp /user/share/doc/dhcp-version/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
            3.按需要配置,并启动服务


    apache 专题课程

    1. 如何安装apache  
        yum install -y apache     叫:httpd
        rpm -qi httpd 查看htppd的型号和版本
        Version     : 2.2.15
      yum list | grep httpd   查看相关httpd的一些服务。
        httpd.i686                                 2.2.15-30.el6.centos          @updates
        httpd-tools.i686                           2.2.15-30.el6.centos          @updates
        httpd-devel.i686                           2.2.15-30.el6.centos         updates
        httpd-manual.noarch                        2.2.15-30.el6.centos  
        一些apache的软件
    2. 开启服务:  service httpd start
                   service httpd restart
                   service httpd graceful 优雅的重启 在所有用户访问完毕后再重启,不会出现网站打不开的情况。

        chkconfig httpd on  开机开启.

    3. 看看apache配置文件/etc/httpd/conf/httpd.conf       

        /etc/httpd/conf.d  apache的模块文件夹

        /etc/httpd/run  apache主进程的PID

        cat /etc/httpd/run/httpd.pid


        根目录在:  /var/www/
                默认网站:/var/www/html/

        当安装apache服务后,系统会自动加上一个apache的用户,通过这个命令可以查看: cat  etc/passwd | grep apache  


    apache专题二   80默认端口   加密端口:443
      查看apache进程: ps aux |grep httpd
      启动了9个进程,1个主进程(root启动的) 8个子进程(有多个,具体有多少,是根据配置文件来说的)

      netstat -tupln | grep 80  可以看到是httpd
      apache模块化:  httpd -M 查看模块
                     httpd -l  查看静态编译程序模块.


      yum install -y httpd-*  安装所有apache所有的服务。
        时间较长,但可以全部安装

      apache MPM 负责网络监听

       linux profork.c

       httpd -V 显示默认使用的mpm的类型

       Profork  
        通过子进程去处理请求,并会根据请求数量动态生成更多的子进进程。
       Worker 
        worker线程化,多进程的MPM,每个进程可以生成多个线程,每个线程可以处理一个请求。

      apache 进程三   MPM  

        watch -n 1 'ps uax | grep httpd' 监听进程,时时显示

        查看MPM profork
        /etc/httpd/conf/httpd.conf 
        <IfModule prefork.c>
           StartServers 20

        <IfModule>

        适当的调整,在硬件和cpu允许的情况下,调整到最好。

      apache 第四课

        /etc/httpd/conf/httpd.conf 配置文件

          先看看如何配置第一部分:

          ServerTokens  OS    控制返回页角的详细信息
                        Major
                        Full

          ServerRoot "/etc/httpd" 服务主目录

          Timeout 60  超时时间

          keepAlive off 保持链接(默认off)

          User apache
          Group apache

          DirectoryIndex index.html

          defaultType text/plan 默认返回纯文本的。



          不同的服务器,是不同的链接方式

            SSH(Secure SHell)常见远程CLI管理协议


            service sshd status  服务器默认是开启的

            客户端如何链接:
            ssh root@192.16.1.1

             ssh root@192.168.1.1 who 这样的登录,只返回这个命令的结果,就直接退出了。

             scp 用于使用ssh在两台电脑传输文件

             scp 源文件  目标地址

             scp -r myxiaosong.tar.gz root@192.168.72.1:/root/