Linux基础和文件管理

220 阅读16分钟

1. 计算机发展相关历史,服务器硬件和计算机分类相关知识。

计算机的发展经历了几个重要的阶段,‌每一次变革都代表着计算机技术的重大突破:

电子管时代:第一代计算机(1945-1957)

晶体管时代:第二代计算机(1958-1964)

集成电路时代:第三代计算机(1965-1970)

大规模集成电路时代:第四代计算机(1972-至今)

量子计算机/生物计算机:第五代计算机(可能已经开始了)




计算机分类:

按规模划分:
超级计算机:Super Computer,又称巨型计算机,应用于国防尖端技术和现代科学计算中。巨型机的运算速度可达每秒百万亿次以上,“天河一号”为我国首台千万亿次超级计算机;
大型计算机:具有较高的运算速度,每秒可以执行几千万条指令,而且有较大的存储空间。往往用于科学计算、数据处理或作为网络服务器使用,如:IBM z13 mainframe;
小型计算机:指采用精简指令集处理器,性能和价格介于PC服务器和大型主机之间的一种高性能64 位计算机。在中国,小型机习惯上用来指UNIX服务器;
微型计算机:指采用 X86 CPU架构的PC服务器,中央处理器(CPU)采用微处理器芯片,体积小巧轻便,广泛用于商业、服务业、工厂的自动控制、办公自动化以及大众化的信息处理,互联网公司发起去 IOE 运动,代替小型机;

按功能和角色划分:
服务器Server和客户机client
服务器:即 Server,计算机的一种,通常是网络中为客户端计算机提供各种服务的高性能的计算机,服 务器在网络操作系统的控制下,将与其相连的硬盘、磁带、打印机及昂贵的专用通讯设备提供给网络上 的客户站点共享,也能为网络用户提供集中计算、信息发布及数据管理等服务
客户机:即 向服务器提出请求,需要服务器为之提供相应的服务和支持的计算机
常说的C/S模式,就是指 Client/Server(客户端/服务端)这种按角色来分的模式,服务端并不是一直都是 服务端,客户端也并不是一直都是客户端,在使用时,服务提供者,就是服务端,服务请求者,就是客户端

服务器按外形分类:
PC 服务器常见的三种外型: 塔式服务器 刀片式服务器 机架式服务器。


2. vmware软件如何下载安装。安装rocky 系统, ubuntu 系统,并结合xshell演示如何通过虚拟IP登入系统。

首先需要下载vmware软件,前往Vmware官网或网上其他渠道分享下载,下图为官网。下载后进行安装,安装过程选项采用默认,可根据实际情况选择安装路径(尽量不安装在C盘)。 www.vmware.com/products/de…

image.png

Windows安装Vmware后在桌面生成VMware Workstation Pro快捷方式,打开如下图:

image.png

安装Vmware后让我们来安装Rocky系统和Ubuntu系统。下面以安装Rokcy8.10为例: 单击上图的创建虚拟机,选择自定义配置来新建虚拟机

image.png 硬件兼容性默认

image.png 安装来源,选择稍后安装操作系统 image.png 选择客户机操作系统,我们选择Rocky Linux 64位 image.png 命名虚拟机,选择虚拟机存放位置 image.png 处理器配置根据实际需要配置 image.png 内存配置也根据实际需要配置 image.png 网络类型推荐使用NAT类型 image.png 下一步的I/O控制器类型,虚拟磁盘类型可使用默认选项,或根据需要配置。 磁盘容量建议20G以上,可根据实际需要配置,不会真实占用磁盘空间,按需使用。 image.png 最后,选择虚拟机各项参数后完成,生成一个未安装系统的虚拟机。 image.png

image.png

生成一个未安装系统的虚拟机后,我们开始准备安装操作系统,点击编辑虚拟机设置,选择CD/DVD->使用ISO映像文件-浏览,浏览下载的Rocky系统镜像,Rocky8.10镜像可从Rocky官网下载,浏览到对应镜像,打开并确认,关闭虚拟机设置框。 rockylinux.org/download

image.png

image.png

回到虚拟机界面,开启此虚拟机开始安装操作系统。

