目录
初阶的指令内容可以参考:
code
在Linux中,"code"通常指代计算机程序源代码(source code),即编写程序时使用的文本文件,包含了程序的逻辑、函数、变量和类等信息。在Linux上编写程序的常用集成开发环境(IDE)有很多,比如Eclipse、PyCharm、Visual Studio Code等。此外,"code"还可以指代Linux系统中的命令行代码,例如Bash脚本或命令行工具。
rmp指令
rpm(Red Hat Package Manager)命令是在Red Hat Linux、Fedora和CentOS等Linux系统中用于管理软件包的命令行工具。它可以方便地安装、卸载、查询、升级和验证 Linux 软件包。
下面是一些比较常用的 rpm 命令及其功能:
rpm -ivh package.rpm:安装软件包,
i 表示安装,
v 表示显示详细信息,
h 表示显示安装进度。
rpm -e package:卸载软件包,
e 表示卸载。
rpm -qa:列出所有已经安装的软件包,
q 表示查询,
a 表示所有已安装的软件包。
rpm -qf /usr/bin/command:查找哪个软件包安装了
/usr/bin/command 命令,
qf 表示查询文件属于哪个软件包。
rpm -ql package:列出软件包中所有已安装的文件,
ql 表示查询软件包文件列表。
rpm -q package:查询软件包版本号和一些其他信息,
q 表示查询。
rpm -Uvh package.rpm:升级软件包,
U 表示更新已安装的软件包,
v 表示显示详细信息,
h 表示显示安装进度。
此外,rpm 命令还有许多其他选项和参数,可以通过运行 man rpm 命令或 rpm –help 命令来查看所有可用的选项和参数。
以下是 rpm 常用选项的全称和简要说明:
-i:--install 安装一个或多个软件包。
-v:--verbose 显示更详细的输出信息。
-h:--hash 显示软件包安装时的进度条。
-e:--erase 卸载一个或多个软件包。
-q:--query 查询一个或多个软件包的信息或属性。
-f:--file 查找哪个软件包安装了指定的文件。
-a:--all 操作所有已安装的软件包。
-U:--upgrade 升级一个或多个软件包。
-l:--list 显示一个或多个软件包已安装的文件列表。
-p:--package 显示指定软件包的文件列表。
以上是 rpm 命令中常见的选项,更多选项和用法可使用 man rpm 命令查看。
netstat
netstat 命令是一个用于显示网络统计信息的命令行工具,它可以打印出当前的网络连接状态、路由表信息、接口状态以及各种网络接口提供的统计信息等。
netstat 命令的一般语法如下:
netstat [OPTIONS]
常用的 netstat 选项(options)包括:
-a 查看所有的连接状态,包括正在监听的和已经建立的连接。
-t 查看 TCP 协议连接状态。
-u 查看 UDP 协议连接状态。
-n 不做数字主机名或服务名到真正名称的转换。
-p 显示进程 ID 和进程名称,以及协议名称。
-r 显示路由表信息。
-i 显示网络接口信息和统计信息。
-s 显示网络统计信息,例如 TCP 和 UDP 协议的传输统计、ICMP 性能统计等。
除了上述基本选项外,netstat 还支持一些其他用途的选项,例如 -c 显示连续的输出信息,-w 指定特定的输出宽度等等。
总之,netstat 命令是一个非常强大的网络诊断工具,可以帮助 Linux 用户查看网络连接状态、路由表、网络接口信息等,并且支持多种输出参数和格式,非常便于用户进行网络故障排查和优化。
以下是 netstat 常用选项的完整名称及其含义和作用的简要说明:
-a 或 --all:显示所有连接的状态,包括监听状态和与远程主机建立的连接状态。
-t 或 --tcp:显示或处理 TCP 协议相关的连接状态和统计信息。
-u 或 --udp:显示或处理 UDP 协议相关的连接状态和统计信息。
-n 或 --numeric:直接显示 IP 地址和端口号,而不进行 DNS 解析。
-p 或 --program:显示正在使用网络的进程名和进程 ID(PID)。
-r 或 --route:显示该主机的路由表信息。
-i 或 --interfaces:显示网络接口的信息和统计信息。
-s 或 --statistics:显示与网络协议相关的统计信息,例如 TCP 和 UDP 协议的传输统计、ICMP 性能统计等。
以上是 netstat 常用选项的完整名称及其作用的简要说明。不同的选项可以单独使用,也可以与其他选项结合使用,以产生不同的输出结果。通过组合使用这些选项,可以在 Linux 系统中进行非常丰富的网络状态监控和故障排查工作。
/usr
在 Linux 系统中,/usr 是一个重要的目录,全称为 Unix Software Resource,代表 Unix 的软件资源。该目录包含了大部分的用户应用程序和相关文件,例如用户的主文件夹、共享库、头文件、许多命令和工具、重要的系统文件以及其他一些开发者和用户需要的资源等。
通常情况下,/usr 目录包含了用户和应用程序的很多基本组件,例如:
/usr/bin 包含了许多用户级别的应用程序,例如 ls、cat、gzip、ssh等。
/usr/sbin 包含了许多系统级别的应用程序,例如 iptables、useradd等。
/usr/lib 包含了共享库文件,供程序在编译和链接时调用。
/usr/local/ 包含了系统管理员手动安装的软件包。
/usr/include 包含了许多编译时所需的头文件等资源。
/usr/share/ 包含了许多共享应用程序文件和数据文件,例如文档、帮助信息、XML文件等。
/usr/share/doc/ 包含了许多系统文档、帮助手册、常见问题解答等文件。
总之,/usr 目录是 Linux 系统的一个重要目录,包含了大部分的用户级别和应用程序组件,以及许多系统文件和资源。由于它包含了很多为用户和应用程序所必需的文件和工具,因此对于 Linux 系统来说,/usr 目录是非常重要的。
指令选项的单双破折号
在 Linux 中,命令行选项(也称为参数)通常由单破折号 "-" 或双破折号 "--" 开头。在命令行中,单破折号通常用于简短的选项,而双破折号通常用于描述性的选项。
通常而言,单破折号选项后面只能跟单个字母,例如 -a 或 -p 等。而双破折号选项后面则可以跟着一个或多个单词,例如 --version 或 --help 等。
有些命令支持短格式和长格式同时存在,例如 ls 命令支持 -l 和 --format=long 两种形式。在这种情况下,使用哪种形式取决于个人习惯和需求。
总之,单破折号和双破折号都是命令行选项的标志,它们的使用方式不同,但都可以用于指定命令的选项和参数。
chkconfig指令
"chkconfig" 全称为 "Check configuration"译为检查配置,是一个 Red Hat 系统上的命令行实用工具。它用于管理各种系统服务的启动和停止,通过运行级别来控制各种服务的启动。
chkconfig 工具在系统启动时会根据 /etc/rc.d 目录和 /etc/init.d 目录中服务的启动脚本(或在 /etc/rc.d/rc.local 中)来管理服务状态。以下是 chkconfig 命令的常用选项和使用方法:
chkconfig 的基本语法:
chkconfig [选项] <服务名> [参数]
选项:chkconfig 提供了以下常用选项:
--list [服务名]:列出服务是否在运行级别中启用。
--add [服务名]:添加一个服务,将其加入到每个运行级别中自动启动列表中。
--del [服务名]:从每个运行级别中删除服务。
--level [运行级别] [服务名] <on|off|reset>:在指定运行级别中为服务设置启动状态。
--type [服务类型] [运行级别]:设置服务的启动类型。
服务名:指定要配置的服务的名称,可使用通配符。
chkconfig 命令的常用操作示例:
显示服务当前运行级别状态
chkconfig --list <服务名>
添加服务自启动
chkconfig --add <服务名>
删除服务自启动
chkconfig --del <服务名>
设置特定运行级别中的服务启动状态
chkconfig --level <运行级别> <服务名> on|off|reset
显示指定服务的启动状态
chkconfig --list <服务名>
显示系统中所有服务的启动状态
chkconfig --list
设置服务的启动类型
chkconfig --type <服务类型> <服务名> <运行级别>
需要注意的是,在 CentOS 7 上,系统服务的管理改用了 systemctl 命令,chkconfig 命令可以与 systemctl 命令配合使用,但在新的 CentOS 版本中已不再是必需的关键工具。
systemctl指令
"systemctl" 是 Linux 下常用的管理系统服务的命令,可以用于启动、停止、重启、查看、开机启动等操作。下面详细说明一下 systemctl 命令的常用选项和使用方法。
systemctl 的基本语法:
systemctl [OPTIONS...] COMMAND [NAME...]
OPTIONS:可选的选项,用于对命令进行调整
COMMAND:必选的命令,用于执行不同的操作
NAME:可选的服务名称,用于对特定服务进行操作
常用 systemctl 命令:
start:启动指定的服务
stop:停止指定的服务
restart:重新启动指定的服务
reload:重新加载指定服务的配置文件,不需要重启服务
status:显示指定服务的状态信息
enable:设置指定服务开机自动启动
disable:禁用指定服务开机自动启动
is-active:判断指定服务是否正在运行
is-enabled:判断指定服务是否开机自动启动
is-failed:判断指定服务是否启动失败
systemctl 命令的常用选项:
--version:显示 systemctl 命令的版本信息
--help:显示 systemctl 命令的帮助信息
--no-pager:在输出结果时不使用分页程序(如 less)
--type:按照服务类型进行过滤,例如只显示 socket 服务
--state:按照服务状态进行过滤,例如只显示正在运行的服务
systemctl 的实例:
# 启动 nginx 服务
sudo systemctl start nginx
# 停止 nginx 服务
sudo systemctl stop nginx
# 重启 nginx 服务
sudo systemctl restart nginx
# 显示 nginx 服务的状态信息
sudo systemctl status nginx
# 设置 nginx 服务开机自动启动
sudo systemctl enable nginx
# 禁止 nginx 服务开机自动启动
sudo systemctl disable nginx
# 判断 nginx 服务是否正在运行
sudo systemctl is-active nginx
# 判断 nginx 服务是否开机自动启动
sudo systemctl is-enabled nginx
# 判断 nginx 服务是否启动失败
sudo systemctl is-failed nginx
总之,systemctl 是管理 Linux 系统服务的重要组件,学习掌握 systemctl 命令对于 Linux 系统管理员是非常有必要的。
setup指令
对于 Linux 系统中的 "setup",可能需要具体说明使用的是哪个程序或命令。一般而言,Linux 下有很多种 "setup" 程序或命令,其中包含的选项和作用也可能各不相同。以下是针对常见的一些情况进行解释:
"setup" 命令:一般是指 Slackware Linux 系统中用于设置系统参数的命令。其常见选项和作用如下:
-c:启动交互式配置界面。
-i:安装软件包。
-u:卸载软件包。
"setup" 程序:一般是指某些 Linux 版本(如 CentOS、Fedora 等)中用于进行系统安装和配置的程序。其一般的选项和作用如下:
Install:安装系统或重新安装系统。
Upgrade:升级已安装系统。
Rescue:救援模式,用于修复受损的系统。
Boot Options:引导选项,如 boot from a certain device。
Language Support:选择系统语言。
Security Policy:安全策略,如 SELinux 策略。
Network Configuration:网络配置,如设置网络参数、IP 地址等。
Date and Time:时间和日期配置。
需要注意的是,不同的 Linux 发行版(比如 Debian、RedHat、SUSE)可能提供的 "setup" 命令或程序不同,各自含义也略有区别。如果有具体的 Linux 发行版和上下文位置的信息,可以提供更具体的答复。
运行级别
Linux中的运行级别(runlevel)是指系统处于不同状态下,需要启动不同的服务和进程组合来支持特定的功能。一般来说,Linux系统中有7个运行级别,每个级别都有自己的特定用途,用数字表示从0到6,其中:
运行级别0:表示关机
运行级别1:单用户模式,只有一个控制台可用,不需要网络和系统服务
运行级别2:基本多用户模式,没有NFS(网络文件系统),无法使用NIS(网络信息系统)
运行级别3:完全的多用户模式,有完整的网络和系统服务
运行级别4:保留,没有特别的用途
运行级别5:图形化模式,提供完整的图形化界面和相关服务
运行级别6:系统重启
可以通过运行以下命令来查看当前系统的运行级别:
runlevel
也可以在终端中键入以下命令来切换运行级别:
sudo init <target runlevel>
其中,target runlevel是目标运行级别,可以是0-6之间的数字。
init指令
init是一个Unix-like系统中的进程,它是系统启动的第一个进程,并负责启动其他所有进程。在Linux操作系统中,init进程通常是由操作系统内核启动的,随后它会读取配置文件(如/etc/inittab)来确定需要启动哪些其他进程,并将它们启动起来。
除了启动其他进程之外,init进程还负责处理系统运行过程中发生的各种状态转换事件,例如系统关机、用户注销、单用户模式等等。它也会记录系统日志,用于故障排查和系统运行状态的监控。
在命令行中可以使用init指令来控制init进程,例如可以使用以下命令来重新启动init进程:
sudo init -c
另外还有一些与init相关的指令,如systemctl、service等,它们可以用于启动、停止、重新启动系统服务,以及管理向init进程发送的信号。
关于shell
Shell是一种用于与操作系统进行交互的命令行界面。它是一种让用户通过键盘输入命令来与操作系统进行交流的程序。Shell接收用户输入的命令并将其翻译为可被操作系统执行的命令。它可以让用户执行各种任务,如打开文件、编辑文件、移动文件、复制文件等等。
在Linux和类Unix操作系统中,主要有两种Shell,分别是Bourne shell和C shell。Bourne shell是最早的Shell之一,它通常缩写为sh。C shell的语法与C语言相似,因此也被称为csh。除了这两种Shell之外,还有很多其他的Shell可供选择,如Bash、Zsh等。
Shell在Linux和Unix操作系统中扮演着至关重要的角色,因为它是用户与操作系统进行交互的主要方式。通过输入简单的命令,用户可以执行各种系统操作,例如查看文件、运行程序、管理进程等。Shell还提供了一些高级功能,如脚本编程,可以轻松地编写自动化任务、批处理文件和其他脚本管理任务。
sshd
sshd代表Secure Shell Daemon,是用于在Linux和其他类Unix操作系统上提供对安全shell远程访问的守护进程。SSH是一种加密协议,用于保护远程登录和其他网络服务的安全。sshd用于为远程用户提供安全的终端会话和文件传输服务,可以在Internet上保护敏感数据的安全性,如用户名和密码,而不会遭受拦截或嗅探。
sshd使用公钥加密来建立安全的连接并对用户进行身份验证。每个SSH客户端都有一个公钥和私钥,公钥用于加密信息,私钥用于解密信息。当用户连接到sshd时,服务器会发送一个加密的随机数,客户端使用自己的私钥将其解密,并将其收回加密的随机数,这样可以确保连接的安全性。
sshd也用于远程文件传输,尤其是从一个系统向另一个系统发送数据,或从一个系统接收数据时,这些数据必须高度加密和安全。因此,sshd是系统管理员和开发人员的一个强大工具,使得他们可以在不会妨碍到系统安全和数据完整性的情况下进行远程管理和文件传输。
sshd的全称是Secure Shell Daemon。它是Linux系统中的一个守护进程,用于提供SSH(Secure Shell)远程登录服务。sshd作为一个守护进程,通常在系统启动时就会被启动,随时准备接受来自客户端的SSH连接请求。一旦连接建立,用户可以通过SSH协议在远程终端上执行命令或者进行文件传输等操作。
Secure Shell(SSH)是一种安全的网络协议,它可以加密和保护数据传输,从而防止在网络传输过程中敏感信息泄露或被窃取。在Linux系统中,sshd作为SSH服务的守护进程,主要负责加密和解密数据、授权用户访问以及记录系统日志等功能。
总之,sshd是一个非常重要的守护进程,它在Linux系统中提供了一种安全、可靠的方式用于远程登录和管理系统。
Secure Shell Daemon中的Secure Shell是指SSH协议,是一种安全的网络协议,而Daemon是指守护进程。因此,Secure Shell Daemon的直译可以理解为“安全Shell守护进程”。在Linux系统中,sshd作为Secure Shell Daemon,提供了安全、可靠的远程登录和文件传输服务。
pstree指令
pstree的全称是Process Tree,一个用来展示以树状结构形式表示的进程间父子关系的命令。pstree能够将系统的所有进程以树状图的方式显示出来,让用户更容易了解进程之间的层级关系。
pstree命令的常用选项如下:
-a:显示进程的完整命令行。
-c:显示进程的精简命令行。
-p:显示进程的PID。
-u:显示进程的拥有者。
-n:按照ID号顺序排序而不是进程名称排序。
以下是常用的pstree命令选项的全称:
--arguments:等同于-a选项,显示进程的完整命令行。
--compact:等同于-c选项,显示进程的精简命令行。
--show-pids:等同于-p选项,显示进程的PID。
--user:等同于-u选项,显示进程的拥有者。
--numeric-sort:等同于-n选项,按照ID号顺序排序而不是进程名称排序。
另外,pstree命令还有一些其他的选项可用,你可以通过在终端中输入"man pstree"来查看完整的选项列表和使用方法。
作用:通过此命令,可以清晰的了解到当前系统中所有进程之间的层级关系和父子关系。通过树状结构的展示方式,我们可以更加直观地理解整个系统的进程运行情况,以便更好地进行系统维护和排错。
kill和killall
kill和killall是Linux系统中常用的杀死进程的命令行工具。
kill指令的作用是终止指定进程。kill命令发送一个信号给指定PID(进程ID)的进程,以请求该进程终止运行。若不指定任何信号,默认信号为SIGTERM(中止)。
killall指令则是指终止所有以指定名字运行的进程。killall命令通过进程名来查找目标进程,并向其发送SIGTERM信号。killall可以终止同名进程的所有实例,但可能会误伤正在运行的其他进程。因此在使用该命令时需要慎重。
两个命令的使用格式如下:
kill [options] <PID>
killall [options] <process name>
其中的选项可以是:
-s signal:指定要发送的终止信号,默认为SIGTERM。
-l:列出当前系统支持的信号列表。
-a:终止除当前终端之外的所有进程,仅kill命令支持。
需要注意的是,kill和killall命令可能会导致正在运行的进程失败或数据丢失。在使用这些命令之前,一定要确认要终止的进程是否可以安全的终止,并确保有备份文件以避免数据丢失。
ps指令
ps指令的全称是"Process Status",是一个用于查看进程状态的命令行工具。ps指令通常用于列出当前系统中正在运行的进程信息,例如PID(进程ID)、CPU利用率、内存占用率、进程所属用户、进程启动时间等信息。除了默认情况下显示所有的进程信息,ps指令还可以通过各种参数来指定特定的进程信息,例如只显示特定用户的进程、只显示特定进程名的进程等等。ps指令是Unix/Linux系统中常用的基本系统管理工具之一。
ps指令有许多选项可以使用。以下是一些ps指令的常用选项以及对应的全称和作用:
-e (--everyone):显示所有程序的信息,包括其他用户的进程。
-f (--full):显示完整的程序启动信息。
-h (--no-headers):忽略标题行,仅显示程序信息。
-l (--long):使用较长的格式显示程序信息,包括进程的PPID、CPU利用率、内存使用率等详细信息。
-p (--pid):列出单独指定的进程信息。
-u (--user):列出指定用户的程序信息。
-o (--format):指定要显示的列。此选项可允许用户自定义程序信息的输出格式,例如只显示进程ID信息的情况。
-a:显示除控制终端进程之外的所有进程,包括在其他终端中运行的进程。
-x:显示没有控制终端的进程,例如守护进程(daemon)。
以上选项分别对应的全称为:
-a的全称是ax,表示显示所有进程(包括不存在控制终端的进程)。
-x的全称是aux,表示显示所有进程(包括不存在控制终端的进程)以及详细信息(包括CPU、内存、启动时间等信息)和进程启动用户信息。
在实际运用时,我们可以使用"ps aux"命令来查看系统中运行所有进程的详细信息。
这里只列出了一些常用的选项,实际上ps指令有很多选项可以操作,如果您想获取更多信息,您可以参考相应的操作系统文档或man手册。
top指令
全称为table of process——进程列表
Linux操作系统中的top指令是一个实时性的系统管理工具,主要用于监视系统中各个进程的 CPU 使用情况、内存占用情况和相关系统性能指标(如负载平均值、磁盘 I/O 等),可以帮助管理员快速定位并优化系统性能瓶颈。
在top窗口中,可以实时地查看系统的整体状态,包括当前时间、运行时间、当前系统负荷、CPU使用、内存使用、进程数量等,同时还可以对各个进程进行查看和管理,例如排序、杀进程、暂停进程等。
此外,top指令还可以指定不同的数据显示格式和刷新时间,同时可以使用交互式命令对窗口中的数据进行操作。
总之,top指令是一款功能强大的系统监控工具,被广泛应用于日常的系统管理和优化工作中。
top 的全称是 “table of processes”(进程列表表格),它是一种命令行实用程序,用于实时监视 Linux 系统的资源使用情况和进程信息。
top 的作用主要是展示系统中正在运行的进程,按 CPU 占用或者内存占用情况进行排序(默认情况下按 CPU 占用降序排列),更新频率为 3 秒(默认值,可以通过 -d 选项设置)。它还可以实时显示各种系统资源的使用情况,例如 CPU 占用率、内存使用情况、交换内存使用情况、I/O 等待情况等。同时,top 还提供了一些交互式功能,例如改变显示顺序、动态显示进程信息、发送信号(如杀死进程)等。
下面是一些常用的 top 选项及其含义:
-d:设定 top 命令更新进程信息的时间间隔,默认 3 秒。
-p:指定 top 命令只列出指定进程 ID 的信息。
-o:指定按照某个字段来排序列出进程列表,例如 -o %CPU 则按 CPU 使用率排序。
-U:以指定的用户名为过滤条件,只列出该用户的进程信息。
-b:以批处理模式运行 top 命令,把当前的进程列表信息重定向到指定的文件中。
-n:指定 top 命令的输出次数。
这些选项的全称可以通过命令 man top 查看。总之,top 是一款非常实用的命令行实用程序,可以帮助 Linux 用户实时监控系统资源的使用情况和进程信息,并对系统进行一些简单的调试和管理。
以下是 top 命令中常用选项的全称列表:
-d:--delay=SECONDS 指定 top 命令更新进程信息的时间间隔。
-p:--pid=PID 指定 top 命令只列出指定进程 ID 的信息。该选项可以接收多个参数来指定多个进程 ID。
-o:--sort=KEY 指定按照某个字段来排序列出进程列表。该选项通常后面跟的是用于排序的字段,例如 %CPU 表示按 CPU 使用率排序。
-U:--user=USER 以指定的用户名为过滤条件,只列出该用户的进程信息。
-b:--batch 以批处理模式运行 top 命令,把当前的进程列表信息重定向到指定的文件中,而不在终端上展示。
-n:--iterations=NUMBER 指定命令的输出次数。
以上是 top 命令中常用的几个选项及其全称,更多的选项可以通过 man top 命令来查看。
hosts和DNS
hosts文件和DNS解析都是用于将域名转换成IP地址的机制,但二者有以下几点不同:
hosts文件是一份本地配置文件,存储了一系列域名与对应IP地址的映射关系。DNS解析是通过网络上的DNS服务器来完成域名解析的。
hosts文件的域名解析优先级高于DNS解析,即当计算机需要将一个域名解析为IP地址时,会先检查本地的hosts文件,如果其中有对应的域名映射,则直接使用该IP地址进行访问,而不需要再进行网络DNS解析。
hosts文件的优点是可以直接编辑,指定特定的IP地址进行管理,比如一些内网应用的约定域名,有时也可以用来屏蔽某些网站或广告,但缺点是需要手动维护,不够灵活。
DNS解析的优点是自动获取最新的IP地址映射关系,自动更新,不需要手动维护。DNS解析的缺点是由于需要在网络上查询DNS服务器,因此有可能会存在网络延迟或劫持等问题,影响访问速度或安全性。
总的来说,hosts文件和DNS解析都是很重要的IP地址映射解析机制,但它们的适用场景和应用方式存在差异,需要根据实际需要作出选择。
域名劫持
域名劫持是指非法行为人通过篡改DNS解析结果,将合法的域名解析至指定的IP地址,以达到窃取信息或其他非法目的的行为。常见的域名劫持方式包括以下几种:
DNS服务器攻击:攻击者通过攻击域名的DNS服务器,篡改DNS解析结果。一旦攻击成功,用户访问受害网站时会被重定向到指定的恶意网站。
本地劫持:攻击者通过篡改本地DNS缓存,将DNS解析结果指向恶意网站。这种方式通常需要获得受害者计算机的控制权。
路由器劫持:攻击者通过攻击被害人所使用的路由器,将发往DNS解析服务器的请求流量劫持到攻击者的DNS服务器,以篡改DNS解析结果。
宽带劫持:攻击者通过攻击受害人所用的宽带网络服务商或本地ISP网络等方式,将发往DNS解析服务器的请求流量劫持到攻击者的DNS服务器,以篡改DNS解析结果。
i劫持:攻击者可以利用一些公共场所或未加密的Wi-Fi热点进行域名劫持,将受害者重定向至恶意站点。
总之,域名劫持的方式繁多,每种方式都对受害者的网络安全构成威胁,因此在使用网络时应加强安全意识,避免使用不安全的Wi-Fi热点、路由器等网络设备,使用HTTPS协议进行网络传输等措施以提高网络安全水平。
本地域名劫持是指攻击者通过篡改本地DNS缓存的方式来实现域名劫持的行为,具体的步骤如下:
攻击者获取受害者计算机的控制权,或访问受害者计算机的本地网络。
攻击者在受害者计算机的本地DNS缓存中,通过修改Hosts文件(位于Windows操作系统中C:\Windows\System32\drivers\etc目录下)或者通过其他手段,改变特定的主机名对应的IP地址。
当用户访问被劫持的域名时,本地DNS解析会优先查找本地缓存,发现已经被劫持的IP地址会将用户引导到攻击者指定的站点。
通过篡改本地DNS缓存,攻击者足以在用户不知情的情况下窃取用户密码、敏感数据,或者进行钓鱼欺诈等违法行为。
防止本地域名劫持攻击的措施包括以下几点:
安装杀毒软件、防火墙等安全工具,并定期更新软件和反病毒数据库。
定期清理本地DNS缓存 :在Windows系统终端开启CMD,输入命令ipconfig /flushdns,清理DNS缓存。
定期更新操作系统的安全更新,并避免使用盗版操作系统。
如果存在域名劫持风险,则不要在不安全的网络上进行敏感操作,避免数据受到不必要的风险。
总之,网络安全意识和安全防范措施是防范本地域名劫持攻击的根本措施。
主机名解析机制分析
主机名解析机制是将主机名(如www.google.com)解析为IP地址的过程。在使用网络服务时,我们通常会使用主机名来访问主机,而不是使用IP地址。主机名解析机制的目的就是方便用户记忆,同时也为了支持动态IP地址的更改。
主机名解析机制一般包含以下步骤:
用户在客户端输入主机名,例如www.google.com。
客户端在本地hosts文件中查找是否有该主机名的映射。
如果在本地hosts文件中找不到映射,则客户端会向DNS服务器发起解析请求。
DNS服务器将返回一个IP地址,客户端会将该IP地址存储在本地缓存中,以备下次使用。
客户端使用该IP地址与服务器进行通信。
在上述过程中,本地hosts文件可以方便地维护一些常用主机名的映射关系,从而避免频繁地向DNS服务器发起查询请求。DNS服务器是一个分层次的系统,由多个域名服务器组成,其作用是将域名映射为对应的IP地址。当某个DNS服务器无法解析请求时,它会从上层DNS服务器继续向上查询,直到找到能够解析请求的DNS服务器为止。
总的来说,主机名解析机制是通过本地hosts文件或DNS服务器来将主机名解析为对应的IP地址,从而实现在使用网络服务时使用便于记忆的主机名进行通信的便利性。
ping指令
ping命令是用来测试网络连接情况的常用命令。它通常用于测试目标主机是否连通,以及测试连接延迟等。
使用ping命令可以指定目标主机的地址或域名:
ping <IP地址或域名>
例如,要测试连接到谷歌服务器的延迟可以使用以下命令:
ping www.google.com
ping命令还可以指定一些选项,以控制测试方式和测试结果的输出,例如可以控制发送的数据包大小和数量,以及设置超时时间等。常见的选项包括:
-c <次数>:指定发送数据包的次数。
-s <大小>:指定发送数据包的大小。
-t <超时时间>:设置等待回应的超时时间。
-i <间隔时间>:设置发送数据包的间隔时间。
-n:只显示结果的数字部分。
-q:仅显示测试结果的摘要部分。
例如,要向谷歌服务器发送5个大小为64字节的数据包,每个数据包之间间隔1秒,并且只显示测试结果的摘要部分可以使用以下命令:
ping -c 5 -s 64 -i 1 -q www.google.com
希望这些信息可以帮助您了解ping指令的用法。
选项的全称对应的是:
ping命令的选项通常有以下几种:
-c:指定发送数据包的次数
-s:指定发送数据包的大小,以字节为单位
-i:发送两个数据包之间的时间间隔,以秒为单位
-t:设置等待回应的超时时间,以秒为单位
-w:指定发送数据包之后,等待回应的最长时间,以秒为单位
-n:仅显示结果的数字部分,不显示域名和IP地址信息
-q:仅显示测试结果的摘要部分,不显示每个数据包的具体信息
下面是ping命令选项的全称:
-c:count
-s:size
-i:interval
-t:timeout
-w:deadline
-n:numeric
-q:quiet
希望这些信息对您有所帮助。
win和Linux查询网络
在 Windows 中,可以使用 ipconfig 命令查询 IP 地址。打开命令提示符窗口(Win+R,输入 "cmd",然后按下回车键),输入 ipconfig 命令,即可输出计算机的网卡信息,包括 IP 地址、子网掩码、默认网关等。
在 Linux 中,可以使用 ifconfig 或者 ip addr 命令查询 IP 地址。打开终端窗口,输入 ifconfig 或者 ip addr 命令,即可输出计算机的网络接口信息,包括 IP 地址、子网掩码、物理 MAC 地址等。
以下是查询 IP 地址的示例:
在 Windows 中:
按下 Win+R,输入 cmd 并按下回车键打开命令提示符窗口。
在命令提示符窗口中输入 ipconfig,然后按下回车键。
查看输出结果,可以看到计算机的 IP 地址。
在 Linux 中:
打开终端窗口。
在终端窗口中输入 ifconfig 或者 ip addr 命令。
查看命令输出结果,可以看到计算机的 IP 地址。
注意,在最新版的某些 Linux 发行版中,ifconfig 命令可能不再默认安装,而是更推荐使用更新的 ip 命令。
mount和umount指令
mount 和 umount 命令用于挂载和卸载文件系统。在 Linux 中,一般需要将存储设备(例如硬盘、光盘、USB 内存棒等)挂载到某个目录,以便访问其中的数据。mount 命令可以实现将存储设备挂载到指定的目录,而 umount 命令可以用于卸载挂载的设备。
以下是 mount 和 umount 命令的常用选项及其含义:
mount 命令:
-t <文件系统类型>:--type <文件系统类型> 指定需要挂载的文件系统类型,例如 -text4 表示需要挂载的是 ext4 类型的文件系统。
-o <选项>:--options <选项> 指定挂载选项,例如 rw 表示可读写,ro 表示只读等。
-n:--noauto 不在 /etc/fstab 中自动挂载。
-r:--read-only 挂载只读的文件系统。
-v:--verbose 显示详细的挂载过程信息。umount 命令:
-f:--force 强制卸载已挂载的文件系统,无论文件系统是否被占用或繁忙。
-l:--lazy 延迟卸载,等待所有进程完成对文件系统的操作之后再卸载。
-n:--no-act 不会将卸载操作写入 /etc/mtab 文件。
-r:--readdir 只卸载文件系统的目录项,而不卸载文件系统挂载点本身。
-v:--verbose 显示详细的卸载过程信息。
例如,以下命令使用 -t 和 -o 选项将 /dev/sdb1 分区挂载到 /mnt/usb 目录中:
sudo mount -t ext4 -o uid=500,gid=500 /dev/sdb1 /mnt/usb
该命令中的选项 -t ext4 表示将分区视为 ext4 文件系统类型进行挂载,选项 -o uid=500,gid=500 表示将分区挂载在 /mnt/usb 目录下并设置用户和组ID为500。
再比如,以下命令使用 -f 选项强制卸载 /mnt/usb 目录中挂载的文件系统:
sudo umount -f /mnt/usb
该命令中的选项 -f 表示强制卸载已挂载的文件系统,无论文件系统是否被占用或繁忙。
以下是一些常见的使用示例:
将/dev/sdb1 分区挂载到/mnt/usb 目录中:
sudo mount /dev/sdb1 /mnt/usb
卸载/mnt/usb 目录中挂载的文件系统:
sudo umount /mnt/usb
将 ISO 光盘挂载到/mnt/cdrom 目录:
sudo mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom
卸载/mnt/cdrom 目录中挂载的 ISO 光盘:
sudo umount /mnt/cdrom
更多选项和用法可以通过 man mount 和 man umount 命令查看mount 和 umount 命令的帮助文档。
lsblk指令
lsblk 是一个 Linux 命令,用于列出系统中所有的块设备(包括硬盘驱动器、U盘、光驱等)。可以用于查看系统中所有磁盘分区、设备名称、设备大小、挂载点信息等。
下面是一个 lsblk 命令的例子:
$ lsblk
上述命令输出类似下面这样的结果:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 3.7T 0 disk
└─sda1 8:1 0 3.7T 0 part /data
sdb 8:16 0 1.8T 0 disk
├─sdb1 8:17 0 200G 0 part /
├─sdb2 8:18 0 1K 0 part
└─sdb5 8:21 0 1.6T 0 part /home
以下是lsblk 命令的常用选项及其解释:
-a:--all 显示所有块设备,包括空设备。
-b:--bytes 以字节为单位列出设备容量。
-d:--nodeps 只显示块设备,不显示其子分区/逻辑卷。
-f:--list 显示设备的文件系统类型。
-h:--human-readable 使用人类可读的格式列出设备容量。
-i:--ascii 显示设备的ASCII码型唯一标识符。
-m:以M为单位列出设备容量。
-n:--noheadings 不显示列标题。
-o:--output <列名> 指定显示的列。
-p:显示父块设备的名称。
-r:--read-only 显示设备是否是只读的标识。
-S:--ascii 显示设备的SLC型唯一标识符。
-s:--size 显示所有分区/卷的总大小(与块设备大小不同)。
例如, 以下命令使用 -a 和 -h 选项来列出系统中所有块设备和它们的分区:
$ lsblk -a -h
tree指令
tree 指令是一种用于在终端或命令行界面中显示目录结构的工具。该指令会递归地遍历目标目录,并显示其下所有文件和子目录的层次结构。
在 Linux 和 Unix 系统中,tree 可以帮助用户了解目录结构,查看可用的文件和目录,并且可以方便地与其他类似指令(如 cp、mv 等)配合使用。在 Windows 系统中,tree 指令并不默认安装,但是可以通过下载安装 GNUwin32 工具套件等方式安装使用。
下面是 tree 命令的一个例子:
tree /home/user/Documents/
执行以上命令将会列出 /home/user/Documents/ 目录下所有文件和子目录的层次结构。
下面是 tree 命令常用选项的全称和作用:
-a:
--all 显示所有文件和目录, 包括隐藏文件
-d:
--dirsfirst 只显示目录,不显示文件
-f:
--fullpath 在每个文件或目录之前,显示相对于根目录的完整路径
-L [层数]:
--max-depth [层数] 限制输出的目录层数,用来控制深度
-h:
--human-readable 以人类可读的格式显示文件大小
-t:
--sort=time 按照修改时间排序
-u:
--sort=ctime 按照文件访问时间排序
-c:
--sort=version 按照文件状态信息排序
--charset [字符集]:指定输出文件名的字符集
-I [pattern]:
--ignore [pattern] 忽略匹配的文件或目录名称
例如,以下命令使用 -a 和 -L 2 选项来列出当前目录的所有文件和子目录,但仅限于前两级子目录:
tree -a -L 2
更多选项和用法可以通过 man tree 命令查看tree命令的帮助文档。
yum指令
Yellowdog Updater, Modified 的全称翻译为“修改版黄狗更新器”,其中:
Yellowdog 是一种名为 Yellow Dog Linux 的 Linux 操作系统,该操作系统最初由应用于 Apple Macintosh 机器上的 Linux 发行版 MacYellowDog Linux 发展而来;
Updater 表示该工具可用于更新和安装软件包;
Modified 表示该工具是 Yellowdog Updater 的修改版,主要是在 Yellowdog Updater 基础上增加了一些功能。
yum 是 CentOS 系统中的一个包管理命令,它用于在 Linux 系统中安装、更新、卸载软件包,以及管理软件包的依赖关系。yum 命令可以自动处理软件包及其依赖关系的下载与安装,简化了手动安装软件包的繁琐流程,提高了包管理的效率。
常见的 yum 命令包括:
安装软件包:
yum install package-name
更新软件包:
yum update package-name
删除软件包:
yum remove package-name
查找软件包:
yum search keyword
列出已安装的软件包:
yum list installed
在使用 yum 命令前需要首先运行 sudo yum update 命令更新系统的软件包索引,确保系统中已经安装的软件包是最新的。同时需要注意,yum 命令需要以管理员权限运行,如果没有管理员权限,需要在命令前加上 sudo。
wc指令
是word count的缩写,wc 是 Linux 和其他类UNIX系统中的一个命令,用于计算文件中的字数、字符数、行数等信息,其基本语法如下:
wc [选项] 文件名
其中,[选项] 可选,表示对应的功能选项,常用的选项包括:
-c :计算文件中字符的个数;
-w :计算文件中单词的个数,我们一般认为一个单词中间用空格或制表符隔开;
-l :计算文件中行的个数。
当省略选项时,默认会输出文件的行数、单词数和字符数,例如:
wc file.txt
该命令将输出文件 file.txt 中的行数、单词数、字符数。如果只需要其中的某一项信息,可以使用对应的选项。例如:
计算文件中字符的个数:wc -c file.txt
计算文件中单词的个数:wc -w file.txt
计算文件中行的个数:wc -l file.txt
还可以同时使用多个选项,例如:wc -lw file.txt,该命令会计算文件中的行数和单词数。
cd指令
cd (change directory)命令是一个非常简单的命令,它只有很少的选项,其中常用的选项包括:
cd - : 切换到上一个工作目录,也就是回到之前所在的目录;
cd ~ 或 cd :切换到当前用户的主目录,相当于使用 ~ 代替主目录的路径;
cd .. :切换到当前工作目录的上一级目录,相当于使用 .. 代替上一级目录的路径;
cd /path/to/directory :切换到指定的目录,该选项中应该指定目录的绝对路径;
需要注意的是,Linux 系统中的 cd 命令只能切换当前工作目录到已存在的目录,如果指定的目录不存在,则会报错。另外,cd 命令不仅可以切换工作目录,还可以在命令行中直接使用指定的目录路径,来执行其他需要目录路径参数的命令。例如 ls /path/to/directory 将会以绝对路径 /path/to/directory 作为参数运行 ls 命令,而不需要先使用 cd 命令切换到该目录。
du指令
在 Linux系统中,du指令可以使用多种选项来定制其行为,主要的选项如下:
-h(--human-readable):以可读格式显示磁盘使用情况,即使用K、M、G等单位。
-s(--summarize):仅显示指定目录的总大小,而不显示它的子目录细节。
-c(--total):显示总的磁盘使用情况,包括指定目录和其子目录的使用情况总和。
-a(--all):显示所有文件和目录的大小,包括隐藏文件和目录。
-x(--one-file-system):仅显示指定的文件系统的磁盘使用情况,不统计其他挂载点的情况。
-d N(--max-depth=N):仅显示子目录的深度小于等于N的目录和文件的使用情况。
-i(--inodes):仅统计磁盘节点(inode)使用情况,不统计文件大小。
以上是du指令的常用选项,可以通过命令行输入“du --help”或“man du”查看所有选项的详细说明。
df指令
在 Linux 系统中,df 指令可以用于显示磁盘分区的使用情况,常用的选项如下:
-h / --human-readable:以可读格式显示磁盘使用情况,即使用 K、M、G 等单位;
-T / --print-type:显示文件系统类型;
-i / --inodes:显示磁盘节点 (inode) 使用情况,而不是磁盘块使用量;
-t / --type=文件系统类型:只显示指定类型的文件系统;
-x / --exclude-type=文件系统类型:排除指定类型的文件系统;
--sync:在显示磁盘使用情况前先执行同步操作;
--total:显示磁盘总量、已使用量、可用量、已用百分比和文件系统挂载点等信息;
--help:显示 df 命令的帮助信息。
以上是df指令的常用选项,可以通过输入“df --help”查看所有选项的详细说明。
touch指令
在 Linux 系统中,touch 命令用于创建新的、空的文件,或者更新已经存在文件的时间戳。如果被 touch 命令创建的文件不存在,则会创建该文件,如果文件已经存在,则会更新该文件的访问时间和修改时间,如果文件不存在,则 touch 命令会创建一个新的、空的文件。
具体来说,可以使用如下命令来创建或者更新文件的时间戳:
touch filename:创建或更新 filename 文件的时间戳;
touch -a filename:更新 filename 文件的访问时间 (Access Time);
touch -m filename:更新 filename 文件的修改时间 (Modify Time);
touch -t time filename:使用指定的时间戳创建或更新文件,其中 time 的格式为 YYYYMMDDhhmm.ss,例如 touch -t 202206011200.00 filename 将会创建或者更新 filename 文件的时间戳为 “2022 年 6 月 1 日 12 点整”。
需要注意的是,touch 命令只会在需要创建新文件或者更新时间戳时才会进行操作,如果文件已经存在且没有指定 -a 或者 -m 选项,则不会对文件做任何修改。
需要在指定文件夹下创建一个文件时可以直接这样使用
touch /home/user/docs/example.txt
网易笔记直接导出word复制过来的,格式比较乱,需要详细的可以私信我。