• linux基础


    elear   清屏

    帮组命令

    man 选项  文件名(或者命令名)

    结果里面:
    NAME:命令功能
    SYNOPSIS:选项的格式
    DESCRIPTION:命令描述
    OPTIONS:选项

    >,覆盖写入
    ls -l / >~/bbb

    注意:
    1、若写入的文件不存在就自动创建。
    2、如果文件存在系统会将内容情况然后将这一次的内容写入。
    3、命令不管执行成功或者失败都会将重定向文件中的内容清空。


    >>,追加写入
    ls -l />>~/yanhaijingzhentmshuai

    注意:
    1、如果文件不存在就先创建,如果存在就追加写入。
    2、注意右边不要有空格。

    重定向标准输出、标准错误输出:
    [root@yanhaijing ~]# ls -l xxxxxxxxxxxx 1>test.txt
    让命令执行正确的写入到test.txt中
    [root@yanhaijing ~]# ls -l xxxxxxxxxxxx 2>test.txt
    让命令执行错误的写入到test.txt中。

    [root@yanhaijing ~]# ls -l / 1>t1.txt 2>t2.txt
    如果命令执行成功写入到t1.txt如果执行失败写入到t2.txt

    /dev/null “黑洞”所有写入到这里面的东西都将会被“吞噬”。
    [root@yanhaijing ~]# ls -l /asdfasdfasdfsaf 1>t1.txt 2>/dev/null

    注意:
    1、默认时只会将号码1的重定向。
    2、当命令执行完成后,这些号码就失效了。

    计划任务:
    单一计划任务(好比定时炸弹,到时候炸了就没了。)
    格式:at 时间
    时间格式:
    HH:MM YYYY-MM-DD 时:分 年-月-日
    HH:MM 时:分
    now + minutes 多少分钟之后执行

    当你输入之后进入到提示符at>里面。

    注意:
    1、写命令,每一行一条命令。
    2、写完之后按ctrl + d 保存

    选项:
    -l,查看计划任务列表。
    -c 序号,查看计划任务的内容。
    -d 序号,删除计划任务

    周期性计划任务(每个月1号联通都让我交话费。)

    格式:
    crontab 选项
    选项:
    -l,查看当前用户计划任务。
    -e,编辑crontab的工作内容。
    -r,删除所有的计划任务
    进入到crontab中写的格式:
    分 0~59
    时 0~23
    日 1~31
    月 1~12
    周 0~6
    命令

    其他符号
    *,表示每个周期执行。
    ,,表示或者 10,15 表示10分或15分
    -,表示一个时间段 1-5 表示从1点到5点每个小时。


    5种日期、时间选项的关系。
    分、时、天、月他们的关系是并且的。
    分、时、月、周他们关系是并且的。

    同时设置分、时、天、月、周这个时候 天和周的关系是或者的关系。

    crontab

    查找命令:
    whereis 配置文件/命令
    locate 关键字 
    updatedb手动更新数据库,whereis 和locate都是从这个数据库中找这个数据。

    查找文件的路径

    which  文件(夹)

    查找:

    find 起始目录目录 -属性 属性值

    属性:

    -name      按照指定的文件名查找

    find ./bbb/ -name aaa.txt

    -user       按照指定的所有者查找

    -group     按照指定的所属组查找

    -size     按照指定的大小进行查找

    find / -size 2M 表示查找2m的文件

    find / -size +2M  表示查找大于2m的文件

    find ./ -size -2M  表示查找小于2m的文件

    -perm  按照指定的权限查找

    find  ./bbb -perm 755

    grep  在文件中搜索符合条件的字符串

    gerp 要搜索的字符串 文件名 

    grep javascript ./bbb/

    管道符:   将命令1的结果作为命令2的参数

    命令1|命令2

    find / -name *passwd* | grep /etc/passwd          

    ls:显示目录内容

        ls -a  显示隐藏文件
    
        ls -1  列显示
    
        ls -sh  以K M G显示
    
        ll  -sh  以长格式显示  相当 ls -lsh

    创建目录:

        mkdir ./dir1 ./dir2 ./...

    递归创建目录:

      mkdir -p ./parentDir/childDir
    
        mkdir -p ./parentDir/{childDir1,childDir2,...}

    删除文件或目录

       rm -rf  ./dir         r递归  f不提示直接删除

    创建文件           如果文件不存在则创建空文件 否则就更新文件的时间 

      touch ./filename

    复制目录或者文件

    cp [选项] 源文件  目标文件

    当目标文件文件不是目录则表示重命名

    当目标文件是目录则表示直接复制

    选项: -p  表示保持源文件的原始属性(比如时间啥的)  -r 递归

    重命名aaa.txt文件为bbb.txt :    cp ./aaa.txt    ./bbb.txt
    
    复制aaa.txt文件到bbb目录下   cp ./aaa.txt   ./bbb
    
    复制aaa目录到 bbb目录下    cp ./aaa   ./bbb      如果bbb文件夹不存在 那么会将aaa重命名为bbb

    移动或者重命名文件/文件夹:

    mv 源文件或者源目录 目标文件夹/             移动
    mv 源文件或者源目录 目标文件                  移动并且重新命名

    mv aaa/ ./bbb                                                   将aaa目录移动并重命名为bbb
    
    mv aaa/ ./bbb/                                                  将aaa目录移动到bbb目录下
    
    mv aaa.txt  ./bbb  或者mv aaa.txt  ./bbb/         将aaa.txt移动到bbb
    
    mv aaa.txt  ./bbb/bbb.txt                                  将aaa.txt移动到bbb  并且重命名为bbb.txt

    创建软连接和硬连接: ln

    创建软连接(相当于windows的快捷方式,源文件被删除那么目标文件则失效) ln -S ./源文件 ./目标文件    删除软连接的时候注意去掉 后面的/
    
    创建硬连接(相当于php中引用的概念,不能跨区只能超级用户创建,也不能是目录) ln ./源文件 ./目标文件

    查看文件内容:

    查看全部内容并且显示行号

    cat -n  ./aaa.txt

    分屏显示

    less 

    -f  强迫打开特殊文件

    -i  忽略搜索时的大小写

    -N  显示每行的行号

    ps查看进程信息并通过less分页显示同时显示行号

    ps -ef|less -N

    浏览多个文件

    less test2.log test.log

    显示行号浏览完毕后自动退出:

    less -eN ./aaa.txt

    进入文件后的操作:

    /字符串:向下搜索“字符串”的功能          按下/键输入文字再按enter键就是搜索了

    ?字符串:向上搜索“字符串”的功能

    n:向下搜索             按下/键输入文字再按enter键然后按n是向下先试试搜索的字符串,N是向上

    N:向上搜索

    h  显示帮助界面

    Q  退出less 命令

    u  向上翻半页

    d  向下翻半页

    y              上一行

    回车键     下一行

    空格键    下一页

    b            上一页

    [pagedown]: 下一页

    [pageup]:   上一页

    从头显示

    默认从上至下显示10行:

    head ./aaa.txt

    n为整数表示从前面显示多少行,负数表示从第一行开始到倒数多少行

    head -n 3 ./aaa.txt           # 从第一行开始显示3行
    
    head -n -3  ./aaa.txt        #显示从第一行到倒数三行

    tail:从后面显示文件内容

       tail  -n m ../aaa.txt    #显示后面10行  

    权限

    角色:所有者、所属组、其他

    权限:  r(4)、w(2)、x(1)  :可读   、 可修改文件内容|在文件夹中可可进行创建|删除|重命名|剪|”复制     、  可(进入目录)执行文件

    755   rwx r-x r-x   所有者,所属组,其他

    4.0K drwxr-xr-x 2 root root 4.0K Jul 10 00:50 bbb         文件类型(d:文件夹)文件夹aaa所有者权限文件aaa所属组的权限其他用户权限     文件aaa所有者   文件aaa所属组          文件

    创建用户:        useradd 用户名

    修改用户名:    passwd 用户名

    修改角色权限

    方法1:

    chmod 755 ./aaa.txt       修改aaa.txt的权限

    方法2:

    chmod 角色 操作 权限

    角色:u:所有者; g所属组; o其他

    Linux系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及root的相关信 息, 都是记录在/etc/passwd文件中。每个人的密码则是记录在/etc/shadow文件下。 此外,所有的组群名称记录在/etc/group內!

    操作:

    +  :  在原有的基础上加上某权限

    -  :  在原有的基础上减去某权限

    =   : 不管原来什么权限 都改成 当前设置的权限

    权限: r w x

    chmod -go-rx   ./aaa.txt

    chmod u+x,g+w ./f01  //为文件f01设置自己可以执行,组员可以写入的权限
    chmod u=rwx,g=rw,o=r ./f01
    chmod 764 ./f01
    chmod a+x ./f01  //对文件f01的u,g,o都设置可执行属性

    修改所属组:

    chgrp 选项 新所属组名 文件(夹)名

    chgrp -R  root ./bbb/

    同时修稿所有者和所属组

    chown 所有者用户名:所属组名 文件(夹)

    chwon -R root:root ./bbb/

    压缩和解压缩

    gzip压缩 :压缩后源文件就没有了   不能压缩文件夹 最多只能通过 gizp -9v ./dir/* 将文件里面的文件依次压缩

    选项 -# (#表示1-9)1压缩快但是压缩比差 9压缩比最好但是也是最慢的  默认的是6

    -v  显示压缩比信息

    gzip -9v aaa.txt

    gzip 解压: -d 选项就是解压

    gzip -dv aaa.txt.gz

    bzip2 压缩    和gzip一样就是多了一个保留源文件 -k 参数 

    压缩
    bzip2 -9kv ./aaa.txt    
    
    解压
    bzip2 -dv ./aaa.txt.bz2

    tar安装

    yum install -y tar

    tar打包  可以压缩多个文件   可以压缩文件夹

    tar打包时默认的时候没有压缩功能,压缩是后面的选项-z -g

    默认解压是解压全部 可以后面跟要解压的文件名,就能将某个文件解压出来

    选项

    压缩

    -c   创建打包文件

    -f 新建文件名

    -t 查看

    解压

    -x 解压

    -C 这里的大写C配合-x使用将包解压到指定位置

    其他

    -v 显示解压过程

    -z gzip压缩方式 

    -j bzip2压缩/解压缩方式

    -c:建立一个压缩文件的参数指令(create 的意思);
    -x:解开一个压缩文件的参数指令!
    -t:查看 tarfile 里面的文件!
    -r:向压缩归档文件末尾追加文件
    -u:更新原压缩包中的文件

    可选参数

    -z:有gzip属性,即需要用 gzip 压缩
    -j:有bz2属性,即需要用 bzip2 压缩
    -Z:有compress属性的
    -v :压缩的过程中显示文件(显示所有过程)!这个常用,但不建议用在背景执行过程!
    -O:将文件解开到标准输出
    -f :使用档名,请留意,在 f 之后要立即接档名!不要再加参数!例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔!
    -p :使用原文件的原来属性(属性不会依据使用者而变)
    -P :可以使用绝对路径来压缩!
    -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
    --exclude FILE:在压缩的过程中,不要将 FILE 打包!
    -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。


    # tar -cf all.tar *.jpg // 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
    # tar -rf all.tar *.gif // 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
    # tar -uf all.tar logo.gif // 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
    # tar -tf all.tar // 这条命令是列出all.tar包中所有文件,-t是列出文件的意思
    # tar -xf all.tar // 这条命令是解出all.tar包中所有文件,-x是解开的意思

     tar [-cxtzjvfpPN] 文件与目录 ....

            tar -cf archive.tar foo bar         # 将foo 和 bar打包成archive.tar
            tar -tvf archive.tar                   # 详细列出archive.tar中的所有文件
            tar -xf archive.tar                    # 从archive.tar中提取(解压)所有文件.

    tar 选项 新包名 打包文件(夹)注意f后面不能有其他的选项了 

    tar -c -f xxoo.tar  file1 file2 file3                将file1、file2、file3打包到 xxoo.tar文件中
    
    tar -x -c ./bbb -f xxoo.tar file1                    提取xxoo.tar 中的file1文件 并移动到当前路径的bbb文件夹内
    
    tar -c -f xxoo.tar.bz2 -j file1 file2 file3          将file1、file2、file3用bzip2方式压缩并打包到 xxoo.tar.bz2文件中
    
    tar -j -x -f xxoo.tar.bz2 -C ./ccc/                  将xxoo.tar.bz2 解压到ccc文件夹


    tar -cjfv lichiuha.tar.bz2 parentDir 将parentDir压缩打包成lichiuha.tar.bz2

              

    挂载:

    /dev为linux的设备  直接是访问不到这里的设备的  如cd /dev/cdrom 提示cdrom不是目录   我们要用这个设备必须将这个设备挂载到一个存在的文件目录上

    查看挂载设备:

        直接输入mount 回车是查看已挂载的设备

    挂载设备:

      mount [选项] 外部设备 挂载点(挂载点是一个存在目录 必须是一个空目录否则已有的文件会被暂时覆盖)

    选项:  -t  挂载类型

    如 mount -t 9600 /dev/cdrom /media/

    卸载设备

    mount /media/   (必须突出带/media/以外的目录才能成功,否则会提示 device is busy)

     软件包安装

    程序员将程序写好,然后在编译成电脑能读懂的而二进制程序执行,

    Linux中最标准的程序语言C,所以使用C语言的语法进行源代码的编写,写完之后,在LInux标准的C语言编译器(GCC)中来进行编译,让编译器生成可以使用二进制程序。

    所以装完linux系统记得安装gcc

    软件包安装方式: 详细的教程

    LAMP源码安装

    centos 编译安装php7.1 mysql nginx

    1)、源码包,tarball,将所有的软件源文件以tar打包在进行压缩,常见格式为*.tar.gz
    *.tar.bz2,所以tarball是一个软件包,通常里面有源代码的软件、检测程序文件、说明(Install或README)

    源码包的特点:
    优点:开源自由定制。
    缺点:
    1、编译时间长。
    2、一旦报错,很难解决。
    3、需要知道这个软件需要哪个子程序的支持。

    2)、二进制包:RPM包(Linux下都是二进制包,和windows中一样),由于tarball不容易管理、安装,所以各个厂商开始向办法,让它更加容易使用。
    厂商先将软件在固定的硬件平台、操作系统上安装编译好。然后将这个软件所有相关文件打包成一个特殊格式的文件,这个文件内还包含了预先检测软件的脚本,并提供记录该软件所有文件的信息。

    客户取得这个文件后只需要通过特定的命令来进行安装。

    RPM是红帽开发出来的。很多Linux都使用这种机制。CentOS Fedora

    RPM的优点:
        1、避免重新编译。
        2、安装之前,会预先检查。可以避免文件被错误的安装。
        3、RPM文件本身提供软件版本信息,依赖的子程序的文件名、软件的用户说明。

    RPM的缺点:
        1、不能自动解决软件依赖关系。还是必须要先安装子程序。
        2、用户不用重新编译,缺少自定义性。

    3)、YUM安装方式,(实际上这种包也是使用RPM包)
    YUM是通过分析RPM的数据后,根据软件的相关制作信息,找出各个部分的依赖,然后自动解决。

    和RPM包相同但是自动的解决了依赖关系。

    YUM是通过分析RPM数据后,根据各个软件相关信息制作出软件各个的依赖部分。

    在一个服务器中的文件夹中包含所有软件包,当客户端要安装一个软件的时候,先发送请求到服务器,说明要安装这个软件,这个时候服务器会自动去找和该软件相互有依赖的包,然后将要装的软件和所有该软件相互依赖的包一起发送到客户端(只是将这些依赖包放在客户端的缓存中),客户端进行安装(安装完成后会将放在客户端的缓存删除掉)

    源码安装php7

    下载php安装包解压

    tar -xjcf  php-7.0.tar.bz2

    进入解压后的php目录 找到configure工具shell脚本主要编译安装源代码库软件可以检测依赖关系

    configure --prefix=/home/work/study/soft/php

    编译源码

    configure

    make

    mak install

    进程管理:
    1、什么是进程?进程是程序在运行的时候在内存中一种体现。程序开启会消耗一定的CPU和内存。

    ls命令是否会产生进程?既然是命令,命令也是程序,程序运行就会将产生进程,只不过向这种进程结束的很快。

    2、进程和程序的区别:进程是动态的,程序是静态的,程序如果没有运行不会消耗内存和CPU,程序在运行的时候产生了进程会消耗内存和CPU。进程会使用编号标记出来。这个进程的编号我们叫PID

    进程的作用:

    查看系统中的所有进程。
    格式:ps 选项
    功能:查看进程
    选项:(选项没有-)
    a,显示所有进程
    u,显示进程的所有者
    x,更加详细的显示。

    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 1 0.0 0.0 2872 1420 ? Ss 10:38 0:01 /sbin/init


    user:该进程属于哪个账号。
    pid:进程号
    %CPU:该进程使用掉CPU资源的百分比
    %MEM:该进程所占用的物理内存百分比
    VSZ:使用掉的虚拟内存的数量。
    RSS:该进程占用的固定内存两。
    TTY:该进程在那个终端上面运行。
    ?表示与终端无关内核正常调用。
    tty1-tty6 在本机上面的登录者。
    pts,有网络连接的进程。

    STAT:该进程目前的状态,R(正在运行),S(正在休眠),Z(僵尸进程,进程已经终止但是没有办法消除。要么重新启动要么直接杀死。)
    START:该进程被触发的时间。
    TIME:该进程实际使用了CPU的时间。
    COMMAND:该进行的实际命令。


    判断服务器的健康状态。一般来说CPU和内存占用超过80%就是高负载了。使用进程可以查看到谁占用了这么多的内存和CPU
    动态的显示当前系统中的进程:
    格式: top

    默认的时候是3秒抓取一次。

    选项:
    -d 数字,进程多少秒刷新


    top - 12:02:06(系统时间) up 1:23(系统运行了多长时间), 1
    user(登录了多少个用户), load average: 0.00, 0.00, 0.00(平均负载
    1分,5分,15分)
    Tasks: 116 total(总共116个进程), 1 running(1个运行), 115
    sleeping(115个休眠), 0 stopped(0个停止), 0 zombie(0个僵尸进程)
    Cpu(s): 0.3%us, 0.7%sy, 0.0%ni, 99.0%id(CPU空闲率), 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
    Mem: 3484300k total, 999692k used, 2484608k free, 62064k buffers
    Swap: 3620856k total, 0k used, 3620856k free, 763676k cached

    看着1、5、15的负载和CPU的空闲率。


    杀死进程:所有进程都有正确的终止手段。只有使用正确的关闭进程的方式不好使的时候才会杀死进程。
    格式:kill -信号 PID
    信号:
    -1,重启服务
    -9,强制中断
    -15,以正常的结束进程来终止该进程。

    可以使用ps aux 查看pid号


    格式:killall -信号 进程名
    信号:
    -1,重启服务
    -9,强制中断
    -15,以正常的结束进程来终止该进程。


    注意:一般使用killall,如果已经知道了进程ID那么使用kill 来进行杀死。


    服务管理:

    服务-----》软件运行的时候提供给客户的功能。
    windows里面也有服务。 msconfig


    服务:服务的状态,服务的启动。


    服务:
    RPM包安装的服务:RPM包是默认安装的服务(Linux装系统的时候,有很多东西都是使用RPM包安装出来的,所以Linux将会将RPM包安装的成为默认服务)

    独立服务:独立服务可以自己单独启动的服务,这种类型的服务可以让用户自主决定是否启动。不必通过其他的管理机制。他的特点:服务一启动就加载到内存中,一直占用内存资源。这样当有请求过来的时候可以快速响应。
    chkconfig --list 来查看RPM包安装的服务以及,自启动状态。

    [root@lichihua ~]# chkconfig --list
    结果如下:
    NetworkManager 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
    系统运行的级别:0:关机 1:单用户 2:单用户,但是不带文件共享 3,文字界面 4:未使用(预留) 5:图形界面 6:重启

    开启、关闭、重新启动
    格式:service 服务名 动作

    动作:start 开启 stop 停止 restart 重新启动服务。


    比如:service network restart 重新启动网络服务

    注意:也可以使用/etc/init.d/服务名
    动作来进行处理,因为service命令也是从/etc/init.d中查找指定的服务名。

    独立服务的自启动:
    方法1:chkconfig [--level 运行级别] 服务名 on|off

    chkconfig --level 12 vsftpd on ===》 让vsftpd这个服务在1和2运行级别中自启动。

    chkconfig vsftpd off ===》让vsftpd这个服务在2345中关闭自动启动。
    注意:--level如果省略表示的是2345运行级别


    方法2:使用vtsysv命令管理(红帽专有)


    方法3:在/etc/rc.local文件中写入开启的命令


    (了解内容)非独立服务:(现在用的太少了),基于xinetd的服务。xinetd他是一个独立服务。其他的这些非独立服务由他来调用。
    就相当于你去银行排号,办理某种业务。

    源代码包安装的服务:

    要启动或者要停止,看安装目录中的服务名。
    /Apache/bin/Apachectl start
    /apache/bin/apachectl start (apachectl最后的1是1234的1不是L)

    自启动-----》在/etc/rc.local文件中写入开启的命令

    tarball(源码包)安装的软件这些服务能够用service开启或者关闭吗?可以
    /etc/init.d里面没这个东西。 现在我有一种方法。我给这个源码包安装的服务软连接到/etc/init.d中。

    /Apache/bin/Apachectl

    ln -s /Apache/bin/apachectl /etc/init.d/apache


    service apache start
    service apache stop


    系统运行级别:
    0,关机
    1,单用户
    2、单用户,但是不带文件共享
    3、文字界面
    4、未使用
    5、图形界面
    6、重启。


    init 0
    init 6

    runlevel 查看当前运行级别 第二个是当前的运行级别,第一个是当前运行级别的上一个运行级别。


    网络配置
    网卡信息:
    Linux中普通有线网卡使用eth表示。无线网卡使用wlan表示。
    0表示第一张网卡,1表示第二章网卡。

    eth0

    查看、配置网卡信息:ifconfig
    格式:ifconfig [选项] [网卡名]

    默认的时候查看,已经激活的可用的网卡信息。

    -a,查看所有的网卡的信息。

    ifconfig eth0 查看eth0的网卡信息。


    eth0(网卡名) Link encap:Ethernet HWaddr 00:0C:29:0E:15:70(网卡的Mac地址)
    inet addr:192.168.186.86(IPv4) Bcast:192.168.186.255 Mask:255.255.255.0
    inet6 addr: fe80::20c:29ff:fe0e:1570/64(IPv6) Scope:Link
    UP(网卡状态) BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:1803 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1001 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:179917 (175.7 KiB) TX bytes:209314 (204.4 KiB)(从开机到现在已经发送了多少包)
    Interrupt:19 Base address:0x2000

    配置网络:
    /etc/sysconfig/network-scripts/ifcfg-eth0

    [root@lichihua network-scripts]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    BOOTPROTO=none
    NM_CONTROLLED=yes
    ONBOOT=yes
    TYPE=Ethernet
    UUID="242cb6db-e380-4e0f-86da-7a6fa381575c"
    HWADDR=00:0c:29:0a:bf:46
    DEFROUTE=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=yes
    IPV6INIT=no
    NAME="System eth0"
    IPADDR=192.168.200.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.200.1
    USERCTL=no

    DEVICE 网卡名
    BOOTPROTO 这张网卡通过什么方式来获得IP地址(none,通过手工获得。static,静态获得。dhcp,动态获得)
    HWADDR=00:0c:29:0e:15:70 (MAC地址)
    ONBOOT=yes(系统或网络重新启动时候是否直接自动启动。)
    IPADDR=192.168.186.86 (你设置的IP地址)
    DNS1=202.106.0.20(配置主DNS地址,可以最多有3个 第二个DNS2 DNS3)


    DNS:domain name server,将主机名转换为IP地址或将IP地址转换为主机名

    注意:设置完配置之后一定要重新启动网络让新的配置生效。
    service network restart

    查看当前网络开启的端口
    netstat 选项。

    选项:
    -n,不将IP地址解析成主机么一
    -t,查看tcp情况
    -u,查看udp的情况
    -l,查查看监听的端口
    -p,显示端口对应的进程。

    netstat -ntulp

    注意:
    如果Apache开启的话 80 httpd



    ipconfig/all(windows)

    文件服务器:
    FTP服务器:
    FTP:文件传输协议,用于在inter上控制文件的双向传输(上传、下载)。

    FTP的工作原理:
    FTP服务器开启以后,会开启两个端口:20和21
    20,用来传输数据。
    21,用来传输信令,验证信息。


    FTP两种模式来进行工作:
    主动模式,客户端使用M端口(1024),来连接服务器的21端口,验证完成之后服务器通过20端口和客户端的N端口进行链接,也就是说FTP会主动链接到客户端的N端口。
    被动模式,客户端使用M端口连接FTP的21端口,客户端同时告诉FTP传输数据使用N端口进行传输,也就是说FTP服务器根据客户端提供的端口来进行数据传输。


    vsftpd:vervy secure ftp daemon 非常安全的FTP,VSFTP是一个在Unix操作系统上运行的FTP服务器的名字。


    安装:

    yum install vsftpd
    注意:安装完成后会自动创建一个ftp用户和一个ftp组


    开启服务:
    service vsftpd start
    service vsftpd stop | restart


    注意:做实验的时候要把防火墙和seLinux的关掉。

    setenforce 0 让seLinux暂停 临时关闭

    进入到/etc/selinux/config
    SELINUX=disabled


    [root@yanhaijing Packages]# rpm -q vsftpd
    vsftpd-2.2.2-11.el6.i686


    VSFTPD的设置
    vsftpd的配置文件:/etc/vsftpd/vsftpd.conf
    匿名用户
    anonmous_enables,是否启用匿名用户登录
    注意:
    1、匿名用户默认的时候是进入到/var/ftp这个目录中。
    2、如果你用匿名用户登录,登录的时候用户名ftp
    3、匿名用户没有密码。

    anon_root,更改匿名用户的用户根目录。
    注意:
    1、要修改ftp这个用户的家目录为你anon_root的值。
    usermod -d 目录 用户名 修改用户的家目录

    2、修改配置之后重新启动服务

    anon_upload_enable,匿名用户是否可以上传
    注意:
    1、ftp这个用户一定要对这个目录有写权限。
    2、vsftpd不能直接匿名根目录。

    anon_mkdir_write_enable,匿名用户是否可以创建新目录
    anon_other_write_enable,匿名用户是否可以删除、重命名。

    本地用户
    local_enable,是否允许本地用户登录
    注意:本地用户登录后目录是/home/用户名 ,用户的家目录。

    write_enable,是否设置本地用户可写。
    /×虚拟用户×/

    chroot选项:
    什么是chroot,他让你的ftp的根目录定位在你设定的目录中不能往上走。也就是说,如果你是使用本地用户登录只能最上层只能是/home/用户名
    这个就是你的ftp的根目录

    chroot_local_user,是否启用本地用户的chroot
    chroot_list_enable,让某些用户可以改变目录。
    chroot_list_file,写在这个文件中的用户可以进行改变目录。
    注意:在这个里面每一行写一个用户名。写在这个里面的可以进行改变目录。

    SAMBA
    三八服务器。

    我们如果能够让文件直接在服务器上面进行修改。

    在Linux和Linux之间可以使用NFS服务器。
    windows和windows之间可以使用网上邻居。CIFS
    windows和Linux之间怎么通信?
    在1991年的时候有个小伙子发明了SMB(server Message Block)让Linux和windows进行通信,但是在注册商标的时候SMB没有办法通过,因为SMB没有文字意义。正好SAMBA中有了SMB这三个字母就使用了SAMBA


    安装yum
    yum install samba


    注意:
    1、SAMBA主要使用两个服务
    nmbd:用来进行解析工作(链接到那个地址)开启137和138端口。
    smbd:用来管理分享的目录,开启139端口。


    开启:
    service smb restart|start|stop
    service nmb restart|start|stop

    samba的主要配置文件
    vi /etc/samba/smb.conf

    注意:
    1、#号开始和;开始都是注释信息。
    ;号开始表示的选项,#号开始表示的是描述。

    2、[global] => 全局生效的东西
    包括工作组、主机名、字符编码、是否使用密码,密码使用的机制。

    格式:参数=参数对应的值

    3、[分享资源名]=>针对开放的目录进行权限方面的设定
    格式:参数=参数对应的值


    注意:
    1、workgroup必须和windows中的设定的工作组一样。
    WORKGROUP

    2、interface监听那个网卡(哪个端口)


    3、security通过什么形式来进行验证。
    share(分享的数据不需要密码) user(使用SAMBA本身的密码)


    匿名用户登录SAMBA
    windows-》Linux

    1、确保Linux和Windows能够ping通
    2、workgroup和windows的group一定要一样。
    3、将security=share
    4、加入分享名字。
    [lamp129]
    path = /lamp129//分享的服务器上面的路径
    writeable = yes//是否可写
    public =yes//匿名用户是否可以访问。


    注意:一定要关闭seLinux

    注意:
    1、如果不能写入通常注意三个方面:
    1、服务器设置是否可写。
    2、是否有这个目录的权限。匿名用户是目录里面的其他人(nobody),那么其他人必须有w的权限。
    3、seLinux问题。


    打印机和传真。

    进行验证的SAMBA 登录

  • 相关阅读:
    切蛋糕
    STL----deque
    Java语法 [常识1]
    SQL Server 数据库基础编程
    SQL Server 数据库基础编程
    SQL Server 索引和视图
    SQL Server 索引和视图
    SQL Server 事务、异常和游标
    SQL Server 事务、异常和游标
    SQL Server 存储过程
  • 原文地址:https://www.cnblogs.com/lichihua/p/9286852.html
Copyright © 2020-2023  润新知