image.png 出现下图界面直接回车,测试镜像完整性并开始安装Rocky。 image.png 选择我们Rocky系统的语言和键盘布局,推荐默认English image.png 有感叹号为我们需要配置的,先进行Installation Destination配置 image.png 勾选一个盘用来当系统盘,Done退出 image.png 再配置Root Password image.png 可选配置,系统时区 image.png Begin Installation选项亮起,可开始正式安装,我们选择开始,然后就等待系统安装完成,重启进入系统。Rocky就算安装完成了。我们登录系统,用户名为root,密码为安装时所配置的。 image.png

image.png

image.png

image.png

安装完Rocky,我们来安装Unubtu,同样先创建一个空虚拟机,选择Ubuntu镜像后开启虚拟机,镜像可从官网下载,这里我们安装Ubuntu Server22.04版本。 ubuntu.com/

image.png

image.png

安装选择Try or Install Ubuntu Server 1722758033512.png 系统语言默认English,回车 image.png 提示是否更新,我们暂时不更新,Continue without updating image.png 键盘布局配置默认 image.png 安装类型,我选择了第一个,会安装一些常用软件,比较好用。 image.png 网络配置,暂时按默认dhcp来获取 image.png 默认选项到如下图检查镜像,我们等到如下图后Done,无提示为正常 image.png 硬盘配置默认 image.png 配置主机名和新建一个用户 image.png ssh配置勾选安装 image.png 开始安装系统,等待安装完成后重启进入系统。登录用户名为安装时创建的普通用户,密码为配置的密码。 image.png

image.png

安装完Rocky系统和Ubuntu系统,我们可以通过xshell远程登录,方便使用系统。 查看2个系统的ip地址,ip a命令查看 Rocky为192.168.141.131 image.png

Ubuntu为192.168.141.130 image.png

xshell新建会话,配置名称和主机ip地址 image.png Rocky使用用户名为root,输入密码后确认,远程登录成功。 image.png

image.png

image.png

Ubuntu使用本地shell尝试登录,ssh 安装时创建的用户@IP地址,我的为ssh lucifer@192.168.141.130,输入密码后成功登录。

image.png

image.png

3. 结合man命令总结linux常用基本命令用法,以及查看帮助文档的方法。

linux命令基本用法,我们用man ls和man mkdir命令查看ls和mkdir的帮助文档 image.png

image.png

可以看到linux命令基本用法为命令 选项 参数(文件名,目录名等)

查看命令的帮助文档有几种方法:

help COMMAND

man COMMAND
COMMAND --help
info COMMAND

3. 总结linux文件系统相关知识,并结合操作演示文件操作常见的命令

linux文件系统相关知识

linux文件系统为FHS文件系统,是多数Linux版本采用的文件组织形式,采用树形结构组织文件。
FHS定义了系统中每个区域的用 途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。

文件系统的目录结构为单根倒置树结构,从根目录下开始,用“/”表示
以 . 开头的文件为隐藏文件
路径分隔的 /
文件名最长255个字节
蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件

常见的文件系统目录功能:
/boot #引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放 于此目录
/bin #所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序 
/sbin #管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序       
/etc #配置文件目录 /home/USERNAME #普通用户家目录 
/root #管理员的家目录 /media #便携式移动设备挂载点 
/mnt #临时文件系统挂载点 /dev #设备文件及特殊文件存储位置, b:block device,随机访问,c:character device,线性访问 
/opt #第三方应用程序的安装位置 
/tmp #临时文件存储位置 
/usr #universal shared, read-only data 
/usr/bin #保证系统拥有完整功能而提供的应用程序
/usr/sbin #同上 
/usr/include #C程序的头文件(header files) 
/usr/share #结构化独立的数据,例如doc, man等 
/var/log #日志目录及文件 
/var/tmp #保存系统两次重启之间产生的临时数据 
/proc #用于输出内核与进程信息相关的虚拟文件系统 
/sys #用于输出当前系统上硬件设备相关信息虚拟文件系统 
/selinux #security enhanced Linux,selinux相关的安全策略等信息的存储位置

应用程序的组成部分
不同类型文件常用的目录
二进制文件 /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
库文件 /lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置文件 /etc, /etc/DIRECTORY, /usr/local/etc
帮助文件 /usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc

Linux下的文件类型标识
普通文件 -
目录文件 d
符号链接文件 l
块设备文件 b
字符设备文件 c
管道文件 p
套接字文件 s



文件操作命令:

