Linux
一,计算机
计算机五大单元:
1,输入单元:包括键盘,鼠标,扫描仪,手写板等。
2,中央处理器(CPU):含有算数逻辑,控制,记忆等单元。
3,输出单元:显示器,打印机等。
计算机处理过程:
冯诺依曼体系结构
存储器指内存,
CPU读取的数据都是从内存中来的,CPU处理完成的数据必须要先写回内存,最后才从内存传输到输出单元(忽略缓存)。
二:环境变量
环境变量的概念:
Linux是个多户的操作系统。 多户意味着每个户登录系统后,都有专的运环境。这个环境是由组变量所定义,这组变量被称为环境变量。 户可以对的环境变量进修改以达到对环境的要求。
环境变量的功能:
环境变量是和Shell紧密相关的,它可以通过Shell命令来设置。环境变量可以被所有当前户所运的程序所使。对于bash来说,可以通过变量名来访问相应的环境变量。环境变量相对于给系统或用户应用程序设置的一些变量, 具体起什么作用这当然和具体的环境变量相关。
常见的环境变量:
1.PATH:指定命令的搜索路径
2.HOME:指定户的主作目录(即户登陆到Linux系统中时,默认的目录)
3.HISTSIZE:指保存历史命令记录的条数。
4.LOGNAME:指当前户的登录名。
5.HOSTNAME:指主机的名称,许多应程序如果要到主机名的话,通常是从这个环境变量中来取得 的。
6.SHELL:指当前户的是哪种Shell。
7.LANG/LANGUGE:和语相关的环境变量,使多种语的户可以修改此环境变量。
8.MAIL:指当前户的邮件存放目录。
9.PS1:命令基本提符,对于root户是#,对于普通户是$。
10.PS2:附属提符,默认是“>”。
如下:
注意:上述变量的名字并不固定,如HOSTNAME在某些Linux系统中可能设置成HOST
Linux也提供了修改和查看环境变量的命令!下通过个实例来说明:
1.echo 显某个环境变量值 echo $PATH
2.export 设置个新的环境变量 export HELLO="hello" (可以引号)
3.env 显所有环境变量
4.set 显本地定义的shell变量
5.unset 清除环境变量 unset HELLO
6.readonly 设置只读环境变量 readonly HELLO
例如我们可以用env来查看当前系统下的所有环境变量
三,Linux文件类型
1.普通件( regular file) 第个字符为[ - ]
包括:
①纯本档(ASCII):这是Linux系统中最多的种件类型,称为纯本档。是因为内容为我们类可以直接读到的数据,例如数字、字等等。
②进制件(binary): 你的Linux中的可执件(scripts, 字型批处理件不算)就是这种格的。
③数据格式件(data):有些程序在运作的过程当中会读取某些特定格式的档案,那些特定格式的档 案可以被称为数据件 (datafile)。般cat看到的都是乱码。
2.目录(directory): 第个字符为[ d ]
3.连接件( link)第个字符为[ l ]
4.设备和设备件
块设备件,即些存储件,如硬盘、软盘等,第个字符为[ b ]
字符设备件,即些串端的接件,如键盘、标等,第个字符为[ c ]
5.套接字( sockets)第个字符为[ s ]
还被称为数据接件,这种类型的件通常被在络上的数据连接。我们可以启动个程序来监听客户端的请求,客户端就可以通过数据接件来进数据通信。
6.管道( FIFO, pipe)第个字符为[ p ]
FIFO也是种特殊的件类型,他主要的目的解决多个程序同时访问个件所造成的错误问题,
first-in-first-out。
在Linux里一切皆文件!!!!
四,Linux权限管理
1、件访问者的分类()
a)件和件目录的所有者: u---User(中国平民 法律问题)
b)件和件目录的所有者所在的组的户: g---Group(不多说)
c)其它户: o---Others (外国)
2、件访问权限的种类(事物属性)
a)、基本权限
i.读( r/4):Read对件,具有读取件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写( w/2):Write对件,具有修改件内容的权限;对目录来说具有删除移动目录内件权限
iii.执( x/1):execute对件,具有执件的权限;对目录来说,具有进目录的权限
iv.“—”表不具有该项权限
b)、特殊权限
i.suid (s/4) :只能应在可执件上,允许任意户在执件时以件拥有者的份执
ii.sgid (s/2):只能应在可执件上,使任意户在执可执件时,将以拥有组成员的份执
iii.粘着位( t/1):只能应在目录件上,将使户在目录中执删除时,只能删除拥有的对象
五,shell
Linux shell指令运的原理:
Linux严格意义上说的是个操作系统,我们称之为“核( kernel) “ ,但我们般户,不能直接使kernel。是通过 kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
这点类似于男女双方没有见过面,通过媒婆来互相传递消息。这里的媒婆就是shell。
如何理解?为什么不能直接使kernel?
从 技 术 度 , Shell的 最 简 单 定 义 : 命 令 解 释 器( command Interpreter)
主要包含:
a. 将使者的命令翻译给核( kernel)处理。
b. 同时,将核的处理结果翻译给使者。
对windows GUI,我们操作windows 不是直接操作windows内核,是通过图形接,点击,从完成我们的操作(如进D盘的操作,我们通常是双击D盘盘符.或者运起来个应程序)。
shell 对于Linux,有相同的作,主要是对我们的指令进解析,解析指令给Linux内核。反馈结果在通过内核运出结果,通过shell解析给户。
shell的普遍作
UNIX的shell程序解释户的命令, Shell脚本是解释型的,不是编译型的。除了向内核传送命令之外, shell的主要任务是提供个可单独配置的使shell资源配置件的户环境。
shell如何运程序
shellfork建新进程,execv函数簇在新进程中运户指定的程序,最后shellwait命令等待新进程结束。 wait系统调同时从内核取得退出状态或者信号序号以告知进程是如何结束的。