Jack Wallen 发布的文章

我将向你介绍让 Git 的启动、运行,并和 GitHub 一起使用的基础知识。

如果你是一个开发者,那你应该熟悉许多开发工具。你已经花了多年时间来学习一种或者多种编程语言并打磨你的技巧。你可以熟练运用图形工具或者命令行工具开发。在你看来,没有任何事可以阻挡你。你的代码, 好像你的思想和你的手指一样,将会创建一个优雅的,完美评价的应用程序,并会风靡世界。

然而,如果你和其他人共同开发一个项目会发生什么呢?或者,你开发的应用程序变地越来越大,下一步你将如何去做?如果你想成功地和其他开发者合作,你定会想用一个分布式版本控制系统。使用这样一个系统,合作开发一个项目变得非常高效和可靠。这样的一个系统便是 Git。还有一个叫 GitHub 的方便的存储仓库,用来存储你的项目代码,这样你的团队可以检查和修改代码。

我将向你介绍让 Git 的启动、运行,并和 GitHub 一起使用的基础知识,可以让你的应用程序的开发可以提升到一个新的水平。我将在 Ubuntu 18.04 上进行演示,因此如果您选择的发行版本不同,您只需要修改 Git 安装命令以适合你的发行版的软件包管理器。

Git 和 GitHub

第一件事就是创建一个免费的 GitHub 账号,打开 GitHub 注册页面,然后填上需要的信息。完成这个之后,你就注备好开始安装 Git 了(这两件事谁先谁后都可以)。

安装 Git 非常简单,打开一个命令行终端,并输入命令:

sudo apt install git-all

这将会安装大量依赖包,但是你将了解使用 Git 和 GitHub 所需的一切。

附注:我使用 Git 来下载程序的安装源码。有许多时候,内置的软件管理器不提供某个软件,除了去第三方库中下载源码,我经常去这个软件项目的 Git 主页,像这样克隆:

git clone ADDRESS

“ADDRESS” 就是那个软件项目的 Git 主页。这样我就可以确保自己安装那个软件的最新发行版了。

创建一个本地仓库并添加一个文件

下一步就是在你的电脑里创建一个本地仓库(本文称之为 newproject,位于 ~/ 目录下),打开一个命令行终端,并输入下面的命令:

cd ~/
mkdir newproject
cd newproject

现在你需要初始化这个仓库。在 ~/newproject 目录下,输入命令 git init,当命令运行完,你就可以看到一个刚刚创建的空的 Git 仓库了(图1)。

 title=

图 1: 初始化完成的新仓库

下一步就是往项目里添加文件。我们在项目根目录(~/newproject)输入下面的命令:

touch readme.txt

现在项目里多了个空文件。输入 git status 来验证 Git 已经检测到多了个新文件(图2)。

 title=

图 2: Git 检测到新文件readme.txt

即使 Git 检测到新的文件,但它并没有被真正的加入这个项目仓库。为此,你要输入下面的命令:

git add readme.txt

一旦完成这个命令,再输入 git status 命令,可以看到,readme.txt 已经是这个项目里的新文件了(图3)。

 title=

图 3: 我们的文件已经被添加进临时环境

第一次提交

当新文件添加进临时环境之后,我们现在就准备好创建第一个 提交 commit 了。什么是提交呢?简单的说,一个提交就是你更改的项目的文件的记录。创建一个提交也是非常简单的。但是,为提交包含一个描述信息非常重要。通过这样做,你可以添加有关该提交包含的内容的注释,比如你对文件做出的何种修改。然而,在这样做之前,我们需要告知 Git 我们的账户,输入以下命令:

git config --global user.email EMAIL
git config --global user.name “FULL NAME”

“EMAIL” 即你的 email 地址,“FULL NAME” 则是你的姓名。

现在你可以通过以下命令创建一个提交:

git commit -m “Descriptive Message”

“Descriptive Message” 即为你的提交的描述性信息。比如,当你第一个提交是提交一个 readme.txt 文件,你可以这样提交:

git commit -m “First draft of readme.txt file”

你可以看到输出表明一个文件已经修改,并且,为 readme.txt 创建了一个新的文件模式(图4)

 title=

图4:提交成功

创建分支并推送至 GitHub

分支是很重要的,它允许你在项目状态间中移动。假如,你想给你的应用创建一个新的特性。为了这样做,你创建了个新分支。一旦你完成你的新特性,你可以把这个新分支合并到你的主分支中去,使用以下命令创建一个新分支:

git checkout -b BRANCH

“BRANCH” 即为你新分支的名字,一旦执行完命令,输入 git branch 命令来查看是否创建了新分支(图5)

 title=

图5:名为 featureX 的新分支

接下来,我们需要在 GitHub 上创建一个仓库。 登录 GitHub 帐户,请单击帐户主页上的“New Repository”按钮。 填写必要的信息,然后单击 “Create repository”(图6)。

 title=

图6:在 GitHub 上新建一个仓库

