2018年10月

对于许多应用程序来说,2018 年是非常好的一年,尤其是自由开源的应用程序。尽管各种 Linux 发行版都自带了很多默认的应用程序,但用户也可以自由地选择使用它们或者其它任何免费或付费替代方案。

下面汇总了一系列的 Linux 应用程序,这些应用程序都能够在 Linux 系统上安装,尽管还有很多其它选择。以下汇总中的任何应用程序都属于其类别中最常用的应用程序,如果你还没有用过,欢迎试用一下!

备份工具

Rsync

Rsync 是一个开源的、节约带宽的工具,它用于执行快速的增量文件传输,而且它也是一个免费工具。

$ rsync [OPTION...] SRC... [DEST]

想要了解更多示例和用法,可以参考《10 个使用 Rsync 命令的实际例子》。

Timeshift

Timeshift 能够通过增量快照来保护用户的系统数据,而且可以按照日期恢复指定的快照,类似于 Mac OS 中的 Time Machine 功能和 Windows 中的系统还原功能。

BT(BitTorrent) 客户端

Deluge

Deluge 是一个漂亮的跨平台 BT 客户端,旨在优化 μTorrent 体验,并向用户免费提供服务。

使用以下命令在 Ubuntu 和 Debian 安装 Deluge。

$ sudo add-apt-repository ppa:deluge-team/ppa
$ sudo apt-get update
$ sudo apt-get install deluge

qBittorent

qBittorent 是一个开源的 BT 客户端,旨在提供类似 μTorrent 的免费替代方案。

使用以下命令在 Ubuntu 和 Debian 安装 qBittorent。

$ sudo add-apt-repository ppa:qbittorrent-team/qbittorrent-stable
$ sudo apt-get update
$ sudo apt-get install qbittorrent

Transmission

Transmission 是一个强大的 BT 客户端,它主要关注速度和易用性,一般在很多 Linux 发行版上都有预装。

使用以下命令在 Ubuntu 和 Debian 安装 Transmission。

$ sudo add-apt-repository ppa:transmissionbt/ppa
$ sudo apt-get update
$ sudo apt-get install transmission-gtk transmission-cli transmission-common transmission-daemon

云存储

Dropbox

Dropbox 团队在今年早些时候给他们的云服务换了一个名字,也为客户提供了更好的性能和集成了更多应用程序。Dropbox 会向用户免费提供 2 GB 存储空间。

使用以下命令在 Ubuntu 和 Debian 安装 Dropbox。

$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf - [On 32-Bit]
$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf - [On 64-Bit]
$ ~/.dropbox-dist/dropboxd

Google Drive

Google Drive 是 Google 提供的云服务解决方案,这已经是一个广为人知的服务了。与 Dropbox 一样,可以通过它在所有联网的设备上同步文件。它免费提供了 15 GB 存储空间,包括Gmail、Google 图片、Google 地图等服务。

参考阅读:5 个适用于 Linux 的 Google Drive 客户端

Mega

Mega 也是一个出色的云存储解决方案,它的亮点除了高度的安全性之外,还有为用户免费提供高达 50 GB 的免费存储空间。它使用端到端加密,以确保用户的数据安全,所以如果忘记了恢复密钥,用户自己也无法访问到存储的数据。

参考阅读:在 Ubuntu 下载 Mega 云存储客户端

命令行编辑器

Vim

Vim 是 vi 文本编辑器的开源克隆版本,它的主要目的是可以高度定制化并能够处理任何类型的文本。

使用以下命令在 Ubuntu 和 Debian 安装 Vim。

$ sudo add-apt-repository ppa:jonathonf/vim
$ sudo apt update
$ sudo apt install vim

Emacs

Emacs 是一个高度可配置的文本编辑器,最流行的一个分支 GNU Emacs 是用 Lisp 和 C 编写的,它的最大特点是可以自文档化、可扩展和可自定义。

使用以下命令在 Ubuntu 和 Debian 安装 Emacs。

$ sudo add-apt-repository ppa:kelleyk/emacs
$ sudo apt update
$ sudo apt install emacs25

Nano

Nano 是一款功能丰富的命令行文本编辑器,比较适合高级用户。它可以通过多个终端进行不同功能的操作。

使用以下命令在 Ubuntu 和 Debian 安装 Nano。

$ sudo add-apt-repository ppa:n-muench/programs-ppa
$ sudo apt-get update
$ sudo apt-get install nano

下载器

Aria2

Aria2 是一个开源的、轻量级的、多软件源和多协议的命令行下载器,它支持 Metalink、torrent、HTTP/HTTPS、SFTP 等多种协议。

使用以下命令在 Ubuntu 和 Debian 安装 Aria2。

$ sudo apt-get install aria2

uGet

uGet 已经成为 Linux 各种发行版中排名第一的开源下载器,它可以处理任何下载任务,包括多连接、队列、类目等。

使用以下命令在 Ubuntu 和 Debian 安装 uGet。

$ sudo add-apt-repository ppa:plushuang-tw/uget-stable
$ sudo apt update
$ sudo apt install uget

XDM

XDM(Xtreme Download Manager)是一个使用 Java 编写的开源下载软件。和其它下载器一样,它可以结合队列、种子、浏览器使用,而且还带有视频采集器和智能调度器。

使用以下命令在 Ubuntu 和 Debian 安装 XDM。

$ sudo add-apt-repository ppa:noobslab/apps
$ sudo apt-get update
$ sudo apt-get install xdman

电子邮件客户端

Thunderbird

Thunderbird 是最受欢迎的电子邮件客户端之一。它的优点包括免费、开源、可定制、功能丰富,而且最重要的是安装过程也很简便。

使用以下命令在 Ubuntu 和 Debian 安装 Thunderbird。

$ sudo add-apt-repository ppa:ubuntu-mozilla-security/ppa
$ sudo apt-get update
$ sudo apt-get install thunderbird

Geary

Geary 是一个基于 WebKitGTK+ 的开源电子邮件客户端。它是一个免费开源的功能丰富的软件,并被 GNOME 项目收录。

使用以下命令在 Ubuntu 和 Debian 安装 Geary。

$ sudo add-apt-repository ppa:geary-team/releases
$ sudo apt-get update
$ sudo apt-get install geary

Evolution

Evolution 是一个免费开源的电子邮件客户端,可以用于电子邮件、会议日程、备忘录和联系人的管理。

使用以下命令在 Ubuntu 和 Debian 安装 Evolution。

$ sudo add-apt-repository ppa:gnome3-team/gnome3-staging
$ sudo apt-get update
$ sudo apt-get install evolution

财务软件

GnuCash

GnuCash 是一款免费的跨平台开源软件,它适用于个人和中小型企业的财务任务。

使用以下命令在 Ubuntu 和 Debian 安装 GnuCash。

$ sudo sh -c 'echo "deb http://archive.getdeb.net/ubuntu $(lsb_release -sc)-getdeb apps" >> /etc/apt/sources.list.d/getdeb.list'
$ sudo apt-get update
$ sudo apt-get install gnucash

KMyMoney

KMyMoney 是一个财务管理软件,它可以提供商用或个人理财所需的大部分主要功能。

使用以下命令在 Ubuntu 和 Debian 安装 KmyMoney。

$ sudo add-apt-repository ppa:claydoh/kmymoney2-kde4
$ sudo apt-get update
$ sudo apt-get install kmymoney

IDE

Eclipse IDE

