linux基础——详细篇
免责声明
学习视频来自B 站up主泷羽sec,如涉及侵权马上删除文章。
笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
linux
基础命令重现 cd(切换目录)

ls(展示所有目录)

clear(清屏)——不好截图,不做演示 pwd(显示你当前所在目录)

vim(文本编辑器)

touch(创建文件)

mkdir(新建目录)

rm(删除目录)

cp(复制文件)

mv(移动文件)

cat(查看文件)

head(查看头部内容)

tail(查看尾部内容)

more(查看文件内容并翻页)

目录介绍
/bin目录
在Kali Linux中,/bin 目录是用于存储系统中的基本二进制可执行文件的目录。这些二进制文件是系统运行所必需的,它们可以在系统的任何位置被执行,因为/bin目录已经包含在系统的环境变量$PATH中。
以下是/bin目录中常见的一些文件和它们的用途:
-
cat: 用于连接文件并打印到标准输出设备。 -
chmod: 用于更改文件的权限。 -
cp: 用于复制文件或目录。 -
date: 用于显示或设置系统时间和日期。 -
df: 用于报告文件系统的磁盘空间使用情况。 -
dmesg: 用于显示内核环缓冲区的内容。 -
echo: 用于在终端显示文本。 -
false: 一个总是返回非0退出状态的命令。 -
hostname: 用于显示或设置系统的主机名。 -
kill: 用于发送信号给进程。 -
less: 用于分页查看文本文件。 -
ln: 用于创建链接文件。 -
login: 用于登录系统。 -
ls: 用于列出目录的内容。 -
mkdir: 用于创建新的目录。 -
mount: 用于挂载文件系统。 -
mv: 用于移动或重命名文件或目录。 -
ps: 用于显示当前运行的进程。 -
pwd: 用于显示当前工作目录。 -
rm: 用于删除文件或目录。 -
rmdir: 用于删除空目录。 -
sh: 用于启动shell。 -
su: 用于切换用户。 -
sync: 用于将缓冲区数据写入磁盘。 -
true: 一个总是返回0退出状态的命令。 -
umount: 用于卸载文件系统。 -
uname: 用于显示系统信息。 -
wc: 用于计算文件的行数、单词数和字符数。 -
who: 用于显示当前登录的用户信息。
这些命令对于系统的日常管理和维护至关重要。由于它们是基本命令,因此在系统启动的早期阶段就可以使用,甚至在某些情况下,当其他目录(如/usr/bin)尚未挂载时也可以使用。

/etc目录 在Kali Linux(以及大多数类Unix操作系统)中,/etc目录是用于存储系统配置文件的中央仓库。这个目录包含了各种应用程序、服务、系统组件等的配置文件。以下是一些/etc目录中常见的子目录和文件,以及它们的用途:
常见子目录
-
/etc/apt: 包含与APT包管理器相关的配置文件,例如sources.list定义了软件源列表。 -
/etc/bash.bashrc: 系统级的Bash shell配置文件,对所有用户生效。 -
/etc/cron*: 包含与cron定时任务相关的配置文件。 -
/etc/dpkg: 包含与dpkg包管理器相关的配置文件。 -
/etc/environment: 定义系统范围的环境变量。 -
/etc/fstab: 定义文件系统挂载点以及挂载选项。 -
/etc/group: 包含用户组信息。 -
/etc/hosts: 包含本地DNS查找表,用于解析主机名到IP地址。 -
/etc/init.d: 包含系统服务的启动脚本(在较新的系统中,这部分功能可能由systemd接管)。 -
/etc/logrotate.conf: 定义日志文件的轮转策略。 -
/etc/network/interfaces: 定义网络接口的配置。 -
/etc/passwd: 包含用户账户信息。 -
/etc/shadow: 包含加密的用户密码(出于安全原因,此文件通常只有root用户可读)。 -
/etc/skel: 包含新用户主目录的模板文件。 -
/etc/ssh: 包含SSH服务的配置文件。 -
/etc/systemd: 包含systemd系统和服务管理器的配置文件(在较新的Kali版本中)。 -
/etc/timezone: 指定系统的时区。 -
/etc/updatedb.conf: 定义updatedb命令的配置,该命令用于更新数据库,以便locate命令能够快速找到文件。
常见文件
-
/etc/issue: 登录前显示的信息。 -
/etc/motd: 登录后显示的消息(Message Of The Day)。 -
/etc/mtab: 当前已挂载文件系统的列表。 -
/etc/nsswitch.conf: 定义名称服务切换(Name Service Switch)的配置,用于控制如何查找各种类型的数据(如用户、组、主机名等)。 -
/etc/resolv.conf: 定义DNS解析器的配置,包括DNS服务器的地址。
注意事项
-
直接编辑
/etc目录下的文件需要谨慎,因为错误的配置可能导致系统不稳定或无法正常工作。 -
在修改任何配置文件之前,最好先备份原始文件。
-
许多配置文件支持语法高亮和自动补全,可以使用文本编辑器(如nano、vim等)进行编辑。
总之,/etc目录是Kali Linux系统中非常重要的部分,它包含了维持系统正常运行所需的各种配置信息。

/etc/init.d目录
-
用途:
/etc/init.d目录包含了系统服务的启动和停止脚本。这些脚本通常遵循SysV init风格,尽管在较新的Kali版本中,systemd可能已经成为主要的初始化系统和服务管理器。 -
脚本功能:每个脚本都可以通过特定的命令来控制相关的服务,例如:
-
service script_name start:启动服务。 -
service script_name stop:停止服务。 -
service script_name restart:重启服务。 -
service script_name status:检查服务的状态。
-
-
与
/etc/rc*.d的关系:虽然/etc/rc.d不存在,但你可能会看到/etc/rc*.d这样的目录(例如/etc/rc0.d,/etc/rc1.d,/etc/rc2.d, 等)。这些目录包含了指向/etc/init.d中脚本的符号链接,用于控制系统在不同运行级别下的行为。运行级别决定了系统启动时哪些服务会被启动。
迁移到systemd
在较新的Kali Linux版本中,systemd已经取代了传统的SysV init系统。systemd使用自己的服务文件格式,并存储在/lib/systemd/system或/etc/systemd/system目录中。如果你正在处理一个使用systemd的系统,你应该查找这些目录中的服务文件,而不是/etc/init.d目录。
总结
-
在Kali Linux中,
/etc/init.d是用于存放服务启动脚本的标准目录。 -
/etc/rc*.d目录包含指向/etc/init.d脚本的符号链接,用于控制不同运行级别下的服务启动。 -
较新的Kali版本可能使用systemd作为初始化系统和服务管理器,此时应查找
/lib/systemd/system或/etc/systemd/system目录中的服务文件。