在创建完一个仓库之后,你可以看到一个用于推送本地仓库的地址。若要推送,返回命令行窗口(~/newproject 目录中),输入以下命令:

git remote add origin URL
git push -u origin master

“URL” 即为我们 GitHub 上新建的仓库地址。

系统会提示您,输入 GitHub 的用户名和密码,一旦授权成功,你的项目将会被推送到 GitHub 仓库中。

拉取项目

如果你的同事改变了你们 GitHub 上项目的代码,并且已经合并那些更改,你可以拉取那些项目文件到你的本地机器,这样,你系统中的文件就可以和远程用户的文件保持匹配。你可以输入以下命令来做这件事(~/newproject 在目录中),

git pull origin master

以上的命令可以拉取任何新文件或修改过的文件到你的本地仓库。

基础

这就是从命令行使用 Git 来处理存储在 GitHub 上的项目的基础知识。 还有很多东西需要学习,所以我强烈建议你使用 man gitman git-pushman git-pull 命令来更深入地了解 git 命令可以做什么。

开发快乐!

了解更多关于 Linux 的 内容,请访问来自 Linux 基金会和 edX 的免费的 Introduction to Linux课程。


via: https://www.linux.com/learn/intro-to-linux/2018/7/introduction-using-git

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

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

Linux 桌面版和服务器版具有卓越的安全性。然而这并不意味着你可以放松警惕。你应该一直认为你的数据总是很快就会被破坏。也就是说,你可能需要使用各种加密工具。比如 GnuPG,它可以让你加密和解密文件等更多功能。GnuPG 的一个问题是一些用户不想在命令行输入那么复杂的命令。如果是这样的话,你可以转向桌面文件管理器。许多 Linux 桌面版包含了简易的加密和解密文件的功能,如果这种功能没有内置,那么也是很容易添加的。

我将引导你完成从三个流行的 Linux 文件管理器中对文件进行加密和解密过程:

  • Nautilus (即 GNOME Files)
  • Dolphin
  • Thunar

安装 GnuPG

在我们讨论如何处理这个问题之前,我们必须确保你的系统包含了必要的基本组件 —— GnuPG。大多数发行版本都包含 GnuPG。 在某些偶然情况下,你使用的是没有自带 GnuPG 的发行版,以下是安装方法:

  • 基于 Ubuntu 的发行版: sudo apt install gnupg
  • 基于 Fedora 的发行版: sudo yum install gnupg
  • openSUSE: sudo zypper in gnupg
  • 基于 Arch 的发行版:sudo pacman -S gnupg

无论你是刚刚安装了 GnuPG,还是默认安装的,你都必须创建一个 GPG 密钥才能使用。每个桌面版都使用不同的 GUI 工具完成这个工作(或者甚至根本没有包含一个完成这个任务的 GUI 工具),所以让我们从命令行中创建这个密钥。打开终端窗口并输入以下指令:

gpg --gen-key

然后,你将被要求回答以下问题。除非你有充分的理由,否则你可以接受默认值:

  • 你想要哪种密钥?
  • 你想要多长的密钥?
  • 密钥有效期?

一旦你回答了这些问题,输入 y 来表示答案是正确的。接下来你需要提供以下信息:

  • 真实姓名。
  • Email 地址。
  • 备注。

完成上述操作后,然后在提示的时候输入 O (即 ok)。然后,你将被要求为新密钥输入一个密码。一旦系统收集到了足够的熵(你需要在桌面上做一些工作才能做到这一点,LCTT 译注:比如随便敲击键盘),你的密钥就会被创建,然后你就可以开始工作了。

让我们看看如何从文件管理器中加密/解密文件:

Nautilus

让我们从默认的 GNOME 文件管理器开始,因为它是最简单的。Nautilus 不需要额外安装什么或额外的工作就可以从精心设计的界面内加密/解密文件。一旦你创建完 gpg 密钥后,就可以打开文件管理器,导航到包含要加密的文件的目录,右键单击要加密的文件,然后从菜单中选择 “Encrypt” (图1)。

 title=

图1:从 Nautilus 中加密文件。

你将被要求选择一个收件人(或者收件人列表 —— 图2)。注意:收件人将是那些你已经导入了公钥的用户。选择所需的密钥,然后从签名信息下拉列表中选择你的密钥(电子邮件地址)。

 title=

图2:选择收件人和签名者。

注意:你还可以选择仅使用密码来加密文件。如果文件将保留在你的本地机器上,这一点非常重要(稍后将详细介绍)。一旦你设置好加密后,单击 “OK” 并(在提示时)输入 gpg 密钥的密码。文件将被加密(现在文件名以 .gpg 结尾)并保存在工作目录中。现在你可以将加密后的文件发送给在加密过程中已选择的收件人。

比如说(有你的公钥的)某人已经给你发送了一个加密文件。保存该文件,打开文件管理器,导航到该文件所在的目录,右击这个加密文件,选择 “Open With Decrypt File”,给文件一个新名称(不带 .gpg 的扩展名),然后单击“Save”。当提示时,输入你的 gpg 密钥的密码,该文件就会被解密并准备使用。

