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

相关推荐

  • python分支循环和列表

    if语句 if condition: 代码块 condition必须是一个bool类型,这个地方有一个隐式转换bool(condition) if 1<2: print(‘1 less than 2’)   循环——while语句 while condition: block 当条件满足即condition为True,…

    2018-03-27
  • 查找find命令简介

       之前都是写一些关于课后练习题的博客,既练习了课后习题也把博客写了,舒服!不过这周学的知识需要练习的不多,更多的是需要了解和记忆,所以给大家介绍一个自我觉得挺强大的一个命令,那就是查找find命令。大家都知道计算机的数据茫茫多,要想找到自己想要的级必须加点限制性的条件来缩小一下范围,或者准确的告诉计算机你想要的是什么。那么怎么来实现呢…

    2017-08-12
  • 马哥教育网络班21期-第六周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 vim编辑器的使用 vim模式:  a,编辑/命令模式;  b,insert/输入模式  c,末行模式 打开文件:  vim    [option]…    file…  +#:打开文件后,直接让光标…

    Linux干货 2016-08-22
  • 2016-08-12博客作业

    德摩根定理       在命题逻辑和逻辑代数中,德摩根定律(或称德摩根定理)是关于命题逻辑规律的一对法则。奥古斯塔斯·德摩根首先发现了在命题逻辑中存在着下面这些关系: 非(P 且 Q)=(非 P)或(非 Q) 非(P 或 Q)=(非 P)且(非 Q)     …

    Linux干货 2016-08-15
  • 用户与组管理

    如何成为linux用户?     在linux系统中,要想从系统中获取资源、对系统进行管理和控制,就需要向系统申请一个账号,从而实现特定用途,当申请到账号后,要对它设置口令,这样用户账号就申请成功了,然后可以登陆系统,当用户登陆系统时,需要通过系统的认证,认证成功后才给予授权,在用户的使用过程中还会对用户进行审计。 为什么要设置…

    Linux干货 2016-08-08
  • 文件查找locate和find

    locate 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 依赖于事先构建的索引 索引的构建是在系统较为空闲时自动进行(周期性任务),管理员手动更新数据库(updatedb) 索引构建过程需要遍历整个根文件系统,极消耗资源 工作特点: •查找速度快 •模糊查找 •非实时查找 •搜索的是文件的全路径,不仅仅是文件名 •…

    2017-08-11

评论列表(2条)

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

    很棒,赞一个~

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

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