免责声明
学习视频来自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/bash
while true; do
gnome-terminal &
read -n 1 -s -r -p "Press any key to continue or 'q' to quit: " key
if [[ $key == 'q' ]]; then
break
fi
done
这个修改后的脚本会在每次打开新的 gnome-terminal
后等待用户按键,如果用户按下 'q',则退出循环。