Jerry首作_linux基础

一、计算机的组成及其功能

硬件

冯·洛伊曼体系

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

  2. 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。

  3. 存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。

  4. 输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。

  5. 输出(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。

软件

低级语言:

汇编语言,汇编器;写驱动

高级语言:

系统级:C,C++,对性能要求较高的服务类程序 应用级:Java,Python,Ruby

二、Linux 发行版有数百种之多,主要分三个主流分支

RedHat Enterprise Linux

Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区 克隆版本,免费)。Redhat是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。

CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。CentOS是Community Enterprise Operating System的缩写。CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。

Debian:只有社区的发行版

Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去。Debian是包括Ubuntu在内许多发行版的上游,而Ubuntu又是Linux Mint及其他发行版的上游。Debian在服务器和桌面电脑领域都有着广泛的应用。Debian是一个纯开源计划并着重在一个关键点上,稳定性。它同时也提供了最大的和完整的软件仓库给用户。

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

Slackware Linux

Slackware Linux是由Patrick Volkerding开发的GNU/Linux发行版。与很多其他的发行版不同,它坚持KISS(Keep It Simple Stupid)的原则。一开始,配置系统会有一些困难,但是更有经验的用户会喜欢这种方式的透明性和灵活性。 Slackware 很多特性体现出了KISS原则,最为有名的一些例子就是不依赖图形界面的文本化系统配置、传统的服务管理方式和不解决依赖的包管理方式。它的最大特点就是安装灵活,目录结构严谨,版本力求稳定而非追新。Slackware的软件包都是通常的tgz(tar/gzip) 或者txz(xz) 格式文件再加上安装脚本。Tgz/Txz 对于有经验的用户来说,比RPM更为灵活,并避免了APT 之类管理器可能带来的的依赖地狱。

作为开源软件,Slackware与商业版本的关系并不大,但与几家提供付费支持的厂商一直保持的合作关系。作为最早的可用版本之一,Slackware Linux是由Patrick Volkerding开发的GNU/Linux发行版。与很多其他的发行版不同,它坚持KISS(Keep It Simple Stupid)的原则,就是说尽量不依赖配置系统的图形界面工具。其安装程序也是一些Dialog界面的shell脚本写成,你可以在安装的任何时候跳到任何安装步骤,而且这些脚本在安装之后也可以很方便的使用

Slackware与其他的发行版本(Red Hat、Debian、Gentoo、SuSE、 Mandriva、Ubuntu等)不同的道路,它力图成为“UNIX风格”的Linux发行版本。只吸收稳定版本的应用程序,并且缺少其他linux版本中那些为发行版本定制的配置工具。在当今systemd大势所趋的情况下,Slackware仍然坚持BSD启动风格。

Slackware主要为x86 PC开发,从2005年起开始出现针对System/390架构的官方移植。同时ARM、DEC Alpha、SPARC和PowerPC也存在一些非官方的移植。Slackware官方维护着一个开发版本(Slackware Current),不断有新的软件被加入到这个源,用户可以实现类似Archlinux的滚动升级,等到一个开发版本足够稳定,便会发布一个稳定版。Slackware是支持x86、amd64(即x86_64)、ARM、Alpha、SPARC、PowerPC的一套GNU/Linux操作系统,其正式发布由PatrickVolkerding 负责。

Linux发行版汇总

Jerry首作_linux基础

Linux各发行版的联系与区别:

联系:

  1. 各发行版本均采用Linux的内核(kernel);

  2. 各发行版本均遵守GPL版权协定;

  3. 各发行版本均遵循 Linux Standard Base (LSB)等标准来开发;

  4. 各发行版本均遵循FHS(File system Hierarchy Standard)标准规范;

区别:

  1. 不同的发行版采用的软件包管理方式不同;最有名的是 debain 的 deb 包,redhat 的 rpm 包,slackware 等的 tgz 包。

  2. 发行初衷不同,导致特点也不同,见下图:

Jerry首作_linux基础

三、Linux的哲学思想

  1. 一切皆文件

  2. 由众多的单一的程序完成一件比较复杂的工作,一个程序只做一件事,并且做好他。

  3. 尽量避免与用户交互

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

  5. 提供机制(可选的策略、是一种框架),而非策略,提供做大的灵活性。

