计算机及Linux基础介绍

Linux及计算机基础介绍

计算机的组成及其功能

What:计算机的组成是什么?

  • 计算机的主要部件:

    • CPU:可分为运算器、控制器、寄存器、缓存等

    • 存储器:比如内存。执行程序时,会将程序及相关数据加载进内存,供CPU读取

    • 输入设备:比如:键盘。用于下达指令及输入数据。

    • 输出设备:比如显示器。用户显示和输出指令执行的结果等

  • 冯诺依曼体系中提出的五大部件为:运算器、控制器、存储器、输入、输出


How:计算机如何工作的?

    1. 硬盘等存储介质用于存放程序及数据。

    • 程序 = 指令 + 数据

    2. 用户通过输入设备,下达执行某个程序

    3. 计算机会先将该程序及相关数据加载到内存中。

    • 因为CPU只能直接访问内存

    • 内存在内部是划分存储单元,每个单元为8bit

    • 内存中每个单元都有编址。

    4. CPU先读取该指令,当需要用到数据时,再从内存中载入响应数据

    • CPU要能执行某指令,首先它得要支持。而CPU所能支持的指令集合称之为指令集。不同的CPU,指令集也不同。

    • 指令集中指令又可分为两类:普通指令、特权指令

    • CPU有位长之分。目前有32位和64位CPU

    • 不同的位长,代表CPU同一时间可以访问内存单元的数量的多少

    5. 如果第一个指令运行完后,结果还需和其他数据再进行运算,那么CPU会先将该结果放入寄存器中,待用时再取出。

    6. 最后将结果输出到输出设备

        a8773912b31bb051973f1da5367adab44aede020.jpg   


Why:为什么有了内存,还需要有CPU缓存?

        由于内存的频率远低于CPU频率。因此通过CPU缓存来解决速度不同的问题。减少等待时间,提高CPU效率。

        缓存为王~!


What:那么什么是操作系统?

         blob.png

        操作系统是由内核和众多应用程序组合而成的。

        而内核位于硬件之上,应用程序之下。它驱动了硬件,并向上提供了系统调用,使得程序员能方便的调用系统资源。

        

        内核(kernel)的作用:

            1、驱动底层硬件 

            2、将各底层硬件资源抽象成简单的资源 

            3、管理各程序的运行,把有限资源分配给各程序

        1. 对于CPU,通过时隙复用

        2. 对于内存,通过空间复用    

            它的存在,使得所有程序在任意时候都认为自己是独占着系统资源。对于程序而言,所要面对的也只有操作系统而已

Linux发行版本

1、Linux的发行版

    Linux内核以及在其上运行的软件都是基于开源协定,以源码的方式共享出来,任何人都可以随意拿来编译安装。也因此增加了使用难度。

    为了方便安装,很多组织和公司便提供了在不同平台上已编译好的Linux系统。我们称之为发行版。发行版依旧须遵循开源协定,对外免费共享出来。

    

2、常见的Linux发行版:     

  主流的有三种Debian,Slackware,Red Hat

Debian

Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing和unstable。Debian最具特色的是apt-get /dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去。

    • Ubuntu是基于Debian的unstable版本加强而来,可以这么说Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。根据选择的桌面系统不同,有多个版本可供选择,比如基于unity的Ubuntu,基于Gnome的Ubuntu Gnome,基于KDE的Kubuntu,基于LXDE的Lubuntu以及基于Xfce的Xubuntu等。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

Red Hat

Redhat,应该称为Redhat系列,Redhat linux是全球在服务器上应用最广泛的linux操作系统,在效率、扩展性、可靠性、安全性、集成虚拟化等都具备领先其他linux的特点,被誉为最值得信赖的数据中心平台系统,其主要应用在服务器领域。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。

    • RHEL(Redhat Enterprise Linux),Redhat为期提供完善的售后服务,并以服务提供收费。

    • CentOS(Community ENTerprise Operating System),它是来自Red Hat Enterprise Linux依照开放源代码规进行重新编译而成的,并且仅仅是将logo标识替换掉。所以也可以说CentOS是redhat服务器的免费版。新版的CentOS大约每两年发布一次,每个版本大概每6个月更新一次,CentOS也提供技术支持,但仅限于社区的官方邮件、论坛和聊天室,并且CentOS不负任何商业责任。

    • Fedora由原来的Redhat桌面版本发展而来,免费版本,Redhat会将最新的技术或程序用在这个发行版中,以作测试之用。

