linux基础

打印 上一主题 下一主题

主题 854|帖子 854|积分 2562

linux

openssl

openssl passwd -1 123
openssl是一个开源的加密工具包,提供了各种加密、解密、署名、验证等功能。
password表现这个下令用于处理密码相关的操作。
-1参数指定使用MD5加密算法对密码“123”进行加密处理。MD5是一种常用的哈希算法,它将任意长度的输入数据转换为固定长度的输出(通常是128位的哈希值)。使用这个下令可以将“123”生成为MD5加密后的密文。
openssl passwd -5 123
同样,openssl是加密工具包。
password用于密码处理。
-5参数表现使用SHA-256哈希算法对密码“123”进行哈希加密处理。SHA-256是一种更安全的哈希算法,它生成的哈希值长度为256位。每次对相同的密码进行SHA-256加密时,由于加密过程中通常会引入随机因素(如盐值等),所以每次生成的密文都是不一样的,这增加了密码的安全性,即使攻击者得到了密文,也很难通过逆向计算得到原始密码。
文件管理

- 创建空文件:touch new file
- 删除文件:rm newfile
可以看到刚才的文件已经消失了
- 新建目录:mkdir newdir
- 删除空目录:rmdir newdir
- 重命名文件:mv file.txt new.txt
- 移动文件:mv new.txt newdir
- 拷贝文件:cp newdir/new.txt file.txt
在Linux系统中,链接分为两种:软链接(符号链接)和硬链接
软链接(符号链接)

软链接(Symbolic Link)是一个特殊类型的文件,它包罗了指向另一个文件或目录的路径。软链接可以跨文件系统,并且可以链接文件和目录。软链接的创建和使用如下:
创建软链接:
  1. ln -s <目标文件或目录> <链接名称>
复制代码
例如,创建一个指向/etc/passwd文件的软链接:
  1. ln -s newdir/new.txt new_link
复制代码
使用软链接:
  1. cat new_link
复制代码
删除软链接:
  1. rm new_link
复制代码
硬链接

硬链接(Hard Link)是一个指向文件内容的指针,它允许一个文件拥有多个有效的文件名。硬链接不能跨文件系统,也不能链接目录。硬链接的创建和使用如下:
创建硬链接:
  1. ln <目标文件> <链接名称>
复制代码
例如,创建一个指向/etc/passwd文件的硬链接:
  1. ln -s newdir/new.txt new_hard_link
复制代码
使用硬链接:
  1. cat passwd_hard_link
复制代码
删除硬链接:
  1. rm passwd_hard_link
复制代码
注意:当删除原文件时,硬链接仍然有效,因为它们指向相同的文件内容。只有当删除最后一个硬链接时,文件内容才会被删除。
总结

  • 软链接是包罗目标路径的特殊文件,可以跨文件系统,可以链接文件和目录。
  • 硬链接是指向文件内容的指针,不能跨文件系统,不能链接目录。
  • 删除原文件时,软链接失效,硬链接仍然有效。
  • 只有删除最后一个硬链接时,文件内容才会被删除。
搜索文件

以下是which下令的基本语法:
  1. which [options] <command>
复制代码
例如,假如您想找到ls下令的路径,可以输入以下下令:
which dir
输出大概类似于:/usr/bin/dir
这表现dir下令位于/usr/bin/目录下。
which下令的一些常用选项包括:
•        -a:显示全部匹配的路径,而不仅仅是第一个匹配项。
•        -n:指定输出的文件名长度。
•        -p:与-a选项一起使用时,同时显示PATH情况变量中的目录。
例如,要查找并显示全部与python下令匹配的路径,可以使用以下下令:
which -a python
必要注意的是,which下令只搜索PATH情况变量中定义的目录。假如您必要查找系统中全部可用的下令,可以使用whereis下令或find下令。以下是echo下令的基本用法:

  • 输出文本:
echo "Hello, World"
这将在终端显示 "Hello, World"。

  • 输出变量的值:
message="Hello, World"
echo $message
这将输出变量message的值,即 "Hello, World"。

  • 输出带有特殊字符的文本:
假如要输出包罗特殊字符(如引号、反斜杠等)的文本,可以使用反斜杠(\)进行转义。
  1. echo "He said, "Hello, World""
复制代码
这将输出 He said, "Hello, World"。

  • 使用-e选项解释转义字符:
默认情况下,echo下令不会解释转义字符。要启用转义字符的解释,可以使用-e选项。
  1. echo -e "Line 1\nLine 2"
复制代码
这将输出:
  1. Line 1
  2. Line 2
复制代码
其中,\n表现换行符。

  • 使用-n选项禁止主动换行:
默认情况下,echo下令在输出文本后会主动添加换行符。要禁止主动换行,可以使用-n选项。
  1. echo -n "Hello, "
  2. echo "World"
复制代码
这将输出 Hello, World,而不是在"Hello, "后换行。
echo下令可以用于显示情况变量PATH的值
  1. echo $PATH
复制代码
这将输出一个由冒号(:)分隔的目录列表,这些目录是系统在查找可执行文件时会搜索的位置。例如,输出大概类似于:
  1. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
复制代码
这表现系统会按照上述顺序在这些目录中查找可执行文件。
假如您想要查看PATH情况变量的完备值(包括空格和特殊字符),可以使用双引号:
  1. echo "$PATH"
复制代码
这将确保输出中的空格和特殊字符被精确处理。
locate

locate下令是一个用于快速查找文件的工具,它基于一个预先构建的数据库(通常名为local.db)来搜索文件。
以下是locate下令的基本用法:

  • 查找文件:
  1. locate <filename>
复制代码
例如,要查找名为example.txt的文件,可以输入以下下令:
  1. locate example.txt
复制代码
这将在local.db数据库中搜索与example.txt匹配的全部文件,并显示它们的完备路径。

  • 查找包罗特定文本的文件:
  1. locate -i *<text>*
