分类 技术 下的文章

“与 Linux 一起学习”的所有文章:

引言:Linux 提供大量的教学软件和工具,面向各个年级段以及不同年龄段,提供大量学科的练习实践,其中大多数是可以与用户进行交互的。本“与 Linux 一起学习:”系列就来介绍一些教学软件。

学习音乐是一个很好的消遣方式。训练你的耳朵能识别音阶与和弦、掌握一门乐器、控制自己的嗓音,这些都需要大量的练习,以及会遇到很多困难。音乐理论非常博大精深,有太多东西需要记忆,你需要非常勤奋才能将这些东西变成你的“技术”。在你的音乐之路上,Linux 提供了杰出的软件来帮助你前行。它们不能让你立刻成为一个音乐家,但可以作为一个降低学习难度的好助手。

Gnu Solfège

Solfège 是一个世界流行的音乐教学工具,适用于各个级别的音乐教育。很多流行的教学方法(比如著名的柯达伊教学法)就使用 Solfège 作为它们的基础。相比于学到音乐知识,Solfège 更关注于让用户不断练习音乐。它预期的用户是那些已经有一些音乐基础,并且想不断练习音乐技巧的学生。

以下是 GNU 网站的开发者声明:

“当你在高校、学院、音乐学校中学习音乐,你一般要进行的一些听力训练,比如视唱,会比较简单,但是通常需要两个人配合,一个问,一个答。[...] GNU Solfège 尝试着解决这个问题,你可以在没有其他人的帮助下完成更多的简单机械式练习。只是别忘了这些练习只是整个音乐训练过程的一部分。”

这款软件兑现了它的承诺,你可以在试听帮手的帮助下练习几乎所有音乐技巧。

Debian 和 Ubuntu 的仓库上有这款软件,在终端运行下面命令安装软件:

sudo apt-get install solfege

它开启的时候会出现一个简单的开始界面。

learnmusic-solfege-main

这些选项几乎包含了所有种类,大多数链接里面都有子类,你可以从中选择独立的练习。

learnmusic-solfege-scales

learnmusic-solfege-hun

软件提供多种练习和测试项目,都能通过外接的 MIDI 设备(LCTT 译注:MIDI,Musical Instrument Digital Interface,乐器数字接口)或者声卡来播放音乐。这些练习还配合音符播放,以及支持慢动作回放功能。

很重要的一点是如果你在 Ubuntu 下使用 Solfège,默认情况下你可能没法听到声音(除非你有外接 MIDI 设备)。如果出现了这种情况,点击“File -> Prefernces -> Sound Setup”,选择合适的设备(一般情况下选 ALSA 都能解决问题)。

learnmusic-solfege-midi

Solfège 对你的日常练习非常有帮助,经常使用它,可以在你开始唱 do-re-mi 之前练好你的音乐听觉。

Tete (听力训练)

Tete (这款听力训练软件)是一款简单但有效的 JAVA 软件,用于训练听力。它通过在不同背景下播放不同和弦以及不同 MIDI 声音来训练你分辨不同的音阶。从 SourceForge 下载,然后解压它。

unzip Tete-*

进入解压出来的目录:

cd Tete-*

这里假设你的系统已经安装好了 JAVA,你可以使用下面的命令执行 Java 文件:

java -jar Tete-[版本号]

(可以在输入“Tete-”后按 Tab 键进行自动补全。)

Tete 只有一个简单的界面,所有内容都在这里了。

learnmusic-tete-main

你可以选择表演音阶(见上图),和弦(下图),

learnmusic-tete-chords

或音程。

learnmusic-tete-intervals

你可以“精调”很多选项,包括 midi 乐器的声音、提升或降低音阶以及回放的快慢等等。SourceForge 网站上有关于 Tete 的非常有用的教程,介绍了这个软件的各个方面。

JalMus

Jalmus 是用 JAVA 写的键盘音符阅读训练器。可以外接 MIDI 键盘,也可以使用虚拟键盘。它提供很多简单的课程练习来训练你的音符阅读能力。虽然这个软件在2013年之后就不再更新了,但还是比较实用的。

进入 sourceforge 页面下载最后版本(v2.3)的 JAVA 安装器,或者在终端输入下面的命令下载:

wget http://garr.dl.sourceforge.net/project/jalmus/Jalmus-2.3/installjalmus23.jar

下载完成后,加载安装器:

java -jar installjalmus23.jar

跨平台的 JAVA 安装器会一步一步引导你完成安装的。

Jalmus 的主界面非常朴素。

learnmusic-jalmus-main

你可以在“Lessons”菜单中找到各种不同难度的课程,从非常简单(一行音符从左边向右滑过,键盘上相应的按键会高亮显示),

learnmusic-jalmus-singlenote

到非常困难(有多行音符从右向左滑过,你需要按顺序键入音符)。

learnmusic-jalmus-multinote

Jalmus 也包含一些阅读单个音符的训练,内容和课程相似,只是没有那些视觉上的提示了。当完成训练后,屏幕上会显示你的乐谱。它还提供不同难度的节拍训练,你能听到并看到这些训练里面播放的节拍。在多行乐谱同时播放时,一个节拍器(能听见能看见)可以帮你理解

learnmusic-jalmus-rhythm

和阅读乐谱。

learnmusic-jalmus-score

所有这些功能都是可配置的,你可以选择打开或者关闭它们。

总的来说,Jalmus 可能是节奏训练软件中属于功能最强的,虽然它不是学音乐必备的软件,但在节奏训练这个特殊的领域,它做得很出色。

号外

TuxGuitar

对于吉他练习者,TuxGuitar 看起来很像 Windows 下面的 Guitar Pro 软件(它也可以读 Guitar Pro 格式的文件)。

PianoBooster

Piano Booster 可以练习钢琴技巧,它能播放 MIDI 文件,你可以使用外接键盘来弹钢琴,同时还能查看屏幕上滑过的乐谱。

总结