Slackware

Slackware 由Patrick Volkerding创建于1992年。算起来应当是历史最悠久的Linux发行版。曾经Slackware非常的流行,但是当Linux越来越普及,用户的技术层面越来越广(更多的新手)后,Slackware渐渐的被新来的人们所遗忘。尽管如此,Slackware仍然深入人心(大部分都是比较有经验的 Linux老手)。Slackware稳定、安全,所以仍然有大批的忠实用户。由于Slackware尽量采用原版的软件包而不进行任何修改,所以制造新 bug的几率便低了很多。Slackware的版本更新周期较长(大约1年),但是新版本的软件仍然不间断的提供给用户下载。

    • SUSE Linux原是以Slackware Linux为基础,并提供完整德文使用界面的产品。SUSE 有两个linux版本,一个是open SUSE,另一个是Enterprise linux,Enterprise linux是为企业而设计的,要长期使用,需要收一定的费用的。而前一个是完全按照开源社区的要求,是免费的和放开源代码的。ZypperYast 是 SUSE Linux 平台上的软件包管理工具,他们的底层使用了 RPM


Linux的哲学思想

1、一切皆文件:

    在Linux中最核心的思想便是一切皆文件,从普通文件到设备,在Linux上都是以文件形式放置。Linux的文件类型有:普通文件、目录文件、块设备文件、字符文件、符号链接文件、命名管道和套接字文件。就连内核和进程的运行状态也以文件的方式存放着。


2、由众多功能单一的程序组成,一个程序只做一件事,切做好。

    在Linux上每一个指令便是一个小程序,而每一个指令只负责一件事,通过不同的命令选项,完善了指令的功能。


3、组合单一的小程序完成复杂任务。

    体现在了Linux的小巧精简。Linux上的没有像Windows那样,每个软件大道几百M。甚至几十G。他们通过组合小程序实现复杂功能,复用了相同功能的程序,减小软件的大小,提高了软件开发的效率。


4、尽量避免与用户交互。

    这也是为了,能方便shell脚本的开发。减少交互,就能方便的将单一小程序组合起来使用。


5、使用文本文件保存配置信息

    这点说道根本也是一切皆文件的体现,一个文本编辑器便能完成所有软件的配置,不需要额外的应用程序。


Linux上的命令

命令提示符:prompt(bash)

    #:管理员账户,为root;拥有最高权限,能执行所有操作

    $:普通用户,非root用户;不具有管理权限,不能执行系统管理类操作

命令的语法通用格式:

    # COMMAND OPTIONS ARGUMENTS

       

    COMMAND:发起一命令:请求内核将某个二进制程序运行为一个进程;

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

    • 命令必须遵循特定格式规范:ELF(Linux),exe(Windows), msi(Windows)

          • 可以使用file命令查看:

            blob.png

    •  命令分为两类:

          • 內建命令: 由shell程序的自带的命令

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

          • 可使用type命令查看:

            blob.png

                          

    OPTION:指定命令的运行特性;         

   选项有两种表现形式:

                短选项:-C, 例如-l, -d

                    注意:有些命令的选项没有-;

                    如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld

                长选项:–word, 例如–help, –human-readable

                    注意:长选项不能合并;

                注意:有些选项可以带参数,此称为选项参数;   

 

    ARGUMENTS:命令的作用对象;命令对什么生效;            

          不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔;


常用命令:ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date


ifconfig】:configure a network interface 配置网络接口

    snip_20160918104537.png


echo】:  display a line of text   

    echo [SHORT-OPTION]… [STRING]…

    • -n:不进行换行

    • -e:让转义符生效

      1、\n:换行

      2、\t:制表符

            blob.png

    • 在shell中string可以使用引号,单引号和双引号均可用

      1、单引号:强引用,变量引用不执行替换

      2、双引号:弱引用,变量引用会被替换

            blob.png

    • 注意:变量引用的正规符号:${name},只不过一般花括号可以省略

tty】: print the file name of the terminal connected to standard input

            终端:

                    串行终端

                            /dev/ttyS#

                    物理终端

                            /dev/console

                    虚拟终端:图形终端

                            /dev/tty#

                    伪终端:远程连接,图形环境打开的命令接口

                           /dev/pts/#

            blob.png


startx】:打开图形界面

    启动图形界面:startx &    (不加&,只有等指令运行结束后才能返回命令听提示符)

