目录
计算机存储:寄存器,高速缓存,内存和硬盘
冯诺依曼体系结构
这里存储器就是内存
半导体存储器
数据在计算机中,存储在硬盘,内存,高速缓存和寄存器上。
四者根据速度和存储量,有如下表示:
一文辨析清楚计算机存储器概念
1. 什么是操作系统?
正式定义:负责管理计算机的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统的系统软件。
通俗定义:是一个系统软件,拥有资源管理和用户接口功能,表现为不同程序模块的集合。
操作系统介绍
2. 什么是服务器?
服务器英文名称为“Server”,指的是网络环境下为客户机(Client)提供某种服务的专用计算机。
服务器介绍
3. 什么是节点?
节点是一个术语,代指一类设备。他们可以是主机(pc),服务器,也可以是构成传输网络的交换机,路由器,防火墙等等。
在网络中,节点是指一台电脑或其他设备与一个有独立地址和具有传送或接收数据功能的网络相连。节点可以是工作站、客户、网络用户或个人计算机,还可以是服务器、打印机和其他网络连接的设备。每一个工作站﹑服务器、终端设备、网络设备,即拥有自己唯一网络地址的设备都是网络节点。整个网络就是由这许许多多的网络节点组成的,把许多的网络节点用通信线路连接起来,形成一定的几何关系,这就是计算机网络拓扑。
节点与服务器的关系?
在一个集群里,一个服务器就是一个节点。单个服务器没必要叫做节点。
4. 什么是虚拟机?
通过虚拟化技术,在电脑内,虚拟出计算机硬件,并给虚拟的硬件安装操作系统,即可得到一台虚拟的电脑,称之为虚拟机。
我们可以通过提供虚拟化的软件来获得虚拟机,如VMWare。
5. Linux的组成
Linux系统的组成如下:Linux系统内核、系统级应用程序
- 内核提供了Linux系统的主要功能,如硬件调度管理的能力,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等。Linux内核是免费开源的,任何人都可以查看内核的源代码,甚至是贡献源代码。
- 系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如: 文件管理器、任务管理器、图片查看、音乐播放等。
内核无法被用户直接使用,需要配合应用程序才能被用户使用。在内核之上,封装系统级应用程序,组合在一起就称之为Linux发行版。
6. 网络连接的几种模式
1.(bridged)桥接模式
简介:虚拟主机的ip和本地主机ip可以互相访问,虚拟机也可以访问互联网,虚拟机相当于互联网中的一台主机,
详解:什么是桥接模式?桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致.如下图所示:
不适用:如果你的网络环境是ip资源很缺少或对ip管理比较严格的话,那桥接模式就不太适用了
2.NAT(地址转换模式)模式
简介:虚拟机可以访问互联网和本地(物理)主机,但本地主机不可以访问虚拟机。
详解:NET模式借用虚拟NET设备和虚拟DHCP服务器是虚拟机可以访问互联网(联网)
如下图:
在NET模式下主机网卡与虚拟net设备连接,然后net设备和DHCP服务器连接虚拟Vmnet8交换机实现虚拟机连接网络,连接网络不是通过vmnet网卡VMnet网卡是实现主机与虚拟机通信
3.主机(host-only)模式:
简介:虚拟机不可以访问本地主机互联网,发现虚拟机和本地(物理)主机网络是隔离的
详解:Host模式就是去除net设备的net模式,虚拟交换机通过虚拟vmnet1网卡与主机网卡连接进行通信,host-only模式就是将虚拟机与外网隔离使虚拟机成为一个独立的系统,只和主机进行通信如图所示:
7. Linux的目录结构
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘
Linux的目录结构是一个层级式的树型结构,Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面
7. Linux指令
vi和vim
vim的三种模式:
- 一般命令模式(Command mode)
- 编辑模式(Insert mode)
- 命令行模式(Command-line mode)
Linux关闭及重启方式
注意:关机和重启之前最好先数据数据同步一下——“sync”
// 将数据由内存同步到硬盘
sync
用户登录/注销
用户管理
Linux的运行级别
init [0~6]
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS)
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
其中3和5最常用,3公司常用,节省资源
linux找回root密码
方法一:(针对CentOS7.6以后版本)
linux找回root密码(CentOS7.6)
帮助指令
文件目录
文件目录1
这里特地提一下 cd 指令,之前一直不知道 “~” 是 什么意思,为什么 “~”下 ls -l 显示的文件信息 ,和 cd / 再 ls -l 后显示的不一样。“~”是什么呢?
原来“~” 代表的是 用户主目录
cd ~
等同于
cd /root
如下图所示:两者的文件详情是一样的。
文件目录-输出重定向
语法 : 例子 | 作用 |
---|---|
[命令] > [文件] : ls > a.txt | 以覆盖的方式, 将命令的正确输出结果指定到文件或设备中 |
[命令] >> [文件] : ls >> a.txt | 以追加的方式, 将命令的正确输出结果指定到文件或设备中 |
文件目录-软连接和历史命令
时间日期类
date指令-显示当前日期
基本语法
date (功能描述:显示当前时间)
date+%Y (功能描述:显示当前年份)
date +%m (功能描述:显示当前月份)
date +%d (功能描述:显示当前是哪一天)
date “+%Y-%m-%d %H:%M:%S” (功能描述:显示年月日时分秒)
应用实例
案例1: 显示当前时间信息
date
案例2: 显示当前时间年月日
date "+%Y-%m-%d
案例3:
显示当前时间年月日时分秒
date “+%Y-%m-%d %H:%M:%S”
date指令-设置日期
基本语法
data -s 字符串时间
应用实例
案例1:设置系统当前时间,比如设置成2020-11-03 20:02:10
date -s “2020-11-03 20:02:10”
该如何恢复为自动的时间呢?输入:
hwclock -s
cal指令
查看日历指令 cal
基本语法
cal [选项] (功能描述:不加选项,显示本月日历)
应用实例
案例1:显示当前日历
cal
案例2:显示2020年日历:
cal 2020
搜索查找类
find指令
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
基本语法
find [搜索范围] [选项]
选项说明
应用实例
案例1:按文件名:根据名称查找/home目录下的 hello.txt文件
find /home -name hello.txt
案例2:按拥有者:查找/opt目录下,用户名称为root的文件
find /opt -user root
案例3:查找整个linux系统下大于200M的文件(+n大于,-n小于,n等于,单位有k,M,G)
find / -size +200M
权限不够是因为不是登录的管理员身份
locate指令
locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻
基本语法
locate 搜索文件
特别说明
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb
指令创建locate数据库。
应用实例
案例1:请使用locate指令快速定位 hello.txt文件所在目录
updatedb
locatehello.txt
这里使用updatedb指令可能会涉及到权限问题,最好切换到root管理员身份
which 指令,可以查看某个指令在哪个目录下,比如 ls指令在哪个目录
which ls
grep指令和管道符号 |
grep 过滤查找,管道符,“”,表示将前一个命令的处理结果输出传递给后面的命令处理。
基本语法
grep [选项] 查找内容源文件
常用选项
应用实例
案例1:请在 hello.txt文件中,查找"hello”所在行,并且显示行号
写法1:
cat /home/hello.txt l grep"hello"
写法2:
grep -n “yes”/home/hello.txt
压缩和解压类
gzip/gunzip 指令
gzip 用于压缩文件, gunzip用于解压的
基本语法
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
应用实例
案例1:gzip压缩,将/home下的hello.txt文件进行压缩
gzip /home/hello.txt
案例2: gunzip压缩,将/home下的 hello.txt.gz文件进行解压缩
gunzip /home/hello.txt.gz
zip/unzip 指令
zip用于压缩文件,unzip 用于解压的,这个在项目打包发布中很有用的
基本语法
zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip(功能描述:解压缩文件)
zip常用选项
-r:递归压缩,即压缩目录
unzip的常用选项
-d <目录>:指定解压后文件的存放目录
应用实例
案例1:将/home下的所有文件/文件夹进行压缩成myhome.zip
zip -r myhome.zip /home[将home文件夹及其包含的文件和子文件夹都压缩]
案例2:将myhome.zip解压到/opt/tmp目录下
mkdir /opt/tmp
unzip-d /opt/tmp /home/myhome.zip
tar指令
文件权限
文件所属角色的概念
-
在Linux系统中,存在两种类型的用户,分别是root用户和普通用户。它们在系统中具有不同的权限和角色:
root用户: root是Linux系统中的超级用户或管理员。它拥有对系统的完全控制权限,可以执行系统中的所有操作,包括安装软件、修改配置文件、管理用户账户和进行系统维护等。root用户是最高权限的用户,可以访问系统中的所有文件和目录,并且可以对它们进行任何修改和操作。因此,使用root用户需要极高的谨慎性,因为任何误操作都可能导致系统的不可逆损坏。
普通用户: 普通用户是系统中除root用户之外的所有用户。普通用户在系统中拥有受限的权限,通常只能访问自己的文件和一些系统资源。普通用户可以执行系统管理员授予的有限操作,如安装特定的软件、访问特定的目录以及执行特定的命令。普通用户通常无法对系统关键文件进行修改,这是为了确保系统的安全性和稳定性。 -
在linux中的每个用户必须属于一个组,不能独立于组外。每个文件有所有者、所在组、其它组的概念:
所有者: 每个文件/目录都是有其所有者的。一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者,文件的所有者可以改。
所在组: 谁创建了文件,这个文件就属于创建者所在的组,同一个组的用户对文件拥有相应的权限。如果创建用户的时候没有为其指定组,则会默认创建一个与用户同名的组并指定用户到该组当中。文件的所在组也可以修改。
其他组: 文件所在组意外的组即其他组,其他组中的用户对文件也有一定的权限。
查看文件/目录 的 所有者/所在组
ls -ahl
修改文件、目录所有者
指令 | 功能 |
---|---|
chown user1 hello.txt | 改变文件hello.txt的拥有者为user1 |
chown user2 dir3/ | 修改目录的拥有者 |
chown -R user2 dir3/ | 递归更改包括dir3/下面的所有文件和目录的所有者 |
chown user1:group1 hello.txt | 修改文件hello.txt的所有者为user1,所在组为group1 |
修改文件/目录所在组
指令 | 功能 |
---|---|
chgrp group2 hello.txt | 设置hello.txt的所在组 |
chgrp group2 dir3/ | 设置目录dir3的所在组 |
chgrp -R group2 dir3/ | 递归使得dir3下面所有的文件和目录的所在组为group2 |
注意!!!修改文件/目录所在组 和修改用户所在组是不一样的!!
修改用户所在组:usermod -g group1 user1
文件权限基础知识
在Linux中,每个文件和目录都有与其相关联的权限。权限类型包括读取(Read)、写入(Write)和执行(Execute)。这些权限由一串字符来表示,通常是由10个字符组成,包括一个文件类型标识和9个权限位。权限位分为三组,分别代表文件所有者、同组用户和其他用户的权限。
- 读取权限(Read): 用二进制位表示为 100,对应数字为 4,对应字符为 r。
- 写入权限(Write): 用二进制位表示为 010,对应数字为 2,对应字符为 w。
- 执行权限(Execute): 用二进制位表示为 001,对应数字为 1,对应字符为 x。
ll
指令后
更改文件或目录权限
指令: chmod [选项] 模式 文件名
选项: chmod命令可以与不同的选项一起使用,常见的选项包括递归修改权限(-R)。
模式: 模式用于指定要授予或撤销的权限。可以使用符号模式(如u+r,g-w,o+x)或数字模式(如777,644)来表示权限。
文件名: 文件名是您想要更改权限的文件或目录的名称。
符号模式
部分 | 选项 | 含义 |
---|---|---|
操作对象 | u | 文件所有者 |
操作对象 | g | 文件所属用户组 |
操作对象 | o | 其他用户 |
操作对象 | a | 所有用户,系统默认值 |
操作符号 | + | 添加摸个权限 |
操作符号 | - | 取消某个权限 |
操作符号 | = | 赋予给定权限并取消原有权限 |
权限 | r | 读取权限 |
权限 | w | 写入权限 |
权限 | x | 执行权限 |
数字模式
部分 | 选项 | 含义 |
---|---|---|
权限 | r | 读取权限,数字4 |
权限 | w | 写入权限 数字2 |
权限 | x | 执行权限 数组1 |
实例:
符号模式:
chmod a+x test.txt
数字模式:
chmod 655 test.txt
文件夹和文件的权限
rwx权限 | 对文件的作用 |
---|---|
读权限(r) | 表示可读取此文件中的实际内容,例如,可以对文件执行 cat、more、less、head、tail 等文件查看命令。 |
写权限(w) | 表示可以编辑、新增或者修改文件中的内容,例如,可以对文件执行 vim、echo 等修改文件数据的命令。 |
执行权限(x) | 表示该文件具有被系统执行的权限。在 Linux 系统中,文件是否能被执行,是通过看此文件是否具有 x 权限来决定的。 |
rwx权限 | 对目录的作用 |
---|---|
读权限(r) | 表示具有读取目录结构列表的权限,也就是说,可以看到目录中有哪些文件和子目录。一旦对目录拥有 r 权限,就可以在此目录下执行 ls 命令,查看目录中的内容。 |
写权限(w) | 对于目录来说,w 权限是最高权限。对目录拥有 w 权限,表示可以对目录做以下操作:增删改。一旦对目录拥有 w 权限,就可以在目录下执行 touch、rm、cp、mv 等命令。 |
执行权限(x) | 目录是不能直接运行的,对目录赋予 x 权限,代表用户可以进入目录,即赋予 x 权限的用户或群组可以使用 cd 命令。 |