Linux笔记——搜索命令find、解压缩命令、vi编辑器、用户权限命令、系统信息相关命令讲解
Linux笔记——进程管理与网络监控技术讲解
Linux笔记——磁盘进行分区与挂载介绍_linux 挂载分区
Linux笔记——管道相关命令以及shell编程
Linux笔记——rpm与yum下载软件命令介绍
文章目录
前言
一 linux的内核与发行版的区别与联系
1.1 内核介绍
1.2 发行版介绍
二 虚拟机介绍
2.1 概述
2.2 网络配置
a. 网络原理
b. ens33简单介绍
补充内容
第一版解释
第二版解释
c. 特殊符号的含义
d. 了解 网卡 和ip地址的概念
e. 查看网卡信息
2.3 windows 与 linux里面的文件系统
2.3.1 linux目录结构
编辑
2.3.2Linux文件系统
(1)根目录(/)
(2)执行文件目录(/bin)
(3)开机文件目录(/boot)
(4)驱动设备目录(/dev)
(5)配置文件目录(/etc)
(7)用户主文件夹(/home)
(8)系统函数库(/lib)
(9)媒体设备暂挂区(/media)
(10)额外设备暂挂区(/mnt)
(11)第三方软件安装目录(/opt)
(12)管理员主文件夹(/root)
(13)重要系统执行文件(/sbin)
(14)服务数据存放目录(/srv)
(15)临时文件存放目录(/tmp)
(16)丢失内容修复目录(/lost+found)
(17)虚拟文件系统目录(/proc)
(18)虚拟文件系统目录(/sys)
(19)系统软件资源目录(/usr)
(20)常态可变动文件目录(/var)
2.3.3 Windows与Linux的文件系统标准区别与联系
三种操作系统所使用的文件系统标准
Windows的文件系统
FAT
NTFS
ReFS
HPFS
macOS 的文件系统
HFS+
APFS
Linux的文件系统
Ext
ReiserFS
XFS
JFS
Btrfs
F2FS
BSD、Solaris、Unix的文件系统
集群文件系统
三 Linux服务器管理与维护运维建议
1 面试可能遇到的问题
2 快捷键简单介绍
3 rz上传文件
另外一种传输方式——winSCP
4 拍摄快照
备份快照
恢复到快照状态
5 下载vim
四 终端命令概述
4.1 学习Linux终端命令的原因
4.2 终端命令格式
4.3 命令格式
4.4 Linux 命令行中的单横线与双横线区别
单横线
双横线
五 文件和目录常用命令
目标
5.1 查看目录内容
1.1 终端使用技巧
1> 自动补全
2> 曾经使用过的命令
1.2 ls命令说明
演练目标:
1.3 ls常用选项
计算机中的文件大小的表示方式
1.4 ls 和通配符的使用
5.2 切换目录
2.1 cd命令
需求:
2.2 相对路径和绝对路径
2.2.1 如何分步骤实现
2.2.2第一步: 使用相对路径定位目标
2.2.3 第二步: 使用绝对路径定位目标
2.2.4 小总结
5.3 创建和删除操作
3.1 touch
3.1.1 路径
3.1.2 实现
3.1.3 小结
3.2 mkdir
3.2.1 实现
3.2.2 小结
3.3 rm
3.3.1 路径
3.3.2 实现
3.3.3 小结
5.4 拷贝和移动文件
4.1 tree (扩展)
4.1.1路径
4.1.2 实现
4.1.3小结
4.2 cp
4.2.1 实现
4.2.2 小结
4.3 mv (move)
4.3.1 实现
4.3.2 小结
5.5查看文件内容
5.1 cat
5.1.1 实现
5.1. 2 小结
5.2 less
5.2.1 实现
5.2.2 小结
5.3 head
5.4 tail
5.4.1 实现
5.4.2 小结
5.5 grep【*】
5.5.1 实现
5.3.2 小结
5.6 其他
6.1 管道 |
6.1.1 实现
6.1.2 小结
6.2 echo 文字内容
6.3 重定向 >(覆盖) 和 >>(追加)
6.3.1 实现
6.3.2 小结
6.4 && 和 ||
6.4.1 实现
6.4.2 小结
5.7 软链接(类似与 快捷方式)【*】
5.7.1 实现
5.7.2 小结
总结
此处的版本为centos7,是最小安装的字符界面。
centos是linux的发行版
在虚拟机上 安装centos 系统 模拟 机房的一台服务器
本文主要介绍linux的简单介绍以及相关的基础命令
linux 创始人: 林纳斯 托瓦兹 linux 诞生于: 1991年 作者上大学期间
内核(kernel) 是系统的心脏, 是运行程序和管理磁盘和打印机等硬件设备的核心程序. Linux内核版本
稳定版
具有工业级强度, 可以广泛的应用和部署.
开发版
由于要试验各种解决方案, 所以变化很快
内核源码网址: http:www.kernet.ort 所有来自全世界的对linux源码的修改最终都会汇总到这个网站, Linus 领导的开源社区对其进行甄别和修改, 最终决定是否进入到 LInux主线内核源码中。
redhat:目前,全球最大的linux发行厂商,功能全面、稳定。
Redhat 被 IBM 收购!
ubuntu:目前,是linux桌面操作系统做的最好的。
centos:免费版的redhat,centos 基于 redhat 发行版基础之上,再重新编译发布的版本。
目前 centos 已经被 Redhat 公司收购,但是依然免费
虚拟机 (Virtual Machine) 指通过 软件模拟 的具有完整硬件系统功能的. 运行在一个完全隔离环境中的完整计算机系统
虚拟系统通过生成现有操作系统的全新虚拟镜像, 具有真实操作系统完全一样的功能.
进入虚拟系统后, 所有操作都是在这个独立全新的独立的虚拟系统里面进行, 可以独立安装运行软件, 保存数据, 不会对真正的系统产生任何影响
而且现有在系统与虚拟镜像之间灵活切换的一类操作系统
桥接原理
因为 虚拟机的linux系统的ip地址是固定的, 更换路由器后导致无法使用, 所以 不推荐使用
NAT原理 如果宿主电脑可以上网, 内部的虚拟机也可以上网就好了 NAT原理本质上就是 虚拟机实现了交换机的功能, linux系统的IP地址就不会随宿主电脑的ip地址更改而更改
Linux里面的ens33 是指 Linux 操作系统中的一个网络接口,可能是物理网卡或虚拟网络接口。
en:ethernet
eno开头,表示主板bios内置的网卡。
ens开头,表示有主板bios内置的PCI-E网卡。
enp开头,表示PCI-E独立网卡。
eth开头,表示除以上的情况。
ens33是Linux系统中网络接口的名称,通常用于虚拟机中的网络接口。 它是一种命名规则,其中ens表示Ethernet Network Interface,33是接口的编号。
在Linux操作系统中,ens33是一种网络设备名的命名规则,是以Ethernet开头,后面加上随机的数字和字母组成。ens33是指第一个物理网络接口,即无线网卡或有线网卡,这个名字是根据系统安装顺序而来。
Linux中的网络接口设备用于连接网络,使计算机能够访问网络资源。每个网络接口都有一个唯一的名称,以便在系统中对其进行识别。在过去的版本中,网络接口命名规则是ethX。然而,随着网络技术的发展和网络设备的增加,这种命名方案已经不足以满足需求。因此,Linux内核提供了一种新的网络接口命名规则——Predictable Network Interface Names(可预测的网络接口名称)。其中,ens33便是一种可预测的网络接口名。
在以前的版本中,网络接口的命名十分混乱,例如通过重新启动计算机后,或者更换了设备,就会出现不同的网卡名字,这在服务上运行的萎靡不振,Linux内核也不支持打固定的Host Name,由此无法做到网络管理的自动化和安全。因此,ens33采用的是基于物理设备的名称规则,通过内核命名规则来保证网络设备名的唯一性,避免了网卡的乱序,方便更好的管理网络。
总之,ens33是Linux中可预测的网络接口名,在内核的命名规则下,保证了网络设备名的唯一性,方便管理网络设备。
ens33是Linux里面的网络接口名字之一。在Linux系统中,设备名是一个由字母、数字和其他字符组成的字符串,用来标识计算机系统中的设备,比如网络接口,硬盘等。Linux系统中,网络接口的设备名有许多种,如eth0、eth1、wlan0、wlan1等等,其中,ens33一般是由systemd网络管理器分配的接口名。
systemd网络管理器被许多Linux发行版所采用,比如最常见的Ubuntu、Debian、CentOS等,这些发行版在默认情况下都使用systemd网络管理器,所以很多用户都会看到ens33这个名字。ens33可以说是systemd网络管理器使用了更易于读写的规则来分配的网络设备名。在此之前,Linux内核使用udev命名它们的设备名字,该命名规则被认为是难以记忆和理解的,例如由于满足规则,每次新增网络接口都会增加数字作为后缀,而不是使用有意义的名字。
如果你的Linux系统中不是通过systemd网络管理器配置网络,而是通过传统的ifconfig或者NetworkManager等进行配置的,那么你可能看不到ens33这样的名字,而是看到类似eth0或wlan0等名字。这与不同的网络管理工具和Linux版本号有关系。但是无论如何,这些名字只是网络接口的标签,不会影响网络的正常工作。
“ ~ "家目录,符号叫飘
“ ` ”反引号语言表达
网卡是一个专门负责网络通讯的硬件设备
ip地址是设置在网卡上的地址信息
我们可以把 电脑 比作 手机, 网卡 相当于 手机卡槽, ip地址 相当于 手机号
IP地址 每台联网的电脑上都有IP地址, 是保证电脑之间正常通讯的重要设置 注意: 每台电脑的IP地址不能相同, 否则 会出现IP地址冲突, 并且没有办法正常通讯
windows 系统 可以拥有多个盘符, 如 C盘、D盘、E盘
Linux 没有盘符 这个概念, 只有一个根目录 / , 所有文件都在它下面
Linux主要目录 速查表
/lsdt: found系统修复用的?
/bin: 二进制命令所在的目录
/boot : 系统引导程序所需要的文件目录,引导系统开机
/dev :设备软件目录,磁盘,光驱,
/etc: 系统配置,启动程序
/home:普通用户的家目录,目录默认数据存放目录
/lib: 启动系统和运行命令所需的共享库文件和内核模块存放
/mnt:临时挂载储存设备的挂载点,u盘插入光驱无法使用,需要挂载然后使用
/opt:额外的应用软件包
/proc:操作系统运行时,进程信息和内核信息存放在这里
/root:Linux超级权限用户root的家目录
/sbin:和管理系统相关的命令,【超级管理员用】
/tmp:临时文件目录,这个目录被当作回收站使用
/usr:用户或系统软件应用程序目录
/var:存放系统日志的目录
注意:一般不要 操作 非自己创建的目录和文件,否则可能导致服务器崩溃。
根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机、还原、系统修复等操作有关。
因此 FHS 标准建议:根目录(/)所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。如此不但性能较好,根目录所在的文件系统也比较不容易发生问题。
系统有很多放置执行文件的目录,但 /bin 比较特殊。因为 /bin 放置的是在单用户维护模式下还能被操作的命令。在/bin下面的命令可以被root与一般账号所使用,主要有 cat,chmod,chown,date,mv,mkdir,cp,bash 等常用的命令。
这个目录主要放置开机会使用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等。
在 Linux 系统上,任何设备与接口设备都是以文件的形式存在于这个目录当中的。你只要通过访问这个目录下面的某个文件,就等于访问某个设备。比较重要的文件有/dev/null,/dev/zero,/dev/tty等。
系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的起始文件等。一般来说,这个目录下的各个文件属性是可以让一般用户查阅的,但只有root有权利修改。比较重要的文件有 /etc/init.d,/etc/inittab,/etc/sysconfig等。
这是系统默认的用户主文件夹(home directory)。在你创建一个一般用户账号时,默认的用户主文件夹都会规范到这里来。~ 代表当前用户的主文件夹。
用户目录
系统的函数库非常多,而/lib放置的则是在开机时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库而已。*你可以把函数库想象成是“外挂”,某些命令必须要有这些“外挂”才能够顺利完成程序的执行之意。
media是“媒体”的英文,顾名思义,这个/media下面放置的就是可删除的设备。包括软盘、光盘、DVD等设备都暂时挂载于此。常见的文件名有/media/floppy,/media/cdrom 等。
如果你想要暂时挂载某些额外的设备,一般建议你可以放置到这个目录中。在比较早的时候,这个目录的用途与/media 相同。只是有了/media之后,这个目录就被用来暂时挂载用了。
挂载
挂载到指定位置,方便读取。
挂载是指将一个文件系统连接到计算机的文件系统层次结构中的特定位置,使其可供访问和使用。当你挂载一个文件系统时,你可以通过在指定的挂载点上访问和操作文件和目录。
在操作系统中,文件系统通常按照层次结构组织,例如,根目录下有许多子目录和文件。当你挂载一个文件系统时,你实际上将外部设备(如硬盘、光盘、USB驱动器等)或网络资源(如远程服务器上的共享目录)映射到操作系统的文件系统层次结构中的一个目录上,使得这些外部设备或资源可以在该目录下访问。
例如,在Linux系统中,你可以通过挂载一个USB闪存驱动器来访问其中的文件。在Windows系统中,你可以挂载网络共享目录以便在你的计算机上访问共享文件。
通过挂载,你可以在计算机上访问和管理外部设备或网络资源中的文件和目录,就像它们是计算机本地的一部分一样。这对于数据备份、文件共享和访问外部存储设备等任务非常有用。
这个目录是用于安装第三方应用程序的,可以由用户自己指定安装位置。当需要卸载第三方应用程序时,可以直接删除安装目录,而不影响系统其它任何设置。
系统管理员(root)的主文件夹。之所以放在这里是因为如果进入单用户维护模式而仅挂载根目录时,该目录就能够拥有root的主文件夹,所以我们会希望root的主文件夹与根目录放置在同一个分区中。
Linux 有非常多的命令是来设置系统环境的,这些命令只有root才能够利用来“设置”系统,其他用户最多只能用来“查询”而已。放在/sbin下面的为开机过程中所需的,里面包括了开机、修复、还原系统所需要的命令。
srv可以视为“service”的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。常见的服务例如 WWW、FTP 等。举例来说,WWW 服务需要的网页数据就可以放置在/srv/www/ 里。
这是让一般用户或者是正在执行的程序暂时放置文件的地方。这个目录是任何人都能够访问,所以你需要定期清理一下。当然,重要数据不可放置在此目录,因为系统会不定期将/tmp目录下的数据全部删除。
这个目录是使用标准的ext2/ext3文件系统格式才会产生的一个目录,目的相当于文件系统发生错误时,将一些丢失的片段放置到这个目录下。这个目录通常会在分区的最顶层存在。
这个目录本身是一个虚拟文件系统(virtual filesystem)。它放置的数据都是在内存当中,例如系统内核、进程、外部设备以及网络状态等。因为这个目录下的数据都是在内存当中的,所以本身并不占任何硬盘空间。
这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录与内核相关的信息。包括目前已加载的内核模块与内核检测到的硬件设备信息等。这个目录同样不占硬盘容量。
PS:较为重要
很多小白都会误以为/usr是user的缩写,其实usr是Unix Software Resource的缩写,也就是“UNIX操作系统软件资源”所放置的目录,而不是用户的数据,这点需要注意。FHS 建议所有软件开发者应该将他们的数据合理地分别放置到这个目录下的子目录,而不要自行新建该软件的独立目录。
/usr/bin/:绝大部分的用户可使用命令都放在这里。存放系统命令的目录,普通用户和超级用户都可以执行,这些命令和系统启动无关,在单用户模式下不能执行。
/usr/include/:C/C++等程序语言的头文件(header)与包含文件(include)放置处。
/usr/lib/:包含各应用软件的函数库、目标文件以及一些不被一般用户惯用的执行文件或脚本。
/usr/local/:系统管理员在本机自行安装下载的软件建议安装到此目录。
/usr/sbin/:非系统正常运行所需的系统命令。
/usr/share/:放置共享文件的地方。
/usr/src/:一般源码建议放置到这里。
该目录主要针对常态性可变动文件,包括缓存(cache)、登录文件(log file)以及某些软件运行所产生的文件,包括程序文件(lock file、run file),或者例如MySQL数据库的文件等。
如果 /usr 是安装时会占用较大硬盘容量的目录,那么 /var 就是在系统运行后才会渐渐占用硬盘容量的目录。
/var/cache/:应用程序本身运行过程中会产生的一些暂存文件。
/var/lib/:程序本身执行的过程中,需要使用到的数据文件放置的目录。
/var/lock/:目录下的文件资源一次只能被一个应用程序所使用。
/var/log/:放置登录文件的目录。
/var/mail/:放置个人电子邮件信箱的目录。
/var/run/:某些程序或服务启动后的PID目录。
/var/spool/:放置排队等待其他应用程程序使用的数据。
Linux上常用的有: ext4, ext3, xfs,这些在Windows上原生不支持 Windows常用的有NTFS,部分Linux发行版可能默认装了挂载插件进行只读挂载,通过改fstab或者mount命令可以挂载成rw 微软的FAT16、FAT32比较通用,基本上所有系统都能读写。
Microsoft Windows 使用两种主要的文件系统: NTFS,该操作系统的大多数现代版本默认使用的主要格式,以及 FAT,它继承自旧 DOS 并具有 exFAT 作为其后来的扩展名。ReFS也被 Microsoft 引入,作为从 Windows Server 2012 开始的新一代服务器计算机格式。由 Microsoft 与 IBM 共同开发的HPFS只能在运行 Windows NT 至 3.5 的极旧机器上找到。
FAT (文件分配表)是最简单的 FS 类型之一,自 1980 年代以来一直存在。它由 FS 描述符扇区 (引导扇区或超级块)、 块分配表 (简称文件分配表)和 用于存储数据的普通存储空间组成。FAT 中的文件存储在目录中。每个目录都是一个32 字节的记录数组 ,每个记录定义一个文件或其扩展属性(例如一个长名称)。记录属于文件的第一个块。通过将其用作链表,可以通过块分配表找到任何下一个块。
块分配表包含一个块描述符数组。零值表示该块未被使用, 非零值与文件的下一个块或文件末尾的特殊值有关。
FAT12、 FAT16、 FAT32中的数字 代表用于寻址 FS 块的位数。这意味着 FAT12 最多可以使用 4096 个不同的块引用,而 FAT16 和 FAT32 最多可以使用 65536 和 4294967296。实际的最大块数甚至更少,并且取决于 FS驱动程序的实现。
FAT12 和 FAT16 曾经应用于旧的 软盘 ,现在没有广泛的应用。 FAT32 仍然广泛用于 存储卡 和 USB 记忆棒。智能手机、数码相机和其他便携式设备支持该格式。
FAT32 可用于Windows兼容的外部存储或使用 该操作系统的内置工具格式化的大小在32 GB以下的磁盘分区上,或者在使用其他方式格式化存储时最大2 TB。文件系统也不允许创建大小超过 4 GB的文件。为了解决这个问题, 引入了exFAT ,它在大小方面没有任何实际限制,并且经常用于现代外部硬盘驱动器和 SSD。
NTFS(新技术文件系统) 于 1993 年随 Windows NT 一起推出,目前是基于 Windows 的最终用户计算机最常用的文件系统。Windows Server 系列的大多数操作系统也使用这种格式。
由于日记功能,这种 FS 类型非常可靠,并且支持许多功能,包括 访问控制、 加密 等。NTFS 中的每个文件都作为描述符存储在 主文件表 及其数据内容中。主 文件表 包含有关它们的所有信息的条目:大小、分配、名称等。表的前 16 个条目为 BitMap 保留,它记录所有空闲和使用的集群,日志用于日志记录和BadClus 包含有关坏集群的信息。文件系统的第一个和最后一个扇区包含其设置 (引导记录或 超级块)。这种格式使用 48 和 64位 值引用文件,因此能够支持极高容量的数据存储。
ReFS(弹性文件系统) 是微软在 Windows 8 中引入的最新开发,现在可用于 Windows 10。它的架构与其他 Windows 格式完全不同,主要以 B+-tree的形式组织。 由于其中包含新功能,ReFS对故障具有很高的容忍度。其中最值得注意的是 Copy-on-Write (CoW):元数据不被复制就不会被修改;数据不会覆盖现有数据 - 它被放置到磁盘上的另一个区域。在进行任何修改后,元数据的新副本会保存到存储上的空闲区域,然后系统会创建从旧元数据到新副本的链接。因此,大量较旧的备份存储在不同的位置,除非该存储空间被覆盖,否则可以轻松恢复数据。
HPFS(高性能文件系统) 由 Microsoft 与 IBM 合作创建,并于 1989 年与 OS/2 1.20 一起推出,作为服务器的文件系统,与 FAT 相比可以提供更好的性能。与 FAT 不同,FAT 只是为文件片段分配磁盘上的任何第一个空闲簇,HPFS 试图将文件排列在连续的块中,或者至少确保其片段(称为 extents)彼此尽可能靠近. HPFS 开始时有 3 个控制块占用 18 个扇区: 引导块、 超级块 和 备用块。剩余的存储空间被划分为称为 带 的连续扇区的部分每个占用 8 MB。一个频段有自己的 扇区分配位图 ,显示其中哪些扇区被占用(1 - 占用,0 - 空闲)。每个文件和目录都有自己的 F 节点 ,位于磁盘上靠近它的位置——这个结构包含有关文件位置及其扩展属性的信息。 位于磁盘中心的特殊 目录带用于存储目录,而目录结构本身是具有字母条目的平衡树。
提示:有关 Windows 使用的 FS 类型的数据恢复角度的信息可以在有关不同操作系统的数据恢复特性和数据恢复机会的文章中找到。有关详细说明和建议,请阅读专门用于从 Windows 恢复数据的手册。
Apple 的 macOS 应用了两种 FS 类型: HFS+是旧 Macintosh 计算机上使用的传统 HFS 的扩展,以及 APFS是运行 macOS 10.14 及更高版本的现代 Mac 所采用的格式。
在 macOS High Sierra 中被 APFS 取代之前, HFS+ 曾经是 Apple 桌面产品的主要格式,包括 Mac 电脑、iPod 以及 Apple X Server 产品。高级服务器产品还使用 Apple Xsan,这是一种 源自 StorNext 和 CentraVision的集群文件系统。
HFS+使用 B 树来放置和定位文件。卷被划分为扇区,通常大小为 512 字节,然后将它们分组为分配块,分配块的数量取决于整个卷的大小。有关空闲和已用分配块的信息保存在分配文件中。作为扩展分配给每个文件的所有分配块都记录在扩展溢出文件中。最后,所有文件属性都列在 Attributes 文件中。通过日志记录提高了数据可靠性,这使得跟踪系统的所有更改成为可能,并在发生意外事件时迅速将其恢复到工作状态。其他支持的功能包括目录硬链接、逻辑卷加密、访问控制、数据压缩等。
Apple 文件系统旨在解决其前身存在的基本问题,其开发目的是有效地与现代闪存和固态驱动器配合使用。这种 64 位格式使用写时复制方法来提高性能,允许在应用更改之前复制每个块,并提供大量数据完整性和节省空间的功能。有关文件、文件夹以及其他 APFS 结构的所有内容和元数据都保存在 APFS 容器中。 Container Superblock 存储有关 Container 中的块数、块大小等信息。有关 Container 的所有已分配和空闲块的信息在 Bitmap Structures 的帮助下进行管理。Container 中的每个卷都有自己的 卷超级块 它提供了有关此卷的信息。卷的所有文件和文件夹都记录在 File and Folder B-Tree中,而 Extents B-Tree 负责范围 - 对文件内容的引用(文件开头,其长度以块为单位)。
开源 Linux 旨在实现、测试和使用不同类型的文件系统。Linux 最流行的格式包括:
Ext2、Ext3、Ext4 只是 “本机” Linux Ext 文件系统的不同版本。这种类型属于积极的发展和改进。 Ext3只是 Ext2的扩展, 它使用带有 日志的事务性文件写入操作。 Ext4 是 Ext3 的进一步发展,在优化文件分配信息(范围)和扩展文件属性的支持下进行了扩展。对于大多数 Linux 安装,此 FS 经常用作 “根”。
ReiserFS - 一种替代 Linux 文件系统,针对 存储大量小文件进行了优化。它具有良好的搜索功能**,并通过存储文件的尾部或非常小的项目以及元数据来实现文件的紧凑分配, 以避免为此目的使用大的 FS 块。但是,不再积极开发和支持这种格式。
XFS - 一个强大的日志文件系统,最初由 Silicon Graphics 创建并由该公司的 IRIX 服务器使用。2001 年,它进入了 Linux 内核,现在大多数 Linux 发行版都支持它,其中一些发行版,如 Red Hat Enterprise Linux,甚至默认使用它。这种 FS 类型针对 在单个主机上存储非常大的文件和卷进行了优化。
JFS——IBM 为公司强大的计算系统开发的文件系统。JFS1 通常代表 JFS, JFS2 是第二个版本。目前,该项目是 开源的 ,并在大多数现代 Linux 版本中实现。
Btrfs - 一种基于写时复制原则 (COW) 的文件系统,由 Oracle 设计,自 2009 年起得到主线 Linux 内核的支持。Btrfs 包含逻辑卷管理器的特性,能够跨多个设备,并提供更高的容错性、更好的可扩展性、更易于管理等以及许多高级可能性。
F2FS – 由三星电子设计的 Linux 文件系统, 适用于现代智能手机和其他计算系统中广泛使用的基于 NAND 闪存的存储设备的细节。这种类型基于日志结构化 FS 方法 (LFS) 工作,并考虑了闪存存储的特性,例如恒定的访问时间和有限数量的数据重写周期。F2FS 不是创建一个大块进行写入,而是将这些块组装成单独的块(最多 6 个),这些块可以同时写入。
这种操作系统中使用的“硬链接”概念使得大多数Linux FS类型的相似之处在于文件名不被视为文件属性,而是被定义为某个目录中文件的别名。一个文件对象可以 从多个位置链接,甚至可以从同一个目录以不同的名称相乘。这可能导致文件删除或逻辑损坏后文件名恢复的严重甚至无法克服的困难。
这些操作系统最常见的文件系统是 UFS(Unix 文件系统),通常也称为 FFS (快速文件系统)。
目前,所有 Unix 系列操作系统都支持 UFS(不同版本),是 BSD OS 和 Sun Solaris OS 的主要文件系统。现代计算机技术倾向于在不同的操作系统( Solaris 的ZFS 、 JFS 和 Unix 的派生格式等)中实现 UFS 的替换。
集群文件系统用于计算机集群系统,支持分布式存储。
分布式 FS 类型包括:
ZFS ——Sun 公司的“ Zettabyte 文件系统”——一种为 Sun Solaris OS 的分布式存储而开发的格式。
Apple Xsan ——CentraVision 和后来的 StorNext 的 Apple 公司演变。
VMFS – VMware 公司为其 VMware ESX Server 开发的“虚拟机文件系统”。
GFS – Red Hat Linux“全球文件系统”。
JFS1 –用于旧 AIX 存储系统的IBM JFS的原始(遗留)设计。
这些文件系统的共同属性包括分布式存储支持、可扩展性和模块化。
补充:
对上述的标准的一些解释网站:各文件系统对单个文件大小的限制 - love _荣 - 博客园 (cnblogs.com)
描述:
服务器只能重启,不可直接关闭,重启时还需要关闭其他开启的服务,
密码和用户写在配置文件里面,加密,每隔几天更新一下,防止泄密。
tab键:命令或者路径提示及补全;
ctrl+c:放弃当前输入,终止当前任务或程序;
ctrl+l:清屏;
ctrl+shift+c:复制;
ctrl+shift+v:粘贴;
alt+b :打开connect窗口 了解
alt+1/2/3/4/5… :切换会话窗口 了解
Ctrl+l清屏,假动作,只是将前面写的命令以及操作放到上面去了。
下载rz就会实现Windows上传到Linux虚拟机里面
Rz -e
它的主要功能就是在本地与远程计算机间 进行 文件 上传和下载 使用 鼠标拖拽 即可完成
快照就是 备份系统, 防止意外损坏, 降低损失
a. 右键目标centos系统 -> 快照 -> 快照管理器 b. 拍摄快照
a. 右键目标centos系统 -> 快照 -> 恢复到指定快照即可
快照用来还原系统
集群搭建的时候需要多备份几个快照
Gun计划
Linux刚面世时并没有图形界面, 所有的操作全靠命令完成, 如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等
在职场中,大量的 服务器维护工作 都是在 远程 通过SSH客户端 来完成的, 并没有图形界面, 所有的维护工作都需要通过命令来完成
在职场中, 作为后端程序员, 必须要或多或少的掌握一些Linux常用的终端命令Linux发行版本的命令大概有200多个, 但是常用的命令只有10多个而已
学习终端命令的技巧:
不需要死记硬背, 对于常用命令, 用的多了, 自然就记住了。 不要尝试一次学会所有的命令, 有些命令是非常不常用的,临时遇到, 临时百度就可以
command [-options] [parameter]
说明:
学习命令的网址:Linux 教程 | 菜鸟教程
Ctrl+f查找需要找的命令名称
有小问题,可以看大多数的解释部分。
参数为变元
Linux 命令行中的单横线、双横线,我们称之为命令行选项,命令行选项后面可能会带有参数值。
单横线选项后面跟的参数必须是单字符参数,一个字符表示一个参数,可以多个参数写在同一个横线后面。
tar -xcvf ××× 在选项需要加参数的时候,参数可以紧跟在选项后面,也可以使用空格分隔。
mysql -u root -p mysql -uroot -p
双横线选项后面跟的参数必须是多字符参数(单词),双横线后只能跟一个参数。
tar --help 在选项需要加参数的时候,参数可以使用“=”分隔,也可以使用空格分隔。
git branch --set-upstream-to origin/remote_branch your_branch
git branch --set-upstream-to=origin/remote_branch your_branch
查看目录内容 ls
切换目录 cd
创建和删除操作 touch rm mkdir
拷贝和移动文件 cp mv
查看文件内容 cat less grep
其他 echo
重定向 > 和 >>
管道 |
在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下 tab 键 如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令
使用 上 / 下 光标键可以在曾经使用过的命令之间来回切换 如果想要退出选择, 并且不想执行当前选中的命令, 可以按 ctrl + c
ls 是英文单词list 的简写, 其功能为列出目录的内容,是用户最常用的命令之一 因为需要编辑服务器上的文件, 所以需要先确认指定目录下 是否存在 linux 下文件和目录的特点 linux文件 或者 目录 名称最长可以 256 个字符 以 . 开头的文件为隐藏文件, 需要用 -a 参数才能显示
. 代表当前目录
.. 代表上一级目录
1 创建文件 01.txt
2 创建隐藏文件 02.txt
3 罗列隐藏文件和非隐藏文件
如果 只使用ls命令 就只能看到当前目录下 非隐藏 文件。 如果想增强功能,就需要学习更多的选项
演练目标:
1 切换到 /usr/tmp 清空内容
2 创建隐藏文件 非隐藏文件 目录
3 查看当前目录内容 (缺点: 隐藏文件看不到)
4 查看当前目录所有内容 (既包含隐藏, 也包含非隐藏)
5 查看目录内容的详细信息(查看文件类型、权限、大小等 缺点:文件大小没有单位)
6 简化合并 查看目录内容的详细信息
[root@node01 tmp]# cd /usr/tmp && rm -rf *
[root@node01 tmp]# ll
total 0
[root@node01 tmp]# touch 01.txt .02.txt
[root@node01 tmp]# ls
01.txt
[root@node01 tmp]# ls -a
. .. 01.txt .02.txt
[root@node01 tmp]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 10 21:04 01.txt
[root@node01 tmp]# ll -a
total 8
drwxrwxrwt. 2 root root 4096 Jul 10 21:04 .
drwxr-xr-x. 20 root root 4096 Jul 10 19:10 ..
准备工作
# 切换到临时目录(先使用, 稍候讲解)
cd /usr/tmp
# 清空目录内容(先使用, 稍候讲解)
rm -rf *
# 创建文件
touch a23.txt 11.txt 111.txt 112.txt 123.txt 223.txt 323.txt 423.txt 523.txt
# 查看目录内容
ls
演习目标1
1 查看以 1 开头的文件或目录
2 查看以 3.txt 结尾的 文件或目录
3 查看含有3的文件列表
4 查看第二个字符是2的文件
[root@node01 tmp]# ls 1*
111.txt 112.txt 11.txt 123.txt
[root@node01 tmp]# ls *3.txt
123.txt 223.txt 323.txt 423.txt 523.txt a23.txt
[root@node01 tmp]# ls *3*
123.txt 223.txt 323.txt 423.txt 523.txt a23.txt
[root@node01 tmp]# ls ?2*
123.txt 223.txt 323.txt 423.txt 523.txt a23.txt
演习目标2
1 查看 第一个字符是 1到5, 以23.txt结尾 的 目录或文件名
cd 是英文单词 change directory* 的缩写, 其功能为 更改当前的工作目录, 也是用户最常用的命令之一 注意: linux的所有 目录 和 文件名 都是大小写敏感的
1 查看当前所在目录
2 切换到 /usr/local
3 切换到 上一级目录 /usr
4 后退到上一次访问的目录中
目标 —— 通过 路径 找到 目标
第一步: 使用相对路径定位目标 第二步: 使用绝对路径定位目标
特征: 相对路径 输入路径时, 最前面不是以 "/" 开始的, 表示相对 当前目录 所在的位置
缺点: 参照工作目录 发生变化 相对路径也要发生变化
需求1: 当前工作目录是 /usr, 使用相对路径 切换到 /usr/tmp 目录下 需求2: 当前工作目录是 /root, 使用相对路径 切换到 /usr/tmp 目录下
特征: 绝对路径 在输入路径时, 最前面是以 / 开始的, 表示 从 根目录 开始的具体目录位置
优点: 定位准确, 不会因为 工作目录变化 而变化
需求1: 当前工作目录是 /usr, 使用绝对路径 切换到 /usr/tmp 目录下
需求2: 当前工作目录是 /root, 使用绝对路径 切换到 /usr/tmp 目录下
相对路径 在输入路径时, 最前面不是以 / 开始的 , 表示相对 当前目录 所在的目录位置
绝对路径 在输入路径时, 最前面是以 / 开始的, 表示 从 根目录 开始的具体目录位置
目标——通过 touch 命令 创建文件
第一步: 创建一个空白文件
第二步: 修改文件的末次修改日期
第一步: 创建一个空白文件
touch 不存在的文件
第二步: 修改文件的末次访问时间
touch 存在的文件
通过 touch 文件名 创建文件 和 修改文件的末次访问时间
目标——通过 mkdir 命令 创建目录 路径:
第一步: 创建 没有层级关系的目录
第二步: 创建 有层级关系的目录
yum -y install tree
第一步: 创建 没有层级关系的目录
mkdir 目录名
第二步: 创建 有层级关系 的目录
mkdir -p 目录1/目录2/目录3
创建一个新的目录
通过 mkdir -p 目录名 命令 创建目录 注意: 新建目录的名称 不能与当前目录中 已有的目录或文件 同名
目标——通过 rm -rf 文件/目录 命令实现删除 文件和目录的功能,。
rm 对应的英文是 remove 含义: 删除
第一步: 删除文件 (有提示)
第二步: 删除文件 (取消提示)
第三步: 删除目录
第四步: rm 结合 通配符
准备工作
cd /usr/tmp
rm -rf *
touch 1.txt 2.txt 3.txt 4.txt 5.txt
mkdir -p aaa/bbb/ccc
mkdir -p x1
第一步: 删除文件 (有提示)
rm 文件
第二步: 删除文件 (取消提示)
rm -f 文件
第三步: 删除有内容的目录
rm -rf 目录
第四步: rm 结合 通配符 * ? [abc] [a-z]
rm -rf *.txt
通过 rm -rf 文件/目录 完成删除 文件或目录的功能. 注意: 使用 rm 命令要小心, 因为文件删除后不能恢复
目标——通过 tree 命令可以以树状图列出文件目录结构.
第一步: 以树形结构显示目录中的文件和目录
第二步: 只显示 当前目录中的目录
第三步: 显示指定的两层
准备工作
# 创建目录
mkdir -p /export/aaa/bbb/ccc
# 创建文件
touch /export/aaa/01.txt /export/aaa/02.txt
touch /export/aaa/bbb/03.txt /export/aaa/bbb/04.txt
touch /export/aaa/bbb/ccc/05.txt /export/aaa/bbb/ccc/06.txt
默认没有安装 tree 组件, 需要联网时安装:
安装 tree组件
yum -y install tree
卸载 tree组件
yum -y remove tree
第一步: 以树形结构显示目录中的文件和目录
tree [目录]
如果指定目录, 就显示指定目录的内容
如果不指定目录,就显示当前目录的内容
第二步: 只显示 当前目录中的目录
tree -d [目录]
第三步: 显示指定的两层
tree -L n [目录]
通过 tree 目录 命令可以以树状图列出文件目录结构.
目标——通过 cp 实现复制将指定的 文件 或 目录 复制到 两一个 文件 或 目录中 路径
第一步: 备份指定文件
第二步: 将文件复制到目录中
第三步: 将文件复制到另一个文件中, 实现覆盖效果
第四步: 复制目录 到指定 目录中
第一步: 备份指定文件
cp 文件1 备份文件名
第二步: 将文件复制到目录中
cp 文件1 目录/
第三步: 将文件复制到另一个文件中, 实现覆盖效果
cp 文件1 文件2(存在的)
第四步: 复制目录 到指定 目录中
cp -r 目录1/ 目录2/
cp命令的功能是将给出的 文件 或 目录 复制到另一个 文件 或 目录中
目标——通过mv 命令可以用来 移动 文件 或 目录, 也可以给 文件或目录重命名 路径
第一步: 将文件 移动 另一个目录中
第二步: 重命名
第三步: 将目录移动到 另一个目录中
mv 可以用来 移动 文件 或 目录, 也可以给 文件或目录重命名
准备工作
清空指定目录内容
cd /export/ rm -rf *
复制 /etc/passwd 文件 到 /export/ 目录中
cp /etc/passwd /export/
复制 /etc/profile 文件 到 /export/ 目录中
cp /etc/profile /export/
罗列目录中内容
tree /export
目标——通过 cat 会一次显示所有的内容, 适合 查看内容较少 的文本文件 路径
第一步: 显示文件内容
第二步: 显示文件内容(显示行号 包含空行)
第三步: 显示文件内容(显示行号 排除空行)
第一步: 显示文件内容(不显示行号)
cat 文件名
第二步: 显示文件内容(显示行号 包含空行)
cat -n 文件名
缺点: 空行也显示行号
第三步: 显示文件内容(显示行号 排除空行)
cat -b 文件名
通过 cat 文件名 查看 小文件内容
目标——通过 less [参数] 文件名 命令可以用于分屏显示文件内容, 每次只显示一页内容
less 命令适合查看 内容较多 的文本文件
路径
第一步 : 分屏显示文件内容
第二步 : 根据关键词搜索内容
第一步 : 分屏显示文件内容
使用 less 的操作键:
第二步: 根据关键词 搜索
根据关键词搜索
/word
less 命令适合查看 内容较多 的文本文件 准备工作:准备一个26个字母的文件, 使用 WINscp客户端 上传到 /export/ 目录下
目标——通过 head 命令查看文档的前几行内容
路径: 第一步: 查看文件的前5行内容 head -n 数字 文件
小结:通过 head 命令查看文档的前几行内容
目标——需求: 查看文档(日志)的后几行内容 路径
第一步: 查看文档的最后10行内容
第二步: 动态显示文档的最后内容,一般用来查看日志
第三步: 动态显示文档的最后10行内容
第一步: 查看文档的最后10行内容
tail -10 文件
第二步: 动态显示文档的最后内容,一般用来查看日志
tail -f 文件名
第三步: 动态显示文档的最后100行内容
tail -100f 文件名
通过 tail -10f 文件 命令 查看文档(日志)的后几行内容
目标——通过 grep 命令 搜索存在 关键字 的行 路径
第一步: 搜索 存在关键字 的行
第二步: 搜索 存在关键字 的行 且 显示行号
第三步: 忽略大小写 搜索 存在关键字 的行
第四步: 搜索 不存在关键字 的行
第五步: 搜索 以关键字开始 的行 或 以关键字结尾 的行
第一步: 搜索 存在关键字 的行
grep 关键字 文件名
第二步: 搜索 存在关键字 的行 且 显示行号
grep -n 关键字 文件名
第三步: 忽略大小写 搜索 存在关键字 的行
grep -i 关键字 文件名
第四步搜索 不存在关键字 的行
grep -v 关键字 文件名
第五步: 搜索 以关键字开始 的行 或 以关键字结尾 的行
grep 正则 文件名
通过 grep 命令 搜索存在 关键字 的行
目标——通过 命令1 | 命令2 可以将命令1的结果 通过 命令2 作进一步的处理
路径
第一步 : 过滤 /etc/ 目录下 以 pro 开头的文件
第二步 : 搜索 存在关键字 的行数
第一步 : 过滤 /etc/ 目录下 以 pro 开头的文件
ls /etc/ | grep ^pro 第二步 : 搜索存在关键字的行数
ls /etc | grep ^pro | wc -l
通过 命令1 | 命令2 可以将命令1的结果 通过 命令2 作进一步的处理
echo string 将字符串输出到控制台 , 通常回和 重定向 联合使用
echo hello
如果字符串有空格, 为了避免歧义 请增加 双引号 或者 单引号
echo "hello world"
目标
默认情况下 命令的结果 输出到 控制台
通过 重定向 可以将结果 输出到文件
路径
第一步: 将 命令的成功结果 覆盖 指定文件内容
第二步: 将 命令的成功结果 追加 指定文件的后面
第一步: 将命令的成功结果 覆盖 指定文件内容 echo 2222 > 01.txt
第二步: 将命令的成功结果 追加 指定文件的后面
echo 3333333 >> 01.txt
第三步: 将 命令的失败结果 追加 指定文件的后面【一个> 或者 两个>>都是追加】
cat 不存在的目录 &>> error.log
通过 命令 > 文件 将命令的成功结果 覆盖 指定文件内容 通过 命令 >> 文件 将命令的成功结果 追加 指定文件的后面 通过 命令 &>> 文件 将 命令的失败结果 追加 指定文件的后面
目标
如果 创建 目录 成功, 就提示 创建成功
如果 创建 目录 失败, 就提示 创建失败
第一步: 如果 创建 目录 成功, 就提示 创建成功
mkdir -p 正确目录 && echo "提示创建目录成功"
第二步: 如果 创建 目录 失败, 就提示 创建失败
mkdir 错误目录 || echo "提示创建目录失败"
随堂练习
1 如果创建目录成功, 就切换到指定目录
2 如果创建文件成功, 就罗列新建文件 所在目录的内容
通过 命令1 && 命令2 实现 如果 命令1 执行成功, 就执行 命令2的效果 通过 命令1 || 命令2 实现 如果 命令1 执行失败, 就执行 命令2的效果
在linux中 文件名 和 内容 是两个文件, 分开的!
创建软链接的原理, 如下
目标——因为 某些文件和目录 的 路径很深, 所以 需要增加 软链接(快捷方式)
通过 ln -s 源文件的绝对路径 快捷方式路径 给 目标文件 增加 快捷方式 注意: 必须 增加 -s , 否则 就变成了 硬链接(了解), 原理如下
硬链接类似于产生一个新的文件
以上就是今天的内容~
欢迎大家点赞,收藏⭐,转发,
如有问题、建议,请您在评论区留言哦。
最后:转载请注明出处!!!