光速入门linux,把玩linux的常用命令行

linux操作系统的简单概述

Linux 是一种开源的类 Unix 操作系统,最初由芬兰程序员林纳斯·托瓦兹(Linus Torvalds)于 1991 年开发。Linux 是一个功能强大、灵活且安全的操作系统,从个人电脑到大型服务器和嵌入式设备。拥有开源、多用户和多任务、稳定性和安全性、丰富的发行版、强大的命令行和社区支持的特点。由于其开源特性,Linux 也促进了技术的创新和共享。目前主要用于服务器、嵌入式系统、桌面开发、开发环境。

学习准备工作

虚拟机的下载

由于我们电脑一般都是windows操作系统,所以要在windows使用linux的操作系统需要配合使用虚拟机

点击跳转vmware官方地址

镜像的安装

虚拟机需要操作系统的镜像才能使用,所以需要到对应的官网里下载linux操作系统的镜像。这里我提一嘴,如果你在官网里下载的是zip文件,那个是已经配置好的系统存档(配置无法更改),而iso文件才是镜像文件。

如果你想要下载linux镜像,推荐文章

Linux镜像最全版本下载网站_linux系统下载-CSDN博客

我自己更加推荐使用kali,因为kali附带了许多工具与环境,比其他的更加方便,如果想要用kali,推荐文章

【基础教学】保姆级手把手教学使用VMware安装kali虚拟机-CSDN博客

安装系统的时候也可以选择已经预设好的系统存档压缩包,这样可以不用自己进行许多麻烦的操作

远程登录linux

windows

使用基于windows工具xshell实现远程登录,点击跳转xshell官网

Linux

如果你想在 Linux 中使用类似的功能,可以考虑使用以下工具:

  • SSH 客户端:大多数 Linux 发行版都自带 SSH 客户端,可以通过终端直接使用 ssh 命令连接到其他服务器。

  • 终端模拟器:Linux 中有很多终端模拟器,如 GNOME Terminal、Konsole、xterm 等,可以用来执行命令和管理系统。

  • 其他 SSH 客户端:如果需要图形界面的 SSH 客户端,可以考虑使用 Remmina 或 Terminator 等工具。

用户和用户组配置文件

用户账号文件/etc/passwd

概述:用户账号信息(密码除外)都保存在/etc/passwd文件中,所有用户都可以查看此文件的东西

1
cat /etc/passwd

每一行代表一个用户的账号资料

1
用户名:密码:UID:GID:用户描述信息:用户主目录:登录shell

用户影子文件/etc/shadow

概述:/etc/shadow文件是根据/etc/passwd产生,用户密码经过加密存放在此文件夹中,此文件夹只能由root用户查看

1
cat /etc/shadow

每一行代表一个用户的信息

1
用户名:密码:最后修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

用户默认配置文件/ect/login.defs

概述:比前面几个显示更加详细的用户信息

1
cat /etc/login.defs

用户组账号文件 /etc/group

概述:用于保存用户组信息,所有用户都可以查看

1
cat /etc/group

每一行代表一个用户组信息

1
用户组名称:用户组密码:GID:用户成员列表

用户管理命令

注意:任何命令都可以后面接--help,这个可以告诉你这个命令可以接那些选项

添加用户命令useradd

概述:在系统中创建一个新的账号,并通过选项为账号设置用户名称、用户组、主目录、登录shell等基本信息(可不添加)

1
useradd 选项 用户名

设置用户密码命令passwd

概述:为新账户添加密码或者修改密码,过程密码不显现,并且需要输入两次

1
passwd 选项 用户名

修改用户名命令usermod

概述:修改用户信息,如用户ID、主目录、用户组、登录shell。

1
usermod 选项 参数

删除用户命令userdel

概述:若一个账户不在使用,可以用该命令进行删除

1
userdel 选项 用户名

用户临时禁用与恢复

概述:临时禁用一个用户而不删除

禁用操作如下,操作后重启生效

1
passwd -l 用户名

恢复操作如下

1
passwd -u 用户名

用户切换命令

su命令

概述:su命令切换用户是最简单的方式

1
su 选项 用户名

普通用户切换root用户直接使用su命令就行(需要输入root密码),此外都需要在后面添加用户名

sudo命令

概述:相较与su而言,免去了切换root用户的输入密码的流程,需要在/etc/sudoers文件里添类似root ALL=(ALL) ALL的内容

实例:

1
2
itheima ALL=(root) /bin/more
用户名 主机名称=(可切换的身份) 可执行的命令

注意:ALL是个特殊的关键字,表示任何主机、身份与命令

用户组管理命令

查看用户所属的组命令gronps

概述:命令后面直接接个用户名即可查看用户的所有组,查询root用户的所属组可以省略用户名

1
groups 用户名

创建用户组命令groupadd

概述:用于添加用户组

1
2
3
groupadd 选项 参数
示例:创建一个用户组groupl,指定GID为2000
groupadd -g 2000 groupl

修改用户组命令groupmod

概述:修改用户组的属性,如GID、用户组名称等

1
2
3
groupmod 选项 用户组
示例:修改用户组group1的GID为3000,并更改用户组名为group2
groupmod -g 3000 -n group2 group1

删除用户组命令groupdel

概述:命令接用户组名称,删除一个用户组

1
groupdel 用户组名称

管理用户组中的用户命令gpasswd

概述:将某个用户添加到某个用户组里,或者将某个用户从某个用户组里删除

1
groupwd 选项 用户名 用户组

liunx文件系统

概述:文件系统规定了数据在磁盘上的组织储存方式,也规定了系统的访问数据的方式,linux操作系统常用的文件操作系统包括ext3、ext4和xfs

linux目录结构

概述:目录结构是磁盘等储存设备上文件的组织形式。windows操作系统以磁盘为树状组织结构的根节点;liunx操作系统则只有一个树状结构

RHEL常用目录

/:根目录,只含目录,不放文件

/etc:主要用于存储系统或软件的管理文件和配置文件

/bin:用于存储可执行文件

/home:普通用户的工作目录

/usr:用于存储用户程序(/usr/bin)、库文件(/usr/lib)、文档(/usr/share/doc)

/root:超级用户工作目录

/lib:用于存储动态链接共享库文件

/boot:用于存储操作系统启动时所需要的文件

/mnt:用于存储挂载存储设备的挂载目录

/proc:用于存储系统内存的映射,可以直接通过访问/proc目录下的文件获取系统信息

