2017年5月

一、 php.ini的配置信息

file_uploads = On /Off   是否允许文件上传
upload_max_filesize=2M 上传的文件的最大大小
post_max_size = 8M       POST数据所允许的最大大小
upload_tmp_dir           上传文件放置的临时目录

upload_max_filesize的大小一定要小于post_max_size的配置大小。

二、(发送客户端)上传的form表单:

1、 表单必须是post提交
2、 上传的类型:enctype="multipart/form-data"
3、上传使用的表单项
    <input type="file" name=".." />
4.(可选)上传大小限制的表单隐藏域:MAX_FILE_SIZE,
    <input type="hidden" name="MAX_FILE_SIZE" value="大小字节"/>
    注意:此字段必须在文件输入字段之前(常放在form标签后面)
    

三、(接收服务器端):

1. 使用$_FILES全局数组来接收上传信息
    在每个上传的文件里,$_FILES中都会有5个属性:
        error:上传的错误号:0--4
            0:表示没有发生任何错误。
            1:上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
            2:表示上传文件大小超出了HTML表单隐藏域属性的MAX_FILE_SIZE元素所指定的最大值。
            3:表示文件只被部分上传。
            4:表示没有上传任何文件。
            6:找不到临时文件夹
            7:文件写入失败
        name:上传的文件名
        size:文件的大小
        type:文件类型
        tmp_name: 临时文件

2:is_uploaded_file() //是否是上传文件
3:move_uploaded_file() //执行移动上传文件

    

四、 下载设置:

header("Content-Type:类型"); //指定响应类型
header("Content-Disposition:attachment;filename=文件名"); //**执行下载文件名
header("Content-Length:文件大小");

readfile("./uploads/".$picname); //读取并输出图片内容;

查找命令

    1)    命令名称:which    
        命令所在路径:/usr/bin/which
        功能描述:查看命令文件位置和命令可能出现的别名

    2)    命令名称:find
        命令所在路径:/usr/bin/find
        功能描述:搜索系统中的符合条件的文件

    -name 根据文件名查找

通配符

  • 任意多个字符
    ? 1个字符
    [] 指范围值,外侧加引号
    例:find /var –name “*.log”

     find  ./  -name  “[1-3].txt”
    

    -size 根据大小查找
    单位是 block 数据块 一块是512字节

      1M -> 1024k -> 2048块  (1块是0.5k 也就是512字节)

    100M -> 102400k -> 204800块
    例 find /etc -size -10k 查找小于10k的文件

       find /etc -size +2M        查找大于2M的文件

    注意+-号,如果没有,是精确这么大

    -user 根据所有者查找
    例 find /home -user jack

            在/home中,查找所有jack用户的文件
     在系统中需要存在此用户,否则报错
    

    -按时间查找
    按天 ctime atime mtime
    按分钟 cmin amin mmin

     c   change 改变        #表示属性被修改过:所有者、所属组、权限
     a   access  访问    #被访问过(被查看过)
     m  modify 修改        #表示内容被修改过

    例:find /etc -mmin -120 查找120分钟内被修改过的

     find /etc -mtime +7        超过7天没有改过的文件
    

    -type根据文件类型查找
    例: -type f 二进制文件(普通文件)

     -type l 软链接文件
     -type d 目录
    

    -逻辑连接符:
    -a (and 逻辑与 ) -o (or 逻辑或)
    例:find /etc -size +1k -a -size -10k
    在etc目录下查找大于1k并且小于10k的文件

-命令执行连接符(对查找到的文件,进一步处理)

    find  ...  -exec 命令 {}  \;
        {}表示find查询的结果集
        \是转义符,不使用命令别名,直接使用命令本身
        ;分号是表示语句的结束
    注意:固定格式,只能这样写。注意中间的空格。
转义符的作用是什么?

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

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

找到文件后查看详情:

find /etc -name inittab -exec ls -l  {}  \;
find /etc -name “init*”-a -type f -exec ls -l {} \;  

通过-type f过滤掉目录,只列出文件,否则ls会列出很多文件


找到testfile后,直接删除
find /test -name testfile -exec rm {}  \;

找samlee用户的所有文件并删除
find /home -user samlee -exec rm –r  {}  \;
rm –r 连带目录一起删除。报错原因:-exec 不适合大量传输,速率慢,导致。