/home/kali目录
在Kali Linux中,/home/kali目录是默认的用户主目录,专为安装Kali Linux时创建的kali用户所设。以下是关于该目录的一些详细信息:
目录结构
/home/kali:-
用途:这是
kali用户的个人工作空间,包含该用户的所有文件和设置。 - 内容:该目录通常包含以下子目录和文件:
-
**
Desktop**:存放桌面文件和快捷方式。 -
**
Documents**:存放文档文件。 -
**
Downloads**:存放从网络下载的文件。 -
**
Music**:存放音乐文件。 -
**
Pictures**:存放图片文件。 -
**
Videos**:存放视频文件。 -
**
.bashrc**:Bash shell的配置文件,包含用户特定的shell设置。 -
**
.profile**:用户的shell配置文件,包含一些基本的用户环境设置。 -
**
.config**:存放应用程序的配置文件。 -
**
.local**:存放本地数据,通常是应用程序创建的文件。 -
**
.ssh**:存放SSH密钥和其他安全相关文件(如果已配置)。
-
-
用户主目录的重要性
-
个性化设置:用户可以在其主目录中自定义设置,包括桌面环境、应用程序配置等。
-
数据存储:用户可以将个人文件存储在主目录中,确保数据的安全性和隔离性。
-
权限管理:主目录的权限设置确保只有用户本人和其他具有适当权限的用户可以访问其中的内容。
注意事项
-
权限:默认情况下,只有
kali用户和root用户可以访问/home/kali目录。其他用户需要适当的权限才能访问。 -
备份:由于主目录包含重要的个人数据和设置,建议定期备份该目录以防止数据丢失。
总之,/home/kali目录是Kali Linux中kali用户的个人工作空间,包含了该用户的所有文件和设置。合理管理和使用该目录可以提高工作效率并确保数据安全。

/lib目录
在Kali Linux(以及大多数类Unix操作系统)中,/lib目录是用于存储共享库文件的关键目录之一。共享库(也称为动态链接库)包含可被多个程序同时使用的代码和数据,这样可以节省内存并提高效率。以下是关于/lib目录的一些详细信息:
目录结构
/lib:-
用途:存放系统核心和基础系统工具所需的共享库文件。
- 内容:该目录通常包含以下类型的文件:
-
.so文件:这些是共享对象文件,包含可在运行时动态链接的代码和数据。 -
内核模块:在某些系统中,
/lib目录也可能包含内核模块,这些模块可以在需要时加载到内核中。
-
-
与其他相关目录的区别
-
**
/lib64**:在64位系统上,/lib64目录用于存放64位的共享库文件,而/lib目录则用于存放32位的共享库文件(如果系统同时支持32位和64位应用程序)。 -
**
/usr/lib**:这个目录也包含共享库文件,但通常是针对用户级应用程序的,而不是系统核心工具。 -
**
/usr/local/lib**:这个目录用于存放通过/usr/local安装的软件包的共享库文件。
重要性
-
依赖管理:共享库文件对于程序的正常运行至关重要,因为许多程序依赖于这些库来执行其功能。
-
系统稳定性:正确管理和维护
/lib目录中的文件对于保持系统的稳定性和安全性非常重要。
注意事项
-
权限:
/lib目录及其内容通常只有root用户可写,以防止意外修改或删除关键文件。 -
备份:由于
/lib目录包含重要的系统库文件,建议在进行重大系统更改或升级之前备份该目录。
总之,/lib目录在Kali Linux中扮演着至关重要的角色,它存储了系统核心和基础工具所需的共享库文件。合理管理和维护这个目录对于确保系统的稳定性和功能性至关重要。

/sbin目录
在Kali Linux(以及大多数类Unix操作系统)中,/sbin目录是用于存储系统管理工具和二进制可执行文件的目录。这些工具通常用于系统维护和管理任务,并且通常只应由系统管理员(root用户)运行。以下是关于/sbin目录的一些详细信息:
目录结构
/sbin:-
用途:存放系统管理工具和二进制可执行文件,这些工具主要用于系统级别的操作和维护。
- 内容:该目录通常包含以下类型的工具和命令:
-
**
ifconfig**:用于配置网络接口。 -
**
init**:用于启动和停止系统运行级别。 -
**
ip**:用于配置和管理网络接口和路由。 -
**
mount**:用于挂载文件系统。 -
**
reboot**:用于重启系统。 -
**
shutdown**:用于关闭系统。 -
**
fdisk**:用于磁盘分区管理。 -
**
fsck**:用于检查和修复文件系统错误。 -
**
mkfs**:用于创建文件系统。 -
**
route**:用于管理网络路由表。 -
**
sysctl**:用于配置内核参数。 -
**
systemctl**:用于管理系统服务(在较新的系统中,特别是使用systemd的系统)。
-
-
与其他相关目录的区别
-
**
/bin**:这个目录包含基本的用户命令和工具,这些工具不仅适用于系统管理员,也适用于普通用户。 -
**
/usr/sbin**:这个目录也包含系统管理工具,但通常是针对更高级或不太常用的工具。 -
**
/usr/local/sbin**:这个目录用于存放通过/usr/local安装的软件包的系统管理工具。
重要性
-
系统维护:
/sbin目录中的工具对于系统管理员执行日常维护任务至关重要。 -
安全性:由于这些工具通常具有较高的权限,因此只应由root用户或具有适当权限的用户运行,以防止误操作或恶意使用。
注意事项
-
权限:
/sbin目录及其内容通常只有root用户可写,以防止意外修改或删除关键文件。 -
备份:由于
/sbin目录包含重要的系统管理工具,建议在进行重大系统更改或升级之前备份该目录。
总之,/sbin目录在Kali Linux中扮演着至关重要的角色,它存储了系统管理工具和二进制可执行文件,这些工具主要用于系统级别的操作和维护。合理管理和维护这个目录对于确保系统的稳定性和功能性至关重要。

/tmp目录
在Kali Linux(以及大多数类Unix操作系统)中,/tmp目录是用于存储临时文件的特殊目录。以下是关于/tmp目录的一些详细信息:
目录结构
/tmp:-
用途:提供一个临时存储空间,供程序和用户存储临时文件。这些文件通常是短期的,程序运行结束后可以被删除。
-
内容:该目录通常包含各种程序生成的临时文件,例如缓存文件、日志文件、会话数据等。
-
特性
-
临时性:
/tmp目录中的文件通常在系统重启或定期清理时被删除。许多程序在启动时会清理旧的临时文件,以确保有足够的空间。 -
权限:
/tmp目录通常具有宽松的权限设置,以便多个用户和程序可以读写该目录。然而,这也意味着用户需要注意保护自己的临时文件,以防止未经授权的访问或删除。
注意事项
-
安全性:由于
/tmp目录具有宽松的权限设置,恶意程序可能会利用该目录进行攻击。因此,建议用户避免在/tmp目录中存储敏感数据。 -
磁盘空间管理:
/tmp目录可能会占用大量磁盘空间,特别是在长时间运行的系统上。建议定期监控和清理该目录,以确保有足够的磁盘空间供其他重要任务使用。 -
备份:由于
/tmp目录中的文件通常是临时的,因此通常不需要备份该目录。然而,如果某些临时文件包含重要数据,建议用户将其移动到其他安全位置。
总之,/tmp目录在Kali Linux中扮演着重要的角色,它提供了一个临时存储空间,供程序和用户存储临时文件。合理管理和使用该目录可以提高系统的效率和安全性。

