背景知识
计算机:接受用户的指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或者存储成有用的信息。
计算机包括:
(1)输入单元:如键盘,鼠标,扫描仪,手写板等。
(2)中央处理器(CPU):含有算术逻辑,控制,记忆等单元。
(3)输出单元:显示器,打印机。
注意:此处的存储器表示的是内存
CPU读取的数据都是从内存中来的,CPU处理完成的数据,必须要先写回内存,最后数据才从内存传输到输出单元(忽略缓存)
环境变量的认识
Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。
为方便修改和查看环境变量,先来介绍一下修改和查看环境变量的命令:
(1)echo 显示某个环境变量值
(2)export 设置一个新的环境变量
(3)env 显示所有环境变量
(4)set 显示本地定义的shell变量
(5)unset 清除环境变量
(6)readonly 设置只读环境变量
Linux中常见的环境变量:
(1)PATH:指定命令的搜索环境 echo $PATH
(2)HOME:用户的主工作目录
(3)HISTSIZE:指保存命令的历史条数
(4)LOGNAME:当前用户的登录名
(5)HOSTNAME:主机的名称
(6)SHELL:当前用户使用的那种shell
(7)PS1:命令基本符$
(8)PS2:附属提示符> (提示当前命令没有输完)
3. Linux的文件类型
(1)普通文件(纯文本文件,二进制文件,数据格式文件) 第一个字符为[-]
(2) 目录 第一个字符为[d]
(3)连接文件(软连接,硬连接) 第一个字符为[l]
(4)设备和设备文件(块设备[b],字符设备[c])
(5)套接字(数据接口文件) 第一个字符为[s]
(6)管道(FIFO) 第一个字符为[p]
4. Linux的扩展名
基本上Linux的文件时没有所谓的“扩展名”,一个Linux文件能不能被执行,只于它的第一列的10个属性有关,与文件名根本一点关系都没有。只要当你的权限当中具有x的话,代表这个文件可以被执行。
不过能不能执行成功并不知道。所以说这个x只能代表这个文件具有可执行的能力,但能不能执行成功,得看文件中的内容。
如[drwxr-xr-x] 这个文件可执行。
虽然扩展名不起作用,不过人们还是习惯用扩展名来了解该文件时什么东西。
.sh :脚本或者批处理文件
.z .tar .tar.gz .zip .tgz : 经过打包的的压缩文件
.html .php :网页相关文件
4. Linux shell指令运行原理
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)”,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell来与kernel沟通。
从技术角度上讲,shell的最简单定义:命令行解释器
主要包括:
(1)将使用者的命名翻译给核心处理
(2)同时,将核心的处理结果翻译个使用者
shell对于Linux来说,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
shell如何运行程序?
shell用fork建立新进程,用execv函数簇在新进程中运行用户指定的程序,最后shell用wait命令等待新进程结束。wait系统调用同时从内核取得退出状态或者信号序列以告知子程序是如何结束的。
5. Linux权限管理(一件事允许被谁做?人,事物属性)
(1)文件访问者的分类(人)
<1>文件和文件目录的所有者 : u---User
<2>文件和文件目录的所有者所在的组的用户 : g---Group
<3>其他用户: o---Others
(2)文件访问权限的种类(事物的属性)
<1>基本权限
i. 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv. "-"表示不具有该项权限
如 [drwxr-xr-x]
d---目录
三个三个分开表示 拥有者---组---其他
rwx r-x r-x
拥有者:具有可读可写可执行的权限
组:具有可读不可写可执行权限
其他:具有可读不可写可执行权限