复制代码
例如,要查找包罗文本hello的全部文件,可以输入以下下令:
locate -i *hello*
-i选项表现忽略大小写。
必要注意的是,locate下令依靠于预先构建的数据库。在Kali Linux中,这个数据库通常由updatedb下令定期更新。假如local.db数据库没有及时更新,locate下令大概无法找到最近创建或移动的文件。为了确保locate下令可以或许找到最新的文件,您可以手动运行updatedb下令来更新数据库:
  1. sudo updatedb
复制代码
这将更新local.db数据库,使locate下令可以或许找到最新的文件。
find

“find” 表现在用户的主目录(“~” 代表主目录)下进行查找。
“-mtime 2” 表现查找在两天内被修改过的文件。
“-ls” 用于以长列表形式显示找到的文件信息。
“|” 是管道符号,将前一个下令的输出作为后一个下令的输入。
“sort -k9 -k10” 是按照第九列和第十列的内容对文件信息进行排序。
“more” 用于分页显示结果,方便查看。
  1. find  -type f -iname '*.sh' -mmin -30 -ls
复制代码
“find” 在当前目录下进行查找。
“-iname '.sh’” 查找文件名以 “sh” 末端的文件,注意这里的空格大概会导致不准确匹配,一般用通配符应该紧贴在前面的字符后面,比如 “sh”。
“-mmin -30” 表现查找在 30 分钟内被修改过的文件。
“-ls” 以长列表形式显示找到的文件信息。
find -name '*svn' -exec rm -rf {} ;
“find” 在当前目录下查找。
“-name 'svn’” 查找名为 “svn” 的文件或目录。
“-exec rm -rf {} ;” 表现对找到的每个结果执行 “rm -rf” 下令,即删除找到的文件或目录。
  1. find / -user root -type f -perm -o=w -name '*sh' 2>/dev/null
复制代码
“find /” 在整个文件系统(根目录 “/”)下进行查找。
“-user root” 表现查找全部者为 “root” 用户的文件。
“-type f” 表现查找类型为平凡文件。
“-perm -o=w” 表现查找其他用户有写权限的文件。
“-name '*.sh’” 查找文件名以 “sh” 末端的文件。
“2>/dev/null” 将错误输出重定向到 “/dev/null”,即不显示错误信息。
用户账号数据库相关文件
  1. cat /etc/passwd
复制代码
这是一个重要的系统文件,存储了系统中用户账号的基本信息。
每行代表一个用户,包罗了用户名、密码占位符、用户 ID、用户组 ID、用户形貌信息、用户主目录、用户默认 shell 等字段。
  1. cat /etc/shadow:
复制代码
这个文件也与用户账号相关,主要存储用户密码的加密信息以及密码的一些属性,如密码最后一次修改时间、密码最短使用期限、密码最长使用期限等。
只有具有富足权限的用户(通常是 root)才气读取这个文件,以提高密码的安全性。
组账号相关下令
  1. cat /etc/group:
复制代码
查看用户账号信息的同时,也可以间接了解用户所属的组信息,因为其中包罗了用户组 ID。但这并不是专门用于查看组账号的最佳方式,通常使用 cat /etc/group 来查看组账号信息。
禁用账号相关下令
  1. sudo passwd -l username:
复制代码


  • sudo: 表现以管理员权限执行下令。
  • passwd: 是用于管理用户密码的下令。
  • -l 选项用于锁定用户账号。当执行这个下令后,指定的 username 用户账号将被锁定,无法登录系统。
  1.   chage -E 1990-01-01 kali:
复制代码


  • chage: 下令用于修改用户密码的过期信息。
  • -E 选项后面跟着一个日期,表现设置用户账号的过期时间。在这个例子中,将“kali”用户账号的过期时间设置为“1990-01-01”,通常意味着在这个日期之后该账号将无法使用,除非重新设置过期时间或进行其他管理操作。
  1. passwd -S username:
复制代码


  • passwd: 下令的另一个用法。
  • -S 选项用于显示指定用户账号的密码状态信息,包括账号是否被锁定、密码是否已设置、密码最后一次修改时间等。
文件系统权限
在 Linux 系统中,齐备都是文件
查看权限
  1. ls -la /etc/passwd
复制代码
更改文件全部者
在Linux中,文件和目录的权限分为三种类型:读(Read,简写为r)、写(Write,简写为w)和执行(Execute,简写为x)。
每个文件和目录都有三个权限组:

  • 用户(User,简写为u):拥有者(创建者)的权限。
  • 组(Group,简写为g):拥有者所在组的成员的权限。
  • 其他(Other,简写为o):除拥有者和组内成员之外的其他用户的权限。
权限可以用数字表现,每个权限对应一个数字:

  • 读(r):4
  • 写(w):2
  • 执行(x):1
  • 无权限:0
要设置文件或目录的权限,可以使用chmod下令。有两种表现权限的方法:符号表现法和数字表现法。
符号表现法

使用符号表现法时,您可以使用以下语法:
  1. chmod [ugoa][+-=][rwx] <file_or_directory>
复制代码

  • [ugoa]:指定权限组(用户、组、其他)。
  • [+-=]:指定操作(添加、删除、设置)。
  • [rwx]:指定权限(读、写、执行)。
例如,要给文件全部者添加执行权限,可以使用以下下令:
  1. chmod u+x <file>
复制代码
数字表现法

使用数字表现法时,您必要为每个权限组分配一个数字,然后将这三个数字组合在一起。例如,要设置文件权限为rwxr-xr--(即拥有者具有读、写和执行权限,组内成员具有读和执行权限,其他用户具有只读权限),可以使用以下下令:
  1. chmod 754 <file>
复制代码
这里,数字7、5和4分别表现三个权限组的权限:

  • 用户(u):rwx(4 + 2 + 1)= 7
  • 组(g):r-x(4 + 0 + 1)= 5
  • 其他(o):r--(4 + 0 + 0)= 4