/root目录
在Kali Linux(以及大多数类Unix操作系统)中,/root目录是系统管理员(即root用户)的主目录。以下是关于/root目录的一些详细信息:
目录结构
/root:-
用途:这是root用户的个人工作空间,包含该用户的所有文件和设置。
- 内容:该目录通常包含以下子目录和文件:
-
**
Desktop**:存放桌面文件和快捷方式。 -
**
Documents**:存放文档文件。 -
**
Downloads**:存放从网络下载的文件。 -
**
Music**:存放音乐文件。 -
**
Pictures**:存放图片文件。 -
**
Videos**:存放视频文件。 -
**
.bashrc**:Bash shell的配置文件,包含用户特定的shell设置。 -
**
.profile**:用户的shell配置文件,包含一些基本的用户环境设置。 -
**
.config**:存放应用程序的配置文件。 -
**
.local**:存放本地数据,通常是应用程序创建的文件。 -
**
.ssh**:存放SSH密钥和其他安全相关文件(如果已配置)。
-
-
用户主目录的重要性
-
个性化设置:root用户可以在其主目录中自定义设置,包括桌面环境、应用程序配置等。
-
数据存储:root用户可以将个人文件存储在主目录中,确保数据的安全性和隔离性。
-
权限管理:主目录的权限设置确保只有root用户本人和其他具有适当权限的用户可以访问其中的内容。
注意事项
-
权限:默认情况下,只有root用户可以访问
/root目录。其他用户需要适当的权限才能访问。 -
安全性:由于root用户拥有系统的最高权限,
/root目录中的文件和设置对系统安全至关重要。建议定期审查和更新该目录中的内容,以确保系统的安全性。 -
备份:由于
/root目录包含重要的系统管理文件和个人数据,建议定期备份该目录以防止数据丢失。
总之,/root目录在Kali Linux中扮演着至关重要的角色,它存储了root用户的个人工作空间和相关设置。合理管理和维护这个目录对于确保系统的稳定性和安全性至关重要。

/mnt目录
在Kali Linux(以及大多数类Unix操作系统)中,/mnt目录是一个标准的挂载点,用于临时挂载文件系统。以下是关于/mnt目录的一些详细信息:
目录结构
/mnt:-
用途:提供一个标准的挂载点,用于临时挂载外部文件系统,如USB驱动器、CD/DVD、网络文件系统等。
-
内容:该目录通常在需要时由系统管理员手动挂载文件系统,挂载点可以是
/mnt目录下的子目录,例如/mnt/usb、/mnt/cdrom、/mnt/network等。
-
特性
-
临时性:
/mnt目录中的挂载点是临时的,通常在系统重启后不会自动挂载。 -
灵活性:
/mnt目录允许系统管理员根据需要创建任意数量的子目录作为挂载点。 -
权限管理:
/mnt目录及其子目录的权限设置可以根据需要进行调整,以确保只有合适的用户和组可以访问挂载的文件系统。
注意事项
-
挂载操作:挂载文件系统时,需要使用
mount命令,并指定正确的设备名称和挂载点。例如:sudo mount /dev/sdb1 /mnt/usb这条命令将
/dev/sdb1设备(假设是一个USB驱动器)挂载到/mnt/usb目录。 -
卸载操作:在不再需要挂载的文件系统时,应该使用
umount命令卸载它。例如:sudo umount /mnt/usb这条命令将卸载
/mnt/usb目录中的文件系统。 -
权限:挂载和卸载文件系统通常需要root权限,因此建议使用
sudo命令执行这些操作。 -
备份:虽然
/mnt目录本身通常不需要备份,但挂载的文件系统中的数据可能需要备份,以防止数据丢失。
总之,/mnt目录在Kali Linux中扮演着重要的角色,它提供了一个标准的挂载点,用于临时挂载外部文件系统。合理管理和使用该目录可以提高系统的灵活性和可用性。
/lost+found目录
在Kali Linux(以及大多数类Unix操作系统)中,/lost+found目录是一个特殊的目录,用于存放文件系统检查工具(如fsck)在检查和修复文件系统时发现的孤立文件。以下是关于/lost+found目录的一些详细信息:
目录结构
/lost+found:-
用途:存放文件系统检查工具在修复过程中发现的孤立文件。这些文件可能是由于系统崩溃、非正常关机或其他原因导致的文件系统损坏而产生的。
-
内容:该目录通常包含一些零散的文件和目录,这些文件和目录没有明确的归属路径,因此被放置在
/lost+found目录中。
-
特性
-
自动创建:
/lost+found目录通常在文件系统创建时自动创建,并且具有特殊的权限设置,以确保只有root用户可以写入该目录。 -
临时性:
/lost+found目录中的文件通常是临时的,系统管理员需要定期检查和清理该目录,以恢复或删除孤立文件。
注意事项
-
文件恢复:系统管理员可以使用
fsck工具检查和修复文件系统,并将发现的孤立文件放置在/lost+found目录中。用户可以检查该目录中的文件,尝试恢复重要的数据。 -
权限管理:
/lost+found目录通常只有root用户可写,以防止未经授权的修改。用户需要适当的权限才能读取和删除该目录中的文件。 -
备份:虽然
/lost+found目录本身通常不需要备份,但其中的孤立文件可能包含重要的数据,建议定期检查和备份该目录中的文件。
示例操作
-
运行文件系统检查:
sudo fsck /dev/sda1这条命令将检查
/dev/sda1分区上的文件系统,并将发现的孤立文件放置在/lost+found目录中。 -
查看
/lost+found目录中的文件:ls /lost+found -
恢复孤立文件: 如果发现重要的孤立文件,可以将其移动到合适的位置进行恢复。
总之,/lost+found目录在Kali Linux中扮演着重要的角色,它提供了一个存放孤立文件的临时空间,帮助系统管理员恢复因文件系统损坏而丢失的数据。合理管理和使用该目录可以提高系统的可靠性和数据安全性。