/opt:用于存储附加的应用程序软件包

/tmp:用于存储临时文件,重启系统,该目录下的文件就会被清除

/swap:用于存储虚拟内存交换时所用文件

访问路径

绝对路径:以根目录“/”为起点,表示系统中某个/目录的位置。例如/home/itheima/file/a.txt

相对路径:以当前目录为起点,表示系统中某个文件/目录的位置。用户在/home/itheima目录下,相对路径即为file/a.txt

liunx文件类型

文件类型

普通文件:文件属性用-开头

目录文件:文件属性用d开头

设备文件:linux把每个设备都看成一个文件,设备文件一般存储在/dev目录下。字符设备文件属性用c开头,块设备文件属性用b开头

链接文件:文件属性用l开头

管道文件文:文件属性用p开头

套接字文件:文件属性用s开头

查看当前目录下文件类型

1
ls -l

目录操作命令

pwd命令

概述:查看当前工作目录

1
pwd

cd命令

概述:用于切换用户的工作目录

1
cd 目录

ls命令

概述:用于列出参数的属性信息

1
ls 选项 参数

常用选项:

不带选项可以查看当前目录

-a:显示当前目录下的全部文件(包括隐藏文件)

mkdir命令

概述:用创建目录

1
mkdir 选项 参数

示例:

1
2
3
4
5
6
7
8
9
10
┌──(kali㉿kali)-[~]
└─$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos

┌──(kali㉿kali)-[~]
└─$ mkdir itheima

┌──(kali㉿kali)-[~]
└─$ ls
Desktop Documents Downloads itheima Music Pictures Public Templates Videos

注意:创建多层目录的时候,需要带选项-p

rmdir命令

概述:用于删除目录

1
rmdir [-p] 参数

示例:

1
2
3
4
5
6
7
8
9
10
┌──(kali㉿kali)-[~]
└─$ ls
Desktop Documents Downloads itheima Music Pictures Public Templates Videos

┌──(kali㉿kali)-[~]
└─$ rmdir itheima

┌──(kali㉿kali)-[~]
└─$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos

注意:-p用于删除非空目录

文件内容显示命令

cat命令

概述:用于把文件内容打印到输出设备

1
cat 选项 文件名

more命令

概述:分页查询文件内容

1
more 选项 文件名

more命令常用快捷键

快捷键 说明
f/Space 显示下一页
Enter 显示下一行
q/Q 退出

less命令

概述:分页查询文件内容,并支持向上翻文件

1
less 选项 文件名

less命令快捷键

快捷键 说明
/字符串 向下搜索字符串
?字符串 向上搜索字符串
b或PageUp或⬆ 向上翻页
d或pageDown或⬇ 向下翻页
空格键 向下翻页
q 退出

head命令

概述:用于查看文件的前n行内容(默认显示10行)

1
head 选项 文件名

tail命令

概述:用于查看文件的后n行的内容

1
tail 选项 文件名

文件查询命令

find命令

概述:可以通过关键字,从指定的目录开始递归搜索各各子目录查找符合条件的文件

1
find 路径 选项 查询关键字

which命令

概述:用于搜寻可执行文件的位置

1
which 命令

whereis命令

概述:与which命令相似,但它还可以查找帮助文档

1
whereis 选项 命令

文件内容统计

概述:用于统计文件的字节数、字数和行数。

1
wc 选项 文件名

wc常用选项

选项 说明
-c 统计指定文件中文件的字节数
-l 统计指定文件中文件的行数
-w 统计指定文件中文件的字数

文件的复制、移动、删除

文件复制命令cp

概述:用于将一个或多个文件复制到指定目录

1
cp 选项 原文件或目录 目标文件或着目录

文件移动命令mv

概述:此命令有两个作用,一个用于重命名文件,第二个用于移动文件/目录到指定目录。

1
mv 选项 文件/目录 目标文件/目录

mv命令常用选项

选项 说明
-f 强制移动文件或重命名文件
-i 与-f相反,在移动文件或重命名文件之前给出提示

文件删除命令rm

概述:用于删除文件/目录

1
rm 选项 文件/目录

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
┌──(kali㉿kali)-[~]
└─$ echo "hello world" >> a.txt

┌──(kali㉿kali)-[~]
└─$ ls
a.txt Desktop Documents Downloads Music Pictures Public Templates Videos

┌──(kali㉿kali)-[~]
└─$ rm a.txt

┌──(kali㉿kali)-[~]
└─$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos

文件更新(可新建文件)

概述:用于修改文件/目录文件的时间为系统时间,包括文件的存取时间和修改时间。如果不存在,则会创建一个新的文件

1
touch 选项 文件名

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
┌──(kali㉿kali)-[~]
└─$ echo "hello world" >> a.txt

┌──(kali㉿kali)-[~]
└─$ ls -l a.txt
-rw-rw-r-- 1 kali kali 12 9月30日 08:19 a.txt

┌──(kali㉿kali)-[~]
└─$ touch a.txt

┌──(kali㉿kali)-[~]
└─$ ls -l a.txt
-rw-rw-r-- 1 kali kali 12 9月30日 08:20 a.txt

文件压缩和解压

gzip命令与gunzip命令

概述:如下命令用于压缩文件,得到.gz文件。改命令对压缩文件不会保留原文件,且压缩多文件时,gzip命令只会对它们单独压缩

1
gzip 选项 文件名

概述:如下命令用于解压.gz压缩包

1
gunzip 选项 压缩包

示例:压缩并解压文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
┌──(kali㉿kali)-[~]
└─$ echo "hello world" >> a.txt

┌──(kali㉿kali)-[~]
└─$ echo "hello world" >> b.txt

┌──(kali㉿kali)-[~]
└─$ ls
a.txt b.txt Desktop Documents Downloads Music Pictures Public Templates Videos

┌──(kali㉿kali)-[~]
└─$ gzip a.txt b.txt

┌──(kali㉿kali)-[~]
└─$ ls
a.txt.gz b.txt.gz Desktop Documents Downloads Music Pictures Public Templates Videos

┌──(kali㉿kali)-[~]
└─$ gunzip -v a.txt.gz b.txt.gz
a.txt.gz: -16.7% -- replaced with a.txt
b.txt.gz: -16.7% -- replaced with b.txt

┌──(kali㉿kali)-[~]
└─$ ls
a.txt b.txt Desktop Documents Downloads Music Pictures Public Templates Videos