### 显示当前工作目录
显示当前shell CWD的绝对路径
pwd -L/-P
-P #显示真实物理路径
-L #显示链接路径(默认)

lucifer@server2204-1:/bin$ pwd
/bin
lucifer@server2204-1:/bin$ pwd -P
/usr/bin
lucifer@server2204-1:/bin$ pwd -L
/bin

### basename和dirname
基名:basename,只取文件名而不要路径 目录名:dirname,只取路径,不要文件名

lucifer@server2204-1:~$ basename /etc/passwd
passwd
lucifer@server2204-1:~$ dirname /etc/passwd
/etc

### 更改目录:d
cd .. #切换到父目录
cd ~username #切换到指定用户家目录

lucifer@server2204-1:~$ cd /etc/
lucifer@server2204-1:/etc$ cd ..
lucifer@server2204-1:/$ pwd
/
lucifer@server2204-1:/$ cd ~lucifer
lucifer@server2204-1:~$ pwd
/home/lucifer


### 列出目录内容:ls
ls
-a		#列出隐藏文件
-l		#列出额外内容
-R		#递归查询
-d		#只显示当前目录
-S		#从大到小排序
-i		#显示inode号

lucifer@server2204-1:~$ ls -a
.  ..  123  .bash_history  .bash_logout  .bashrc  .cache  .lesshst  .profile  .ssh  .Xauthority
lucifer@server2204-1:~$ ls -l
total 0
-rw-rw-r-- 1 lucifer lucifer 0 Aug  4 08:49 123


### 列出文件内容:file
文件可以包含多种类型的数据,使用file命令检查文件的类型,然后确定适当的打开命令或应用程序使用
file

-b		#只显示结果,不显示文件名
-f		#从指定文件获取要处理的文件名
-F		#指定分隔符
-L		#跟随软链接,根据软链接找到源文件,显示其类型

lucifer@server2204-1:~$ file 123 
123: ASCII text
lucifer@server2204-1:~$ file -b 123 
ASCII text


### 复制文件和目录:cp
cp的目标文件存在,默认会覆盖,-i参数

cp test test/		#会将test文件复制到test目录下
cp -r testa testb	#复制目录要-r参数

-i		#目标文件存在,则提示是否覆盖
-n		#目标文件存在,则跳过此文件复制
-R		#递归复制
-a		#保留所有属性,相当于dpR选项组合
-p		#同时复制访问时间、修改时间、权限等属性
-s		#不复制文件,而是创建链接
-b		#目标文件存在,则先备份


### 移动和重命名文件
mvcp类似,一个是移动一个是复制
跨分区速度慢
不跨分区速度快

-b		#目标文件存在,则先备份


### 删除文件
rm

-i		#删除前确认
-f		#不确认直接删除
-r		#递归删除(删目录)
-d		#删除空目录

lucifer@server2204-1:~$ rm -i 123
rm: remove regular empty file '123'? y
lucifer@server2204-1:~$ ls


目录操作
#### 显示目录树tree
tree	#显示目录树

-a			#显示所有,包括隐藏文件和目录
-d			#只显示目录
-f			#显示所有内容的完整路径
-L n		#只显示n层目录
-o	file	#输出到指定文件

root@server2204-1:~# tree
.
└── snap
    └── lxd
        ├── 27037
        ├── common
        └── current -> 27037

5 directories, 0 files


4. 总结操作系统概念相关视频的知识点

##服务器三大操作系统:
Windows 
Linux:GNU/Linux 
Unix:1969年 Ken Thompson

Linux操作系统:
完整的类UNIX操作系统 
Linux内核+ GNU工具=Linux/GNU
如:CentOS,Ubuntu,Android

##Linux的内核版本组成
主版本号 
次版本号 
末版本号 
打包版本号 
厂商版本
例:3.10.0-693.el7

RHEL(Red Hat Enterprise Linux) 红帽企业版Linux Red Hat 公司自身的产品中本身就包含了个人版(Red Hat Linux)和企业版 (RHEL)
RHEL在发布的时候必须发布源代码,所以无论是二进制的发行版,还是源码,用户都 可以直接免费获取,但是不能在商业化场景中使用,商用必须购买许可(licence),另外Red Hat 公司也 提供技术支持,咨询,解决方案等。

CentOS ( Community enterprise operating system ) 社区企业操作系统
就是将 RHEL 发行的源代码从新编译一次,形成一个可使用的二进制版本,RHEL是遵守GPL开源协议的,所 以重新编译是合法。但是得去掉商标,版权信息等。