四、Linux系统上常用命令的使用格式

命令的语法通用格式:

COMMAND OPTIONS ARGUMENTS

COMMAND说明

发起命令时将请求内核将某个二进制程序运行为一个进程,命令本身是一个可执行的程序文件,二进制格式的文件有可能会调用共享库文件。[遵循ELF格式规范]

多数系统命令程序文件都存放在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin,它们又分为普通命令和管理命令。

普通命令:存放在/bin,/usr/bin,/usr/local/bin

管理命令:存放在/sbin,/usr/sbin,/usr/local/sbin

用到的库文件都存放在:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64,它们分为32位和64位的库文件,32位使用于32位的操作系统,64位使用于64位的操作系统,64位兼容32位,而32不兼容64

32位库:存放在/lib,/usr/lib,/usr/local/lib

64位库:存放在/lib64,/usr/lib64,/usr/local/lib64

命令分为两类:

由shell自带的命令,叫作内嵌命令(builtin)

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

查看命令的内容的类型:

file命令:

例:~]# file /bin/ls

查看命令的类型:

type命令:

例:~]# type COMMAND

注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件

OPTIONS说明:

指定命令的运行特性,有两种表现形式:

短选项:-C,例如 ls -l ,-d 注:有的命令选项没有 – ,同一命令同时使用多个短选项可合并:ls -ld

长选项:–word,例如 ls –help,有时候选项也带参数,例:du -h –max-depth=1 注:长选项不能合并

ARGUMENTS说明:

参数:命令的作用对象,命令对什么生效,例:ls /etc ,作用在/etc 。注:有些命令可以可同时带多个参数,以空白分隔

常用命令示例:

ifconfig

作用:显示和配置网络信息

语法:ifconfig [网络设备] [参数]

示例:ifconfig -a

echo

作用:显示文本

语法:echo [-ne][字符串]或 echo [–help][–version]

示例:echo 'Hello World'

tty

作用:显示终端机连接标准输入设备的文件名称

语法:tty [-s][–help][–version]

示例:tty

startx

作用:进入图形操作界面

示例:startx &

export

作用:设置或显示环境变量

语法:export [-fnp][变量名称]=[变量设置值]

示例:

export JAVA_HOME = /home/myuser/jdk1.7.0_03
export PATH = $JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

pwd

作用:显示当前工作目录

语法:pwd[–help][–version]

示例:pwd

history

作用:列出bash保存的所有历史命令

语法:history [选项]

示例1:history

示例2:使用HISTTIMEFORMAT环境变量在历史中显示TIMESTAMP

命令:
export HISTTIMEFORMAT='%F %T '

history

输出如下:
642  2016-10-25 17:05:46 ll
643  2016-10-25 17:05:46 rm 333 
644  2016-10-25 17:05:46 ll /etc/fstab 
645  2016-10-25 17:05:51 history --help
646  2016-10-25 17:05:59 history -h
647  2016-10-25 17:06:14 man history
648  2016-10-25 17:07:53 history 
649  2016-10-25 17:07:57 export HISTTIMEFORMAT='%F %T '
650  2016-10-25 17:07:59 history

shutdown

作用:系统关机命令

语法:shutdown [-cfFhknr][-t 秒数][时间][警告信息]

示例:shuntdown -r +5

poweroff

作用:关机

语法:这个命令还说啥语法啊,生产环境上不要随便执行这个命令,否则会被捆绑、滴蜡、爆菊啊~~~~~

示例:poweroff

reboot

作用:重启

语法:运维常用作死命令之一,最好在头脑清醒的前提下执行。

示例:reboot

hwclock

作用:用来查询和设置硬件时钟

语法:

 -r, --show        读取并打印硬件时钟(read hardware clock and print result )
 -s, --hctosys     将硬件时钟同步到系统时钟(set the system time from the hardware clock )
 -w, --systohc     将系统时钟同步到硬件时钟(set the hardware clock to the current system time )

示例:

[root@centos ~]# hwclock -r
2016年10月25日 星期二 17时32分28秒  -0.671802 seconds

date

作用:取一个特定时间的linux时间戳

