N25第一周博客作业

本文主要阐述了以下几个知识点:

计算机的组成及功能;

介绍各不同发行版的linux及其联系;

描述linux的哲学思想,及其本人对其个人理解;

介绍一些linux基本命令及相关选项;

如何在linux上使用帮助命令;

罗列出发行版linux上的一些基础目录及其功用。

 

²  计算机的组成及功能:

         计算机是由软硬件相辅相成,共同实现计算机的基本功能。大体上由以下两个部分:

        

        硬件:

    硬件是计算机系统中各种设备的总称,也是计算机的基石,包括以下五个基本组成部分:

Ø  运算器:运算器的主要功能是对数据进行各种运算,这些运算除了常规的加减乘除等基本算数运算外,还包括能进行对数据的逻辑处理能力。

Ø  控制器:控制器是真个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。

Ø  存储器:存储器的主要功能是存储程序和各种数据信息,并能在计算机运行过程中高速、自动地完成程序或数据的存取。存储器是用二进制0,1来进行数据存储的。

Ø  输入设备:用来向计算机输入各种原始数据和程序。输入设备把各种形式的信息,如数字、文字、图像等转换为数字形式的“编码”,即二进制的0,1,然后输入到计算机中存储起来。键盘是必须的输入设备,常用的输入设备如鼠标、图形输入面板、话筒、视频摄像机等。

Ø  输出设备:从计算机输出各类数据的设备叫输出设备。输出设备把计算机加工处理的结果变化为人或其他设备所能接收和识别的信息格式例如文字、数字、图形、声音等。显示器是最常见的输出设备,还有音响、打印机、绘图仪等输出设备。

 

 

    软件:

    如果说硬件是计算机的身躯,那软件就是计算机的灵魂。没有灵魂,即使硬件在强大也是一堆废铁。软件包括以下两个部分:

Ø  系统软件:是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能室调度、监控和维护计算机系统。

Ø  应用软件:应用软件是为了某种特定的用途而被开发的软件。他可以是一个特定的程序,比如qq,也可以是一组功能联系紧密,可以互相协作的程序集合,比如office。也可是一个由众多独立程序组成的庞大软件系统,比如数据库管理系统。

 

 

 

²  linux的发行版及其联系与区别。

linux是一款即开源也免费的类Unix操作系统,它诞生于1991.10.5,是一个基于POSIXUNIX的多用户、的任务、支持多线程和cpu的操作系统。严格的来讲,Linux本身只表示Linux内核,但实际人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。在不断的有杰出的程序员和开发者加入到GNU组织中后,便造就了今天我们所看到的Linux

linux发行版到目前为止有数百种之多,但是目前使用较多的是以下几类:

Ø  Debian或称为debian系列,包括debianUbuntun等。debian是社区类linux的典范,也最遵循GNU规范。Debian分为三个分支:stabletestiongunstable。其中,unstable为最新的测试版本,有相对较多的bug,适合桌面用户。testing的版本都经过测试,相对较为稳定。而stable一般只用于服务器,软件包大都比较过时,但是稳定和安全性都很高。

Ø  Redhat应称为redhat系列,包括RHELFedora CoreCentOSredhat可以说是国内使用最多的Linux版本,甚至有人讲Redhat等同于Linux。这个版本的特点就是使用人数最多,资源多,而且网上的许多Linux教程也都以Redhat为例进行讲解。

Ø  CentOSRedhat的山寨版本。此版本与redhat基本完全一致,甚至他们的软件包都可以通用,唯一不同的是这个版本完全免费,是企业中应用最多的版本之一,也是新手入门最好用的一款发行版本。

Ø  Ubuntu严格的来说不能算一个独立的发行版本,他是基于Dibanunstable版本加强而来。它的特点是拥有diban的所有优点及自身加强的优点,是一款非常适合做桌面系统的linux发行版本。如果你想要一款桌面绚丽的发行版,那这款是非常适合的。