Eclipse 是最广为使用的 Java IDE,它包括一个基本工作空间和一个用于自定义编程环境的强大的的插件配置系统。

关于 Eclipse IDE 的安装,可以参考 如何在 Debian 和 Ubuntu 上安装 Eclipse IDE 这一篇文章。

Netbeans IDE

Netbeans 是一个相当受用户欢迎的 IDE,它支持使用 Java、PHP、HTML 5、JavaScript、C/C++ 或其他语言编写移动应用,桌面软件和 web 应用。

关于 Netbeans IDE 的安装,可以参考 如何在 Debian 和 Ubuntu 上安装 Netbeans IDE 这一篇文章。

Brackets

Brackets 是由 Adobe 开发的高级文本编辑器,它带有可视化工具,支持预处理程序,以及用于 web 开发的以设计为中心的用户流程。对于熟悉它的用户,它可以发挥 IDE 的作用。

使用以下命令在 Ubuntu 和 Debian 安装 Brackets。

$ sudo add-apt-repository ppa:webupd8team/brackets
$ sudo apt-get update
$ sudo apt-get install brackets

Atom IDE

Atom IDE 是一个加强版的 Atom 编辑器,它添加了大量扩展和库以提高性能和增加功能。总之,它是各方面都变得更强大了的 Atom 。

使用以下命令在 Ubuntu 和 Debian 安装 Atom。

$ sudo apt-get install snapd
$ sudo snap install atom --classic

Light Table

Light Table 号称下一代的 IDE,它提供了数据流量统计和协作编程等的强大功能。

使用以下命令在 Ubuntu 和 Debian 安装 Light Table。

$ sudo add-apt-repository ppa:dr-akulavich/lighttable
$ sudo apt-get update
$ sudo apt-get install lighttable-installer

Visual Studio Code

Visual Studio Code 是由微软开发的代码编辑器,它包含了文本编辑器所需要的最先进的功能,包括语法高亮、自动完成、代码调试、性能统计和图表显示等功能。

参考阅读:在Ubuntu 下载 Visual Studio Code

即时通信工具

Pidgin

Pidgin 是一个开源的即时通信工具,它几乎支持所有聊天平台,还支持额外扩展功能。

使用以下命令在 Ubuntu 和 Debian 安装 Pidgin。

$ sudo add-apt-repository ppa:jonathonf/backports
$ sudo apt-get update
$ sudo apt-get install pidgin

Skype

Skype 也是一个广为人知的软件了,任何感兴趣的用户都可以在 Linux 上使用。

使用以下命令在 Ubuntu 和 Debian 安装 Skype。

$ sudo apt install snapd
$ sudo snap install skype --classic

Empathy

Empathy 是一个支持多协议语音、视频聊天、文本和文件传输的即时通信工具。它还允许用户添加多个服务的帐户,并用其与所有服务的帐户进行交互。

使用以下命令在 Ubuntu 和 Debian 安装 Empathy。

$ sudo apt-get install empathy

Linux 防病毒工具

ClamAV/ClamTk

ClamAV 是一个开源的跨平台命令行防病毒工具,用于检测木马、病毒和其他恶意代码。而 ClamTk 则是它的前端 GUI。

使用以下命令在 Ubuntu 和 Debian 安装 ClamAV 和 ClamTk。

$ sudo apt-get install clamav
$ sudo apt-get install clamtk

Linux 桌面环境

Cinnamon

Cinnamon 是 GNOME 3 的自由开源衍生产品,它遵循传统的 桌面比拟 desktop metaphor 约定。

使用以下命令在 Ubuntu 和 Debian 安装 Cinnamon。

$ sudo add-apt-repository ppa:embrosyn/cinnamon
$ sudo apt update
$ sudo apt install cinnamon-desktop-environment lightdm

Mate

Mate 桌面环境是 GNOME 2 的衍生和延续,目的是在 Linux 上通过使用传统的桌面比拟提供有一个吸引力的 UI。

使用以下命令在 Ubuntu 和 Debian 安装 Mate。

$ sudo apt install tasksel
$ sudo apt update
$ sudo tasksel install ubuntu-mate-desktop

GNOME

GNOME 是由一些免费和开源应用程序组成的桌面环境,它可以运行在任何 Linux 发行版和大多数 BSD 衍生版本上。

使用以下命令在 Ubuntu 和 Debian 安装 Gnome。

$ sudo apt install tasksel
$ sudo apt update
$ sudo tasksel install ubuntu-desktop

KDE

KDE 由 KDE 社区开发,它为用户提供图形解决方案以控制操作系统并执行不同的计算任务。

使用以下命令在 Ubuntu 和 Debian 安装 KDE。

$ sudo apt install tasksel
$ sudo apt update
$ sudo tasksel install kubuntu-desktop

Linux 维护工具

GNOME Tweak Tool

GNOME Tweak Tool 是用于自定义和调整 GNOME 3 和 GNOME Shell 设置的流行工具。

使用以下命令在 Ubuntu 和 Debian 安装 GNOME Tweak Tool。

$ sudo apt install gnome-tweak-tool

Stacer

Stacer 是一款用于监控和优化 Linux 系统的免费开源应用程序。

使用以下命令在 Ubuntu 和 Debian 安装 Stacer。

$ sudo add-apt-repository ppa:oguzhaninan/stacer
$ sudo apt-get update
$ sudo apt-get install stacer

BleachBit

BleachBit 是一个免费的磁盘空间清理器,它也可用作隐私管理器和系统优化器。

参考阅读:在 Ubuntu 下载 BleachBit

Linux 终端工具

GNOME 终端

GNOME 终端 是 GNOME 的默认终端模拟器。

使用以下命令在 Ubuntu 和 Debian 安装 Gnome 终端。

$ sudo apt-get install gnome-terminal

Konsole

Konsole 是 KDE 的一个终端模拟器。

使用以下命令在 Ubuntu 和 Debian 安装 Konsole。

$ sudo apt-get install konsole

Terminator

Terminator 是一个功能丰富的终端程序,它基于 GNOME 终端,并且专注于整理终端功能。

使用以下命令在 Ubuntu 和 Debian 安装 Terminator。

$ sudo apt-get install terminator

Guake

Guake 是 GNOME 桌面环境下一个轻量级的可下拉式终端。

使用以下命令在 Ubuntu 和 Debian 安装 Guake。

$ sudo apt-get install guake

多媒体编辑工具

Ardour

Ardour 是一款漂亮的的 数字音频工作站 Digital Audio Workstation ,可以完成专业的录制、编辑和混音工作。

使用以下命令在 Ubuntu 和 Debian 安装 Ardour。

$ sudo add-apt-repository ppa:dobey/audiotools
$ sudo apt-get update
$ sudo apt-get install ardour

Audacity

Audacity 是最著名的音频编辑软件之一,它是一款跨平台的开源多轨音频编辑器。

使用以下命令在 Ubuntu 和 Debian 安装 Audacity。

$ sudo add-apt-repository ppa:ubuntuhandbook1/audacity
$ sudo apt-get update
$ sudo apt-get install audacity

GIMP

GIMP 是 Photoshop 的开源替代品中最受欢迎的。这是因为它有多种可自定义的选项、第三方插件以及活跃的用户社区。

使用以下命令在 Ubuntu 和 Debian 安装 Gimp。

$ sudo add-apt-repository ppa:otto-kesselgulasch/gimp
$ sudo apt update
$ sudo apt install gimp