Linux 提供很多优秀的工具供你学习,如果你对音乐感兴趣,你完全不用担心没有帮你练习音乐技术的软件。实际上,可供学习音乐的学生选择的优秀软件数量远比上面介绍的要多。如果你还知道其他的音乐训练软件,请在写下你的评论,让我们能够知道。


via: https://www.maketecheasier.com/linux-learning-music/

作者:Attila Orosz 译者:bazz2 校对:wxy

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

“与 Linux 一起学习”的所有文章:

Linux 提供大量的教学软件和工具,面向各个年级段以及不同年龄段,提供大量学科的练习实践,其中大多数是可以与用户进行交互的。本“与 Linux 一起学习”系列就来介绍一些教学软件。

物理是一个有趣的课题,证据就是任何物理课程都可以用具体的图片演示给你看。能看到物理变化过程是一个很妙的体验,特别是你不需要到教室就能体验到。Linux 上有很多很好的科学软件来为你提供这种美妙感觉,本篇文章只着重介绍其中几种。

1. Step

Step 是一个交互型物理模拟器,属于 KDEEdu(KDE 教育)项目的一部分。没人会比它的作者更了解它的作用。在项目官网主页上写着“[Step] 是这样玩的:你放点东西进来,添加一些力(地心引力或者弹簧),然后点击‘ 模拟 Simulate ’按钮,这款软件就会为你模拟这个物体在真实世界的物理定律影响下的运动状态。你可以改变物体或力的属性(允许在模拟过程中进行修改),然后观察不同属性下产生的现象。Step 可以让你从体验中学习物理!”

Step 依赖 Qt 以及其他一些 KDE 所依赖的软件,正是由于像 KDEEdu 之类的项目存在,才使得 KDE 变得如此强大,当然,你可能需要忍受由此带来的庞大的桌面系统。

Debian 的源中包含了 step 软件,终端下运行以下命令安装:

sudo apt-get install step

在 KDE 环境下,它只需要很少的依赖,几秒钟就能安装完成。

Step 有个简单的交互界面,你进去后直接可以进行模拟操作。

physics-step-main

你会发现所有物品在屏幕左边,包括不同的质点,空气,不同形状的物体,弹簧,以及不同的力(见区域1) 。如果你选中一个物体,屏幕右边会出现简短的描述信息(见区域2),以及你创造的世界的介绍(主要介绍这个世界中包含的物体)(见区域3),以及你当前选中的物体的属性(见区域4),以及你的操作历史(见区域5)。

physics-step-parts

一旦你放好了所有物体,点击下“模拟”按钮,可以看到物体与物体之间的相互作用。

physics-step-simulate1

physics-step-simulate2

physics-step-simulate3

想要更多了解 Step,按 F1 键,KDE 帮助中心会显示出详细的软件操作手册。

2. Lightspeed

Lightspeed 是一个简单的基于 GTK+ 和 OpenGL 的模拟器,可以模拟一个高速移动的物体被观测到的现象。这个模拟器的理论基础是爱因斯坦的狭义相对论,在 Lightspeed 的 srouceforge 页面上,他们这样介绍:当一个物体被加速到几千公里每秒,它就会表现得扭曲和褪色;当物体被不断加速到接近光速(299,792,458 m/s)时,这个现象会越来越明显,并且在不同方向观察这个物体的扭曲方式,会得到完全不一样的结果。

受到相对速度影响的现象如下(LCTT 译注:都可以从“光速不变”理论推导出来):

  • 洛伦兹收缩 The Lorentz contraction —— 物体看起来变短了
  • 多普勒红移/蓝移 The Doppler red/blue shift —— 物体的颜色变了
  • 前灯效应 The headlight effect —— 物体的明暗变化(LCTT 译注:当物体接近光速移动时,会在它前进的方向强烈地辐射光子,从这个角度看,物体会变得很亮,相反,从物体背后观察,会发现它很暗)
  • 光行差效应 Optical aberration —— 物体扭曲变形了

Lightspeed 有 Debian 的源,执行下面的命令来安装:

sudo apt-get install lightspeed

用户界面非常简单,里边有一个物体(你可以从 sourceforge 下载更多形状的物体)沿着 x 轴运动(按下 A 键或在菜单栏 object 项目的 Animation 选项设置,物体就会开始运动)。

physics-lightspeed

你可以滑动右边的滑动条来控制物体移动的速度。

physics-lightspeed-deform

其他一些简单的控制器可以让你获得更多的视觉效果。

physics-lightspeed-visual

点击界面并拖动鼠标可以改变物体视角,在 Camera 菜单下可以修改背景颜色或者物体的图形模式,以及其他效果。

特别推荐: Physion

Physion 是个非常有趣并且美观的物理模拟软件,比上面介绍的两款软件都好玩好看。

先来看看视频吧:

不用多介绍了,从它的官网下载吧:

从他们放在 Youtube 上的视频来看,Physion 还是值得我们下载下来玩玩的。

你有其他 Linux 下的好玩的物理模拟、演示、教学软件吗?如果有,请在评论处分享给我们。


via: https://www.maketecheasier.com/linux-physics-simulation/

作者:Attila Orosz 译者:bazz2 校对:wxy

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

文件系统: 它们不是世界上最激动人心的技术,但是仍然很重要。本文我们将细数那些流行的 Linux 文件系统 - 它们是什么,它们能够做什么,以及它们的目标用户。

Ext4

file-systems-ext4

如果你曾经安装过 Linux,你可能在安装过程中看到过“Ext4”字样。用它有一个不错的理由: 它是当前每个可用的 Linux 发行版所选择的文件系统。当然,还有其他的一些选择,但是不可否认的是,Ext4(Extended 4)几乎是所有 Linux 用户都会选择的文件系统。

它能做什么?

