计算机组成及Linux初识

拼一载春秋,搏一生无悔


1. 计算机简介
2. Linux发行版简介
3. Linux哲学思想简介
4. Linux系统上获取命令帮助
5. Linux「12」个基础命令简介
6. Linux发行版基础目录及功能简介

1.计算机简介

电子计算机(英语:computer),亦称电脑,是一种利用「电子学」原理,根据一系列指令对数据进行处理的工具
计算机种类繁多,但实际来看,计算机总体上是处理信息的工具。计算机在组成上形式不一,早期计算机的体积足有一间房屋的大小,而今天某些嵌入式计算机可能比一副「扑克牌」还小。当然,即使在今天依然有大量体积庞大的巨型计算机为特别的[科学]计算或面向大型组织的事务处理需求服务。比较小的,为个人应用而设计的称为「微型计算机」(Personal Computer,PC),在中国地区简称为“微机”。我们今天在日常使用“计算机”一词时通常也是指此,不过现在计算机最为普遍的应用形式却是嵌入式,嵌入式计算机通常相对简单、体积小,并被用来控制其它设备—无论是「飞机」、「工业机器人」还是「数码相机」等

计算机的组成

完整的计算机系统包括硬件和软件两大部分,硬件是指计算机系统中的各种物理装置。软件是指计算机运行所以需要的各种程序

冯·诺伊曼结构

冯·诺伊曼结构这个词出自「约翰·冯·诺伊曼」, 于1945年6月30日。冯·诺依曼由于在曼哈顿工程中需要大量的运算,从而使用了当时最先进的两台计算机Mark I和ENIAC,在使用Mark I和ENIAC的过程中,他意识到了存储程序的重要性,从而提出了存储程序逻辑架构
从理论上讲,计算机的硬件系统主要由运算器、存储器、控制器、输入设备和输出设备五大部分组成,这种划分方式称为“冯诺依曼体系结构

  • 运算器
    运算器(Datapath),其主要功能是对数据进行运算的加工处理操作,包括加、减、乘、除等数学算术运算和与、或、非等逻辑运算。运算器主要由运算逻辑单元(ALU)和寄存器两部分元件组成,其中寄存器用于提供参与运算的数据或临时保存运算结果。通常情况下运算器集成于CPU中央处理器中

  • 控制器
    控制器(Control),是整个计算机的控制中心,主要用来协调计算机各个组件的工作,完成程序信息的处理和数据的输入/输出。它一般由指令寄存器、状态寄存器、指令编码器、时序电路和控制电路组成。简而言之,控制器就是协调指挥计算机各个部件工作的组件。通常情况下控制器集成于CPU中央处理器中

  • 存储器
    存储器(Memory),其主要功能用于存放程序与数据(程序是计算机操作的依据,数据是计算机操作的对象),程序和数据在存储器中以二进制的方式表示,每8位二进制数码划分为一个存储单元,必须通过地址来访问该单元,地址其实就是这个存储单元的编号

  • 输入设备
    输入设备(Input System),输入设备是计算机的重要外部设备,其主要作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机,并转换为二进制格式保存在内存中。常见的输入设备有键盘、鼠标等

  • 输出设备
    输出设备(Output System),输出设备是计算机的重要外部设备,其主要作用是将计算机的运算中间结果或最终结果、机内的各种数据符号及文字或各种控制信号等信息展示给用户。常见的输出设备有显示器、打印机、音箱、投影仪等

软件系统

软件的分类方式有很多种,通常把软件分为「系统软件」「应用软件」

  • 系统软件
    「系统软件」负责管理计算机系统中各种独立的硬件,使得它们可以协调工作,提供基本的功能,并为正在运行的应用软件提供平台

  • 应用软件
    「应用软件」是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,比如一个图像浏览器

2.Linux发行版简介

什么是Linux发行版?
Linux 发行版(英语:Linux distribution,也被叫做GNU/Linux 发行版),它一般是由一些组织、团体、公司或者个人制作并发行的,为一般用户预先集成好的Linux操作系统及各种应用软件,一般不需要用户进行重新编译,在安装之后,可以通过一定的设置就可以使用,通常以「软件包管理系统」来进行应用软件的管理「Linux内核+软件(自由or专有)」

