初识Linux操作系统

1、计算机:
接受用户的指令和数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或存储成有用的信息。
广义上讲:我们周边有好多宽泛概念上的计算机,如加减乘除计算机,手机,GPS,ATM等等。

2、计算机五大单元:
(1)输入单元:包括键盘,鼠标,扫描仪,手写板等。
(2)中央处理器(CPU):含有算术逻辑,控制,记忆等单元。
(3)输出单元:显示器,打印机。

3、冯诺依曼体系结构:
这里写图片描述
注意:这里的存储器是内存,CPU读取的数据是从内存中来的,CPU处理完成的数据,必须要先写回内存,最后数据才从内存传输的输出单元(忽略缓存)。

4、环境变量:
(1)什么是环境变量?
环境变量是在操作系统中具有一个特定名字的对象,它包含了一个或多个应用程序所将要使用到的信息。环境变量相当于给系统或用户应用程序设置了一些参数,具体什么作用与具体的环境变量有关。

(2)linux下的环境变量
linux是一个多用户的操作系统,每个用户登录系统之后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认的环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。
在linux中,环境变量一般用大写加下划线命名。环境变量就相当于一个指针,当我们要查看指针所指向的值的时候需要解引用,同样的,当我们要想查看环境变量里面的值的时候,需要在前面加$引用。
linux的变量分为环境变量和本地变量:
1)环境变量:是一种全局变量,存在所有的shell中,在登录的时候就有系统定义的环境变量了。linux的环境变量具有继承性,即shell会继承父shell的环境变量。
2)本地变量:当前shell中的变量,本地变量中包含环境变量。linux的本地变量的非环境变量不具备继承性。
在linux下面的变量按照生存周期可分为两类:
A、永久的:需要修改配置文件,变量永久的生效。
B、临时的:使用export命令声明即可,变量在关闭shell时失效。

(3)常见的环境变量
1)PATH:指定命令的搜索路径
【例】
这里写图片描述
说明:当我们在当前目录下执行一条命令时命令的搜索路径,每一个目录都是以一个目录都是以冒号隔开的。例如:当我们执行一个可执行程序时,系统就会在这个目录下去找,在这些目录下找到才执行,否则不执行。

2)HOME:指定目录的主工程目录(即用户登录到Linux系统时默认的目录)
A、普通用户下的主工作目录
【例】
这里写图片描述
B、root下的主工作目录
【例】
??

注:环境变量是一个变量,随着用户的不同,它的值也不同。

3)HISTSIZE:保存历史命令记录的条数
在Linux中可以查找以前输入的命令,HISTSIZE这个环境变量的值表示最多保存的记录的数目。
【例】
这里写图片描述
4)LOGNAME:显示当前用户的登录名
【例】
这里写图片描述
注:在root权限下仍然是显示登录用户“hongji”。

5)HOSTNAME:主机的名字
【例】
这里写图片描述
注:应用程序如果用到主机名,就用这个变量获取。

6)SHELL:指当前用户用的是哪种内核?
【例】
这里写图片描述
可以看到,当前用户使用的是/bin/bash。(?)

7)LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
【例】
这里写图片描述
注:
A、如果LANG环境变量是en_US.UTF-8,那么系统的菜单、程序的工具栏语言、输入法默认语言就都是英文的。

B、如果LANG环境变量是zh_CN.UTF-8,那么系统的菜单、程序的工具栏语言、输入法默认语言就都是中文的。

8)MAIL:当前用户邮件存放的目录。
【例】
这里写图片描述

9)PS1:命令基本指示符,对root是“#”,对普通用户是“$”。
【例】
这里写图片描述

10)PS2:附属指示符,默认是“>”。
【例】
这里写图片描述
注意:上述变量的名字并不是固定的。

(4)修改和查看环境变量的命令
1)echo:用于显示某个环境变量的值。

2)env:显示所有的环境变量。
【例】
这里写图片描述
说明:只取了一部分,可以看到上文提到的SHELL、HISTSIZE和HOSTNAME环境变量。

(3)set:显示本地定义的SHELL变量。
【例】
这里写图片描述
说明:上图只取一部分SHELL变量。

(4)export:设置一个新的环境变量。
注意,一般环境变量都用大写加下划线来命名。
【例】
这里写图片描述

(5)unset:清除环境变量
【例】
这里写图片描述

(6)readonly:设置只读环境变量
【例】
这里写图片描述
说明:创建一个只读的环境变量,不能再对它进行修改了。因为这是一个临时性的环境变量,所以在用户退出登录以后会自动失效。

(5)存放环境变量的文件
在linux中一切皆文件。所以环境变量也是存放在文件中的。linux中有很多记载环境变量的文件,他们是按照一定顺序被系统读入的。
1)/etc/profile:
这个文件是每个用户登录时都会运行的环境变量设置,当用户第一次登录时该文件被执行,并从/ect/profile.d目录的配置文件中搜索shell的设置。这个文件的作用就是当用户登录的时候用于获取系统的环境变量,只在登陆的时候获取一次。

