介绍
几乎所有服务器必须具有的一个能力是向其他联网机器发送和接收信息的能力。 虽然人们通常认为服务器是提供内容(它是在名称中)毕竟,他们也必须有能力获取内容有很多原因。
虽然大多数Linux软件包可通过其分发版本的软件包获得,并且可以使用标准软件包管理工具下载,但其他信息和文件必须使用其他机制。 在本指南中,我们将讨论一些用于在Linux服务器上获取文件和数据的最常用方法。
我们将主要使用Ubuntu 14.04 VPS实例来运行此列表,但是您可以在其他发行版和发行版上安装和使用这个软件。
从存储库获取数据和软件
也许最常见的方式获取包和软件到你的服务器是通过使用仓库。 在这个上下文中的存储库实际上可以指的是相当不同的东西。
这可能只是指可用软件的大集合。 这些包含已编译并随时可以安装通常已经过测试和配置为与您的分发版一起使用的软件。 还有源存储库,其中包含构建特定软件项目所需的所有文件。
在本节中,我们将讨论这两种类型。
从常规分发存储库安装软件
为Linux计算机安装软件的标准方法是使用软件包管理器。 软件包管理器配置为连接到已配置的一组服务器,这些服务器包含已在兼容系统上进行过审查,打包和测试的软件包库。
Linux发行版使用不同的打包格式和包管理器来完成此任务。
最流行的包装形式是.deb
打包格式,其用于通过Debian和Ubuntu分布和它们的衍生物,和.rpm
打包格式,传统上所使用的红帽,CentOS的,和Fedora和相关分布。 一些系统使用不同的包装格式。 Arch Linux的,例如,使用简单.tar.xz
包。
一般情况下,使用分配.deb
软件包倾向于使用apt
的工具包管理套件。 您可以了解如何使用易管理.deb
软件包点击这里。
同样,使用这些版本.rpm
包格式通常坚持使用yum
包管理器。 你可以学习如何使用yum
从各种来源,一些示例是一个可用在这里 , 这里和这里 。
由于Arch Linux的不遵循这些模式,并使用自有的封装格式,还开发了自己的包管理器称为pacman
来管理此功能。 凯旋门维基有一个关于如何使用大页面pacman
,你可以在这里找到。
如何使用个人包文件
获取软件,可用于Ubuntu机器的一种方法是使用个人档案包或PPA
秒。 虽然这种获取软件的方法与大多数发行版不相关,但它为Ubuntu服务器提供了灵活性。
PPA基本上是一个存储库,通常集中在一个或几个特定的包,由官方Ubuntu频道之外的人或团队维护。 这允许您将PPA用作软件包管理器的单独来源,并且构建和存储的软件将可与其他软件包一起无缝安装。
这有一些明显的优势。 你可以在官方Ubuntu版本之间获得更新版本的软件,通常会一次为你保留大多数软件包的旧版本6个月。 它们还允许您轻松访问尚未由Ubuntu团队正式打包的软件,前提是一个独立方自己提供软件包。
与源编译相比,最大的优点是这些包通过常规的包装工具管理。 这意味着他们可以定期接收更新,并插入到一般包生态系统中,这样就可以利用依赖解析等功能。
然而,这种方法也有缺点。 例如,您必须对您正在使用的PPA的维护者放置很多信任。 虽然你可能有充分的理由相信Ubuntu的包装商,你应该问自己,你感兴趣的PPA是否由一个可靠的来源提供。 有可能的是,即使维护者不是恶意的,他们不是最安全意识和可能不知不觉服务折衷的包。
另一个要记住的是这些PPA的寿命。 如果突然的支持从这个来源丢弃,你会有行动计划吗? 你有时间保持注意,以防你的分发最终通过默认渠道添加对包的支持吗?
在开始之前,您可能需要向系统添加一个包,以便轻松管理PPA。 这取决于版本,但您应该能够使用以下两个选项之一:
sudo apt-get update
sudo apt-get install python-software-properties # For Ubuntu 12.04 and lower
sudo apt-get install software-properties-common # For Ubuntu versions > 12.04
之后,您可以通过键入以下内容来添加PPA:
sudo add-apt-repository ppa:PPA_name
然后,您需要更新包索引以从新的PPA中提取信息。 然后,您可以安装PPA提供的任何新软件:
sudo apt-get update sudo apt-get install new_package
Git存储库
在处理Linux软件时可能遇到的另一种类型的存储库用于管理软件源文件。 通常情况下,这意味着git
存储库。
如果你有兴趣的文件在托管git
存储库,或在托管解决方案的Git像GitHub上,到位桶,私人GitLab等,你可以很容易地拉下使用传统的文件git
命令。
确保您的服务器已git
安装开始:
sudo apt-get update
sudo apt-get install git
之后,您可以简单地移动到您要保留项目的目录,并使用网站上提供的信息克隆存储库。 例如,在GitHub上,您可以在右侧获取项目的存储库URL:
您可以复制URL,并将其粘贴到克隆命令后的终端会话中:
git clone https://github.com/user/project.git
这将把项目完全克隆到当前目录中。
一般网络资源
虽然用仓库管理软件很容易,并且提供了一个用于跟踪软件和变化的好方法,但由于各种原因,并不总是能够依赖这些方法。 并非所有软件都保存在存储库中,软件包不是您在服务器上可能需要的唯一数据类型。
对于非存储库内容,我们有其他工具可以帮助我们。 我们将在下面讨论一些复杂和不复杂的方法。
远程下载和传输
也许将数据传输到服务器上感觉最自然的方式是将数据下载到家庭计算机,然后将其上传到网站。 由于您可能已在将自定义内容上传到您的网站,这种方法(如果不是非常优雅)很容易。
您可以使用普通的网络浏览器将您网站上的任何内容,文件或软件包下载到计算机上。 确保如果您正在获取软件,您正在下载正确的版本以匹配您的服务器的分发,发布和架构(如果下载选项不同)。
之后,您可以轻松地将这些文件传输到您的服务器。 推荐的方法是通过sftp
连接,让您轻松安全地传输数据。 您可以使用SFTP命令行像我们展示本指南中,也可以使用FTP客户端与sftp
功能,为大家展示本指南中有关使用FileZilla中与SFTP 。
这可能是将内容传送到您的服务器上的最灵活的方式,因为它允许您传输已创建的文件以及您可以在网络上访问的文件。
基于控制台的Web浏览器
将内容放到系统中的另一个有趣的方法是从服务器内部实际使用Web浏览器。
虽然您可以将整个图形显示服务器和传统浏览器安装到服务器上,但这几乎总是过分而不必要。 另一种方法是使用基于控制台的Web浏览器,允许您访问在纯文本输出中显示的网站。
有很多选项可用于基于控制台的Web浏览器。
ly
该lynx
的浏览器是最古老的Web浏览器仍然是积极开发和使用。 它也很容易使用。 基本上,使用向上和向下箭头键,您可以轻松地在整个页面的链接之间跳转。 要跟随链接,请按ENTER或向右箭头,当其条目突出显示时。
这可能在您的系统上默认不可用,但您可以通过键入以下内容轻松安装:
sudo apt-get update
sudo apt-get install lynx
Lynx可以处理cookie管理和书签。 如果终端支持它,它可以渲染彩色输出。 它通常可以用于任何网站,不依赖于像javascript这样的东西提供实际的功能。
在这里,例如,你可以看到在渲染一个样本DigitalOcean帐户页面lynx
的浏览器:
Droplets
Create Droplet
× Logged in!
Image Name IP Address Status Memory Disk Region
irssi xxx.241.xxx.54 Active 512MB 20GB nyc1
try 192.xxx.170.xx Active 4GB 60GB nyc2
snmp xxx.170.xx.123 Active 4GB 60GB nyc2
tugboat 192.xxx.162.xxx Active 4GB 60GB nyc2
正如你所看到的,这是相当可用的。
链接
这个浏览器也是从命令行浏览网站的伟大。 所述的一个特征links
的浏览器通过类似lynx
是它包含类似于可以通过碰撞Esc键来访问传统的浏览器的菜单系统。
您可以通过键入以下内容获取此浏览器(如果尚未在系统上):
sudo apt-get update
sudo apt-get install links
而links
的浏览器不呈现在其默认的配置彩色文本,使其稍硬区分超链接,它需要大量的ncurses的功能,使呈现的外观相当不错的优势。 把一个图形化的网站变成文字总会引起格式问题,但links
做了相当不错的工作:
Droplets
Create Droplet
Image Name IP Address Status Memory Disk Region
irssi xxx.241.xxx.54 Active 512MB 20GB nyc1
try 192.xxx.170.xx Active 4GB 60GB nyc2
snmp xxx.170.xx.123 Active 4GB 60GB nyc2
tugboat 192.xxx.162.xxx Active 4GB 60GB nyc2
可能会影响你的决定的另一个特点是, links
默认集成了鼠标的支持,这意味着你可以点击你的终端窗口中的链接,就像你会在你正常浏览器。
elinks
在一个受欢迎的叉links
浏览器elinks
。 这个分支于2001年启动,并采用扩展的功能,同时利用设置links
渲染机制和底层引擎。
为了获得elinks
Ubuntu主机上,可以键入:
sudo apt-get update
sudo apt-get install elinks
你们中有些人从获得的功能elinks
过links
的密码,表单管理,选项卡式浏览,部分JavaScript的支持,BitTorrent和IPv6协议的支持。 这些可能以牺牲速度为代价,但很可能这不会太明显。
w3m
这是另一个功能齐全的文本浏览器,可以更容易使用,就像使用图形浏览器一样。 此列表中的大多数其他浏览器允许您在链接之间跳转,但是很难浏览页面本身。 该w3m
浏览器,但是,使用选项卡链接和箭头键之间切换独立将光标移动到滚动页面。
虽然许多系统包括w3m
默认情况下,如果你的服务器没有这个浏览器,您可以通过键入添加:
sudo apt-get update
sudo apt-get install w3m
这个浏览器将一些感兴趣的人的另一个优点是,它可以使用vi
般的键盘命令。 例如,您也可以通过键入'j','k','l'和'h'来移动光标。
下载实用程序
虽然有时能够从服务器本身浏览是有帮助的,但更常见的是,您会发现从您自己的机器上的图形Web浏览器浏览是更有效的,并且将允许您以更忠实的方式呈现页面。
因此,许多人在自己的机器上浏览网络,然后将下载链接粘贴到他们的终端窗口中,用于下载实用程序。
wget
该wget
工具是快速获得从网页或下载一个很好的选择。
如果你不具备wget
你的Ubuntu服务器上已经可用,您可以通过键入获得它:
sudo apt-get update
sudo apt-get install wget
之后,从远程源下载文件就像粘贴命令名后面的URL一样简单,像这样:
wget www.example.com
如果你指向一个一般的网站,它将下载索引或主页到本地目录中的文件。 如果你将它指向一个文件,它会下载该文件。
通常,过程将使用您的家庭计算机上的浏览器找到您感兴趣的互联网上的文件,右键单击下载的链接,并选择类似于“复制链接位置”的选项。 然后,您将使用此URL与上述命令。
如果下载被中断,实际上,你可以实际使用-c
标志,如果一个不完整的文件在当前目录中,这将恢复部分下载:
wget -c www.example.com
该wget
命令可以处理cookie,对于脚本一个很好的候选人,并且可以递归的原始格式下载整个网站。
卷曲
该curl
工具也是这种类型的操作的绝佳选择。 虽然wget
通常是由生产文件进行操作, curl
默认使用标准输出,使其成为脚本和管道非常有用的。 它也支持协议的大量,并能处理超过HTTP认证方法wget
。
虽然许多系统都会有curl
默认安装的,如果你的Ubuntu机器没有,你可以输入:
sudo apt-get update
sudo apt-get install curl
而curl
使用管道正常,就可以轻松拥有它输出保存到一个文件中。 这是你可能想要的,如果你正在下载文件的服务器。 要下载文件并将其输出到具有相同名称的本地文件,请键入:
curl -O www.example.com/index.html
我们必须指定一个文件,因为这是如何curl
会知道怎样本地文件的名称。
如果我们想选择对本地文件命名,我们不再需要将它指向特定的文件,如果我们正在寻找一个网站的目录索引。 相反,我们可以选择将它指向一个位置,并且任何配置为返回的索引文件都将放置在我们选择的文件中:
curl -o file.html www.example.com
这也适用于将文件下载到您想要选择的名称,这不仅对于处理目录索引很有用。
如果你都交给一个重定向,你可以告诉curl
也是通过使用遵循它-L
标志。
结论
现在,您可以看到有很多不同的选项,从互联网获取软件,数据和材料到您的服务器。 虽然所有这些都具有从网络拉内容的能力,它们都不适合于每种类型的下载和消费。
知道你的选择是什么,并且能够利用每个解决方案的优势,它的设计是有帮助的。 这将帮助你避免做不必要的工作,并将给你灵活性的方式,你的问题。