Krita

Krita 是一款开源的绘画程序,它具有美观的 UI 和可靠的性能,也可以用作图像处理工具。

使用以下命令在 Ubuntu 和 Debian 安装 Krita。

$ sudo add-apt-repository ppa:kritalime/ppa
$ sudo apt update
$ sudo apt install krita

Lightworks

Lightworks 是一款功能强大、灵活美观的专业视频编辑工具。它拥有上百种配套的视觉效果功能,可以处理任何编辑任务,毕竟这个软件已经有长达 25 年的视频处理经验。

参考阅读:在 Ubuntu 下载 Lightworks

OpenShot

OpenShot 是一款屡获殊荣的免费开源视频编辑器,这主要得益于其出色的性能和强大的功能。

使用以下命令在 Ubuntu 和 Debian 安装 `Openshot。

$ sudo add-apt-repository ppa:openshot.developers/ppa
$ sudo apt update
$ sudo apt install openshot-qt

PiTiV

Pitivi 也是一个美观的视频编辑器,它有优美的代码库、优质的社区,还支持优秀的协作编辑功能。

使用以下命令在 Ubuntu 和 Debian 安装 PiTiV。

$ flatpak install --user https://flathub.org/repo/appstream/org.pitivi.Pitivi.flatpakref
$ flatpak install --user http://flatpak.pitivi.org/pitivi.flatpakref
$ flatpak run org.pitivi.Pitivi//stable

音乐播放器

Rhythmbox

Rhythmbox 支持海量种类的音乐,目前被认为是最可靠的音乐播放器,并由 Ubuntu 自带。

使用以下命令在 Ubuntu 和 Debian 安装 Rhythmbox。

$ sudo add-apt-repository ppa:fossfreedom/rhythmbox
$ sudo apt-get update
$ sudo apt-get install rhythmbox

Lollypop

Lollypop 是一款较为年轻的开源音乐播放器,它有很多高级选项,包括网络电台,滑动播放和派对模式。尽管功能繁多,它仍然尽量做到简单易管理。

使用以下命令在 Ubuntu 和 Debian 安装 Lollypop。

$ sudo add-apt-repository ppa:gnumdk/lollypop
$ sudo apt-get update
$ sudo apt-get install lollypop

Amarok

Amarok 是一款功能强大的音乐播放器,它有一个直观的 UI 和大量的高级功能,而且允许用户根据自己的偏好去发现新音乐。

使用以下命令在 Ubuntu 和 Debian 安装 Amarok。

$ sudo apt-get update
$ sudo apt-get install amarok

Clementine

Clementine 是一款 Amarok 风格的音乐播放器,因此和 Amarok 相似,也有直观的用户界面、先进的控制模块,以及让用户搜索和发现新音乐的功能。

使用以下命令在 Ubuntu 和 Debian 安装 Clementine。

$ sudo add-apt-repository ppa:me-davidsansome/clementine
$ sudo apt-get update
$ sudo apt-get install clementine

Cmus

Cmus 可以说是最高效的的命令行界面音乐播放器了,它具有快速可靠的特点,也支持使用扩展。

使用以下命令在 Ubuntu 和 Debian 安装 Cmus。

$ sudo add-apt-repository ppa:jmuc/cmus
$ sudo apt-get update
$ sudo apt-get install cmus

办公软件

Calligra 套件

Calligra 套件为用户提供了一套总共 8 个应用程序,涵盖办公、管理、图表等各个范畴。

使用以下命令在 Ubuntu 和 Debian 安装 Calligra 套件。

$ sudo apt-get install calligra

LibreOffice

LibreOffice 是开源社区中开发过程最活跃的办公套件,它以可靠性著称,也可以通过扩展来添加功能。

使用以下命令在 Ubuntu 和 Debian 安装 LibreOffice。

$ sudo add-apt-repository ppa:libreoffice/ppa
$ sudo apt update
$ sudo apt install libreoffice

WPS Office

WPS Office 是一款漂亮的办公套件,它有一个很具现代感的 UI。

参考阅读:在 Ubuntu 安装 WPS Office

屏幕截图工具

Shutter

Shutter 允许用户截取桌面的屏幕截图,然后使用一些效果进行编辑,还支持上传和在线共享。

使用以下命令在 Ubuntu 和 Debian 安装 Shutter。

$ sudo add-apt-repository -y ppa:shutter/ppa
$ sudo apt update
$ sudo apt install shutter

Kazam

Kazam 可以用于捕获屏幕截图,它的输出对于任何支持 VP8/WebM 和 PulseAudio 视频播放器都可用。

使用以下命令在 Ubuntu 和 Debian 安装 Kazam。

$ sudo add-apt-repository ppa:kazam-team/unstable-series
$ sudo apt update
$ sudo apt install kazam python3-cairo python3-xlib

Gnome Screenshot

Gnome Screenshot 过去曾经和 Gnome 一起捆绑,但现在已经独立出来。它以易于共享的格式进行截屏。

使用以下命令在 Ubuntu 和 Debian 安装 Gnome Screenshot。

$ sudo apt-get update
$ sudo apt-get install gnome-screenshot

录屏工具

SimpleScreenRecorder

SimpleScreenRecorder 面世时已经是录屏工具中的佼佼者,现在已成为 Linux 各个发行版中最有效、最易用的录屏工具之一。

使用以下命令在 Ubuntu 和 Debian 安装 SimpleScreenRecorder。

$ sudo add-apt-repository ppa:maarten-baert/simplescreenrecorder
$ sudo apt-get update
$ sudo apt-get install simplescreenrecorder

recordMyDesktop

recordMyDesktop 是一个开源的会话记录器,它也能记录桌面会话的音频。

使用以下命令在 Ubuntu 和 Debian 安装 recordMyDesktop。

$ sudo apt-get update
$ sudo apt-get install gtk-recordmydesktop

文本编辑器

Atom

Atom 是由 GitHub 开发和维护的可定制文本编辑器。它是开箱即用的,但也可以使用扩展和主题自定义 UI 来增强其功能。

使用以下命令在 Ubuntu 和 Debian 安装 Atom。

$ sudo apt-get install snapd
$ sudo snap install atom --classic

Sublime Text

Sublime Text 已经成为目前最棒的文本编辑器。它可定制、轻量灵活(即使打开了大量数据文件和加入了大量扩展),最重要的是可以永久免费使用。

使用以下命令在 Ubuntu 和 Debian 安装 Sublime Text。

$ sudo apt-get install snapd
$ sudo snap install sublime-text

Geany

Geany 是一个内存友好的文本编辑器,它具有基本的IDE功能,可以显示加载时间、扩展库函数等。

使用以下命令在 Ubuntu 和 Debian 安装 Geany。

$ sudo apt-get update
$ sudo apt-get install geany

Gedit

Gedit 以其简单著称,在很多 Linux 发行版都有预装,它具有文本编辑器都具有的优秀的功能。

使用以下命令在 Ubuntu 和 Debian 安装 Gedit。

$ sudo apt-get update
$ sudo apt-get install gedit

备忘录软件

Evernote

Evernote 是一款云上的笔记程序,它带有待办列表和提醒功能,能够与不同类型的笔记完美配合。

Evernote 在 Linux 上没有官方提供的软件,但可以参考 Linux 上的 6 个 Evernote 替代客户端 这篇文章使用其它第三方工具。

Everdo

Everdo 是一款美观,安全,易兼容的备忘软件,可以用于处理待办事项和其它笔记。如果你认为 Evernote 有所不足,相信 Everdo 会是一个好的替代。

参考阅读:在 Ubuntu 下载 Everdo

Taskwarrior

Taskwarrior 是一个用于管理个人任务的开源跨平台命令行应用,它的速度和无干扰的环境是它的两大特点。

使用以下命令在 Ubuntu 和 Debian 安装 Taskwarrior。

$ sudo apt-get update
$ sudo apt-get install taskwarrior

视频播放器

Banshee

Banshee 是一个开源的支持多格式的媒体播放器,于 2005 年开始开发并逐渐成长。

使用以下命令在 Ubuntu 和 Debian 安装 Banshee。

$ sudo add-apt-repository ppa:banshee-team/ppa
$ sudo apt-get update
$ sudo apt-get install banshee

VLC

VLC 是我最喜欢的视频播放器,它几乎可以播放任何格式的音频和视频,它还可以播放网络电台、录制桌面会话以及在线播放电影。

使用以下命令在 Ubuntu 和 Debian 安装 VLC。

$ sudo add-apt-repository ppa:videolan/stable-daily
$ sudo apt-get update
$ sudo apt-get install vlc

Kodi

Kodi 是世界上最着名的媒体播放器之一,它有一个成熟的媒体中心,可以播放本地和远程的多媒体文件。

使用以下命令在 Ubuntu 和 Debian 安装 Kodi。

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:team-xbmc/ppa
$ sudo apt-get update
$ sudo apt-get install kodi

SMPlayer

SMPlayer 是 MPlayer 的 GUI 版本,所有流行的媒体格式它都能够处理,并且它还有从 YouTube 和 Chromcast 和下载字幕的功能。

使用以下命令在 Ubuntu 和 Debian 安装 SMPlayer。

$ sudo add-apt-repository ppa:rvm/smplayer
$ sudo apt-get update
$ sudo apt-get install smplayer

虚拟化工具

VirtualBox

VirtualBox 是一个用于操作系统虚拟化的开源应用程序,在服务器、台式机和嵌入式系统上都可以运行。

使用以下命令在 Ubuntu 和 Debian 安装 VirtualBox。

$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install virtualbox-5.2
$ virtualbox

VMWare

VMware 是一个为客户提供平台虚拟化和云计算服务的数字工作区,是第一个成功将 x86 架构系统虚拟化的工作站。 VMware 工作站的其中一个产品就允许用户在虚拟内存中运行多个操作系统。

参阅 在 Ubuntu 上安装 VMWare Workstation Pro 可以了解 VMWare 的安装。

浏览器

Chrome

Google Chrome 无疑是最受欢迎的浏览器。Chrome 以其速度、简洁、安全、美观而受人喜爱,它遵循了 Google 的界面设计风格,是 web 开发人员不可缺少的浏览器,同时它也是免费开源的。

使用以下命令在 Ubuntu 和 Debian 安装 Google Chrome。

$ wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
$ sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
$ sudo apt-get update
$ sudo apt-get install google-chrome-stable

Firefox

Firefox Quantum 是一款漂亮、快速、完善并且可自定义的浏览器。它也是自由开源的,包含有开发人员所需要的工具,对于初学者也没有任何使用门槛。

使用以下命令在 Ubuntu 和 Debian 安装 Firefox Quantum。

$ sudo add-apt-repository ppa:mozillateam/firefox-next
$ sudo apt update && sudo apt upgrade
$ sudo apt install firefox

Vivaldi

Vivaldi 是一个基于 Chrome 的自由开源项目,旨在通过添加扩展来使 Chrome 的功能更加完善。色彩丰富的界面,性能良好、灵活性强是它的几大特点。

参考阅读:在 Ubuntu 下载 Vivaldi

以上就是我的推荐,你还有更好的软件向大家分享吗?欢迎评论。


via: https://www.fossmint.com/most-used-linux-applications/

作者:Martins D. Okoi 选题:lujun9972 译者:HankChow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

对 Bash 长命令使用压缩的版本来更有效率。

你有多少次在命令行上输入一个长命令,并希望有一种方法可以保存它以供日后使用?这就是 Bash 别名派上用场的地方。它们允许你将长而神秘的命令压缩为易于记忆和使用的东西。需要一些例子来帮助你入门吗?没问题!

要使用你创建的 Bash 别名,你需要将其添加到 .bash_profile 中,该文件位于你的家目录中。请注意,此文件是隐藏的,并只能从命令行访问。编辑此文件的最简单方法是使用 Vi 或 Nano 之类的东西。

10 个方便的 Bash 别名

1、 你有几次遇到需要解压 .tar 文件但无法记住所需的确切参数?别名可以帮助你!只需将以下内容添加到 .bash_profile 中,然后使用 untar FileName 解压缩任何 .tar 文件。

alias untar='tar -zxvf '

2、 想要下载的东西,但如果出现问题可以恢复吗?

alias wget='wget -c '

3、 是否需要为新的网络帐户生成随机的 20 个字符的密码?没问题。

alias getpass="openssl rand -base64 20"

4、 下载文件并需要测试校验和?我们也可做到。

alias sha='shasum -a 256 '

5、 普通的 ping 将永远持续下去。我们不希望这样。相反,让我们将其限制在五个 ping

alias ping='ping -c 5'

6、 在任何你想要的文件夹中启动 Web 服务器。

alias www='python -m SimpleHTTPServer 8000'

7、 想知道你的网络有多快?只需下载 Speedtest-cli 并使用此别名即可。你可以使用 speedtest-cli --list 命令选择离你所在位置更近的服务器。

alias speed='speedtest-cli --server 2406 --simple'

8、 你有多少次需要知道你的外部 IP 地址,但是不知道如何获取?我也是。

alias ipe='curl ipinfo.io/ip'

9、 需要知道你的本地 IP 地址?

alias ipi='ipconfig getifaddr en0'

10、 最后,让我们清空屏幕。

alias c='clear'

如你所见,Bash 别名是一种在命令行上简化生活的超级简便方法。想了解更多信息?我建议你 Google 搜索“Bash 别名”或在 Github 中看下。


via: https://opensource.com/article/18/9/handy-bash-aliases

作者:Patrick H.Mullins 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

也许你的 Linux 用户并不是愤怒的公牛,但是当涉及管理他们的账户的时候,能让他们一直满意也是一种挑战。你需要监控他们的访问权限,跟进他们遇到问题时的解决方案,并且把他们在使用系统时出现的重要变动记录下来。这里有一些方法和工具可以让这个工作轻松一点。

配置账户

添加和删除账户是管理用户中比较简单的一项,但是这里面仍然有很多需要考虑的方面。无论你是用桌面工具或是命令行选项,这都是一个非常自动化的过程。你可以使用 adduser jdoe 命令添加一个新用户,同时会触发一系列的反应。在创建 John 这个账户时会自动使用下一个可用的 UID,并有很多自动生成的文件来完成这个工作。当你运行 adduser 后跟一个参数时(要创建的用户名),它会提示一些额外的信息,同时解释这是在干什么。

$ sudo adduser jdoe
Adding user 'jdoe' ...
Adding new group `jdoe' (1001) ...
Adding new user `jdoe' (1001) with group `jdoe' ...
Creating home directory `/home/jdoe' ...
Copying files from `/etc/skel' …
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for jdoe
Enter the new value, or press ENTER for the default
    Full Name []: John Doe
    Room Number []:
    Work Phone []:
    Home Phone []:
    Other []:
