马哥教育网络班22期+第一周课程练习

  1. 计算机的组成及其功能

    计算机主要由五大部分组成:控制器、运算器、存储器、输入设备、输出设备,即CPU(控制器、运算器)、内存、I/O(输入/输出设备)。

    控制器

    是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。

    运算器

    对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。

    存储器

    存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。

    输入设备

    输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标、触摸屏等。

    输出设备

    输出设备与输入设备同样是计算机的重要组成部分,它把计算机的中间结果或最后结果、计算机内的各种数据符号及文字或各种控制信号等信息输出出来。常见的输出设备有显示器、打印机等。

  2. Linux的发行版

    Linux的基础是其内核(kernel),但是光有内核还远不是一个完整可用的操作系统环境,是无法满足普通用户需求的。生产销售Linux的组织或厂家为了方便用户使用,将Linux系统内核与应用软件及文档集成在一起,提供安装界面、系统设定、管理工具等软件,就构成了一个发行套件,称为发行版。相对于内核版本,发行套件的版本号是随着发布者的不同而不同,与系统内核的版本号是相对独立的,是由分发者自行确定的。

    版本号命名规范:major(主版本号).minor(次版本号).release(修订号)
    注意:若次版本号为偶数说明此版本类型是稳定版,若次版本号为奇数则说明是测试版。

    The Linux Kernel Archives https://www.kernel.org

    Linux发行版有数百种之多(详细请参考链接),其中有三大主流版本:

    Debian系——程序包管理器为dpkg,包后缀名为deb,前端管理工具是apt-get

        Debian:开源社区的代表性Linux系统,每2年更新一次,现在的debian系统已经可以胜任不同的环境,无论是服务器系统还是个人操作系统都没有问题,debian在服务器系统上出众的稳定性使它成为了服务器系统的不二之选。

        Ubuntu:基于debian的GUN/Linux,其优势在于高度整合桌面环境,在安装好Ubuntu之后无需任何配置即可立即投入使用,Ubuntu采用基于Gnome自主开发的桌面环境(Unity),目前来说Ubuntu对于用户的友好度应该是最高的。

        Ubuntu含有数量众多的衍生版,只将其罗列出来,就不一一介绍了:ubuntu、Edubuntu、Xubuntu、Ubuntu Kylin、Ubuntu Server Edition、Gobuntu、Ubuntu Studio、Ubuntu JeOS、Mythbuntu、BioInfoServOS、Ebuntu、Xubuntu、Fluxbuntu、Freespire、Gnoppix、gOS、Hiweed、Jolicloud、Gubuntu、Linux Deepin、Linux Mint、Lubuntu、nUbuntu、Ubuntu CE——引用自wiki

        Kali Linux:基于debian完全重建的用于渗透测试的Linux,Kali Linux预装了多达300+的渗透测试软件,并且Kali Linux可以轻松安装在移动存储设备上,基于以上特性使Kali Linux成为了从事安全方面工作者的首选。

        Linux Mint是一个基于Debian和Ubuntu的Linux发行版。继承了Ubuntu的众多优点,并在此基础上集成了浏览器插件、多媒体编解码器、Java和其他组件。同时增加了一套定制桌面及各种菜单,一些独特的配置工具,以及一份基于web的软件包安装界面,是一款免费、高效、易用、高雅的桌面操作系统。

    RedHat系——程序包管理器为rpm,前端管理工具是yum,最新升级为dnf

        Red Hat Enterprise Linux:简称RHEL,是红帽(RedHat)公司面向企业用户发布的Linux系统,以强大的性能以及相对于其他Linux发行版更好的稳定性和安全性而得到了更多的企业用户的信赖。RHEL系统本身是可以免费获取以及安装,但是RHEL的服务却是收费项目,(收费项目包括但不限于安全更新,技术支持,收费软件等)。

        CentOS:(Community Enterprise Operating System)中文即为:社区企业操作系统,CentOS是按照 RHEL开放的源代码二次编译而成,因为是由相同的源代码编译而成,所以在性能、安全性以及稳定性上与 RHEL完全一样,甚至在某些方面表现得比RHEL更好,两者的不同之处在于CentOS的初始源以及系统文件中不包含RHEL中的特有的闭源软件。正是因为上面的这些特性使得CentOS成为了企业用户的另一个不错的选择。

        Fedora:Fedora同样也是来自RedHat,可以将Fedora视为RHEL与CentOS的技术先行版,同时Fedora也是Red Hat Linux在个人桌面领域的新的应用,RatHat的各种新技术都会首先应用在Fedora上,所以选择Fedora可以总是使用到最新的技术,Fedora目前分为Workstation、Server、Cloud三个版本。

    Slackware系——程序包管理器为rpm,前端管理工具是zypper

        Slackware:与其他Liunx不同的是,Slackware采用了类似unix的风格,它的方针是只吸收稳定版本的应用程序,并且缺少其他Linux版本中那些为发行版本定制的配置工具。

        SUSE/Open SUSE:OpenSUSE前身即为SUSE,是一个Linux发行版与项目,由SUSE与其他公司赞助。它的开发重心是为软件开发者和系统管理者创造适用的开放源代码的工具,并提供易于使用的桌面环境和功能丰富的服务器环境。OpenSUSE针对桌面环境进行了一系列的优化,对Linux新手较为友好。

    其他发行版

        Gentoo Linux :通用、快捷、安全、强大、专业各种优势集大成于一身的趋于完美的Linux发行版,因为其强大的可配置性,Gentoo甚至可以称之为一个元发行版的Linux 。

        Arch Linux:轻量、简单的Linux发行版。其中“简单”(Simplicity)被定义为“避免不必要或复杂的修改”,也就是说,是由开发者角度定义,而非用户角度思考。Arch Linux注力于简洁主义(对开发者而言),其贡献在于对发行版的组件提供具有良好注释的配置文件,而非带有图形界面的配置工具。这也为其赢得“适合不惧怕命令行的中高级Linux用户”的发行版称号。——以上摘自wiki。

  3. Linux的哲学思想

    (1) 一切皆文件:把几乎所有的资源统统抽象为文件形式,包括硬件设备,甚至通信接口等;
            物理终端:/dev/console
            虚拟终端:/dev/tty1~tty6
            串行终端:/dev/ttyS#(#表示数字)
            伪终端:/dev/pts/#

    (2) 由众多功能单一的程序组成:一个程序只做一件事,并且做好,组合小程序完成复杂的任务;
            例如,利用管道组合多个命令来实现相应的功能

    (3) 尽量避免跟用户交互;
            目标:以编程的方式实现自动化任务,即一个程序一旦开始运行,就不需要用户进行任何操作

    (4) 使用文本文件保存配置信息
            只需要一个简单的文本编辑器就可以操作整个系统

  4. Linux常用命令

    命令的语法通用格式:
            # COMMAND OPTIONS ARGUMENTS # 命令 选项 参数
                发起一个命令:请求内核将某个二进制程序运行为一个进程

            COMMAND:命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件

            OPTIONS:指定命令的运行特性
                选项有两种表现形式:
                    短选项:-C,例如-l,-d
                        注意:有些命令的选项没有-
                        如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
                    长选项:-word,例如–help,–human-readable
                        注意:长选项不能合并
                    注意:有些选项可以带参数,此称为选项参数

            ARGUMENTS:命令的作用对象:命令对什么生效,可能是字符串,也可能是路径
                注意:不同的命令的参数:有些命令可以同时带多个参数,多个之间以空白字符分隔

    ifconfig – 查看和配置网络接口
            语法格式:ifconfig [-v] [-a] [-s] [interface]
                            ifconfig [-v] interface [aftype] options | address …       

            常用选项:up:启动指定网卡 ifconfig eno# up
                            down:关闭指定网卡 ifconfig eno# down
                            -a:显示全部接口信息
                            -s:显示摘要信息,相当于 netstat -i
                            address:为网卡设置IPv4地址
                            netmask:设置网卡的子网掩码
            手动设置ip地址、子网掩码、网关,即时生效,重启失效:
                设置ip地址和子网掩码:ifconfig eno# 192.168.0.88 netmask 255.255.255.0
                设置网关:route add default gw 192.168.0.1
            修改配置文件永久生效:vi /etc/sysconfig/network-scripts/ifcfg-eno#
                修改BOOTPROTO="dhcp"为BOOTPROTO="static"并添加如下配置:
                    IPADDR=192.168.0.86
                    NETMASK=255.255.255.0
                    GATEWAY=192.168.0.1
                    DNS1=223.5.5.5
                    DNS2=223.6.6.6
                重启网卡服务 systemctl restart network.service 即可

    echo – 显示一行文本,回显
            语法格式:echo [SHORT-OPTION]… [STRING]…
                            echo LONG-OPTION

            常用选项:-n:不进行换行
                            -e:让转义符生效,转义符以\开头
                                \n:换行
                                \t:制表符(t为tab)
                            QQ截图20160813112826.jpg
                            STRING可以使用引号,单引号和双引号均可用
                                单引号:强引用,变量引用不执行替换
                                双引号:弱引用,变量引用会被替换
                            QQ截图20160813113205.jpg

    tty – 显示终端机连接标准输入设备的文件名称
            语法格式:tty [OPTION]…

            查看当前终端:
            QQ截图20160813114334.jpg
            注意:CentOS开机会同时启动6个虚拟终端,使用命令Ctrl+Alt+F1~F6进行切换;图形终端:CentOS6使用Ctrl+Alt+F7切换,CentOS7下若在哪个虚拟终端启动图形界面就位于哪个虚拟终端。

    startx – 启动图形终端
            语法格式:startx [ [ client ] options … ] [ — [ server ] [ display ] options … ]

            最小化安装的CentOS7没有图形界面,需自行安装,安装Gnome桌面命令如下:
            ~]$ sudo yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
            安装完成重启系统即可
            启动图形界面命令:startx &

    export – 显示或设置环境变量
            语法格式:export [-fn] [name[=value] …] or export -p

            常用选项:-p:列出所有的shell赋予程序的环境变量
                            -f:代表函数名称
                            -n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
            新增环境变量:export name[=value],只对当前shell有效,关闭或重启即失效。
            QQ截图20160813124635.jpg

    pwd – 显示当前工作目录
            语法格式:pwd [-LP]
            QQ截图20160813125334.jpg

    history – 显示或操作命令历史,shell进程会在其会话中保存此前用户提交执行过的命令
            语法格式:history [-c] [-d offset] [n]
                            or history -anrw [filename]
                            or history -ps arg [arg…]
                            ~]$ history # 显示最近的#条命令

            常用选项:-c:清空命令历史(内存中的)
                            -d offset(偏移量):删除指定命令历史
                                例: ~]$ history -d 153 5 删除第153条记录后的5条命令
                            -r:从文件读取命令历史至历史列表中
                            -w:把历史列表中的命令追加至历史文件中
            定制history的功能,可通过环境变量实现:
                            HISTSIZE:shell进程可保留的命令历史的条数
                                ~]$ echo $HISTSIZE
                            HISTFILE:持久保存命令历史的文件
                                .bash_history
                            HISTFILESIZE:命令历史文件的大小
            调用命令历史列表中的命令:
                            !#:再一次执行历史列表中的第#条命令
                            !!:再一次执行上一条命令
                            !STRING:再一次执行命令历史列表中最近一个以STRING开头的命令
                            注意:命令的重复执行有时候需要依赖于幂等性
             调用上一条命令的最后一个参数:
                            快捷键:ESC,.
                            字符串;!$
              控制命令历史记录的方式:
                            环境变量:HISTCONTROL
                            ~]$ echo $HISTCONTROL
                                ignoredups:忽略重复的命令
                                ignorespace:忽略以空白字符开头的命令
                                ignoreboth:以上两者同时生效
                            修改变量的值:
                                HISTCONTROL='value'

    shutdown、poweroff、reboot – 关机、重启命令
            语法格式:shutdown [OPTIONS…] [TIME] [WALL…]
                            OPTIONS:
                                -h:halt 关机
                                -r:reboot 重启
                                -c:cancel 取消命令
                            TIME:
                                now
                                hh:mm 几点几分
                                +m:几分钟后
                                    +0 = now
                            WALL:信息会显示在所有的终端

    hwclock,clock – 显示或设定硬件时钟
            ~]$ sudo hwclock
            常用选项:-s,–hctosys:以硬件为准,把系统调整为与硬件时间相同
                            -w,–systohc:以系统为准,把硬件时间调整为与系统时钟相同

    date – 显示或设置日期时间
            显示日期时间;date [OPTION]… [+FORMAT]
                            FORMAT:格式符
                                %F:2016-08-13
                                %T:14:29:16
                                %c:Sat 13 Aug 2016 02:30:25 PM CST
                                %Y:年 %m:月 %d:日 %H:时 %M:分 %S:秒
                                %s:1471070045 从1970年1月1号(unix元年)0点0分0秒到命令执行那一刻经过的秒数
                                QQ截图20160813143553.jpg
            设置日期时间:date [MMDDhhmm[[CC]YY][.ss]]
                                        ~]# date 080820082008.08 设置时间为2008年8月8日20点8分8秒

  5. 获取命令的使用帮助
            内部命令:
                help COMMAND
            外部命令:
                (1) 命令自带简要格式的使用帮助
                     # COMMAND –help
                (2) 使用手册:manual
                     位置:/usr/share/man
                     # man COMMAND
                        SECTION:
                            NAME:功能性说明
                            SYNOPSIS:语法格式
                            DESCRIPTION:描述
                            OPTIONS:选项
                            EXAMPLES:使用示例
                            AUTHOR:作者
                            BUGS:报告程序bug的方式
                            SEE ALSO:参考
                        SYNOPSIS:
                            []:可选内容
                            <>:必须提供的内容
                            a|b|c:多选一
                            …:同类内容可出现多个
            使用手册:压缩格式的文件,有章节之分
                            例如:/usr/share/man/man1,/usr/share/man/man2,…
                            man1:用户命令:普通用户和管理员都可以运行的命令
                            man2:系统调用
                            man3:C库调用
                            man4:设备文件及特殊文件
                            man5:文件格式(配置文件格式)
                            man6:游戏使用帮助
                            man7:杂项
                            man8:管理工具及守护进程
                            ~]# man CHAPTER(章节) COMMAND
            注意:并非每个COMMAND在所有章节下都有手册

  6. Linux的基础目录名称命名法则及功用大多遵循FHS标准
            FHS:Filesystem Hierarchy Standard 文件系统层级结构标准(详细请参考链接
                    /bin:供所有用户可用的基本命令程序文件
                    /sbin:供管理员使用的工具程序
                    /boot:引导加载器必须用到的各种静态文件:kernel,initramfs(initrd),grub等
                    /dev:存储特殊文件或设备文件
                        设备有两种类型:字符设备(线性设备,例如键盘、显示器等)、块设备(随机设备,例如硬盘等)
                    /etc:系统程序的配置文件,只能为静态,不能为二进制应用程序
                    /home:普通用户的家目录的集中位置:一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME
                    /root:管理员的家目录,可选
                    /lib:为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块
                        libc.so.*:动态链接C库
                        ld*:运行时链接器或加载器
                        modules:用于存储内核模块的目录
                    /lib4:64位系统特有的存放64位共享库的路径
                    /media:便携式设备挂载点,cdrom(光盘),floppy(软盘)等
                    /mnt:其它文件系统的临时挂载点
                    /opt:附加应用程序的安装位置,可选路径
                    /srv:当前主机为服务提供的数据
                    /tmp:为那些会产生临时文件的程序提供的存储目录,可供所有用户执行写入操作,有特殊权限
                    /usr:usr Hierarchy,全局共享的只读数据路径
                        bin,sbin
                        lib,lib64
                        include:C程序头文件
                        share:命令手册页和自带文档等架构特有的文件的存储位置
                        local:另一个层级目录
                        X11R6:X-Windows程序的安装位置
                        src:程序源码文件的存储位置
                    /usr/local:Local hierarchy,让系统管理员安装本地应用程序,也通常用于安装第三方程序
                    /var:var Hierarchy,存储常发生变化的数据的目录
                        cache   Application cache data
                        lib     Variable state information
                        local   Variable data for /usr/local
                        lock    Lock files
                        log     Log files and directories
                        opt     Variable data for /opt
                        run     Data relevant to running processes
                        spool   Application spool data
                        tmp     Temporary files preserved between system reboots
                    /proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息:它们多为内核参数,例如net.ipv4.ip_forward,虚拟为net/ipv4/ip_forward,存储于/proc/sys,因此其完整路径为/proc/sys/net/ipv4/ip_forward
                    /sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径:其主要作用在于为管理Linux设备提供一种统一模型的接口(详细请参考链接

原创文章,作者:萝卜,如若转载,请注明出处:http://www.178linux.com/33366

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-17 15:39

    写的很好,排版还可以在漂亮一点,加油,就不要把黑屏截上来了