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

Linux的发行版以及不同发行版之间的联系与区别   

Linux发行版主要的大分支有三个:dibian  S.U.S.E  redhat

一个操作系统由kernelapplication组成。编译封装的时候根据不同的application,可以编译成不同的发行版本。

所有的linux发行版都是基于GPL的版权,它们的内核都是linux的(只是可能版本不同),所以源码都必须提供出来。

一个大的发行版本可以分为桌面版(个人版)、企业版。大的发行版本还可以有许多其他的衍生版本

主要发行版本的关联关系:

         Redhat:红帽linux

桌面版: 桌面这块的业务已经移交给了fedora

企业版:RHEL

                   Centosredhat 的社区企业版,现已被Redhat收购

         S.U.S.E:基于slackwre的发行版,它引用了一些redhat的特性,如RPM

                   S.U.S.Eopensuse一般在欧洲用的比较多。

         Debian

                   它不是由商业组织发行的,是由一个独立松散的组织来维护。相对其他的linux发行版本,debian更自由及开放,所以相对来说,这个发行版给与用户的选择更多。

                   Debian的发行版的分支上有一个桌面衍生版,ubuntu,它的桌面效果非常好。

Linux的哲学思想

1.       一切皆文件

2.       由各个目的单一的小程序组成,小程序组合完成复杂的功能

3.       尽量避免跟用户交互,以便可以通过脚本等方式进行自动化任务

4.       使用文本文件保存配置

 

 

1.       一切皆文件

Linux下所有的东西都以文件来显示:

硬件:硬件设备也显示为文件,提供硬件的访问入口及关联驱动。主要有块设备文件及字符设备文件两种形式,显示为b,c

普通的文件:显示为f,包含二进制文件、可执行文件、ASCI文件

目录文件:  显示为d,表示一个文件的路径映射

符号连接文件:显示为l,在元数据区数据块指针指向了另外一个文件的访问路径。

管道文件:显示为p

套接字文件:显示为s

2.       由各个目的单一的小程序组成,小程序组合完成复杂的功能

有点类似于模块化的设计,把一个复杂功能拆分成各个单独的模块。每个模块负责一个简单功能。这样可以提高代码的实现,维护,重用。

3.       尽量避免跟用户交互,以便可以通过脚本等方式进行自动化任务

一个程序一旦发起为进程,在这个生命周期内,尽量减少和用户的交互,依靠系统自身的机制,完成自动化任务。

4.       使用文本文件保存配置

文本文件易于和底层进行交互,这样可以方便管理员用文本来进行管理

计算机的组成及其功能

根据冯诺依曼体系,计算机分为5部分:运算器、控制器、存储器、输入设备、输出设备

运算器:通过存储器和输入设备提供的数据,并有控制器提供指令所在的地址,完成一次指令运算。

控制器:告诉运算器数据与指令从哪里获取。

存储器:内存(RAM)存放指令与数据。数据掉电失效。

输入与输出设备:也可以称呼为IO设备,完成数据的输入与数据结果的输出。通常的输入输出设备有:硬盘,网卡,显示器,键盘……

 

各个组成之间的关联关系

1.       运算器一般与控制器放在一起,统称CPU

2.       CPU与存储器及IO设备之间通过总线相连。为了完成寻址、获取数据、及获取指令这三个功能,CPU与其他设备之间的总线分为地址总线、数据总线、控制总线

3.       在南北桥架构中,CPU与存储器(内存)之间通过北桥来完成功能交互,北桥是高速总线;与IO设备之间通过南桥来完成功能交互,南桥是低速总线,汇总后连入北桥。

IO也有一些高速的接口例如PCIE可以让IO设备直接连入北桥。

 

各个设备之间速度在数量级上的概念

CPU、存储器、IO设备之间的速率各不相同。按照速度快慢:CPU——存储器——IO

设备性能相关

为了完成数据交互,设备与设备间的速率相匹配,才能提升性能

CPU的速率最快,存储器的速率比较慢,所以CPU为了可以更好地与存储器完成数据交互,提升性能,可以添加中间件(缓存)。

获取命令的使用帮助

命令分为两种:外部命令及内部命令

    内部命令:

        help COMMAND 

            例:help cd

  外部命令

     1)命令自带简要格式的使用帮助 (简单的使用说明)

            例:ls –help

     2)使用手册

          man +COMMAND

            位置:/usr/share/man

            例:man ls

    3)获取命令的在线文档

            info COMMAND 

    4)很多应用程序会自带帮助文档

            一般存放在 /usr/share/doc/APP-VERSION

    5) 主流的发行版官方文档

            http://www.redhat.com/doc

    6)程序的官方文档

        官方站点上的“Document”

    7) 善用搜索引擎

            google   