Is the information correct? [Y/n] Y

如你所见,adduser 会添加用户的信息(到 /etc/passwd/etc/shadow 文件中),创建新的 家目录 home directory ,并用 /etc/skel 里设置的文件填充家目录,提示你分配初始密码和认证信息,然后确认这些信息都是正确的,如果你在最后的提示 “Is the information correct?” 处的回答是 “n”,它会回溯你之前所有的回答,允许修改任何你想要修改的地方。

创建好一个用户后,你可能会想要确认一下它是否是你期望的样子,更好的方法是确保在添加第一个帐户之前,“自动”选择与你想要查看的内容是否匹配。默认有默认的好处,它对于你想知道他们定义在哪里很有用,以便你想做出一些变动 —— 例如,你不想让用户的家目录在 /home 里,你不想让用户 UID 从 1000 开始,或是你不想让家目录下的文件被系统中的每个人都可读。

adduser 的一些配置细节设置在 /etc/adduser.conf 文件里。这个文件包含的一些配置项决定了一个新的账户如何配置,以及它之后的样子。注意,注释和空白行将会在输出中被忽略,因此我们更关注配置项。

$ cat /etc/adduser.conf | grep -v "^#" | grep -v "^$"
DSHELL=/bin/bash
DHOME=/home
GROUPHOMES=no
LETTERHOMES=no
SKEL=/etc/skel
FIRST_SYSTEM_UID=100
LAST_SYSTEM_UID=999
FIRST_SYSTEM_GID=100
LAST_SYSTEM_GID=999
FIRST_UID=1000
LAST_UID=29999
FIRST_GID=1000
LAST_GID=29999
USERGROUPS=yes
USERS_GID=100
DIR_MODE=0755
SETGID_HOME=no
QUOTAUSER=""
SKEL_IGNORE_REGEX="dpkg-(old|new|dist|save)"