/proc目录
在Kali Linux(以及大多数类Unix操作系统)中,/proc目录是一个虚拟文件系统,提供对内核数据结构的访问。这个目录并不占用磁盘空间,而是直接从内存中读取数据。以下是关于/proc目录的一些详细信息:
目录结构
/proc:-
用途:提供一个接口,用于访问内核和系统状态信息,以及运行时的内核参数。
- 内容:该目录包含许多子目录和文件,每个文件和子目录都提供特定类型的信息或控制接口。例如:
-
**
/proc/cpuinfo**:包含关于CPU的信息。 -
**
/proc/meminfo**:包含关于内存使用情况的信息。 -
**
/proc/partitions**:包含关于磁盘分区的信息。 -
**
/proc/version**:包含内核版本信息。 -
**
/proc/<pid>**:每个正在运行的进程都有一个对应的子目录,包含关于该进程的信息,如状态、文件描述符、环境变量等。
-
-
特性
-
动态性:
/proc目录中的内容是动态生成的,随着系统状态的变化而变化。 -
只读性:大多数
/proc文件都是只读的,用户可以读取其中的信息,但不能修改。 -
虚拟性:
/proc是一个虚拟文件系统,不占用磁盘空间,数据直接从内存中读取。
注意事项
-
权限管理:
/proc目录中的某些文件和子目录可能具有特定的权限设置,只有具有适当权限的用户才能访问。 -
安全性:由于
/proc目录提供对内核和系统状态的访问,恶意用户可能会利用这些信息进行攻击。因此,建议用户避免在不安全的环境中暴露这些信息。
示例操作
-
查看CPU信息:
cat /proc/cpuinfo -
查看内存使用情况:
cat /proc/meminfo -
查看进程信息:
ls /proc这条命令将列出所有正在运行的进程的PID。你可以进入特定PID的目录(如
/proc/1234)来查看该进程的详细信息。
总之,/proc目录在Kali Linux中扮演着重要的角色,它提供了一个接口,用于访问内核和系统状态信息。合理使用该目录可以帮助用户监控和管理系统。

/var目录 在Kali Linux(以及大多数类Unix操作系统)中,/var目录用于存储可变数据,即那些在系统运行过程中会经常改变的数据。以下是关于/var目录的一些详细信息:
目录结构
/var:-
用途:存放系统运行过程中生成的可变数据,如日志文件、缓存文件、临时文件等。
- 内容:该目录通常包含以下子目录和文件:
-
**
/var/log**:存放系统日志文件,如系统消息、应用程序日志等。 -
**
/var/cache**:存放应用程序的缓存文件,以提高性能。 -
**
/var/spool**:存放等待处理的数据,如打印队列、邮件队列等。 -
**
/var/tmp**:存放临时文件,这些文件在系统重启后可能仍然保留。 -
**
/var/lib**:存放应用程序的可变数据,如数据库文件等。 -
**
/var/mail**:存放用户邮件文件。 -
**
/var/run**:存放运行时进程ID(PID)文件。 -
**
/var/lock**:存放文件锁,用于防止多个进程同时修改同一资源。
-
-
特性
-
可变性:
/var目录中的数据是动态变化的,随着系统运行和应用程序的使用而变化。 -
权限管理:
/var目录及其子目录通常具有特定的权限设置,以确保只有合适的用户和组可以访问和修改其中的数据。
注意事项
-
备份:由于
/var目录包含重要的系统数据,建议定期备份该目录以防止数据丢失。 -
磁盘空间管理:
/var目录可能会占用大量磁盘空间,特别是在长时间运行的系统上。建议定期监控和清理该目录,以确保有足够的磁盘空间供其他重要任务使用。 -
安全性:由于
/var目录包含敏感的系统数据,如日志文件和缓存文件,建议用户避免在不安全的环境中暴露这些信息。
总之,/var目录在Kali Linux中扮演着重要的角色,它提供了一个存储可变数据的场所,帮助系统管理员管理和维护系统的运行状态。合理使用该目录可以提高系统的可靠性和性能。

/uer目录
在Kali Linux(以及大多数类Unix操作系统)中,/usr目录是一个重要的系统目录,用于存储系统级的用户程序和数据。以下是关于/usr目录的一些详细信息:
目录结构
/usr:-
用途:存放系统级的用户程序、库文件、文档等。
- 内容:该目录通常包含以下子目录和文件:
-
**
/usr/bin**:存放用户可执行的二进制文件。 -
**
/usr/sbin**:存放系统管理员可执行的二进制文件。 -
**
/usr/lib**:存放共享库文件。 -
**
/usr/local**:存放通过/usr/local安装的软件包。 -
**
/usr/share**:存放共享的数据文件,如文档、图标、字体等。 -
**
/usr/src**:存放源代码文件。 -
**
/usr/include**:存放C/C++头文件。 -
**
/usr/games**:存放游戏程序(在某些系统中)。
-
-
特性
-
系统级数据:
/usr目录中的数据是系统级的,适用于所有用户。 -
只读性:大多数
/usr目录中的文件和子目录都是只读的,用户可以读取其中的信息,但不能修改。 -
共享性:
/usr目录中的文件和子目录是共享的,多个用户可以同时访问和使用这些数据。
注意事项
-
权限管理:
/usr目录及其子目录通常具有特定的权限设置,以确保只有合适的用户和组可以访问和修改其中的数据。 -
备份:由于
/usr目录包含重要的系统数据和用户数据,建议定期备份以防止数据丢失。 -
安全性:由于
/usr目录包含敏感的系统数据,如可执行文件和库文件,建议用户避免在不安全的环境中暴露这些信息。
总之,/usr目录在Kali Linux中扮演着重要的角色,它提供了一个存储系统级用户程序和数据的场所,帮助系统管理员管理和维护系统的运行状态。合理使用该目录可以提高系统的可靠性和性能。