man手册章节说明

man手册下的各个章节的含义如下

        位置: /usr/share/man

                        man1,man2..            

                 1.用户命令

                 2.系统调用

                 3.C库调用

                 4.设备文件及特殊文件

                 5.文件格式

                 6.游戏使用帮助

                 7.杂项

                 8.管理工具及守护进程        

可以通过查看指定章节的手册信息

    man 数字 COMMADN  

        例:man 5 passwd  查看man手册中第五章节的passwd命令帮助

Linux的FHS

FHS:Filesystem Hierarchy Standard 

通过FHS,规范了每个不同的目录下应该存放什么文件。

/bin:所有用户可用的基本命令程序文件 

/sbin:供系统使用的工具程序  

/boot: Static files of the boot loader  引导加载器必须用到的各静态文件:kerenl、initramfs(initrd),grub

/dev :Devices files 存储特殊文件或者设备文件

/etc:主机特有的系统配置文件(静态)

/home:用户家目录(可选)

/lib: 为系统启动或根文件系统上的应用程序(/bin,/sbin)提供共享库及为内核提供内核模块

/lib64;64位的库

/media:

/mnt:其他文件型的临时挂载点

/opt:附加应用程序的安装位置

/root:root用户的家目录

/srv: 当前主机为服务提供的数据

/tmp:存放临时文件

/usr:全局共享的只读数据路径 usr Hierarchy

bin ,sbin

lib lib64

include:C程序用到的头文件

share:架构特有的文档存放位置 命令手册页,自带文档

        /local:hierarchy

/usr/local:hierarchy.让系统管理员安装本地应用程序,也通常用于安装第三方程序

/var:hierarchy 存储经常发生变化的数据的目录

            lib     

            local

            lock

            log    

            opt     

            run     

            spool

            tmp     

/proc:虚拟文件系统,用来为内核及进程存储其相关信息:他们大多为内核参数,例如:net.ipv4_forward 虚拟为net/ipv4/ip_forward

/sys:sysfs 虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径,其主要作用在于为管理linux设备提供了一种统一模型的接口

  *  /proc 和 /sys 都是基于内存的,也就是说已关机就没了

Linux上命令的使用格式皆一些常规命令的用法

Linux命令的语法通用格式

    COMMAND OPTIONS ARGUMENTS

命令(COMMAND):

         一般分为两类:外部命令及内部命令

                   内部命令:由shell程序自带的命令

                   外部命令:独立的可执行文件,文件名即命令名

选项(OPTIOS):

         指定命令的运行特性,改变了命令的实现功能及表现形式

         选项分两种:

                   -char 短选项

                   –word 长选项

                   长选项,如果有选项参数的话通过“=”来进行连接,中间没有空格

                   短选项,如果有选项参数的话通过“space” 来进行连接,有时可以没有空格

                   多个短选项间可以合并,长选项不行

                   选项与选项间通过“space”来隔开

参数(argtments):

         命令的作用对象

         不同的命令带的参数的格式不一样,有些命令可以同时带多个参数(中间以空格隔开)

Linux常用命令

    ifconfig,echo,tty,startx ,export,pwd,history,shutdown,poweroff,reboot,hwclock,date

ifconfig:

用来显示网卡的配置信息或者为网卡进行配置

用法:

      ifconfig [interface]

      ifconfig interface [aftype] options | address …

示例:

ifconfig [eth0]

    显示系统的网卡配置信息,如果带参数eth0,则只显示eth0一块网卡的信息