Rocky Linux
2020年12月8日IBM宣布将惯例支持到2029年CentOS 8,提前在2年内就终结,唯一的升级途径是Centos Stream—AKA,RHEL的Beta发布,并建议不再生产环境中使用。预示着CentOS可能会正式死亡。CentOS已 死,但是CentOS精神将会永存。
随后以CentOS创始人之一Gregory Kurtzer为首,8小时内250人啸聚网络,计划以创建Rocky Linux (Rocky为已经逝世的另外一个CentOS创始人)取代CentOS。Rocky Linux与RHEL兼容目前已经创建了 Github Rocky Linux项目组织(github.com/rocky-linux/rocky)和官网 (rockylinux.org)。

Debian 是从 1993 年由 Ian Murdock(伊恩·默多克) 发起的,受到当时 Linux 与 GNU 的鼓舞,目标是成 为一个公开的发行版。

Ubuntu(友帮拓、优般图、乌班图)早期是一个开源的GNU/Linux操作系统,Ubuntu是基于Debian GNU/Linux,支持x86、amd64(即x64)和ppc架构,由全球化的专业开发团队(Canonical Ltd)打造的。
与Debian的不同在于它每6个月会发布一个新版本,Ubuntu的目标在于为一般用户提供一个最新的、同 时又相当稳定的主要由自由软件构建而成的操作系统。

5.常用命令部分的命令使用

### 查看系统硬软件信息
查看cpu
lscpu
cat /proc/cpuinfo


查看内存
lsmem
free -h
cat /proc/meminfo


查看硬盘
lsblk
cat /proc/partitions

root@server2204-1:~# lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0 63.9M  1 loop /snap/core20/2105
loop1                       7:1    0   87M  1 loop /snap/lxd/27037
loop2                       7:2    0 40.4M  1 loop /snap/snapd/20671
sda                         8:0    0   20G  0 disk 
├─sda1                      8:1    0    1M  0 part 
├─sda2                      8:2    0  1.8G  0 part /boot
└─sda3                      8:3    0 18.2G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0   10G  0 lvm  /
sr0                        11:0    1    2G  0 rom  



查看内核、操作系统版本
arch
uname -r
cat /etc/os-release
cat /etc/redhat-release	#红帽体系
cat /etc/issue

root@server2204-1:~# uname -r
5.15.0-117-generic


### 日期与时间
date
#显示时区
date -R	
#时间戳
date +%s
root@server2204-1:~# date -R    
Sun, 04 Aug 2024 09:09:34 +0000


#时区
/etc/localtime
timedatectl
timedatectl list-timezones
timedatectl set-timezone Asia/Shanghai

root@server2204-1:~# timedatectl
               Local time: Sun 2024-08-04 09:09:43 UTC
           Universal time: Sun 2024-08-04 09:09:43 UTC
                 RTC time: Sun 2024-08-04 09:09:43
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
#修改时区为上海
root@server2204-1:~# timedatectl set-timezone Asia/Shanghai
root@server2204-1:~# timedatectl
               Local time: Sun 2024-08-04 17:10:05 CST
           Universal time: Sun 2024-08-04 09:10:05 UTC
                 RTC time: Sun 2024-08-04 09:10:05
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no


#日历
cal
cal 2024

root@server2204-1:~# cal 2024
                            2024
      January               February               March          
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  
    1  2  3  4  5  6               1  2  3                  1  2  
 7  8  9 10 11 12 13   4  5  6  7  8  9 10   3  4  5  6  7  8  9  
14 15 16 17 18 19 20  11 12 13 14 15 16 17  10 11 12 13 14 15 16  
21 22 23 24 25 26 27  18 19 20 21 22 23 24  17 18 19 20 21 22 23  
28 29 30 31           25 26 27 28 29        24 25 26 27 28 29 30  
                                            31                    
...


### 关机与重启
#关机
halt
poweroff
init 0
shutdown -h now

#重启
reboot
init 6
shutdown -r now

shutdown -c	#取消



### 用户登录信息
#显示当前登录用户
whoami
#显示当前用户的用户名 终端 来源IP
who am i
[root@localhost ~]$who am i
root     pts/0        2024-07-07 22:29 (192.168.141.1)
#显示已经登录的所有用户
who
#显示当前所有登录用户的具体信息
w
w root