Ext4 拥有之前的文件系统(Ext2/Ext3)中你所期待的所有优点, 同时还带来了一些改进。还有很多内容可以发掘,这里列举出了 Ext4 为你带来的最好的部分:

  • 日志型文件系统
  • 日志校验
  • 多重块文件分配
  • 向后兼容 Ext2 && Ext3
  • 持续的空闲空间预分配
  • 改进的文件系统校验(相比于之前的版本)
  • 当然,同时支持更大的文件

目标用户

Ext4 针对那些寻找超级可靠的基础环境或者那些只需要能工作就行的用户。这个文件系统不会对你的系统做快照;它甚至没有最好的 SSD 支持,但是如果你不是太挑剔的话,你会觉得它也还不错。

BtrFS

file-systems-btrFS

B 树(B-tree)文件系统 (也被当做是 butterFS,黄油文件系统) 是 Oracle 为 Linux 研发的一款文件系统。它是一个全新的文件系统,而且正处于主要开发阶段。Linux 社区认为其有时候使用上还有些不稳定。BtrFS 的核心原则是围绕着 写时复制 copy-on-write 原则展开的。写时复制基本上意味着在写入数据完成前,这份数据的每一比特都有单独的一份副本。当数据写入完毕后,相当于它做了一份副本。

它能做什么

除了支持写时复制之外,BtrFS 也能够胜任许多其他的事务 - 事实上,它可以不断列出各种特性。这里列举最值得一提的特性:支持只读快照、文件克隆、子卷、透明压缩、离线文件系统校验、从 ext3 & 4 原地转换到 BtrFS、在线碎片整理,还支持 RAID 0, RAID 1, RAID 5, RAID 6 和 RAID 10。

目标用户

BtrFS 的开发者们许诺过,该文件系统是当前其他文件系统的新一代替代者。非常正确,虽然目前其处于开发中。它有很多面向高级用户的杀手级特性,对于基本用户也是这样(包括 SSD 上面的更佳性能)。这个文件系统针对那些想要从文件系统中获取更多(特性),以及那些想尝试用写时复制机制做一些事情的用户。

XFS

file-systems-xfs

由 Silicon Graphics 公司创造开发,XFS 是一个高端文件系统,定位于速度和性能方面。处于对性能方面的专注,使得在并行 IO 方面,XFS 表现的尤其出色。XFS 文件系统能够处理数量庞大的数据,事实上某些 XFS 用户的数据接近300TB 以上。

它能做什么

XFS 是一个经历良好测试的数据存储文件系统,它是为了高性能操作而诞生的。其特性包括:

  • RAID 阵列的条带化分配
  • 日志型文件系统
  • 块大小可变
  • 直接 I/O
  • 指定速率 guaranteed-rate I/O
  • 快照
  • 在线碎片整理
  • 在线调整文件系统大小

目标用户

XFS 针对那些想要一个坚如磐石的文件系统方案的用户。它始于1993年,并且随着时间的变迁它变得越来越好。如果你有一台家庭服务器,而且你苦恼于如何部署存储环境,那么可以考虑下 XFS。它拥有的众多特性(比如快照)能够有助于你的文件存储系统。尽管如此,它不局限于服务器端。如果你是一个相对高级一点的用户或者你对 BtrFS 所承诺的很多特性感兴趣的话,尝试一下 XFS。它实现了很多与 BtrFS 相似的特性,并且没有稳定性方面的问题。

Reiser4

file-system-riser4

Reiser4 是 ReiserFS 的继任者,由 Namesys 公司创造研发。它的诞生可以追溯到 Linspire 项目和 DARPA。它与众不同的地方在于众多的事务模式。并不止于单一的一种写入数据的方式;取而代之的是,有很多方式(来写入)。

它能做什么

Reiser4 拥有着使用多种不同事务模式的独特能力。它能够使用写时复制模式 (像 BtrFS), 任意位置写入 write-anywhere ,日志,以及混合事务模式。它在 ReiserFS 的基础上做了许多的改进,包括更好的基于漫游日志的文件系统日志,对较小文件的支持更好,以及更快速的目录处理。Reiser4 提供了许多功能特性。还有更多的特性可以探讨,不过简单来讲,相比于 ReiserFS 它不但做了非常大的改进,而且增加了众多特性。

目标用户

Resier4 适合那些想要将一个文件系统应用到多种场景下的用户。可能你想在一台机器上使用写时复制机制,在另一台机器上使用任意位置写入机制,还会在另一台机器上使用混合事务,而你又不希望使用多种不同类型的文件系统来完成这项任务。Reiser4 是适合这种情况的完美方案。

结论

Linux 上有许多可用的文件系统。每个文件系统都有其特定的用途,以便于特定用户解决不同的问题。本文的焦点集中在 Linux 平台上文件系统的主流选择。毫无疑问,其它的场景下还有一些别的选择。

你在 Linux 上最喜欢的文件系统是什么?在下面的评论区告诉我们吧!


via: https://www.maketecheasier.com/best-file-system-linux/

作者:Derrik Diener 译者:icecoobe 校对:wxy

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

在 Git 问世之前,分布式版本控制从来都不是一件简单的事。Git 是一个自由开源的软件,旨在轻松且快速地对从小规模到非常巨大的项目进行管理。Git 最开始由 Linus Torvalds 开发,他同时也是著名的 Linux 内核的创建者。在 git 和分布式版本控制系统领域中,GitLab 是一个极棒的新产品。它是一个基于 web 的 Git 仓库管理应用,包含代码审查、wiki、问题跟踪等诸多功能。使用 GitLab 可以很方便、快速地创建、审查、部署及托管代码。尽管它在其官方的服务器提供了与 Github 类似的免费托管的代码仓库,但它也可以运行在我们自己的服务器上。GitLab 有两个不同的版本: 社区版 Community Edition 企业版 Enterprise Edition 。社区版本完全免费且开源,遵循 MIT 协议;而企业版则遵循一个专有的协议,包含一些社区版中没有的功能。下面介绍的是有关如何在我们自己的运行着 Ubuntu、Fedora 或 Debian 操作系统的机器上安装 GitLab 社区版的简单步骤。