/usr/bin目录
在Kali Linux(以及大多数类Unix操作系统)中,/usr/bin目录是一个重要的系统目录,用于存放用户可执行的二进制文件。以下是关于/usr/bin目录的一些详细信息:
目录结构
/usr/bin:-
用途:存放用户可执行的二进制文件,这些文件通常是系统级的工具和应用程序。
- 内容:该目录通常包含各种用户可执行的二进制文件,例如:
-
cat:用于连接文件并打印到标准输出设备。 -
chmod:用于更改文件的权限。 -
cp:用于复制文件或目录。 -
date:用于显示或设置系统时间和日期。 -
df:用于报告文件系统的磁盘空间使用情况。 -
grep:用于在文件中搜索匹配的行。 -
ls:用于列出目录的内容。 -
mkdir:用于创建新的目录。 -
mv:用于移动或重命名文件或目录。 -
ps:用于显示当前运行的进程。 -
rm:用于删除文件或目录。 -
tar:用于打包和解包文件。 -
touch:用于创建空文件或更新文件的修改时间。
-
-
特性
-
系统级工具:
/usr/bin目录中的文件是系统级的工具和应用程序,适用于所有用户。 -
只读性:大多数
/usr/bin目录中的文件都是只读的,用户可以读取其中的信息,但不能修改。 -
共享性:
/usr/bin目录中的文件和子目录是共享的,多个用户可以同时访问和使用这些数据。
注意事项
-
权限管理:
/usr/bin目录及其文件通常具有特定的权限设置,以确保只有合适的用户和组可以访问和执行这些文件。 -
安全性:由于
/usr/bin目录包含可执行的二进制文件,恶意用户可能会利用这些文件进行攻击。因此,建议用户避免在不安全的环境中暴露这些信息。 -
备份:虽然
/usr/bin目录本身通常不需要备份,但其中的可执行文件可能包含重要的系统工具,建议定期备份以防止数据丢失。
总之,/usr/bin目录在Kali Linux中扮演着重要的角色,它提供了一个存放用户可执行二进制文件的场所,帮助系统管理员管理和维护系统的运行状态。合理使用该目录可以提高系统的可靠性和性能。

/usr/sbin目录
在Kali Linux(以及大多数类Unix操作系统)中,/usr/sbin目录用于存放系统管理员使用的二进制可执行文件。以下是关于/usr/sbin目录的一些详细信息:
目录结构
/usr/sbin:-
用途:存放系统管理工具和二进制可执行文件,这些工具主要用于系统级别的操作和维护。
- 内容:该目录通常包含以下类型的工具和命令:
-
adduser:用于添加新用户。 -
apt-get:用于管理APT包管理器的软件包。 -
dpkg:用于管理Debian包管理器的软件包。 -
ifconfig:用于配置网络接口(在较新的系统中,可能被ip命令取代)。 -
init:用于启动和停止系统运行级别。 -
ip:用于配置和管理网络接口和路由。 -
mount:用于挂载文件系统。 -
reboot:用于重启系统。 -
shutdown:用于关闭系统。 -
systemctl:用于管理系统服务(在较新的系统中,特别是使用systemd的系统)。 -
usermod:用于修改用户账户。
-
-
特性
-
系统管理工具:
/usr/sbin目录中的工具主要用于系统管理任务,通常需要较高的权限(如root权限)才能运行。 -
只读性:大多数
/usr/sbin目录中的文件都是只读的,用户可以读取其中的信息,但不能修改。 -
共享性:
/usr/sbin目录中的文件和子目录是共享的,多个用户可以同时访问和使用这些数据。
注意事项
-
权限管理:
/usr/sbin目录及其文件通常具有特定的权限设置,以确保只有合适的用户和组可以访问和执行这些文件。 -
安全性:由于
/usr/sbin目录包含重要的系统管理工具,恶意用户可能会利用这些工具进行攻击。因此,建议用户避免在不安全的环境中暴露这些信息。 -
备份:虽然
/usr/sbin目录本身通常不需要备份,但其中的可执行文件可能包含重要的系统工具,建议定期备份以防止数据丢失。
总之,/usr/sbin目录在Kali Linux中扮演着至关重要的角色,它存储了系统管理工具和二进制可执行文件,这些工具主要用于系统级别的操作和维护。合理管理和维护这个目录对于确保系统的稳定性和功能性至关重要。