[root@localhost ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:D3:C4:B2  

          inet addr:192.168.122.3  Bcast:192.168.122.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fed3:c4b2/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:32894 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2849 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:4187189 (3.9 MiB)  TX bytes:223104 (217.8 KiB)

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:16 errors:0 dropped:0 overruns:0 frame:0

          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:1272 (1.2 KiB)  TX bytes:1272 (1.2 KiB)

                     ifconfig interface [aftype] options | address …

            可以为网卡 配置IP,掩码等参数

[root@localhost ~]# ifconfig lo 127.0.0.1 netmask 255.0.0.0  设置lo的网卡IP地址为127.0.0.1 掩码为255.0.0.0

[root@localhost ~]# ifconfig eth0 up        开启eth0网卡

[root@localhost ~]# ifconfig eth0 down    关闭eth0网卡

* 用ifconfig命令配置的信息在shell进程关闭后消失

echo:命令回显

用法:

    echo [SHORT-OPTION]… [STRING]…

 选项:

    -e 激活转义字符

示例:

[root@localhost ~]# echo "hello world"

hello world

[root@localhost ~]# echo "hello world\n"

hello world\n

[root@localhost ~]# echo -e "hello world\n"

hello world

tty:显示当前的终端

            用法:

               tty [options]

            示例:

[root@localhost ~]# tty

/dev/pts/1

startx:启动GUI

            用法:

                startx [options]


export:导入或者显示环境变量,和declare -i 命令类似

            用法:

                1.export name=VALUE        赋予一个值给环境变量name

*用export命令导入的环境变量在shell进程结束后被释放

                2.export                               查看当前的环境变量  

            示例:

[root@localhost ~]# export name=1

[root@localhost ~]# export 


pwd:显示当前的工作目录

            用法:

                 pwd [OPTION]…

            示例:

[root@localhost tmp]# pwd

/tmp

history:用户之前执行过的命令历史

           示例:

[root@localhost ~]# history   显示当前内存中保存中的命令历史

    1  whereis tree

    2  man tree

    3  man whereis

[root@localhost ~]# history -c 清空命令历史

[root@localhost ~]# history 

    1  history 

[root@localhost tmp]# history -r  把历史命令从文件中读取并载入内存

[root@localhost tmp]# history -w  把内存中的历史命令载入文件中

[root@localhost tmp]# history 5   显示最近的5条历史命令

   12  ls -ld /tmp/

   13  history 

   14  history -w

   15  history 

   16  history 5

[root@localhost tmp]# !12 执行历史命令列表中的第12个命令

[root@localhost tmp]# !!执行上次命令

[root@localhost tmp]# !l 执行命令列表中最近l个以l开头的命令

在环境变量中有3个和hisory相关的环境变量,可以修改他们的值来做到定制history功能

HISTSIZE:shell保留的history条目,默认1000   

HISTFILE: 历史命令保存的文件 历史命令被写入文件之后会被永久保存。 /root/.bash_history

HISTFILESIZE:历史命令文件的大小,默认1000

shutdown:关机

shutdown [OPTION]…  TIME [MESSAGE]

用法:

[root@localhost tmp]# shutdown -h now  立刻关机

[root@localhost tmp]# shutdown -r now   立刻重启

[root@localhost tmp]# shutdown -c         取消正在执行的关机的操作


poweroff:关机

reboot:重启

hwclock:显示或设定硬件时钟

    用法:

        hwclock [functions] [options]

    示例:        

[root@localhost test.GvCZXb]# hwclock 

2016年08月14日 星期日 22时24分00秒  -0.878324 seconds

[root@localhost test.GvCZXb]# hwclock -s  以硬件时间为准,把系统时间调整和硬件时间相同

[root@localhost test.GvCZXb]# hwclock -w  以系统时间为准,把硬件时间调整和系统时间相同

date

    显示日期时间以及修改系统时间

    用法:          

date [OPTION]… [+FORMAT]

date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]

   示例:

[root@localhost test.GvCZXb]# date  显示当前系统时间

2016年 08月 14日 星期日 22:31:03 CST

[root@localhost test.GvCZXb]# date 081422322016.30 修改当前系统时间

2016年 08月 14日 星期日 22:32:30 CST

[root@localhost test.GvCZXb]# date +%F   显示年–月–日

2016-08-14

[root@localhost test.GvCZXb]# date +%Y   显示年份

2016

[root@localhost test.GvCZXb]# date +%T   显示时间

22:34:51

[root@localhost test.GvCZXb]# date +%m   显示月份

08

[root@localhost test.GvCZXb]# date +%d   显示日期

14

[root@localhost test.GvCZXb]# date +%H   显示小时

22 

[root@localhost test.GvCZXb]# date +%M   显示分钟

36

[root@localhost test.GvCZXb]# date +%S   显示妙

11

[root@localhost test.GvCZXb]# date +%s   显示从UTC时间,从1970年1月1号0点0分距现在多少秒

1471185433



    

    


    

    


    


    

    

             





    

    



原创文章,作者:N22-苏州-striker,如若转载,请注明出处:http://www.178linux.com/35478

(0)
N22-苏州-strikerN22-苏州-striker
上一篇 2016-08-15
下一篇 2016-08-15

相关推荐

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-17 16:01

    写的很好,排版还可以在漂亮一点,加油,没写全把