Dolphin

在 KDE 前端,必须安装一个软件包才能使用 Dolphin 文件管理器进行加密/解密。 登录到你的 KDE 桌面,打开终端窗口,然后输入以下命令(我正在使用 Neon 进行演示。如果你的发行版不是基于 Ubuntu 的,则必须相应地更改命令):

sudo apt install kgpg

安装完毕后,注销并重新登录 KDE 桌面。 你可以打开 Dolphin 并右键单击要加密的文件。 由于这是你第一次使用 kgpg,因此你必须完成快速设置向导(不言自明)。当完成该向导后,你可以返回该文件,右键单击它(图3),然后选择 Encrypt File。

 title=

图3:在 Dolphin 中加密文件。

系统将提示你选择用于加密的密钥(图4)。 进行选择并单击 “OK”。 该文件将被加密,而且你已准备好将其发送给收件人。

注意:使用 KDE 的 Dolphin 文件管理器市,你无法仅使用密码加密。

 title=

图4:选择要加密的收件人。

如果你收到来自有你的公钥的用户的加密文件(或者你有一个自己加密的文件),请打开 Dolphin,导航到相关文件,双击该文件,为该文件指定一个新名称 ,键入加密密码并单击 “OK”。 你现在可以读取到新解密的文件。 如果你使用自己的密钥加密了该文件,则不会提示你键入密码(因为它已经被存储了)。

Thunar

Thunar 文件管理器有点棘手。 没有任何额外的软件包可供安装;相反,你需要为了加密创建新的自定义操作。完成此操作后,你将能够在文件管理器中执行此操作。

要创建自定义操作,请打开 Thunar 文件管理器,然后单击 “Edit > Configure Custom Actions”。 在所得到的窗口中,单击 “+” 按钮(图5)并为加密操作输入以下内容:

  • 名称:加密
  • 描述:文件加密
  • 命令:gnome-terminal -x gpg --encrypt --recipient %f

单击 “OK” 以保存此操作。

 title=

图5:在Thunar中创建自定义操作。

注意:如果 gnome-terminal 不是你的默认终端,请替换该命令以打开你的默认终端。

你还可以创建仅使用密码(而非密钥)加密的操作。 为此,该操作的详细动作将会是以下内容:

  • 名称:加密密码
  • 说明:仅使用密码加密
  • 命令:gnome-terminal -x gpg -c %f

你不需要为解密过程创建一个自定义操作,因为 Thunar 已经知道如何处理一个加密文件。 要解密文件,只需(在 Thunar 中)右键单击它,选择 “Open With Decrypt File”,为解密文件命名,然后(在提示时)键入加密密码。 Viola,你的加密文件已被解密并可以使用。

一个警告

请注意:如果你使用自己的密钥加密自己的文件,则无需输入加密密码来解密它们(因为你的公钥已存储)。 但是,如果你收到(拥有你的公钥的)其他人的文件,则需要输入你的密码。 如果你想要存储自己的加密文件,而不是使用密钥来加密它们,请使用仅使用密码加密。 Nautilus 和Thunar(但不是 KDE)可以做到这一点。 通过选择密码加密(通过密钥加密),当你解密文件时,它将始终提示你输入密码。

其他文件管理器

还有很多其它的文件管理器,它们中的一些可以使用加密,有些则不能。 你很有可能正在使用这三种工具中的一种,因此不仅可以将加密 / 解密添加到上下文菜单,而且是非常容易。 尝试一下,看看它是否会使加密和解密的过程变得更容易。

从 Linux 基金会和 edX 免费提供的“Linux 介绍”课程了解更多关于 Linux 的信息。


via: https://www.linux.com/learn/intro-to-linux/2018/3/how-encrypt-files-within-file-manager

作者:JACK WALLEN 译者:Auk7f7 校对:wxy

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

对于 Linux 管理员来说,检查系统内存用量是一个重要的技能。Jack 给出了解决这个问题的五种不同方式。

Linux 操作系统包含大量工具,所有这些工具都可以帮助你管理系统。从简单的文件和目录工具到非常复杂的安全命令,在 Linux 中没有多少是你做不了的。而且,尽管普通桌面用户可能不需要在命令行熟悉这些工具,但对于 Linux 管理员来说,它们是必需的。为什么?首先,你在某些时候不得不使用没有 GUI 的 Linux 服务器。其次,命令行工具通常比 GUI 替代工具提供更多的功能和灵活性。

确定内存使用情况是你可能需要的技能,尤其是某个应用程序变得异常和占用系统内存时。当发生这种情况时,知道有多种工具可以帮助你进行故障排除十分方便的。或者,你可能需要收集有关 Linux 交换分区的信息,或者有关安装的内存的详细信息?对于这些也有相应的命令。让我们深入了解各种 Linux 命令行工具,以帮助你检查系统内存使用情况。这些工具并不是非常难以使用,在本文中,我将向你展示五种不同的方法来解决这个问题。