ssh(远程连接工具)
Kali Linux中的SSH(Secure Shell)是一种安全的网络协议,用于在不安全的网络上安全地进行远程登录和其他网络服务操作。通过SSH,可以加密所有传输的数据,防止DNS欺骗和IP欺骗,并且传输的数据是经过压缩的,从而加快传输速度。
在Kali中配置SSH服务并开机自动启动
要在Kali Linux中配置SSH服务并使其开机自动启动,可以按照以下步骤操作:
-
修改SSH配置文件:
使用
vim编辑器打开/etc/ssh/sshd_config文件,将PermitRootLogin prohibit-password修改为PermitRootLogin yes,并去掉#PasswordAuthentication no前面的注释,将其修改为YES。 -
设置开机启动:
执行命令
systemctl enable ssh,以设置SSH服务开机自启动。 -
重启SSH服务:
执行命令
systemctl restart ssh,以重启SSH服务。 -
查看22端口服务状态:
使用命令
netstat -apn | grep ssh,查看SSH服务是否已经开启。
Kali Linux SSH的高级应用
-
使用nohup在远程主机上运行程序:
通过
nohup命令,可以在关闭终端后仍然保持远程主机上的程序运行。
Kali Linux SSH的安全性
-
使用基于密钥的身份验证:
创建强SSH密钥对,并启用基于密钥的身份验证,是加强SSH安全性的有效方法。
-
更改SSH端口号:
将SSH端口从默认的22端口更改为非标准高端口,可以减少被攻击的可能性。
-
禁用SSH根登录:
禁用root登录可以增加一层额外的安全性,因为要求用户以普通用户身份登录,然后在需要时升级权限。
通过以上步骤,可以确保Kali Linux中的SSH服务安全、高效地运行,为远程管理和数据传输提供强有力的支持。
chmod(权限设置)
在Kali Linux(以及大多数类Unix操作系统)中,chmod是一个用于更改文件或目录权限的命令行工具。权限管理是Unix和类Unix系统中的一个重要概念,它决定了用户对文件和目录的访问级别。以下是关于chmod命令的一些详细信息:
chmod命令的基本用法
chmod命令的基本语法如下:
chmod [选项] [权限模式] 文件或目录
权限模式
权限模式可以是三种形式之一:
-
符号形式:使用
+、-和=符号来添加、删除或设置权限。-
+:添加权限。 -
-:删除权限。 -
=:设置权限。
例如:
chmod u+x file # 给文件所有者添加执行权限 chmod g-r file # 删除文件所属组的读权限 chmod o+w file # 给其他用户添加写权限 chmod u=rwx,g=rx,o=r file # 设置文件所有者的权限为rwx,所属组的权限为rx,其他用户的权限为r -
-
八进制形式:使用三位八进制数来表示权限。
-
每一位分别代表用户(u)、组(g)和其他(o)的权限。
-
每一位可以是0到7之间的数字,分别表示没有权限(0)、读权限(4)、写权限(2)和执行权限(1)的组合。
例如:
chmod 755 file # 设置文件权限为rwxr-xr-x chmod 644 file # 设置文件权限为rw-r--r-- -
-
参考文件形式:使用另一个文件的权限作为参考。
- 例如:
chmod --reference=reference_file file # 将file的权限设置为与reference_file相同
- 例如:
常见选项
-
-R:递归地更改目录及其内容的权限。chmod -R 755 directory # 递归地设置directory及其内容的权限为rwxr-xr-x -
-v:显示详细信息,列出每个文件或目录的权限更改情况。chmod -v 755 file # 显示file的权限更改情况 -
-c:仅显示更改的文件或目录的权限信息。chmod -c 755 file # 仅显示file的权限更改信息
注意事项
-
权限管理:合理设置文件和目录的权限对于系统的安全性和功能性至关重要。确保只有合适的用户和组可以访问和修改敏感数据。
-
权限继承:目录的权限会影响其子目录和文件的权限。使用
-R选项可以递归地更改目录及其内容的权限。 -
权限冲突:在设置权限时,符号形式和八进制形式的权限模式可能会产生冲突。确保权限模式的设置符合预期。
总之,chmod命令在Kali Linux中扮演着重要的角色,它提供了一个灵活的工具来管理文件和目录的权限。合理使用该命令可以提高系统的可靠性和安全性。
chown(改变当前所处的用户和所处的用户组)
在Kali Linux(以及大多数类Unix操作系统)中,chown(change owner)是一个用于更改文件或目录所有者的命令行工具。权限管理是Unix和类Unix系统中的一个重要概念,它决定了用户对文件和目录的访问级别。以下是关于chown命令的一些详细信息:
chown命令的基本用法
chown命令的基本语法如下:
chown [选项] 用户名[:组名] 文件或目录
常见选项
-
-R:递归地更改目录及其内容的拥有者和组。chown -R username:groupname directory # 递归地设置directory及其内容的拥有者和组 -
-v:显示详细信息,列出每个文件或目录的拥有者和组更改情况。chown -v username:groupname file # 显示file的拥有者和组更改情况 -
-c:仅显示更改的文件或目录的拥有者和组信息。chown -c username:groupname file # 仅显示file的拥有者和组更改信息
注意事项
-
权限管理:合理设置文件和目录的所有者和组对于系统的安全性和功能性至关重要。确保只有合适的用户和组可以访问和修改敏感数据。
-
权限继承:目录的拥有者和组会影响其子目录和文件的拥有者和组。使用
-R选项可以递归地更改目录及其内容的拥有者和组。 -
权限冲突:在设置拥有者和组时,确保权限模式的设置符合预期。
示例
假设你想将文件example.txt的所有者更改为用户john,并将其组更改为developers,你可以使用以下命令:
chown john:developers example.txt
如果你想递归地更改目录my_directory及其所有子目录和文件的拥有者和组,你可以使用以下命令:
chown -R john:developers my_directory
总之,chown命令在Kali Linux中扮演着重要的角色,它提供了一个灵活的工具来管理文件和目录的所有者和组。合理使用该命令可以提高系统的可靠性和安全性。
useradd & adduser
adduser
在Kali Linux(以及大多数基于Debian的Linux发行版)中,adduser命令用于添加新用户到系统中。这个命令比useradd命令提供了更多的交互性和用户友好性,适合于日常使用。以下是关于adduser命令的一些详细信息:
adduser命令的基本用法
adduser命令的基本语法如下:
adduser [选项] 用户名
常见选项
-
--disabled-password:创建一个没有设置密码的用户账户,通常用于服务账户。 -
--gecos:设置用户的GECOS字段,这是一个描述用户信息的字符串,通常包括全名、办公室位置、电话号码等。 -
--group:将新用户添加到指定的组中。 -
--home:指定新用户的家目录路径。 -
--shell:指定新用户的默认shell。 -
--system:创建一个系统用户账户,通常用于服务账户。
示例
创建一个普通用户
sudo adduser newuser
运行这个命令后,系统会提示你输入新用户的密码以及其他一些可选信息。
创建一个系统用户
sudo adduser --system --group sudo --home /home/newuser --shell /bin/bash newuser
这个命令会创建一个系统用户newuser,并将其添加到sudo组,家目录设置为/home/newuser,默认shell设置为/bin/bash。
注意事项
-
权限管理:添加新用户时,确保分配合适的权限和组,以确保系统的安全性和功能性。
-
密码策略:为新用户设置强密码,并遵循系统的密码策略。
-
用户信息:填写完整的GECOS字段,以便更好地识别和管理用户。
总之,adduser命令在Kali Linux中提供了一个简单而强大的工具来添加新用户。合理使用该命令可以提高系统的管理效率和安全性。
useradd
在Kali Linux(以及大多数基于Unix和Linux的操作系统)中,useradd命令用于在系统中创建新的用户账户。这个命令比adduser命令提供了更少的交互性,但更适合于脚本编写和自动化任务。以下是关于useradd命令的一些详细信息:
useradd命令的基本用法
useradd命令的基本语法如下:
useradd [选项] 用户名
常见选项
-
-c:指定用户的描述信息(GECOS字段)。 -
-d:指定用户的家目录路径。 -
-e:指定用户的账户过期日期。 -
-f:指定密码过期后的天数。 -
-g:指定用户的主组。 -
-G:指定用户的附加组。 -
-m:创建用户的家目录。 -
-M:不创建用户的家目录。 -
-N:不创建用户所属的组。 -
-o:允许创建具有相同UID的用户。 -
-p:指定用户的加密密码。 -
-r:创建一个系统用户。 -
-s:指定用户的默认shell。 -
-u:指定用户的UID。
示例
创建一个普通用户
sudo useradd -m newuser
这个命令会创建一个名为newuser的用户,并为其创建家目录。
创建一个系统用户
sudo useradd -r -s /bin/false newuser
这个命令会创建一个系统用户newuser,并将其默认shell设置为/bin/false,这样用户就不能登录到系统。
注意事项
-
权限管理:创建新用户时,确保分配合适的权限和组,以确保系统的安全性和功能性。
-
密码设置:新创建的用户没有设置密码,需要使用
passwd命令为新用户设置密码。 -
用户信息:填写完整的GECOS字段,以便更好地识别和管理用户。
总之,useradd命令在Kali Linux中提供了一个强大的工具来创建新用户。合理使用该命令可以提高系统的管理效率和安全性。
userdel(删除用户)
在Kali Linux(以及大多数基于Unix和Linux的操作系统)中,userdel命令用于删除用户账户及其相关文件。以下是关于userdel命令的一些详细信息:
userdel命令的基本用法
userdel命令的基本语法如下:
userdel [选项] 用户名
常见选项
-
-r:递归地删除用户的家目录及其内容。 -
-f:强制删除用户,即使用户的家目录或邮箱仍然存在。
示例
删除一个普通用户
sudo userdel newuser
这个命令会删除名为newuser的用户,但不会删除其家目录和邮箱。
删除一个用户及其家目录
sudo userdel -r newuser
这个命令会删除名为newuser的用户,并递归地删除其家目录及其内容。
注意事项
-
权限管理:删除用户时,确保只删除不再需要的用户账户,以避免误删重要账户。
-
数据备份:在删除用户之前,建议备份用户的重要数据,以防止数据丢失。
-
依赖关系:检查系统中是否有其他用户或服务依赖于要删除的用户,以避免破坏系统的完整性。
总之,userdel命令在Kali Linux中提供了一个简单而强大的工具来删除用户账户。合理使用该命令可以提高系统的管理效率和安全性。
sudo(以管理员权限执行)
在Kali Linux中,sudo命令是一个非常重要的工具,它允许普通用户执行需要root权限的命令。通过使用sudo,用户可以在不需要切换到root用户的情况下,执行系统管理任务,从而提高了系统的安全性和管理的便利性。
sudo命令的基本用法
sudo命令的基本语法如下:
sudo [选项] 命令
例如,要使用sudo更新系统软件包,可以执行以下命令:
sudo apt-get update
sudo命令的常见选项
-
-i:以root用户身份运行命令,并切换到root用户的shell。 -
-l:列出当前用户可以执行的命令。 -
-V:显示sudo的版本信息。
注意事项
-
使用
sudo时,应确保当前用户已被添加到/etc/sudoers文件中,否则将无法使用sudo命令。 -
sudo命令不应频繁使用,以避免潜在的安全风险。
总之,sudo命令在Kali Linux中扮演着重要的角色,它提供了一个安全且灵活的方式来执行需要更高权限的命令。合理使用sudo命令不仅可以提高工作效率,还可以增强系统的安全性。
password(修改用户密码)
在Kali Linux中,密码管理是一个重要的安全方面,它涉及到如何设置、修改和重置密码。以下是一些关于Kali Linux中密码管理的详细信息:
设置密码策略
在Kali Linux中,可以通过修改/etc/pam.d/common-password文件来设置密码策略。以下是设置密码策略的步骤:
-
打开终端,输入以下命令来编辑
/etc/pam.d/common-password文件:sudo nano /etc/pam.d/common-password -
在文件中找到包含以下内容的一行:
password requisite pam_pwquality.so retry=3 -
在该行下面添加以下内容来设置密码策略:
password requisite pam_pwquality.so retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1这将设置密码最小长度为8个字符,并要求密码包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符。
-
保存文件并退出编辑器。
-
输入以下命令来重新加载PAM配置:
sudo pam-auth-update
现在,密码策略已经成功设置。当用户尝试更改密码时,将受到设置的策略限制。
重置密码
如果忘记了Kali Linux的密码,可以通过以下步骤重置密码:
-
关闭Kali Linux并重新启动,但在启动过程中按下
e键进入GRUB编辑模式。 -
在编辑界面中,找到
linux或linuxefi行(取决于你的系统架构),并将ro改为rw,然后在行尾添加init=/bin/bash。 -
按
CTRL+x键以刚才的配置重启Kali Linux。 -
系统将以单用户模式启动,此时可以输入
passwd命令来重置密码。
通过以上步骤,可以有效地管理Kali Linux中的密码,确保系统的安全性和稳定性。
Linux资源耗尽病毒
使用alert或notify-send等工具发送通知。
#!/bin/bash
while true
do notify-send”无限弹窗” “这是一个无限循环的弹窗”sheep 2
done
保存这个脚本到一个文件中,比如infinite_popup.sh,然后给它执行权限:chmod +x infinite_popup.sh
运行脚本: ./infinite_popup.sh