Ø  Gentoolinux最年轻的发行版本,因此他吸取了之前发行版本的所有优点,被称为最完美的linux发行版之一。gentoo的安装包是基于源代码分发的,必须经过编译后才能运行,所以gentoo是所有发行版中使用难度最高的。但相应的因为安装方式非常接近底层,所以在程序安装完毕后与硬件结合非常紧密,可以将机器的硬件发挥到极致。是在相同硬件的发行版中运行最快的版本,如果想对自己的动手能力有一个极大的提升,那选择此版本是一个非常好的选择。

 

 

Linux的哲学思想

linux是一款伟大的操作系统,并不是它的系统有多么的优秀,而是它承载着人类最崇高的思想:自由与分享

                  自由是人类最基本的需求,而分享是人们追求的最高境界。

但除了以上的核心思想外,linux还有一些哲学思想:

Ø  一切皆文件:linux系统上,所有的数据都是以文件形式存在的,例如进程、磁盘等。这样的好处是你可以使用一套api(应用程序编程接口)和工具来处理linux中大多数资源。

Ø  单一目的的小程序:linux中,每一条命令都是一个小程序,而每个小程序,又是完成一个任务的一个点。这样的好处是可以将多点整合,完成复杂任务。

Ø  组合小程序完成复杂任务:接上面,我们可以通过一些连接符号或引用符号将多个程序联系起来,因为每个小程序消耗的资源极小,所以可以在资源相同的情况下最大化提示效率,且因为每个小程序功能单一,可随意组合,使得组合起来更加灵活。

Ø  使用文本文件保存配置信息:既然一起皆文件,那配置信息也不例外。这样的好处是可以更加全面更加升入的通过修改配置文件来定制程序或系统,让系统或程序发挥最大的效能。

Ø  尽可能避免与用户交互:在于用户交互过程中,也许用户因为不小心操作失误,导致系统出现故障,在交互的过程中也会导致性能消耗与工作效率变低,作为一款面向服务器级别的操作系统来说,这都是没有必要的。它需要的只是事先设定好一条路,然后顺着路无畏前行。

 

 

²  linux命令格式:

命令操作是使用linux最基本的要求,也是linux最核心的一部分。因为每一条linux命令都是一个单一的小程序,而linux就是由这些单一的小程序撑起来的。所以,想要学习linuxlinux命令是无法绕过去的一道坎。

      linux的格式大体上有三部分构成:命令本身、选项参数、目标(文件,目录,容器等)

COMMAND  [OPTIONS]   [OBJECTIVE]

                   例如:ls     -lh  /etc/passwd

                          命令  参数  文件

                           

Ø  命令:命令本身就是完成一个任务的主程序,一般是由系统提供的。每条命令都有不同的功用,但每条命令一般只能完成一种类型的任务。

 

Ø  参数:如果将命令看成一种类型,而参数就是在此类型里详细划分命令的功用。有些命令有非常多的参数,可在在其类型中完成诸多复杂的任务。

 

Ø  目标:目标一般指文件、目录、或某一容器(容器主要包含用户与组等),这是要被命令所执行的位置,也是一项任务的主体。

 

这里用通俗的语言来描述一下:

         查看一下 /etc/passwd 文件里都有哪些内容。

这是最基本不加参数的任务,如果对结果不满足可以加参数:

请用更人性化和更详细的方式来查看一下 /etc/passwd 文件里有哪些内容。

这就是加了参数的任务,参数的用处就是将任务的主体更加细化,来满足人们对命令的要求。

 

 

以下讲解一些常用命令的使用方法:

 

ifconfig

 

ifconfig是一条查看网卡状态与ip地址等信息的命令,如果想查看本机有几块网卡和每块网卡的状态,直接使用命令即可。

例如:

         N25第一周博客作业

通过查看,发现本机有三块网卡,eno16777736是本机真实网卡,其他两块都是系统虚拟出来的网卡。其中关键信息是:

                            inet 后是ip地址,

netmask是子网掩码,

broadcast后是广播地址。

         如果想直接看某块网卡的信息直接输入:

                  ifconfig 网卡名

         例如:

              N25第一周博客作业

           参数:

               -a:包括未开启的网卡

 