总之,Linux中的数字权限允许您使用三位数字来表现文件或目录的权限,每位数字对应一个权限组(用户、组、其他),每个数字由读、写和执行权限的数值组成。
在Kali Linux(以及大多数Linux发行版)中,数字权限用于设置文件和目录的访问权限。
Kali Linux中常用的数字权限:

  • 只读权限(444/644):拥有者、组和其他用户都只有读权限。

    • 文件:chmod 644
    • 目录:chmod 755

  • 可读写权限(666/664):拥有者和组有读写权限,其他用户只有读权限。

    • 文件:chmod 664
    • 目录:chmod 775

  • 可读写执行权限(777/775):拥有者、组和其他用户都有读、写和执行权限。

    • 文件:chmod 775
    • 目录:chmod 777

  • 只读执行权限(555/755):拥有者、组和其他用户都有读和执行权限,但只有拥有者有写权限。

    • 文件:chmod 644
    • 目录:chmod 755

  • 无权限(000):拥有者、组和其他用户都没有任何权限。

    • 文件:chmod 000
    • 目录:chmod 000

一、Linux 系统中齐备都是文件
在 Linux 系统中,几乎全部的资源都被抽象为文件,包括硬件设备(如硬盘、网卡等)、进程间通信、网络连接等。这种设计理念使得对各种资源的管理可以通过统一的文件操作方式来进行,大大简化了系统的架构和管理。
二、查看权限
ls 是列出目录内容的下令。
-l 选项以长格式显示文件信息,包括文件的权限、全部者、所属组、文件大小、修改时间等详细信息。
-a 选项显示包括隐藏文件在内的全部文件。
/etc/passwd是要查看的文件路径,这个文件存储了系统用户账号的基本信息。通过这个下令可以看到 /etc/passwd文件的权限设置、全部者、所属组等信息。
三、更改文件全部者
  1. chown root file:
复制代码
chown 是改变文件全部者的下令。
root 是新的全部者用户名,这里表现将文件的全部者改为“root”用户。
file 是要更改全部者的文件名称。执行这个下令后,文件的全部者将变为“root”用户。
四、修改文件权限
  1. sudo chmod u=rwx, g+rw, o-r file:
复制代码


  • sudo表现以管理员权限执行下令。
  • chmod是改变文件权限的下令。
  • u=rwx表现文件全部者(user)具有读(r)、写(w)、执行(x)权限。
  • g+rw表现文件所属组(group)增加读(r)和写(w)权限。
  • o-r表现其他用户(other)去除读(r)权限。
  • file是要修改权限的文件名称。
  1. sudo chmod u+x, g+w, o-r file:
复制代码


  • 同样以管理员权限执行修改文件权限的操作。
  • u+x表现给文件全部者增加执行权限。
  • g+w表现给文件所属组增加写权限。
  • o-r表现去除其他用户的读权限。
  • file是目标文件。
  1. chmod 400 <file>:
复制代码


  • chmod下令直接以数字方式设置文件权限。
  • 400是权限的数字表现,其中第一位数字“4”表现文件全部者的权限,这里代表读权限(r),因为读权限对应的数字是4;后两位数字“00”分别表现文件所属组和其他用户没有任何权限。
  • 是要设置权限的文件。以下是提取的文章内容:
系统日志
  1. ls -l /var/log
复制代码


  • ls 是列出目录内容的下令。
  • -l 选项以长格式显示文件和目录的详细信息,包括权限、全部者、所属组、文件大小、修改时间等。
  • /var/log 是系统日志文件所在的目录。执行这个下令可以查看该目录下的日志文件列表及相关信息。
认证信息日志
  1. sudo tail -3 /var/log/auth.log
复制代码


  • sudo 表现以管理员权限执行下令。
  • tail 下令用于查看文件的末端部分。
  • -3 表现显示文件的最后 3 行内容。/var/log/auth.log 是一个在 Linux 系统(特殊是 Debian 及其衍生发行版,如 Ubuntu)中常见的日志文件,用于记载与系统认证相关的事件。
以下是一些大概记载在 /var/log/auth.log 文件中的事件类型:

  • 用户登录和注销

    • 成功登录
    • 失败登录实验(例如,错误的密码)
    • 用户注销

  • 远程认证

    • SSH 登录和注销
    • 使用其他远程认证协议(如 FTP、SMTP 等)的登录和注销

  • 系统服务认证

    • 系统服务启动和停止时的认证事件
    • 使用 PAM(Pluggable Authentication Modules)进行的服务认证

  • 密码更改和其他用户管理操作

    • 用户密码更改
    • 用户账户创建和删除
    • 用户权限更改

  • 认证告诫和错误

    • 多次失败的登录实验
    • 认证模块错误
    • 其他与认证相关的告诫和错误

查看和分析 /var/log/auth.log 文件

您可以使用文本编辑器或下令行工具(如 cat、less、grep 等)查看和分析 /var/log/auth.log 文件。例如:
  1. sudo less /var/log/auth.log
复制代码
或者,假如您只想查看包罗特定关键字的日志条目(例如,SSH 登录失败),可以使用 grep 下令:
  1. sudo grep "Failed password for invalid user" /var/log/auth.log
复制代码
注意事项


  • /var/log/auth.log 文件通常只包罗与认证相关的事件,其他类型的系统日志(如系统消息、应用步伐日志等)会记载在其他日志文件中(如 /var/log/syslog 或 /var/log/messages)。
  • 由于 /var/log/auth.log 文件大概包罗敏感信息(如用户名和密码),因此请确保只有授权用户可以访问该文件,并定期备份该文件以防止数据丢失。