命令分析: 这段脚本是一个简单的bash脚本,它的目的是使用notify-send命令来发送桌面通知,创建一个无限循环的弹窗效果。下面是对这段脚本的逐行分析:
#!/bin/bash
这是一个shebang行,它告诉系统使用/bin/bash解释器来执行这个脚本。
while true
do
这是一个无限循环的开始。while true表示循环条件永远为真,因此循环体会无限次执行,除非脚本被外部中断。
notify-send "无限弹窗" "这是一个无限循环的弹窗"
这一行使用notify-send命令发送一个桌面通知。notify-send是许多Linux桌面环境(如GNOME, KDE等)支持的一个命令行工具,用于发送桌面通知。这里发送的通知标题是"无限弹窗",内容是"这是一个无限循环的弹窗"。
sleep 2
这一行让脚本暂停执行2秒钟。sleep命令用于暂停脚本的执行一段时间,这里的2表示暂停2秒。这是为了防止弹窗无限快速地连续出现,给用户一些时间来阅读每个通知。
done
这是无限循环的结束。
保存这个脚本到一个文件中,比如infinite_popup.sh,然后给它执行权限:
chmod +x infinite_popup.sh
这里的chmod +x命令用于改变文件的权限,使得文件可执行。
运行脚本:
./infinite_popup.sh
执行这个脚本将会导致桌面通知无限循环地弹出,每个通知之间间隔2秒钟。
需要注意的是,这个脚本会持续运行直到被外部中断(比如在终端中按Ctrl+C)。在实际使用中,无限循环的通知可能会对用户造成干扰,因此通常不建议在不受控制的环境中运行此类脚本。
windows与linux的命令窗口
1、Windows dos编程 2、Linux bash编程
修改后代码:
#!/bin/bash
while true
do gnome-terminal
#! Sleep 1不加则为死循环
sleep 1
done
命令分析: 这是一个 Bash 脚本,用于在 Linux 系统中无限循环地打开 gnome-terminal(一个流行的图形界面终端模拟器)。下面是对这个脚本的逐行分析:
#!/bin/bash
这一行是脚本的 shebang,它告诉系统使用 /bin/bash 这个解释器来执行后面的脚本内容。
while true
do
这是一个无限循环的开始。while true 表示只要条件为真(在这里条件永远为真),循环就会一直执行下去。
gnome-terminal
这行命令会打开一个新的 gnome-terminal 窗口。每次循环都会执行这个命令,因此会不断打开新的终端窗口。
# Sleep 1 不加则为死循环
这是一行注释,解释了下一行代码的作用。如果不加 sleep 1,那么 gnome-terminal 命令会几乎连续不断地执行,导致系统资源迅速耗尽,形成所谓的“死循环”。
sleep 1
这行命令会让脚本暂停执行 1 秒钟。这是为了避免上述的死循环情况,给系统一个喘息的机会,同时也控制了终端窗口的打开速度。
done
这是无限循环的结束标志。
注意:这个脚本在实际使用中可能会导致系统资源迅速耗尽,因为它会不断打开新的终端窗口。如果你想要一个更实用的版本,可以考虑添加一些条件来控制循环的执行次数或者提供用户交互来退出循环。
例如,你可以修改脚本,使其在用户按下某个键之后退出循环:
#!/bin/bashwhile true; dognome-terminal &read -n 1 -s -r -p "Press any key to continue or 'q' to quit: " keyif [[ $key == 'q' ]]; thenbreakfi
done
这个修改后的脚本会在每次打开新的 gnome-terminal 后等待用户按键,如果用户按下 'q',则退出循环。

