Unix发展史: 

     1969年,美国贝尔实验室的肯 汤普森在DEC PDP-7机器上开发出了UNIX系统,并和丹尼斯里奇开发完成B语言 

     1971年,肯 汤普森的同时丹尼斯里奇除了UNIX正式版;1973年,完成C语言的开发并将Unix系统第三版用C语言重写,这为提高UNIX系统的可移植性打下基础 



     常见的UNIX主要发型版本 

         AIX         IBM       

         HP-UX       HP 

         Solaris     Sun 

         Linux、BSD  Red Hat 



 Linux发展史: 

     1991年,芬兰大学生李纳斯和后来陆续加入的众多爱好者共同开发完成 



     Linux主要发行版本:redhat centOS SUSE... 

                         ubuntu 

     Linux特点: 

         开源、免费、安全、稳定 

     缺点: 

         易用性差、厂商支持性差 

 开源软件: 

     php、http、python.... 

     特点: 

         绝大多数开源软件免费 

         可以获得软件源代码 

         可以自由传播、改良甚至销售 

 Linux应用领域: 

     基于Linux的网站服务器 

     处理电影娱乐业 

     嵌入式应用 



 /-----------------Linux安装(基于虚拟机)--------------------------/ 





 虚拟机: 

     VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC,以此来实现在一台机器上真正同时运行两个独立的操作系统 

     VMware特点: 

         不需要分区或重新开机就能在同一台Pc上使用多种操作系统 

         本机系统可以与虚拟机系统网络通信 

         可以设定并随时修改虚拟机操作系统的硬件环境 



 Linux安装事要: 

     1.磁盘分区: 

         磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分。 

     2.分区类型: 

         主分区:最多只能有4个 

         扩展分区: 

             最多只能有1个 

             主分区加扩展分区最多有4个 

             不能写入数据,只能包含逻辑分区 

         逻辑分区:分区数超过3个后,自动出现在扩展分区里的描述分区。 

     3.格式化(写入文件系统): 

         windows:fat16(单文件容量最大2G)    fat32(单文件最大4G)     ntfs(单文件最大8G) 

         Linux:  ext2    ext3    ext4 

         //越新的文件系统,支持硬盘分区大小更大,单文件更大,读写速度更快,,数据更安全 

     4. 硬件设备文件名 

         硬件                 设备文件名 

         IDE硬盘                 /dev/hd[a-d] 

         SCSI/SATA/USB硬盘       /dev/sd[a-d] 

         //    /dev/hda1 hd:IDE硬盘 sd:SCSI,SATA硬盘 a:第一块硬盘    1:第一个分区 

         //    /dev/sdv5 第三块scsi硬盘的第一个逻辑分区 

     5.挂载(给每个分区分配挂载点) 

         windows中: 盘符 

                     C:\ 

                     D:\ 

                     E:\ 

         Linux中: 

             硬盘文件名---------指定挂载目录(盘符) 

             /dev/sda1           /boot 

         必须分区: 

             /           ---根分区                                    

             swap分区    ---交换分区,内存2倍,不超过2GB 

         推荐分区: 

             /boot       --启动分区,200MB(相当于windows的隐藏分区) 

     6.密码原则 

         复杂性 

             八位字符以上,大小写字母、数字、符号 

             不能是英文单词 

             不能和用户相关的内容 

         易记忆性 

         时效性 



         栗子: 

             Flzx_3QC    (飞流直下三千尺) 

             !see(5tl)!sayshit(man) 

     7.安装日志: 

         /root/install.log   :存储了安装在系统中的软件包以及其版本信息 

         /root/install.log.syslog:存储了安装过程中留下的事件记录 

         /root/anaconda-ks.cfg:以Kickstart配置文件的格式记录安装过程中设置的选项信息 

     8. 安装完成准备 

         关闭防火墙 

             使用Setup工具关闭 

         关闭SELinux 曾强安全组件 

             临时:setenforce 0 

             永久:vim /etc/selinux/config   disabled    重启生效 

         启动网卡 

             vim  /etc/sysconfig/network-scipts/ifcfg-eth0 

                 修改ONBOOT="yes" 

             重启网络服务 

                 service network restart 



 /---------------------Linux常用命令-----------------------------------/ 



 Linux文件命名规则 

     1.除了/之外,所有的字符都合法,但有些字符最好不用,如空格符、制表符、退格符和字符@#$%()-等 

     2.避免使用 . 作为普通文件名第一个字符; 

     3.大小写铭感(包括文件命名,命令,命令选项,用户名等) 



 Linux命令的格式 

     命令    [选项]  [参数] 

     栗子:    ls  -la /etc 



     命令名称:ls 

     命令英文愿意:list 

     命令所在路径:/bin/ls 

     执行全新啊:所有用户 

     功能描述:   显示目录文件 

     语法:ls [-ald] [文件或目录] 

             -a  显示所有文件,包括隐藏文件 

             -l  详细信息显示(长格式显示) 

             -d  查看目录属性 

     文件颜色 

         1、默认色代表普通文件 

         2、绿色代表可执行文件。 

         3、红色代表tar压缩包文件 

         4、蓝色代表目录文件 

         5、洋红色代表图像文件 

         6、青色代表连接文件 

         7、黄色代表设备文件 

         8、背景红色代表损坏的连接文件 

          

         更多的文件颜色规则详见:/etc/DIR_COLOR  

      

     常见文件类型: 

         -   普通文件 

         l   连接文件 

         d   目录文件 



 Linux命令提示符: 

     [root@localhost src]#   

         [当前登录用户@主机名    当前所在目录] 

             #   超级用户 

             $   普通用户 

         当前所在目录:   

             ~               用户家目录 

             /root           管理员 

             /home/用户名    普通用户 

     (Linux系统严格区分大小写,包括命令和文件名) 

 Linux常见目录 

         /       根目录 

         /bin    命令保存目录(普通用户就可以读取的命令) 

         /boot   启动目录,启动相关文件 

         /dev    设备文件保存目录 

         /etc    配置文件保存目录 

         /home   普通用户的家目录 

         /lib    系统库保存目录 

         /mnt    挂载目录 

         /root   超级用户的家目录 

         /tmp    临时目录(重启后可清空) 

         /sbin   命令保存目录(超级用户才能使用的目录) 

         /proc   记录服务器内存及cpu情况的动态文件系统 

         /sys    同上 

         /usr    系统软件资源目录 

             /usr/bin/       系统命令(普通用户) 

             /usr/sbin/      系统命令(超级用户) 

             /usr/local/     常用安装软件目录 

         /var    系统相关文档内容 

             /var/log/           系统日志位置 

             /var/spool/mail/    系统默认邮箱位置 

             /var/lib/mysql/     默认安装的myslq库文件目录 





 /--------------------Linux命令-----------------------------------/ 

 一:目录操作命令 

     1.cd    切换所在目录 

         命令名称:cd 

         命令英文愿意:change directory 

         命令所在路径:shell内置命令 

         执行权限:所有用户 



         相对路径:参照当前所在目录,进行查找。一定要先确定当前所在目录。 

             cd ../usr/local/src 

         绝对路径:从根目录开始指定,逐级递归查找。在任何目录下,都能进入指定位置。 

             cd /usr/local/src 

          

         cd ~    进入当前用户的家目录 

         cd      进入当前用户的家目录 

         cd -    进入上次目录 

         cd ..   进入上一级目录 

         cd .    进入当前目录 



     2.pwd显示当前所在目录 

         命令名称:pwd 

         命令英文原意:print working directory 

         命令所在路径:/bin/pwd 

         执行权限:所有用户 



     3.mkdir文件出命令 

         命令名称:mkdir 

         命令英文愿意:make directories 

         命令所在路径:/bin/mkdir 

         执行权限:所有用户 

         语法:mkdir -p[目录名] 

         功能描述:创建新目录 

                     -p递归创建 

         栗子: mkdir newdir 

             mkdir -p /11/22/33/44   (递归在根目录下创建11...) 

     4、rm删除 

         命令名称:rm 

         命令英文原意:remove 

         命令所在路径:/bin/rm 

         执行权限:所有用户 

             -rf 文件名 

             -r  删除目录 

             -f  强制删除 

     5.cat   文件名   

         查看文件内容、从头到尾 

         命令名称:cat 

         命令所在路径:/bin/cat 

         执行权限:所有用户 



         -n  列出行号 



     6.more  文件名 分屏显示文件内容 

         命令所在路径:/bin/more 

         执行权限:所有用户 



         【空格向下翻页 B 向上翻页   Q退出】 



     7.head  文件名   

         显示文件头 

         命令所在路径:/usr/bin/head 

         执行权限:所有用户 



         head -n 行数 文件名 (指定显示文件头几行) 

         head -n 20  文件名 



         tail -n 行数    文件名  指定显示文件尾行 



     8.连接文件 

         ln 

         命令名称:ln 

         命令英文原意:link 

         命令所在路径:/bin/ln 



         ln  -s 源文件  目标文件     //软连接,相当于windows中的快捷方式 

         ln     源文件  目标文件     //硬连接,拷贝加同步更新 

                                     //不能给目录,不能跨分区 

              文件名都必须写绝对路径,否则软连接移动后失效 



 文件和目录都能操作的命令: 

     1.cp-复制 

         命令名称:cp 

         命令英文原意:copy 

         命令所在路径:/bin/cp 

         执行权限:所有用户 



     cp  源文件  目标位置 

         -r  复制目录 

         -p  连带文件属性复制 

         -d  若源文件是连接文件,则复制连接属性 

         -a  相当于-pdr(all) 



         cp aa /tmp/     原名复制 

         cp aa /tmp/bb   改名复制 



     2.剪切或改名 

         命令名称:mv 

         命令英文原意:move 

         命令所在路径:/bin/mv 

         执行权限:所有用户 



         mv  源文件  目标位置 

         栗子: 

             mv  /root/aa /tmp/ 

             mv aa bb    (更改文件名字) 

     3.修改权限 

         - rwx rwx rwx 

          文件类型、文档所有者权限、文档所在群组权限、其他访问者权限 



          文档类型: 

             -   普通文件 

             d   目录文件 

             l   连接文件 

         文档权限代表 

             r   读      4(十进制表示)100 

             w   写      2(十进制表示)010 

             x   执行    1(十进制表示)001 

         chmod 

         命令名称:chmod 

         命令英文原意:change the permissions mode of a file 

         命令所在路径:/bin/chmod 

         执行权限:所有用户 



         逻辑描述方法: 

             属主权限:  u 

             属组权限:  g 

             其他人权限:o 

         chmod u+x aa    //aa文件的属主加上执行权限 

         数字描述法: 

             chmod 777 aa 

                 // -rwxrwxrwx   aa 

 文件与目录权限区别: 

     文件: 

         'r' cat more head tail    查看文件内容 

         'w' echo vi               修改文件内容 

         'x' sh(execute)           执行 

     目录 

         'r' ls find tree          列入文件 

         'w' touch mkdir rm        创建删除文件 

         'x' cd                    进入目录 



 !!!!!!!!!!!!!!赋予权限要合理!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

     对目录w权限,就意味着需要有rwx权限 

     对脚本执行,需要rx并对该目录有rx权限 





 修改属主和属组: 

     chown 

         命令名称:chown 

         命令英文原意:change file ownership 

         命令所在路径:/bin/chown 

         执行权限:所有用户 



         chown 用户名 文件名  改变文件属主 



         chown user1   aa     user1(必须存在) 

         chown user1:user1  aa   改变属主同时改变属组 

         chgrp  组名 文件名     改变文件属组 



 新建文件权限为644,新建目录权限为755 

     umask  显示0022 

     创建文件的默认权限掩码值 

     第一位特殊权限位 

     其他为三类用户的权限掩码值,用最大权限777减去 

         777 

        -022 

     ---------- 

         755 

     就是创建文件的默认权限 



 帮助命令: 

     1、man命令  (查看命令的帮助-只用于有文件实体的命令) 

         命令名称:man 

         命令英文原意:manual 

         命令所在路径:/usr/bin/man 

         执行权限:所有用户 



     2、help命令     (查看shell内核命令) 

             用法:[命令] --help 



 查找命令: 

     1、whereis 命令名       (查找命令的命令,同时看到帮助文档的位置) 

         命令名称:whereis 

         命令所在路径:/usr/bin/whereis 

         执行权限:所有用户 

         which   相同,可以看到命令的别名 

     2、find 搜索文件命令 

         通配符---常用于文件查找 

           *         任意字符任意多个 

           ?         任意字符一个 

           []        指定范围值 

           ^         反响匹配 

           正则表达式---常用于内容查找 

           .         除换行外任意字符 

           *         任意个 

           ?         0或1个 

           ^         开头 



           find命令 

           命令名称:find 

           命令所在路径:/usr/bin/find 

           执行权限:所有用户 



         1、按照文件名查找 

             find    查找位置    -name   文件名 

             find    /           -name   aabbcc      //精确超找文件aabbcc 

             find    /etc        -name   init*       //超找在/etc下以initiative开头的文件 

         2、按照用户 



             -user   用户名  按照属主用户名查找文件 

             -group  组名    按照属组组名查找文件 

         3、按文件大小 

             -size   +10k(大于10k),-10k(小于50k) 

             find / =size +10k      查找/下大于10k的文件 

             (默认单位512Byte) 



         4、按照类型 

             -type 类型  按照文件类型查找 

                 f:普通 

                 d:目录 

                 l:链接 

         5、按照权限 

             find /root -perm    644 (按照权限查找) 

         6、按照文件名(不区分大小写) 

             -iname      按照文件名查找,不区分大小写 

         7、按照i节点 

             -inum       按照i节点查找(文件ID号) 

     逻辑连接符  -a(and) -o(or) 

         多条件查找,条件之间可加逻辑连接符 

             find /etc -size -10M -a -size +1M    

                 (查找小于10M并大于1M的文件) 

 对查找到的文件进一步处理 

          

     find ... -exec 命令 {} \; 

         {}表示find查询的结果集 

         \是转义符  表示一个命令或符号使用其本身的意义,不使用别名 

         ; 分号是表示语句的结束(固定格式,只能这样写,中间有空格) 



     转义符的作用是什么? 

         在linux中有一个别名机制,如rm删除文件,执行的确实rm -i  (用which rm 可以查看命令别名),使用rm删除文件前会提示,就是因为rm -i 这个参数。如果想使用命令原意,可以在加\转义 

         栗子:\rm test.txt  则不会提示,直接删除 



     3、grep     “字符串”文件名 

         (查找符合条件的字串行) 

         命令名称:grep 

         命令所在路径:/bin/grep 

         执行权限:所有用户 



         grep -i "root" /etc/passwd 

             -v  反向选择 

             -i  忽略大小写 

         find:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配。通配符是完全匹配 

         gerp:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式匹配,正则表达式是否包含匹配 



 压缩和解压缩 

     格式: 

         .gz .bz2        linux可以识别的常见压缩格式 

         .tar.gz .tar.bz2    常见的压缩和打包命令 



         压缩同时打包 

             tar -zcvf   压缩文件名  源文件 

             tar -zcvf   aa.tar.gz aa 

                 -z  压缩.gz格式 

                 -j  压缩.bz2格式 



                 -c  打包 

                 -v  显示压缩过程 

                 -f  指定压缩包名 

             (注意:选项f必须在最后,否则报错) 

             tar -zxvf   压缩文件名  解压缩同时解打包 

                 -x  解压缩 

             查看未解压缩的包内容 

                 tar -ztvf aa.tar.gz (查看不解包) 

                 tar -jtvf aa.tar.bz2 

                     -t  只查看,不解压 

                 tar -jxvf root.tar.bz2 -C /tmp/(指定解压缩位置) 



 网络命令 

     1、ping 测试网络连通性 

         ping -c 次数 ip 探测网络通畅 

     2、ifconfig 查询本机网络信息 

         可临时修改网卡ip 

             ifconfig eth0 192.168.1.1 mask 255.255.255.9 

     3、netstat  查看网络状态的命令 

         -t  查看tcp端口 

         -u  查看udp端口 

         -l  监听 

         -n  以ip和端口号显示,不用域名和服务器名显示 

         -a  查询所有连接 

         -p  查看进程名 



         通常用 netstat -ptlun 

     4、write 和 wall(=write all)  广播命令 

         write   user 回车 

             》发送内容 

             》Ctrl+D 保存发送 

         wall 回车 

             》发送内容 

             》Ctrl+D保存发送 

             所有用户都能收到信息 

 关闭和重启命令 

     1、shutdown -h now  没有特殊情况,使用次命令 

             -h  关机 

             -r  重启 

         shutdown -r now 等同于 reboot 



 挂载命令 

     linux所有存储设备使用前必须要挂载,包括硬盘(硬盘开机自动挂载)U盘等需要手动挂载 



     mount挂载 

         命令名称:mount 

         命令所在路径:/bin/mount 

         执行权限:所有用户 



         光盘挂载 

             /dev/sdal   第一个scsi硬盘的第一分区 

             /dev/cdrom  光盘设配软连接 

             /dev/hdc    光盘设配名  centos5.5 

             /dev/sr0    光盘设备名  centos6.x 

             (以上三个文件都是一回事,版本不同而已) 

              

             mount -t 文件系统 设备描述文件 挂在点(已经存在空目录) 



             栗子:mount -t iso9660 /dev/cdrom /mnt/cdrom 



             光盘卸载: 

                 umount   /dev/cdrom 

                 umount   /mnt/cdrom     强调:退出挂载目录,才能卸载 



             U盘挂载 

                 fdisk   -l  查看设备识别情况,u盘插入后会识别为sdb 

                 mount -t vfat /dev/sdb1 /mnt/usb     

                 CentOS6.x系列挂载时不需要指定-t类型也能自动识别挂载成功!! 



 /========================Vim操作========================================================/            



 1、常用模式操作命令 

     1、插入 

         i   在光标所在字符后插入 

         I   在光标所在行尾插入 

         a   在光标所在字符前插入 

         A   在光标所在行首插入 

         o   在光标下插入新行 

         O   在光标上插入新行 

     2、定位 

         小范围移动 h j k l  对应方向:← ↓ ↑ → 

         :set nu     设置行号 

         :set nonu   取消行号 



         gg          到文章第一行 

         G           到文章最后一行 

         nG          到第N行 

         :n          到第N行 

     3、替换和撤销 

          

         r           取代光标所在字符 

         R           开启替换模式一直替换知道esc结束 



         u           撤销 

         Ctrl+r      反撤销 

     4、搜索和替换 

         "/string"         查找指定字符串 

                         :set ic 忽略大小写 

             n 从结果中查找下一个 

             N 从结果中查找上一个 

         :$s/old/new/g   全文替换指定字符串 

         :$s/old/new/c   全文替换指定字符串,每次替换询问 



         :n1,m2s/old/new/g   在指定范围替换指定字符串 



     小技巧: 

         :1,5s/^#/g       注释1到5行 

         :1,5s/^#//g      取消注释 

         :1,5s/^/\/\//g   文件头加入// 



         显示颜色高亮 

             :synatax on  开启高亮 

             :synatax off 关闭高亮 

     Vim配置文件 

         自定义配置 

             ~/.vimrc文件,没有手动创建 



 ************************软件包管理******************************************************** 



     一、软件包分类 

         1、二进制包(rpm)   

             特点:安装速度快    简易 

             缺点:自定义性差    依赖性 

                 a-->b-->c           树形依赖 

                 a-->b-->c-->a       环形依赖(这玩意要怎么安装!) 



         2、源码包 

             由软件开发源码组成,安装时需要编译工具如gcc、gcc-c++等 

              

             优点:特点、开源、定制 

             缺点:安装时间长,一旦报错,不易解决 



         3、脚本安装包 

             shell脚本编写的安装包 实际内容依然是两种安装的方式,安装过程可以交互 



 二、二进制安装包的管理(rpm) 

          

         1.rpm管理工具 

             1、软件包命名 

                  

                 包名-版本号-发布次数-适合linux系统-硬件平台.rpm 



                 操作没有安装过的软件包,软件包使用包全名 

                 否则直接使用包名 

         2.安装与升级卸载等 

             rpm -ivh    包全名(绝对路径,一般在光盘的软件包目录中[Packages]) 



                 -i  安装 

                 -v  显示详细信息 

                 -h  显示进度 

                 -U  升级 

                 -e  卸载 

                     --nodeps不检查依赖性,强卸载! 

             查询 

                 -q      查询包是否安装 

                 -qa |  grep httpd   显示所有安装包 

                 -qi     查询包的信息 

                 -p      查询未安装包的信息 

                 -qip    查询没有安装包的信息 

                 -i      information 

                 -ql     查询包中文件的安装位置 

                 -qlp    查询没有安装的包,打算安装位置 

                 -l      list 

                 -qf     查询系统文件输入哪个包 



             开启/关闭 服务 

                 service httpd restart|start|stop|status 

     yum在线管理工具(相当于windows下360软件管家) 

          

             1、安装 

                 yum -y install  包名 

                     -y  自动回答yes 

             2、卸载 

                 yum -y remove   包名 

             3、升级(有网络) 

                 yum -y update   包名 

             4、查看 

                 yum list        查看所有可以安装的包 



         【如果没有网络,yum管理工具可以将多媒体软件库作为yum源(池),继续完成软件管理】 



         yum默认将/etc/yum.repo.d/CentOS-base.repo文件作为第一yum原配置文件,此文件描述了网络站点的下载地址, 

         如果此文件存在,则继续上网安装,断网时会安装失败。需要将yum源切换为光盘的多媒体文件中去 



         将光盘作为yum源 

             1、将yum第一源文移走或改名 

                 mv /etc/yum.repo.d/CentOS-base.repo /root/ 

             2、挂载光盘 

                 mount /dev/cdrom    /mnt/cdrom 

             3、修改media配置文件,指定yum源为挂载点 

                 vim /etc/yum.repos/d/CentOS-Media.repo 

                 #修改开始# 

                     baseurl=file:///mnt/cdrom/  指定yum源位置 

                     enabled=1                   yum源文件生效 

                     gpgcheck=1                  rpm验证不生效 

                 测试安装 

                     yum -y install gcc      (gcc是c语言编译器,不装gcc,源码包不能安装) 



 三、源码包安装 

      

     1、上传软件包 

         使用winscp等工具远程连接linux,上传所需安装包 

          

     2、安装(重点) 

         1、解压 

             tar -xf 包文件 

         2、cd解压目录 

             进入解压文件目录 

         3、查看安装文档 

             README  INSTALL 

         4、检测 

             ./config --prefix=/usr/local/apache2 



             功能: 

                 1、检测系统环境,生成Mackfile 

                 2、定义软件选项 

                     --prefix指定软件安装目录 

         5、编译 

             make 

             【若编译失败使用make clean清楚编译文件】 

         6、安装 

             make install 

         【报错判断: 

             第一:安装过程是否停止 

             第二:停止处是否出现error wraning no 等错误报警】 

         7、启动 

             /usr/local/apache2/bin/apachect1 start 

             【与yum安装方式区别开】 



     [源码包的启动脚本大多存在与安装目录中] 



         8、卸载 

             直接删除安装目录 

                 rm -rf /usr/local/apache2/ 

                  

 /=================About shell================================================================/ 

 什么是shell 

     命令解析器,帮助人际交互的翻译官 

     windows的桌面也是shell的一种! 

 linux的shell有 

     /etc/shells     记录该Linux安装了那些shell 

         B类         sh  bash 

         C类         tcsh 

         shell不同,命令提示符不同 

         几乎所有Linux缺省都是bash(Bourne-again Shell),非常适合于一些管理操作 

         一些比较老的unix,缺省都是sh 



 重点来了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

     bash提供常用功能如下: 

         一、命令补全 

             使用tab建 

             如果不是唯一,按两下全部列出 

         二、快捷操作 

             Ctrl+C      终止命令 

             Ctrl+A      光标到行首 

             Ctrl+E      光标到行尾 

             Ctrl+U      剪切光标前内容 

             Ctrl+K      剪切光标后内容 

             Ctrl+Y      粘帖剪切的内容 

             Ctrl+L      清理屏幕 

             Ctrl+D      注销登录 相当于exit和logout 或者保存 

             Ctrl+Z      将进程在后台挂起 

             Ctrl+Q      可以接触Ctrl+S的文件保存锁定 

     命令历史 

         history     列出所有的命令(默认最多保存条数1000) 

         !序号       执行历史中第几条命令 

         !命令       执行最近的这条命令 

         按向上(或向下)箭头,翻出历史记录 

     命令别名 

         别名:类似快捷键 

         命令:alias 



         添加一个别名(临时) 

             alias copy=cp   就可以用copy来复制文件了 



         如果有参数: 

             alias drm="rm -rf" 

         删除别名:   

             unalias copy 

         

        别名永久修改 

         在用户宿主目录:~/.bashrc文件中添加别名信息如:alias vi=vim 

         重启生效 或者 source ~/.bashrc及时生效 



         拓展: 

             source命令 

             作用:在当前bash环境下读取并执行Filename中的命令 

                     该命令可用"."来代替【一般情况下】 

 输入输出重定向 

     shell对于每个进程预先定义了3个文件描述字 

         0 标准输入  STDIN   键盘 

         1 标准输出  STDOUT  显示器 

         2 标准错误输出  STDERR 

         重定向:就是改变这个标准设备,不用键盘输入,不用显示器输出 



     1、输出重定向 

         >或>> 



         栗子: 

             echo hell   直接输出的到显示器上 

             echo hell >test.txt 将输出定向到test.txt中 



             追加写入用>> 



     2、输入重定向 

         栗子:wall</tes/msg 从一个文件读取内容发广播 



     3、错误输出重定向 

             2>或2>> #描述字和符号之间不许有空格 

         栗子: 

             ls /aaaaaa 2>ls.err 

 管道连接符 

     将一个命令的输出传送给另一个命令,作为另一个命令的输入 



         用法: 

             命令1|命令2|命令3 

     栗子: 

         ls -l/etc | more 



     一个新的命令:wc -l统计文件有多少行 

 命令连接符 

     ";" 

         不管执行是否成功,多个命令依次执行 

     栗子:pwd;ls;date 

     "&&" 

         前面执行成功,才执行后面的命令,如果前面的命令错误,后面终止执行 



     "||" 

         前面执行失败,才执行后面的命令 



 /**********************用户管理***************************************************/ 

 用户及用户组配置文件 

     用户信息文件:/etc/passwd(重要) 

     用户密码文件:/etc/shadow 

     用户组信息文件:/etc/group 



 /etc/passwd 文件中格式 

     用户名:用户名,字段和字母组成 

     密码:标识,代表密码位,并不存放真实密码 

     UID:用户ID 

     GID:初始组ID 

     描述:描述用户的信息 

     宿主目录:用户登录时的缺省目录 

     命令解析器:使用哪种shell,默认为bash 

      

     栗子: 

         1 root:x:0:0:root:/root:/bin/bash 

             第一部分:用户名 

             第二部分:密码位 

             第三部分:用户id=uid 

             第四部分:组id=groupid 

             第五部分:描述给管理员 

             第六部分:宿主目录=家目录 

             第七部分:该用户命令解析器 



 用户类型: 

     Linux用户分为3种 

         超级用户:root UID=0 

         普通用户:UID=[500-60000] 

         伪用户:UID=[1-499] 

         (伪用户因系统应用和程序服务而存在,如bin、shutdown、reboot) 

             伪用户通常不需要或无法登录  nologin 

             大多数没有宿主目录,个别存在 



 /etc/shadow 

         栗子: 

             1 root:$6$MhdbjN/aFqpcLIzd$uXWtWWklREIuwDmDjcjFxL8Csyrdu7ZFM15CuCAbCsbpCP4Cu4N    Nz3gaDvlVqncGZLDGK.1771fthk3Lsjwz6.:16684:0:99999:7::: 

         第一部分:用户名 

         第二部分:用$分成三部分 

                     1、加密类型 6 SHA-512 5 sha-256  1 md5 

                     2、盐值(salt)   增加密码复杂度 

                     3、加密密文 

         第三部分:单位天 

                     最后一次密码修改时间 相对UNIX时间元年 19700101 

         第四部分:单位天 

                     密码最小修改时间间隔 

         第五部分:单位天 

                     密码有效时间    99999 

         第七部分:单位天 

                     密码失效补救时间 

         第八部分:单位天 

                     密码失效时间    相对于UNIX时间元年 197000101 

         第九部分:缺省  未来使用 



 /etc/group 

         栗子: 

               1 root:x:0: 

               第一部分:组名 

               第二部分:组密码 

               第三部分:组ID=GID 

               第四部分:组内用户列表 

                             (将改组当做附属组的用户,用逗号分割) 



 如何手动添加一个用户 

     1、建立所需组群 

     2、将/etc/group和/etc/gshadow同步化 

     3、建立帐号属性 

     4、将/etc/passwd和/etc/shadow同步化 

     5、建立帐号密码 

     6、建立家目录 

     7、修改家目录权限 



 创建用户: 

         用户及用户组管理命令 

             添加    useradd     groupadd 

             修改    usermod     groupmod 

             删除    userdel     groupdel 

             密码    passwd      gpasswd 

             查看用户信息    id 

             切换用户        su 



         命令格式:useradd   选项    用户名 

                 -g  缺省组(默认为用户名组) 

                 -G  所属组(添加多个用户组,用','隔开) 

                 -c  描述信息 

                 -d  指定家目录 

 密码及删除 

         passwd 用户名 

         -l 锁定 

         -u 解锁 

         (只有root有权限) 



         userdel -r 用户名 

             -r:删除用户相关文件,建议使用 

 修改用户信息 

     usermod 

         -g  修改缺省组 

         -G  修改所属组 

         -l  改名 

         -c  改备注 

         -e  过期时间 

         -L  锁定用户 

         -U  解锁 

         -aG 追加所属组 



 添加用户组 

     groupadd    组名 

     修改:groupmod  选项 组名 

             -n: 修改组名 

         groupmod -n newname oldname 

     删除组:grpupdel  

     组密码:gpasswd -a 用户名 组名 

     -a添加用户到组 

     -d删除用户从组 







 特殊权限: 

     SetUID 

         ls -l /usr/bin/passwd 

         chmod 4755 filename 

         chmod u+s filename 

     SetGid chmod 2755 file 

     SetBIT  chomod 1777 dirname 

         ls -ld /tmp 



 特殊权限位的理解 

     危险的实验: 

         将vi命令赋予setUID 



         修改passwd文件和shadow文件 

     特殊权限的作用 

         当你在普通用户执行vi时,这一刻root附体 

         setGID效果同setUID,想用root组权限 

         粘着位的作用:创造一块各玩各的空间 

          

 ACL权限 

     ACl,一个文件/目录访问控制列表,可针对指定的用户/组分配RWX权限 

 watch  

     设置权限: 

         setfacl -m<rules><files> 

         setfacl -m u:用户名:权限 文件名 

         setfacl -m g:组名:权限 文件名 

         栗子: setfacl -m u:jack:rx /backup 

     设置ACL命令的参数 



     -m:设定权限 

     -x:移除指定权限 

         setfacl -x u:jack   /backup 

     -b:移除所有权限 

     -R:递归设置(对于目录) 

     继承设置:setfacl -m d:u:jack:rwx -R /test 

         对于新创建的文件和目录也生效 

     查看ACL权限:getfacl文件(唱歌时后面多个+) 





 Linux忘记密码怎么办: 

     在启动界面按任意键进入GRUB目录 



     把Kernel行文件打开 在最后加个"1" 回车保存后按B进入单用户模式进行改密码 





 /******************Linux进程管理***********************************************/ 



 进程和程序的区别 

     一动一静,对应关系-多对多 



 父进程与子进程 

     老子管儿子,僵尸和孤儿 

 前台进程和后台进程 



 前台进程 

     ping 127.0.0.01>>ping.result 

     创建一个子进程,运行命令,shell等待他 

     结束,才能返回给用户提示符。 

     这条命令在前台运行,用户在它完成之前不能执行另一个命令 



 后台进程 

     ping 127.0.0.1>>ping.result& 

     若后随一个&,shell创建子进程运行此命令 

     但不等待命令退出,而是直接返回到对用户给出提示。 

     [后台进程必须是非交互式的] 



     插入一命令: 

         watch 

             检测一个命令的运行结果。 

             可以拿他来检测你想要的一切命令的结果变化,比如tail一个log问及那 

             ls检测某个文件的大小变化 

         watch [参数][命令] 

             -n  watch缺省每2秒运行一个程序,可以用-n来指定间隔的时间 

             -d  会高亮显示变化的区域 

             -t  会关闭watch命令在顶部的时间间隔 

         watch -n 1 ls -l 



 进程常用命令 

     1、w   显示目前登入系统的用户信息 

         -f  开启或关闭显示用户从何登入系统 

         -l  使用详细格式列表 



     2、who 

         简单查看登录者的信息 

     3、ps查看进程信息(process status) 

         -a  显示终端下的进程(当前用户进程) 

         -u  显示用户和启动时间 

         -x  表示没有控制终端的进程 

         -e  显示所有进程 

         -l  长格式显示 

         -uU用户名   查看系统中指定用户执行的进程 

         ps  -le 或aux   查看所有用户执行的进程详细信息 



         常见选项的含义 

             PID     进程号  1为init系统第一个进程 

             PPID    父进程的进程号 

             TTY     启动的终端  tty1-7本地  1-6字符 7图形 pts/n远程 

             STAT    进程当前状态:s休眠 D不可中断的休眠 R运行 Z僵死 T停止 

             NI      进程优先级 

             TIME    进程自启动依赖站CPU的总时间 

             COM     进程的命令名 

             USER    用户名  

             %CPU    占CPU时间和总时间的百分比 

             %MEM    占用内存与系统内存的百分比 

             start   进程触发的时间 

             tim     占CPU的时间 

             command 进程本身 

     kill    杀死一个进程 

         kill    进程号(PID) 

     kill的信号  kill-l可以列出很多 

         常用:kill -9 进程号(强行关闭) 

               kill -1 进程号(重启进程) 

         关闭图像程序    xkill 鼠标按哪,关闭那 

         结束所有同名进程 killall -9 进程名称  



     5、以p开头的命令 

         pgrep httpd 查看 httpd进程的所有pid 

         重启apache进程:kill -1 'pgergp httpd' 



         pkill httpd 直接关闭httpd进程,不用pid了 



     6、优先级命令 

         nice     

             指定程序进行的优先级 

             格式:nice a myprogram 

             列:nice --5 /etc/rc.d/init.d/httpd start(默认是0,指定为-5) 



             ps -le | grep httpd 

         renice 

             改变一个正在进行的进程的ø优先级 

             栗子: renice n pid 

             优先级取值范围(-20,19)默认值为0 值越小,权越大 

             ps -le 中,NI就是优先级 

     7、前后台进程操作 

         一个符号: 

             把进程放到后台运行 在后面加& 

                 ping 127.0.0.1>>/test/ping.result& 

                 另一个终端去查看 

                 tail -f/test/ping.result 

         两个操作: 

             进程的挂起和终止 

                 挂起 Ctrl+z 暂停 

                 终止 Ctrl+c 

         三个命令: 

             查看被挂起或在后台执行的过程 

                 jobs 

             进程的恢复 

                 fg[序号]    恢复到前台继续运行 

                 bg[序号]    恢复到后台继续运行 

                 若不加序号,则默认将命令作用与+修饰的进程 

     8、top命令 

         显示,管理执行中的程序 

         语法: 

             top [bciqsS][d<间隔秒数>][n<执行次数>] 



             执行top指令可显示目前正在系统中执行的程序,并通过它所提供的互动界面,用热键加以管理 

             上面的信息,类似与w显示的信息 

             下面类似与ps -le信息 

             内置命令: 

                 d   间隔描述 

                 c   显示整个命令行,而不仅仅显示命令名 command 

                 u   用户名 只显示某用户的信息,管理员可以看某用户在干嘛 

                 k   提示输入pid关闭进程 

                 r   调整优先级 

                 M   内存排序 

                 p   CPU排序 

                 q   退出 

     9、free-m   查看内存状态 

      

     10、查看proc文件下信息 

         ls/proc 

         该目录存放的是进程信息,数字以pid为目录名,信息存放在目录中 

         cat /proc/cpuinfo   查看cpu信息 

         cat /proc/menminfo  内存信息 

         cat /proc/partitions    分区信息 



 /**********************进程分类****************************************************/ 

 1、分类 

     standalone      独立运行 

     xinetd          进程托管 

     atd、crond      计划任务 



     standalone      独立运行 

         如apache、mysql的服务,启动后,进程会一直在系统中 

         占用cpu的 内存资源,等待或处理客户端的请求 

         占用系统资源多,但响应速度快 

     xinetd     进程托管(需要独立安装yum -y install xinetd) 

         有些服务,用的很少,没必要独立运行 列入telnet 

         ls /etc/xinetd.d查看这个目录有很多脚本 

         服务不启动,由xinetd监听这个端口,有客户端访问,则启动进程,等服务完成后,结束进程 

         响应速度慢一点,但减少了系统资源占用 

     atd、crond计划任务 

         每隔一分钟,从休眠中醒来一次,所以,计划任务不能精确到秒 



 2、管理 

         #chkconfig --list 



         运行级别:0-6 

             0 关机 

             1 单用户模式 

             2 不完全多用户 

             3 完全多用户 

             4 未分配 

             5 图形界面 

             6 重启 

          

         init 0 关机 

         init 6 重启 



     runlevel    查询系统当前运行级别 

         vi  /etc/inittab 

         id:3:initdefault:   定义系统默认运行级别 



     列出在每一种运行级别下服务是启动还是关闭 

         chkconfig --list|grep atd(查看计划任务服务) 



     3 、启动服务 

         rpm 包安装的服务 

             service 服务名 start|stop|restart|status 

              

             设置开机自启动 

                 vi /etc/rc.local        ===>/etc/rc.d/rc.local 

             ntsysv   

                 所有系统默认安装服务都可以使用ntsysv命令进行自启动管理 



         源码包安装的服务 

             绝对路径启动 

                 /usr/local/apache2/bin/apache2 start 

             开机自启动 

                 vim /etc/rc.local 

                 写入启动命令 

                 /usr/local/apache2/bin/apache1 start 





 ***************************计划任务******************************************** 



 主要分为两种计划任务: 

     一次性计划任务 

     周期性计划任务 

      

 一次性计划任务:     

     1、指定时间的方式 

         绝对计时方法 

             midnight 午夜 

             noon    中午 

             teatime 下午茶(16:00) 

             hh:mm[todayo] 

             hh:mm tomorrow 

             hh:mm MM/DD/YY 

         相对计时方法 

             now+n minutes 

             now+n hours 

             now+n days 

         具体看帮助 man at 

     2、如何设定系统时间 

         系统时钟:date 

         设置日期:date -s '1995-11-25 11:00' 



         硬件时钟 

             clock--systohc  将系统时间存回硬件时钟内 

             clock--hctosys  系统时间设成和硬件时钟一致 

     3、任务设定 

         指定在今天下午17:30执行某命令,假设当前时间是2013年1-15 



         at 17:30 

         at now+3 hours回车进入编辑命令 

         栗子 

             at now + 1 minutes回车 

             /usr/bin/wall "Hello World!" 

     4、查看任务 

         查看队列中的任务 

             at-l 或 atq 



         存放在这里 

             ls/var/spool/at/的一个可执行文件,任务执行后文件消失 

     5、删除任务 

         删除一次性计划任务 

         ad -d 序号 

     7、低负载计划任务batch(拓展) 

         batch用法与at一样 

             无需指定时间,安排在系统负载较轻是运行一次 

             一般负载低指0.8(w或top命令能看到) 

 周期性计划任务 

     1、crontab命令   

         周期性计划任务 

             三个常用选项: 

                 -l 列出当前crontab 

                 -r 删除当前的crontab 

                 -e 编辑当前的crontab文件 



         crontab -e 

             内容格式:分  时  日  月  周 命令/脚本 



             栗子: 

                 每天04:00 

                     0 4 * * *   /usr/local/apache2/bin/apachel start 

                 周二和周五18:00 

                     0 18 * * 2,5 

                 1月到3月,周二和周五18:00 

                     0 18 * 1-3 2,5 



                 !写命令时,最好写上出错信息! 

                 /bin/cp -r/etc/backup/etc.bak 2>>error.err 



             3、特殊匹配符号 

                 多个值用    "," 

                 连续的值    "-" 

                 任务匹配    "*" 

                 步长        "/n" 

             4、执行命令  

                 命令给出绝对路径 

                 用户必须具有运行的权限 

                  

                 保存在/var/spool/cron 



                 检查crond进程是否开启 

                 ps -le|gerp crond 

                 /etc/rc.d/init.d/crond start 

             5、权限设置 

                 限制那些用户可以使用crontab 

                     /etc/cron.allow 

                     /etc/con.deny 





 ***************************VSFTP********************************************* 



 Ftp遵循网络层ftp协议,三次握手建立连接后开始交互 



 默认两个端口 

     20          数据传输 

     21          命令传输 

 (防火墙PortBB会拦截文件传输) 



 安装vsftpd服务 

     yum -y install vsftpd 

     启动 service vsftpd start 



     默认启动后,即支持普通用户宿主目录访问及匿名访问 



 匿名访问 

     用户名:ftp 或 anonymous 

     密码为空 

      

     window下ftp常用命令 

         连接:ftp 192.168.10.123 

         ls  查看所在目录文件信息 

         cd 切换ftp上的目录 

         get 下载单个文件 

         put 上传 

         bin 切换到使用二进制传输方式 

         ascii   借还到文本传输方式 

         lcd     指定下载到本机的哪个目录 

         prompt  关闭交互模式 

         mput    上传多个(先关闭交互模式,多个文件之间用空格分割) 

         mget    下载多个 

         bye     退出 



     配置文件 

         vim /etc/vsftpd/vsftpd.conf 



         匿名用户: 

             anonymous_enable=YES    是否允许匿名用户访问 关闭:改为NO 

             anon_upload_enable=YES 匿名用户允许上床,默认注释了 

             anon_mkdir_write_enable=YES 匿名用户允许创建目录,默认是注释了 

             anon_max_rate=100000追加    匿名用户最大传输速率为100kb/s 

         (记得修改目录LInux文件系统权限!!!) 

     日志 

         xferlog_enable=YES是否使用日志 

             (精良要生成日志) 

         xferlog_std_format=YES  日志使用标准的格式 

         xferlog_file=/var/log/xferlog   日志文件存放的位置, 需要开启 

     用户访问 

         默认普通用户,直接可以登录访问宿主目录 

             默认可以上传下载 



         local_enable=YES 

         write_enable=YES 

         loacl_umask=022 #创建的目录权限为755 

         local_max_rate=20000    追加用户最大传输速率为 200kb/s 



         (只要系统中的普通用户,默认都能登录ftp,这样有安全隐患) 

     访问列表 

         限制指定用户不能访问,而其他用户可以访问 

             userlist_enable=YES 

             userlist_deny=YES 

             userlist_file=/etc/vsftpd/user_list 

         栗子: 

             限制指定用户能访问,其他用户不能访问 

             userlist_enable=YES 

             userlist_deny=NO 

             userlist_file=/etc/vsftpd/user_list 

             vi /etc/vsftpd/user_list #一个用户一行 

     限定用户 

         chroot 让ftp用户把宿主目录当作根目录,这样不能切换其他目录了 

             chroot_local_user=YES 

         控制那些用户不受此限制 

           chroot_list_enable=YES       白名单  NO  黑名单 

       chroot_list_file=/etc/vsftpd/chroot_list    #一个用户一行,列表中的用户,不受chroot限制 



 其他 

     ftp_banner=Welcome to blah FTP service   

     欢迎信息,防止透露出ftp的软件版本好 



     idle_session_timeout=600    空闲10分钟后被挂断 

     max_clients=50              服务器总并发连接数 

     max_per_ip=3                每个客户机最大连接数 

     list_port=10011             指定一个非标准端口  默认连接为21 传输20 

              

 扩展: 

     nmap端口扫描工具 

          

         用法: 

         nmap {IP} 

         nmap    默认只扫描知名端口 

         nmap -pl-65535 192.168.10.10    扫描全部端口(1到65535) 

          



 ************************Samba服务器************************************************** 



 samba服务器在unix系统中实现了smb/cifs协议 

 通过Samba服务可以实现UNIX/Linux主机与windows主机之间的资源互访 



 特点: 

     必须是系统用户,但使用独立密码 

     默认安装samba并添加用户(smbpasswd -a 用户名),即可访问自己的宿主目录(可读写) 

 查看是否安装了samba 

     rpm -q samba 

 安装 

     yum -y install samba 

 启动 

     service smb start 

 两个进程: 

     smbd ==>tcp 139 用户验证和文件共享 

     nmbd ==>udp 137 138 浏览共享和计算机名解析 



 用户管理 

     1、首先必须是系统用户,添加Linux系统用户 

 设置samba的密码(samba自带的用户管理工具) 

     smbpasswd -a 用户名     #加用户 

     smbpasswd 用户名        该密码 

 roo用户可以使用管理命令 

     pdbedit -a username:新建samba账户 

     pdbedit -x username:删除samba账户 

     pdbedit -L:列出samba用户列表:读取/etc/samba/passdb.tdb数据库文件 

     pdbedit -Lv:列出samba用户列表的详细信息 



 建立samba连接 

      

     windows中连接samba 

     可以映射网络驱动器 

     net use 

     net use * /de/y 

     net use \\192.168.10.123 "password" /user:your_user 



     防火墙: 

         iptables -L查看 

         iptables -F 清空防火墙规则,拆除防火墙 

     及时生效,重启后复原 

         service iptables stop 

     永久生效,重启后不会复原 

     SElinxu 

         允许访问 

             setsebool -P samba_enable_home_dirs on 

         或完全禁用 

             vi /etc/selinux/config  改为SELINUX=disabled 



 Samba配置文件 

     vim /etc/samba/smb.conf 

      

     [global]全局环境选项: 

         workgroup   工作组或域 

         server string   描述信息 

         security    安全模式,有如下选项 

             share   不验证权限,直接共享 

             user    缺省,推荐有linux samba服务器做验证 

             server  第三方主机验证 

             domain  第三方主机验证(必须是windows 域控制器) 

         hosts allow 那些主机可以访问(缺省所有主机都可以) 

                 哪些主机不允许访问,hosts deny 一般不和hosts allow同时使用 

         log file 日志文件(最好开) 



     [homes] 只要有这个配置段,用户默认就可以通过自己的用户名,访问自己的宿主目录 

         comment 描述 

         browseable=no   无权限访问的目录,不显示出来 

    



 /*******************Apache配置*************************************/ 



 1、www: worl wide web 万维网 

     http协议    超文本传输协议 

     html语言:  超文本标识语言 

 2、URL统一资源定位符    协议+域名: 

      

 3、apache配置文件 

         默认网页保存位置: 

             源码包:/usr/local/apache2/htdocs/ 

             rpm包安装:/var/www/html/ 

         日志保存位置: 

             源码包:/usr/local/apache2/logs/ 

             rpm包:/var/log/httpd/ 

         配置文件位置: 

             /usr/local/apache2/etc/httpd.conf 





 日志轮替 

     日志需要轮替: 

         1、切割(年月日) 

         2、轮替 route 30 

     Logrotate: 

         vi /etc/logrotate.conf 

             /usr/local/apache2/logs/access_log{ 

                 daily 

                 create 

                 dateext 

                 rotate 30 

             } 

         [root@localhost~]#logrotate -f /etc/logrotate.conf强制刷新截取日志 

             Error_log也要进行轮替 

 配置文件 

     针对主机环境的基本配置 

         ServerRoot          apache主目录 

         Listen              监听端口 

         LoadModule          加载的相关模块 

         User.Group          用户和组 

                             将htdocs目录用户组和用户改为daemon,之后可以。 

         ServerAdmin         管理员邮箱 

         ServerName          服务器名(没有域名解析时,使用临时解析。不开启) 

         ErrorLog"logs/error_log  错误日志 

         CustomLog"logs/access_log common        正确访问日志 

         DirectoryIndex index.html   index.php   默认网页文件名,优先级顺序 

         Include /etc/extra/httpd-vhosts.conf    子配置文件中内容也会加载生效 



     主页目录及权限 

         DocumentRoot    "/usr/local/apache2/htdocs" 

         主页目录 

         <Directory "/usr/local/apache2/htdocs"> 

             #Directory关键字定义目录权限 

             Options Index FollowSymLinks 

                 #options 

                     None:没有任何额外权限 

                     All:所有权限 

                     Indexes:    浏览权限(当此目录下米有默认网页问件事,显示目录) 

                     FollowSymLinks:准许软件连接到其他目录 

             AllowOverride None 

                 #定义是否允许目录下.htaccess文件中的权限生效 

                     None:.htaccess中权限不生效 

                     All:文件中所有权限都生效 

                     AuthConfig:文件中,只有我那工业认证的权限生效。 

             Require all granted 访问控制列表 

         定义此目录的允许访问权限: 

              

             栗子: 

                 仅仅允许ip为192.168.1.1的主机访问 

                 <RequireAll> 

                     require all granted 

                     Require ip 192.168.1.1 

                 </RequireAll> 



 目录别名: 

     子配置文件名: 

         etc/extra/httpd-autoindex.conf 

     开启配置文件 

         Alias /icons/ "/usr/local/apache2//icons/" 

             apache以为在这里        实际目录位置 



         定义别名    /icons/----  

                     http://192.168.1.253/icons/ 
         <Directory "/usr/local/apache2//icons"> 

             Options Indexes MultiViews 

             AllowOverride None 

             Require all granted 

         </Directory> 



         4、用户认证 

                 限制特定目录,只有指定用户可以访问 

                 1、建立需要保护的目录 

                     使用别名,在系统位置建立目录,然后保护 

                         mkdir -p /share/soft 

                 2、修改配置文件,允许权限文件生效