找samlee用户的所有文件并删除,删除前会一个提示确认
find /home -user samlee -ok rm -r {} \;


-根据i节点查找
-inum  i节点号
有一些文件的硬链接数量很多,有相同的i节点,查找其中一个文件的i节点号,一次性删除
find ./ -inum 2310630 -exec rm {} \;


    3)    grep    “字符串”  文件名        
    
        命令所在路径:/bin/grep
        功能描述:在文件内查找符合条件的字串行
        grep  -i  “root”  /etc/passwd
              -v        反向选择
              -i     忽略大小写

find:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配。通配符是完全匹配。
grep:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式匹配,正则表达式是包含匹配

注意事项:

尽量不要在根目录/中查找,查找得慢,会占用太多服务器资源
如果需要在服务器中全盘查找,可以写一条计划任务在凌晨执行
查找范围越小越好,匹配条件,越精准越好


    4)    管道符            
        命令1  |  命令2            将命令1的标准输出作为命令2的标准输入
        例:ls  -l  /etc  |  more            分屏显示ls内容

四、帮助命令

    1)    man  命令名            查看命令的帮助    
        命令名称:man
        命令英文原意:manual
        命令所在路径:/usr/bin/man

    2)    命令  --help            查看命令的常见选项
        命令  --help
        help   命令        

五、压缩和解压缩

    
        .zip  .gz     .bz2     linux可以识别的常见压缩格式    
        .tar.gz    .tar.bz2     常见的压缩和打包格式

(1)压缩&解压缩
zip
压缩格式: zip 压缩文件(生成) 源文件
解压格式: unzip 压缩包名
-r 压缩目录
(2)打包压缩&解包加压缩

            tar  -*cvf  压缩文件名(生成)  源文件
                -z        识别.tar.gz格式

-j 识别.tar.bz2格式

                -c        压缩
                -v        显示压缩过程
                -f        指定压缩包名
            tar  -*xvf  压缩包名
                -x        解压缩
            tar  -*tvf  压缩包名
                -t  只查看,不解压

tar -*xvf 压缩包名 -C 目录

                -C        指定解压目录

六、网络命令

    1)    ping    测试网络连通性
            命令名称:ping
            命令所在路径:/bin/ping
            执行权限:所有用户Ctrl +c 强制终止
        ping  -c  次数  ip        探测网络通畅

    2)    ifconfig      查询本机网络信息
            命令名称:ifconfig
            命令英文原意:interface configure
            命令所在路径:/sbin/ifconfig
            执行权限:root

七、关闭和重启命令

    
          1)关机

shutdown -h now 没有特殊情况,使用此命令
halt
init 0

          2)重启

shutdown -r now
命令名称:shutdown

                命令所在路径:/sbin/shutdown
                执行权限:root    
            reboot
                命令名称:reboot
                命令所在路径:/sbin/reboot
                执行权限:root
        

八、挂载命令

    
    linux所有存储设备都必须挂载使用,包括硬盘
        命令名称:mount
        命令所在路径:/bin/mount

        常见的存储设备:
        /dev/sda1    第一个scsi硬盘的第一分区
        /dev/cdrom    光盘
        /dev/sr0        光盘            centos 6.x
        
        挂载格式:
        mount  -t  文件系统  设备描述文件  挂载点(已经存在空目录)
        mount  -t  iso9660  /dev/cdrom  /mnt/cdrom

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

        fdisk  -l      查看当前系统下的存储设备
        df        –h       查看存储设备挂载信息
        
        mount  -t  vfat  /dev/sdb1  /mnt/usb

fat32格式的U盘挂载方式

Shell使用小技巧:
1)补齐功能

补齐功能允许用户输入命令名或文件名起始的若干个字母后,按Tab键补齐命令名或文件名。

2)命令历史

命令历史允许用户浏览先前输入的命令并重新
调用它们,用history命令可以显示命令列表,按方向键↑和↓可查找以前执行过的命令。
!命令前缀

3)命令别名定义:
范例:alias copy=cp

           alias  dirrm= ‘rm -rf ’

查看别名信息:alias
删除别名:unalias copy

服务器管理规范:

越是安全等级要求高的服务器,越是严格限制用户等级,不能所有人都是root,远程服务器不能关机。
服务器不允许在负载高峰执行高负载命令。例如杀毒、大数据压缩解压缩,复制,全盘搜索。