可以看到,我们有了一个默认的 shell(DSHELL),UID(FIRST_UID)的起始值,家目录(DHOME)的位置,以及启动文件(SKEL)的来源位置。这个文件也会指定分配给家目录(DIR_HOME)的权限。

其中 DIR_HOME 是最重要的设置,它决定了每个家目录被使用的权限。这个设置分配给用户创建的目录权限是 755,家目录的权限将会设置为 rwxr-xr-x。用户可以读其他用户的文件,但是不能修改和移除它们。如果你想要更多的限制,你可以更改这个设置为 750(用户组外的任何人都不可访问)甚至是 700(除用户自己外的人都不可访问)。

任何用户账号在创建之前都可以进行手动修改。例如,你可以编辑 /etc/passwd 或者修改家目录的权限,开始在新服务器上添加用户之前配置 /etc/adduser.conf 可以确保一定的一致性,从长远来看可以节省时间和避免一些麻烦。

/etc/adduser.conf 的修改将会在之后创建的用户上生效。如果你想以不同的方式设置某个特定账户,除了用户名之外,你还可以选择使用 adduser 命令提供账户配置选项。或许你想为某些账户分配不同的 shell,分配特殊的 UID,或完全禁用该账户登录。adduser 的帮助页将会为你显示一些配置个人账户的选择。

adduser [options] [--home DIR] [--shell SHELL] [--no-create-home]
[--uid ID] [--firstuid ID] [--lastuid ID] [--ingroup GROUP | --gid ID]
[--disabled-password] [--disabled-login] [--gecos GECOS]
[--add_extra_groups] [--encrypt-home] user

每个 Linux 系统现在都会默认把每个用户放入对应的组中。作为一个管理员,你可能会选择以不同的方式。你也许会发现把用户放在一个共享组中更适合你的站点,你就可以选择使用 adduser--gid 选项指定一个特定的组。当然,用户总是许多组的成员,因此也有一些选项来管理主要和次要的组。

处理用户密码

一直以来,知道其他人的密码都不是一件好事,在设置账户时,管理员通常使用一个临时密码,然后在用户第一次登录时运行一条命令强制他修改密码。这里是一个例子:

$ sudo chage -d 0 jdoe

当用户第一次登录时,会看到类似下面的提示:

WARNING: Your password has expired.
You must change your password now and login again!
Changing password for jdoe.
(current) UNIX password:

添加用户到副组

添加用户到副组中,你可能会用如下所示的 usermod 命令添加用户到组中并确认已经做出变动。

$ sudo usermod -a -G sudo jdoe
$ sudo grep sudo /etc/group
sudo:x:27:shs,jdoe

记住在一些组意味着特别的权限,如 sudo 或者 wheel 组,一定要特别注意这一点。

移除用户,添加组等

Linux 系统也提供了移除账户,添加新的组,移除组等一些命令。例如,deluser 命令,将会从 /etc/passwd/etc/shadow 中移除用户记录,但是会完整保留其家目录,除非你添加了 --remove-home 或者 --remove-all-files 选项。addgroup 命令会添加一个组,默认按目前组的次序分配下一个 id(在用户组范围内),除非你使用 --gid 选项指定 id。