echo

         echo 默认将指定的目标输出到屏幕上,例如:

              N25第一周博客作业

         也是可以用来查看上一条命令是否执行成功:(0为成功,非0为失败)

         echo  $?:

              N25第一周博客作业

           以上是命令有误时的返回值:

              N25第一周博客作业

           以上是命令无误的返回值;

           

ttytty的主要功能是显示连接标准输入的终端的文件名:

       N25第一周博客作业

       /dev/console:物理终端

       /dev/pts/#       伪终端

       /dev/tty#         表示虚拟终端,取值范围通常为1-6

       /dev/tty S        串口终端

 

startx主要功用是在字符界面启动图形界面;直接输入即可;

 

export直接输入时查询环境变量,

     但是主要还是来定义(环境)变量的:

         N25第一周博客作业

     其他查看环境变量命令:env   printenv   declare -x

 

pwd主要是用来显示当前工作在哪个目录

        N25第一周博客作业

 

history直接输入命令是用来查看历史命令的;

      常用的参数:

              -w:将内存中的命令保存至当前用户的历史命令文件中;

              -r:读取当前用户的历史命令文件;

              -d:清除指定的历史命令;

              -c:清空历史命令,此处清空的是内存中的历史命令;

              -a:将内存中的历史命令追加到命令历史文件中。

 

                其他选项:$HISTFILE:命令历史文件的位置;

                      $HISTSIZE:  内存中命令历史最多个数,默认是1000

                      $HISTFILESIZE:命令历史文件最多能放多少命令;

                调用命令历史:

                      !#:执行命令历史中的第#个命令;

                      !!:再一次执行上一次命令;

                      !a:再一次执行命令历史最近以a(变量)开头的命令;

            调用上一条命令中的最后一个参数:

               Esc.   !$

 

shutdown关机或重启;默认关机。

     格式: shutdown  [options]  [time]

        options:

   –h:关机;

   –r:重启;

     –c:取消关机或重启;

         Time

Now:立刻

Hh:mm:自定义时间

+m    多少分钟以后;

+0 now  等同于 now

      

poweroff从字面上理解就是关闭电源,代表关闭系统的意思。

 

reboot代表重启系统,与shutdown -r  init 6 意思一样;

 

hwclock通常被clock代替,默认直接使用显示硬件时间;

       -s:以硬件系统为准;

       -w:以系统时间为准:

       –set –date="// ::":设置硬件时间

 

date:显示系统时间,可用+%Ymd等来自定义时间格式:

date "+%F %T" 2016-11-29 20:59:15

设定时间:date 月日时分年

 

 

如何在linux系统上获取命令的帮助信息:

         man  help–help  type  whereis  info

      

       首先说一下man中文翻译是手册的意思,通俗的说是linux中一本命令使用手册,如果能熟悉使用,为以后的学习带来非常大的帮助。

       使用格式:man COMMAND

       man文档有章节的划分:

         man  #  COMMAND    ( /usr/share/man/man1|man2…)

             #

      1: 用户命令;

           2:系统调用;

           3c库调用:

           4:设备文件及特殊文件;

           5:文件格式(配置文件格式);

           6:游戏使用帮助;

           7:杂项;

           8:管理工具及守护进行;

          help–help):此条命令主要是能显示命令的一些主要参数的使用,

用法:

                      help COMMAND

                      COMMAND  –help

                           

         type这条命令主要是可以显示目标命令的类型为:外部 or shell内嵌;

                用法:tpye COMMAND

 

          whereis主要用来显示命令的存储位置以及二进制文件路径;

                 用法:whereisCOMMAND

 

          info主要用来获取命令的在线文档;

                用法:info COMMAND

             

另外,还有很多程序会自带帮助文档,路径:

           /usr/share/doc/APP-VERSION

         

                  

linux的系统结构及各目录的功用:

linux秉着一切皆文件的原则,整个系统都是由文件组成的。想一下要组成一个系统需要数不清的文件,如果文件结构混乱的话,那也就没几个人能搞懂linux了。所以linuxFHS为模型,将所有的文件梳理的有条不紊。

 

FHS : filesystem hierarchy standard,文件系统层级结构标准,是linux文件结构的核心,通过一个根将所有的目录连接起来。

      

首先先介绍一下文件系统中的常见设备:

