一、Linux简介
1、Linux是什么?
Linux是一种操作系统,其功能与Windows相似,为用户提供了一个运行应用程序、管理硬件资源和进行各种计算任务的平台。在实际应用中,Windows常被用作个人PC,而Linux 更多地被应用于服务器领域。
值得注意的是,Linux并非指某一个特定的操作系统,而是对一类操作系统的统称。目前常见的Linux发行版有:
-
Red Hat:作为全球知名的Linux供应商红帽公司推出的收费版系统。
-
CentOS:这是Red Hat推出的免费版本。
-
Ubuntu:其界面友好,在安装双系统时常常是首选。
2、CentOS上游和下游
上游方面:
CentOS Stream 充当了 Red Hat 的前置版本。这意味着开发者可以在这个阶段对 Red Hat 进行测试和验证,因此 CentOS Stream 属于 Red Hat 的上游。
下游方面:
CentOS Linux 则是对 Red Hat 进行再次编译后的产物。它在 Red Hat 的基础上进行了优化和调整,属于 Red Hat 的下游版本。
3、Linux系统的优势
1)Linux 系统的稳定性:
Linux 采取了众多先进的安全技术措施,如对读、写操作进行严格的权限控制,审计跟踪记录系统活动,以及核心授权机制等,这些都为 Linux 系统的稳定运行提供了坚实的保障。即使在高负载和长时间运行的情况下,Linux 也能保持出色的性能和可靠性。
2)Linux 系统的安全性:
Linux 系统在设计之初就充分考虑了多用户环境的需求。它对系统文件和用户文件进行了明确而细致的区分,为每个文件赋予了不同的用户属性。作为普通用户,通常只能读写自己的文件,而对于一般的系统文件,往往只能读取而无法进行修改。对于一些敏感的系统文件,甚至连读取操作都是被严格禁止的。这种精细的权限管理设计从根本上确保了系统的安全性,即使某个用户文件出现问题,也能有效地避免对整个系统造成影响。
3)Linux 软件安装的便利性:
在 Linux 系统中,绝大多数软件都支持在线安装。用户只需在联网状态下通过简单的命令即可轻松完成软件的安装过程,无需繁琐的手动操作和复杂的配置。这不仅节省了时间,还降低了安装过程中出错的风险。
4)Linux 内核:
Linux 的内核体积小巧,仅有几兆大小,这使得它非常适合应用于一些资源受限的小型设备。例如,安卓操作系统的底层逻辑就是基于 Linux 系统构建的,充分发挥了其内核精简高效的特点。
4、VMWare虚拟网络的三种连接模式
1)VMnet0:桥接模式
-
桥接模式原理
桥接模式将物理主机虚拟化为一个类似于交换机的设备。所有采用桥接设置的虚拟机就如同连接到这个交换机的一个接口上,而物理主机自身也如同插入到这个交换机中一样。因此,在桥接模式下,所有的网卡之间都处于交换模式,相互之间可以自由访问而互不干扰。 这种模式的优点是虚拟机能够直接获取到与物理主机所在网络相同网段的独立 IP 地址,从而实现与物理主机所在网络中的其他设备进行无障碍通信。
-
适用场景
桥接模式适用于虚拟机需要与物理主机所在网络中的其他设备进行频繁通信,且对网络性能要求较高的场景,例如在企业内部网络中部署虚拟机作为服务器。
2)VMnet1:仅主机模式
-
仅主机模式原理
仅主机模式(Host-Only)去除了虚拟 NAT 设备,而是通过 VMware Network Adapter VMnet1 虚拟网卡连接到 VMnet1 虚拟交换机来与虚拟机进行通信。这种模式将虚拟机与外部网络完全隔离,使其成为一个独立的封闭系统,只能与物理主机进行相互通讯。
-
适用场景
仅主机模式适用于需要在物理主机与虚拟机之间建立独立、安全的网络连接,而不希望虚拟机接入外部网络的场景,例如在进行一些涉及敏感数据处理的开发或测试工作时。
3)VMnet8:NAT模式
-
NAT 模式原理
NAT 模式利用虚拟的 NAT 设备和虚拟 DHCP 服务器,使得虚拟机能够通过物理主机连接到外部网络。同时,VMware Network Adapter VMnet8 虚拟网卡用于实现物理主机与虚拟机之间的通信。
-
适用场景
NAT 模式适用于希望虚拟机能够访问外部网络,但又不想让虚拟机直接暴露在外部网络中的场景,例如在家庭网络环境中使用虚拟机进行一些一般性的网络应用。
二、VMWare的使用
1、简介
Linux 作为操作系统,虽然在服务器领域表现出色,但对于日常办公而言,其操作便利性相较于 Windows 尚有不足。因此,对于大多数个人用户来说,没有必要将自己的电脑系统直接更换为 Linux ,也不必安装双系统。
此时,在 Windows 系统中安装一款虚拟化软件(如 VMWare ),通过它来模拟真实的操作系统环境(每个模拟出来的操作系统被称为“虚拟机”),则可以在保留 Windows 系统便捷性的同时,体验和使用 Linux 系统,避免了诸多不必要的麻烦。
2、VM对硬件的要求
VMWare 本身对硬件的要求相对不高。然而,由于虚拟机是在当前计算机中运行的,因此虚拟机的硬件性能上限实际上受到物理机硬件配置的限制。
例如,如果物理机的内存容量较小,分配给虚拟机的内存就会受到限制,可能导致虚拟机运行缓慢;若物理机的 CPU 性能较弱,虚拟机在进行多任务处理或运行大型应用程序时可能会出现卡顿现象。
3、VM的安装注意事项
-
在安装 VMWare 之前,请务必关闭防火墙、WiFi 共享精灵等可能影响安装过程的安全软件,以确保安装过程的顺利进行。
-
对于曾经安装过 VMWare 但已删除的电脑,如果再次安装出现失败的情况,建议尝试清除注册表中的相关残留信息,然后重新进行安装操作。 (可以通过使用cclear清除注册表)
-
可以随意进行安装,安装完成后输入对应版本的许可证即可完成激活。
-
若需要卸载 VMWare ,可通过打开文件的起始位置,找到“uninstall.exe”程序并执行删除操作。
-
安装过程中请保持网络连接稳定,避免因网络中断导致安装失败或出现异常。
三、Linux目录结构
1、目录
-
在 Linux 磁盘中,默认只有一个分区,类似于 Windows 中的 C 盘。其目录众多,以下是一些常用的目录及其用途:
/etc:存放系统配置文件,如网络配置、用户账号密码配置等。
/home:除了 root 用户外,其他所有用户都会在 /home 目录中有一个同名文件夹,用户对自己的文件夹拥有完整的操作权限,可以在此存储个人文件和数据。
/root:这是 root 用户(超级管理员)的专属目录,只有 root 用户有权进行操作,通常存放系统管理相关的重要文件。
/usr:其中包含 /usr/local 目录,所有用户自行安装的软件通常会放置在这个目录中,便于统一管理和维护。
/tmp:用于存储系统临时文件,如临时缓存、临时数据等,系统会定期清理该目录中的内容以释放磁盘空间。
/bin:包含常用的命令工具,如 ls 、cat 等,这些命令在系统启动和日常操作中经常被使用。
2、路径
1)绝对路径(全路径):
-
从根目录(/ )开始查找文件的路径。
-
写法:以“/”开头。
-
例如,要查找 /usr 目录下的 local 目录中的内容,路径应为:/usr/local 。
绝对路径能够准确无误地定位文件或目录在文件系统中的位置,无论当前工作目录在何处,都能通过绝对路径直接访问目标。
2)相对路径:
-
从当前所在的资源路径开始查找其他资源路径的过程。
-
写法:不一定以“/”开头。
-
例如,要查找当前资源的子目录,直接写子目录的名称即可;若要向上跳一级文件,写法为:../文件名 。
相对路径的使用相对灵活,在已知当前位置与目标位置相对关系的情况下,可以更简洁地表示路径。
3)特殊路径写法:
-
“/” 表示磁盘根目录。
-
“~” :表示主目录。 例如,对于 root 用户,主目录是 /root ;对于普通用户,其主目录通常在 /home 下与用户名相同的文件夹。
-
“.” 表示当前目录。
-
“..” 表示当前目录的父目录。
4)其他
执行以下操作进行相关配置:
dpkg-reconfigure locales
找到 en_US.UTF-8 UTF-8 选项,按空格键将其取消勾选。
找到 [ ]zh_CN.GBK_GBK 和 [ ] zh-CN.UTF-8.UTF-8 两个选项,使用空格键将其勾选上。勾选完毕以后,在 <0k> 处按下空格,进行下一步。
在此处选择 zh_CN.UTF-8 字符编码,在 <0k> 处按空格键进行确认 ,并完成相关配置操作。 配置完毕以后,使用 reboot 命令重启系统使其生效。
配置完毕以后,使用reboot
命令重启系统使其生效。
四、Linux常见命令
1、系统操作
-
sudo passwd root
:更改 root 用户的密码,需要管理员权限。 -
netstat -ano
:查看系统中所有的网络连接和端口使用情况,包括进程 ID 等详细信息。 -
systemctl restart networking.service
:重启网络服务,用于解决网络配置更改后生效或网络故障恢复。 -
apt-get update
:更新软件源列表,获取最新的软件包信息。 -
apt-get upgrade
:更新已安装的软件到最新版本。 -
apt-get install xxx
:安装指定的软件包 xxx ,如果缺少依赖包,会自动安装依赖。 -
reboot
:重启系统,使系统重新加载并应用新的设置。 -
shutdown -h now
:立即关闭系统,并停止所有正在运行的进程。 -
init 0
:通过系统初始化进程关闭系统。 -
logout
:注销当前用户,返回登录界面。 -
sudo xxx
:以管理员权限执行命令 xxx 。
黑窗口设置文件大小:
ctrl + shift + “+”
:调大字体显示ctrl + “-”
:调小字体显示。
2、常见指令
-
cd :进入指定目录。
-
示例:
cd /usr/local
(全路径) 、cd../Documents
(相对路径,进入上级目录中的 Documents 目录) 、cd home
(相对路径,进入当前目录下的 home 目录) 。
-
-
pwd :显示当前工作目录的绝对路径。
-
clear :清空当前屏幕的显示内容。
-
ls -l :以平铺显示方式列出文件和目录的详细信息,包括权限、所有者、大小、修改时间等。
-
ll :以详细列表形式显示目录中的文件和子目录信息,类似于
ls -l
。 -
mkdir :新建空目录。
-
格式:mdkir -p 路径:如果路径中包含了不存在的路径,自动创建
-
示例:
mkdir new_directory
(创建单个目录) 、mkdir -p parent/child
(如果路径中包含不存在的目录,自动创建父目录) 。
-
-
touch :创建空文件,如果文件已存在,则更新其修改时间。
-
rm :删除文件或目录。
-
格式:-r:删除指定目录;-f:删除不需要确认; -rf:删除文件(无需确认)
-
示例:
rm file.txt
(删除文件) 、rm -r directory
(删除指定目录及其内容) 、rm -f file.txt
(删除文件,无需确认) 、rm -rf directory
(强制删除目录及其内容,无需确认) 。
-
-
vi/vim :编辑文件。
-
解释:
-
a
:在当前位置之后追加内容。 -
i
:在当前位置插入内容。 -
o
:在当前行下方新开一行并进入插入模式。 -
:set number
:显示行号。 -
/搜索内容 + 回车
:查找指定内容。 -
dd
:删除当前行。 -
d+n
:删除指定行数。 -
:q
:退出,若文件有修改但未保存则无法退出。 -
:wq
:保存并退出。 -
:q!
:强制退出,不保存修改。
-
-
-
cat:查看文件的所有内容并在终端显示。
-
示例:
cat file.txt
。
-
-
tail :默认查看文件的后 10 行内容。
-
解释:
-
tail file.txt
:默认查看文件后 10 行。 -
tail -n file.txt
:指定查看文件的后 n 行。 -
tail -f file.txt
:动态监听文件内容的新增部分(使用ctrl + C
组合键释放光标) 。
-
-
-
mv :剪切文件或目录。
-
格式:mv 原文件路径 新文件路径
-
示例:
mv old_file.txt new_file.txt
(重命名文件) 、mv file.txt /destination_directory
(将文件移动到指定目录) 。
-
-
cp :复制文件或目录。
-
格式:【cp 原文件路径 新文件路径 | cp -r 原文件夹路径 新文件夹路径】
-
示例:
cp source_file.txt destination_file.txt
(复制文件) 、cp -r source_directory destination_directory
(复制目录,包括子目录和文件)
-
-
ip addr :查看网络接口的 IP 地址等网络配置信息(类似windows中的ipconfig)
3、压缩解压缩
1、bzip2
bzip2 file1 :压缩一个叫做 ‘file1’ 的文件
bunzip2 file1.bz2 :解压一个叫做 'file1.bz2’的文件
2、gzip和gunzip
gzip file1 :压缩一个叫做 'file1’的文件
gzip -9 file1 :最大程度压缩
gunzip file1.gz :解压一个叫做 'file1.gz’的文件
3、zip和unzip
zip file1.zip file1 :创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 :将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip :解压一个zip格式压缩包
4、rar
rar a file1.rar file :将file文件打包成 ‘file1.rar’ 的包
rar a file1.rar file1 file2 dir1 :同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’
rar x file1.rar :解压rar包
unrar x file1.rar :解压rar包
5、tar
tar -cvf archive.tar file1 :创建一个非压缩的 tarball ,包含文件 `file1` 。
tar -cvf archive.tar file1 file2 dir1 :创建一个包含文件 `file1` 、 `file2` 和目录 `dir1` 的档案文件。
tar -tf archive.tar :显示一个 tar 包中的内容。
tar -xvf archive.tar :释放一个 tar 包。
tar -xvf archive.tar -C /tmp:将 tar 包释放到 `/tmp` 目录下。
针对 bz2 :
tar -jcvf archive.tar.bz2 dir1 :创建一个 `bzip2` 格式的压缩包。
tar -jxvf archive.tar.bz2 :解压一个 `bzip2` 格式的压缩包。
针对 gz :
tar -zcvf archive.tar.gz dir1 :创建一个 `gzip` 格式的压缩包。
tar -zxvf archive.tar.gz :解压一个 `gzip` 格式的压缩包。
五、Linux基础配置
1、root密码是设置
sudo passwd root 原密码-->新密码-->确认密码
执行该命令后,首先需要输入当前用户的密码,然后输入新的 root 密码,并再次确认新密码。通过这样的步骤,可以成功设置 root 用户的密码,增强系统的管理权限和安全性。
2、配置源
1)配置镜像源:
① sudo su :切换至 root 用户,获取更高的系统操作权限。
② vim /etc/apt/sources.list :使用 vim 编辑器打开 sources.list 文件,以便进行编辑操作。
③ 添加镜像源 - 进入插入模式 :
#阿里源 deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib #中科大源 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib #清华大学源 deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free #浙大源 deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free #东软大学源 deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib #网易Kali源 deb http://mirrors.163.com/debian wheezy main non-free contrib deb-src http://mirrors.163.com/debian wheezy main non-free contrib
在添加镜像源时,可以根据您的网络环境和需求选择一个或多个源。不同的源可能在下载速度和稳定性上有所差异。
④ esc
:wq
:先按 esc
键退出编辑模式,然后输入 :wq
保存并退出 vim 编辑器。
⑤ apt-get update
:更新索引,使系统能够识别和获取新添加的镜像源中的软件包信息。
2)配置源报错解决:
① cd /etc/apt
:进入 /etc/apt
目录。
② ls -al
:列出该目录下的所有文件及详细信息,查找 .sources.list.swp
文件。
③ rm.sources.list.swp
:删除该临时交换文件,以解决可能由于该文件导致的配置源报错问题。
3、xshell连接kali
xshell用ssh连接kali虚拟机:
①ifconfig 查看kali的IP地址
②打开xshell,进行连接 主机写IP地址 通过用户身份验证
③打开虚拟机22号端口
vim /etc/ssh/sshd_config
改前:
改后:
④ systemctl restart ssh
:重启 SSH 服务,使端口配置生效。
⑤ systemctl enable ssh
:配置 SSH 服务开机自启,确保每次系统启动时 SSH 服务能够自动运行。
⑥ systemctl is-enabled ssh
:检查 SSH 服务是否开机自启。如果显示 enable
,表示开机自启;如果显示 disable
,表示开机不自启。
⑦ 在 xshell 上面建立连接 :完成上述配置后,即可在 xshell 中成功建立与 kali 虚拟机的连接,并进行远程操作和管理。