$ sudo addgroup testgroup --gid=131
Adding group `testgroup' (GID 131) ...
Done.

管理特权账户

一些 Linux 系统中有一个 wheel 组,它给组中成员赋予了像 root 一样运行命令的权限。在这种情况下,/etc/sudoers 将会引用该组。在 Debian 系统中,这个组被叫做 sudo,但是原理是相同的,你在 /etc/sudoers 中可以看到像这样的信息:

%sudo   ALL=(ALL:ALL) ALL

这行基本的配置意味着任何在 wheel 或者 sudo 组中的成员只要在他们运行的命令之前添加 sudo,就可以以 root 的权限去运行命令。

你可以向 sudoers 文件中添加更多有限的权限 —— 也许给特定用户几个能以 root 运行的命令。如果你是这样做的,你应该定期查看 /etc/sudoers 文件以评估用户拥有的权限,以及仍然需要提供的权限。

在下面显示的命令中,我们过滤了 /etc/sudoers 中有效的配置行。其中最有意思的是,它包含了能使用 sudo 运行命令的路径设置,以及两个允许通过 sudo 运行命令的组。像刚才提到的那样,单个用户可以通过包含在 sudoers 文件中来获得权限,但是更有实际意义的方法是通过组成员来定义各自的权限。

# cat /etc/sudoers | grep -v "^#" | grep -v "^$"
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
root    ALL=(ALL:ALL) ALL
%admin  ALL=(ALL) ALL       <== admin group
%sudo   ALL=(ALL:ALL) ALL   <== sudo group

登录检查

你可以通过以下命令查看用户的上一次登录:

# last jdoe
jdoe pts/18 192.168.0.11 Thu Sep 14 08:44 - 11:48 (00:04)
jdoe pts/18 192.168.0.11 Thu Sep 14 13:43 - 18:44 (00:00)
jdoe pts/18 192.168.0.11 Thu Sep 14 19:42 - 19:43 (00:00)

如果你想查看每一个用户上一次的登录情况,你可以通过一个像这样的循环来运行 last 命令:

$ for user in `ls /home`; do last $user | head -1; done

jdoe pts/18 192.168.0.11 Thu Sep 14 19:42 - 19:43 (00:03)

rocket pts/18 192.168.0.11 Thu Sep 14 13:02 - 13:02 (00:00)
shs pts/17 192.168.0.11 Thu Sep 14 12:45 still logged in

此命令仅显示自当前 wtmp 文件登录过的用户。空白行表示用户自那以后从未登录过,但没有将他们显示出来。一个更好的命令可以明确地显示这期间从未登录过的用户:

$ for user in `ls /home`; do echo -n "$user"; last $user | head -1 | awk '{print substr($0,40)}'; done
dhayes
jdoe pts/18 192.168.0.11 Thu Sep 14 19:42 - 19:43
peanut pts/19 192.168.0.29 Mon Sep 11 09:15 - 17:11
rocket pts/18 192.168.0.11 Thu Sep 14 13:02 - 13:02
shs pts/17 192.168.0.11 Thu Sep 14 12:45 still logged
tsmith

这个命令要打很多字,但是可以通过一个脚本使它更加清晰易用。

#!/bin/bash

for user in `ls /home`
do
    echo -n "$user ";last $user | head -1 | awk '{print substr($0,40)}'
done

有时这些信息可以提醒你用户角色的变动,表明他们可能不再需要相关帐户了。

与用户沟通

Linux 提供了许多和用户沟通的方法。你可以向 /etc/motd 文件中添加信息,当用户从终端登录到服务器时,将会显示这些信息。你也可以通过例如 write(通知单个用户)或者 wall(write 给所有已登录的用户)命令发送通知。

$ wall System will go down in one hour

Broadcast message from shs@stinkbug (pts/17) (Thu Sep 14 14:04:16 2017):

System will go down in one hour

重要的通知应该通过多个渠道传达,因为很难预测用户实际会注意到什么。mesage-of-the-day(motd),wall 和 email 通知可以吸引用户大部分的注意力。

注意日志文件

多注意日志文件也可以帮你理解用户的活动情况。尤其 /var/log/auth.log 文件将会显示用户的登录和注销活动,组的创建记录等。/var/log/message 或者 /var/log/syslog 文件将会告诉你更多有关系统活动的日志。

追踪问题和需求

无论你是否在 Linux 系统上安装了事件跟踪系统,跟踪用户遇到的问题以及他们提出的需求都非常重要。如果需求的一部分久久不见回应,用户必然不会高兴。即使是记录在纸上也是有用的,或者最好有个电子表格,这可以让你注意到哪些问题仍然悬而未决,以及问题的根本原因是什么。确认问题和需求非常重要,记录还可以帮助你记住你必须采取的措施来解决几个月甚至几年后重新出现的问题。

总结

在繁忙的服务器上管理用户帐号,部分取决于配置良好的默认值,部分取决于监控用户活动和遇到的问题。如果用户觉得你对他们的顾虑有所回应并且知道在需要系统升级时会发生什么,他们可能会很高兴。


via: https://www.networkworld.com/article/3225109/linux/managing-users-on-linux-systems.html

作者:Sandra Henry-Stocker 译者:dianbanjiu 校对:wxypityonline

本文由 LCTT 原创编译,Linux中国 荣誉推出

在本指南中,我们将学习如何使用 df 命令。df 命令是 “Disk Free” 的首字母组合,它报告文件系统磁盘空间的使用情况。它显示一个 Linux 系统中文件系统上可用磁盘空间的数量。df 命令很容易与 du 命令混淆。它们的用途不同。df 命令报告我们拥有多少磁盘空间(空闲磁盘空间),而 du 命令报告被文件和目录占用了多少磁盘空间。希望我这样的解释你能更清楚。在继续之前,我们来看一些 df 命令的实例,以便于你更好地理解它。

df 命令使用举例

1、查看整个文件系统磁盘空间使用情况

无需任何参数来运行 df 命令,以显示整个文件系统磁盘空间使用情况。

$ df

示例输出:

Filesystem 1K-blocks Used Available Use% Mounted on
dev 4033216 0 4033216 0% /dev
run 4038880 1120 4037760 1% /run
/dev/sda2 478425016 428790352 25308980 95% /
tmpfs 4038880 34396 4004484 1% /dev/shm
tmpfs 4038880 0 4038880 0% /sys/fs/cgroup
tmpfs 4038880 11636 4027244 1% /tmp
/dev/loop0 84096 84096 0 100% /var/lib/snapd/snap/core/4327
/dev/sda1 95054 55724 32162 64% /boot
tmpfs 807776 28 807748 1% /run/user/1000

正如你所见,输出结果分为六列。我们来看一下每一列的含义。

  • Filesystem – Linux 系统中的文件系统
  • 1K-blocks – 文件系统的大小,用 1K 大小的块来表示。
  • Used – 以 1K 大小的块所表示的已使用数量。
  • Available – 以 1K 大小的块所表示的可用空间的数量。
  • Use% – 文件系统中已使用的百分比。
  • Mounted on – 已挂载的文件系统的挂载点。

2、以人类友好格式显示文件系统硬盘空间使用情况

在上面的示例中你可能已经注意到了,它使用 1K 大小的块为单位来表示使用情况,如果你以人类友好格式来显示它们,可以使用 -h 标志。

$ df -h
Filesystem Size Used Avail Use% Mounted on
dev 3.9G 0 3.9G 0% /dev
run 3.9G 1.1M 3.9G 1% /run
/dev/sda2 457G 409G 25G 95% /
tmpfs 3.9G 27M 3.9G 1% /dev/shm
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 3.9G 12M 3.9G 1% /tmp
/dev/loop0 83M 83M 0 100% /var/lib/snapd/snap/core/4327
/dev/sda1 93M 55M 32M 64% /boot
tmpfs 789M 28K 789M 1% /run/user/1000

现在,在 Size 列和 Avail 列,使用情况是以 GB 和 MB 为单位来显示的。

3、仅以 MB 为单位来显示文件系统磁盘空间使用情况

如果仅以 MB 为单位来显示文件系统磁盘空间使用情况,使用 -m 标志。

$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
dev 3939 0 3939 0% /dev
run 3945 2 3944 1% /run
/dev/sda2 467212 418742 24716 95% /
tmpfs 3945 26 3920 1% /dev/shm
tmpfs 3945 0 3945 0% /sys/fs/cgroup
tmpfs 3945 12 3933 1% /tmp
/dev/loop0 83 83 0 100% /var/lib/snapd/snap/core/4327
/dev/sda1 93 55 32 64% /boot
tmpfs 789 1 789 1% /run/user/1000

4、列出节点而不是块的使用情况

如下所示,我们可以通过使用 -i 标记来列出节点而不是块的使用情况。

$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
dev 1008304 439 1007865 1% /dev
run 1009720 649 1009071 1% /run
/dev/sda2 30392320 844035 29548285 3% /
tmpfs 1009720 86 1009634 1% /dev/shm
tmpfs 1009720 18 1009702 1% /sys/fs/cgroup
tmpfs 1009720 3008 1006712 1% /tmp
/dev/loop0 12829 12829 0 100% /var/lib/snapd/snap/core/4327
/dev/sda1 25688 390 25298 2% /boot
tmpfs 1009720 29 1009691 1% /run/user/1000

5、显示文件系统类型

使用 -T 标志显示文件系统类型。

$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
dev devtmpfs 4033216 0 4033216 0% /dev
run tmpfs 4038880 1120 4037760 1% /run
/dev/sda2 ext4 478425016 428790896 25308436 95% /
tmpfs tmpfs 4038880 31300 4007580 1% /dev/shm
tmpfs tmpfs 4038880 0 4038880 0% /sys/fs/cgroup
tmpfs tmpfs 4038880 11984 4026896 1% /tmp
/dev/loop0 squashfs 84096 84096 0 100% /var/lib/snapd/snap/core/4327
/dev/sda1 ext4 95054 55724 32162 64% /boot
tmpfs tmpfs 807776 28 807748 1% /run/user/1000

正如你所见,现在出现了显示文件系统类型的额外的列(从左数的第二列)。

6、仅显示指定类型的文件系统

我们可以限制仅列出某些文件系统。比如,只列出 ext4 文件系统。我们使用 -t 标志。

$ df -t ext4
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 478425016 428790896 25308436 95% /
/dev/sda1 95054 55724 32162 64% /boot

看到了吗?这个命令仅显示了 ext4 文件系统的磁盘空间使用情况。

7、不列出指定类型的文件系统

有时,我们可能需要从结果中去排除指定类型的文件系统。我们可以使用 -x 标记达到我们的目的。

$ df -x ext4
Filesystem 1K-blocks Used Available Use% Mounted on
dev 4033216 0 4033216 0% /dev
run 4038880 1120 4037760 1% /run
tmpfs 4038880 26116 4012764 1% /dev/shm
tmpfs 4038880 0 4038880 0% /sys/fs/cgroup
tmpfs 4038880 11984 4026896 1% /tmp
/dev/loop0 84096 84096 0 100% /var/lib/snapd/snap/core/4327
tmpfs 807776 28 807748 1% /run/user/1000

上面的命令列出了除 ext4 类型以外的全部文件系统。

8、显示一个目录的磁盘使用情况

去显示某个目录的硬盘空间使用情况以及它的挂载点,例如 /home/sk/ 目录,可以使用如下的命令:

$ df -hT /home/sk/
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 457G 409G 25G 95% /

这个命令显示文件系统类型、以人类友好格式显示已使用和可用磁盘空间、以及它的挂载点。如果你不想去显示文件系统类型,只需要忽略 -t 标志即可。

更详细的使用情况,请参阅 man 手册页。

$ man df

今天就到此这止!我希望对你有用。还有更多更好玩的东西即将奉上。请继续关注!

再见!


via: https://www.ostechnix.com/the-df-command-tutorial-with-examples-for-beginners/

作者:SK 选题:lujun9972 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

netplan 是一个命令行工具,用于在某些 Linux 发行版上配置网络。

多年以来 Linux 管理员和用户们以相同的方式配置他们的网络接口。例如,如果你是 Ubuntu 用户,你能够用桌面 GUI 配置网络连接,也可以在 /etc/network/interfaces 文件里配置。配置相当简单且可以奏效。在文件中配置看起来就像这样:

auto enp10s0
iface enp10s0 inet static
address 192.168.1.162
netmask 255.255.255.0
gateway 192.168.1.100
dns-nameservers 1.0.0.1,1.1.1.1

保存并关闭文件。使用命令重启网络:

sudo systemctl restart networking

或者,如果你使用不带 systemd 的发行版,你可以通过老办法来重启网络:

sudo /etc/init.d/networking restart

你的网络将会重新启动,新的配置将会生效。

这就是多年以来的做法。但是现在,在某些发行版上(例如 Ubuntu Linux 18.04),网络的配置与控制发生了很大的变化。不需要那个 interfaces 文件和 /etc/init.d/networking 脚本,我们现在转向使用 Netplan。Netplan 是一个在某些 Linux 发行版上配置网络连接的命令行工具。Netplan 使用 YAML 描述文件来配置网络接口,然后,通过这些描述为任何给定的呈现工具生成必要的配置选项。

我将向你展示如何在 Linux 上使用 Netplan 配置静态 IP 地址和 DHCP 地址。我会在 Ubuntu Server 18.04 上演示。有句忠告,你创建的 .yaml 文件中的缩进必须保持一致,否则将会失败。你不用为每行使用特定的缩进间距,只需保持一致就行了。

新的配置文件

打开终端窗口(或者通过 SSH 登录进 Ubuntu 服务器)。你会在 /etc/netplan 文件夹下发现 Netplan 的新配置文件。使用 cd /etc/netplan 命令进入到那个文件夹下。一旦进到了那个文件夹,也许你就能够看到一个文件:

01-netcfg.yaml

你可以创建一个新的文件或者是编辑默认文件。如果你打算修改默认文件,我建议你先做一个备份:

sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak

备份好后,就可以开始配置了。

网络设备名称

在你开始配置静态 IP 之前,你需要知道设备名称。要做到这一点,你可以使用命令 ip a,然后找出哪一个设备将会被用到(图 1)。

 title=

图 1:使用 ip a 命令找出设备名称

我将为 ens5 配置一个静态的 IP。

配置静态 IP 地址

使用命令打开原来的 .yaml 文件:

sudo nano /etc/netplan/01-netcfg.yaml

文件的布局看起来就像这样:

network:
    Version: 2
    Renderer: networkd
    ethernets:
       DEVICE_NAME:
          Dhcp4: yes/no
          Addresses: [IP/NETMASK]
          Gateway: GATEWAY
          Nameservers:
             Addresses: [NAMESERVER, NAMESERVER]

其中:

  • DEVICE_NAME 是需要配置设备的实际名称。
  • yes/no 代表是否启用 dhcp4。
  • IP 是设备的 IP 地址。
  • NETMASK 是 IP 地址的掩码。
  • GATEWAY 是网关的地址。
  • NAMESERVER 是由逗号分开的 DNS 服务器列表。

这是一份 .yaml 文件的样例:

network:
    version: 2
    renderer: networkd
    ethernets:
       ens5:
       dhcp4: no
       addresses: [192.168.1.230/24]
       gateway4: 192.168.1.254
       nameservers:
          addresses: [8.8.4.4,8.8.8.8]

编辑上面的文件以达到你想要的效果。保存并关闭文件。

注意,掩码已经不用再配置为 255.255.255.0 这种形式。取而代之的是,掩码已被添加进了 IP 地址中。

测试配置

在应用改变之前,让我们测试一下配置。为此,使用命令:

sudo netplan try

上面的命令会在应用配置之前验证其是否有效。如果成功,你就会看到配置被接受。换句话说,Netplan 会尝试将新的配置应用到运行的系统上。如果新的配置失败了,Netplan 会自动地恢复到之前使用的配置。成功后,新的配置就会被使用。

应用新的配置

如果你确信配置文件没有问题,你就可以跳过测试环节并且直接使用新的配置。它的命令是:

sudo netplan apply

此时,你可以使用 ip a 看看新的地址是否正确。

配置 DHCP

虽然你可能不会配置 DHCP 服务,但通常还是知道比较好。例如,你也许不知道网络上当前可用的静态 IP 地址是多少。你可以为设备配置 DHCP,获取到 IP 地址,然后将那个地址重新配置为静态地址。

在 Netplan 上使用 DHCP,配置文件看起来就像这样:

network:
    version: 2
    renderer: networkd
    ethernets:
       ens5:
       Addresses: []
       dhcp4: true
       optional: true

保存并退出。用下面命令来测试文件:

sudo netplan try

Netplan 应该会成功配置 DHCP 服务。这时你可以使用 ip a 命令得到动态分配的地址,然后重新配置静态地址。或者,你可以直接使用 DHCP 分配的地址(但看看这是一个服务器,你可能不想这样做)。

也许你有不只一个的网络接口,你可以命名第二个 .yaml 文件为 02-netcfg.yaml 。Netplan 会按照数字顺序应用配置文件,因此 01 会在 02 之前使用。根据你的需要创建多个配置文件。

就是这些了

不管怎样,那些就是所有关于使用 Netplan 的东西了。虽然它对于我们习惯性的配置网络地址来说是一个相当大的改变,但并不是所有人都用的惯。但这种配置方式值得一提……因此你会适应的。

在 Linux Foundation 和 edX 上通过 “Introduction to Linux” 课程学习更多关于 Linux 的内容。


via: https://www.linux.com/learn/intro-to-linux/2018/9/how-use-netplan-network-configuration-tool-linux

作者:Jack Wallen 选题:lujun9972 译者:LuuMing 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Linux 上的开发工具如此之多,以至于会担心找不到恰好适合你的。

Linux 已经成为工作、娱乐和个人生活等多个领域的支柱,人们已经越来越离不开它。在 Linux 的帮助下,技术的变革速度超出了人们的想象,Linux 开发的速度也以指数规模增长。因此,越来越多的开发者也不断地加入开源和学习 Linux 开发地潮流当中。在这个过程之中,合适的工具是必不可少的,可喜的是,随着 Linux 的发展,大量适用于 Linux 的开发工具也不断成熟。甚至可以说,这样的工具已经多得有点惊人。

为了选择更合适自己的开发工具,缩小选择范围是很必要的。但是这篇文章并不会要求你必须使用某个工具,而只是缩小到五个工具类别,然后对每个类别提供一个例子。然而,对于大多数类别,都会有不止一种选择。下面我们来看一下。

容器

放眼于现实,现在已经是容器的时代了。容器既及其容易部署,又可以方便地构建开发环境。如果你针对的是特定的平台的开发,将开发流程所需要的各种工具都创建到容器映像中是一种很好的方法,只要使用这一个容器映像,就能够快速启动大量运行所需服务的实例。

一个使用容器的最佳范例是使用 Docker,使用容器(或 Docker)有这些好处:

  • 开发环境保持一致
  • 部署后即可运行
  • 易于跨平台部署
  • Docker 映像适用于多种开发环境和语言
  • 部署单个容器或容器集群都并不繁琐

通过 Docker Hub,几乎可以找到适用于任何平台、任何开发环境、任何服务器、任何服务的映像,几乎可以满足任何一种需求。使用 Docker Hub 中的映像,就相当于免除了搭建开发环境的步骤,可以直接开始开发应用程序、服务器、API 或服务。

Docker 在所有 Linux 平台上都很容易安装,例如可以通过终端输入以下命令在 Ubuntu 上安装 Docker:

sudo apt-get install docker.io

Docker 安装完毕后,就可以从 Docker 仓库中拉取映像,然后开始开发和部署了(如下图)。

 title=

图 1: Docker 镜像准备部署

版本控制工具

如果你正在开发一个大型项目,又或者参与团队开发,版本控制工具是必不可少的,它可以用于记录代码变更、提交代码以及合并代码。如果没有这样的工具,项目几乎无法妥善管理。在 Linux 系统上,GitGitHub 的易用性和流行程度是其它版本控制工具无法比拟的。如果你对 Git 和 GitHub 还不太熟悉,可以简单理解为 Git 是在本地计算机上安装的版本控制系统,而 GitHub 则是用于上传和管理项目的远程存储库。 Git 可以安装在大多数的 Linux 发行版上。例如在基于 Debian 的系统上,只需要通过以下这一条简单的命令就可以安装:

sudo apt-get install git

安装完毕后,就可以使用 Git 来实施版本控制了(如下图)。

 title=

图 2:Git 已经安装,可以用于很多重要任务

Github 会要求用户创建一个帐户。用户可以免费使用 GitHub 来管理非商用项目,当然也可以使用 GitHub 的付费模式(更多相关信息,可以参阅价格矩阵)。

文本编辑器

如果没有文本编辑器,在 Linux 上开发将会变得异常艰难。当然,文本编辑器之间孰优孰劣,具体还是要取决于开发者的需求。对于文本编辑器,有人可能会使用 vim、emacs 或 nano,也有人会使用带有 GUI 的编辑器。但由于重点在于开发,我们需要的是一种能够满足开发人员需求的工具。不过我首先要说,vim 对于开发人员来说确实是一个利器,但前提是要对 vim 非常熟悉,在这种前提下,vim 能够满足你的所有需求,甚至还能给你更好的体验。然而,对于一些开发者(尤其是刚开始接触 Linux 的新手)来说,这不仅难以帮助他们快速达成需求,甚至还会是一个需要逾越的障碍。考虑到这篇文章的目标是帮助 Linux 的新手(而不仅仅是为各种编辑器的死忠粉宣传他们拥护的编辑器),我更倾向于使用 GUI 编辑器。

就文本编辑器而论,选择 Bluefish 一般不会有错。 Bluefish 可以从大部分软件库中安装,它支持项目管理、远程文件多线程操作、搜索和替换、递归打开文件、侧边栏、集成 make/lint/weblint/xmllint、无限制撤销/重做、在线拼写检查、自动恢复、全屏编辑、语法高亮(如下图)、多种语言等等。

 title=

图 3:运行在 Ubuntu 18.04 上的 Bluefish

IDE

集成开发环境 Integrated Development Environment (IDE)是包含一整套全面的工具、可以实现一站式功能的开发环境。 开发者除了可以使用 IDE 编写代码,还可以编写文档和构建软件。在 Linux 上也有很多适用的 IDE,其中 Geany 就包含在标准软件库中,它对用户非常友好,功能也相当强大。 Geany 具有语法高亮、代码折叠、自动完成,构建代码片段、自动关闭 XML 和 HTML 标签、调用提示、支持多种文件类型、符号列表、代码导航、构建编译,简单的项目管理和内置的插件系统等强大功能。

Geany 也能在系统上轻松安装,例如执行以下命令在基于 Debian 的 Linux 发行版上安装 Geany:

sudo apt-get install geany

安装完毕后,就可以快速上手这个易用且强大的 IDE 了(如下图)。

 title=

图 4:Geany 可以作为你的 IDE

文本比较工具

有时候会需要比较两个文件的内容来找到它们之间的不同之处,它们可能是同一文件的两个不同副本(有一个经过编译,而另一个没有)。这种情况下,你肯定不想要凭借肉眼来找出差异,而是想要使用像 Meld 这样的工具。 Meld 是针对开发者的文本比较和合并工具,可以使用 Meld 来发现两个文件之间的差异。虽然你可以使用命令行中的文本比较工具,但就效率而论,Meld 无疑更为优秀。

Meld 可以打开两个文件进行比较,并突出显示文件之间的差异之处。 Meld 还允许用户从两个文件的其中一方合并差异(下图显示了 Meld 同时打开两个文件)。

 title=

图 5: 以简单差异的模式比较两个文件

Meld 也可以通过大多数标准的软件库安装,在基于 Debian 的系统上,执行以下命令就可以安装:

sudo apt-get install meld

高效地工作

以上提到的五个工具除了帮助你完成工作,而且有助于提高效率。尽管适用于 Linux 开发者的工具有很多,但对于以上几个类别,你最好分别使用一个对应的工具。


via: https://www.linux.com/learn/intro-to-linux/2018/8/5-essential-tools-linux-development

作者:Jack Wallen 选题:lujun9972 译者:HankChow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出