总之,/var/log/auth.log 是一个重要的系统日志文件,用于记载与系统认证相关的事件。通过查看和分析该文件,您可以了解系统的登录活动、认证失败以及其他与认证相关的事件。
二进制日志
  1. who /var/log/wtmp | tail -5
复制代码


  • who 下令用于显示当前登录的用户信息。
  • /var/log/wtmp 是一个二进制日志文件,记载了系统的登录和注销信息。
  • | 是管道符号,将前一个下令的输出作为后一个下令的输入。
  • tail -5 表现显示最后 5 行内容。执行这个下令可以查看最近的五次登录或注销记载。
dmesg


  • dmesg 这个下令用于显示内核环形缓冲区(kernel ring buffer)中的信息,包括系统启动时的硬件检测信息、内核模块加载信息、设备驱动的初始化信息等。它可以资助用户了解系统的硬件状态和内核的运行情况。
systemd 日志相关下令

systemd是一个系统和服务管理器,用于启动、停止和管理系统服务和守护进程
以下是关于Kali Linux中systemd的一些基本信息和常用下令:
基本信息
•        systemd是Linux系统中常用的初始化系统和服务管理器,取代了传统的SysV init系统。
•        systemd旨在提高启动速率、优化资源使用并提供更好的并行性。
•        Kali Linux默认使用systemd作为其初始化系统和服务管理器。
常用下令

  • 查看系统状态:
  1. systemctl status
复制代码
这将显示系统的整体状态,包括已启动的服务和运行级别。

  • 启动、停止和重启服务:
  1. sudo systemctl start <service_name>
  2. sudo systemctl stop <service_name>
  3. sudo systemctl restart <service_name>
复制代码
例如,要启动、停止和重启ssh服务,可以使用以下下令:
  1. sudo systemctl start ssh
  2. sudo systemctl stop ssh
  3. sudo systemctl restart ssh
复制代码

  • 启用和禁用服务:
  1. sudo systemctl enable <service_name>
  2. sudo systemctl disable <service_name>
复制代码
启用服务会在系统启动时主动启动该服务,禁用服务则不会在系统启动时启动该服务。例如,要启用和禁用ssh服务,可以使用以下下令:
  1. sudo systemctl enable ssh
  2. sudo systemctl disable ssh
复制代码

  • 查看服务状态:
  1. systemctl status <service_name>
复制代码
例如,要查看ssh服务的状态,可以使用以下下令:
  1. systemctl status ssh
复制代码

  • 查看全部服务的状态:
  1. systemctl list-units --type=service
复制代码
这将显示系统中全部服务的状态。
journalctl


  • 这是一个用于查看和管理 systemd 日志的下令。systemd 是 Linux 系统的初始化系统和服务管理器,它会记载系统和服务的启动、运行和错误信息等日志。
  • journalctl 可以根据不同的参数来筛选、查看特定时间段、特定服务或特定优先级的日志记载。
1. 创建挂载点目录(假如尚未创建)

起首,确保挂载点目录(在本例中为/mnt/usb)已经存在。假如不存在,请使用mkdir下令创建该目录:
  1. sudo mkdir -p /mnt/usb
复制代码
-p选项表现假如父目录不存在,则一并创建。
2. 挂载设备

使用mount下令将/dev/sdb1设备挂载到/mnt/usb目录:
  1. sudo mount /dev/sdb1 /mnt/usb
复制代码
现在,/dev/sdb1设备的内容已经挂载到/mnt/usb目录,您可以通过访问/mnt/usb目录来访问设备上的文件。
3. 卸载设备

当您不再必要挂载的设备时,可以使用umount下令将其卸载:
  1. sudo umount /mnt/usb
复制代码
或者,您也可以使用设备名来卸载设备:
  1. sudo umount /dev/sdb1
复制代码
注意事项


  • 在挂载设备之前,请确保您具有富足的权限。通常必要使用sudo来执行挂载和卸载操作。
  • 在卸载设备之前,请确保没有正在使用该设备的进程。否则,卸载操作大概会失败,并显示“设备正忙”的错误消息。
  1. 一、内存使用量
复制代码
  1. free -m:
复制代码
free下令用于显示系统内存的使用情况。
-m选项表现以兆字节(MB)为单位显示内存信息。执行这个下令后,会显示系统的总内存、已使用内存、可用内存、缓冲内存和缓存内存等信息,资助用户了解系统当前的内存使用状态。
二、磁盘使用量
  1. df -hT:
