美文网首页
分享一下,最开始自学Linux基础的听课笔记吧,貌似好久没有更新

分享一下,最开始自学Linux基础的听课笔记吧,貌似好久没有更新

作者: 小小小小小小小小小小銀 | 来源:发表于2019-02-16 17:20 被阅读0次

    LinuxStudyNoteBy_Silvers X:

    (E:\Video_Tutorials\Linux自学视频\linux视频教程-后盾网视频教程)

    15:36 2017/2/6

    ##Linux中的基本命令包括文件操作命令、目录操作命令、文件查看命令等几类。

          文件操作命令完成对文件的建立、复制、删除、移动等功能                                                                                              目录操作命令完成对目录的建立、复制、删除、移动等功能

          文本查看命令完成对文本文件内容的浏览、局部浏览活分页浏览等功能

    ##linux下文件操作基本的命令

        ls: 列举文件 -a 显式隐藏文件 -l 具体文件及所有属性

        pwd: 无参数 显式当前所处目录结构

        touch:创建空白文件

        file :显式文件属性

    ##目录操作基本命令

        cd  :改变目录

        cp  :-r 复制目录

        mv :移动文件及目录

        rm :-r 删除文件夹 -f 静默删除

        mkdir: 创建目录

        rmdir: 删除一个空的文件夹

    ##文本文件查看基本命令

        cat :查看文件内容

        more:分屏显式文件内容

        less:分屏显式文件内容

        head : -nu 指定显式文件前nu行内容

        tail:-nu 指定显式文件倒数nu行内容

    ## 查看命令使用的历史记录

        方向键上:查看执行过的命令

        使用!!:执行最近(上一次)执行过的命令

        使用!: 执行已经执行过的命令(!①模糊查询(执行过命令的首字母或全称,当有多于一条相同命令,从下往上第一条命令优先执行)②!history显示的命令行数号

        history:显示历史执行过的命令  -d 删除历史记录

    ## 标准输入输出

        Linux的大部分命令都具有标准的输入/输出设备端口

        STDIN      0        标准输入      键盘    命令在执行时所要的输入数据通过它来取得。

        STDOUT  1        标准输出      显示器    命令在执行后的输出结果从该端口送出。

        STDERR    2        标准错误      显示器    命令执行时的错误信息通过该端口送出。

    ## 系统重定向

        重定向及时不使用系统的标准输入端口,标准输出端口和标准错误输出端口,而进行重新的指定,所以重定向分为输入,输出、错误重定向。通常情况下重定向到一个文件。

        <: 实现输入重定向。

        输入重定向不经常使用,因为大多数命令都以参数的形式在命令行上指定输入文件的文件名,尽管如此,当使用一个不    接受文件名为输入参数的命令,而需要的输入又是在        一个已存在的文件里,就可以使用输入重定向解决问题

        >或>>:实现输出重定向。输出重定向比输入重定向更为常用。输出重定向使用户能把一个命令的输出重定向到一个文件里,而不是显示在屏幕上。很多情况下都可以使用这种功        能。例如,如果某一个命令的输出很多,在屏幕上不能完全显示,即可把它重定向到一个文件中,稍后再用vim或cat打开该文件。(>和>>的区别 : 前者覆盖保存,后者追加保        存)

        2>或>>:实现错误重定向

        &>:同时实现输出重定向和错误重定向

    ## 管道的应用

        许多Linux命令具有过滤特性,即一条命令通过标准输入端口接受一个文件中的数据,命令执行后产生的结果数据又通过标准输    出端口送给后一条命令,作为该命令的输入数据。

        后一 条命令也是通过标准输入端口而接受输入数据的。

        管道命令“|”将这些命令前后连接在一起,形成一条管道线

        命令格式

        cmd1 | cmd2

        cmd为命令名,|为管道连接符。

    ## 文件权限管理

          文件权限(File Permission)定义了对某文件或目录的访问限制。每个文件或目录都有9个基本权限位控制其读、写、执行。

          r    读权限    可以读文件的内容    可以列出目录中的文件列表   

          w    写权限    可以修改、删除文件    可以在该目录中创建删除文件

          x    执行权限    可以执行该文件    可以使用cd进入该目录

          —————————————————————————————————————————————————

          |    权限项  |    读    写    执行  |    读    写    执行  |    读    写  执行  |

          |  字符表示    |    r    w    x    |    r    w    x      |    r    w    x  |

          |  字符示例    |    u+r    u+w    u+x  |    g+r    g+w    g+x    |    o+r    o+w  o+x  |

          |  数字表示    |    4    2    1    |    4    2    1      |    4    2    1  |

          |  权限分配    |          文件所有者    |    文件所属组用户          |              其他用户 |

        ——————————————————————————————————————————————————   

        说明:

              a. 目录上只有执行权限,表示可以进入此目录以及深层目录

        b. 目录上只有执行权限,要访问该目录下的有读权限文件,必须知道文件才可以访问

        c. 目录上只有执行权限,不能列出目录也不能删除该目录

        d. 目录上执行权限和读权限的组合,表示能可以进入目录并能列出目录列表

        e. 目录上执行权限和写权限的组合,表示可以在目录中创建和重命名文件

            权限修改方法A:

            chmod u+rw 文件名称

            chmod g+r 文件名称

              chmod o+x 文件名称(添加权限)

              chmod u-rwx 文件名称(取消所有权限)

        权限修改方法B:数字(八进制)表示法[ 4表示读权限,2表示写权限,1表示执行权限]

            chmod 777 文件名称 :表示所有权限

              chmod 444 文件名称 :表示所有用户拥有读权限

              chmod 745 文件名称 :各组权限分配不同

        chown 改变文件及目录的组

                    chown user:group 文件/目录名称  将文件/目录名称的属主改变为user:group

    ## 特殊权限位

        三个特殊权限位是在可执行程序运行时影响操作权限的。它们分别是SUID们、SGID位和sticky-bit位

        特殊权限                说明

        SUID    当设置了SUID位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,它都有文件所有者的特权。

        SGID    当一个设置了SGID位的可执行文件运行时,该文件将具有所属组的特权,任意存取整个组所能使用的系统资源;

            若一个目录设置了SGID,则所有被复制到这个目录下的文件,其所属的组都会被重设为和这个目录一样。

        sticky-bit    对一个文件设置了sticky-bit之后,尽管其他用户有写权限,也必须由属主执行删除、移动等操作;

            对一个目录设置了sticky-bit权限之后,那么存放在该目录下的文件或目录只能由其属主执行删除、移动等操作

        若用户无特殊需要,尽量不要去打开这些权限,避免安全方面出现漏洞

    ## 系统查找

        which    查找可执行程序的命令/程序/文件(在指定目录下),只在当前用户path(env命令可查看用户path环境变量)中指定的目录中查找(优先)

        whereis    查找指定文件 可查找与名称相关的所有文件、(内嵌查询DB)全面详细。

        locate    查找含有指定字符串的所有文件,(模糊查询)不精确 

        find    查找实例(直接在硬盘/分区中操作,速度慢) 在当前目录查找

            ## 与时间相关的参数

                mtime:修改时间,修改过的所有文件,系统修改的文件.       

            atime:访问时间,文件何时被读取

                ctime:状态时间,rw权限修改时间

        find / -mtime 0;

        find / -mtime 3(0:24小时之内,3:三天之前的那一天,(+指定区间范围以外,-指定区间范围以内));     

            ## 与用户、组相关的参数

        find / -user username:查找与用户相关的所有文件

        find / -nouser:不属于任何用户的文件查找;

        find / -group groupname.

            ## 与文件权限相关的参数

        find / -name filename(查找(区分大小写)匹配整个名称的文件)

        find / -iname filename(不区分大小写);

        find / -type f (f表示普通文件,l表示链接文件d表示目录).

            ## find 特殊过滤条件

                      find / -size +1000k(查找指定目录中大于1000k的文件(s表示kb,h表示mb,));

                      find /etc -name '*pas*'(通配符填充,模糊查询)

                      find / -perm +7000(查找特殊权限的文件)

    ## 文本编辑器Vim

            vim和vi的区别:vim是vi的升级版,内核是一样的, Linux默认文本编辑器vi,系统集成vi。vim是需要安装才能使用,vi不用安装即可使用。

            ## Vi编辑基础,wq保存退出,!wq强制不保存,q不保存退出,!q强制不保存退出.

                ## 光标移动和翻页操作

        h:向左移动光标,

        l(小写L):向右移动光标,

        k:向上移动光标,j:向下移动光标。

        ^:将光标快速跳转到本行的行首字符,

        $:将光标快速跳转到本行的行尾字符,

        w:将光标快速跳转到当前光标所在位置的后一个单词的首字母,b:将光标快速跳转到当前光标所在位置的前一个单词的首字母,

            e:将光标快速跳转到当前光标所在位置的后一个单词的尾字母;

        Ctrl+f:向前翻整页,

        Ctrl+b:向后翻整页,

        Ctrl+u:向前翻半页,

        Ctrl+d:向后翻半页;

                  :set nu(在编辑器中显示行号),

              :set nonu(取消编辑器中的行号显示);

        1G:跳转到文件的首行(数字1),

        G:跳转到文件的尾行,

        #G:跳转到文件中的第#行;

              ## vi模式(控制模式(默认)命令模式(输入冒号进入)编辑模式(输入a进入))Esc键退出INSERT模式

        进入INSERT模式

        i:在当前光标处进入INSERT模式。

        a:在当前光标后进入INSERT模式。

                  A:将光标移动到当前行的行末,并进入INSERT模式。

                  o:在当前行的下面插入新行,光标移动到新行的行首,进入INSERT模式。

                  O:在当前行的上面插入新行,光标移动到新行的行首,进入INSERT模式。

                  cw:删除当前光标到所在单词尾部的字符,并进入INSERT模式。

                  c$:删除当前光标到行尾的字符,并进入INSERT模式。

                  c^:命令删除当前光标之前(不包括光标上的字符)到行首的字符,并进入INSERT模式

              ## 功能键操作

                  INSERT模式编辑键操作

        方向键:进行上下左右方向的光标移动。

        Home:快速定位光标到行首。

        End:快速定位光标到行尾。

        PageUP:进行文本的向上翻页。

        PageDown:进行文本的向下翻页。

        Backspace:删除光标左侧的字符。

        Delete:删除光标位置的字符。

            ## 删除操作

        x:删除光标处的单个字符。

        dd:删除光标所在行。

        dw:删除当前字符到单词尾(包括空格)的所有字符。

        de:删除当前字符到单词尾(不包括单词尾部的空格)的所有字符。

        d$:删除当前字符到行尾的所有字符。

        d^:删除当前字符到行首的所有字符。

        J:删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容

            ## 撤销操作

        u:取消最近一次的操作,并恢复操作结果。可以多次使用u命令恢复已进行的多步操作。

        U:取消对当前行进行的所有操作。

        Ctrl+r:对使用u命令撤销的操作进行恢复。

            ## 复制与粘贴操作

        yy:复制当前行整行的内容到vi缓冲区。

        yw:复制当前光标到单词尾字符的内容到vi缓冲区。

        y$:复制当前光标到行尾的内容到vi缓冲区。

        y^:复制当前光标到行首的内容到vi缓冲区。

        p:读取vi缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文件已有的内容)。

          ## 字符串查找操作

        /word:从上到下在文件中查找字符串"word"。

            ?word:从下到上在文件中查找字符串"word"。

        n:定位下一个匹配的被查找字符串。

        N:定位上一个匹配的被查找字符串。 

    #    ## 字符串替换操作

        :s/old/new:将当前行中查找到的第一个字符"old"字符串替换为"new"字符串。

        :s/old/new/g:将当前行中查找到的所有字符串"old"替换为"new"字符串。

        :#,#s/old/new/g:在行号"#,#"范围内替换所有的字符串"old"为"new"字符串。

        :%s/old/new/g:在整个文件范围内替换所有的字符串"old"为"new"字符串。

        :s/old/new/c:在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认。

          ## 使用vi打开多个文件

        vi file1 file2 file3 .....

          ## vi多文件操作命令

        :args:显示多文件信息

        :next:向后切换文件

    :    :prev:向前切换文件

        :first: 定位首文件

        :last: 定位尾文件

        Ctrl+^:快速切换到编辑器中切换前的文件

    ## 进程操作

        ## ps 查看系统当前进程

              ps -ef 查看所有

              ps  aux (包含cpu 的当前信息)

              filename + & 显示filename进程号

              killall -u command : 杀死指定进程

              kill pid : 杀死指定进程

              sleep 10000 :暂时停掉进程(会产生新的进程)

              jobs : 显示挂起的进程

              fg + jobs号码 :将挂起的进程调入前台模式

              bg +jobs号码 :将前台的进程调入后台模式

    ## yum&&rpm&&源码安装软件

      ## Linux 应用程序组成:

        文件类型                保存目录

        普通执行程序文件                /usr/bin

        服务器执行程序文件和管理程序文件        /uur/sbin

        应用程序配置文件                /etc

        应用程序文档文件                /usr/share/doc

        应用程序手册页文件            /usr/share/man

    ** 为什么使用yum(在有网络连接的情况下才能使用yum)

    Linux系统维护中令管理人员最头痛的就是软件包之间的依赖了,往往是安装了A软件,但是安装的时候告诉你需要B软件,安装B软件时又告诉你需要Z库,好不容易安装好Z库,发现版本还有问题,RPM软件包管理系统对软件之间的依赖关系没有内部定义,造成安装RPM软件时经常出现令人无法理解的问题。

        什么是yum

    用Python写成,早时称为yup,后经杜克大学的Linux@Duke团队进行改进,才更名为yum。

    yum的宗旨是自动化升级,安装/移除RPM软件包,收集RPM软件包的相关信息,检查依赖并自动提示用户解决。yum的关键之处是要有可靠的repository。

    也就是软件仓库,它可以是HTTP或FTP站点,也可以是本地软件池。

        yum工具实例:

    yum updae # 升级系统        yum remove httpd # 移除指定的软件包        yum install httpd # 安装指定的软件包   

    yum search httpd # 搜索指定的软件包      yum update httpd # 升级指定的软件包        yum list httpd # 列出软件的详细信息

    **替换yum官方仓库源为国内开源镜像站点的yum仓库源(速度快)

        备份本机仓库源: mv /etc/yum.repository.d/CentOS7-Base.repo /etc/yum.repository.d/CentOS-Base.repo.backup

            wget download'url(国内开源镜像站中提供的对应源repo文件的下载链接)

            yummakecache 生成本地缓存

      ##RPM 软件包(RedHat,CentOS,SUSE支持)

      RPM最早是由RedHat公司提出的软件包管理标准,目前应用于很多Linux发行版。

      RPM Package Manager

      RPM软件包的文件名

      bash-3.0-19.2.i386.rpm

      bash #软件包名称

      3.0-19.2 # 软件版本号

      i386 # 软件运行硬件平台

      .rpm # 软件包扩展名

    rpm命令的功能:

    Centos中使用rpm命令对RPM软件包进行管理

    rpm命令可以完成对软件包的所有管理功能

      * 查询已安装在Linux系统中的RPM软件包的信息

      * 查询RPM软件包安装文件的信息

      * 安装RPM软件包到当前Linux系统

      * 从当前Linux系统中卸载已安装的RPM软件包

      * 升级当前Linux系统中已安装的RPM软件包

      ## rpm查询命令

        命令                        功能

    rpm -qa                    查询Linux系统中的所有软件包

    rpm -q    包名称                查询指定名称的软件包是否安装

    rpm -qi  包名称                查询指定名称的软件包的详细信息

    rpm -ql  包名称                查询指定名称的软件包中所包括的文件列表

    rpm -qf  文件名称                查询指定文件所属的软件包

    rpm -qpi 包文件名                查询指定RPM包文件的详细信息

    rpm -qpl 包文件名                查询指定RPM包中包含的文件列表

    ## rpm安装命令:

    rpm -i(表示安装软件包)

            -ivh(表示在安装RPM软件包是会显示更多的提示信息)

        被依赖的软件包应该优先被安装

    ## rpm包卸载

    rpm -e(表示卸载软件包)

    RPM软件包的卸载同样存在依赖关系

      被依赖的软件包应该最后被卸载

    ## rpm包升级

    rpm -U(表示升级软件包)

        当系统中未安装需要升级的软件包时,升级的过程等同于安装软件包的过程

    ## 源码编译安装应用程序

        源代码安装的一般步骤:

      * 确认当前系统中具备软件编译的环境

      * 获得应用程序的源代码软件包文件

      * 解压缩源代码软件包文件

      * 进行编译前的配置工作

      * 进行程序源代码的编译

      * 将编译完成的应用程序安装到系统中

    编译应用程序前的准备工作:

    确认系统中已经安装了编译环境

      $ rpm -qa | grep gcc

    获得(下载)程序的源码安装包文件

    释放程序源码软件包文件

      $ tar zxf nginx-1.3.3.5.tar.gz

    进入源码目录

      $ cd nginx-1.3.3.5

    编译应用程序前的配置

    程序源码目录中的"configure"命令用于完成程序编译前的配置工作

    查看"configure"命令支持的配置选项

      ./configure --help

    指定安装路径进行配置

      ./configure --prefix=/opt/nginx(configure表示命令名,prefix表示用于设置安装路径的配置选项,nginx表示为命令选项设置的值)

    编译与安装

    程序编译过程

      使用make命令进行应用程序的编译

      $ make

    程序安装过程

      使用make install 命令进行应用程序的编译

      $ make install

    验证(执行)已编译安装完成的程序

      查看安装目录中的文件,执行命令程序

      $ cd /opt/nginx ;  ls 

    ## 用户管理

    # 用户

    linux的账户包括用户账户和组账户两种

      linux系统下的用户账户有两种,普通用户和超级用户,普通用户在系统中的任务就是普通工作,管理员在系统上的任务是对普通用户

    和整个系统进行管理。管理员对系统具有绝对的控制权,能够对系统进行一切操作。

    除了用户账户之外,linux下还有组账户。组是用户的集合。在linux操作系统中组有两种类型:私有组和公共组,当创建一个新用户时,

    若没有指定他所属的组,linux就建立一个和该用户同名的私有组。这个私有组只包括这个用户自己。标准组可以容纳多个用户。

      字段                    说明

    用户名            用户登录系统时使用的用户名,它在系统中是唯一的。

    口令            此字段存放的是加密口令。

    用户标识号        是一个整数,每个用户的UID都是唯一的。

    组标识号        是一个整数,系统内部用它来标识用户所属的组。

    注释性描述        存放用户全名等信息。

    自家目录        用户登录系统后进入的目录。

    命令解释器          指示该用户使用的shell。

    cd /etc/pswd  用户信息存储

    cd /etc/shadow root用户信息存储

    cd /etc/group  组用户信息存储

    # 创建一个新用户:

            useradd newuser (-c 添加注释信息)

    # 修改一个已有的用户:

            usermod -l test olduser

                    usermod -L test 锁定test用户

                    usermod -U test 解锁test用户

    # 删除一个已有的用户:

            userdel olduser 删除olduser

                    userdel -r olduser 删除所有该用户的文件

    # 创建一个用户组sharer

                    groupadd sharer

    # 将sharer组更改为silvers

            groupaddmod -n silvers sharer

    # 删除silvers组

            groupdel silvers

    # 将一个用户silvers添加到创建的标准组sharer中

              useradd -G sharer silvers

    # 修改一个用户silvers当前的所属组为newgroup。

            useradd -G newgroup silvers

    ## 密码管理/用户切换

    passwd

    passwd user 修改指定账号密码

    passwd -d test1 (删除test1的账号密码[仅限root])

    usermod -L test1 (锁定test1账号) -U 解锁

    passwd -l test1 (锁定test1的账号密码) -U 解锁

    cd /etc/login.defs 配置管理用户密码时效

    ##chage命令的使用

    chage -l  查看用户密码时效

    chage -m num (最小天数)-M(最大)-W (警告过期时限)

    login.defs系统全局配置文件,chage 针对单个用户。

    ## su&&subo

      su - root  需要当前用户密码

      su - test1 不需要

    sudo

    配置sudo vim visudo

    id 用户的id

    newgrp 改变当前默认的组

    ## fdisk分区

    fdisk -l 列出当前内存分区及使用情况

    fdisk /dev/sdb  # 对sdb进行分区操作

    command : m #for help

          d #删除已有的分区

              n #重新分区操作

          q #不保存退出   

          p #打印分区表信息

          w #保存分区操作并退出

              t #显示系统分区id号

    ## ExT文件系统

    linux下格式化分区就是创建文件系统,ExT3可产生相应的日志文件在/var/log(对后期排查很有必要)

    eg.创建文件系统

    fdisk -l

    # 指定当前分区文件系统

    mke2fs /dev/sdb1/  (分区的绝对路径)  #指定文件系统为默认ext2

    mke2fs -j /dev/sdb1 (分区的绝对路径)  #指定文件系统为ext3

    # 检测当前文件系统及错误

    e2fsck /dev/sdb1

    e2fsck -p /dev/sdb1      #带自动修复的检测

    tune2fs -l /dev/sdb1      #显示文件系统类型详细信息

    tune2fs -c 30 /dev/sdb1  #将默认的挂载数修改为30

    tune2fs -i 180d /dev/sdb1 #将默认的挂载时间修改为180天

    e2label /dev/sdb1  www    #给当前文件系统指定卷标为www

    findfs www                #基于卷标来查询

    ## 挂载操作mount详解

    df -h                    #查看当前挂载内存分区

    # 挂载硬盘之前需要配置/etc/fstab

    vim /etc/fstab  #追加  /dev/sdb1      /opt            ext3      defaults

    mount -a    #使挂载信息生效

    fdisk -l

    df -h

    umount /opt  #卸载/opt分区

    ## mount命令详解

    永久挂载 配置/etc/fstab文件

    临时挂载 mount -t ext3 /dev/sdb1 /opt

    mount #查看当前挂载信息。

    mount -a #使挂载操作马上生效。

    ## mount挂载U盘,光驱,移动硬盘,镜像文件。

    # 光驱

    cd media

    mkdir cdrom

    mount media/cdrom

    # u盘

    cd /media

    mkdir usb

    mount -t vfat /dev/sdc1(u盘实际路径) /media/usb

    # 镜像文件

    cd /media

    mkdir iso

    mount -o loop docs.iso /media/iso

    umount /media/iso(挂载的目录)

    ## LVM基本使用

    LVM 逻辑性管理器,弹性管理磁盘

    pvdisplay #查看物理卷

    pvcreate /dev/sdb1 #写入物理卷到磁盘

    ## 创建卷组

    vgcreate www /dev/sdb1(必须是物理卷才成功)

    vgdisplay  #查看创建的卷镞

    lvcreate -L 3G -n a1 www #创建a1逻辑卷

    #指定文件系统(分区格式化)

    mke2fs -j /dev/www/al

    ## 挂载刚创建的的逻辑卷a1

    mount -t ext3 /dev/www/al /opt

    小结:

    1.create a pv #创建物理卷

    2.create a vg #创建卷组

    3.create a lv #创建逻辑卷

    4.mke2fs -j /dev/www/a1

    5.mount -t ext3 /dev/www/al /opt

    移除:

    umount /opt                #卸载挂载目录

    lvremove /dev/www/a1        #删除逻辑卷

    vgremove www                #删除卷组

    pvremove /dev/sdb1          #删除物理卷

    ##重点命令掌握

    pvcreate/pvdisplay/pvremove

    vgcreate/vgdisplay/vgremove/vgrename

    lvcreate/lvdisplay/lvremove

    ## 网络基本配置

    ifconfig                              #查看网络信息

    ifconfig eth0                                  #查看指定网卡信息

    ifconfig eth0 down                        #停掉eth0网卡

    ifconfig eth0 up                        #启动eth0网卡

    ifconfig eth0 192.168.251.1                    #手动修改新ip地址

    ifconfig eth0 192.168.251.1 netmask 255.255.255.0        #修改ip地址和子网掩码

    ## 修改主机名称

    临时修改

    hostname Silvers

    永久修改

    配置 /etc/sysconfig/network

        修改 HOSTNAME=Sylvia

    配置network-scripts/ifcfg-eth0永久修改网络相关信息

    service network restart

    #DNS的配置

    /etc/resolv.conf

    nameserver 219.141.136.10    #中国电信

    nameserver 202.106.0.20        #中国联通

    nslookup

    > www.baidu.com

    ;

    traceroute www.baidu.com    #远程路由追踪

    netstat -r            #查看网卡网络信息

    ##linux启动与单用户

    启动引导器()

    reboot之后在等待时间内按任意键进入grub

    按a  #修改系统内核等参数 /按e  # 编辑配置模式 /按c  # 支持命令提示符操作

    help命令学习各种命令用法

    按Esc退出当前界面,在操作系统中配置grub,定制多系统启动等

    grub系统配置文件

    etc/grup.conf[是个链接文件]

    default=0 # 系统默认启动模式

    timeout=5 # 系统启动超时值

    #配置多系统启动

    title Windows 10

        rootnoverify (h0,0)

        chainloader +1

    #单用户模式启动

    按a进入grub

    追加命令 LogVo100(后面加个空格) single

    runlevel  # 显示当前操作系统启动模式

    showdown -h now # 关闭系统

    # linux的修复模式

    挂载启动光盘之后,启动系统之后按F5

    boot: linux rescue ##回车进入修复模式

    ## linux系统管理守护进程

    ps -ef        #可查看当前系统的进程

    系统守护进程:指的是运行在后台的进程,随着系统的启动而启动的,相当于window的服务。

    ps -ef | grep init    #通过关键字查询相关进程信息

    ps -ef | grep login

    各种应用的守护进程,总体分为两大类系统守护,网络守护进程;

    pstree        #守护进程树,守护进程的优先级

    init    #系统启动模式

    acpid    #高级电源管理守护进程

    anacron #时间任务执行计划管理守护进程

    等等。

    # 停止,启动守护进程

        service crond stop        # 停止该守护进程

        service crond start            # 启动该守护进程

        service crond restart        # 重启该守护进程

        service crond reload        # 重载该守护进程(重启不会停止)

    ntsysv    # 进入启动系统自启动守护进程

    chkconfig

      chkconfig --list [name]

      chkconfig --add <name>

      chkconfig --del <name>

      chkconfig [--level <levels>] <name> <on|off|reset|resetpriorities>

    #levels

        0:关机模式1:单用户模式2:3:4:自定义模式5:图形模式6:重启模式

    chkconfig --level 2345 crond off    # 在2345模式下关闭crond守护进程

    chkconfig --list crond            # 查看指定的守护进程信息

    ## linux系统时钟同步守护进程

    date    #查看当前系统时钟

    time    #查看时间

    hwclock #查看硬件时钟

    # 手动设置系统时钟

    date -s "2017-02-17 17:10:00"

    # 如何系统和硬件同步时钟

    hwclock -- systohc(系统到硬件同步) /-- hctosys(硬件到系统同步)

    # 如何通过网络同步时钟

    使用安装ntp

    yum search ntp

    ntpdate www.pool.net.org    #通过时间服务器来同步

    ntpdate time.windows.com        #通过windows时间服务器同步

    # 减小系统和硬件时钟的同步误差

    hwclock --systohc

    # 定制时间同步守护进程以实现自动同步时钟

    vim /etc/ntp.conf

    server 0.centos.pool.ntp.org

    server 1.time.windows.com

    server 3.www.pool.ntp.org

    service ntpd start

    ps -ef | grep ntpd

    date -R        # 查看当前系统所处的时区

    tzselect    # 时区选择设定

    ## linux系统周期性计划任务

    ps -ef | grep crond

    cron是一个可以用来根据时间,日期,月份,星期的组合来调度对周期性任务执行的守护进程。利用cron所提供的功能,可以将需要周期性重复执行的任务设置为cron任务,并且设置为在主机较空闲的时间(如夜间)自动完成。

    centos中实现cron功能的软件包组成crontabs软件包实现对linux系统的定时任务管理功能

    service crond status   

    #查看crond守护进程信息情况

    example:

    50 3 2 1 * run_yearly_cmd       

    #一月2号三点五十执行run_yearly_cmd程序

    minhourdaymonthdayofweek字段  command字段

    字段                说明

    minute            分钟,取值为从0~59之间的任意整数

    hour            小时,取值为从0~23之间的任意整数

    day            日期,取值为从1~31之间的任意整数

    month            月份,取值为从1~12之间的任意整数

    dayofweek        星期,取值为从0~7之间的任意整数,0或7代表星期日

    command            要执行的命令或程序脚本

    #查看用户的cron任务

    crontab -l

    #编辑用户的cron任务

    #编辑并覆盖原有的cron任务

    crontab

    #调用文本编辑器对cron任务进行编辑

    crontab -e

    #删除用户现有的cron任务

    crontab -r

    # 每次修改完配置文件必须重启相关守护进程方能生效。

    # 普通用户使用crontab创建任务

    配置crontab

    vim /etc/cron.deny

    把普通用户加入到visudo组中

    sudo /sbin/service crond restart

    ##linux系统iptables防火墙基本语法介绍

    防火墙分类

    1.包过滤防火墙

    优点:速度快,性能高,对应用程序透明;

    缺点:只检查报头,不检查数据区,不建立连接状态表,安全性低,应用控制层很弱;

    以色列checkpoint,美国cisco

    2,应用代理防火墙

    优点:安全性高,性能高;

    缺点:只检查报头,但建立连接状态表,不检查数据区,安全性高,应用控制层很弱;

    美国NAI公司的Gauutlet。

    iptables基本语法

    iptables基本语法:

    iptables [-t table] command [match] [target]

    1.  table,表,filter,nat,mangle,raw;

    2.  command,iptables最重要的部分;

    3.  match,匹配数据包的特征;

    4.  target,对匹配的数据包进行的操作;

    1,1. 表

    filter,用于一般的数据包过滤,针对本机;iptables默认的表;链:INPUT,FORWARD,OUTPUT;

    nat,仅用于NAT,也就是转换数据包的源地址或目标地址;

    链:PREROUTING,POSTROUTING,OUT;

    service iptables status

    service iptables stop

    service iptables start

    service iptables restart

    iptables -L

    vim /etc/sysconfig/iptables    #不建议手动来定制这个文件。

    1,2.命令(1)

    -L: 查看规则;

    iptables -L

    iptables -L -n

    iptables -L -n --line-number

    -P: 修改默认规则;

    iptables -P INPUT DROP

    备注:为链设置默认的target(可用的是DROP和ACCEPT),做为最后一条规则被执行

    1,2.命令(2)

    -A: 追加规则,做为最后一条规则;

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT

    example:iptables -A FORWARD -p tcp --dport 22 -j ACCEPT  #

    1,2.命令(3)

    -D: 删除规则;

    iptables -D INPUT 3

    iptables -D INPUT -s 192.168.0.1 -j DROP

    example: iptables -D FORWARD 1

    -R: 修改规则;

    iptables -R INPUT 3 -s 192.168.0.1 -j ACCEPT

    example: iptables -R FORWARD 1 -s 192.168.229.1 -j ACCEPT

    1,2.命令(4)

    -F: 清空规则;

    iptables -F

    iptables -F INPUT

    iptables -t nat -F 

    #以上命令和(参数都是大写)只是临时性修改生效,永久修改需要配置vim /etc/sysconfig/iptables

    1.3 匹配条件

    出,入接口(-o,-i)    网卡

    源,目的地址(-s,-d)    IP或者IP段

    协议类型(-p)        TCP,UDP

    源,目的端口        (--sport,--dport)

    1.3 匹配条件(1)

    按网络接口匹配

    -o 匹配数据流出的网络接口

    iptables -A OUTPUT -o eth0 -j DROP

    #备注:将接口eth0流出的数据DROP掉;

    -i 匹配数据流入的网络接口

    iptables -A INPUT -i eth0 -j DROP

    #备注:将流入到接口eth0的数据DROP掉;

    4.3 匹配条件(2)

    按地址匹配

    -s 匹配源地址

    iptables -A INPUT -s 192.168.0.1 -j DROP

    # 将来自192.168.0.1的任何请求DROP掉;

    -d 匹配目的地址

    iptables -A OUTPUT -d 192.168.0.1 -j DROP

    # 将本机发往192.168.0.1的任何请求DROP掉;

    注意:可以是单个IP(192.168.0.1),网段(192.168.0.1/24),域名不设则表示任何地址;

    1.3 匹配条件(3)

    按协议类型匹配

    -p 匹配协议类型

    iptables -A INPUT -s 192.168.0.1/24 -p tcp --dport 22 -j DROP

    #禁止192.168.0.1/24的客户机连接本机22端口

    iptables -A INPUT -p icmp -j DROP

    #禁止ping

    iptables -A INPUT -p 1 --icmp-type 8 -j DROP

    #可以ping通其他客户机,但是其他客户机ping不通该机;

    1.3 匹配条件(4)

    按端口匹配

    --sport 匹配源端口

    iptables -A INPUT -p tcp --sport 80 - j DROP

    # 将来自80端口的请求DROP掉;

    --dport 匹配目的端口

    iptables -A INPUT -s 192.168.0.1/24 -p tcp --dport 80 -j DROP

    # 将来自192.168.0.1/24的针对本机80的请求DROP掉;

    备注:

        1. --sport,--dport必须配合参数-p使用;

        2. 可以指定某个端口,也可以是端口范围,比如 :2000(2000以下端口),2000:3000(2000~3000端口),3000: (3000以上端口)

    netstat -apn |grep  80            # 查看指定端口80的服务信息

    1.4 处理方式(1)

    ACCEPT

        这个target没有任何选项和参数,使用也很简单,指定-j ACCEPT即可。一旦数据包满足了指定的匹配条件,就会被ACCEPT,并且不会再去匹配当前链中的其他规则或同一个表内的其他规则;

    iptables -P INPUT ACCEPT

    # 修改INPUT的默认规则为ACCEPT

    iptables -A INPUT -s 192.168.0.1/24 -j ACCEPT

    # 允许来自192.168.0.1/24的所有针对本机的所有请求;

    1.4 处理方式(2)

    DROP

        如果包符合条件,这个target就会把它丢掉,也就是说包的生命到此结束,不会再向前走一步,效果就是包被阻塞了。在某些情况下,这个target会引起意外的结果,因为它不会向发送者返回任何信息,也不会向路由器返回信息,这就可能会使连接的另一方因苦等回音而亡,解决这个问题的较好的办法使使用REJECT(除了丢弃数据包之外,还向发送者返回错误信息);

    iptables -A INPUT -s 192.168.0.1 -j DROP

    # 将来自192.168.0.1的请求全部DROP掉;

    1.5 规则的匹配方式

        规则由第1条开始匹配,如果第1条规则不匹配,则匹配第2条规则,如果第2条规则还不匹配则匹配第3条规则,依次论之;

        如果数据包被第N条规则所匹配,则数据包的存活将由该规则决定;如果规则规定定将数据包丢弃,那么数据包就会被丢弃,不会管后面的规则如何;

        不论链中由多少个规则,默认规则(Default Policy)永远都在每一个链的最底端,最后被执行;每个链的默认规则各自独立,且只有一种状态,要么是ACCEPT,要么是DROP;

    1.6 备注

        规则配置文件/etc/sysconfig/iptables

    iptables-save

    iptables-restore

    service iptables save

    # 将目前iptables规则保存到/etc/sysconfig/iptables;

    ##linux系统Apache服务器概述及安装

    Web服务器是Internet中最为重要的应用

    Web服务采用客户端/服务器模型

    客户端为浏览器,它提供了良好,统一的用户界面。浏览器的作用为解释和显示Web页面,响应用户的输入请求,并通过HTTP协议将用户请求传递给Web服务器

    Web服务器运行服务器程序,最基本的功能是侦听和响应客户端的HTTP请求,向客户端发出请求处理结果信息。

    HTTP协议的默认端口为80

    从1996年4月以来,Apache已经成为Internet上最流行的Web服务器

    Apache的优点:

        跨平台。能运行在unix/linux和windows等多种操作系统上

        无限扩张性。借助开放源代码开发模式的优势,全世界的许多程序员为Apache编写了许多功能模块

        工作性能和稳定性远远领先于其他同类产品

    #查询系统是否安装了Apache

        rpm -qa | grep httpd

    #如果没有安装,运行如下命令进行安装

        yum search httpd

        yum install httpd.i386

    #启动Apache服务器

        service httpd restart

    #测试Apache服务器

        注意:防火墙的配置

    dmesg 查看系统硬件配置

    相关文章

      网友评论

          本文标题:分享一下,最开始自学Linux基础的听课笔记吧,貌似好久没有更新

          本文链接:https://www.haomeiwen.com/subject/welieqtx.html