1. 安装先决条件

首先,我们需要安装 GitLab 所依赖的软件包。我们将安装 curl,用以下载我们所需的文件;安装openssh-server ,以此来通过 ssh 协议登录到我们的机器上;安装ca-certificates,用它来添加 CA 认证;以及 postfix,把它作为一个 MTA(Mail Transfer Agent,邮件传输代理)。

注: 若要安装 GitLab 社区版,我们需要一个至少包含 2 GB 内存和 2 核 CPU 的 linux 机器。

在 Ubuntu 14 .04/Debian 8.x 中

鉴于这些依赖包都可以在 Ubuntu 14.04 和 Debian 8.x 的官方软件仓库中获取到,我们只需通过使用 apt-get 包管理器来安装它们。为此,我们需要在一个终端或控制台中执行下面的命令:

# apt-get install curl openssh-server ca-certificates postfix

install dependencies gitlab ubuntu debian

在 Fedora 22 中

在 Fedora 22 中,由于 yum 已经被弃用了,默认的包管理器是 dnf。为了安装上面那些需要的软件包,我们只需运行下面的 dnf 命令:

# dnf install curl openssh-server postfix

install dependencies gitlab fedora

2. 打开并开启服务

现在,我们将使用我们默认的初始化系统来打开 sshd 和 postfix 服务。并且我们将使得它们在每次系统启动时被自动开启。

在 Ubuntu 14.04 中

由于在 Ubuntu 14.04 中安装的是 SysVinit 初始化系统,我们将使用 service 命令来开启 sshd 和 postfix 守护进程:

# service sshd start
# service postfix start

现在,为了使得它们在每次开机启动时被自动开启,我们需要运行下面的 update-rc.d 命令:

# update-rc.d sshd enable
# update-rc.d postfix enable

在 Fedora 22/Debian 8.x 中

鉴于 Fedora 22 和 Debian 8.x 已经用 Systemd 代替了 SysVinit 来作为默认的初始化系统,我们只需运行下面的命令来开启 sshd 和 postfix 服务:

# systemctl start sshd postfix

现在,为了使得它们在每次开机启动时可以自动运行,我们需要运行下面的 systemctl 命令:

# systemctl enable sshd postfix

Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/postfix.service to /usr/lib/systemd/system/postfix.service.

3. 下载 GitLab

现在,我们将使用 curl 从官方的 GitLab 社区版仓库下载二进制安装文件。首先,为了得到所需文件的下载链接,我们需要浏览到该软件仓库的页面。为此,我们需要在运行着相应操作系统的 linux 机器上运行下面的命令。

在 Ubuntu 14.04 中

由于 Ubuntu 和 Debian 使用相同的 debian 格式的安装包,我们需要在 https://packages.gitlab.com/gitlab/gitlab-ce?filter=debs 下搜索所需版本的 GitLab,然后点击有着 ubuntu/trusty 标签的链接,即我们运行着的 Ubuntu 14.04。接着一个新的页面将会出现,我们将看到一个下载按钮,然后我们在它的上面右击,得到文件的链接,然后像下面这样使用 curl 来下载它。

# curl https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/trusty/gitlab-ce_8.1.2-ce.0_amd64.deb

Downloading Gitlab Ubuntu

在 Debian 8.x 中

与 Ubuntu 类似,我们需要在 https://packages.gitlab.com/gitlab/gitlab-ce?filter=debs 页面中搜索所需版本的 GitLab,然后点击带有 debian/jessie 标签的链接,即我们运行着的 Debian 8.x。接着,一个新的页面将会出现,然后我们在下载按钮上右击,得到文件的下载链接。最后我们像下面这样使用 curl 来下载该文件。

# curl https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/jessie/gitlab-ce_8.1.2-ce.0_amd64.deb/download

Downloading Gitlab Debian

在 Fedora 22 中

由于 Fedora 使用 rpm 文件来作为软件包,我们将在 https://packages.gitlab.com/gitlab/gitlab-ce?filter=rpms 页面下搜索所需版本的 GitLab,然后点击所需发行包的链接,这里由于我们运行的是 Fedora 22,所以我们将选择带有 el/7 标签的发行包。一个新的页面将会出现,在其中我们可以看到一个下载按钮,我们将右击它,得到所需文件的链接,然后像下面这样使用 curl 来下载它。

# curl https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-8.1.2-ce.0.el7.x86_64.rpm/download

Downloading Gitlab Fedora

4. 安装 GitLab

在相应的软件源被添加到我们的 linux 机器上之后,现在我们将使用相应 linux 发行版本中的默认包管理器来安装 GitLab 社区版。

在 Ubuntu 14.04/Debian 8.x 中

要在运行着 Ubuntu 14.04 或 Debian 8.x linux 发行版本的机器上安装 GitLab 社区版,我们只需运行如下的命令:

# dpkg -i gitlab-ce_8.1.2-ce.0_amd64.deb

Installing Gitlab Ubuntu Debian

在 Fedora 22 中

我们只需执行下面的 dnf 命令来在我们的 Fedora 22 机器上安装 GitLab。

# dnf install gitlab-ce-8.1.2-ce.0.el7.x86_64.rpm

Installing Gitlab Fedora

5. 配置和开启 GitLab

GitLab 社区版已经成功地安装在我们的 linux 系统中了,接下来我们将要配置和开启它了。为此,我们需要运行下面的命令,这在 Ubuntu、Debian 和 Fedora 发行版本上都一样:

# gitlab-ctl reconfigure

Reconfiguring Gitlab

6. 允许通过防火墙

假如在我们的 linux 机器中已经启用了防火墙程序,为了使得 GitLab 社区版的 web 界面可以通过网络进行访问,我们需要允许 80 端口通过防火墙,这个端口是 GitLab 社区版的默认端口。为此,我们需要运行下面的命令。

在 iptables 中

Ubuntu 14.04 默认安装和使用的是 iptables。所以,我们将运行下面的 iptables 命令来打开 80 端口:

# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

# /etc/init.d/iptables save

在 firewalld 中

由于 Fedora 22 和 Debian 8.x 默认安装了 systemd,它包含了作为防火墙程序的 firewalld。为了使得 80 端口(http 服务) 能够通过 firewalld,我们需要执行下面的命令。

# firewall-cmd --permanent --add-service=http
success
# firewall-cmd --reload
success

7. 访问 GitLab Web 界面

最后,我们将访问 GitLab 社区版的 web 界面。为此,我们需要将我们的 web 浏览器指向 GitLab 服务器的网址,根据我们的配置,可能是 http://ip-address/http://domain.com/ 的格式。在我们成功指向该网址后,我们将会看到下面的页面。

Gitlab Login Screen

现在,为了登录进面板,我们需要点击登录按钮,它将询问我们的用户名和密码。然后我们将输入默认的用户名和密码,即 root5iveL!fe 。在登录进控制面板后,我们将被强制要求为我们的 GitLab root 用户输入新的密码。

Setting New Password Gitlab

8. 创建仓库

在我们成功地更改密码并登录到我们的控制面板之后,现在,我们将为我们的新项目创建一个新的仓库。为此,我们需要来到项目栏,然后点击 新项目 绿色按钮。

Creating New Projects

接着,我们将被询问给我们的项目输入所需的信息和设定,正如下面展示的那样。我们甚至可以从其他的 git 仓库提供商和仓库中导入我们的项目。

Creating New Project

做完这些后,我们将能够使用任何包含基本 git 命令行的 Git 客户端来访问我们的 Git 仓库。我们可以看到在仓库中进行的任何活动,例如创建一个里程碑,管理问题,合并请求,管理成员,便签,Wiki 等。

Gitlab Menu

总结

GitLab 是一个用来管理 git 仓库的很棒的开源 web 应用。它有着漂亮的带有诸多酷炫功能的响应式界面。它还打包有许多酷炫功能,例如管理群组,分发密钥,持续集成,查看日志,广播消息,钩子,系统 OAuth 应用,模板等。(注:OAuth 是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。--- 摘取自 维基百科上的 OAuth 词条) 它还可以和大量的工具进行交互如 Slack,Hipchat,LDAP,JIRA,Jenkins,有很多类型的钩子和完整的 API。它至少需要 2 GB 的内存和 2 核 CPU 来流畅运行,支持多达 500 个用户,但它也可以被扩展到多个工作服务器上。

假如你有任何的问题,建议,回馈,请将它们写在下面的评论框中,以便我们可以提升或更新我们的内容。谢谢!


via: http://linoxide.com/linux-how-to/install-gitlab-on-ubuntu-fedora-debian/

作者:Arun Pyasi 译者:FSSlc 校对:wxy

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

没有什么事情比 bootloader 坏掉更气人的了。充分发挥 Grub 2 的作用,让 bootloader 安分工作吧。

为什么这么说?

  • Grub 2 是最受欢迎的 bootloader ,几乎用在所有 Linux 发行版上。
  • bootloader 是一个至关重要的软件,但是非常容易损坏。
  • Grub 2 是兼具扩展性和灵活性的一款引导加载程序,提供了大量可定制选项。

Grub 2 是一款精彩的功能强大的软件。它不是 bootloader 界的一枝独秀,但却最受欢迎,几乎所有主要的桌面发行版都在使用它。 Grub 的工作有两个。首先,它用一个菜单展示计算机上所有已经安装的操作系统供你选择。其次,当你从启动菜单中选择了一个 Linux 操作系统, Grub 便加载这个 Linux 的内核。

你知道,如果使用 Linux ,你就离不开 bootloader 。然而它却是 Linux 发行版内部最鲜为人知的部分。在这篇文章里,我们将带你熟悉 Grub 2 一些著名的特性,强化你相关技能,使你在 bootloader 跑飞的时候能够自行处理。

Grub 2 最重要的部分是一堆文本文件和两个脚本文件。首先需要了解的是 /etc/default/grub 。这是一个文本文件,你可以在里面设置通用配置变量和 Grub 2 菜单(见下方 “常见用户设置” )的其它特性。

Grub 2 另一个重要的部分是 /etc/grub.d 文件夹。定义每个菜单项的所有脚本都放置在这里。这些脚本的名称必须有两位的数字前缀。其目的是,在构建 Grub 2 菜单时定义脚本的执行顺序以及相应菜单项的顺序。文件 00_header 首先被读取,负责解析 /etc/default/grub 配置文件。然后是 Linux 内核的菜单项,位于 10_linux 文件中。这个脚本在默认的 /boot 分区为每个内核创建一个正规菜单项和一个恢复菜单项。

紧接着的是为第三方应用所用的脚本,如 30_os-prober40_customos-prober 脚本为内核和其它分区里的操作系统创建菜单项。它能识别安装的 Linux、 Windows、 BSD 以及 Mac OS X 。 如果你的硬盘布局比较独特,使得 os-prober 无法找到已经安装的发行版,你可以在 40_custom 文件(见下方 “添加自定义菜单项”)中添加菜单项。

Grub 2 不需要你手动维护你的启动选项的配置文件:取而代之的是使用 grub2-mkconfig 命令产生 /boot/grub/grub.cfg 文件。这个功能会解析 /etc/grub.d 目录中的脚本以及 /etc/default/grub 设置文件来定义你的设置情况。

图形化的引导修复

多亏了 Boot Repair 应用,只需要点击按钮,Grub 2 许许多多的问题都能轻易解决。这个漂亮小巧的应用有一个直观的用户界面,可以扫描并识别多种硬盘布局和分区方案,还能发现并正确识别安装在其中的操作系统。这个应用可以处理传统计算机里的 主引导记录 Master Boot Record (MBR),也可以处理新型 UEFI 计算机中的 GUID 分区表 GUID Partition Table (GPT)。