相关文章:
linux基础——详细篇
免责声明 学习视频来自B 站up主泷羽sec,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 linux 基础命令重现 cd(切…...
大数据学习10之Hive高级
1.Hive高级 将大的文件按照某一列属性进行GROUP BY 就是分区,只是默认开窗存储; 分区是按行,如一百行数据,按十位上的数字分区,则有十个分区,每个分区里有十行; 分桶是根据某个字段哈希对桶数取…...
MongoDB笔记01-概念与安装
文章目录 前言一、MongoDB相关概念1.1 业务应用场景具体的应用场景什么时候选择MongoDB 1.2 MongoDB简介1.3 体系结构1.4 数据模型1.5 MongoDB的特点 二、本地单机部署2.1 Windows系统中的安装启动第一步:下载安装包第二步:解压安装启动1.命令行参数方式…...
ollama + fastGPT + m3e 本地部署指南
[TOC](ollama fastgptm3e本地部署) 开启WSL 因为这里使用的win部署,所以要安装wsl,如果是linux系统就没那么麻烦 控制面板->程序->程序和功能 更新wsl wsl --set-default-version 2wsl --update --web-download安装ubuntu wsl --install -d Ubuntudoc…...
【设计模式系列】享元模式(十五)
目录 一、什么是享元模式 二、享元模式的角色 三、享元模式的典型应用场景 四、享元模式在ThreadPoolExecutor中的应用 1. 享元对象(Flyweight)- 工作线程(Worker) 2. 享元工厂(Flyweight Factory)- …...
2024大兴区火锅美食节即将开幕——品味多元火锅,点燃冬季消费热潮
为响应“中国国际精品消费月”活动,由大兴区商务局主办、大兴区餐饮行业协会承办的2024大兴区火锅美食节将于11月15日正式启动,为期一个半月的美食盛宴将在大兴区掀起一场冬日的火锅热潮。此次火锅节作为北京市“食在京城、沸腾火锅”火锅美食节的重要组…...
可视化建模与UML《类图实验报告》
史铁生: 余华和莫言扛着我上火车, 推着走打雪仗, 还带我偷西瓜, 被人发现后他们拔腿就跑, 却忘了我还在西瓜地里。 一、实验目的: 1、熟悉类图的构件事物。 2、熟悉类之间的泛化、依赖、聚合和组合关系…...
VS2022项目配置笔记
文章目录 $(ProjectDir)与 $(SolutionDir) 宏附加包含目录VC目录和C/C的区别 $(ProjectDir)与 $(SolutionDir) 宏 假设有一个解决方案 MySolution,其中包含两个项目 ProjectA 和 ProjectB,目录结构如下: C:\Projects\…...
springboot029基于springboot的网上购物商城系统
🍅点赞收藏关注 → 添加文档最下方联系方式领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅 项目视频 基于…...
网站访问在TCP/IP四层模型中的流程
访问一个网站的过程可以通过 TCP/IP 网络模型来描述。TCP/IP 模型通常被分为四层:应用层、传输层、网络层和链路层。以下是从这些层级的角度描述你访问一个网站时所发生的过程: 1. 应用层 (Application Layer) 当你在浏览器中输入一个 URL(…...
C++笔记---包装器
1. 什么是包装器 C中的包装器是一种设计模式,用于将一个复杂或底层的接口进行封装,以便提供一个更简洁、易用的接口。包装器可以包装任何类型的可调用实体,如函数,成员函数,函数指针,仿函数对象࿰…...
算力与能量的全分布式在线共享来降低5G网络的用电成本。基于随机对偶次梯度法的多时隙约束耦合问题解耦方法示例;随机对偶次梯度法的在线管理策略
目录 算力与能量的全分布式在线共享来降低5G网络的用电成本。 基于随机对偶次梯度法的多时隙约束耦合问题解耦方法示例 随机对偶次梯度法的在线管理策略 策略概述 具体步骤 示例说明 算力与能量的全分布式在线共享来降低5G网络的用电成本。 主要探讨了5G网络与边缘计算设…...
海鲜特写镜头视频素材去哪找 热门视频素材网站分享
作为美食自媒体创作者,海鲜特写镜头的视频素材无疑是提升内容吸引力和质量的重要利器。无论你想展示新鲜的海鲜原料、精美的烹饪过程,还是诱人的餐桌美食,精致的海鲜特写镜头都能极大地吸引观众的注意力。那么,问题来了࿱…...
JMM内存模型(面试回答)
1.什么是JMM JMM就是Java内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。所以Java内存模型(JMM)屏蔽掉各种硬件和操作系统的内存访问差异&…...
Greiner 经典力学(多体系统和哈密顿力学)第十二章 学习笔记(Rotation About a Point)
第十二章 学习笔记(Rotation About a Point) 上一章是绕定轴转动,这章是绕定点转动。这一章明显上难度了。 12.1 Tensor of Inertia 在正式的公式推导之前,我们先复习一个矢量公式,下面推导时会用到这个公式&#x…...
SQL进阶技巧:如何计算复合增长率?
目录 0 场景描述 1 数据准备 2 问题分析 3 小结 0 场景描述 复合增长率是第N期的数据除以第一期的基准数据,然后开N-1次方再减去1得到的结果。假如2018年的产品销售额为10000,2019年的产品销售额为12500,2020年的产品销售额为15000(销售额单位省略,下同)。那么这两…...
十一:java web(3)-- Spring框架 -- Spring简介
目录 1. Servlet 与 Spring 的关系 2. Spring 框架介绍 Spring 框架的起源与发展 Spring 框架的核心特性 Spring 主要模块介绍 核心模块(Core Container) 数据访问与集成模块(Data Access/Integration) Web 模块࿰…...
ts 如何配置引入 json 文件
ts 如何配置引入 json 文件 参考文档: https://maxgadget.dev/article/how-to-import-a-json-file-in-typescript-a-comprehensive-guide 项目中有一个 .json 的文件是配置文件,如何引入到 ts 项目中 配置 tsconfig.json 文件,添加这两个 {…...
LeetCode面试经典150题C++实现,更新中
用C实现下面网址的题目 https://leetcode.cn/problems/merge-sorted-array/?envTypestudy-plan-v2&envIdtop-interview-150 1、数组\字符串 88合并两个有序数组 以下是使用 C 实现合并两个有序数组的代码及测试用例 C代码实现 #include <iostream> #include &l…...
基于springboot的家装平台设计与实现
项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