export】:为 shell 变量设定导出属性。

    blob.png

    设置语言为英文:

    blob.png

pwd】:print name of current/working directory

    blob.png   

    实例:blob.png

history】:显示或操纵历史列表。

    blob.png

     

            -c:清空命令历史列表

            -d offset:删除指定的历史命令

            -r:从文件读取命令历史到历史列表中

            -w:把历史列表中的命令追加到历史文件中

            history #:显示最近的#条命令

    blob.pngblob.png

shutdown】:Halt, power-off or reboot the machine

            shutdown [OPTIONS…] [TIME] [WALL…]

            blob.png


reboot,【halt】,【poweroff】:一般情况下是调用shutdown进行关机处理等处理            


hwclock】:query or set the hardware clock

            hwclock [function] [option…]

            显示硬件时钟:

            blob.png

            hwclock -s :系统时间以硬件时间为准,–hctosys

            hwclock -w :  硬件时间以系统时间为准,–systohc

            blob.png

date】:print or set the system date and time

            date [OPTION]… [+FORMAT]

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

            blob.png

            date +%m  获取月份:计算机及Linux基础介绍

    blob.png

            设置系统时间:            

            格式:date MMDDhhmm[CC]YY.ss

                                 月  日  时  分    年    秒

    blob.png


Linux上获取命令帮助

      1、内建命令:

             #help 命令

                    如:help cd

       2、外部命令

                   1、# 命令 –help

                       如:dirname –help

                    2、使用手册:manual

                            位置:/usr/share/man


        man介绍

       #man  命令名  (先解压后显示)

              SECTION:

                         NAME:功能性说明

                         SYNOPSIS:语法格式

                         DESCRIPTION:描述

                         OPTIONS :选项

                         EXAMPLES:使用示例

                         AUTHOR:作者

                         BUGS:报告程序bug的方式

                         SEE ALSO:参考

                         ……

      使用帮助中命令格式中的字符意义:

      []:可选的部分

      {a|b}:分组,a和b作为一个使用单元来使用

      |:或者,只能选其一

      <>:必不可少的部分

      …:同类内容可以出现多个

      man的简要使用机制:

             翻屏:

                      空格键:向文件尾部翻一屏

                      b:向文件首部翻一屏

                      回车键:向文件尾部翻一行

                      k:向文件首部翻一行

                      ctrl+d:向文件尾部翻半屏

                      ctrl+u:向文件首部翻半屏

                      1G:跳转至第一行

                      #G:跳转至指定行(#为行号)

                      G:跳转至最后一行

              文本搜索:(不区分关键字大小写)

                      /keyword:向文件尾部搜索                               

                      ?keyword:向文件首部搜索                               

                               n:顺着查找方向下一个

                               N:逆着查找方向下一个

                              q:退出

  补充:man其实能为命令(普通命令、管理命令)、程序的配置文件格式、系统调用、库调用、游戏及其他不便归类的文件提供帮助手册

    /usr/share/man

                      man1,man2,……

    man命令的分段机制:

    1:用户命令:

    2:系统调用

    3:C库调用

    4:设备文件及特殊文件

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

    6:游戏使用帮助

    7:杂项

    8:管理命令及守护进程

blob.png

blob.png

并非每个命令在所有章节下都有手册,

查看某关键字在那些段落有使用帮助

   whatis Keyword 精确查找

   提示:如果whatis的数据库尚未生成,可以使用makewhatis手动进行             

             旧版的 Linux 这个指令是使用 makewhatis!CentOS7使用 mandb 了!

blob.png

计算机及Linux基础介绍

   man -k Keyword 模糊查找

计算机及Linux基础介绍blob.png

man -M /path/to/somedir:到指定目录下查找命令手册并打开

man的文件在:/usr/share/man

计算机及Linux基础介绍blob.png

3、很多应用程序自带有帮助文档:/usr/share/doc/

计算机及Linux基础介绍blob.png

README:程序的相关信息

INSTALL:安装帮助

CHANGES:版本迭代时的改动信息

4、info 命令:获取在线文档

5、主流发行版官方文档

     http://www.redhat.com/doc

6、程序官方的文档

      官方站点上的“Document”

7、google:

       linux filetype:ppt 特定格式文件

       keyword site:magedu.com  在特定网页内搜素

Linux基础目录名称及功能规定

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

/sbin:供系统管理使用的工具程序文件

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

            存放为了保证操作系统正常运行而提供的可执行程序

            /usr/bin

            /usr/sbin

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

            用来存放第三方软件的程序

            /usr/local/bin

            /usr/local/sbin

