实验前准备
== VMware ==
官网下载
== Ubuntu -XXX…-iso ==
文件过大阿里云镜像下载,熟悉那种Linux内核就下载那种,这个不会影响集群的搭建。
https://pan.baidu.com/s/1tFvCA4PmNC2tZN7Yp2BkZQ
提取码:7lm5
这些都是有桌面的gome,如果对命令行的比较熟悉,可以使用命令行的系统及对应的server
系统包括ubuntu-server
和centos-server
。它们的镜像文件1也会小很多。
接下来我们以ubuntu-server为例来搭建环境。只需从相应的官方网站下载镜像即可。
https://pan.baidu.com/s/1hAE62b9Ami5iNfSsmNu2Bw
提取码:qr5l
Xshell或者其他远程连接软件如tabby
VM安装Ubuntu操作系统
更改安装位置,选择加入path环境,选择安装位置,点击下一步。
点击创建新的虚拟机
选择刚刚下载的server虚拟机也可以选择desktop的镜像。
命名并选择位置
点击下一步,将文件选择单个文件或拆分多个都可以,
处理经典安装也可以选择自定义高级
硬件兼容性选到15就可以,也可以选12的
选择下载的unbuntu-server镜像
后面两部命名
和处理器分配
以及虚拟机内存分配
自行命名和选择。
网络类型选择 NAT
之后,您可以使用这两个部分的默认配置并进入下一步。
创建新的磁盘
之后一直下一步,最后点击完成
上下键选择安装,enter确认
选择语言,只有英文好像还认识
选择安装模式,不用最简默认即可
IP自动分配
之后还有很多步骤。只需按回车键,直到弹出设置用户名和密码的对话框。
密码设置简单点,别忘记了,我设置的密码是root,就很好记。
安装ssh远程连接安全服务,以便可以用远程软件如Xshell连接
选择服务快照,docker和powershell都可用。使用空格键选择并输入确认。
上下键选择,空格选中可多选,上下界键调到Done确定enter
等待更新,可以以取消更新重启
尽量等待更新,之后出现提示按enter即可,更新完成后会自己启动,启动后按一次enter出现登录界面
到此vmware安装ubuntu-server就完成了,直接登录即可。相比安装桌面版复杂一点,可以安装桌面版再卸载gnome
桌面。
1、打开终端
2、卸载gnome-shell主程序
sudo apt-get remove gnome-shell
3、卸载掉gnome
sudo apt-get remove gnome
4、卸载不需要的依赖关系
sudo apt-get autoremove
5、彻底卸载删除gnome的相关配置文件
sudo apt-get purge gnome
6、清理安装gnome时候留下的缓存程序软件包
sudo apt-get autoclean
sudo apt-get clean
7、重启
shutdown -r now
静态ip配置
静态IP配置非常重要,因为从外部访问vw的虚拟机时,必须通过IP来访问,而虚拟机默认是动态分配的。有一台dhcp服务器是独立分配IP的,所以每次的主机IP都不一样,这就导致下次访问时需要再次检查IP,所以需要将IP更改为静态IP。
修改静态ip配置的目录在/etc/netplan
该目录下存在00-install-config.yaml
文件:
192.在此插入图片描述
查看该目录:
查看dhcp分配的IP和当前IP地址:
命令
:ip addr
图上显示的192.168.131.131
即为当前ip。
配置为静态ip为当前ip即可,按照如下格式配置,注意要用超级账户配置sudo 前缀
sudo vi 00-install-config.yaml
格式|非配置
配置网关时在下图的虚拟网络编辑器
中查看。
选择VMnet8点击NAT设置查看网关:基本都是ip的最后一位换成2
您必须根据您计算机的IP进行配置。小编的配置如下:
配置完成后保存退出,输入应用命令sudo netplan apply
网络应用后重启虚拟机shutdown -r now
重启后输入ping baidu.com
若可以ping通修改成功:
查看配置,是自己配置的,大功告成!
ping 窗口系统,确认其在局域网中打开:
SSH远程连接
Xshell等远程连接软件是通过ssh协议进行连接的。 SSH是[Secure Shell]的缩写,SSH是一种基于应用层的安全协议。 SSH 是一种更可靠的协议,旨在为远程登录会话和其他网络服务提供安全性。使用SSH协议可以有效防止远程管理过程中的信息泄露。
启用远程连接服务
sudo service sshd start
sudo /etc/init.d/ssh start
如果出现Failed to start sshd.service: Unit sshd.service not found
类似这种命令就需要安装该服务:
sudo apt install openssh-server
检查是否打开成功
ps -e | grep ssh
接下来就可以通过基于ssh远程连接的软件连接了。
创建超级用户
使用普通用户缺少很多权限,包括修改一些带有sudo前缀的文件、创建超级用户、直接切换用户获取所有权限等。
sudo passwd root
输入两次密码超级用户创建成功:
使用su [用户名]
切换用户
su root
su xwh
防火墙配置
Linux防火墙的功能一:
- 防火墙的基本模型
基于TCP/IP协议族的互联网互连完全依赖于网络层以上的协议栈(网络层IP协议、传输控制协议TCP/UDP协议和应用层协议)。考虑到网络防火墙是为了维持网络连通性而建立的安全机制,防火墙技术是通过分析和控制网络上层协议的特性来实现被保护网络所需的安全策略的技术。构建防火墙有三种基本模型:应用代理网关、电路级网关(Circuit Level Gateway)和网络层防火墙。
- 不应过滤的数据包
在开始过滤某些不需要的数据包之前,需要注意以下事项:
ICMP数据包
ICMP
数据包可用于检测 TCP/IP 故障情况。如果这些数据包被阻塞,将无法获取“主机不可达”或“没有到主机的路由”等信息。 ICMP 数据包还用于 MTU 发现,某些 TCP 实现使用 MTU 发现来决定是否分段。 MTU 发现是通过发送设置了不分段位的数据包探测来完成的。
当收到的 ICMP 响应表明需要分段时,将发送较小的数据包。如果没有获得ICMP数据包(“目的地不可达”类型数据包),则本地主机不会减小MTU大小,这将导致测试无法停止或网络性能下降。与 DNS 的 TCP 连接
如果要阻止传出 TCP 连接,请记住 DNS 并不总是使用 UDP。如果 DNS 服务器的应答超过 512 字节,客户端将使用 TCP 连接并仍然使用端口 53 接收数据。如果禁用 TCP 连接,大多数情况下 DNS 会正常工作,但可能会出现奇怪的延迟。
如果内部网络的DNS查询始终指向固定的外部DNS服务器,您可以允许本域端口连接到该服务器的域端口。
活动 FTP TCP 连接
FTP有两种运行模式,即传统的主动模式和目前流行的被动模式。主动FTP模式下,当FTP服务器发送文件或响应LS命令时,主动与客户端建立TCP连接。如果这些 TCP 连接被过滤,主动模式 FTP 将被中断。如果使用被动模式,则过滤来自远程位置的 TCP 连接没有问题。因为数据连接是从客户端到服务器(包括双向数据)。
- 针对可能的网络攻击
防火墙性能良好的关键在于其配置能否抵御来自外界的各种网络攻击。这就要求网络管理者根据可能出现的网络攻击的特点,制定完善的安全策略。以互联网上常见的“ping of Death”攻击为例。 “ping of Death”攻击通过发送非法的大型 ICMP 数据包来溢出接收者的 TCP 堆栈,从而造成混乱。为了对抗这种攻击,可以将防火墙配置为阻止 ICMP 片段。因为平凡
大多数 ICMP 数据包不需要分段,并且阻止 ICMP 分段只会阻止大型“ping”数据包。这种保护策略还可以用于防御针对其他协议中的安全缺陷的网络攻击。
Linux防火墙的功能2:
它可以通过监视、限制和改变穿越防火墙的数据流,尽可能向外界屏蔽网络的信息、结构和运行状态,从而实现网络安全防护。
从逻辑上讲,防火墙是分离器、限制器和分析器。它有效地监控内部网络与互联网之间的任何活动,确保内部网络的安全。
2. 使用防火墙的好处
保护脆弱的服务
防火墙通过过滤掉不安全的服务,可以大大提高网络的安全性,降低子网内主机的风险。例如,Firewall可以禁止NIS和NFS服务通过,Firewall还可以拒绝源路由和ICMP重定向报文。
控制对系统的访问
防火墙可以提供对系统的访问控制。例如,允许对某些主机的外部访问,而禁止对其他主机的访问。例如,防火墙允许对特定邮件服务器和 Web 服务器的外部访问。
集中安全管理
防火墙对企业内网实施集中安全管理。 Firewall中定义的安全规则可以在整个内部网络系统上运行,而不需要在内网的每台机器上设置单独的安全策略。防火墙可以定义不同的认证方式,而不需要在每台机器上安装特定的认证软件。外部用户只需认证一次即可访问内网。
增强保密性
使用防火墙可以防止攻击者获取攻击网络系统的有用信息,例如 Figer 和 DNS。
记录并统计网络使用数据和非法使用数据
防火墙可以记录和统计通过防火墙的网络通信,提供有关网络使用情况的统计数据,防火墙可以提供统计数据来确定可能的攻击和检测。
策略执行防火墙提供了制定和执行网络安全策略的方法。当没有设置防火墙时,网络安全取决于每台主机的用户。
3. 防火墙的类型
防火墙一般分为包过滤、应用级网关、代理服务器等几种类型。
数据包过滤
包过滤技术在网络层对数据包进行选择。该选择是基于系统中设置的过滤逻辑,该逻辑称为访问控制表。通过检查数据流中每个数据包的源地址、目的地址、使用的端口号、协议状态等因素或其组合来确定是否允许该数据包通过。包过滤防火墙逻辑简单、价格便宜、易于安装和使用,并且具有良好的网络性能和透明性。它通常安装在路由器上。路由器是内部网络连接互联网不可或缺的设备,因此在原有网络中添加这样的防火墙几乎不需要额外的成本。
包过滤防火墙有两个缺点:一是非法访问一旦突破防火墙,主机上的软件和配置漏洞就会受到攻击。第二,数据包的源地址、目的地址和IP端口号都在数据包中。头,很可能被窃听或伪造。
应用层网关
应用层网关在网络应用层建立协议过滤和转发功能。它针对特定的网络应用服务协议采用指定的数据过滤逻辑,在过滤的同时,对数据包进行必要的分析、登记和统计,形成报表。实践中的应用网关通常安装在专用工作站系统上。
包过滤和应用网关防火墙有一个共同的特点,那就是它们只依靠特定的逻辑来决定是否允许数据包通过。一旦满足逻辑,防火墙内外的计算机系统之间就建立了直接联系,防火墙外的用户可以直接了解防火墙内的网络结构和运行状态,有利于非法访问和攻击。
代理服务也称为电路级网关或TCP隧道,有些人将其归类为应用程序级网关。它是为了解决包过滤和应用网关技术的缺点而引入的防火墙技术。其特点是将所有穿越防火墙的网络通信链路分为两段。防火墙内外计算机系统之间的应用层链路是通过代理服务器上的两条终结链路来实现的。外部计算机的网络链路只能到达代理服务器,从而起到隔离防火墙内外计算机系统的作用。
Linux防火墙的三大功能:
防火墙是一项协助确保信息安全的设备,会依照特定的规则,允许或是限制传输的数据通过。
具体功能如下:
1、防止来自互联网的恶意攻击;
2.阻止外部程序连接到计算机端口;
3、保护计算机,防止木马入侵或其他黑客软件和程序运行。
4、阻止本地程序通过计算机端口向外部发送信息;
具体功能:防火墙可以单独/批量禁止/允许来自某个/多个端口的数据,也可以将某个端口的数据转发到另一个端口/IP。
LInux原始的防火墙工具iptables
由于过于繁琐,所以ubuntu系统默认提供了一个基于iptable之上的防火墙工具ufw。而UFW也支持图形界面操作,只需在命令行运行ufw命令即能看到一系列的操作。接下来介绍ubuntu系统防火墙的开启、关闭等常规操作命令。
- 安装ufw工具
Ubuntu20.04一般都默认安装了UFW(Uncomplicated Firewall)。它是一个轻量级工具,主要用于监控输入和输出流量。如果没有安装,请使用以下命令安装:
apt-get install ufw
- 查看防火墙状态
## 需要超级用户权限
sudo ufw status verbose
sudo ufw status
- 打开防火墙
inactive
表示防火墙没有开启,启用防火墙命令:
ufw enable
ufw default deny
该命令可能会中断现有的 ssh 连接。继续操作(y|n)?
由于防火墙是通过连接远程来开启的,22端口已被添加为防火墙的开放端口。输入y继续操作后,将不再支持当前的其他连接,仅支持当前已有的连接。维持当前连接的原因是通过该连接可以打开22端口。
运行以上两条命令后,防火墙开启,并在系统启动时自动开启。
ssh远程连接是基于22端口的如果开启了防火墙没有开启22端口,Xshell是连不上的。
在windows上进行telnet也是不通的
所以在远程管理服务器时,如果开启了防火墙先查看SSH的22端口有没有开放,如果没有开放,第一时间开放22端口(如果为了安全也可以指定ip开放22端口
Ubuntu添加开放SSH端口
sudo ufw allow 22
开启完成,需要重启防火墙生效:
sudo ufw reload //重启ufw防火墙
- 配置禁止外部访问
## 该命令会拒接所有外来访问,本机能正常访问外部
ufw default deny
如果你需要开放某些服务,再使用 ufw allow
命令开启:
ufw allow | deny [service]
ufw allow 53 #允许外部访问53端口(tcp/udp)
ufw allow 3690 #允许外部访问3690端口(svn)
ufw allow from 192.168.1.111 #允许此IP访问所有的本机端口
ufw allow proto tcp from 192.168.0.0/24 to any port 22 #允许指定的IP段访问特定端口
ufw delete allow smtp #删除上面建立的某条规则,比如删除svn端口就是 ufw delete allow 3690
- 重新启动防火墙
如果防火墙没有打开或关闭,需要重新启动防火墙才能生效。
sudo ufw reload #重启ufw防火墙
- 关闭防火墙
ufw enable | disable
常用命令:
#下面是ufw命令行的一些示例:
ufw enable/disable #打开/关闭ufw
ufw status #查看已经定义的ufw规则
ufw default allow/deny #外来访问默认允许/拒绝
ufw allow/deny 20 #允许/拒绝访问20端口,20后可跟/tcp或/udp,表示tcp或udp封包。
sudo ufw allow proto tcp from 192.168.0.0/24 to any port 22 #允许自192.168.0.0/24的tcp封包访问本机的22端口。
ufw delete allow/deny 20 #删除以前定义的"允许/拒绝访问20端口"的规则
打开和关闭端口
# 开放21端口
sudo ufw allow 21
# 关闭21端口
sudo ufw delete allow 21
# 开放规定协议的端口
# 指定开放8001的tcp协议
sudo ufw allow 8001/tcp
# 关闭指定协议端口
# 关闭21端口d的tcp协议
sudo ufw delete allow 8001/tcp
# 开放限定ip地址端口
# 开发指定ip操作所有端口
sudo ufw allow from 192.168.131.131
# 关闭指定ip所有操作
sudo ufw delete allow from 192.168.131.131
# 开放指定ip对应端口操作
sudo ufw allow from 192.168.131.131 to any port 3306
# 关闭指定ip对应端口操作
sudo ufw delete allow from 192.168.131.131 to any port 3306
查看端口
# 查看22端口信息
ss -ltn
除了使用linux默认的查询方式外也可以使用工具包:
安装net-tools
工具包
sudo apt install net-tools
linxu下的ss实际上是SocketStatistics的缩写。该命令可用于获取套接字统计信息。该命令的输出与netstat的输出类似,但它可以显示更详细的TCP连接状态信息,并且比netstat更快、更高效。
- 命令格式:
ss [参数]
ss [参数] [过滤]
- 命令参数:
-n --numeric不解析服务名称
-r --resolve 解析主机名
-l --listening 显示监听状态的套接字(sockets)
-a --all显示所有套接字
-o --options 显示计时器信息
-e --extended 显示详细的套接字(socket)的内存使用情况
-p --processed 显示使用套接字的进程
-i --info 显示 tcp 内部信息
-s --summary 显示套接字(socket)使用概况
-4 --IPv4 仅显示 IPv4的套接字
-6
-0(零) --packet 显示 PACKET 套接字
-t --tcp 仅显示 TCP 套接字
-u --udp 仅显示 UDP套接字
-d --dccp 仅显示 DCCP 套接字
-w --raw 仅显示 RAW 套接字
-x --Unix 仅显示 Unix 套接字
-f --family=FAMILY 显示 FAMILY 类型的套接字,FAMILY可选 Unix, inet, inet6, link , netlink
-A --query=QUERY, --socket=QUERY
QUERY := {all| inet| tcp| udp | raw | unix | packet | netlink } [QUERY]
-D --diag=FILE 将原始TCP 套接字信息转储到文件
-F --filter=FILE 从文件中都去过滤信息
- 总结
ss 是 Socket Statistics 的首字母缩写。
ss 命令由 iproute2 软件包提供(yum install iproute)。
iproute 2 包中的命令可以完全替代 net-tools 包中的 ifconfig、netstat、route 等命令。
单独使用的 ss 命令用于显示已建立的网络连接。例如:
# ss
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 10.0.2.10:ssh 10.0.2.2:52316
上述输出结果中的 ESTAB 代表网络连接的状态是“已建立”(Established)。
选项 -l (--listening)用于显示处于监听状态的网络连接。例如:
# ss -l
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 *:ssh *:*
上述输出结果中的 LISTEN 代表网络连接的状态是“监听中”(Listening)。
选项 -a (--all)用于显示所有的网络连接:监听中和非监听中(对于 tcp,就是监听中和已建立)。例如:
# ss -a
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 10.0.2.10:ssh 10.0.2.2:52316
tcp LISTEN 0 128 [::]:ssh [::]:*
选项 -n (--numeric)用于显示端口号,而非使用该端口号的服务。例如:
# ss -n
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp ESTAB 0 0 10.0.2.10:22 10.0.2.2:52316
使用选项 -n 后,显示端口号 22,而非使用 22 端口号的 ssh。
选项 -p(--processes),显示端口对应的进程名和进程号 PID。
选项 -t(--tcp),仅显示 tcp 端口。
选项 -u(--udp),仅显示 udp 端口。
ss的参数也可以多个一起使用如ss -ltn
修改主机名
hostname
查看主机名
vi /etc/hosts
修改主机名,需要root权限
Ubuntu软件包管理工具
使用 ubuntu 时肯定会接触到的一个命令是 apt-get。 Ubuntu 16.04发布后,apt的使用逐渐变得更加频繁。
那么,apt-get 和 apt 命令有什么区别呢?
如果它们具有相似的命令结构,为什么我们需要一个新的 apt 命令?
apt 真的比 apt-get 更好吗?
普通用户应该使用新的 apt 命令还是坚持使用 apt-get 的旧习惯?
apt 和 apt-get 之间的区别:
- 在线安装工具 apt 和 apt-get
- apt-get
Advanced Package Tool,也称为 apt-get,是一款适用于 Unix 和 Linux 系统的应用程序管理器。
它最初于 1998 年发布,用于检索应用程序并将其加载到 Debian Linux 系统中。主要用于从互联网软件仓库中自动搜索、安装、升级、卸载软件或操作系统。
Apt-get 出名的原因之一就是其出色的解决软件依赖关系的能力。其常用。 deb 格式的文件,但可以修改为使用 apt-rpm 处理 Red Hat 的软件包管理器 (RPM) 文件。
apt-get 在 Linux 社区中广泛使用,已成为管理台式机、笔记本电脑和网络的重要工具。随着 Linux 在企业中越来越流行,Windows 和 Mac 用户将受益于了解如何使用 apt-get 加载应用程序。
此外,随着 Raspberry Pi 等微控制器设备的普及,apt-get 是在这些平台上加载应用程序的更便捷的方式。如果您要加载的应用程序需要库或其他应用程序才能正常工作,apt-get 将为您找到并加载所需的库或应用程序代码。
apt-get 当前的稳定版本是 1.0.9.2,于 2014 年 10 月发布。
使用apt-get的主流Linux系统包括Debian和Ubuntu变种版本。在大多数情况下,从命令行运行该工具。有多种可用于桌面的图形前端,包括 Synaptic Package Manager、Ubuntu Software Center、Aptitude 和 Kpackage。
Raspberry Pi 和 Beaglebone Black nanoLinux 用户可以轻松使用 apt-get 加载程序,因为这些系统通常来自 Ubuntu 或 Debian 代码。它是 Debian 和 Ubuntu 发行版的包管理工具,与 Red Hat 中的“yum”工具非常相似。
apt-get命令一般需要“root权限”才能执行,因此后面通常会跟上sudo命令。
- 易于
apt 命令行实用程序于 2014 年针对 Debian 发行版推出了第一个稳定版本。 deb 包安装。它首先在不稳定的 Debian 版本中使用,然后在 Debian 8 中成为标准。
Ubuntu 16.04 发布后,apt 开始流行,并在某些方面取代了 apt-get。
随着 apt install package 命令的使用频率和流行度逐渐超过 apt-get install package,越来越多的其他 Linux 发行版开始追随 Ubuntu 的脚步,开始鼓励用户使用 apt 来代替 apt-get。
大多数人不理解 apt 和 apt-get 之间的区别,并且在使用其中之一时常常感到困惑。
两者都是开源命令行工具,用于管理软件包的安装、更新、升级和删除等。
然而,它们之间仍然存在一些差异。
apt-get 和 apt 的区别:
apt 和 apt-get 之间的第一个区别是命令本身。例如,如果您想使用 apt-get update 更新系统存储库索引,您可以运行:
#apt-get 更新
要使用 apt,请输入命令:
#aptupdate
apt update 命令不仅更新存储库索引,还告知存储库中是否有软件可用以及有多少个新版本可用。
1、apt-get和apt功能命令对比 apt-get和apt安装包命令
# 删除软件包
apt-get removeapt remove
apt removeapt remove
# 更换所有包
apt-get purge
apt purge
# 更新所有软件包(自动处理依赖项)
apt-get upgrade
apt upgrade
# 自动删除不需要的包
apt-get autoremove
apt autoremove
# 在升级软件包时自动处理依赖关系
apt-get dist-upgrade
apt full-upgradeapt-cache search
apt search #搜索应用程序
apt-cache showapt show #显示装细节
删除不必要的依赖 apt-get autoremove apt autoremove 删除相关配置的包 apt-get purge apt purge
在上面,如果将 apt-get 替换为 apt,则除了 apt Upgrade 命令之外,所有命令都是相同的。旧的 apt-get Upgrade 命令会更新系统上当前存在的所有软件包,它不会安装或删除系统上现有的软件包。新的 apt Upgrade 命令将安装作为可升级包的依赖项添加的包。虽然与 apt-get Upgrade 类似,但它不会删除以前安装的软件包。
apt show 命令按字母顺序打印输出,并隐藏 apt-cache show 命令显示的不太重要的信息。
apt 和 apt-get 之间的区别不仅限于命令,新的 apt 命令中还添加了另一个可视化功能,以使最终用户满意。每当您使用 apt Upgrade、apt full Upgrade 或 apt Dist Upgrade 更新软件包时,您都会看到一个进度条,通知您该过程的进度。
易于安装
使用 apt remove 或 apt purge 删除软件包时也会出现此情况。
此外,如果我们运行“apt list --upgradeable”,它还会显示一些颜色,以清晰地概述存储库提供的最新版本的软件包。
apt list--upgradeable2.两个新命令
除了替换命令之外,apt 还引入了两个新命令:
新的 apt 命令功能 apt list 列出包含条件(已安装、可升级等)的软件包 apt edit-sources 编辑源列表 apt list – 当 apt list 命令与 –installed 或 –upgradeable 一起使用时,它将列出已安装的软件包,可以安装或需要升级的软件包。 apt edit-sources – 当您使用此命令时,它将在编辑器中打开源代码。列表文件进行编辑。 apt-get 仍然没有完全被 apt 取代,而且我认为它永远不会完全停止使用。您可能想知道该选择什么:apt 还是 apt-get。在我看来,选择 apt 是值得的,因为它提供了包管理所需的所有功能,并且速度更快、更人性化且易于使用。
使用 apt 还是 apt-get?
目前还没有任何 Linux 发行版的官方消息表明 apt-get 将被禁用。至少比apt有更多更详细的操作功能。对于低级操作,仍然需要apt-get。
既然这两个命令都很有用,我应该使用 apt 还是 apt-get?
作为一名普通的Linux用户,System Geek建议大家尽快适应,先开始使用apt。不仅因为大多数 Linux 发行商都推荐 apt,更重要的是因为它为 Linux 包管理提供了必要的选项。
最重要的是,apt 命令的选项更少,更容易记住,因此更易于使用,因此没有理由坚持使用 apt-get。
最后我给大家提供两个使用建议:
apt 可以看作是 apt-get 和 apt-cache 命令的子集,可以为包管理提供必要的命令选项。虽然 apt-get 还没有被弃用,但作为普通用户,你仍然应该首先使用 apt。
- 离线安装工具dpkg
dpkg(debian 软件包)是 Debian 软件包管理器的基础,通常用于安装、卸载和提供与 .deb 软件包相关的信息。需要注意的是,dpkg本身是一个底层工具,不具备从远程包存储库下载包和处理包的依赖。因此,该命令通常用于安装本地deb文件。
## packagename换位软件包名称
dpkg -i packagename.deb #安装下载好的软件包,
dpkg -L packagename # 列出与该包关联的文件
dpkg -l package #显示该包的版本,与指令dpkg --list package作用相同
dpkg -r package #删除软件包
dpkg -P package #删除软件包(包含配置文件)
- 从软件包源码安装wget
源码安装软件的方式是通过编译安装的,所以更加更加稳定高效;同时卸载软件的时候也更加方便,直接删除安装软件的目录即可。就相当于在windows中下载源码和zip压缩包,解压后切换到目录下直接启动应用,没有经过windows的安装器安装。该方法的只能切换到对应目录使用,否则就需要配置系统环境变量。
wget [URL]:使用wget下载单个文件,下载的过程显示进度条
wget -O 自定义文件名字(最好定义成英文).extension(文件扩展名) [URL]:下载并以不同的文件名保存
wget -c [URL]:使用wget的断点续传功能,解决断网的情况下,再连上网而不重新下载的问题
wget -b [URL]:对于下载大型文件时,使用wget的后台下载功能。在下载的过程中可以使用tail -f wget-log查看下载进度
wget -i file_list.txt:使用wget下载多个文件,这里我们需要先保存一份下载链接文件file_list.txt,在这个文件中写下相应的链接。
wget命令下载源码,需要使用对应的解压命令进行解压:
.tar 文件
# 解压
tar -xvf filename.tar # 解压当前目录下的tar包
tar -xvf filename.tar dirname # 解压绝对目录下的tar包
# 压缩
tar -cvf filname.tar dirname # 将DirName和其下所有文件(夹)打包
tar -cvf filname.tar
.gz 文件
gunzip filename.gz # 解压1
gzip -d FileName.gz # 解压2
gzip filename # 压缩,只能压缩文件
# 后面均可以跟绝对路径
.tar.gz 文件
tar -zxvf filename.tar.gz # 解压
tar -zcvf filename.tar.gz dirname # 将dirname和其下所有文件(夹)压缩
tar -C desrirname -zxvf filename.tar.gz # 解压到目标路径
tar -jxvf big-bag.tar.gz #这是手残解压的命令
tar -tf big-bag.tar.gz | xargs rm -rf #这是删除解压后的文件的命令
.zip 文件
unzip FileName.zip # 解压
zipinfo -1 ./ShareWAF.zip(误解压文件) | xargs rm -rf
zip FileName.zip DirName # 将DirName本身压缩
zip -r FileName.zip DirName # 压缩,递归处理,将指定目录下的所有文件和子目录一并压缩
.rar 文件
rar x FileName.rar # 解压
rar a FileName.rar DirName # 压缩