泷羽sec-星河飞雪-Linux基础

71 阅读32分钟

免责声明

学习视频来自 B 站up主泷羽sec,如涉及侵权马上删除文章。

笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。

B站地址:space.bilibili.com/350329294



Linux基础命令通识

查看目录内容 ls

以列表形式查看目录内容 ls -l

查看目录内所有文件 ls -a

Linux中以.开头的文件,都是隐藏文件

创建空文件 touch filename

删除文件rm filename

创建目录 mkdir dict

删除目录rmdir dict rm -r dict

RM -R DICT

RMDIR DICT

重命名文件 mv filename filename1

移动文件 mv filename1 dict1

软连接 ln -s filename1 softlink

硬链接 ln filename1 hardlink

硬链接与软连接的区别

本质区别

硬链接:同一个文件,多个名称,共享同一个inode信息。

一、INODE的定义

inode是文件系统中的一个重要组成部分,它包含了关于文件或目录的元数据,如文件大小、拥有者、权限、时间戳等。每个文件和目录在文件系统中都对应着一个唯一的inode。

二、INODE的作用

  1. 文件索引:inode相当于一个文件的索引,通过它可以快速定位和管理文件。操作系统通过inode号码来识别不同的文件,尽管用户通常通过文件名来访问文件,但系统内部实际上使用inode号码来定位和操作文件。
  2. 文件分配:inode还存储了文件数据块的物理位置信息,包括数据块的地址、大小和位置等。通过inode,文件系统可以知道文件的数据块如何分配和组织,以便有效地存储和访问文件的数据。
  3. 硬链接支持:inode的存在使得硬链接成为可能。多个硬链接可以共享相同的inode,从而共享相同的文件数据和元数据。即使在不同的位置创建了多个硬链接,它们实际上都指向同一个文件,节省了存储空间。
  4. 文件系统性能优化:通过inode,文件系统可以快速定位和访问文件的元数据和数据,而无需遍历整个文件系统。这使得文件系统的操作更高效,提高了文件系统的性能

三、INODE的查看

在Linux系统中,可以使用以下命令查看文件的inode节点:

  1. ls命令:通过ls -i命令可以查看文件的inode节点编号。
  2. stat命令:通过stat filename命令可以查看文件的详细信息,包括inode节点编号。
  3. find命令:通过find /path/to/directory -inum inode_number命令可以根据inode节点编号查找文件。

软链接:不同的文件,指向另一个文件的路径。

可用性

硬链接:只能在同一文件系统中使用,不支持跨文件系统

  一、文件系统的定义

 文件系统定义了数据如何在存储设备(如硬盘、SSD、U盘等)上组织和检索,并提供文件和目录的结构化访问。它是操作系统与存储设备之间的桥梁,负责将用户的数据请求转换为存储设备上的物理操作。

二、文件系统的功能

  1. 文件命名和组织:文件系统为文件和目录(文件夹)提供命名规则和层级结构,允许用户对数据进行分门别类的管理。
  2. 数据存储:文件系统将数据存储在磁盘上的物理块中,并提供逻辑结构使用户能方便访问。
  3. 权限管理:文件系统支持用户、组等访问权限控制,以确保不同用户对文件的读取、写入、执行权限能够被正确管理。
  4. 文件操作:支持创建、删除、修改、复制、移动文件,以及文件的读写操作。
  5. 磁盘管理:管理存储空间的分配和回收,包括检测并修复存储设备上的错误,确保数据的完整性。

三、文件系统的类型

  1. FAT32和exFAT:主要用于U盘和便携式存储设备。FAT32文件系统支持较大的文件存储,并且具有较好的兼容性。exFAT是FAT32的扩展,提供了更好的性能和更大的文件支持。
  2. NTFS:Windows操作系统的默认文件系统,支持大文件、文件压缩和加密。NTFS还提供了数据校验、自动修复、快照、重复数据删除等功能,适用于高可靠性存储需求的场景。
  3. ext4:Linux操作系统中最常用的文件系统之一,也是ext系列文件系统的最新稳定版本。ext4在性能、容量和可靠性方面都有显著提升,支持纳秒级时间戳精度和在线文件系统扩展等功能。它适用于从桌面系统到服务器的大部分应用场景。