语法:date [参数]… [+格式]

示例:

[root@centos ~]# date
2016年 10月 25日 星期二 17:33:17 CST

五、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节时如何划分的

获取命令的使用帮助:

    内部命令:
        help COMMAND
    外部命令:
        (1) 命令自带简要格式的使用帮助
            # COMMAND –help
        (2) 使用手册:manual
            位置:/usr/share/man
            # man COMMAND

先执行type COMMNAD 识别是内部命令还是外部命令

        (3) info COMMAND
            获取命令的在线文档;

        (4) 很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION
            README:程序的相关的信息;
            INSTALL: 安装帮助;
            CHANGES:版本迭代时的改动信息;

        (5) 主流发行版官方文档
            http://www.redhat.com/doc

        (6) 程序官方的文档:
            官方站点上的“Document”

        (7) 搜索引擎
            google、baidu 

            keyword filetype:pdf   (输入文章类型更有针对性)
            keyword site:domain.tld

man 文档章节如何划分

使用手册:压缩格式的文件,有章节之分; /usr/share/man man1, man2, …

                    1:用户命令;  (普通用户和管理员)
                    2:系统调用;
                    3:C库调用;
                    4:设备文件及特殊文件;
                    5:文件格式;(配置文件格式)
                    6:游戏使用帮助;
                    7:杂项;
                    8:管理工具及守护进行;

请罗列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:用于存储内核模块的目录;

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

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

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

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

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

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

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

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

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

(0)
N24_JerryN24_Jerry
上一篇 2016-10-25
下一篇 2016-10-25

相关推荐

  • vim编辑器基本应用

    vi:Visual  Tnterface文本编辑器 vim:vi Improved vi的加强版 文本编辑种类:   行编辑器:sed   全屏编辑器:nano,vi,vim 其他编辑器::   gedit:一个简单的图形编辑器   gvim:一个vim编辑器的图形版本 vim使用格式 +# :打开文件后,直…

    Linux干货 2016-08-11
  • Linux Sysadmin–part3

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现 #!/bin/bash for i in `cut -d’:’ -f7 /etc/passwd`;do if [ $i == “/sbin/nologin…

    2017-09-19
  • OpenStack之keystone

    一、什么是OpenStack    OpenStack是一种云操作系统,它控制着一个数据中心里大量的计算、存储和网络资源。管理员在一个web界面内通过仪表盘方便地管理,控制,授权用户,以提供各种资源。 二、云服务分类 可分为IAAS, PAAS, SAAS等 IAAS:Infrastructure as a Service (操作系统级别…

    Linux干货 2017-01-19
  • awk学习笔记

    一、linux的文本处理器三剑客   文本过滤器:grep、egrep、fgrep   行编辑器:sed(模式空间;保持空间)   报表生成器:awk(格式化文本输出)gawk awk的工作流程: 从文本中读取一行内容,根据指定的分隔符;将读入的一行内容分隔成字段,然后格式化输出指定的字段 二、awk的命令相关的参数及用法 &n…

    Linux干货 2015-06-23
  • yum详解及源码包的编译安装

    yum的功能:     在我们使用rpm包安装程序时,各个程序包之间可能存在非常严重的依赖关系,这就导致我们在安装一个包的同时还需要安装其他存在依赖关系的包,因此我们可以使用rpm包的前端管理工具yum,可通过yum所支持的文件共享机制来解决各个rpm包之间的依赖关系。 yum仓库的配置文件:   …

    Linux干货 2016-08-25
  • 网络25期学习宣言

    马哥Linux运维学院 学习宣言 亲爱的小伙伴:        欢迎大家报名马哥Linux运维网络学习班,跟随马哥学习Linux技术,成就Linux大牛之梦。在这里,我们不仅可以学习到最优秀的技术课程,还可以跟着追梦的小伙伴们一起学习、一起进步。 为了督促大家一直积极认真努力的学习,请各位同学在评论区写出你的学习宣言。…

    Linux干货 2016-11-14

评论列表(2条)

  • N24_涩味
    N24_涩味 2016-10-26 14:47

    很棒,赞一个~

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

    加入了一些自己的理解,不错,希望可以熟知这些基础知识,加油,加油!