Boot Repair 最简单的使用方式是安装到 Live Ubuntu 会话中。在一个 bootloader 损坏的机器上启动 Ubuntu Live 发行版,先通过添加它的 PPA 版本库来安装 Boot Repair ,命令如下:

sudo add-apt-repository ppa:yannubuntu/Boot Repair

然后刷新版本库列表:

sudo apt-get update

安装应用,如下:

sudo apt-get install -y Boot Repair

安装完毕后就启动应用。在显示它的界面(由一对按键组成)之前将会扫描你的硬盘。根据工具的指示,只需按下 Recommended Repair 推荐的修复 按钮,即可修复大部分坏掉的 bootloader 。修复 bootloader 之后,这个工具会输出一个短小的 URL ,你应该把它记录下来。这个 URL 包含了硬盘详尽的信息:分区信息以及重要的 Grub 2 文件(如 /etc/default/grub/boot/grub/grub.cfg )的内容。如果工具不能解决 bootloader 的问题,可以把你这个 URL 共享在你的发行版的论坛上,让其他人可以分析你的硬盘布局以便给你建议。

Boot Repair 也可以让你定制 Grub 2 的选项。

Bootloader 急救

Grub 2 引导问题会让系统处于几种不同状态。屏幕(如你所想,本该显示 bootloader 菜单的地方)所展示的文本会指示出系统的当前状态。如果系统中止于 grub> 提示符,表明 Grub 2 模块已经被加载,但是找不到 grub.cfg 文件。当前是完全版的 Grub 2 命令行 shell,你可以通过多种方式解决此问题。如果你看到的是 grub rescue> 提示符,表明 bootloader 不能找到 Grub 2 模块或者找不到任何 引导文件 boot files 。然而,如果你的屏幕只显示 ‘GRUB’ 一词,表明 bootloader 找不到通常位于 主引导记录 Master Boot Record 里的最基本的信息。

你可以通过使用 live CD 或者在 Grub 2 shell 中修正此类错误。如果你够幸运, bootloader 出现了 grub> 提示符,你就能获得 Grub 2 shell 的支配权,来帮助你排错。

接下来几个命令工作在 grub>grub rescue> 提示符下。 set pager=1 命令设置显示 分页 pager ,防止文本在屏幕上一滚而过。你还可以使用 ls 命令列出 Grub 识别出的所有分区,如下:

grub> ls
(hd0) (hd0,msdos5) (hd0,msdos6) (hd1,msdos1)

如你所见,这个命令列出分区的同时一并列出了分区表方案(即 msdos)。

你还可以在每个分区上面使用 ls 来查找你的根文件系统:

grub> ls (hd0,5)/
lost+found/ var/ etc/ media/ bin/ initrd.gz
boot/ dev/ home/ selinux/ srv/ tmp/ vmlinuz

你可以不写上分区名的 msdos 部分。同样,如果你忘记了尾部的 斜杠 trailing slash 只输入 ls (hd0,5) ,那你将获得分区的信息,比如文件系统类型、总体大小和最后修改时间。如果你有多个分区,可以使用 cat 读取 /etc/issue 文件中的内容,来确定发行版,格式如 cat (hd0,5)/etc/issue

假设你在 (hd0,5) 中找到根文件系统,请确保它包含 /boot/grub 目录,以及你想引导进入的内核镜像,如 vmlinuz-3.13.0-24-generic 。此时输入以下命令:

grub> set root=(hd0,5)
grub> linux /boot/vmlinuz-3.13.0-24-generic root=/dev/sda5
grub> initrd /boot/initrd.img-3.13.0-24-generic

第一个命令把 Grub 指向我们想引导进入的发行版所在的分区。接着第二个命令告知 Grub 内核镜像在分区中的位置,以及根文件系统的位置。最后一行设置 虚拟文件系统 initial ramdisk 文件的位置。你可以使用 tab 补全功能补全内核名字和 虚拟文件系统 initrd: initial ramdisk 的名字,节省时间和精力。

输入完毕,在下一个 grub> 提示符后输入 boot , Grub 将会引导进入指定的操作系统。

如果你在 grub rescue> 提示符下,情况会有些许不同。因为 bootloader 未能够找到并加载任何必需的模块,你需要手动添加这些模块:

grub rescue> set root=(hd0,5)
grub rescue> insmod (hd0,5)/boot/grub/normal.mod
grub rescue> normal
grub> insmod linux

如上所示,跟之前一样,使用 ls 命令列出所有分区之后,使用 set 命令标记起来。然后添加 normal 模块,此模块激活时将会恢复到标准 grub> 模式。如果 linux 模块没加载,接下来的命令会进行添加。如果这个模块已经加载,你可以跟之前一样,把引导加载程序指向内核镜像和 虚拟文件系统 initrd 文件,然后使用 boot 启动发行版,完美收官。

一旦成功启动发行版,别忘了为 Grub 重新产生新的配置文件,使用

grub-mkconfig -o /boot/grub/grub.cfg

命令。你还需要往 MBR 里安装一份 bootloader 的拷贝,使用

sudo grub2-install /dev/sda

命令。

想要禁用 /etc/grub.d 目录下的脚本,你只需移除其可执行位,比如使用 chmod -x /etc/grub.d/20_memtest86+ 就能将 ‘Memory Test’ 选项从菜单中移除。

Grub 2 和 UEFI

在支持 UEFI 的机器(最近几年上市的机器大部分都是)调试坏掉的 Grub 2 增加了另一复杂的层次。恢复安装在 UEFI 机器上的 Grub 2 的和安装在非 UEFI 机器上的并没多大区别,只是新的固件处理方式不一样,从而导致了很多种恢复结果。

对于基于 UEFI 的系统,不要在 MBR 上安装任何东西。相反,你要在 EFI 系统分区 EFI System Partition ( ESP )里安装 Linux EFI bootloader,并且借助工具把它设置为 EFI 的默认启动程序,这个工具对于 Linux 用户是 efibootmgr ,对于 window 用户则是 bcdedit