四、文件系统的选择

 在选择文件系统时,需要考虑以下因素:

  1. 操作系统兼容性:确保所选文件系统与操作系统兼容。
  2. 性能需求:根据读写速度、并发访问量等性能需求选择合适的文件系统。
  3. 可靠性需求:对于需要高可靠性的存储场景,选择具有数据校验、自动修复等功能的文件系统。
  4. 存储需求:根据存储容量和扩展性需求选择合适的文件系统。

软链接:可以跨文件系统和操作系统使用

支持的对象

硬链接:不支持对目录创建,只能对文件创建

软链接:可以对文件和目录创建

删除的影响

硬链接:删除其中一个硬链接不会影响其他硬链接,只有当所有硬链接都被删除时,原始文件才会被删除

软链接:删除软链接不会影响原始文件,但是如果原始文件被删除,软链接将失效

具体用途

软连接:常用于方便管理,例如将复杂路径的文件链接到简单路径下,或解决文件系统空间不足的问题

硬链接:主要用于防止误删除文件

搜索文件 which

主要用于搜索命令,例如which which

搜索文件find

find ~ -mtime 2 -ls | sort -k9 -k10 |more

find ~ >>表示在用户目录查找

-mtiome 2>>表示在两天内被修改的文件

-ls>>表示以长列表形式显示查到的文件信息

|>>表示将前一个命令的输出当作后一个命令的输入

sore -k9 -k10>>表示按照第九列和第十列的内容对文件信息进行排序

more>>表示分页显示文件内容

find . -type f -iname '*.sh' -mmin -30 -ls

-type f>>表示查找类型为普通文件

*.sh>>表示查找以.sh结尾的文件,*为通配符

-mmin -30>>表示查找在三十分钟内被修改过的文件

find . -name '*.svn' -exec rm -rf ;