/boot:引导加载器必须用到的各静态文件:kernel、initramfs(initrd)、bootloader(grub)

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

            设备有两种类型:字符设备(线性设备,有时序)、块设备(随机设备,可以任意访问)                    

/etc:系统程序的配置文件 ,只能为静态

        /etc/sysconfig:系统级别的配置文件

        /etc/init.d:系统服务脚本

/home:普通用户,默认在/home下有一个与其名称同名目录,作为用户的家目录

/root:管理员的家目录

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

        libc.so.*:动态链接的C库

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

        modules:用于存储内核模块的目录

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

/media:专用的挂载位置,通常用来挂载便携式设备。(cdrom,floopy等)

/mnt:专用挂载位置,挂载额外的存储设备。

/misc:备用目录

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

/proc:基于内存虚拟文件系统(关机后就没了),用于为内核及进程存储运行时的相关信息,他们多为内核参数,例如:net.ipv4.ip_forward(参数的值就是这个文件的内容),虚拟为net/ipv4/ip_forward,存储于/proc/sys/net/ipv4/ip_forward

/sys:sysfs虚拟文件系统提了一种比proc更为理想的访问内核数据的途径,主要作用在于为管理Linux设备提供一种统一的模型接口(伪文件系统,系统级别的,用于配置外围设备特性的参数。)

详见:www.ibm.com/developerworks/cn/linux/l-cn-sysfs

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

/tmp:存取临时文件的目录,可供所有用户使用,有特殊权限,默认存放30天

/usr:usr Hierarchy, shared 所有遵循协议的系统都可以使用,readonly 只读

          bin,sbin

          lib,lib64

          /usr/include:C程序头文件

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

          local:又一个层级目录                    

          X11R6:XWindow程序的安装位置

          src:程序源码文件的存储位置

/usr/local:Local hierarchy,让系统管理员安装本地应用程序(为了与系统原有程序不冲突,而装在一个新的目录下),也通常用与安装第三方程序

          在这个路径下也同样拥有类似/usr下的目录

          bin、sbin、etc、include、man、share、src等

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




















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

(0)
lucklymelucklyme
上一篇 2016-09-19
下一篇 2016-09-19

相关推荐

  • rsyslog学习

    一、rsyslog日志服务简介 二、rsyslog的配置详解 三、实现日志服务器收集日志及last、lastb、dmseg命令的使用 四、实现日志存储在mysql中 一、rsyslog日志服务简介 日志的概念好理解,日志作用可用于排障和追溯审计的等 1、rsyslog是一个C/S架构的服务,可监听于某套接字,帮其它主机记录日志信息,在linux系统中可以分类…

    Linux干货 2016-10-24
  • 马哥教育网络班21期-第2周课程练习

    1、 Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp 复制、mv 剪切、rm 删除 tree,mkdir 2、 bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。 echo$ 查看命令执行状态返回值 。 返回0,则表示执行成功。 返回非零,则表示执行失败。(1-255) 3、请使用命令行展开功能来完成…

    Linux干货 2016-07-17
  • SELinux——有趣的标签

    SELinux ·SELinux: Secure Enhanced linux,工作与Linux内核中 ·DAC:Discretionary Access Control 自由访问控制 ·MAC:Mandatory Access Control  强制访问控制        &n…

    Linux干货 2016-09-18
  • 网络管理之虚拟网卡实现一个网卡多个地址

    一.概述 在虚拟机中实现一个网卡多个地址 完成这个功能之前需要先关闭NetworkManager功能(在centos 6系统)         chkconfig NetworkManager off   而且我们要实现虚拟网卡一个网卡多个地址只是对虚拟机有用 网卡别名…

    Linux干货 2016-09-16
  • 博客作业网络班22期+第6周(9.12-9.18)

    请详细总结vim编辑器的使用并完成以下练习题1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost /]# cp /etc/rc.d/rc.sysinit /tmp[root@localhost /]# sed -i 's/\…

    Linux干货 2016-09-19
  • grub知识与故障排除

    知识点回顾 at 任务的存放位置:/var/spool/at/ crond 任务存放位置:/var/spool/cron/username 查看服务有没有运行 centos6:  service  atd  status    chkconfig –list atd chkconfig atd o…

    Linux干货 2016-09-13

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-20 10:32

    黑屏是不是很丑,可以研究一下makedown格式