我将在 Ubuntu 18.04 服务器平台上进行演示,但是你应该在你选择的发行版中找到对应的所有命令。更妙的是,你不需要安装任何东西(因为大多数这些工具都包含 Linux 系统中)。

话虽如此,让我们开始工作吧。

top

我想从最常用的工具开始。top 命令提供正在运行的系统的实时动态视图,它检查每个进程的内存使用情况。这非常重要,因为你可以轻松地看到同一命令的多个示例消耗不同的内存量。虽然你无法在没有显示器的服务器上看到这种情况,但是你已经注意到打开 Chrome 使你的系统速度变慢了。运行 top 命令以查看 Chrome 有多个进程在运行(每个选项卡一个 - 图 1)。

 title=

图1:top 命令中出现多个 Chrome 进程。

Chrome 并不是唯一显示多个进程的应用。你看到图 1 中的 Firefox 了吗?那是 Firefox 的主进程,而 Web Content 进程是其打开的选项卡。在输出的顶部,你将看到系统统计信息。在我的机器上(System76 Leopard Extreme),我总共有 16GB 可用 RAM,其中只有超过 10GB 的 RAM 正在使用中。然后,你可以整理该列表,查看每个进程使用的内存百分比。

top 最好的地方之一就是发现可能已经失控的服务的进程 ID 号(PID)。有了这些 PID,你可以对有问题的任务进行故障排除(或 kill)。

如果你想让 top 显示更友好的内存信息,使用命令 top -o %MEM,这会使 top 按进程所用内存对所有进程进行排序(图 2)。

 title=

图 2:在 top 命令中按使用内存对进程排序

top 命令还为你提供有关使用了多少交换空间的实时更新。

free

然而有时候,top 命令可能不能满足你的需求。你可能只需要查看系统的可用和已用内存。对此,Linux 还有 free 命令。free 命令显示:

  • 可用和已使用的物理内存总量
  • 系统中交换内存的总量
  • 内核使用的缓冲区和缓存

在终端窗口中,输入 free 命令。它的输出不是实时的,相反,你将获得的是当前空闲和已用内存的即时快照(图 3)。

 title=

图 3 :free 命令的输出简单明了。

当然,你可以通过添加 -m 选项来让 free 显示得更友好一点,就像这样:free -m。这将显示内存的使用情况,以 MB 为单位(图 4)。

 title=

图 4:free 命令以一种更易于阅读的形式输出。

当然,如果你的系统是很新的,你将希望使用 -g 选项(以 GB 为单位),比如 free -g

如果你需要知道内存总量,你可以添加 -t 选项,比如:free -mt。这将简单地计算每列中的内存总量(图 5)。

 title=

图 5:为你提供空闲的内存列。

vmstat

另一个非常方便的工具是 vmstat。这个特殊的命令是一个报告虚拟内存统计信息的小技巧。vmstat 命令将报告关于:

  • 进程
  • 内存
  • 分页
  • 阻塞 IO
  • 中断
  • 磁盘
  • CPU

使用 vmstat 的最佳方法是使用 -s 选项,如 vmstat -s。这将在单列中报告统计信息(这比默认报告更容易阅读)。vmstat 命令将提供比你需要的更多的信息(图 6),但更多的总是更好的(在这种情况下)。

 title=

图 6:使用 vmstat 命令来检查内存使用情况。

dmidecode

如果你想找到关于已安装的系统内存的详细信息,该怎么办?为此,你可以使用 dmidecode 命令。这个特殊的工具是 DMI 表解码器,它将系统的 DMI 表内容转储成人类可读的格式。如果你不清楚 DMI 表是什么,那么可以这样说,它可以用来描述系统的构成(以及系统的演变)。

要运行 dmidecode 命令,你需要 sudo 权限。因此输入命令 sudo dmidecode -t 17。该命令的输出(图 7)可能很长,因为它显示所有内存类型设备的信息。因此,如果你无法上下滚动,则可能需要将该命令的输出发送到一个文件中,比如:sudo dmidecode -t 17> dmi_infoI,或将其传递给 less 命令,如 sudo dmidecode | less

 title=

图 7:dmidecode 命令的输出。

/proc/meminfo

你可能会问自己:“这些命令从哪里获取这些信息?”在某些情况下,它们从 /proc/meminfo 文件中获取。猜到了吗?你可以使用命令 less /proc/meminfo 直接读取该文件。通过使用 less 命令,你可以在长长的输出中向上和向下滚动,以准确找到你需要的内容(图 8)。

 title=

图 8:less /proc/meminfo 命令的输出。