-name '*.svn'>>表示查找文件名以`.svn结尾的文件

exec rm -rf {} ;>>表示对查找到的文件进行强制删除操作>>{} 是占位符>>;是命令结束符号>>exec

find / -user root -type f -perm -o=w -name '*.sh' 2>/dev/null

-user root>>表示查找所有者为root的文件

-perm -o=w>>表示查找其他用户有写权限的文件

2 > /dev/null>>表示将错误输出重定向到/dev/null,即不显示错误信息

locate

用于快速查找文件,通过查询一个预先构建的文件数据库来实现

updatedb

更新locate命令所使用的文件数据库,会扫描整个文件系统,并将文件信息添加到数据库中。

用户账号数据库

/ETC/PASSWD

/etc/passwd是Linux和Unix系统中用于存储用户账户信息的文件。以下是对/etc/passwd文件的详细解析:

一、文件作用

/etc/passwd文件包含了系统上所有用户账户的基本信息,这些信息对于系统的正常运行至关重要。它主要用于用户登录、系统进程以及许多其他系统服务。

二、文件内容格式

/etc/passwd文件的内容格式通常为每行代表一个用户账户,字段间以冒号(:)分隔。每行用户账户信息被划分为七个字段,具体含义如下:

  1. 用户名(username) :用户的登录名,也是用户的唯一标识符。
  2. 密码占位符(password) :在早期的Linux系统中,这个字段存储用户的加密密码。但出于安全考虑,现代Linux系统通常将加密后的密码存储在/etc/shadow文件中,而/etc/passwd文件中的这个字段则用一个占位符(如“x”或空字符)来表示。
  3. 用户ID(UID) :一个唯一的十进制整数字符串,用于标识用户。在Linux系统中,UID为0的用户是root用户,具有系统的最高权限。
  4. 组ID(GID) :用户所属主组的唯一标识符。每个用户都有一个主组,同时可以属于多个附加组。
  5. 用户全名或描述信息(GECOS) :这个字段通常包含用户的全名、电话号码等描述信息。但具体包含哪些信息取决于系统的配置和管理员的设定。
  6. 家目录(home) :用户登录后的默认工作目录。系统通常会在用户的主目录下创建一些初始文件和目录,如.bashrc.profile等。
  7. 登录Shell(shell) :用户登录后使用的默认Shell程序。常见的Shell程序有/bin/bash/bin/sh等。
三、文件访问权限

/etc/passwd文件的默认权限通常是-rw-r--r--(或数字表示法644),这意味着:

  • 文件所有者(通常是root用户)具有读(r)和写(w)权限。
  • 所属组(通常是root组)具有读(r)权限。
  • 其他所有用户(即非文件所有者和非所属组成员)也具有读(r)权限。

这样的权限设置是为了确保系统进程能够读取用户信息,同时防止非授权用户修改文件内容。

四、管理工具

管理员可以使用以下命令来管理用户账户信息:

  1. useradd:用于添加新的用户账户。
  2. usermod:用于修改现有用户账户的信息,如用户名、UID、GID、家目录、Shell等。
  3. userdel:用于删除现有的用户账户。

/ETC/SHADOW

一、文件作用

/etc/shadow文件相当于/etc/passwd文件的“影子”,存储了用户经过加密后的口令。由于/etc/passwd文件允许所有用户读取,这可能导致用户密码泄露的风险,因此Linux系统将用户的密码信息从/etc/passwd文件中分离出来,单独存放到/etc/shadow文件中。这样,只有root用户和具有特殊权限的用户才能访问/etc/shadow文件,从而保证了用户密码的安全性。

二、文件内容格式

/etc/shadow文件的内容格式通常为每行代表一个用户,字段间以冒号(:)分隔。每行用户信息被划分为9个字段,具体含义如下:

  1. 用户名:与/etc/passwd文件中的用户名相对应。
  2. 加密密码:用户的加密密码,通常采用SHA512散列加密算法(原来可能采用MD5或DES加密算法)。这个字段的值是一个经过加密的字符串,表示用户的密码。
  3. 最后一次修改时间:表示用户最后一次修改密码的时间,是从1970年1月1日起计算的天数。
  4. 最小修改时间间隔:规定了从最后一次修改密码的日期起,多长时间之内不能修改密码。如果是0,则密码可以随时修改;如果是正整数,则代表密码修改后必须等待指定的天数才能再次修改。
  5. 密码有效期:指定了密码的有效期限,即从最后一次修改密码起,密码可以使用的最大天数。超过这个天数后,用户需要更改密码才能继续登录。
  6. 密码需要变更前的警告天数:当账户密码有效期快到时,系统会提前发出警告信息给此账户,提醒用户尽快重新设置密码。该字段的默认值是7天。
  7. 密码过期后的宽限天数:在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的。如果过了宽限天数,系统将不再允许此账户登录。
  8. 账号失效时间:表示账号在此字段规定的时间之外,不论密码是否过期,都将无法使用。该字段通常被使用在具有收费服务的系统中。
  9. 保留字段:用于功能扩展,目前通常为空。
三、文件访问权限

由于/etc/shadow文件存储了用户的加密密码信息,因此它的访问权限通常被设置为只有root用户可以读取。这样做是为了保护用户的密码信息不被非授权的用户获取。如果文件的权限发生了改变,可能是恶意攻击的迹象,需要引起注意。

四、管理工具

管理/etc/shadow文件的工具通常包括passwd命令和相关的系统配置文件,如/etc/passwd/etc/login.defs等。这些工具和文件共同确保了系统账户的安全和管理。

组管理文件 /etc/group

/etc/group文件是Linux系统中用于管理用户组信息的重要文件。以下是对/etc/group文件的详细解析:

一、文件作用

/etc/group文件记录了Linux系统中所有用户组的信息。通过这些信息,管理员可以方便地管理用户组的权限和访问控制,从而实现更细粒度的权限管理。

二、文件内容格式

/etc/group文件的内容格式通常为每行代表一个用户组,字段间以冒号(:)分隔。每行用户组信息被划分为四个字段,具体含义如下:

  1. 组名:在系统上唯一的组标识符。
  2. 密码占位符:通常为空,表示该用户组没有设置密码。在早期的Linux系统中,这个字段可能用于存储用户组的密码,但现在已不再使用。
  3. 组ID(GID) :一个唯一的十进制整数字符串,用于标识用户组。每个用户组都有一个唯一的GID。
  4. 成员列表:属于该用户组的用户的用户名列表,使用逗号分隔。

三、文件访问权限

/etc/group文件通常对所有用户授予读(r)访问权,但仅向root用户和安全组的成员授予写(w)访问权。这是为了确保用户组信息的安全性和完整性,防止非授权用户对其进行修改。

四、管理工具

管理员可以使用以下命令来管理用户组信息:

  1. groupadd:用于添加新的用户组。
  2. groupmod:用于修改现有用户组的信息,如组名、GID等。
  3. groupdel:用于删除现有的用户组。

用户锁定 passwd -l username

-l表示锁定用户,-u表示解锁

修改用户过期时间 chage -E 1990-01-01 username

将过期时间修改为早于当前时间,通常意味着用户账户将不可再用

修改文件所属用户chown

修改文件权限chmod

读、写、执行所对应的数字权限分别是4、2、1;三组rwx对应的分别是文件所属用户权限、组权限、其他人权限

特殊权限suid>>当某个文件被设置了SUID权限后,任何用户执行该文件时,都会以该文件的所有者身份运行,而不是以执行该文件的用户身份运行。这在某些情况下非常有用,比如让普通用户执行一些只有超级用户(root)才能执行的程序。

系统日志

查看日志文件目录

ls -l /var/log

查看系统认证日志的最后三条

tail -3 /var/log/auth.log

查看二进制日志文件

who /var/log/wtmp

who用户显示当前登录的用户信息

/var/log/wtmp是一个二进制日志文件,记录了系统的登录和注销信息。

查看内核环形缓冲区dmesg

包含系统启动时的硬件监测信息、内核模块加载信息、设备驱动的初始化信息等。它可以帮助用户了解系统的硬件状态和内核的运行情况

systemd日志相关命令 journalctl

systemd是Linux系统的初始化系统和服务器管理器,它会记录系统和服务的启动、运行和错误信息等日志。journalctl可以根据不通的参数来筛选、查看特定时间段、特定服务或特定优先级的日志记录

存储管理

内存使用量 FREE -M

磁盘使用量 DF -HT

文件或目录大小 DU ./* -HSC

查看硬盘分区 FDISK -L

挂载分区 mount /dev/sdb1 /mut/usb

mount用于将一个文件系统挂载到指定的目录

/dev/sdb1要挂载的磁盘分区设备路径

/mnt/usb是挂载点,即要将分区挂载到的目录。

执行命令后,系统可以访问该分区中的文件和目录,就像访问本地文件系统中的其他目录一样。

基本网络工具

ifconfig

用于配置和显示网络接口信息的命令行工具,可以显示网络接口的ip地址、子网掩码、mac地址等信息,还可以用于启动、停止或配置网络接口。

ip a

提供了比ifconfig更详细和灵活的网络接口信息,包括接口的状态、IP地址、子网掩码、广播地址等。

ifdown eth0 ifup eth0

用于关闭或启动网卡eth0

网络配置文件

/etc/network/interfaces

这是一个系统文件,用于配置网络接口的静态ip地址、子网掩码、网关等信息。

在一些Linux发行版中,通过编辑这个文件可以实现网络接口的手动配置

NetworkManager

是一个动态网络控制和配置守护进程,它可以自动管理网络连接,包括有线网络、无线网络和VPN连接等。

NerworkManager提供了图形界面和命令行工具来配置和管理网络,使得网络配置更加方便和灵活。

它可以自动检测网络变化,并根据配置自动连接到可用的网络。

网络链接

netstat -natup

netstat是一个用于显示网络连接、路由表、接口统计等信息的命令

-n表示以数字形式显示地址和端口号,避免进行域名解析

-a显示所有的连接和监听端口

-t显示tcp连接

-u显示udp连接

-p显示与连接相关的进程ID和程序名称。

执行这个命令可以查看系统当前的网络链接状态,包括连接的协议、本地地址和端口、远程地址和端口等信息

ss -natup

ss是另一个用于显示网络套接字状态的工具,他比netstat更快速和高效。选项含义与netstat中的类似,用于显示TCP和UDP连接的状态、地址和端口信息,以及相关的进程信息

一、定义与概念

套接字是一种抽象的数据结构,用于在网络应用程序之间提供通信接口。它可以看作是一个端点,用于发送和接收数据,使得运行在不同机器上的应用程序能够交换信息,从而实现网络功能。

二、工作原理与类型

  1. 工作原理

    • 套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口。
    • 套接字利用TCP/IP协议族中的TCP或UDP协议来传送数据。
    • 当创建一个套接字时,需要指定它的类型(例如TCP或UDP)、使用的协议以及绑定的端口号。
  2. 类型

    • 流式套接字(SOCK_STREAM) :基于TCP协议,面向连接,保证数据的顺序和可靠性。
    • 数据报套接字(SOCK_DGRAM) :基于UDP协议,无连接,不保证数据的顺序,可以快速发送和接收数据,但可能会丢失数据包。
    • 原始套接字:可以读写内核没有处理的IP数据包,用于一些协议的开发和比较底层的操作。

三、套接字编程

套接字编程是一种网络编程技术,允许应用程序通过网络发送和接收数据。以下是一些关键步骤和概念:

  1. 创建套接字:使用套接字API(如Python中的socket模块)创建一个套接字对象。

  2. 绑定地址和端口:将套接字绑定到本地主机的IP地址和端口号上。

  3. 监听连接(仅服务器):服务器套接字需要监听指定的端口,等待客户端的连接请求。

  4. 建立连接

    • 客户端:通过套接字连接到服务器指定的IP地址和端口号。
    • 服务器:接受客户端的连接请求,建立连接。
  5. 数据传输:通过套接字发送和接收数据。

  6. 关闭连接:数据传输完成后,关闭套接字连接。

四、应用场景

套接字广泛应用于各种网络编程场景中,如:

  1. 远程命令执行:客户端发送命令给服务器,服务器执行命令并将结果返回给客户端。
  2. 跨平台通信:不同操作系统之间的应用程序可以通过套接字进行通信,只要它们遵循相同的网络协议。
  3. 实时聊天应用:使用数据报套接字实现简单的聊天功能,可以快速发送和接收消息。
  4. Web服务:服务器使用流式套接字提供HTTP服务,客户端通过浏览器访问服务器上的资源

二层地址查看工具

arp -en

arp是地址解析协议的工具

-e以详细格式显示arp缓存表

-n以数字形式显示ip地址,避免进行域名解析

执行这个命令可以查看系统的arp缓存表,其中包含了IP地址和对应的MAC地址映射关系,用于在局域网中进行二层地址解析

二层地址解析通常指的是在数据链路层(OSI模型的第二层)进行的地址解析过程。在计算机网络中,数据链路层负责在网络接口卡(NIC)之间传输数据帧,并使用硬件地址(通常是MAC地址)来识别目的地。

一、二层地址解析的概念

二层地址解析是指将网络层地址(如IP地址)转换为数据链路层地址(如MAC地址)的过程。这是因为在数据链路层,数据帧是通过MAC地址来识别目的地的。因此,当主机需要向另一台主机发送数据时,它必须知道目的主机的MAC地址。

二、地址解析协议(ARP)

为了实现二层地址解析,TCP/IP协议栈中包含了地址解析协议(ARP)。ARP是一个用于从IP地址到物理地址(MAC地址)的映射协议。当主机需要发送数据到另一台主机时,它会使用ARP来查询目的主机的MAC地址。

ARP的工作流程通常如下:

  1. 检查ARP缓存:主机首先检查自己的ARP缓存,看看是否已经有目的主机的MAC地址映射。如果有,则直接使用该地址;如果没有,则进行下一步。
  2. 发送ARP请求:主机在网络接口层广播一个封装了ARP请求报文的帧。这个帧包含发送方的IP地址和物理地址,以及目的主机的IP地址。由于这是一个广播帧,同网段的所有主机都会收到它,但只有目的主机才会处理它。
  3. 接收ARP应答:目的主机收到ARP请求后,会检查请求中的IP地址是否与自己的IP地址匹配。如果匹配,则它会向发送方单播返回一个封装了ARP应答报文的帧,其中包含发送方的IP地址和物理地址,以及目的主机的IP地址和物理地址。
  4. 更新ARP缓存:发送方收到ARP应答后,会将目的主机的MAC地址添加到自己的ARP缓存中,以便将来使用。

三、二层地址解析的应用

二层地址解析在计算机网络中起着至关重要的作用。它使得主机能够找到目的主机的MAC地址,从而在网络接口卡之间传输数据帧。这在局域网(LAN)中尤为重要,因为在LAN中,主机通常通过交换机相互连接,而交换机使用MAC地址来转发数据帧。

此外,二层地址解析还支持跨网段的通信。当主机需要向位于不同网段的目的主机发送数据时,它会首先将数据发送到网关(通常是路由器),然后网关会根据目的主机的IP地址将其转发到正确的网段。在这个过程中,网关也需要进行二层地址解析,以找到下一跳路由器的MAC地址。

路由信息相关工具

ROUTE

用于显示和管理系统的路由表

可以查看系统当前的路由信息,包括目标网络、网关、子网掩码等。还可以添加、删除或修改路由条目

ip route

是IP命令的一部分,用于管理系统的路由表。提供了更强大和灵活的路由管理系统,可以进行更复杂的路由配置操作。

ip route add 10.13.37.0/24 dev eth1

ip route add用于添加一条路由条目

10.13.37.0/24是目标网络地址和子网掩码

dev eth1表示通过名为eth1的网络接口到达目标网络

执行这个命令可以向系统的路由表中添加一条路由,指定如何到达特定的网络。

路由跟踪工具

traceroute是一个用于跟踪数据包,从本地主机到目标主机所经过的路由路径工具

执行这个命令会逐跳显示数据包经过的路由器IP地址和响应时间,帮助用户了解网络连接的路径和可能存在的网络问题。

ssh服务

启动服务

systemctl start ssh

ssh root@localhost

sshSecure shell的客户端命令

root表示要以`root的用户身份进行登录