权限管理命令:

    1    权限位
        -  rw-  r--  r--   1   root  root     08-11  01:45  aa.txt

        权限位是十位
        第一位:    代表文件类型

            -    普通文件
            d    目录文件
            l    链接文件

权限 读 写 执行 读 写 执行 读 写 执行

    字符  r   w   x       r   w   x        r   w   x
              4   2   1       4   2   1        4   2   1 
    分配  文件所有者(u) 文件所属组(g)  其他用户(o)


            r    读        4
            w    写        2         
            x    执行        1

1) 命令名称:chmod

        
        功能描述:修改文件的权限
            例:

chmod u+x aa 给aa文件的所有者添加x权限

            chmod  g+w,o+w   aa    给aa文件的所属组和其他人添加w权限
            chmod  u=rwx          aa    给aa文件的所有者赋予rwx权限
            chmod  644  aa            修改aa文件的权限为755,对应为rw-r--r--

useradd 用户名 #添加用户
passwd 用户名 #为用户设置密码
rwx权限对于目录和文件,实际意义是不一样的。

文件:    
r    cat  more  head  tail               查看文件内容
w    echo  vi                            修改或删除文件内容
x    sh     脚本文件                        执行

目录:
r    ls  find  tree                        列出文件
w    touch  mkdir  rm    mv   cp        创建删除文件或目录
x    cd                                    进入目录

对文件有写权限,只代表可以修改这个文件;要想删除文件,需要对文件所在目录有写权限
只要对目录有写权限,目录中的文件,就算是root创建的,普通用户一样能删除

目录一般都同时有rx权限,如果一个目录只有r却没有x,你能用ls查看,却不能cd 进去!

2) 命令名称:chown

        命令所在路径:/bin/chown
        功能描述:修改文件或目录的所有者、所属组

        例:chown  user1  aa        将aa文件的所有者修改为user1用户

chown user1:user1 aa 将aa文件的所有者修改为user1用户
并且所属组修改为user1组

            chown  :user1  aa        将aa文件的所属组修改为user1组

3) 命令名称:chgrp
命令所在路径:/bin/chgrp
功能描述:改变文件或目录的所属组
语法:chgrp 用户组 文件或目录
例:chgrp adm file1

改变文件file1的所属组为adm      
    
    4)    命令名称:umask
        功能描述:显示和设置默认掩码值

             777
            -022
        --------------
              755    
        就是创建文件的默认权限

Linux的安全机制,不给新建文件x权限。

fedora、redhat、Centos、 suse、ubuntu都是常见的linux
/分区、swap分区、/boot分区都是linux的必须分区
Linux 命令格式
命令 -选项 参数(操作对象)
ls -la /etc
linux常见目录
/根目录
/bin 命令保存目录(普通用户就可以读取的命令)
/sbin 命令保存目录(超级用户才能使用的目录)
/boot 启动目录,启动相关文件

            /dev            设备文件保存目录
            /etc                配置文件保存目录
            /root            超级用户的家目录
            /home            普通用户的家目录
            /lib                系统库保存目录
            /mnt            挂载目录
            /media            挂载目录
            /tmp            临时目录
            /proc            直接写入内存的
            /usr                系统软件资源目录
            /var                系统相关文档内容
            /var/log/        系统日志位置

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

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

1) 命令名称:ls
命令英文原意:list
命令所在路径:/bin/ls
功能描述:显示目录文件
语法:ls 选项 文件或目录
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性,不显示目录下内容 -ld
-h 文件大小显示为常见大小单位 B KB MB -lh
ls -l
-rw------- 1 root root 1190 08-10 23:37 aa.txt

            第一项:            权限位    
            第二项:          引用计数(文件:硬链接数;目录:目录下的目录个数)
            第三项:         所有者
            第四项:          所属组
            第五项:          文件大小    (默认字节)
            第六项            最后一次修改时间

第七项 文件名

        2) 命令名称:cd
            命令英文原意:change directory
            命令所在路径:shell内置命令

功能描述:切换目录
语法:cd 目录
cd ~ 进入当前用户的家目录 /root /home/aa/

            cd  -    进入上次目录
            cd  ..    进入上一级目录
            cd  .    进入当前目录

        3)    命令名称:pwd

功能描述:显示当前目录

        4)    命令名称:mkdir