关于 /proc/meminfo 你应该知道:这不是一个真实的文件。相反 /proc/meminfo 是一个虚拟文件,包含有关系统的实时动态信息。特别是,你需要检查以下值:

  • 全部内存(MemTotal
  • 空闲内存(MemFree
  • 可用内存(MemAvailable
  • 缓冲区(Buffers
  • 文件缓存(Cached
  • 交换缓存(SwapCached
  • 全部交换区(SwapTotal
  • 空闲交换区(SwapFree

如果你想使用 /proc/meminfo,你可以连接 egrep 命令使用它:egrep --color'Mem | Cache | Swap'/proc/meminfo。这将生成一个易于阅读的列表,其中包含 MemCacheSwap 等内容的条目将是彩色的(图 9)。

 title=

图 9:让 /proc/meminfo 更容易阅读。

继续学习

你要做的第一件事就是阅读每个命令的手册页(例如 man topman freeman vmstatman dmidecode)。从命令的手册页开始,对于如何在 Linux 上使用一个工具,它总是一个很好的学习方法。

通过 Linux 基金会和 edX 的免费 “Linux 简介”课程了解有关 Linux 的更多知识。


via: https://www.linux.com/learn/5-commands-checking-memory-usage-linux

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

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

Linux 提供了所有必要的工具来帮助你确切地发现你的驱动器上剩余多少空间。Jack 在这里展示了如何做。

快速提问:你的驱动器剩余多少剩余空间?一点点还是很多?接下来的提问是:你知道如何找出这些剩余空间吗?如果你碰巧使用的是 GUI 桌面( 例如 GNOME、KDE、Mate、Pantheon 等 ),则任务可能非常简单。但是,当你要在一个没有 GUI 桌面的服务器上查询剩余空间,你该如何去做呢?你是否要为这个任务安装相应的软件工具?答案是绝对不是。在 Linux 中,具备查找驱动器上的剩余磁盘空间的所有工具。事实上,有两个非常容易使用的工具。

在本文中,我将演示这些工具。我将使用 Elementary OS(LCTT译注:Elementary OS 是基于 Ubuntu 精心打磨美化的桌面 Linux 发行版 ),它还包括一个 GUI 方式,但我们将限制自己仅使用命令行。好消息是这些命令行工具随时可用于每个 Linux 发行版。在我的测试系统中,连接了许多的驱动器(内部的和外部的)。使用的命令与连接驱动器的位置无关,仅仅与驱动器是否已经挂载好并且对操作系统可见有关。

言归正传,让我们来试试这些工具。

df

df 命令是我第一个用于在 Linux 上查询驱动器空间的工具,时间可以追溯到 20 世纪 90 年代。它的使用和报告结果非常简单。直到今天,df 还是我执行此任务的首选命令。此命令有几个选项开关,对于基本的报告,你实际上只需要一个选项。该命令是 df -H-H 选项开关用于将 df 的报告结果以人类可读的格式进行显示。df -H 的输出包括:已经使用了的空间量、可用空间、空间使用的百分比,以及每个磁盘连接到系统的挂载点(图 1)。

df output

图 1:Elementary OS 系统上 df -H 命令的输出结果

如果你的驱动器列表非常长并且你只想查看单个驱动器上使用的空间,该怎么办?对于 df 这没问题。我们来看一下位于 /dev/sda1 的主驱动器已经使用了多少空间。为此,执行如下命令:

df -H /dev/sda1

输出将限于该驱动器(图 2)。

disk usage

图 2:一个单独驱动器空间情况

你还可以限制 df 命令结果报告中显示指定的字段。可用的字段包括:

  • source — 文件系统的来源(LCTT译注:通常为一个设备,如 /dev/sda1
  • size — 块总数
  • used — 驱动器已使用的空间
  • avail — 可以使用的剩余空间
  • pcent — 驱动器已经使用的空间占驱动器总空间的百分比
  • target —驱动器的挂载点

让我们显示所有驱动器的输出,仅显示 sizeusedavail 字段。对此的命令是:

df -H --output=size,used,avail

该命令的输出非常简单( 图 3 )。

output

图 3:显示我们驱动器的指定输出

这里唯一需要注意的是我们不知道该输出的来源,因此,我们要把 source 加入命令中:

df -H --output=source,size,used,avail

现在输出的信息更加全面有意义(图 4)。

source

图 4:我们现在知道了磁盘使用情况的来源

du

我们的下一个命令是 du 。 正如您所料,这代表 磁盘使用情况 disk usage du 命令与 df 命令完全不同,因为它报告目录而不是驱动器的空间使用情况。 因此,您需要知道要检查的目录的名称。 假设我的计算机上有一个包含虚拟机文件的目录。 那个目录是 /media/jack/HALEY/VIRTUALBOX 。 如果我想知道该特定目录使用了多少空间,我将运行如下命令:

du -h /media/jack/HALEY/VIRTUALBOX

上面命令的输出将显示目录中每个文件占用的空间(图 5)。

du command

图 5 在特定目录上运行 du 命令的输出

到目前为止,这个命令并没有那么有用。如果我们想知道特定目录的总使用量怎么办?幸运的是,du 可以处理这项任务。对于同一目录,命令将是:

du -sh /media/jack/HALEY/VIRTUALBOX/

现在我们知道了上述目录使用存储空间的总和(图 6)。

space used

图 6:我的虚拟机文件使用存储空间的总和是 559GB

您还可以使用此命令查看父项的所有子目录使用了多少空间,如下所示:

du -h /media/jack/HALEY

此命令的输出见(图 7),是一个用于查看各子目录占用的驱动器空间的好方法。

directories

图 7:子目录的存储空间使用情况

du 命令也是一个很好的工具,用于查看使用系统磁盘空间最多的目录列表。执行此任务的方法是将 du 命令的输出通过管道传递给另外两个命令:sorthead 。下面的命令用于找出驱动器上占用存储空间最大的前 10 个目录:

du -a /media/jack | sort -n -r |head -n 10

输出将以从大到小的顺序列出这些目录(图 8)。

top users

图 8:使用驱动器空间最多的 10 个目录

没有你想像的那么难

查看 Linux 系统上挂载的驱动器的空间使用情况非常简单。只要你将你的驱动器挂载在 Linux 系统上,使用 df 命令或 du 命令在报告必要信息方面都会非常出色。使用 df 命令,您可以快速查看磁盘上总的空间使用量,使用 du 命令,可以查看特定目录的空间使用情况。对于每一个 Linux 系统的管理员来说,这两个命令的结合使用是必须掌握的。

而且,如果你没有注意到,我最近介绍了查看 Linux 上内存使用情况的方法。总之,这些技巧将大力帮助你成功管理 Linux 服务器。

通过 Linux Foundation 和 edX 免费提供的 “Linux 简介” 课程,了解更多有关 Linux 的信息。


via: https://www.linux.com/learn/intro-to-linux/2018/6how-check-disk-space-linux-command-line

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

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

了解这三个 Git 图形客户端工具如何增强你的开发流程。

在 Linux 下工作的人们对 Git 非常熟悉。一个理所当然的原因是,Git 是我们这个星球上最广为人知也是使用最广泛的版本控制工具。不过大多数情况下,Git 需要学习繁杂的终端命令。毕竟,我们的大多数开发工作可能是基于命令行的,那么没理由不以同样的方式与 Git 交互。

但在某些情况下,使用带图形界面的工具可能使你的工作更高效一点(起码对那些更倾向于使用图形界面的人们来说)。那么,有哪些 Git 图形客户端可供选择呢?幸运的是,我们找到一些客户端值得你花费时间和金钱(一些情况下)去尝试一下。在此,我主要推荐三种可以运行在 Linux 操作系统上的 Git 客户端。在这几种中,你可以找到一款满足你所有要求的客户端。

在这里我假设你理解如何使用 Git 和具有 GitHub 类似功能的代码仓库,使用方法我之前讲过了,因此我不再花费时间讲解如何使用这些工具。本篇文章主要是一篇介绍,介绍几种可以用在开发任务中的工具。

提前说明一下:这些工具并不都是免费的,它们中的一些可能需要商业授权。不过,它们都在 Linux 下运行良好并且可以轻而易举的和 GitHub 相结合。

就说这些了,快让我们看看这些出色的 Git 图形客户端吧。

SmartGit

SmartGit 是一个商业工具,不过如果你在非商业环境下使用是免费的。如果你打算在商业环境下使用的话,一个许可证每人每年需要 99 美元,或者 5.99 美元一个月。还有一些其它升级功能(比如 分布式评审 Distributed Reviews 智能同步 SmartSynchronize ),这两个工具每个许可证需要另加 15 美元。你也能通过下载源码或者 deb 安装包进行安装。我在 Ubuntu 18.04 下测试,发现 SmartGit 运行良好,没有出现一点问题。

不过,我们为什么要用 SmartGit 呢?有许多原因,最重要的一点是,SmartGit 可以非常方便的和 GitHub 以及 Subversion 等版本控制工具整合。不需要你花费宝贵的时间去配置各种远程账号,SmartGit 的这些功能开箱即用。SmartGit 的界面(图 1)设计的也很好,整洁直观。

 title=

图 1: SmartGit 帮助简化工作

安装完 SmartGit 后,我马上就用它连接到了我的 GitHub 账户。默认的工具栏是和仓库操作相关联的,非常简洁。推送、拉取、检出、合并、添加分支、cherry pick、撤销、变基、重置 —— 这些 Git 的的流行功能都支持。除了支持标准 Git 和 GitHub 的大部分功能,SmartGit 运行也非常稳定。至少当你在 Ubuntu上使用时,你会觉得这一款软件是专门为 Linux 设计和开发的。

SmartGit 可能是使各个水平的 Git 用户都可以非常轻松的使用 Git,甚至 Git 高级功能的最好工具。为了了解更多 SmartGit 相关知识,你可以查看一下其丰富的文档

GitKraken

GitKraken 是另外一款商业 Git 图形客户端,它可以使你感受到一种绝不会后悔的使用 Git 或者 GitHub 的美妙体验。SmartGit 具有非常简洁的界面,而 GitKraken 拥有非常华丽的界面,它一开始就给你展现了很多特色。GitKraken 有一个免费版(你也可以使用完整版 15 天)。试用期过了,你也可以继续使用免费版,不过不能用于商业用途。

对那些想让其开发工作流发挥最大功效的人们来说,GitKraken 可能是一个比较好的选择。界面上具有的功能包括:可视化交互、可缩放的提交图、拖拽、与 Github、GitLab 和 BitBucked 的无缝整合、简单的应用内任务清单、应用内置的合并工具、模糊查找、支持 Gitflow、一键撤销与重做、快捷键、文件历史与追责、子模块、亮色和暗色主题、Git 钩子支持和 Git LFS 等许多功能。不过用户倍加赞赏的还是精美的界面(图 2)。

 title=

图 2: GitKraken的界面非常出色

除了令人惊艳的图形界面,另一个使 GitKraken 在 Git 图形客户端竞争中脱颖而出的功能是:GitKraken 使得使用多个远程仓库和多套配置变得非常简单。不过有一个告诫,使用 GitKraken 需要花钱(它是专有的)。如果你想商业使用,许可证的价钱如下:

  • 一人一年 49 美元
  • 10 人以上团队,39 美元每人每年
  • 100 人以上团队, 29 美元每人每年

专业版账户不但可以在商业环境使用 Git 相关功能,还可以使用 Glo Boards(GitKraken 的项目管理工具)。Glo Boards 的一个吸引人的功能是可以将数据同步到 GitHub 工单 Issues 。Glo Boards 具有分享功能还具有搜索过滤、问题跟踪、Markdown 支持、附件、@ 功能、清单卡片等许多功能。所有的这些功能都可以在 GitKraken 界面里进行操作。

GitKraken 可以通过 deb 文件或者源码进行安装。

Git Cola

Git Cola 是我们推荐列表中一款自由开源的 Git 图像客户端。不像 GitKraken 和 SmartGit,Git Cola是一款比较难啃的骨头,一款比较实用的 Git 客户端。Git Cola 是用 Python 写成的,使用的是 GTK 界面,因此无论你用的是什么 Linux 发行版和桌面,都可以无缝支持。并且因为它是开源的,你可以在你使用的发行版的包管理器中找到它。因此安装过程无非是打开应用商店,搜索 “Git Cola” 安装即可。你也可以通过下面的命令进行安装:

sudo apt install git-cola

或者

sudo dnf install git-cola

Git Cola 看起来相对比较简单(图 3)。事实上,你无法找到更复杂的东西,因为 Git Cola 是非常基础的。

 title=

图 3:Git Cola 界面是非常简单的

因为 Git Cola 看起来回归自然,所以很多时间你必须同终端打交道。不过这并不是什么难事儿(因为大多数开发人员需要经常使用终端)。Git Cola 包含以下特性:

  • 支持多个子命令
  • 自定义窗口设置
  • 可设置环境变量
  • 语言设置
  • 支持自定义 GUI 设置
  • 支持快捷键

尽管 Git Cola 支持连接到远程仓库,但和像 GitHub 这样的仓库整合看起来也没有 GitKraken 和 SmartGit 直观。不过如果你的大部分工作是在本地进行的,Git Cola 并不失为一个出色的工具。

Git Cola 也带有有一个高级的 DAG(有向无环图)可视化工具,叫做 Git DAG。这个工具可以使你获得分支的可视化展示。你可以独立使用 Git DAG,也可以在 Git Cola 内通过 “view->DAG” 菜单来打开。正是 Git DAG 这个威力巨大的工具使用 Git Cola 跻身于应用商店中 Git 图形客户端前列。

更多的客户端

还有更多的 Git 图形客户端。不过,从上面介绍的这几款中,你已经可以做很多事情了。无论你在寻找一款更有丰富功能的 Git 客户端(不管许可证的话)还是你本身是一名坚定的 GPL 支持者,都可以从上面找到适合自己的一款。

如果想学习更多关于 Linux 的知识,可以通过学习Linux基金会的走进 Linux课程。


via: https://www.linux.com/learn/intro-to-linux/2018/7/three-graphical-clients-git-linux

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

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

Linux 是一个适合每个人的平台。如果你有一份合适的工作,Linux 已经可以满足或超过它的需求,其中一个工作是教育。如果你是一名教师或一名学生,Linux 已经准备好帮助你在几乎任何级别的教育系统领域中畅游。从辅助学习、写作论文、管理课程,到管理整个机构,Linux 已经全部涵盖了。

如果你不确定,请让我介绍一下 Linux 准备好的一些工具。其中一些工具几乎没有学习曲线,而另一些工具则需要一个全面的系统管理员来安装、设置和管理。我们将从简单开始,然后到复杂。

学习辅助工具

每个人的学习方式都有所不同,每个班级都需要不同的学习类型和水平。幸运的是,Linux 有很多学习辅助工具。让我们来看几个例子:

闪卡 —— KWordQuiz(图 1)是适用于 Linux 平台的许多闪卡应用程序之一。KWordQuiz 使用 kvtml 文件格式,你可以下载大量预制的、人们贡献的文件。 KWordQuiz 是 KDE 桌面环境的一部分,但可以安装在其他桌面上(KDE 依赖文件将与闪卡应用程序一起安装)。

语言工具

由于全球化进程,外语已成为教育的重要组成部分。你会发现很多语言工具,包括 Kiten(图 2)—— KDE 桌面的日语汉字浏览器。

如果日文不是你的母语,你可以试试 Jargon Informatique。这本词典完全是法文的,所以如果你对这门语言还不熟悉,你可能要需要 Google 翻译的帮助才能坚持下去。

Writing Aids / Note Taking

Linux 拥有你需要的所有东西比如记录一个主题,撰写那些学期论文。让我们从记笔记开始。如果你熟悉 Microsoft OneNote,你一定会喜欢 BasKet Note Pads。有了这个应用程序,你可以为主题创建 笔记本 basket ,并添加任何东西——注释、链接、图像、交叉引用(到其他笔记本─图 3)、应用程序启动器、从文件加载等等。

你可以创建任意形式的笔记本,可以移动元素来满足你的需求。如果你更喜欢有序的感觉,那么创建一个表状的 basket 来保留那些封装的笔记。

当然,所有 Linux 写作辅助工具都是由 LibreOffice 发展而来。LibreOffice 是大多数 Linux 发行版默认的办公套件,它能打开文本文档、电子表格、演示文稿、数据库、公式和绘图。

在教育环境中使用 LibreOffice 的一个警告是,你很可能不得不将文档以 MS Office 格式保存。

为教育而生的发行版

所有这些都是关于 Linux 面向学生的应用程序,你可以看看专门为教育而开发的一个发行版。最好的是 Edubuntu。这种平易的 Linux 发行版旨在让 Linux 进入学校、家庭和社区。Edubuntu 使用默认的 Ubuntu 桌面(Unity shell)并添加以下软件:

  • KDE 教育套件
  • GCompris
  • Celestia
  • Tux4Kids
  • Epoptes
  • LTSP
  • GBrainy
  • 等等

Edubuntu 并不是唯一的发行版。如果你想测试其他特定于教育的 Linux 发行版,以下是简短列表:

  • Debian-Edu
  • Fedora Education Spin
  • Guadalinux-Edu
  • OpenSuse-Edu
  • Qimo
  • Uberstudent

课堂/机构管理

这是 Linux 平台真正闪耀的地方。有许多专门用于管理的工具。我们先来看看教室特有的工具。

iTalc 是一个强大的课堂教学环境。借助此工具,教师可以查看和控制学生桌面(支持 Linux 和 Windows)。iTalc 系统允许教师查看学生桌面上发生了什么,控制他们的桌面,锁定他们的桌面,对桌面演示,打开或关闭桌面,向学生桌面发送文本消息等等。

aTutor(图 4)是一个开源的学习管理系统(LMS),专注于开发在线课程和电子学习内容。一个老师真正发挥的就是创建和管理在线考试和测验。当然,aTutor 不限于测试的目的,有了这个强大的软件,学生和老师可以享受:

  • 社交网络
  • 配置文件
  • 消息
  • 自适应导航
  • 工作组
  • 文件存储
  • 小组博客
  • 以及更多。

课程资料易于创建和部署(你甚至可以将考试/测验分配给特定的学习小组)。

Moodle 是目前使用最广泛的教育管理软件之一。通过 Moodle,你可以管理、教授、学习甚至参与孩子的教育。这个强大的软件为教师和学生、考试、日历、论坛、文件管理、课程管理(图 5)、通知、进度跟踪、大量注册、批量课程创建、考勤等提供协作工具。

OpenSIS 意即开源学生信息系统,在管理你的教育机构方面做得很好。有一个免费的社区版,但即使使用付费版本,你也可以期待将学区的拥有成本降低高达 75%(与专有解决方案相比)。

OpenSIS 包括以下特点或模块:

  • 出席情况(图 6)
  • 联系信息
  • 学生人口统计
  • 成绩簿
  • 计划
  • 健康记录
  • 报告卡

OpenSIS 有四个版本,在这里查看它们的功能比较。

vufind 是一个优秀的图书馆管理系统,允许学生和教师轻松浏览图书馆资源,例如:

  • 目录记录
  • 本地缓存期刊
  • 数字图书馆项目
  • 机构知识库
  • 机构书目
  • 其他图书馆集合和资源

Vufind 系统允许用户登录,通过认证的用户可以节省资源以便快速回忆,并享受“更像这样”的结果。

这份列表仅仅触及了 Linux 在教育领域可用性的一点皮毛。而且,正如你所期望的那样,每个工具都是高度可定制且开放源代码的 —— 所以如果软件不能精确地满足你的需求,那么你可以自由(在大多数情况下)修改源代码并进行更改。

Linux 与教育齐头并进。无论你是老师,学生还是管理员,你都会找到大量工具来帮助教育机构开放,灵活和强大。


via: https://www.linux.com/news/best-linux-tools-teachers-and-students

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

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