查看压缩包内容

1
zcat 压缩包

bzip2命令与bunzip命令

概述:如下命令用于压缩文件获得.bz2格式的压缩包,与gzip命令相比,此命令更加高效,且使用-k可以保留原文件

1
bzip2 选项 文件名

概述:用于解压文件

1
bunzip2 选项 压缩包

zip命令与unzip命令

概述:zip命令可以压缩文件获得.zip压缩包。使用该命令会保留原文件。多个文件需要压缩可以将它们压缩成一个压缩包

1
zip 选项 压缩包名 文件名

概述:用于解压文件

1
unzip 选项 压缩包名

文件打包命令tar

概述:用于把一个许多文件/目录打包成.tar格式文件包,但它不是一个压缩命令,打包之后的文件与原文件的大小相同。在压缩文件的时候,通常先用tar命令将文件打包,再使用gzip或者bzip2压缩命令

1
tar 选项 包名 文件/目录

管理权限

概述:用户对文件/目录的访问权限可分为三种,分别是读、写、执行

字符表示法:

权限 对应字符 文件 目录
读权限 r 可查看文件内容 可以列出目录的中内容
写权限 w 可修改文件内容 可以在目录中创建、删除文件
执行权限 x 可执行该文件 可以进入目录

数字表示法:

概述:在数字表示法中,用户对文件/目录的权限可以用个3位二进制数表示。如果用户具有某一个权限,则对应位置为1.否则为0。这样用户的访问权限就可以表示为一个3位的二进制数,其值最大为7,因此此可以看作为一个八进制数。(例如:文件的访问权限为rw-rw-r—,对应的数值表示法为110110100,则每三个一组,分别表示文件的所有者同组用户其他用户的访问权限,转换为八进制本别为6、6、4,因此a.txt的访问权限为664。

chmod命令

采用字符方式更改文件/目录权限

1
chmod 选项 a|U|g|o +|-|= modo 文件/目录

a|U|g|o表示用户:

  • a:所有用户
  • u:文件所有者
  • g:同组用户
  • o:其他用户

+|-|=表示权限的设置:

+:添加权限

-:取消权限

=:设置权限

modo表示所设置的权限,即读(r)、写(w)、执行(x)权限

采用数字方式更改文件/目录权限

1
chmod 数值表示的权限 文件/目录

chown命令

概述:chown命令用于更改文件/目录的所有者。默认情况下,文件/目录的所有者为创建该文件/目录的用户,或者文件/目录被创建时指定的用户,但是,通过chown命令修改文件/目录的所有者

1
chown 选项  用户 文件/目录

文件链接

概述:在linux操作系统中,每个文件都有一个i-node编号,文件内容由i-node节点中记录来指向。在访问文件内容时,通过文件名找到文件对应的i-node节点,根据i-node节点中的信息指示找到的存储文件数据的block数据块,从而完成文件数据的访问

硬链接

概述:硬链接就是给文件的i-node节点分配创建多个文件名,通过任何一个文件名都可以找到文件对应的i-node节点,进而找到存储文件数据的block数据块完成文件访问。

软链接

概述:软链接实际是个特殊的文件,其中定义了文件的信息,如文件位置、文件大小等。实质上软链接就是创建了一个新的i-node节点

文件链接管理命令In

1
In 选项 原文件 链接文件

注意:使用-s表示添加软链接,不使用就是硬链接

使用vim编译器

vim编译器的启动、保存和退出

  • 启动vim:vim启动是非常简单的,直接在命令行输入vim和文件名即可,如果文件存在,则是打开文件,否则系统就会创建一个新的文件,语句如下

    1
    Vim 文件名
  • 保存和退出vim:当编辑文件之后需要保存的时候,在保存的时候使用:wq命令,再按一次Enter键即可保存文件并退出

vim编辑器工作模式

命令模式

概述:每次用vim打开文件,默认进入命令模式。在命令模式下,用户可以控制光标移动,对文本进行复制、粘贴、删除和查找等操作,但无法对文件执行手动的输入、修改等编辑操作。

注意:当处于编辑模式或者末行模式中,可以通过Esc键切换到命令模式

移动光标:

级别 命令快捷键 含义
字符级 ←或者h 使光标向字符的左边移动
→或着l 使光标向字符的右边移动
单词级 w 使光标移动到下个单词的首字母
e 使光标移动到本单词的尾字母
b 使光标移动本单词的首字母
行级 ↑或k 使光标移动到上一行
↓或j 使光标移动到下一行
$ 使光标移动到当前行尾
0 使光标移动至当前行首
段落级 { 使光标移至段落结尾
} 使光标移至段落首部
屏幕级 H 使光标移至屏幕首部
L 使光标移至屏幕尾部
文档级 G 使光标移至文档尾行
n+G 使光标移至文档的第n行

复制和粘贴文本:

命令快捷键 含义
yy 复制光标当前所在行
n+yy 复制n行内容(包括光标所在行)
y+e 从光标所在位置开始复制直到当前单词结尾
y+$ 从光标所在位置开始复制直到当前行结尾
y+{ 从当前段落开始的位置复制到光标所在位置
p 将复制的内容粘贴到光标所在的位置

删除文本:

命令快捷键 含义
x 删除光标所在的字符
dd 删除光标所在的当前行
n+dd 删除包括光标所在行的后边n行内容
d+$ 删除光标位置到行尾的所有内容

其他操作:

命令快捷键 含义 命令快捷键 含义
u 撤销命令 J 合并两行的内容
. 重复执行上一个命令 r+字符 快速替换光标所在字符
编辑模式

概述:编辑模式也称为输入模式,在该模式下,用户可以正常地输入、修改文件内容。编辑模式可由命令模式进入,在命令模式下按i、a、o或s等快捷键可以进入编辑模式,这些快捷键大小写均可以切换到编辑模式,只是切换作用不同。

命令快捷键 含义 命令快捷键 含义
i 光标定位到字符之前 o 在本行下面新插入一行
I 光标定位到本行行首 O 在本行上面新插入一行
a 光标定位到字符之后 s 删除光标所在处的字符
A 光标定位到本行行尾 S 删除光标所在的整行文本
末行模式

概述:所谓末行模式,就是在文件最后一行输入命令完成一定的操作。末行模式主要用于保存或不保存并退出,以及设置vim编辑器的工作环境。在命令模式下输入符号可以切换到末行模式。

命令快捷键 含义
:q 退出vim编辑器
:wq 保存并退出vim编辑器
:q! 强制退出vim编辑器,不保存对文件的修改
:wq! 强制保存文件退出vim编辑器
:set nu 设置行号,仅对本次操作有效,当重新打开文件时,若需要行号,要重新设置
:set nonu 取消行号,仅对本次操作有效
:n 使光标移动到第n行
:/字符串 在文件中从上至下搜索字符串
:?字符串 在文件中从下至上搜索字符串
:s/字符串1/字符串2 将当前光标所在行的第一个字符串1替换成字符串2
:s/字符串1/字符串2/g 将当前光标所在的行的所有字符串1替换为字符串2
:%s/字符串1/字符串2/g 将全文的字符串1都替换为字符串2
:%s/字符串1/字符串2/gc 将全文中的字符串1都替换成字符串2,且每替换一个内容都有相应的提示

管理软件包

rpm命令管理软件包

安装软件

1
rpm 选项 RPM软件包

注意:选项一般使用-ivh

查询软件

1
rpm 选项 RPM软件包

注意:一般使用-q来查询软件包的信息

升级软件

1
rpm 选项 RPM软件包

注意:一般使用-Uvh来安装该高版本的软件包,会将旧版本的软件包删除再安装新版本

卸载软件

概述:一般使用-e选项卸载软件包,卸载成功,rpm命令没有输出结果;如果失败就会有rpm的提示信息

dnf命令管理软件包

安装软件

1
dnf install 软件包

查询软件

1
dnf list 软件包

检测升级软件

1
dnf upgrade 软件名称

注意:如果不指定软件名称就会升级所有的课升级软件

清理过期所有无用数据

1
dnf clean all

注意:将all可以改为指定软件包名称,只清理指定软件包软件过期数据

卸载软件

1
dnf -y remove 软件包

进程

概述:当运行程序时,Linux系统会为程序创建一个特殊的环境,用于分配管理程序执行时所需的资源(如CPU或内存),以保证程序可以独立运行,不受其他程序干扰,这个特殊的环境就称为进程。

进程的状态

概述:在执行过程中,主要有就绪态、运行态和睡眠态3种状态

  • 就绪态:处于就绪态的进程,所需的其他资源都已经分配到位,只等待系统分配CPU。
  • 运行态:处于运行态的进程是指已经到分配CPU,正在运行的进程。如果时间片用完,处于运行态的进程会进入就绪态。如果因为其他原因而失去CPU,进程就会从运行态进入睡眠态
  • 睡眠态:进程因为某种原因暂时不能拥有CPU,就会进入睡眠态

进程的标识符

  • 进程标识符:每个进程都有个唯一的标识符,即进程标识符(Process ID,PID)。
  • 用户标识符:用户标识符(User ID,UID)标识创建这个进程的用户
  • 组标识符:组标识符(Group ID,GID)标识创建进程用户的所属组

进程管理常用命令

进程查看命令

1.ps命令

概述:ps命令用于查看系统中正在运行的进程信息,包括进程状态、占用资源,它是最基本也是最强大的进程查看命令。

1
ps 选项 参数

常用选项:-aux选项可以显示所有终端所有用户有关进程的详细信息;-ef选项用于显示系统中所有进程的主要信息。

2.top命令

概述:可以动态的地显示进程状态信息,默认每隔3秒刷新一下系统的整体的运行状态情况

1
top 选项 参数

常用选项:-i可以忽略闲置和僵死的进程

快捷键:Ctrl+z可以暂停任务

2.pstree命令

概述:可以树状形式显示系统中进程,即显示一个进程树,从中观察出进程的中的进程派生关系

1
pstree 选项

常用选项:-h列出树状图,特别标注当前正在执行的进程

4.pgrep命令

概述:根据服务器名称,从进程队列中查找与该服务有关的进程,查找成功后显示进程的PID

1
pgrep 选项 参数

进程终止命令

1.kill命令

概述:可以终止指定的进程,其工作原理是发送某个信号给指定进程,以改变进程的状态。

1
kill 选项 参数

注意:kill命令的选项一般是信号,参数为PID。使用kill -l可以查看预定义的信号

常用信号:9号信号(SIGKILL)可以无条件终止指定进程

2.killall命令

概述:用于终止某个服务所对应的全部进程

1
killall 选项 参数

任务的前台与后台调度

1.jobs命令

概述:用于显示系统中暂停的任务列表即任务状态,包括后台任务

1
jobs 选项 参数

注意:jobs命令的参数是任务标识号,选项一般使用-l可以显示进程号

2.bg命令

概述:用于将前台任务调度至后台执行

1
bg 参数

注意:bg的参数是任务标识号

3.fg命令

概述:用户将后台任务调度到前台执行

1
fg 参数

注意:fg的参数也是任务标识号

服务管理

概述:在操作系统中,服务是一类常驻再内存中的,且可以提供一些功能来满足用户需求的进程

1
systemctl 功能命令 服务进程

常用功能命令:

功能 说明
start 启动服务进程
stop 终止服务进程
status 查询服务进程运行情况,列出该服务的详细信息
restart 重启服务进程
enable 设置服务开机自启动
disable 取消服务开机自启动
reload 重新加载指定服务的配置文件(并非所有的服务都支持改参数,使用restart可实现相同功能)

计划任务

概述:在使用Linux系统过程中,有时需要执行一些周期性、规律的任务,如定时维护系统资源、定期备份数据库等

at命令

概述:at命令用于执行一次性计划任务,一般用于满足临时性的工作需求。

1
at 选项 参数

注意:参数一般是时间日期,at命令允许使用各种各样的时间格式,选项-l用于查看计划任务,-f可以从指定文件中读取任务,-d删除计划任务,参数为任务编号。

crontab命令

概述:可以周期性的重复执行某个任务,通常需要将任务命令写在一个文件中,这个任务文件叫作crontab文件。使用crontab命令加载这个文件,到指定时间系统会自动执行文件中的命令。

1
crontab 选线 参数

磁盘概述

概述:在Linux操作系统中,一切皆为文件,磁盘设备也不例外。

磁盘设备命名规则

概述:Linux操作系统中的磁盘设备也是文件,磁盘设备文件存储在/dev目录下,用户可以进入/dev目录查看磁盘设备文件。其实除了磁盘设备,其他所有文件都存储在/dev目录下。

查看磁盘使用情况

1.df命令

概述:可以查看磁盘的使用情况,包括磁盘容量、已用空间大小、可用空间大小、磁盘使用率等信息。

1
df 选项 磁盘设备

注意:常用选项有-h可以以易读的格式显示该磁盘设备的使用情况,-l只显示本地文件系统,-T显示文件系统类型

示例:查看/dev/sda1的使用情况

1
2
3
4
┌──(kali㉿kali)-[/dev]
└─$ df -h /dev/sda1
文件系统 大小 已用 可用 已用% 挂载点
/dev/sda1 48G 16G 31G 34% /

2.du命令

概述:用于查看文件或目录的磁盘占用情况。

1
du 选项 磁盘设备

示例:查看当前目录下所有子目录的大小

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
┌──(kali㉿kali)-[~/Desktop/tools]
└─$ du -h
24K ./MySQL/mysql/support-files
20K ./MySQL/mysql/docs
8.0K ./MySQL/mysql/lib/pkgconfig
39M ./MySQL/mysql/lib/plugin/debug
92M ./MySQL/mysql/lib/plugin
8.0K ./MySQL/mysql/lib/mecab/etc
40M ./MySQL/mysql/lib/mecab/dic/ipadic_euc-jp
51M ./MySQL/mysql/lib/mecab/dic/ipadic_utf-8
40M ./MySQL/mysql/lib/mecab/dic/ipadic_sjis
130M ./MySQL/mysql/lib/mecab/dic
130M ./MySQL/mysql/lib/mecab
3.4M ./MySQL/mysql/lib/private/icudt73l/brkitr
3.8M ./MySQL/mysql/lib/private/icudt73l
276K ./MySQL/mysql/lib/private/sasl2
55M ./MySQL/mysql/lib/private
310M ./MySQL/mysql/lib
404K ./MySQL/mysql/share/spanish
404K ./MySQL/mysql/share/danish
404K ./MySQL/mysql/share/polish
404K ./MySQL/mysql/share/romanian
404K ./MySQL/mysql/share/norwegian-ny
12K ./MySQL/mysql/share/aclocal
404K ./MySQL/mysql/share/swedish
404K ./MySQL/mysql/share/slovak
408K ./MySQL/mysql/share/serbian
404K ./MySQL/mysql/share/french
404K ./MySQL/mysql/share/estonian
404K ./MySQL/mysql/share/hungarian
404K ./MySQL/mysql/share/english
412K ./MySQL/mysql/share/greek
404K ./MySQL/mysql/share/bulgarian
404K ./MySQL/mysql/share/italian
404K ./MySQL/mysql/share/dutch
408K ./MySQL/mysql/share/portuguese
412K ./MySQL/mysql/share/japanese
404K ./MySQL/mysql/share/czech
404K ./MySQL/mysql/share/norwegian
412K ./MySQL/mysql/share/ukrainian
408K ./MySQL/mysql/share/korean
244K ./MySQL/mysql/share/charsets
420K ./MySQL/mysql/share/russian
412K ./MySQL/mysql/share/german
11M ./MySQL/mysql/share
798M ./MySQL/mysql/bin
28K ./MySQL/mysql/include/mysql
440K ./MySQL/mysql/include
856K ./MySQL/mysql/man/man1
12K ./MySQL/mysql/man/man8
872K ./MySQL/mysql/man
1.1G ./MySQL/mysql
1.6G ./MySQL
1.6G .

注意:常用-h显示当前目录及其子目录所占用空间的大小,及当前home目录及子目录的大小,最末尾

的为所有目录的总大小。

添加磁盘

概述:一块磁盘需要经过分区、格式化、挂载操作之后才能使用,为了后面更好的了解操作磁盘分区、格式化、挂载。需要 一块新磁盘。

1.点击在vmware的菜单栏中虚拟机,里面有个设置选项,点击设置

2.进入“硬件”选项卡中,选中“硬盘”选项,点击下方“添加”,进入向导对话框

3.选择硬件类型为“硬盘”,然后单击“下一步”,进入硬盘类型选择界面,选择”SCSI“虚拟磁盘类型,然后下一步

4.进入选择磁盘界面,选中“创建新虚拟磁盘”,点击“下一步“,进入”指定磁盘容量“界面。

5.磁盘大小就随自己填,如果没有特别的想法的建议用默认推荐大小,然后选中”将虚拟磁盘拆分成多个文件“下一步

6.选择自己的存储位置,点击完成,添加成功之后需要重新启动系统才能识别系统。

注意:请在这里设置一个快照,后面的操作如果失误,可能引起虚拟磁盘损坏,导致系统崩坏,需要重新开个虚拟机。别问我为什么知道,因为我也崩了,心态直接炸掉,想回档都回不了。

磁盘分区

概述:磁盘分区有利于数据的分类处理,提高磁盘的使用率与读取速率。

MBR分区规则

概述:主引导记录方式进行分区。第一个扇区是最重要的,它记录了3部分信息,分别是主引导记录、分区表信息和结束符。一块磁盘最多只有4个主分区。MBR还具有扩展分区,可以将第一个扇区中的一个分区指向另一个分区,指向的分区也叫做逻辑分区,逻辑分区可以分很多个。

MBR分区管理

概述:可通过fdisk命令对磁盘分区进行管理。可操作包括创建分区、删除分区、查看分区等。

1
fdisk 选项 磁盘

注意:常用选项-l显示磁盘及分区详细信息,-s显示磁盘分区容量

使用fdisk命令交互页面,在终端输入“fdisk 磁盘”即可进入交互页面

示例:

1
2
3
4
5
6
7
8
9
10
11
┌──(root㉿kali)-[/dev]
└─# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.40).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS (MBR) disklabel with disk identifier 0x6c3d0f01.

Command (m for help):

常用快捷键:

命令快捷键 说明 命令快捷键 说明
d 删除分区 p 打印分区表
F 列出为分区的空闲区 i 打印某个分区的相关信息
l 列出已知的分区类型 w 将分区表写入磁盘并退出
n 添加新分区 q 退出而不保存更改

1.查看分区情况

1
2
3
4
5
6
7
Command (m for help): F
Unpartitioned space /dev/sdb: 20 GiB, 21473787904 bytes, 41940992 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Start End Sectors Size
2048 41943039 41940992 20G

2.创建分区

  • 创建主分区

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Command (m for help): n # 创建分区
    Partition type
    p primary (0 primary, 0 extended, 4 free)
    e extended (container for logical partitions)
    Select (default p): #第一个分区默认创建主分区

    Using default response p.
    Partition number (1-4, default 1): #第一个主分区默认编号为1
    First sector (2048-41943039, default 2048): #默认起点为2048
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): +2G #设置主分区大小为2GB

    Created a new partition 1 of type 'Linux' and of size 2 GiB.

    Command (m for help): p #打印分区表,查看分区情况
    Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
    Disk model: VMware Virtual S
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x6c3d0f01

    Device Boot Start End Sectors Size Id Type
    /dev/sdb1 2048 4196351 4194304 2G 83 Linux

    Command (m for help):

    本次操作创建了一个 大小为2GB的主分区/dev/sdb1。

  • 创建逻辑分区

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    Command (m for help): n #创建分区
    Partition type
    p primary (1 primary, 0 extended, 3 free)
    e extended (container for logical partitions)
    Select (default p): e #选择扩展分区
    Partition number (2-4, default 2): 3 #设置扩展分区编号为3
    First sector (4196352-41943039, default 4196352): #扩展分区起点为保持默认
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (4196352-41943039, default 41943039): +5G #设置扩展分区大小为5GB

    Created a new partition 3 of type 'Extended' and of size 5 GiB.

    Command (m for help): p #打印分区表,查看分区情况
    Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
    Disk model: VMware Virtual S
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x6c3d0f01

    Device Boot Start End Sectors Size Id Type
    /dev/sdb1 2048 4196351 4194304 2G 83 Linux
    /dev/sdb3 4196352 14682111 10485760 5G 5 Extended

    Command (m for help): n #创建分区
    Partition type
    p primary (1 primary, 1 extended, 2 free)
    l logical (numbered from 5)
    Select (default p): l #选择逻辑分区

    Adding logical partition 5
    First sector (4198400-14682111, default 4198400): #逻辑分区起点保持默认
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (4198400-14682111, default 14682111): +2G #设置逻辑分区大小为2GB

    Created a new partition 5 of type 'Linux' and of size 2 GiB.

    Command (m for help): p #打印分区表,查看分区情况
    Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
    Disk model: VMware Virtual S
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x6c3d0f01

    Device Boot Start End Sectors Size Id Type
    /dev/sdb1 2048 4196351 4194304 2G 83 Linux
    /dev/sdb3 4196352 14682111 10485760 5G 5 Extended
    /dev/sdb5 4198400 8392703 4194304 2G 83 Linux

    Command (m for help): n #创建分区
    Partition type
    p primary (1 primary, 1 extended, 2 free)
    l logical (numbered from 5)
    Select (default p): l #选择创建逻辑分区

    Adding logical partition 6
    First sector (8394752-14682111, default 8394752): #逻辑分区起点保持默认
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (8394752-14682111, default 14682111): #第二个逻辑分区大小保持默认

    Created a new partition 6 of type 'Linux' and of size 3 GiB.

    Command (m for help): p #打印分区表,查看分区情况
    Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
    Disk model: VMware Virtual S
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x6c3d0f01

    Device Boot Start End Sectors Size Id Type
    /dev/sdb1 2048 4196351 4194304 2G 83 Linux
    /dev/sdb3 4196352 14682111 10485760 5G 5 Extended
    /dev/sdb5 4198400 8392703 4194304 2G 83 Linux
    /dev/sdb6 8394752 14682111 6287360 3G 83 Linux

    Command (m for help):

    本次操作创建了一个扩展分区/dev/sdb3,两个逻辑分区/dev/sdb5和/dev/sdb6

  • 删除分区

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Command (m for help): d #删除分区
    Partition number (1,3,5,6, default 6): 6 #指定分区编号

    Partition 6 has been deleted.

    Command (m for help): p #打印分区编号,查看分区情况
    Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
    Disk model: VMware Virtual S
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x6c3d0f01

    Device Boot Start End Sectors Size Id Type
    /dev/sdb1 2048 4196351 4194304 2G 83 Linux
    /dev/sdb3 4196352 14682111 10485760 5G 5 Extended
    /dev/sdb5 4198400 8392703 4194304 2G 83 Linux

    Command (m for help):

    本次操作删除了逻辑分区/dev/sdb6

  • 退出,输入w保存并退出,使用q则是直接退出不保存。

注意:MBR分区虽然简单易用,但它不能处理大容量的磁盘,超过2TB的磁盘便无法使用MBR方式进行分区。随着存储设备的发展,MBR方式不能满足需求,逐渐被GPT分区取代。

格式化分区

概述:磁盘分区完成之后,需要在分区上创建文件系统以规定数据的存储方式,即为格式化分区。

1
mkfs 选项 文件系统 分区

mkfs命令常用选项:

选项 说明
-t 指定文件系统,如果不指定文件系统,默认为ext2
-f 强制格式化

示例:在/dev/sdb磁盘创建一个文件系统为ext3的分区,然后进行格式化,设置文件系统ext4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
┌──(root㉿kali)-[/dev]
└─# parted /dev/sdb //进入parted命令交互模式,创建分区
GNU Parted 3.6
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt //这里我也不知道为什么这条语句失效
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want
to continue?
Yes/No? yes
(parted) mkpart
Partition name? []? itheima
File system type? [ext2]? ext3
Start? 1
End? 2000
(parted) print //创建完成分区之后,查看分区情况
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 2000MB 1999MB ext3 itheima

(parted) quit
Information: You may need to update /etc/fstab.


┌──(root㉿kali)-[/dev]
└─# mkfs -t ext4 /dev/sdb1 //格式化分区/dev/sdb1分区
mke2fs 1.47.1 (20-May-2024)
Creating filesystem with 487936 4k blocks and 122160 inodes
Filesystem UUID: 20342f35-0ba8-4419-af60-0e624552c797
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done


┌──(root㉿kali)-[/dev]
└─# parted /dev/sdb1 print //查看/dev/sdb1分区情况
Model: Unknown (unknown)
Disk /dev/sdb1: 1999MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number Start End Size File system Flags
1 0.00B 1999MB 1999MB ext4

概述:使用parted命令创建了/dev/sdb1分区,文件系统为ext3。分区创建完成之后使用mkfs命令格式化/dev/sdb1分区,指定文件系统为ext4。格式化完成之后。使用parted /dev/sdb1 print 命令查看分区情况,由输出结果可知,/dev/sdb1分区的文件系统变成了ext4。

挂载与卸载

概述:在windows操作系统中,磁盘分区经过格式化之后就可以直接使用了;但在Linux操作系统中,格式化后的磁盘分区必须经过挂载才可以使用。

挂载

概述:挂载就是将磁盘分区(或者其他硬件设备)与一个目录进行关联,这样就可以在磁盘分区存储数据。Linux提供了mount命令用于实现磁盘分区挂载,语句如下:

1
mount 分区名称 挂载目录

在上述格式中,挂载目录又称为挂载点。一般将磁盘分区挂载到/mut目录下。

示例:将/dev/sdb1分区挂载到/mut/tmp目录下,并编辑hello文件,存储在/dev/sdb1磁盘中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
┌──(root㉿kali)-[/dev]
└─# mkdir /mnt/tmp //创建/mnt/tmp目录
┌──(root㉿kali)-[/dev]
└─# mount /dev/sdb1 /mnt/tmp //将/dev/sdb1挂载到/mnt/tmp目录下
┌──(root㉿kali)-[/dev]
└─# cd /mnt/tmp
┌──(root㉿kali)-[/mnt/tmp]
└─# vim hello //在这里编辑了hello mount放在文件里
┌──(root㉿kali)-[/mnt/tmp]
└─# ls //查看当前目录下是否有hello文件
hello lost+found
┌──(root㉿kali)-[/mnt/tmp]
└─# df -h hello //查看hello文件的存储分区
文件系统 大小 已用 可用 已用% 挂载点
/dev/sdb1 1.8G 504K 1.7G 1% /mnt/tmp

概述:将/dev/sdb1分区挂载到/mnt/tmp目录下,并编辑hello文件进行存储,在通过df命令查看hello文件的存储分区,由输出结果可知,hello文件存储在/dev/sdb1分区。

注意:mount命令挂载之后,虽然可以立即使用磁盘分区,但是系统重启之后,挂载就会失效。如果想让挂载永久生效,就必须把挂载信息按照一定格式写入/etc/fstab文件中。/etc/fstab文件中包括者挂载所需要的信息,一旦挂载信息写入之后,挂载就会永久有效。/etc/fstab文件中挂载信息格式如下:

1
设备文件 挂件目录 格式类型 权限选项 自检 优先级

上述格式中,各个字段的含义如下。

  • 设备文件:通常是设备路径或名称,如/dev/sdb1。
  • 挂载目录:设备要挂载到目录,通常需要提前创建好。
  • 格式类型:指定文件系统的格式,如ext3、ext4、xfs、swap、iso9960(光盘设备)等。
  • 权限选项:通常设置为defualts,保存默认即可。
  • 自检:如果设置为1,则开机后进行磁盘自检;如果设置为0,则不自检。
  • 优先级:如果自检字段设置为1,则可在改字段中设置多块磁盘的检测优先级;如果自检字段为0,则该字段也设置为0。

注意:除了挂载磁盘分区,mount命令也可以挂载移动硬盘、U盘、镜像文件等设备。读者可以根据磁盘分区的挂载方式,挂载其他设备。

查看挂载信息

概述:可以查看磁盘分区挂载到了哪个目录。

  1. findmnt命令

    findmnt命令用于快速查看设备的挂载信息,其常用语句格式如下:

    1
    findmnt 设备名称

    在上格式中,如果指定设备名称,则列出该设备的挂载信息;如果不指定设备名称,则列出所有设备的挂载信息。

  2. lsblk命令

    lsblk命令用于列出除RAM盘之外的所有可用的块设备信息,包括硬盘、闪存盘、CD-ROM等。

    1
    lsblk 选项 设备名称

    lsblk常用选项

    | 选项 | 说明 | 选项 | 说明 |
    | —— | —————————— | —— | ——————————— |
    | -a | 显示所有设备信息 | -m | 显示设备权限信息 |
    | -f | 显示设备文件系统信息 | -l | 以列表形式显示设备信息 |

    注意:使用这个命令如果没有指定设备名称,则会列出所有设备信息。

卸载

概述:卸载就是取消磁盘分区与目录的关联关系。

1
umount 磁盘分区/挂载目录

注意:umount命令可以是磁盘分区,也可以是挂载目录。

LVM概述

概述:逻辑卷管理(LVM,Logical Volume Management)是一种用于管理硬盘存储的工具,允许系统管理员在运行时动态地调整磁盘分区。LVM 提供了更灵活的存储管理方案,能够简化磁盘管理和提高存储利用率。LVM 适用于需要灵活存储管理的环境,如服务器和高性能计算集群。

RAID概述

概述:冗余阵列独立磁盘(RAID,Redundant Array of Independent Disks) 是一种将多个物理硬盘组合成一个逻辑单元的技术,以提高数据存储的性能和可靠性。RAID 通过不同的配置(级别)来实现数据冗余、性能提升和故障恢复。RAID 常用于需要高可用性和性能的存储系统,如数据库服务器和文件服务器。

计算机网络基础

概述:计算机网络是继电信网络、有线电视网络之后出现的世界级大型网络。在计算机网络领域中,网络有若干个节点的链路组成,网络中的节点可以是计算机、交换机、路由器。

Linux操作系统基本网路配置

主机配置

概述:在网络中,虽然可以通过IP地址访问主机,但IP地址并不便与记忆,因此,大多数用户还是通过主机名访问主机。Linux操作系统提供了hostname和hostnamectl两个命令来显示、设置系统主机名,下面分别介绍这两个命令的使用。

  1. hostname命令

    概述:用于查询、修改主机名

    1
    hostname 选项 参数

    常用命令选项:

    | 选项 | 说明 |
    | —— | ———————————————————— |
    | -a | 显示主机别名 |
    | -f | 显示完全格式的域名 |
    | -i | 显示指定主机的IP地址 |
    | -s | 以短格式显示,仅显示第一个点号之前的部分 |

    注意:hostname命令只是临时更改主机名,当系统重启之后,新的主机名就会失效了,如果要是新设置的主机永久生效,可以在主机名配置文件/etc/hostname中进行更改。

  2. hostnamectl命令

    hostnamectl是从CentOS Linux 7开始新增的命令,也是用于查询、修改主机名。CentOS Linux 7及之后的版本的操作系统定义了以下3种主机名。

    临时主机名(tranient):在系统中临时分配的主机名。

    静态主机名(static):又称内核主机名或系统主机名,是系统启动时从/etc/host/name文件自动初始化的主机名。

    高级主机名(pretty):属于修饰性主机,可以使用特殊字符,如itheima‘s host。

    由于CentOS Linux 7及之后版本的操作系统定义了复杂的主机名,原来的hostname命令已经无法完成复杂主机名的设置,所以增加了hostnamectl命令以实现主机的查询与设置,语句如下:

    1
    hostnamectl 选项/命令 参数

    常用选项/命令:

    | 选项/命令 | 说明 | 选项/命令 | 说明 |
    | —————- | —————————— | —————— | ————————— |
    | —transient | 显示或修改临时主机名 | staus | 显示当前主机名信息 |
    | —static | 显示或修改静态主机名 | set-hostname | 设置 |
    | —pretty | 显示或修改高级主机名 | | |

    注意:使用hostnamectl命令修改主机永久生效。在设置临时主机名、静态主机名和高级主机名时,主机名称要使用双引号(”“)括起来。如果设置静态主机名,则不使用临时主机名。

网卡配置

概述:网卡计算机能够联网的基础,因此,网络配置其实就是网卡配置。下面将从网卡命名规范、网卡配置文件、禁用和启动网卡3个方面来讲解网卡的配置。

网卡命令规范

概述:之前的CentOS 操作系统对以太网的命令采用的是eth#命名法,如eht0、eth1等,但是CentOS Strea 9的网卡命名规则发生了变化。

网卡名称的前两个字符的不同含义如下。

  • en:表示以太网(Etherner)。
  • wl:表示无线局域网(WLAN)。
  • ww:表示无线广域网(WWAN)。

网卡名称的第三个字符及后面字符的含义如下。

  • o#:o表示网卡,”#“符号为内置网卡的设备编号。
  • s#:s表示网卡为外置网卡,”#“符号为热插件接口(slot)编号。
  • x#:当第三个字符为x时,”#“符号表示网卡的MAC地址。
  • p#s#:p表示PCI插口,p后面的”#“符号表示PCI插口编号;s表示热插拔接口,s后面的”#“符号表示热插拔接口编号。

查看当前主机网卡ip命令

1
ip a

使用此命令输出结果,可以显示出主机中的所有网卡,第一块网卡名为lo,用于访问本地网络,ip地址为127.0.0.1,即本机地址。第二块网卡用于接入外网,如果还有第三第四块网卡,可能为虚拟的网络连接端口

注意:在这些网卡中,最重要的是第二块网卡,只有开启该网卡,才能进行网络连接。在安装操作系统时,设置了网络类型为NAT模式,因此,en33网卡处于开启状态。并且ens33网卡可以通过DHCP(动态主机配置协议)自动获取IP地址。

网卡配置文件

在Linux操作系统中,一切皆为文件,因此网卡配置其实就是编辑网卡配置文件,不同的操作系统的网卡配置文件不一样,路径也会不一样,所以这边是操作kali系统的网卡配置文件。

kali编辑网卡配置文件如下

1
sudo vim /etc/network/interfaces

然后在配置过程中有需要我们物理主机的一些网络配置信息,使用ipconfig

  • VMware Network Adapter VMnet1 是 VMware 虚拟化软件(如 VMware Workstation 或 VMware Player)中创建的另一个虚拟网络适配器。与 VMnet8(通常用于 NAT 模式)不同,VMnet1 通常用于 桥接模式或 仅主机网络(Host-Only Network)。
  • VMware Network Adapter VMnet8 是 VMware 虚拟化软件(如 VMware Workstation 或 VMware Player)中创建的一个虚拟网络适配器。VMnet8 通常用于 NAT 模式。

接着我们就可以在网络配置文件中添加信息了

1
2
3
4
5
6
# The primary network interface
auto eth0
iface eth0 inet static
address x.x.x.x //设置eth0的IP地址,使用VMware8的网络号,主机号你就看哪个空闲你就用哪个
netmask 255.255.255.0 //配置eth0的子网掩码
gateway 192.168.X.2 //桥接模式用x.1

然后还要去修改一个dns生效的文件

1
sudo vim /etc/resolv.conf

将默认的dns改为腾讯、阿里的dns

1
2
nameserver 119.29.29.29
nameserver 223.5.5.5

配置完IP信息后,我们重启Kali的网络服务,让网络配置生效

重启网络服务之前需要关闭NetworkManager,并且禁止该服务开机自启

注:关闭NetworkManager服务,该服务是网络服务的图形管理工具,该服务会自动接管networking服务,有可能造成重启networking服务时配置不生效的问题

1
2
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

再重启一下kali网络服务

1
sudo systemctl restart networking

然后查看一下ip,如果没有更改,就再重启一下kali的网络服务

更改成功之后测试一下

1
ping -c 4 www.baidu.com

如果丢失为0,则配置成功

Shell

概述:Shell 是一种用户与操作系统之间的接口,它允许用户通过命令行与操作系统进行交互。Shell 可以是命令行界面(CLI)或图形用户界面(GUI),但通常所说的 Shell 指的是命令行界面。

注意:shell脚本语言比较简单,如果有一定语言基础,推荐使用Shell 教程 | 菜鸟教程

其他相关kali的操作

更新kali的源,获取更新包/更新软件

1
apt-get update

kalilinux开启端口、关闭防火墙

概述:这里我们有用到ufw的操作命令,但是kali是没有安装这个命令的,所以需要手动安装

1
apt-get install ufw
查看防火墙状态(默认情况inaction)
1
ufw status
防火墙版本
1
ufw version
启动ufw防火墙
1
ufw enable
关闭ufw防火墙
1
ufw disable
默认禁止访问所有
1
ufw default deny
开放22/TCP端口
1
ufw allow 22/tcp
开放80端口(tcp/udp)
1
ufw allow 53
禁止外部访问
1
ufw deny 3306
删除已经添加过的规则
1
ufw delete allow 22
允许此IP访问所有的本机端口
1
ufw allow from 192.168.1.100
删除上面的规则
1
ufw delete allow from 192.168.1.100
禁止对8888端口的访问
1
ufw deny 8888
打开来自192.168.0.1的tcp请求的22端口
1
ufw allow proto tcp from 192.168.0.1 to any port 22

给kali安装Google输入法

给kali设置中文

这条命令需要root权限

1
dpkg-reconfigure locales