复制代码
df下令用于显示磁盘空间使用情况。
-h选项表现以人类可读的格式(如KB、MB、GB等)显示磁盘空间大小。
-T选项显示文件系统类型。执行这个下令可以查看各个磁盘分区的总大小、已使用空间、可用空间以及文件系统类型等信息。
三、文件或目录大小
  1. sudo du ./* -hsc:
复制代码
sudo表现以管理员权限执行下令。
du下令用于统计文件或目录的磁盘使用空间。
./*表现当前目录下的全部文件和目录。
-h选项以人类可读的格式显示大小。
-s选项表现汇总显示每个参数的总大小。
-c选项表现在最后显示总计。执行这个下令可以查看当前目录下每个文件和目录的大小,并在最后显示总计大小。
四、查看硬盘分区
  1. sudo fdisk -l:
复制代码
sudo以管理员权限执行。
fdisk是一个磁盘分区工具。
-l选项表现列出系统中的全部磁盘分区信息,包括磁盘的大小、分区类型、分区编号、起始和结束扇区等。这个下令可以资助用户了解系统的硬盘分区情况。
五、挂载分区
  1. sudo mount /dev/sdb1 /mnt/usb:
复制代码
sudo以管理员权限执行。
mount下令用于将一个文件系统挂载到指定的目录。
/dev/sdb1是要挂载的磁盘分区设备路径。
/mnt/usb是挂载点,即要将分区挂载到的目录。执行这个下令后,系统可以访问该分区中的文件和目录,就像访问本地文件系统中的其他目录一样。
基本网络工具

ifconfig:


  • 是一个用于配置和显示网络接口信息的下令行工具。
  • 它可以显示网络接口的 IP 地址、子网掩码、MAC 地址等信息,还可以用于启动、停止或配置网络接口。
ip addr:


  • 也是用于查看和管理网络接口的下令。
  • 它提供了比 ifconfig 更详细和灵活的网络接口信息显示,包括接口的状态、IP 地址、子网掩码、广播地址等。
sudo ifdown eth0:


  • sudo 表现以管理员权限执行下令。
  • ifdown 用于关闭指定的网络接口。
  • eth0 是网络接口名称,这里表现关闭名为“eth0”的网络接口。
sudo ifup eth0:


  • 同样以管理员权限执行。
  • ifup 用于启动指定的网络接口。
  • eth0 表现启动名为“eth0”的网络接口。
网络配置

/etc/network/interfaces:


  • 这是一个系统文件,用于配置网络接口的静态 IP 地址、子网掩码、网关等信息。
  • 在一些 Linux 发行版中,通过编辑这个文件可以实现网络接口的手动配置。
NetworkManager:


  • 是一个动态网络控制和配置守护进程。
  • 它可以主动管理网络连接,包括有线网络、无线网络和 VPN 连接等。
  • NetworkManager 提供了图形界面和下令行工具来配置和管理网络,使得网络配置更加方便和灵活。
  • 它可以主动检测网络变化,并根据配置主动连接到可用的网络。
一、网络连接状态查看工具


  • netstat -natup:


  • netstat是一个用于显示网络连接、路由表、接口统计等信息的下令。
  • -n选项表现以数字形式显示地址和端口号,克制进行域名剖析。
  • -a选项显示全部的连接和监听端口。
  • -t选项显示TCP连接。
  • -u选项显示UDP连接。
  • -p选项显示与连接相关的进程ID和步伐名称。
  • 执行这个下令可以查看系统当前的网络连接状态,包括连接的协议、本地地址和端口、远程地址和端口等信息。
  • ss -natup:


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


  • arp -en:


  • arp是地址剖析协议(Address Resolution Protocol)的工具。
  • -e选项以详细格式显示ARP缓存表。
  • -n选项以数字形式显示IP地址,克制进行域名剖析。
  • 执行这个下令可以查看系统的ARP缓存表,其中包罗了IP地址和对应的MAC地址映射关系,用于在局域网中进行二层地址剖析。
三、路由信息相关工具


  • route:


  • 用于显示和管理系统的路由表。
  • 可以查看系统当前的路由信息,包括目标网络、网关、子网掩码等。还可以用于添加、删除或修改路由条目。
  • ip route:


  • 是ip下令的一部分,用于管理系统的路由表。
  • 它提供了更强大和灵活的路由管理功能,可以进行更复杂的路由配置操作。
  • sudo ip route add 10.13.37.0/24 dev eth1:
  1. - sudo表示以管理员权限执行命令。
  2. - ip route add用于添加一条路由条目。
  3. - 10.13.37.0/24是目标网络地址和子网掩码。
  4. - dev eth1表示通过名为“eth1”的网络接口到达目标网络。
复制代码

  • 执行这个下令可以向系统的路由表中添加一条路由,指定怎样到达特定的网络。
四、路由跟踪工具

traceroute offensive-security.com:
traceroute是一个用于跟踪数据包从本田主机到目标主机所颠末的路由路径的工具。
offensive-security.com是目标主机的域名或IP地址。执行这个下令会逐跳显示数据包颠末的路由器的IP地址和响应时间,资助用户了解网络连接的路径和大概存在的网络问题。
ssh服务
一、启动服务
  1. sudo systemctl start ssh:
复制代码
sudo表现以管理员权限执行下令。
systemctl是用于管理系统服务的工具。
start ssh是启动名为“ssh”的服务,也就是启动SSH服务器,使得其他设备可以通过SSH协议连接到这台主机。
二、连接本田主机
  1. ssh root@localhost:
复制代码
ssh是Secure Shell的客户端下令。
root表现要以“root”用户身份进行登录。
@localhost表现连接到本田主机。执行这个下令可以使用SSH协议以“root”用户身份登录到本田主机,假如SSH服务已启动且配置精确,并且用户有相应的权限,就可以成功登录并得到一个远程下令行会话。
三、配置文件
/etc/ssh/sshd_config:
这是SSH服务器的主要配置文件。
其中包罗了各种参数,可以用来配置SSH服务器的行为,比如端口号、允许的登录用户、认证方式、访问控制等。通过编辑这个文件,可以根据具体需求对SSH服务器进行定制化配置。
四、客户端配置HashKnownHosts yes 是一个 SSH 配置选项,用于在使用 OpenSSH 客户端时对 known_hosts 文件中的主机密钥进行散列处理
以下是关于 HashKnownHosts yes 的一些详细信息:
作用


  • 当设置为 yes 时,SSH 客户端会在将主机密钥添加到 ~/.ssh/known_hosts 文件时对其进行散列处理。
  • 散列后的主机密钥无法直接阅读,从而提高了安全性。
优点


  • 掩护隐私:散列处理后的主机密钥无法直接阅读,这有助于掩护您的 SSH 连接信息不被恶意用户窃取。
  • 减少拒绝连接的风险:由于散列后的主机密钥无法直接比力,因此即使 known_hosts 文件中的条目被篡改,SSH 客户端也不会拒绝连接。
缺点


  • 无法手动删除特定主机的条目:由于散列处理后的主机密钥无法直接阅读,因此您无法手动删除 known_hosts 文件中的特定主机条目。
  • 无法轻松迁移:散列处理后的主机密钥在不同系统之间迁移时大概必要进行额外的配置。
配置方法

要将 HashKnownHosts yes 添加到 SSH 配置文件,请按照以下步骤操作:

  • 使用文本编辑器打开 SSH 配置文件(通常位于 ~/.ssh/config):
  1. nano ~/.ssh/config
复制代码

  • 在文件末端添加以下行:
  1. HashKnownHosts yes
复制代码

  • 生存并关闭文件。
现在,当您使用 OpenSSH 客户端连接到远程主机时,known_hosts 文件中的主机密钥将主动进行散列处理。
总之,HashKnownHosts yes 是一个 SSH 配置选项,用于在使用 OpenSSH 客户端时对 known_hosts 文件中的主机密钥进行散列处理,以提高安全性。要启用此选项,请将其添加到 SSH 配置文件中。
远程拷贝
  1. scp root@1.1.1.1:/home/kali/bashrc Copiedbashrc:
复制代码
scp是 Secure Copy 的缩写,用于在不同主机之间安全地复制文件。root@1.1.1.1表现从 IP 地址为 1.1.1.1 的主机上以“root”用户身份进行操作。
/home/kali/.bashrc是源文件路径,即要从远程主机上复制的文件。Copiedbashrc是目标文件名称或目标路径,即将远程文件复制到本地后的名称或存放位置。这个下令会从指定的远程主机复制 .bashrc 文件到本地,并命名为 Copiedbashrc。
  1. scp passwd -p kali ssh root@127.0.0.1:
复制代码
这个下令看起来有点不太准确或不太清晰。一般来说,scp 的语法是 scp [源文件路径] [目标路径]。这里的“passwd -p kali ssh”不太明确具体含义,大概存在错误表述。假如是想复制名为“passwd”的文件到IP 为 127.0.0.1 的本田主机,可以写成 scp [远程用户名]@[远程主机 IP] [远程文件路径] [本地目标路径]。
二、查看历史下令
history:
这个下令用于显示下令历史记载,即之前在当前终端会话中执行过的下令列表。可以通过查看历史记载来快速重复执行之前的下令,或者查找之前执行过的特定下令。基础下令重现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下令,并指定精确的设备名称和挂载点。例如:
    1. sudo mount /dev/sdb1 /mnt/usb
    复制代码
    这条下令将/dev/sdb1设备(假设是一个USB驱动器)挂载到/mnt/usb目录。
  • 卸载操作:在不再必要挂载的文件系统时,应该使用umount下令卸载它。例如:
    1. 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目录本身通常不必要备份,但其中的孤立文件大概包罗重要的数据,建议定期检查和备份该目录中的文件。
示例操作


  • 运行文件系统检查
    1. sudo fsck /dev/sda1
    复制代码
    这条下令将检查/dev/sda1分区上的文件系统,并将发现的孤立文件放置在/lost+found目录中。
  • 查看/lost+found目录中的文件
    1. ls /lost+found
    复制代码
  • 规复孤立文件:假如发现重要的孤立文件,可以将其移动到符合的位置进行规复。
总之,/lost+found目录在Kali Linux中扮演着重要的角色,它提供了一个存放孤立文件的临时空间,资助系统管理员规复因文件系统损坏而丢失的数据。合理管理和使用该目录可以提高系统的可靠性和数据安全性。
/proc目录

在Kali Linux(以及大多数类Unix操作系统)中,/proc目录是一个虚拟文件系统,提供对内核数据布局的访问。这个目录并不占用磁盘空间,而是直接从内存中读取数据。以下是关于/proc目录的一些详细信息:
目录布局


  • /proc:

    • 用途:提供一个接口,用于访问内核和系统状态信息,以及运行时的内核参数。
    • 内容:该目录包罗许多子目录和文件,每个文件和子目录都提供特定类型的信息或控制接口。例如:

      • **/proc/cpuinfo**:包罗关于CPU的信息。
      • **/proc/meminfo**:包罗关于内存使用情况的信息。
      • **/proc/partitions**:包罗关于磁盘分区的信息。
      • **/proc/version**:包罗内核版本信息。
      • **/proc/**:每个正在运行的进程都有一个对应的子目录,包罗关于该进程的信息,如状态、文件形貌符、情况变量等。


特性


  • 动态性:/proc目录中的内容是动态生成的,随着系统状态的变化而变化。
  • 只读性:大多数/proc文件都是只读的,用户可以读取其中的信息,但不能修改。
  • 虚拟性:/proc是一个虚拟文件系统,不占用磁盘空间,数据直接从内存中读取。
注意事项


  • 权限管理:/proc目录中的某些文件和子目录大概具有特定的权限设置,只有具有适当权限的用户才气访问。
  • 安全性:由于/proc目录提供对内核和系统状态的访问,恶意用户大概会利用这些信息进行攻击。因此,建议用户克制在不安全的情况中暴露这些信息。
示例操作


  • 查看CPU信息
    1. cat /proc/cpuinfo
    复制代码
  • 查看内存使用情况
    1. cat /proc/meminfo
    复制代码
  • 查看进程信息
    1. 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下令的基本语法如下:
  1. chmod [选项] [权限模式] 文件或目录
复制代码
权限模式

权限模式可以是三种形式之一:

  • 符号形式:使用+、-和=符号来添加、删除或设置权限。

    • +:添加权限。
    • -:删除权限。
    • =:设置权限。
    例如:
    1. chmod u+x file  # 给文件所有者添加执行权限
    2. chmod g-r file  # 删除文件所属组的读权限
    3. chmod o+w file  # 给其他用户添加写权限
    4. chmod u=rwx,g=rx,o=r file  # 设置文件所有者的权限为rwx,所属组的权限为rx,其他用户的权限为r
    复制代码
  • 八进制形式:使用三位八进制数来表现权限。

    • 每一位分别代表用户(u)、组(g)和其他(o)的权限。
    • 每一位可以是0到7之间的数字,分别表现没有权限(0)、读权限(4)、写权限(2)和执行权限(1)的组合。
    例如:
    1. chmod 755 file  # 设置文件权限为rwxr-xr-x
    2. chmod 644 file  # 设置文件权限为rw-r--r--
    复制代码
  • 参考文件形式:使用另一个文件的权限作为参考。

    • 例如:
      1. chmod --reference=reference_file file  # 将file的权限设置为与reference_file相同
      复制代码

常见选项


  • -R:递归地更改目录及其内容的权限。
    1. chmod -R 755 directory  # 递归地设置directory及其内容的权限为rwxr-xr-x
    复制代码
  • -v:显示详细信息,列出每个文件或目录的权限更改情况。
    1. chmod -v 755 file  # 显示file的权限更改情况
    复制代码
  • -c:仅显示更改的文件或目录的权限信息。
    1. chmod -c 755 file  # 仅显示file的权限更改信息
    复制代码
注意事项


  • 权限管理:合理设置文件和目录的权限对于系统的安全性和功能性至关重要。确保只有符合的用户和组可以访问和修改敏感数据。
  • 权限继续:目录的权限会影响其子目录和文件的权限。使用-R选项可以递归地更改目录及其内容的权限。
  • 权限冲突:在设置权限时,符号形式和八进制形式的权限模式大概会产生冲突。确保权限模式的设置符合预期。
总之,chmod下令在Kali Linux中扮演着重要的角色,它提供了一个灵活的工具来管理文件和目录的权限。合理使用该下令可以提高系统的可靠性和安全性。
chown(改变当前所处的用户和所处的用户组)

在Kali Linux(以及大多数类Unix操作系统)中,chown(change owner)是一个用于更改文件或目录全部者的下令行工具。权限管理是Unix和类Unix系统中的一个重要概念,它决定了用户对文件和目录的访问级别。以下是关于chown下令的一些详细信息:
chown下令的基本用法

chown下令的基本语法如下:
  1. chown [选项] 用户名[:组名] 文件或目录
复制代码
常见选项


  • -R:递归地更改目录及其内容的拥有者和组。
    1. chown -R username:groupname directory  # 递归地设置directory及其内容的拥有者和组
    复制代码
  • -v:显示详细信息,列出每个文件或目录的拥有者和组更改情况。
    1. chown -v username:groupname file  # 显示file的拥有者和组更改情况
    复制代码
  • -c:仅显示更改的文件或目录的拥有者和组信息。
    1. chown -c username:groupname file  # 仅显示file的拥有者和组更改信息
    复制代码
注意事项


  • 权限管理:合理设置文件和目录的全部者和组对于系统的安全性和功能性至关重要。确保只有符合的用户和组可以访问和修改敏感数据。
  • 权限继续:目录的拥有者和组会影响其子目录和文件的拥有者和组。使用-R选项可以递归地更改目录及其内容的拥有者和组。
  • 权限冲突:在设置拥有者和组时,确保权限模式的设置符合预期。
示例

假设你想将文件example.txt的全部者更改为用户john,并将其组更改为developers,你可以使用以下下令:
  1. chown john:developers example.txt
复制代码
假如你想递归地更改目录my_directory及其全部子目录和文件的拥有者和组,你可以使用以下下令:
  1. chown -R john:developers my_directory
复制代码
总之,chown下令在Kali Linux中扮演着重要的角色,它提供了一个灵活的工具来管理文件和目录的全部者和组。合理使用该下令可以提高系统的可靠性和安全性。
useradd & adduser

adduser
在Kali Linux(以及大多数基于Debian的Linux发行版)中,adduser下令用于添加新用户到系统中。这个下令比useradd下令提供了更多的交互性和用户友好性,得当于日常使用。以下是关于adduser下令的一些详细信息:
adduser下令的基本用法

adduser下令的基本语法如下:
  1. adduser [选项] 用户名
复制代码
常见选项


  • --disabled-password:创建一个没有设置密码的用户账户,通常用于服务账户。
  • --gecos:设置用户的GECOS字段,这是一个形貌用户信息的字符串,通常包括全名、办公室位置、电话号码等。
  • --group:将新用户添加到指定的组中。
  • --home:指定新用户的家目录路径。
  • --shell:指定新用户的默认shell。
  • --system:创建一个系统用户账户,通常用于服务账户。
示例

创建一个平凡用户
  1. sudo adduser newuser
复制代码
运行这个下令后,系统会提示你输入新用户的密码以及其他一些可选信息。
创建一个系统用户
  1. 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下令的基本语法如下:
  1. useradd [选项] 用户名
复制代码
常见选项


  • -c:指定用户的形貌信息(GECOS字段)。
  • -d:指定用户的家目录路径。
  • -e:指定用户的账户过期日期。
  • -f:指定密码过期后的天数。
  • -g:指定用户的主组。
  • -G:指定用户的附加组。
  • -m:创建用户的家目录。
  • -M:不创建用户的家目录。
  • -N:不创建用户所属的组。
  • -o:允许创建具有相同UID的用户。
  • -p:指定用户的加密密码。
  • -r:创建一个系统用户。
  • -s:指定用户的默认shell。
  • -u:指定用户的UID。
示例

创建一个平凡用户
  1. sudo useradd -m newuser
复制代码
这个下令会创建一个名为newuser的用户,并为其创建家目录。
创建一个系统用户
  1. 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下令的基本语法如下:
  1. userdel [选项] 用户名
复制代码
常见选项


  • -r:递归地删除用户的家目录及其内容。
  • -f:强制删除用户,即使用户的家目录或邮箱仍然存在。
示例

删除一个平凡用户
  1. sudo userdel newuser
复制代码
这个下令会删除名为newuser的用户,但不会删除其家目录和邮箱。
删除一个用户及其家目录
  1. sudo userdel -r newuser
复制代码
这个下令会删除名为newuser的用户,并递归地删除其家目录及其内容。
注意事项


  • 权限管理:删除用户时,确保只删除不再必要的用户账户,以克制误删重要账户。
  • 数据备份:在删除用户之前,建议备份用户的重要数据,以防止数据丢失。
  • 依靠关系:检查系统中是否有其他用户或服务依靠于要删除的用户,以克制破坏系统的完备性。
总之,userdel下令在Kali Linux中提供了一个简单而强大的工具来删除用户账户。合理使用该下令可以提高系统的管理效率和安全性。
sudo(以管理员权限执行)

在Kali Linux中,sudo下令是一个非常重要的工具,它允许平凡用户执行必要root权限的下令。通过使用sudo,用户可以在不必要切换到root用户的情况下,执行系统管理使命,从而提高了系统的安全性和管理的便利性。
sudo下令的基本用法

sudo下令的基本语法如下:
  1. sudo [选项] 命令
复制代码
例如,要使用sudo更新系统软件包,可以执行以下下令:
  1. 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文件:
    1. sudo nano /etc/pam.d/common-password
    复制代码
  • 在文件中找到包罗以下内容的一行:
    1. password requisite pam_pwquality.so retry=3
    复制代码
  • 在该行下面添加以下内容来设置密码策略:
    1. password requisite pam_pwquality.so retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
    复制代码
    这将设置密码最小长度为8个字符,并要求密码包罗至少一个大写字母、一个小写字母、一个数字和一个特殊字符。
  • 生存文件并退出编辑器。
  • 输入以下下令来重新加载PAM配置:
    1. 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等工具发送通知。
  1. #!/bin/bash
  2. while true
  3. do notify-send”无限弹窗” “这是一个无限循环的弹窗”
  4.  sheep 2
  5. done
复制代码
生存这个脚本到一个文件中,比如infinite_popup.sh,然后给它执行权限:chmod +x infinite_popup.sh
运行脚本:./infinite_popup.sh
下令分析:这段脚本是一个简单的bash脚本,它的目的是使用notify-send下令来发送桌面通知,创建一个无限循环的弹窗效果。下面是对这段脚本的逐行分析:
  1. #!/bin/bash
复制代码
这是一个shebang行,它告诉系统使用/bin/bash解释器来执行这个脚本。
  1. while true
  2. do
复制代码
这是一个无限循环的开始。while true表现循环条件永久为真,因此循环体会无限次执行,除非脚本被外部停止。
  1.     notify-send "无限弹窗" "这是一个无限循环的弹窗"
复制代码
这一行使用notify-send下令发送一个桌面通知。notify-send是许多Linux桌面情况(如GNOME, KDE等)支持的一个下令行工具,用于发送桌面通知。这里发送的通知标题是"无限弹窗",内容是"这是一个无限循环的弹窗"。
  1.     sleep 2
复制代码
这一行让脚本停息执行2秒钟。sleep下令用于停息脚本的执行一段时间,这里的2表现停息2秒。这是为了防止弹窗无限快速地连续出现,给用户一些时间来阅读每个通知。
  1. done
复制代码
这是无限循环的结束。
生存这个脚本到一个文件中,比如infinite_popup.sh,然后给它执行权限:
  1. chmod +x infinite_popup.sh
复制代码
这里的chmod +x下令用于改变文件的权限,使得文件可执行。
运行脚本:
  1. ./infinite_popup.sh
复制代码
执行这个脚本将会导致桌面通知无限循环地弹出,每个通知之间隔断2秒钟。
必要注意的是,这个脚本会连续运行直到被外部停止(比如在终端中按Ctrl+C)。在实际使用中,无限循环的通知大概会对用户造成干扰,因此通常不建议在不受控制的情况中运行此类脚本。
windows与linux的下令窗口

1、Windows dos编程2、Linux bash编程
修改子女码:
  1. #!/bin/bash
  2. while true
  3. do gnome-terminal#! Sleep 1不加则为死循环
  4. sleep 1done
复制代码
下令分析:这是一个 Bash 脚本,用于在 Linux 系统中无限循环地打开 gnome-terminal(一个流行的图形界面终端模拟器)。下面是对这个脚本的逐行分析:
  1. #!/bin/bash
复制代码
这一行是脚本的 shebang,它告诉系统使用 /bin/bash 这个解释器来执行后面的脚本内容。
  1. while true
  2. do
复制代码
这是一个无限循环的开始。while true 表现只要条件为真(在这里条件永久为真),循环就会一直执行下去。
  1. gnome-terminal
复制代码
这行下令会打开一个新的 gnome-terminal 窗口。每次循环都会执行这个下令,因此会不停打开新的终端窗口。
  1. # Sleep 1 不加则为死循环
复制代码
这是一行注释,解释了下一行代码的作用。假如不加 sleep 1,那么 gnome-terminal 下令会几乎连续不停地执行,导致系统资源迅速耗尽,形成所谓的“死循环”。
  1. sleep 1
复制代码
这行下令会让脚本停息执行 1 秒钟。这是为了克制上述的死循环情况,给系统一个喘息的时机,同时也控制了终端窗口的打开速率。
  1. done
复制代码
这是无限循环的结束标志。
注意:这个脚本在实际使用中大概会导致系统资源迅速耗尽,因为它会不停打开新的终端窗口。假如你想要一个更实用的版本,可以思量添加一些条件来控制循环的执行次数或者提供用户交互来退出循环。
例如,你可以修改脚本,使其在用户按下某个键之后退出循环:
  1. #!/bin/bashwhile true; do
  2.     gnome-terminal &
  3.     read -n 1 -s -r -p "Press any key to continue or 'q' to quit: " key
  4.     if [[ $key == 'q' ]]; then
  5.         break
  6.     fi
  7. done
复制代码
这个修改后的脚本会在每次打开新的 gnome-terminal 后等待用户按键,假如用户按下 'q',则退出循环。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表