照目前情况看,在安装任何与 Windows 8 兼容的主流桌面 Linux 发行版前,应该正确安装好 Grub 2。然而,如果 bootloader 损坏,你可以使用 live 发行版修复机器。在启动 live 介质之时,请确保是以 UEFI 模式启动。计算机每个可移动驱动器的启动菜单将会有两个: 一个普通的和一个以 EFI 标记的。使用后者会用到 /sys/firmware/efi/ 文件中的 EFI 变量。

在 live 环境中,挂载教程前面所提的安装挂掉系统的根文件系统。除此之外,还需要挂载 ESP 分区。假设分区是 /dev/sda1 ,你可以如下所示挂载:

sudo mount /dev/sda1 /mnt/boot/efi

接着在 chroot 到安装完毕的发行版前之前,使用 modprobe efivars 加载 efivars 模块。

在这里, Fedora 用户可以使用如下命令重新安装 bootloader

yum reinstall grub2-efi shim

但在此之前,需要使用

grub2-mkconfig -o /boot/grub2/grub.cfg

来产生新的配置文件。 Ubuntu 用户则改用以下命令

apt-get install --reinstall grub-efi-amd64

一旦 bootloader 正确就位,退出 chroot ,卸载所有分区,重启到 Grub 2 菜单。

伙计,我的 Grub 哪去了?

Grub 2 最好的特性是可以随时重新安装。因此,当其它像 Windows 之类的系统用它们自己的 bootloader 替换后,导致 Grub 2 丢失,你可以使用 live 发行版,寥寥数步即可重装 Grub 。假设你在 /dev/sda5 安装了一个发行版,若要重装 Grub ,你只需首先使用以下命令为发行版创建一个挂载目录:

sudo mkdir -p /mnt/distro

然后挂载分区,如下:

mount /dev/sda5 /mnt/distro

接着就能重装 Grub 了,如下:

grub2-install --root-directory=/mnt/distro /dev/sda

这个命令会改写 /dev/sda 设备上的 MBR 信息,指向当前 Linux 系统,并重写一些 Grub 2 文件,如 grubenvdevice.map

另一个问题常见于装有多个发行版的计算机上。当你安装了新的 Linux 发行版,它的 bootloader 应当要能找到所有已经安装的发行版。一旦不行,只要引导进入新安装的发行版,并运行

grub2-mkconfig

在运行这个命令之前,请确保启动菜单中缺失的发行版的 root 分区已经挂载。如果你想添加的发行版有单独的 /root/home 分区,在运行 grub2-mkconfig 之前,只需挂载包含 /root 的分区。

虽然 Grub 2 能够找到大部分发行版,但是在 Ubuntu 中尝试添加安装的 Fedora 系统需要额外的一个步骤。如果你以默认设置安装了 Fedora ,则发行版的安装器已经创建了 LVM 分区。此时你需要使用发行版的包管理系统安装 lvm2 驱动,如下

sudo apt-get install lvm2

才能使得 Grub 2 的 os-prober 脚本能够找到并将 Fedora 添加进启动菜单。

常见用户设置

Grub 2 有很多可配置变量。 这里有一些 /etc/default/grub 文件中你最可能会修改到的常见变量。 GRUB\_DEFAULT 变量指定默认的启动项,可以设置为数字值,比如 0 ,表示第一个菜单项,或者设置为 “saved” ,将指向上一次启动时选中的菜单项。 GRUB\_TIMEOUT 变量指定启动默认菜单项之前的停留时间。 GRUB\_CMDLINE\_LINUX 列出了要传递给所有 Linux 菜单项的内核命令行参数。

如果 GRUB\_DISABLE\_RECOVERY 变量设置为 true ,那么将不生成恢复模式菜单项。这些菜单项会以单用户模式启动发行版,这种模式下允许你利用命令行工具修复系统。 GRUB\_GFXMODE 变量同样有用,它指定了菜单上文本显示的分辨率,它可以设置为你的显卡所支持的任何数值。

Grub 2 有个命令行模式,通过在 bootloader 菜单上按 C 进入。

彻底的修复

如果 grub2-install 命令不能正常运作,使得你无法引导进入 Linux ,你需要完整地重装以及重新配置 bootloader 。为此目的,需要用到强大的 chroot 功能将运行环境从 live CD 环境切换至我们想修复的 Linux 的安装位置。任何拥有 chroot 工具的 Linux live CD 都可以实现这个目的。不过需要确保 live 介质的系统架构和硬盘上系统的架构一致。因此当你希望 chroot 到 64 位系统,你必须使用 amd64 live 发行版。

启动进入 live 发行版之后,首先需要检查机器上的分区。使用 fdisk -l 列出磁盘上所有分区,记录你想修复的 Grub 2 系统所在的分区。

假设我们希望从安装在 /dev/sda5 中的发行版中恢复 bootloader 。启动终端使用如下命令挂载分区:

sudo mount /dev/sda5 /mnt

此时需要 绑定 bind Grub 2 bootloader 需要进入的目录,以便检测其它操作系统:

$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /dev/pts /mnt/dev/pts
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys

此时可以离开 live 环境进入安装在 /dev/sda5 分区中的发行版了,通过 chroot

$ sudo chroot /mnt /bin/bash

现在可以安装、检测、以及升级 Grub 了,跟之前一样,使用

sudo grub2-install /dev/sda

命令来重装 bootloader 。因为 grub2-install 命令不能创建grub.cfg 文件,需要手动创建,如下

sudo grub-mkconfig -o /boot/grub/grub.cfg

这样应该就可以了。现在你就有了 Grub 2 的一份全新拷贝,罗列了机器上所有的操作系统和发行版。在重启电脑之前,你需要依次退出 chroot 系统,卸载所有分区,如下所示:

$ exit
$ sudo umount /mnt/sys
$ sudo umount /mnt/proc
$ sudo umount /mnt/dev/pts
$ sudo umount /mnt/dev
$ sudo umount /mnt