字符设备(线性设备,有时序):键盘等输入输出设备;

块设备(随机设备,可以访问任意设备): 硬盘等存储设备。

        

以下是个linux发行版中的基本目录:

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

    libc.so.* 动态链接库

    ld*:运行时链接器/加载器

     modules存储内核模块的目录

/lib64:64位系统特有的存放64位共享库的路径;

/media: 为便携设备提供挂载点

/mnt其他文件系统的临时挂载点

/opt第三方非关键性的应用程序安装点

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

/tep: 为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;

/usr: usr Hierarchy 除了根最重要的目录 全局共享的只读数据路径,

        Bin,sbin 是在系统运行时使用到的

         lib lib64

         include: c程序头文件

         share: 命令手册页,和自带文档等架构特有的文件的存储位置;

     local 另一个层级目录;用来安装第三方程序的目录;也是安装本地应用程序的目录;

         x11R6: x-windows程序的安装位置

     src:程序源码文件的存储目录

 

/var存储常发生变化的数据的目录;

Cache缓存目录

Lib状态目录;

Local/usr/local提供动态存储的目录;

Lock锁目录;

Log日志文件目录;

Opt/opt提供动态存储的目录;

Run:  运行中的进程相关的数据;

Spool暂存队列;

Tmp系统重启后依然需要的临时文件;

 

/proc: 内核与进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward,虚拟为net/ipv4/ip_forward,存储于/proc/sys/,因此完整路径为/proc/sys/net/ipv4/ip_forward 主要是为了一切皆文件 把内核参数虚拟为文件。

/sys: sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的路径,基于内存的文件系统,proc也是。Sysfs总是挂在到/sys上。为管理linux设备提供一种统一模型的接口。

 

原创文章,作者:N25_韩奇洋,如若转载,请注明出处:http://www.178linux.com/61336

(0)
上一篇 2016-11-29 21:36
下一篇 2016-11-30 11:27

相关推荐

  • Python装饰器与面向切面编程

    新年好~ 那么,很久没有更新了,其实想想也没多少可以写的,因为Python的文档似乎很全面的说……能做的差不多只有翻译和整理了,英文过关的朋友不妨直接去doc.python.org这里查看相关资料 :) 转载请注明原作者和原文地址,多谢! 今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理…

    Linux干货 2015-03-12
  • Linux 用户, 组和权限

    用户, 组和权限 Linux登陆需要用户名、密码。/etc/passwd 文件保存用户名。登录linux时,Linux 先查找 /etc/passwd 文件中是否有这个用户名,没有则跳出,有则读取用户名的user ID 、 group ID 、用户名对应的根目录路径以及所使用的 shell ,最后在 /etc/shadow 中核对该 UI…

    2017-07-22
  • Python内置数据结构——集合set

    集合 定义 set翻译为集合 collection翻译为集合类型,是一个较大的概念 set是一个可变的、无序的、不重复的元素组成的集合 set的元素要求必须可以hash,目前已学的不可hash的类型只有list、set 元素不可以索引 set可以迭代 set的初始化 set_1 =set() #表示定义一个空集合set_1 set_1 =set(iterab…

    Linux干货 2017-10-03
  • 第八周作业

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;     在线的主机使用绿色显示;     不在线的主使用红色显示; 2、如何给网络接口配置多个地址,有哪些方式? 方法3:在/etc/sysconfig/netw…

    2017-04-20
  • 如何安装CentOS 6.9

    1、打开VMware,点击“创建新的虚拟机”   2、刚开始用的话,一般就选择推荐的典型类型来安装,所以直接点击“下一步”   3、此处选择稍后安装操作系统,这里我们先进行配置,点击“下一步”   4、因为我需要用里面的linux系统,所以选择客户机操作系统为Linux,选择版本为CentOS 64位,单击“下一步”。 &nbs…

    2017-07-11
  • N25期—第五周作业

    1、 显示当前系统上root、fedora或user1用户的默认shell; grep -E "^(root|fedora|user1):" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某单词后面…

    Linux干货 2017-01-02

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-09 20:43

    总结的很好,有例子有说明,加油