目前可供用户下载使用的Linux发行版有超过300种之多
划分为三大系:Debian GNU / Linux系,Red Hat Linux系,Slackware Linux系

  • Debian 
    Debian是由GPL和其他自由软件许可协议授权的自由软件组成的操作系统,通过社区方式进行维护,Debian以稳定性闻名,所以很多服务器都使用Debian作为其操作系统,对比Ubuntu、Fedora、Centos等Linux发行版,Debian stable(稳定版)以三年为更新周期,故对新上市硬件支持较差(虽然有testing,unstable但极不稳定,与Debian理念不符,且逊色于Archlinux,gentoo等滚动更新发行版 ),但极注重稳定性,低于现在Windows主流配置1到2年的PC到很好的支持。

    • Linux Mint 是一种基Ubuntu或Debian开发出的Linux发行版,是对用户友好而功能强大的操作系统。Linux Mint的理想之一,以简单的方式呈现先进技术给用户,以此来成为最优秀的操作系统

    • Elementary OS 是一种基于Ubuntu的Linux发行版,界面酷炫「新生代,值得一试」

    • Ubuntu 是以桌面应用为主的Linux发行版,Ubuntu是基于Debian发行版和GNOME桌面环境,每6个月会发布一个新版本,每2年发布一个LTS长期支持版本

    • Kanotix 是一种基于Debian的Linux发行版

  • Red Hat 
    RPM软件包格式可以说是Linux社区的一个事实标准,被广泛使用于其他Linux发行包中

    • CentOS 它是来自于「RHEL」依照「开放源代码」规定发布的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用「'免费'RHEL」「主要Linux学习对象」

    • Fedora 由Fedora项目社区开发、红帽公司赞助,目标是创建一套新颖、多功能并且自由「开放源代码」的操作系统,「更新速度快,新软件、特性成熟之后可能加入到RHEL中」

    • Red Hat 9.0 1.0版本于1994年11月3日发行,2004年4月30日,Red Hat公司正式停止对Red Hat 9.0版本的支持,全部力量集中在服务器版的开发上,也就是Red Hat Enterprise Linux版

    • Red Hat Enterprise Linux 由 Red Hat开发的商业市场导向的 Linux 发行版,红帽公司从 Red Hat Enterprise Linux 5 开始对企业版 LINUX 的每个版本提供 10 年的支持,通常非官方称呼「RHEL」,大约 3 年发布一个新版本

  • Slackware
    走了一条与其他的发行版本,([Red Hat]、[Debian]、[Gentoo]、[SuSE])、[Mandriva]、[Ubuntu]等)不同的道路,它力图成为“[UNIX]风格”的Linux发行版本

    • S.U.S.E SUSE Linux原是以Slackware Linux为基础,并提供完整德文使用界面的产品

    • openSUSE 前身为SUSE Linux和SuSE Linux Professional,是一个Linux发行版与项目,由SUSE与其他公司赞助。openSUSE在全世界,尤其是在德国被广泛使用。它的开发重心是为软件开发者和系统管理者创造适用的开放源代码的工具,并提供易于使用的桌面环境和功能丰富的服务器环境。openSUSE针对桌面环境进行了一系列的优化,对Linux新手较为友好。「后起之秀」

还有很多非常优秀的Linux发行版:Gentoo,ArchLinux,Kali,Yellow Dog ……

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

联系:所有Linux发行版都使用了Linux内核,不同的Linux发行版使用的Linux内核版本可能不同

区别:从技术方面来说,Linux发行版的不同之处在于支持的硬件设备和系统或者软件包配置不同。由于历史原因,不同的组织也会导致不同的发行版。其他的原因有安全性方面的,如安全更新的频率;软件包管理的易用性;可用软件包的数量
个人理解:各Linux发行版采用了不同的软件包管理工具,比如,Debian 的 apt、openSUSE 的 zypp、Fedora的 dnf、Slackware 的 slackpkg、Archlinux 的 pacman、Gentoo 的 emerge、等等

3.Linux哲学思想简介

Linux的哲学思想:

  • 一切皆文件

     [root@localhost ~]# fdisk -l /dev/sda 
     Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 sectors
     Units = sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 512 bytes
     I/O size (minimum/optimal): 512 bytes / 512 bytes
     Disk label type: dos
     Disk identifier: 0x0005c90f
     Device Boot      Start         End      Blocks   Id  System
     /dev/sda1   *        2048     1026047      512000   83  Linux
     /dev/sda2         1026048   251658239   125316096   8e  Linux LVM

查看磁盘分区/dev/sda使用情况,

  • 由众多功能单一的程序组成;一个程序只做一件事

      [root@localhost tmp]# date
      Thu Oct 27 11:09:22 CST 2016
      [root@localhost tmp]# mkdir `date`
      [root@localhost tmp]# ls
      11:09:27  2016  27  CST  Oct  Thu

