导航-Navigation
导航至关重要,就像标准 Windows 用户使用鼠标一样。有了它,我们可以在系统中移动,并在我们需要和想要的目录和文件中工作。因此,我们使用不同的命令和工具来打印有关目录或文件的信息,并且可以使用高级选项来根据我们的需要优化输出。
学习新东西的最好方法之一就是尝试它。在这里,我们介绍了有关在 Linux 中导航、创建、移动、编辑和删除文件和文件夹、在操作系统上查找它们、不同类型的重定向以及文件描述符是什么的部分。我们还将找到一些快捷方式,使我们使用 shell 的工作变得更加轻松和舒适。我们建议在本地托管的虚拟机上进行试验。确保我们已经为虚拟机创建了快照,以防我们的系统意外损坏。
pwd
让我们从导航开始。在我们浏览系统之前,我们必须找出我们所在的目录。我们可以通过命令找到我们所在的位置pwd
。
cry0l1t3@htb[~]$ pwd
/home/cry0l1t3
ls
只ls
需要该命令即可列出目录中的所有内容。它有许多附加选项可以补充当前文件夹中内容的显示。
cry0l1t3@htb[~]$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
ls -l
在没有任何附加选项的情况下使用它将仅显示目录和文件。但是,我们还可以添加-l
选项来显示有关这些目录和文件的更多信息。
cry0l1t3@htb[~]$ ls -l
total 32
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:37 Desktop
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Documents
drwxr-xr-x 3 cry0l1t3 htbacademy 4096 Nov 15 03:26 Downloads
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Music
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Pictures
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Public
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Templates
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Videos
首先,我们看到当前目录中列出的文件和目录使用的块总数(512-byte
),这表示使用的总大小。这意味着它使用了 32 * 512 字节 =16384 bytes
磁盘空间。接下来,我们看到一些结构如下的列:
栏目内容 | 描述 |
---|---|
drwxr-xr-x | 类型和权限 |
2 | 文件/目录的硬链接数量 |
cry0l1t3 | 文件/目录的所有者 |
htbacademy | 文件/目录的组所有者 |
4096 | 文件大小或用于存储目录信息的块数 |
Nov 13 17:37 | 日期和时间 |
Desktop | 目录名称 |
ls -la
但是,我们不会看到该文件夹中的所有内容。目录还可以包含名称开头以点开头的隐藏文件(例如.bashrc
或.bash_history
)。因此,我们需要ls -la
对list all
目录的文件使用以下命令:
cry0l1t3@htb[~]$ ls -la
total 403188
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:37 .bash_history
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:37 .bashrc
...SNIP...
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:37 Desktop
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Documents
drwxr-xr-x 3 cry0l1t3 htbacademy 4096 Nov 15 03:26 Downloads
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Music
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Pictures
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Public
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Templates
drwxr-xr-x 2 cry0l1t3 htbacademy 4096 Nov 13 17:34 Videos
要列出目录的内容,我们不一定需要先导航到那里。我们还可以使用“ ls
”来指定我们想要了解内容的路径。
cry0l1t3@htb[~]$ ls -l /var/
total 52
drwxr-xr-x 2 root root 4096 Mai 15 18:54 backups
drwxr-xr-x 18 root root 4096 Nov 15 16:55 cache
drwxrwsrwt 2 root whoopsie 4096 Jul 25 2018 crash
drwxr-xr-x 66 root root 4096 Mai 15 03:08 lib
drwxrwsr-x 2 root staff 4096 Nov 24 2018 local
<SNIP>
我们可以做同样的事情来导航到目录。要浏览目录,我们使用命令cd
。让我们切换到/dev/shm
目录。当然,我们可以/dev
先进入目录,然后再进入/shm
。不过,我们也可以输入完整路径并跳转到那里。
cry0l1t3@htb[~]$ cd /dev/shm
cry0l1t3@htb[/dev/shm]$
由于我们之前位于主目录,因此我们可以快速跳回到上次所在的目录。
cry0l1t3@htb[/dev/shm]$ cd -
cry0l1t3@htb[~]$
shell 还为我们提供了自动完成功能,这使得导航更加容易。如果我们现在键入cd /dev/s
并按下,我们将获得目录中[TAB] twice
以字母“ ”开头的所有条目。s/dev/
cry0l1t3@htb[~]$ cd /dev/s [TAB 2x]
shm/ snd/
如果我们将字母“ h
”添加到字母“ s
”,shell将完成输入,否则该目录中将不会有以字母“ sh
”开头的文件夹。如果我们现在显示该目录的所有内容,我们只会看到以下内容。
cry0l1t3@htb[/dev/shm]$ ls -la /dev/shm
total 0
drwxrwxrwt 2 root root 40 Mai 15 18:31 .
drwxr-xr-x 17 root root 4000 Mai 14 20:45 ..
第一个带有单点 ( .
) 的条目表示我们当前所在的当前目录。第二个带有两个点 ( ..
) 的条目表示父目录/dev
。这意味着我们可以使用以下命令跳转到父目录。
cry0l1t3@htb[/dev/shm]$ cd ..
cry0l1t3@htb[/dev]$
由于我们的 shell 充满了一些记录,我们可以使用命令清理 shell clear
。不过,首先让我们返回到之前的目录/dev/shm
,然后执行clear
命令来清理我们的终端。
cry0l1t3@htb[/dev]$ cd shm && clear
清理终端的另一种方法是使用快捷方式[Ctrl] + [L]
。我们还可以使用箭头键(↑
或↓
)滚动命令历史记录,这将显示我们之前使用过的命令。但我们也可以使用快捷方式搜索命令历史记录[Ctrl] + [R]
并键入我们要查找的一些文本。
开始实例
下载vpn配置,连接vpn
┌──(root㉿kali)-[~/桌面]
└─# openvpn academy-regular.ovpn
通过ssh连接到目标主机
┌──(root㉿kali)-[~/桌面]
└─# ssh htb-student@10.129.71.206
提问区
htb-user 的主目录中隐藏的“历史”文件的名称是什么?
What is the name of the hidden "history" file in the htb-user's home directory?
“/etc”目录中“sudoers”文件的索引号是多少?
What is the index number of the "sudoers" file in the "/etc" directory?
索引号或 inode 是 Unix 文件系统中文件唯一的数字。它是操作系统在存储和检索数据时使用的标识号。数据有两部分 - 元数据(权限、文件大小等)以及实际数据本身。
您可以使用以下任一命令查找特定文件的索引节点:
ls -i /home/mav3n/user.txt
或者stat /home/mav3n/user.txt
ls -i /etc | grep sudoers