@localhost表示连接到本地主机

执行这个命令可以使用ssh协议以root用户身份登录到本地主机,如果ssh服务已启动并且配置正确,并且相关用户有响应的权限,就可以成功登录并获得一个远程命令行会话。

配置文件

/etc/ssh/sshd_config

这是ssh服务器的主要配置文件,其中包含了各种参数,可以用来配置ssh服务器的行为,比如端口号、允许的登录用户、认证方式、访问控制等。通过编辑这个文件,可以根据具体需求对ssh服务器进行定制化配置。

客户端配置

hash knowmHosts yes

通常情况下,~/.ssh/known_hosts文件用于存储已知的远程主机的公钥信息,以确保连接的安全性。这个配置选项可能是指示对已知主机文件中的主机名进行哈希处理,这样可以提高一定的安全性,但具体的效果可能因不通的ssh实现而有所差异。

通常包含私钥文件(如id_rsa)、公钥文件(id_rsa.pub)以及已知主机文件(known_hosts)等。这些文件用于ssh客户端的身份认证和连接管理。

远程拷贝 scp

scp是Secure Copy的缩写,用于在不同主机之间安全的复制文件。

历史命令 history


Linux目录介绍

目录介绍
/bin二进制可执行命令
/etc系统管理和配置文件
/etc/rc.d启动的配置文件和脚本
/home用户主目录的基点
/lib标准程序设计库,又叫动态链接共享库
/sbin超级管理命令 这里存放的是系统管理员使用的管理程序
/tmp公共的临时文件存储点
/root系统管理员的主目录
/mnt临时挂载的文件系统
/lost+found系统非正常关机而留下的"无家可归"的文件在这里
/usr/sbin超级用户的一些管理程序
/usr/bin众多的应用程序
/usr最庞大的目录,要用到的应用程序和文件几乎都在这个目录
/proc虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息
/var某些大文件的溢出区