root@server2204-1:~# whoami
root
root@server2204-1:~# who
lucifer  pts/0        2024-08-04 16:45 (192.168.141.1)
root@server2204-1:~# w root
 17:11:55 up 27 min,  1 user,  load average: 0.04, 0.01, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root@server2204-1:~# w
 17:11:55 up 27 min,  1 user,  load average: 0.03, 0.01, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
lucifer  pts/0    192.168.141.1    16:45    3.00s  0.10s  0.01s sshd: lucifer [priv]


### 输出信息echo
-n	#输出不换行
-e	#转义特定字符串
-E	#不转义

\a	#发出警告音
\b	#退格键
\c	#最后不加换行符,默认输出会自动换行
\e	#escape,相当于\033

root@server2204-1:~# echo "123 \b456"
123 \b456
root@server2204-1:~# echo -e "123 \b456"
123456


6.通配符,管道,重定向,inode知识点

### 文件通配符
匹配符合条件的多个文件,方便批量管理
*		#匹配零个或多个字符,但不匹配.开头的的文件,即隐藏文件
?		#匹配任何单个字符,一个汉字也算一个字符
~		#当前用户的家目录
.		#当前工作目录
~+		#当前工作目录
~-		#前一个工作目录
~test	#用户test的家目录
[0-9]	#数字范围
#Rocky和Centos中不区分大小写,[a-Z]表示全部字母
[a-z]	#字母范围
[A-Z]	#大写字母范围
[cai]	#匹配其中一个字符
[^cai]	#取反,没有其中一个字符
[^a-z]	

ls [0-9a-zA-Z]
ls [0-z-Z]


[root@czxstudy test]# ls a*
abc

add:
testadd
#ls的d参数,只显示当前目录。
[root@czxstudy test]# ls a* -d
abc  add

#我认为{}用来创文件,[]用来查找,[]只会找存在的。
[root@czxstudy test]# ls f{1..5}
ls: cannot access 'f1': No such file or directory
ls: cannot access 'f2': No such file or directory
f3  f4  f5
[root@czxstudy test]# ls f[1-5]
f3  f4  f5


#### 重定向和管道
标准输入和输出

linux三个基本IO设备

1.标准输入设备(stdin):对应终端键盘
2.标准输入设备(stdout):对应终端的显示器
3.标准错误输出设备(stderr):对应终端的显示器

在虚拟终端中,标准输入输出设备都是当前的终端窗口
[root@ubuntu2204 ~]# ll /dev/std*
lrwxrwxrwx 1 root root 15 Jul 14 05:39 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Jul 14 05:39 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Jul 14 05:39 /dev/stdout -> /proc/self/fd/1

[root@ubuntu2204 ~]# ll /proc/self/fd/
total 0
dr-x------ 2 root root  0 Jul 14 09:59 ./
dr-xr-xr-x 9 root root  0 Jul 14 09:59 ../
lrwx------ 1 root root 64 Jul 14 09:59 0 -> /dev/pts/7
lrwx------ 1 root root 64 Jul 14 09:59 1 -> /dev/pts/7
lrwx------ 1 root root 64 Jul 14 09:59 2 -> /dev/pts/7
lr-x------ 1 root root 64 Jul 14 09:59 3 -> /proc/2209/fd/

[root@ubuntu2204 ~]# tty
/dev/pts/7


I/O重定向
重定向到上一步的会话
echo "123" > /dev/pts/7


标准输出和错误重定向
#默认只会将标准输出的结果重定向,标准错误仍显示在当前会话
[root@ubuntu2204 ~]# cat /etc/fstab zzz123 > /dev/pts/7
cat: zzz123: No such file or directory

#1表示将标准输出重定向,2表示将标准错误也重定向
#不使用>>追加的话,标准输出或标准错误后重定向的会覆盖先重定向的
[root@ubuntu2204 ~]# cat /etc/fstab zzz123 1>>/dev/pts/7 2>>/dev/pts/7
1>/dev/pts/7 2>&1
&>/dev/pts/7



追加不覆盖
[root@ubuntu2204 ~]# echo "123" >> 1.txt



标准输入重定向
标准输入重定向是使用文件来代替键盘的输入
不是所有目录支持
[root@ubuntu2204 ~]# echo "1+2+3" > sum.txt
[root@ubuntu2204 ~]# bc < sum.txt 
6

