linux理解

Linux

程序语言的分类:根据运行方式
编译运行:源代码(字符串,数字)→编译器程序(编译)→程序文件(二进制格式)。运行程序文件编译器是不需要参与的,事先把整个源代码统统的处理一遍,直接转换成程序文件。cpu只能识别二进制程序文件,并运行。
解释运行:源代码(字符串,数字)→运行时启动解释器程序,由解释器边解释边运行,把整个源代码当中的内容,当作解释器要处理的数据(运行的程序,参数)→程序文件
shell 是 解释器的一种

程序=指令+数据
程序=算法+数据解构

程序的3种执行逻辑
顺序执行(从上至下,依次执行) 类似 acl
选择执行(利用布尔函数 真\假,当代码中的值符合程序中某个设定好的条件时,将执行相对应的代码)if else
循环执行(将循环体中的代码,按照编译好的循环条件进行循环执行) for while

根据其编程过程中功能的实现,是否调用(库还是外部的程序文件) 一种是自给自足(完整编程语言),另一种是需要外部调用(非完整编程语言)。
shell脚本编程:(非完整编程语言)利用系统上的命令及编程组件。

完整变成语言:程序语言自己并不需要操作系统上必须纯在的命令,完整编程语言利用库或编程组件进行编程。

编程模型:

过程式编程语言,面向对象的变成语言

过程式编程语言:以指令为中心来组织代码,数据是服务于代码,根据代码的需要来组织数据结构。
过程式编程语言是以三种程序执行逻辑结合算法组织数据从而实现较大的编程功能。
对象式编程语言:以数据为中心来组织代码,围绕数据来组织指令。python
对象编程语言要生成n个对象,每一个对象(特点的数据类型,数据模式),对象式编程语言在程序运行过程时要编写类代码。
类代码(class)类是现实生活中事物的共同特征(抽象总结出来的特点)类的实例化是对象对象,房子是图纸 对象是由图纸制造出来的房子。

kernal(内核)就是操作系统,负责驱动底层硬件,管理上层的应用程序(内核中间调度员,管上又管下,内核不负责具体的满足用户需要的工作(应用程序),而是把底层硬件提供的功能合理的分配好,为上层应用程序分配使用底层硬件提供的各种资源。
Cpu 采用分时复用为上层的应用程序轮询使用(例:有10个应用程序,以一秒为时间范围,每个程序占用cpu的时间为0.6秒)此工作由内核来完成 。
内存:内核把磁盘中的程序文件内存中,生成可供管理的运行的动态程序。应用程序在使用过程中需要使用内存,内核把内存采用空间分割的技术,把内存分割成多块小的内存,供多个应用程序共同使用内存。

应用程序

用户接口程序

Kernal: 承上启下,驱动底层硬件
管理上面基于操作系统的应用程序。

硬件:cpu 内存 硬盘 i/o

每个应用程序是相互独立的在内核上,每个应用程序互不影响,内核为每个应用程序建立了独自的硬件资源(cpu 内存 i/o ) 内核是应用程序和硬件之间进行资源的分配,管理,调度(内存 cpu 硬盘 i/o)。
kernal 把底层的硬件提供资源驱动起来,并把硬件提供的支援抽象成更简单的资源(能存,能取,能运算,不用考虑底层硬件是如何工作,只知道内核能把硬件的功能驱动起来并且提供给上层的应用程序) 内核负责使硬件之互相独立运行并且能互相协同工作。

api :用户面对的接口,用户通过api来与应用程序进行交互。

abi:程序员面对的接口,程序员通过abi进行程序的编译。

用户 :cli(命令行接口)/ gui(图形用户接口) 两种用户接口程序,终端用户通过用户接口程序与内核进行互相操作。 gui是基于kernal 的应用程序,运行时更消耗kernal提供的硬件的资源。
安装图形界面 yum groupinstall "X windows system" Desktop startx

目录是文件所在的地址信息,目录信息最左侧一段字符串是基名 ,最终目的地。基名以外的右侧是路径信息。 “/ ” 路径分隔符用来划分路径(选路时使用,有叉路就用/
目录是文件的地址映射,通过目录来找到文件。 (目录是一条路径/一块空白的平台,可以在平台上建立建筑物[文件],有了目录就可以去往想去的目的地或在指定位置建立[建筑物 文件]。
文件:存储在磁盘空间的一段流式数据,文件特点是有边界有名字,不能往下分层的。 目录这是可以分层的有层级关系的
linux是倒置的树状结构系统 树的根是 "/ ”root (根结点) 树的树枝是 目录(路径映射) 树的树叶是 文件(有边界有名字)。
/=大门 路径=目录 景点=文件

                     Linux 常用命令理解:

linux的内容:linux中一切皆文件,linux里的内容都是文 件,linux的所有的内容,都是以文件形式表现出来,linux中都是文件,硬件设备也是以文件形式在linux中体现出来,linux中可以不带有文件名(没有文件名),文件名就是后缀,为了文件和目录能更好的区分。

命令的基本格式 [ root(当前用户)@localhost(主机名) / (当前所在的目录,根目录)] ← (命令提示符)
[ 命令提示符] #/$ (用户身份信息) #管理员身份 对应的数字是0(只有一个)
$普通用户 对应的数字是1~65535(6万多个)
在命令提示符的左侧 第一个单词的缩写一定是命令 ls ll pwd cd mv df cp
这些不同的命令对于不同的逻辑(不同的功能)
用户想实现什么功能就要 把自己的想法(逻辑)通过命令来实现出来(功能) 想法=命令 ,会了命令就可以实现自己的想法

Cd:走(逻辑) 要想在 linux系统的各个目录(路径)中行走,就要使用cd,cd就腿去哪里就用cd命令,去哪就用cd腿。
ls和ll 是 眼睛:看目录和看目录和文件的详细信息,ls是看路径(目录)和景点(文件)其中ls 命令中的 -a 是查看隐藏目录(隐藏路径隐藏小路) ls 中的 -l 是看 路径和景点的详细信息。 Ls -l 看详细信息 (目录,文件) 路径 文件 的详细信息 路径 文件 的大小 所在位置。
pwd:我在哪里 当用户知道自己所在什么位置时输入 pwd 显示用户所在的位置,在某个路径上(目录里)。Pwd :用户的当前位置。
mv: 剪切是搬运术,剪切不同于复制粘贴(粘贴是保留原文件把原文件保留的同时,复制出一份到指定目录中 复制是分身术 分身术是原体还在还能分出另一个与原来一模一样的东西)剪切是搬家把原有的文件剪切(搬家)搬到指定的目录当中(指定位置指定路径),这就需要 源地址和目的地址,从哪搬搬到哪,在原地位置搬家就是改名字,该文件名字(建筑物的名字)。

猜你喜欢

转载自blog.51cto.com/13214983/2153104