Linux目录结构是一个树状结构,每个目录都有其特定的功能和作用。以下是Linux各目录的功能及作用,以及其中包含的重要文件的列举:

一、根目录(/)

  • 功能:根目录是整个文件系统的起点,所有其他目录都挂载在根目录下。
  • 重要文件:通常不包含具体文件,但包含多个子目录。

二、常用目录及其功能

  1. /bin

    • 功能:存放系统最常用的命令和程序,如ls、cp、mv等。这些命令在单用户模式下也可以执行。
    • 重要文件:无特定文件,但包含大量系统命令的二进制文件。
  2. /boot

    • 功能:存放启动Linux时所需的核心文件,包括内核(vmlinuz)、引导装载程序(bootloader,如grub)的配置文件、镜像文件(initrd或initramfs)等。
    • 重要文件:vmlinuz、grub配置文件、initrd或initramfs镜像文件。
  3. /dev

    • 功能:存放设备文件,Linux中将硬件设备当作文件来处理。这些设备文件允许用户与硬件设备进行交互。
    • 重要文件:各种设备文件,如硬盘(sda、sdb等)、光驱(cdrom)、U盘(sdX1等)等。
  4. /etc

    • 功能:存放系统管理所需的配置文件和子目录。这些配置文件定义了系统的运行方式和行为。

    • 重要文件

      • passwd:记录本地用户的属性信息,如用户名、用户ID(UID)、组ID(GID)等。
      • shadow:存放用户的口令信息,包括加密后的密码、密码过期时间等。
      • hosts:定义主机名和IP地址的映射关系。
      • services:定义网络服务名和端口号的映射关系。
      • inittab:定义系统的初始化过程和行为。
      • ssh/sshd_config:SSH服务的配置文件。
  5. /home

    • 功能:存放普通用户的主目录和文件。每个用户都有一个以其用户名命名的目录。
    • 重要文件:用户的主目录和文件,如用户的文档、图片、音乐等。
  6. /lib和/lib64

    • 功能:存放系统开机所需的最基本的动态连接共享库(DLL文件)。这些库文件被多个应用程序共享。
    • 重要文件:各种动态链接库文件(.so文件)。
  7. /lost+found

    • 功能:当系统非法关机后,这里会存放一些文件。这些文件可能是由于文件系统不一致而找到的。
    • 重要文件:非法关机后恢复的文件。
  8. /media

    • 功能:系统自动识别一些设备(如U盘、光驱等)后,会将这些设备挂载到这个目录下。
    • 重要文件:挂载的设备文件。
  9. /mnt

    • 功能:系统提供该目录是为了让用户临时挂载别的文件系统的。用户可以将外部存储设备挂载在/mnt/上,然后进入该目录查看其内容。
    • 重要文件:挂载的外部存储设备文件。
  10. /opt

    • 功能:给主机额外安装软件所摆放的目录。这个目录通常用于安装第三方软件包或源码编译安装的程序。
    • 重要文件:第三方软件包或源码编译安装的程序文件。
  11. /proc

    • 功能:一个虚拟的目录,它是系统内存的映射。用户可以通过直接访问这个目录来获取系统信息。
    • 重要文件:各种虚拟文件,如cpuinfo(CPU信息)、meminfo(内存信息)等。
  12. /root

    • 功能:系统管理员(超级用户)的主目录。这个目录通常包含系统管理员的个人文件和配置。
    • 重要文件:系统管理员的主目录和文件。
  13. /sbin

    • 功能:存放系统管理员使用的系统管理程序。这些程序用于维护系统、管理设备和服务。
    • 重要文件:各种系统管理程序,如init、fsck、mount等。
  14. /srv

    • 功能:存放一些服务启动之后需要提取的数据。这个目录通常用于存放服务提供的文件和资源。
    • 重要文件:服务提供的文件和资源。
  15. /sys

    • 功能:Linux 2.6内核引入的一个新文件系统sysfs的挂载点。这个文件系统提供了对内核对象的访问。
    • 重要文件:sysfs文件系统中的文件和目录。
  16. /tmp

    • 功能:存放临时文件。这个目录通常用于存储应用程序或用户创建的临时文件。
    • 重要文件:临时文件。
  17. /usr

    • 功能:存放应用程序、命令程序文件、程序库、手册和其他文档。这个目录通常包含大量的软件和数据。

    • 重要文件

      • bin:系统用户使用的应用程序。
      • sbin:超级用户使用的比较高级的管理程序和系统守护程序。
      • src:内核源代码默认的放置目录。
      • local:存放本地安装的软件和库文件。
  18. /var

    • 功能:存放系统中不断扩充的东西,如日志文件、邮件队列、打印队列等。这个目录通常包含大量动态变化的数据。

    • 重要文件

      • log:存放系统日志文件,如messages、secure、cron等。
      • mail:存放用户的邮件文件。
      • spool:存放打印队列和邮件队列等。