功能描述:创建新目录
语法:mkdir -p 目录名
-v 显示创建过程
-p 递归创建

5) 命令名称:tree
命令所在路径:/usr/bin/tree
功能描述:显示目录树
语法:tree 目录

6) 命令名称:touch
命令所在路径:/bin/touch
功能描述:创建空文件
语法:touch 文件名
拓展:echo “hello” >> 文件名
用echo 创建有内容的新文件

会覆盖源文件的内容

追加内容到源文件中
                   Vim  3.txt      #不保存,文件不生成

#保存,文件生成
touch {5..10}.txt

        7)    命令名称:cp

命令所在路径:/bin/cp
功能描述:复制文件或目录

语法:cp -rp 源文件或目录 目标目录

              -r  复制目录
                -p  保留文件属性

        8)    命令名称:mv

命令所在路径:/bin/mv
功能描述:剪切文件、改名
语法:mv 源文件或目录 目标目录

        9)    命令名称:rm

命令所在路径:/bin/rm
功能描述:删除文件
语法:rm -rf 文件或目录

       -r   删除目录
       -f   强制执行

        10)命令名称:cat

命令所在路径:/bin/cat
功能描述:显示文件内容
语法:cat 文件名

            注:文件超过一页内容后只能显示最后一页的内容

11)命令名称:more
命令所在路径:/bin/more
功能描述:分页显示文件内容
语法:more 文件名
(空格)或 f 翻页
(Enter) 换行
q或Q 退出

拓展:
head –n 显示文件前n行
tail -n 显示文件最后n行
tail -f 实时监控文件尾部变化

12)命令名称:ln
命令所在路径:/bin/ln
功能描述:生成链接文件
语法:ln -s 源文件 目标文件

      -s  创建软链接
  ln         源文件     目标文件

mac下是自带有Apache和php的服务器的,不需要另外安装,配置即可。
第一:Apache

在终端中输入下面指令即可启动Apache服务器:

//启动
sudo apachectl-k start
//重新启动
sudo apachectl -k restart

验证:

在浏览器中输入:http://127.0.0.1,显示为It Works!,既证明服务器已经启动。

但是由于默认站点位于系统路径下,所以我们修改到自定义的路径。所以还需要进行相关配置

修改站点位置:

终端中输入

cd /etc/apache2/
sudo vim httpd.conf // 会提示输入密码,输入后回车即可
英文下输入: /DocumentRoot,查找,
注:1:注意区分大小写;2:要修改两个地方,故要进行两次查找。

第一次查找后,修改:

第二次查找后,修改

都改为你要自定义的路径

修改好后:wq保存退出,重启服务器,并在自定义的路径下放置html文件,即可访问。

第二:配置PHP服务器:

1:终端中输入指令:

cd /etc/apache2
sudo vim httpd.conf
按 /php,进行搜索,把带有LoadModule php5…..这一行的#(注释符号)去掉即可。

2:终端中输入:

cd /etc/
sudo cp php.ini.default php.ini

重启服务器,在自定义的站点路径下放置php文件,即可访问php内容。

第三:MySQ安装:

MySql下载:http://dev.mysql.com/downloads/mysql/ MySqlWorkbench下载:http://dev.mysql.com/downloads/workbench/

下载后直接安装即可,一路默认就好

MySql配置:

打开终端,输入:

vim ~/.bash_profile

输入 i进行编辑 ,然后粘贴以下内容

mysql

alias mysql='/usr/local/mysql/bin/mysql'
alias mysqladmin='/usr/local/mysql/bin/mysqladmin'

ls

alias ls='ls -G'

按ESC键 ,输入 :wq
这样在终端中 直接输入 mysql 就可以进入mysql 。输入 exit 为退出

修改MySql的管理员密码,在终端中输入:

mysqladmin -u root password "root"

启动Mysql服务

 sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

停止Mysql服务

 sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

重启Mysql服务

 sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

至此,Apache+MySQL+PHP安装配置完毕。

附:对vim编辑器进行介绍
vim有两种模式:
1:命令模式

shift+v -> 选中一行
y -> 复制一行
yy -> 复制当前行 (yank current line)
p -> 在当前行的下一行复制粘贴的内容
x -> 删除一个字符
:wq -> 保存退出
:q! -> 不保存退出
i -> 进入编辑
/ -> 按/再输入字符可进行查找