2)/ect/bashrc:
在执行完/etc/profile内容后,如果用户运行bash shell的话,则就执行这个文件。当每次一个新的bash shell被打开时,该文件被读取。所以,如果想每打开一个bash都执行某些操作,就可以在这个文件里面设置。

3)~/.bash_profile:
每个用户都可以使用该文件输入自己专用的shell信息,当用户登录时,该文件仅仅被执行一次。默认情况下,他设置一些环境变量,执行用户的.bashrc文件。单个用户对于此文件的修改只会影响到他以后的每一次登录。

4)~/.bashrc:
该文件只包含专用于你的bash信息,当你登录时以及每次打开新的shell时,该文件就会自动被读取。

5)~/.bash_logout:
每次在退出shell的时候会执行该文件。它提供了定制用户环境的功能,比如删除账号内的临时文件等命令就可以放在bash_logout文件内。如果这个文件不存在的话则就执行其他的命令。

总结:
这些文件都是为了为用户配置环境变量提供的。可以看到/ect/profile就相当于构造函数,~/.bash_logout就相当于析构函数。 它们的关系如下图表所示:
这里写图片描述

5、文件类型
Linux下面所有东西都是文件,既然是文件,那么这些文件类型是如何进行区分的?
在windows下面是通过文件的扩展名来区分文件类型的,但是在linux中却不是这儿样的。在linux中就没有所谓的文件扩展名,一个linux文件能不能被执行时取决于它的属性中是否有x,与文件名一点关系都没有。一般我们所看到的文件扩展名只是为了给我们用户自己看的。

提到文件就不得不先来简单了解一下inode。
1)inode的概念:
索引结点,用来存放文件的基本信息。inode是unix/linux操作系统中的一种数据结构,本质上是一个结构体,里面定义了一些变量,这些变量用来记录与文件相关的信息。在操作系统创建文件系统的时候就会创建大量的inode。
2)inode这个结构体包含以下信息:
A、inode编号;
B、用来识别文件类型,以及用于stat C函数的模式信息;
C、文件的链接数;
D、属主的UID;
E、属主的组的ID(GID);
F、文件的大小;
G、文件所使用的磁盘块的实际数目;
H、最近一次修改的时间;
I、最近一次访问的时间;
J、最近一次更改的时间。
可见,除了文件名以及文件内容以外,inode包含文件的所有信息,所以说文件名在linux下面是没有多大作用的。一般我们对某个文件进行操作是,是先找这个文件所连接的inode,然后用inode编号对文件进行操作,但是当我们知道inode编号有的时候是不能得到文件名的。

(1)Linux下的文件类型:
1)普通文件(regular file)第一个字符为“-”
【例】
这里写图片描述
上面的文件属性中,以”-“开头的,就表示它是一个普通文件。

普通文件包括三种:
A、纯文本档:这是Linux系统中最多的一种文件类型。称为纯文本档,是因为其内容为我们人类可以直接读到的数据,如数字和字母等等。
B、二进制文件(binary):Linux中的可执行文件就是这种格式(scripts文字型批处理文件不算)。
C、数据格式文件(data):有些程序在运作的过程中会读到某些特定格式的档案,那些特定格式的档案就被称为数据文件(data file)。一般用cat看到的都是乱码。

2)目录(directory):第一个字符为[d]。
在linux下的一切都是以文件的形式存在的,所以目录也属于文件,即目录文件。
【例】
这里写图片描述

3)连接文件(link):第一个字符为[l]。
【例】
这里写图片描述

4)设备和设备文件
设备文件分为块设备文件和字符设备文件。我们进入/dev目录就会看好多这种文件。dev是device的简写,就是“设备”的意思。Linux把每个硬件也看作是一个文件,因此会有/dev/sda1的写法.

A、字符设备文件:以”c”开头的文件,就是一些串行端口的接口文件,比如键盘、鼠标等。
【例】
这里写图片描述

B、块设备文件:即一些存储文件,如硬盘、软盘等,第一个字符为[b]。
【例】
这里写图片描述

5)套接字(socket)第一个字符为[s]
套接字文件还被称为数据接口文件,这种类型的文件通常被用在网络上的数据连接。我们可以启动一个程序来监听客户端的请求,而客户端就可以通过数据接口文件来进行数据通信。
【例】
这里写图片描述

6)管道(FIFO,pipe):第一个字符为[p]
管道文件也是一种特殊的文件类型也叫作数据输送文件,它主要的目的是解决多个程序同时访问一个文件所造成的错误问题,解决的方法就是FIFO(first-in-first-out)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值