实验前准备
== 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自动分配
之后有好多的步骤直接按enter即可,知道跳出设置用户名和密码的对话
密码设置简单点,别忘记了,我设置的密码是root,就很好记。
安装ssh远程连接安全服务,以便可以用远程软件如Xshell连接
选择服务快照,docker和powershell都可,空格键选择,enter确定
上下键选择,空格选中可多选,上下界键调到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配置的目录在/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通修改成功:
查看配置,是自己配置的,大功告成!
在window系统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协议簇的Internet网际互联完全依赖于网络层以上的协议栈(网络层的IP协议、传输控制协议TCP/UDP协议和应用层协议)。考虑到网络防火墙是为了保持网络连通性而设立的安全机制,因此防火墙技术就是通过分析、控制网络以上层协议特征,实现被保护网络所需安全策略的技术。构建防火墙有三类基本模型:即应用代理网关、电路级网关(Circuit Level Gateway)和网络层防火墙。
- 不应该过滤的包
在开始过滤某些不想要的包之前要注意以下内容:
ICMP包
ICMP
包可用于检测TCP/IP失败的情形。如果阻挡这些包将导致不能得“Host unreachable”或“No route to host”等信息。ICMP包还用于MTU发现,某些TCP实现使用了MTU发现来决定是否进行分段。MTU发现通过发送设置了不进行分段的位的包探测,
当得到的ICMP应答表示需要分段时,再发送较小的包。如果得不到ICMP包(“destination unreachable”类型的包),则本地主机不减少MTU大小,这将导致测试无法停止或网络性能下降。 到DNS的TCP连接
如果要拦阻出去的TCP连接,那么要记住DNS不总是使用UDP。如果从DNS服务器过来的回答超过512字节,客户端将使用TCP连接,并仍使用端口53接收数据。若禁止了TCP连接,DNS大多数情况下会正常工作,但可能会有奇怪的延时故障出现。
如果内部网络的DNS查询总是指向某个固定的外部DNS服务器,可以允许本地域端口到该服务器的域端口连接。
主动式FTP的TCP连接
FTP有两种运作方式,即传统的主动式(active)方式和目前流行的被动式(passive)方式。在主动式FTP模式下,FTP 服务器发送文件或应答LS命令时,主动和客户端建立TCP连接。如果这些TCP连接被过滤,则主动方式的FTP将被中断。如果使用被动方式,则过滤远地的TCP连接没有问题。因为数据连接是从客户端到服务器进行的(包括双向的数据)。
- 针对可能的网络攻击
防火墙的性能是否优良关键在于其配置能否防护来自外界的各种网络攻击。这要求网络管理者能针对可能的网络攻击特点设定完善的安全策略。以网络常见的“ping of death”攻击为例,“ping of death”攻击通过发送一个非法的大ICMP包使接收者的TCP堆栈溢出从而引起混乱。针对这种攻击可将防火墙配置为阻挡ICMP分段。因为普通的
ICMP包大都不需要到分段的程度,阻挡ICMP分段只拦阻大的“ping”包。 这种防护策略也可用于针对其他协议安全缺陷的网络攻击。
linux防火墙作用二:
它可通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况, 以此来实现网络的安全保护。
在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动, 保证了内部网络的安全。
2.使用Firewall的益处
保护脆弱的服务
通过过滤不安全的服务,Firewall可以极大地提高网络安全和减少子网中主机的风险。例如, Firewall可以禁止NIS、NFS服务通过,Firewall同时可以拒绝源路由和ICMP重定向封包。
控制对系统的访问
Firewall可以提供对系统的访问控制。如允许从外部访问某些主机,同时禁止访问另外的主机。例如, Firewall允许外部访问特定的Mail Server和Web Server。
集中的安全管理
Firewall对企业内部网实现集中的安全管理,在Firewall定义的安全规则可以运行于整个内部网络系统, 而无须在内部网每台机器上分别设立安全策略。Firewall可以定义不同的认证方法, 而不需要在每台机器上分别安装特定的认证软件。外部用户也只需要经过一次认证即可访问内部网。
增强的保密性
使用Firewall可以阻止攻击者获取攻击网络系统的有用信息,如Figer和DNS。
记录和统计网络利用数据以及非法使用数据
Firewall可以记录和统计通过Firewall的网络通讯,提供关于网络使用的统计数据,并且,Firewall可以提供统计数据, 来判断可能的攻击和探测。
策略执行Firewall提供了制定和执行网络安全策略的手段。未设置Firewall时,网络安全取决于每台主机的用户。
3.防火墙的种类
防火墙总体上分为包过滤、应用级网关和代理服务器等几大类型。
数 据 包 过 滤
数据包过滤(Packet Filtering)技术是在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑, 被称为访问控制表(Access Control Table)。通过检查数据流中每个数据包的源地址、目的地址、所用的端口号、 协议状态等因素,或它们的组合来确定是否允许该数据包通过。 数据包过滤防火墙逻辑简单,价格便宜,易于安装和使用, 网络性能和透明性好,它通常安装在路由器上。路由器是内部网络与Internet连接必不可少的设备, 因此在原有网络上增加这样的防火墙几乎不需要任何额外的费用。
数据包过滤防火墙的缺点有二:一是非法访问一旦突破防火墙,即可对主机上的软件和配置漏洞进行攻击; 二是数据包的源地址、目的地址以及IP的端口号都在数据包的头部,很有可能被窃听或假冒。
应 用 级 网 关
应用级网关(Application Level Gateways)是在网络应用层上建立协议过滤和转发功能。 它针对特定的网络应用服务协议使用指定的数据过滤逻辑,并在过滤的同时,对数据包进行必要的分析、 登记和统计,形成报告。实际中的应用网关通常安装在专用工作站系统上。
数据包过滤和应用网关防火墙有一个共同的特点,就是它们仅仅依靠特定的逻辑判定是否允许数据包通过。 一旦满足逻辑,则防火墙内外的计算机系统建立直接联系, 防火墙外部的用户便有可能直接了解防火墙内部的网络结构和运行状态,这有利于实施非法访问和攻击。
代理服务(Proxy Service)也称链路级网关或TCP通道(Circuit Level Gateways or TCP Tunnels), 也有人将它归于应用级网关一类。它是针对数据包过滤和应用网关技术存在的缺点而引入的防火墙技术, 其特点是将所有跨越防火墙的网络通信链路分为两段。防火墙内外计算机系统间应用层的 链接, 由两个终止代理服务器上的 链接来实现,外部计算机的网络链路只能到达代理服务器, 从而起到了隔离防火墙内外计算机系统的作用。
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)?
因为是在远程的Xshell进行连接开启防火墙的,有的系统是没有将SSH的22端口设置为public的,所以会有这样的提示,这里分为两种情况,如果开启防火墙时在防火墙之中检测到22端口已添加为防火墙的开放端口,那么输入y继续操作以后,当前Xshell会自动断开连接;相反,如果开启防火墙时在防火墙之中没有检测到22端口,那么输入y继续操作以后22端口将会不再支持其他连接,只支持当前已有的这个连接,保持当前连接的原因是可以通过该连接开放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其实Socket Statistics的缩写。该命令可以用来获取 socket 的统计信息,此命令输出的结果类似于 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-formatted文件,但经过修改后可以使用apt-rpm处理红帽的Package Manager(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发行版的包管理工具,与红帽中的「yum」工具非常类似。
apt-get命令一般需要「root权限」执行,所以一般跟着sudo命令。
- Apt
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 update
使用 apt 则输入命令:
#apt update
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 autoremoveapt autoremove删除具有相关配置的软件包apt-get purgeapt purge
在上面中,如果将 apt-get 替换为 apt,则所有命令都相同,除了 apt upgrade 命令。旧的 apt-get upgrade 命令更新系统中当前存在的所有软件包,它不会在系统上安装或删除现有软件包。新的 apt upgrade 命令将安装作为可升级软件包的依赖项添加的软件包。尽管类似于 apt-get 升级,但它也不会删除以前安装的软件包。
apt show 命令以字母顺序打印输出,并隐藏 apt-cache show命令显示的不太重要的信息。
apt 和 apt-get 之间的区别不仅限于命令,新的 apt 命令中已添加了另一个视觉功能,以使最终用户满意。每当在使用 apt 升级,apt 完全升级或 apt dist升级时更新软件包时,都会看到一个进度条,通知该过程的进度。
apt install
当使用 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–使用此命令时,它将在编辑器中打开sources.list文件进行编辑。apt-get 仍然不能完全被 apt 取代,而且我认为它永远不会被完全终止。你可能正在考虑应该选择什么:apt 或 apt-get。在我看来,选择apt 是值得的,因为它提供了软件包管理的所有必需功能,并且更快,更友好且易于使用。
使用apt还是apt-get?
目前还没有任何 Linux 发行版官方放出 apt-get 将被停用的消息,至少它还有比 apt 更多、更细化的操作功能。对于低级操作,仍然需要 apt-get。
既然两个命令都有用,那么我该使用 apt 还是 apt-get 呢?
作为一个常规 Linux 用户,系统极客建议大家尽快适应并开始首先使用 apt。不仅因为广大 Linux 发行商都在推荐 apt,更主要的还是它提供了 Linux 包管理的必要选项。
最重要的是,apt 命令选项更少更易记,因此也更易用,所以没理由继续坚持 apt-get。
最后结大家提供两点使用上的建议:
apt 可以看作 apt-get 和 apt-cache 命令的子集, 可以为包管理提供必要的命令选项。apt-get 虽然没被弃用,但作为普通用户,还是应该首先使用 apt。
- 离线安装工具dpkg
dpkg(debian packages)是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 # 压缩