现在你可以安全地重启电脑了,而它应该会回退到 Grub 2 的控制之中,你已经修好了这个 bootloader。

添加自定义菜单项

如果希望往 bootloader 菜单里添加菜单项,你需要在 40\_custom 文件里添加一个 启动段 boot stanza 。例如,你可以使用它展示一个菜单项来启动安装在可移动 USB 驱动里的 Linux 发行版。假设你的 USB 驱动器是 sdb1 ,并且 vmlinuz 内核镜像和 虚拟文件系统 initrd 都位于根 (/)目录下,在 40\_custom 文件中添加以下内容:

menuentry “Linux on USB” {
   set root=(hd1,1)
   linux /vmlinuz root=/dev/sdb1 ro quiet splash
   initrd /initrd.img
}

相比使用设备和分区名,使用它们的 UUID 可以获得更精确结果,比如

set root=UUID=54f22dd7-eabe

使用

sudo blkid

来获得所有已连接的驱动器和分区的 UUID 。你还可以为你磁盘上没被 os-prober 脚本找到的发行版添加菜单项,只要你知道该发行版的安装位置以及其内核和 虚拟文件系统 initrd 的位置即可。


via: https://www.linuxvoice.com/grub-2-heal-your-bootloader/

作者:Mayank Sharma 译者:soooogreen 校对:wxy

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

“与 Linux 一起学习”的所有文章:

Linux 提供大量的教学软件和工具,面向各个年级以及不同年龄段,提供大量学科的练习实践,其中大多数是可以与用户进行交互的。本“与 Linux 一起学习”系列就来介绍一些教学软件。

很多人都要打字,操作键盘已经成为他们的第二天性。但是这些人中有多少是依然使用两个手指头来快速地按键盘的?即使学校有教我们使用键盘的方法,我们也会慢慢地抛弃正确的打字姿势,养成只用两个大拇指玩键盘的习惯。(LCTT 译注:呃,你确认是拇指而不是食指?)

下面要介绍的两款软件可以帮你掌控你的键盘,然后你就可以让你的手指跟上你的思维,这样你的思维就不会被打断了。当然,还有很多更炫更酷的软件可供选择,但本文所选的这两款是最简单、最容易上手的。

TuxType (或者叫 TuxTyping)

TuxType 是给小孩子玩的。在一些有趣的游戏中,小学生们可以通过完成一些简单的练习来 Get “双手打字以示清白”的新技能。

Debian 及其衍生版本(包含所有 Ubuntu 衍生版本)的标准软件仓库都有 TuxType,使用下面的命令安装:

sudo apt-get install tuxtype

软件开始时有一个简单的 Tux 界面和一段难听的 midi 音乐,幸运的是你可以通过右下角的喇叭按钮把声音调低了。(LCTT 译注:Tux 就是那只 Linux 吉祥物,Linus 说它的表情被设计成刚喝完啤酒后的满足感,见《Just For Fun》。)

learntotype-tuxtyping-main

最开始处的两个选项“Fish Cascade”和“Comet Zap”是打字游戏,当你开始游戏时,你就投入到了这个课程。

第3个选项为“Lessions”,提供40多个简单的课程,每个课程会增加一个字母让你来练习,练习过程中会给出一些提示,比如应该用哪个手指按键盘上的字母。

learntotype-tuxtyping-exd1

learntotype-tuxtyping-exd2

更高级点的,你可以练习输入句子。不知道为什么,句子练习被放在“Options”选项里。(LCTT 译注:句子练习第一句是“The quick brown fox jumps over the lazy dog”,包含了26个英文字母,可用于检测键盘是否坏键,也是练习英文打字的必备良药啊。)

learntotype-tuxtyping-phrase

这个游戏让玩家打出单词来帮助 Tux 吃到小鱼或者干掉掉下来的流星,训练速度和精确度。

learntotype-tuxtyping-fish

learntotype-tuxtyping-zap

除了练习有趣外,这些游戏还可以训练玩家的拼写、速度、手眼配合能力,因为你如果认真在玩的话,必须盯着屏幕,不看键盘打字。

GNU typist (gtype)

对于成年人或有打字经验的人来说,GNU Typist 可能更合适,它是一个 GNU 项目,基于控制台操作。

GNU Typist 也在大多数 Debian 衍生版本的软件库中,运行下面的命令来安装:

sudo apt-get install gtypist

你估计不能在应用菜单里找到它,只能在终端界面上执行下面的命令来启动:

gtypist

界面简单,没有废话,直接提供课程内容,玩家选择就是了。

learntotype-gtype-main

课程直截了当,内容详细。

learntotype-gtype-lesson

在交互练习的过程中,如果你输入错误,会将错误位置高亮显示。不会像其他漂亮界面分散你的注意力,你可以专注于练习。每个课程的右下角都有一组统计数据来展示你的表现,如果你犯了很多错误,就可能无法通过关卡了。

learntotype-gtype-mistake

简单练习只需要你重复输入一些字符,而高阶练习需要你输入整个句子。

learntotype-gtype-warmup

下图的错误已经超过 3%,错误率太高了,你得降低些。

learntotype-gtype-warmupfail

一些训练用于完成特殊目标,比如“平衡键盘训练(LCTT 译注:感觉是用来练习手感的)”。

learntotype-gtype-balanceddrill

下图是速度练习。

learntotype-gtype-speed-simple

下图是要你输入一段经典文章。

learntotype-gtype-speed-advanced

如果你想练习其他语种,操作一下命令行参数就行。

learntotype-gtype-more-lessons

总结

如果你想练练自己的打字水平,Linux 上有很多软件给你用。本文介绍的两款软件界面简单但内容丰富,能满足绝大多数打字爱好者的需求。如果你正在使用、或者听说过其他的优秀打字练习软件,请在评论栏贴出来,让我们长长姿势。


via: https://www.maketecheasier.com/learn-to-type-in-linux/

作者:Attila Orosz 译者:bazz2 校对:wxy

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