date默认只能显示系统时钟,结合其他命令可以产生新的功能

  • 尽量避免跟用户交互

      [root@localhost ~]# cp /etc/fstab /tmp/issue 
      cp: overwrite ‘/tmp/issue’?

    可以通过编程的方式避免用户参与操作

  • 使用文本文件保存配置信息

      [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
      TYPE=Ethernet  #BOOTPROTO=dhcp
      BOOTPROTO=static
      #DEFROUTE=yes
      IPADDR=172.16.8.110
      NETMASK=255.255.255.0

查看网卡的配置文件

4.Linux系统上获取命令帮助

命令分为「内部命令」「外部命令」

内部命令
~]#help COMMAND

 [root@localhost ~]# help cd
 cd: cd [-L|[-P [-e]]] [dir] Change the shell working directory.

外部命令
~]#COMMAND –help

  • 命令自带简要格式的使用帮助

    [root@localhost ~]# ls --helpUsage: ls [OPTION]... [FILE]...
    List information about the FILEs (the current directory by default).
    Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
  • 使用手册
    位置:/usr/share/man
    ~]# man COMMAND

      [root@localhost ~]# man ls
  • 获取命令的在线文档
    ~]#info COMMAND

  • 程序自带帮助文档
    位置:/usr/share/doc/APP-VERSION

  • 主流发行版官方文档
    例如:http://www.redhat.com/doc

  • 程序官方的文档,官方站点上的“Document”

  • google

5.Linux「12」个基础命令简介

  • ifconfig

        命令功能:ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置

        命令格式:ifconfig 「interface」参数
        -a 显示全部接口信息
        -s 显示摘要信息
        -up 启动指定网络设备/网卡
        -down 关闭指定网络设备/网卡

       [root@localhost ~]# ifconfig
       eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 172.16.8.110  netmask 255.255.255.0  broadcast 172.16.8.255
       inet6 fe80::20c:29ff:fee9:940  prefixlen 64  scopeid 0x20<link>
       ether 00:0c:29:e9:09:40  txqueuelen 1000  (Ethernet)
       RX packets 10670  bytes 762914 (745.0 KiB)
       RX errors 0  dropped 424  overruns 0  frame 0
       TX packets 2169  bytes 310274 (303.0 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

        inet IPv4地址信息
        netmask 子网信息
        broadcast 广播地址

  • echo
    命令功能:在显示器上显示'用户输入内容'
    命令格式:echo [SHORT-OPTION]… [STRING]…
    -n: 不进行换行
    -e:让转义符生效
    \n:换行
    \t:制表符
    STRING可以使用引号,单引号和双引号均可用
    单引号:强引用,变量引用不执行替换
    ~]# echo '$SHELL'
    双引号:弱引用,变量引用会被替换
    ~]# echo "$SHELL"

    [root@localhost ~]# echo helloworld
    helloworld
    [root@localhost ~]# echo -n 'hello wolrd'
    hello wolrd[root@localhost ~]# 
    [root@localhost ~]# echo -e 'hello \nwolrd'
    hello 
    wolrd
    [root@localhost ~]# echo -e 'hello \twolrd'
    hello     wolrd
    [root@localhost ~]# echo '$PATH'
    $PATH
    [root@localhost ~]# echo "$PATH"
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • tty
    命令功能:查看当前的终端设备
    命令格式:tty [OPTION]…

      [root@localhost ~]# tty
      /dev/pts/0
  • startx
    命令功能:用来启动X Window,「开启图形界面」
    命令格式:startx

  • export
    命令功能:设置或显示环境变量
    命令格式:export [-fn] [name[=value] …]
    -n:删除指定的变量

      [root@localhost ~]# export PATH=$PATH:/tmp/test
      declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/test"