标准输入输出重定向
[root@ubuntu2204 ~]# bc < sum.txt > 2.txt
[root@ubuntu2204 ~]# cat 2.txt 
6

[root@ubuntu2204 ~]# seq -s "+" 100 > sum.txt
[root@ubuntu2204 ~]# cat sum.txt 
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100
[root@ubuntu2204 ~]# bc < sum.txt > 2.txt 
[root@ubuntu2204 ~]# cat 2.txt 
5050



标准输入多行重定向
使用<<终止词,可自定义
[root@ubuntu2204 ~]# cat > abc.txt <<EOF
> 123
> 456
> 789
> EOF
[root@ubuntu2204 ~]# cat abc.txt 
123
456
789

高级重定向写法
[root@ubuntu2204 ~]# bc <<< `seq -s + 3`
6
[root@ubuntu2204 ~]# bc <<< "1+2+3"
6

bc < <(seq -s + 100)



#### 管道
将前一个命令的作为后一个命令的输入
[root@ubuntu2204 ~]# echo "abc123" | tr 'a-z' 'A-Z'
ABC123

#小写替换成大写,并压缩多的空格
[root@ubuntu2204 ~]# tr 'a-z' 'A-Z' <<< `df` | tr -s " "
FILESYSTEM 1K-BLOCKS USED AVAILABLE USE% MOUNTED ON
TMPFS 396892 1584 395308 1% /RUN
/DEV/MAPPER/UBUNTU--VG-UBUNTU--LV 101590008 8218300 88165080 9% /
TMPFS 1984452 0 1984452 0% /DEV/SHM
TMPFS 5120 0 5120 0% /RUN/LOCK
/DEV/SDA2 1992552 258628 1612684 14% /BOOT
TMPFS 396888 4 396884 1% /RUN/USER/1000

多重管道
[root@ubuntu2204 ~]# echo $PATH | tr ':' '\n' | tr 'a-z' 'A-Z'
/USR/LOCAL/SBIN
/USR/LOCAL/BIN
/USR/SBIN
/USR/BIN
/SBIN
/BIN
/SNAP/BIN

[root@ubuntu2204 ~]# ifconfig | head -n 2 | tail -n 1 | tr -s ' ' | cut -d" " -f3
192.168.141.128


#### 文件元数据和节点表结构
inode表结构
linux中,文件分为元数据和具体内容,在磁盘分区上是分开存放的。
存储元数据的区域叫inode,中文叫“索引节点”
每个分区的inode号或者磁盘空间用完,就不能再创建文件。

查看文件系统
[root@ubuntu2204 ~]# df -Th
Filesystem                        Type   Size  Used Avail Use% Mounted on
tmpfs                             tmpfs  388M  1.6M  387M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv ext4    97G  7.9G   85G   9% /
tmpfs                             tmpfs  1.9G     0  1.9G   0% /dev/shm
tmpfs                             tmpfs  5.0M     0  5.0M   0% /run/lock
/dev/sda2                         ext4   2.0G  253M  1.6G  14% /boot
tmpfs                             tmpfs  388M  4.0K  388M   1% /run/user/1000

[root@ubuntu2204 ~]# cat /etc/fstab 
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation
/dev/disk/by-id/dm-uuid-LVM-xEjedXVbCpUbnrfy0gVLG4ULgwSq039by1Hu8y6ID4xUvxRqsePP93dt81Kuv1h2 / ext4 defaults 0 1
# /boot was on /dev/sda2 during curtin installation
/dev/disk/by-uuid/87206d72-3bc1-4e9b-a36a-de0d79898927 /boot ext4 defaults 0 1
/swap.img	none	swap	sw	0	0

查看分区inode
[root@ubuntu2204 ~]# df -i
Filesystem                         Inodes  IUsed   IFree IUse% Mounted on
tmpfs                              496113    884  495229    1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 6488064 127149 6360915    2% /
tmpfs                              496113      1  496112    1% /dev/shm
tmpfs                              496113      3  496110    1% /run/lock
/dev/sda2                          131072    320  130752    1% /boot
tmpfs                               99222     25   99197    1% /run/user/1000

[root@ubuntu2204 ~]# ls -i 2024-07-09.log 
3538960 2024-07-09.log