免责声明
学习视频来自 B 站up主泷羽sec,如涉及侵权马上删除文章。
笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
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的作用
- 文件索引:inode相当于一个文件的索引,通过它可以快速定位和管理文件。操作系统通过inode号码来识别不同的文件,尽管用户通常通过文件名来访问文件,但系统内部实际上使用inode号码来定位和操作文件。
- 文件分配:inode还存储了文件数据块的物理位置信息,包括数据块的地址、大小和位置等。通过inode,文件系统可以知道文件的数据块如何分配和组织,以便有效地存储和访问文件的数据。
- 硬链接支持:inode的存在使得硬链接成为可能。多个硬链接可以共享相同的inode,从而共享相同的文件数据和元数据。即使在不同的位置创建了多个硬链接,它们实际上都指向同一个文件,节省了存储空间。
- 文件系统性能优化:通过inode,文件系统可以快速定位和访问文件的元数据和数据,而无需遍历整个文件系统。这使得文件系统的操作更高效,提高了文件系统的性能
三、INODE的查看
在Linux系统中,可以使用以下命令查看文件的inode节点:
- ls命令:通过
ls -i命令可以查看文件的inode节点编号。- stat命令:通过
stat filename命令可以查看文件的详细信息,包括inode节点编号。- find命令:通过
find /path/to/directory -inum inode_number命令可以根据inode节点编号查找文件。
软链接:不同的文件,指向另一个文件的路径。
可用性
硬链接:只能在同一文件系统中使用,不支持跨文件系统
一、文件系统的定义
文件系统定义了数据如何在存储设备(如硬盘、SSD、U盘等)上组织和检索,并提供文件和目录的结构化访问。它是操作系统与存储设备之间的桥梁,负责将用户的数据请求转换为存储设备上的物理操作。
二、文件系统的功能
- 文件命名和组织:文件系统为文件和目录(文件夹)提供命名规则和层级结构,允许用户对数据进行分门别类的管理。
- 数据存储:文件系统将数据存储在磁盘上的物理块中,并提供逻辑结构使用户能方便访问。
- 权限管理:文件系统支持用户、组等访问权限控制,以确保不同用户对文件的读取、写入、执行权限能够被正确管理。
- 文件操作:支持创建、删除、修改、复制、移动文件,以及文件的读写操作。
- 磁盘管理:管理存储空间的分配和回收,包括检测并修复存储设备上的错误,确保数据的完整性。
三、文件系统的类型
- FAT32和exFAT:主要用于U盘和便携式存储设备。FAT32文件系统支持较大的文件存储,并且具有较好的兼容性。exFAT是FAT32的扩展,提供了更好的性能和更大的文件支持。
- NTFS:Windows操作系统的默认文件系统,支持大文件、文件压缩和加密。NTFS还提供了数据校验、自动修复、快照、重复数据删除等功能,适用于高可靠性存储需求的场景。
- ext4:Linux操作系统中最常用的文件系统之一,也是ext系列文件系统的最新稳定版本。ext4在性能、容量和可靠性方面都有显著提升,支持纳秒级时间戳精度和在线文件系统扩展等功能。它适用于从桌面系统到服务器的大部分应用场景。
四、文件系统的选择
在选择文件系统时,需要考虑以下因素:
- 操作系统兼容性:确保所选文件系统与操作系统兼容。
- 性能需求:根据读写速度、并发访问量等性能需求选择合适的文件系统。
- 可靠性需求:对于需要高可靠性的存储场景,选择具有数据校验、自动修复等功能的文件系统。
- 存储需求:根据存储容量和扩展性需求选择合适的文件系统。
软链接:可以跨文件系统和操作系统使用
支持的对象
硬链接:不支持对目录创建,只能对文件创建
软链接:可以对文件和目录创建
删除的影响
硬链接:删除其中一个硬链接不会影响其他硬链接,只有当所有硬链接都被删除时,原始文件才会被删除
软链接:删除软链接不会影响原始文件,但是如果原始文件被删除,软链接将失效
具体用途
软连接:常用于方便管理,例如将复杂路径的文件链接到简单路径下,或解决文件系统空间不足的问题
硬链接:主要用于防止误删除文件
搜索文件 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文件的内容格式通常为每行代表一个用户账户,字段间以冒号(:)分隔。每行用户账户信息被划分为七个字段,具体含义如下:
- 用户名(username) :用户的登录名,也是用户的唯一标识符。
- 密码占位符(password) :在早期的Linux系统中,这个字段存储用户的加密密码。但出于安全考虑,现代Linux系统通常将加密后的密码存储在
/etc/shadow文件中,而/etc/passwd文件中的这个字段则用一个占位符(如“x”或空字符)来表示。 - 用户ID(UID) :一个唯一的十进制整数字符串,用于标识用户。在Linux系统中,UID为0的用户是root用户,具有系统的最高权限。
- 组ID(GID) :用户所属主组的唯一标识符。每个用户都有一个主组,同时可以属于多个附加组。
- 用户全名或描述信息(GECOS) :这个字段通常包含用户的全名、电话号码等描述信息。但具体包含哪些信息取决于系统的配置和管理员的设定。
- 家目录(home) :用户登录后的默认工作目录。系统通常会在用户的主目录下创建一些初始文件和目录,如
.bashrc、.profile等。 - 登录Shell(shell) :用户登录后使用的默认Shell程序。常见的Shell程序有
/bin/bash、/bin/sh等。
三、文件访问权限
/etc/passwd文件的默认权限通常是-rw-r--r--(或数字表示法644),这意味着:
- 文件所有者(通常是root用户)具有读(r)和写(w)权限。
- 所属组(通常是root组)具有读(r)权限。
- 其他所有用户(即非文件所有者和非所属组成员)也具有读(r)权限。
这样的权限设置是为了确保系统进程能够读取用户信息,同时防止非授权用户修改文件内容。
四、管理工具
管理员可以使用以下命令来管理用户账户信息:
- useradd:用于添加新的用户账户。
- usermod:用于修改现有用户账户的信息,如用户名、UID、GID、家目录、Shell等。
- userdel:用于删除现有的用户账户。
/ETC/SHADOW
一、文件作用
/etc/shadow文件相当于/etc/passwd文件的“影子”,存储了用户经过加密后的口令。由于/etc/passwd文件允许所有用户读取,这可能导致用户密码泄露的风险,因此Linux系统将用户的密码信息从/etc/passwd文件中分离出来,单独存放到/etc/shadow文件中。这样,只有root用户和具有特殊权限的用户才能访问/etc/shadow文件,从而保证了用户密码的安全性。
二、文件内容格式
/etc/shadow文件的内容格式通常为每行代表一个用户,字段间以冒号(:)分隔。每行用户信息被划分为9个字段,具体含义如下:
- 用户名:与
/etc/passwd文件中的用户名相对应。 - 加密密码:用户的加密密码,通常采用SHA512散列加密算法(原来可能采用MD5或DES加密算法)。这个字段的值是一个经过加密的字符串,表示用户的密码。
- 最后一次修改时间:表示用户最后一次修改密码的时间,是从1970年1月1日起计算的天数。
- 最小修改时间间隔:规定了从最后一次修改密码的日期起,多长时间之内不能修改密码。如果是0,则密码可以随时修改;如果是正整数,则代表密码修改后必须等待指定的天数才能再次修改。
- 密码有效期:指定了密码的有效期限,即从最后一次修改密码起,密码可以使用的最大天数。超过这个天数后,用户需要更改密码才能继续登录。
- 密码需要变更前的警告天数:当账户密码有效期快到时,系统会提前发出警告信息给此账户,提醒用户尽快重新设置密码。该字段的默认值是7天。
- 密码过期后的宽限天数:在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的。如果过了宽限天数,系统将不再允许此账户登录。
- 账号失效时间:表示账号在此字段规定的时间之外,不论密码是否过期,都将无法使用。该字段通常被使用在具有收费服务的系统中。
- 保留字段:用于功能扩展,目前通常为空。
三、文件访问权限
由于/etc/shadow文件存储了用户的加密密码信息,因此它的访问权限通常被设置为只有root用户可以读取。这样做是为了保护用户的密码信息不被非授权的用户获取。如果文件的权限发生了改变,可能是恶意攻击的迹象,需要引起注意。
四、管理工具
管理/etc/shadow文件的工具通常包括passwd命令和相关的系统配置文件,如/etc/passwd和/etc/login.defs等。这些工具和文件共同确保了系统账户的安全和管理。
组管理文件 /etc/group
/etc/group文件是Linux系统中用于管理用户组信息的重要文件。以下是对/etc/group文件的详细解析:
一、文件作用
/etc/group文件记录了Linux系统中所有用户组的信息。通过这些信息,管理员可以方便地管理用户组的权限和访问控制,从而实现更细粒度的权限管理。
二、文件内容格式
/etc/group文件的内容格式通常为每行代表一个用户组,字段间以冒号(:)分隔。每行用户组信息被划分为四个字段,具体含义如下:
- 组名:在系统上唯一的组标识符。
- 密码占位符:通常为空,表示该用户组没有设置密码。在早期的Linux系统中,这个字段可能用于存储用户组的密码,但现在已不再使用。
- 组ID(GID) :一个唯一的十进制整数字符串,用于标识用户组。每个用户组都有一个唯一的GID。
- 成员列表:属于该用户组的用户的用户名列表,使用逗号分隔。
三、文件访问权限
/etc/group文件通常对所有用户授予读(r)访问权,但仅向root用户和安全组的成员授予写(w)访问权。这是为了确保用户组信息的安全性和完整性,防止非授权用户对其进行修改。
四、管理工具
管理员可以使用以下命令来管理用户组信息:
- groupadd:用于添加新的用户组。
- groupmod:用于修改现有用户组的信息,如组名、GID等。
- 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连接的状态、地址和端口信息,以及相关的进程信息
一、定义与概念
套接字是一种抽象的数据结构,用于在网络应用程序之间提供通信接口。它可以看作是一个端点,用于发送和接收数据,使得运行在不同机器上的应用程序能够交换信息,从而实现网络功能。
二、工作原理与类型
工作原理:
- 套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口。
- 套接字利用TCP/IP协议族中的TCP或UDP协议来传送数据。
- 当创建一个套接字时,需要指定它的类型(例如TCP或UDP)、使用的协议以及绑定的端口号。
类型:
- 流式套接字(SOCK_STREAM) :基于TCP协议,面向连接,保证数据的顺序和可靠性。
- 数据报套接字(SOCK_DGRAM) :基于UDP协议,无连接,不保证数据的顺序,可以快速发送和接收数据,但可能会丢失数据包。
- 原始套接字:可以读写内核没有处理的IP数据包,用于一些协议的开发和比较底层的操作。
三、套接字编程
套接字编程是一种网络编程技术,允许应用程序通过网络发送和接收数据。以下是一些关键步骤和概念:
创建套接字:使用套接字API(如Python中的socket模块)创建一个套接字对象。
绑定地址和端口:将套接字绑定到本地主机的IP地址和端口号上。
监听连接(仅服务器):服务器套接字需要监听指定的端口,等待客户端的连接请求。
建立连接:
- 客户端:通过套接字连接到服务器指定的IP地址和端口号。
- 服务器:接受客户端的连接请求,建立连接。
数据传输:通过套接字发送和接收数据。
关闭连接:数据传输完成后,关闭套接字连接。
四、应用场景
套接字广泛应用于各种网络编程场景中,如:
- 远程命令执行:客户端发送命令给服务器,服务器执行命令并将结果返回给客户端。
- 跨平台通信:不同操作系统之间的应用程序可以通过套接字进行通信,只要它们遵循相同的网络协议。
- 实时聊天应用:使用数据报套接字实现简单的聊天功能,可以快速发送和接收消息。
- 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的工作流程通常如下:
- 检查ARP缓存:主机首先检查自己的ARP缓存,看看是否已经有目的主机的MAC地址映射。如果有,则直接使用该地址;如果没有,则进行下一步。
- 发送ARP请求:主机在网络接口层广播一个封装了ARP请求报文的帧。这个帧包含发送方的IP地址和物理地址,以及目的主机的IP地址。由于这是一个广播帧,同网段的所有主机都会收到它,但只有目的主机才会处理它。
- 接收ARP应答:目的主机收到ARP请求后,会检查请求中的IP地址是否与自己的IP地址匹配。如果匹配,则它会向发送方单播返回一个封装了ARP应答报文的帧,其中包含发送方的IP地址和物理地址,以及目的主机的IP地址和物理地址。
- 更新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
ssh是Secure 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各目录的功能及作用,以及其中包含的重要文件的列举:
一、根目录(/)
- 功能:根目录是整个文件系统的起点,所有其他目录都挂载在根目录下。
- 重要文件:通常不包含具体文件,但包含多个子目录。
二、常用目录及其功能
-
/bin
- 功能:存放系统最常用的命令和程序,如ls、cp、mv等。这些命令在单用户模式下也可以执行。
- 重要文件:无特定文件,但包含大量系统命令的二进制文件。
-
/boot
- 功能:存放启动Linux时所需的核心文件,包括内核(vmlinuz)、引导装载程序(bootloader,如grub)的配置文件、镜像文件(initrd或initramfs)等。
- 重要文件:vmlinuz、grub配置文件、initrd或initramfs镜像文件。
-
/dev
- 功能:存放设备文件,Linux中将硬件设备当作文件来处理。这些设备文件允许用户与硬件设备进行交互。
- 重要文件:各种设备文件,如硬盘(sda、sdb等)、光驱(cdrom)、U盘(sdX1等)等。
-
/etc
-
功能:存放系统管理所需的配置文件和子目录。这些配置文件定义了系统的运行方式和行为。
-
重要文件:
- passwd:记录本地用户的属性信息,如用户名、用户ID(UID)、组ID(GID)等。
- shadow:存放用户的口令信息,包括加密后的密码、密码过期时间等。
- hosts:定义主机名和IP地址的映射关系。
- services:定义网络服务名和端口号的映射关系。
- inittab:定义系统的初始化过程和行为。
- ssh/sshd_config:SSH服务的配置文件。
-
-
/home
- 功能:存放普通用户的主目录和文件。每个用户都有一个以其用户名命名的目录。
- 重要文件:用户的主目录和文件,如用户的文档、图片、音乐等。
-
/lib和/lib64
- 功能:存放系统开机所需的最基本的动态连接共享库(DLL文件)。这些库文件被多个应用程序共享。
- 重要文件:各种动态链接库文件(.so文件)。
-
/lost+found
- 功能:当系统非法关机后,这里会存放一些文件。这些文件可能是由于文件系统不一致而找到的。
- 重要文件:非法关机后恢复的文件。
-
/media
- 功能:系统自动识别一些设备(如U盘、光驱等)后,会将这些设备挂载到这个目录下。
- 重要文件:挂载的设备文件。
-
/mnt
- 功能:系统提供该目录是为了让用户临时挂载别的文件系统的。用户可以将外部存储设备挂载在/mnt/上,然后进入该目录查看其内容。
- 重要文件:挂载的外部存储设备文件。
-
/opt
- 功能:给主机额外安装软件所摆放的目录。这个目录通常用于安装第三方软件包或源码编译安装的程序。
- 重要文件:第三方软件包或源码编译安装的程序文件。
-
/proc
- 功能:一个虚拟的目录,它是系统内存的映射。用户可以通过直接访问这个目录来获取系统信息。
- 重要文件:各种虚拟文件,如cpuinfo(CPU信息)、meminfo(内存信息)等。
-
/root
- 功能:系统管理员(超级用户)的主目录。这个目录通常包含系统管理员的个人文件和配置。
- 重要文件:系统管理员的主目录和文件。
-
/sbin
- 功能:存放系统管理员使用的系统管理程序。这些程序用于维护系统、管理设备和服务。
- 重要文件:各种系统管理程序,如init、fsck、mount等。
-
/srv
- 功能:存放一些服务启动之后需要提取的数据。这个目录通常用于存放服务提供的文件和资源。
- 重要文件:服务提供的文件和资源。
-
/sys
- 功能:Linux 2.6内核引入的一个新文件系统sysfs的挂载点。这个文件系统提供了对内核对象的访问。
- 重要文件:sysfs文件系统中的文件和目录。
-
/tmp
- 功能:存放临时文件。这个目录通常用于存储应用程序或用户创建的临时文件。
- 重要文件:临时文件。
-
/usr
-
功能:存放应用程序、命令程序文件、程序库、手册和其他文档。这个目录通常包含大量的软件和数据。
-
重要文件:
- bin:系统用户使用的应用程序。
- sbin:超级用户使用的比较高级的管理程序和系统守护程序。
- src:内核源代码默认的放置目录。
- local:存放本地安装的软件和库文件。
-
-
/var
-
功能:存放系统中不断扩充的东西,如日志文件、邮件队列、打印队列等。这个目录通常包含大量动态变化的数据。
-
重要文件:
- log:存放系统日志文件,如messages、secure、cron等。
- mail:存放用户的邮件文件。
- spool:存放打印队列和邮件队列等。
-
三、其他目录
-
/run
- 功能:一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删除或清除。
- 重要文件:系统启动和运行时的临时文件。
-
/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 lert 或notify-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运行脚本