新增环境变量

  • pwd
    命令功能:显示工作目录
    命令格式:pwd

      [root@localhost ~]# pwd
      /root
      [root@localhost network-scripts]# pwd
      /etc/sysconfig/network-scripts
  • history
    命令功能:显示已使用过命令
    命令格式:history [-c] [-d 偏移量] [n]
    -c:清空命令历史
    -d offset:删除指定命令历史
    -r: 从文件读取命令历史至历史列表中
    -w:把历史列表中的命令追加至历史文件中
    history #:显示最近的#条命令

      [root@localhost ~]# history
        441  cd    442  history 
      [root@localhost ~]# history -c
      [root@localhost ~]# history 
          1  history 
      [root@localhost ~]# history -r
        365  file /usr/bin/ls    366  history
  • shutdown
    命令功能:系统关机指令
    命令格式:hutdown [OPTIONS…] [TIME] [WALL…]
    -h:关机后关闭电源
    -r:重启计算机
    -c:取消目前正在执行的关机程序

      [root@localhost ~]# shutdown -h 10  10分钟后关机
      [root@localhost ~]# shutdown -h now  立即关机
      [root@localhost ~]# shutdown -c  取消关机
  • poweroff
    命令功能:系统关机指令
    命令格式:poweroff

      [root@localhost ~]# poweroff
  • reboot
    命令功能:系统重启指令
    命令格式:reboot

      [root@localhost ~]# reboot
  • hwclock
    命令功能:显示硬件时钟
    命令格式:hwclock [option…]
    -s, –hctosys:以硬件为准,把系统调整为与硬件时间相同
    -w, –systohc:以系统为准,把硬件时间调整为与系统时钟相同

      [root@localhost ~]# hwclock -s
  • date
    命令功能:显示系统时钟
    命令格式:date [OPTION]… [+FORMAT]
    FORMAT:格式符
    %F
    %T
    %Y
    %m
    %d
    %H
    %M
    %S
    %s:
    设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]

       [root@localhost ~]# date +%F
      2015-10-10
      [root@localhost ~]# date +%T
      03:04:45
      [root@localhost ~]# date +%m
        10
      [root@localhost ~]# date +%d
        10
      [root@localhost ~]# date +%H
        03
      [root@localhost ~]# date +%M
        05
      [root@localhost ~]# date +%S
        40
      [root@localhost ~]# date +%s
        1444417542
      [root@localhost ~]# date +%Y
        2015
      [root@localhost ~]# date 101003032015
        Sat Oct 10 03:03:00 CST 2015

6.Linux发行版基础目录及功能简介

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

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

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

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

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

  • /home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME

  • /root:管理员的家目录;可选

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

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

  • /media:便携式设备挂载点,cdrom等

  • /mnt:其它文件系统的临时挂载点

  • /opt:附加应用程序的安装位置;可选路径

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

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

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

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

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

  • /proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息

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

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

(0)
N24-AkatsukiN24-Akatsuki
上一篇 2016-10-27
下一篇 2016-10-27

相关推荐

  • Linux中实现java和c语言打印Hello world小程序

    1、C语言实现 先确认linux系统中是否gcc编译器,可以通过rpm -q gcc查询系统已经安装gcc软件包,如果没有安装可以到系统自带光盘里面安装相应的安装包软件。 使用rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm安装编译器,安装后再查询确认已经成功 环境准备好了,我们就可以编写C语言的代码了,我们可以使用vim编辑器编写第一…

    Linux干货 2016-08-26
  • 第六周作业

    第六周作业 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit :进入末行模式 % s/^[[:space:]]/#&…

    Linux干货 2016-10-09
  • VSFTP通过pam_mysql插件创建进行基于mysql的虚拟用户

      1、对pam_mysql-0.7RC1包进行编译安装 编译安装环境配置 编译安装所需的包如下: ~]#yum -y groupinstall "Development Tools" "Server Platform Development" ~]#yum -y install mariadb-server…

    Linux干货 2016-11-14
  • 博客作业网络班22期+第5周(9.5-9.11)

    1、显示当前系统上root、fedora或user1用户的默认shell [root@MyCloudServer wjb]# egrep '^(root|fedora|user1)\>' /etc/passwd | cut -d: -f7/bin/bash 2、找出/etc/rc.d/init.d/functions文件中某单词后面…

    Linux干货 2016-09-15
  • Buffer和Cache的区别

    1、buffer(缓冲) 是为了提高内存和硬盘(或其他I/O设备)之间的数据交换的速度而设计的。 2、cache(缓存) 从CPU角度考虑,是为了提高cpu和内存之间的数据交换速度而设计的,例如平常见到的一级缓存、二级缓存、三级缓存。 cpu在执行程序所用的指令和读数据都是针对内存的,也就是从内存中取得的。由于内存读写速度慢,为了提高cpu和内存之间数据交换…

    Linux干货 2018-01-02
  • 重定向与管道

         本次内容    1.三种I/O设备    2.把I/O从定向入文件    3.命令tr    4.使用管道链接命令    5.tee   我们都知道程序是由:指令+数据    &n…

    2017-07-23

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-02 16:38

    总结的不错,希望能熟知Linux的哲学思想,熟知基础命令知识,加油!