三、其他目录

  1. /run

    • 功能:一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删除或清除。
    • 重要文件:系统启动和运行时的临时文件。
  2. /www(非标准目录)

    • 功能:在某些Linux发行版中,这个目录可能用于存放服务器网站相关的资源。
    • 重要文件:网站相关的文件、脚本、数据库等。

命令补充

命令用途
ls显示当前目录的文件,或指定目录
clear清屏,与Windows系统的cls功能一样
cd切换目录
pwd显示当前所在目录的路径
vim/vi文本编辑器,指定文件后,进入编辑模式,输入i,可输入字符,结束的话,先按 esc键,然后输入:,然后输入wq,保存并退出,!是强制的意思,搭配q!表示 强制退出。
mkdir创建目录,配合-p参数,遍历目录,如mkdir 123/1/2/3,会创建123目录,然 后123目录下会再创建1目录,然后1目录下创建2目录,2目录下创建3目录
rm-r参数:删除文件夹和它的所有内容;-i参数:递归删除;-f参数:强制删除
../表示当前目录的上一级目录(相对路径)
./表示当前目录(相对路径)
cat查看文件内容,全部显示
head显示前半段文件内容,加参数,如head -5 xx查看xx文件的前5行内容
tail显示后半段内容,加参数,如tail -5 xx查看xx文件的后5行内容
more查看文件内容并翻页,就是显示一段,使用空格可进行翻页
useradd添加用户,使用风格不同,这个可通过参数指定家目录等操作
adduser添加用户,使用风格不同,新手推荐这个参数,会自动添加用户的家目录等
su切换用户,若切换到比当前用户的权限高,需要输入当前用户的密码,exit返回原用户
userdel删除用户操作
deluser删除用户操作
sudo以管理员权限运行一些命令
passwd修改用户密码,使用后,输入两遍新密码即可

Linux资源耗尽

使用a lertnotify-send 等工具发送通知

 #!/bin/bash     
 while true   #死循环       
 do                  
 #do中是循环体
 notify-send "alert""attention"
  sleep 2         
 #中途停两秒
 done                
 #done脚本结束标志

可通过 touch 创建文件,或者使用 vim 或vi直接编辑,后面加上文件名,后缀为.sh,就会在编辑保存后默认创建文件

通过chmod +x filename赋予文件执行权限,再通过bash filename.sh./filename.sh运行脚本