2018年7月

摘要:想知道你正在使用的 Ubuntu 具体是什么版本吗?这篇文档将告诉你如何检查你的 Ubuntu 版本、桌面环境以及其他相关的系统信息。

通常,你能非常容易的通过命令行或者图形界面获取你正在使用的 Ubuntu 的版本。当你正在尝试学习一篇互联网上的入门教材或者正在从各种各样的论坛里获取帮助的时候,知道当前正在使用的 Ubuntu 确切的版本号、桌面环境以及其他的系统信息将是尤为重要的。

在这篇简短的文章中,作者将展示各种检查 Ubuntu 版本以及其他常用的系统信息的方法。

如何在命令行检查 Ubuntu 版本

这个是获得 Ubuntu 版本的最好的办法。我本想先展示如何用图形界面做到这一点,但是我决定还是先从命令行方法说起,因为这种方法不依赖于你使用的任何桌面环境。 你可以在 Ubuntu 的任何变种系统上使用这种方法。

打开你的命令行终端 (Ctrl+Alt+T), 键入下面的命令:

lsb_release -a

上面命令的输出应该如下:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:    16.04
Codename:   xenial

How to check Ubuntu version in command line

正像你所看到的,当前我的系统安装的 Ubuntu 版本是 Ubuntu 16.04, 版本代号: Xenial。

且慢!为什么版本描述中显示的是 Ubuntu 16.04.4 而发行版本是 16.04?到底哪个才是正确的版本?16.04 还是 16.04.4? 这两者之间有什么区别?

如果言简意赅的回答这个问题的话,那么答案应该是你正在使用 Ubuntu 16.04。这个是基准版本,而 16.04.4 进一步指明这是 16.04 的第四个补丁版本。你可以将补丁版本理解为 Windows 世界里的服务包。在这里,16.04 和 16.04.4 都是正确的版本号。

那么输出的 Xenial 又是什么?那正是 Ubuntu 16.04 的版本代号。你可以阅读下面这篇文章获取更多信息:了解 Ubuntu 的命名惯例

其他一些获取 Ubuntu 版本的方法

你也可以使用下面任意的命令得到 Ubuntu 的版本:

cat /etc/lsb-release

输出如下信息:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"

How to check Ubuntu version in command line

你还可以使用下面的命令来获得 Ubuntu 版本:

cat /etc/issue

命令行的输出将会如下:

Ubuntu 16.04.4 LTS \n \l

不要介意输出末尾的\n \l. 这里 Ubuntu 版本就是 16.04.4,或者更加简单:16.04。

如何在图形界面下得到 Ubuntu 版本

在图形界面下获取 Ubuntu 版本更是小事一桩。这里我使用了 Ubuntu 18.04 的图形界面系统 GNOME 的屏幕截图来展示如何做到这一点。如果你在使用 Unity 或者别的桌面环境的话,显示可能会有所不同。这也是为什么我推荐使用命令行方式来获得版本的原因:你不用依赖形形色色的图形界面。

下面我来展示如何在桌面环境获取 Ubuntu 版本。

进入‘系统设置’并点击下面的‘详细信息’栏。

Finding Ubuntu version graphically

你将会看到系统的 Ubuntu 版本和其他和桌面系统有关的系统信息 这里的截图来自 GNOME

Finding Ubuntu version graphically

如何知道桌面环境以及其他的系统信息

你刚才学习的是如何得到 Ubuntu 的版本信息,那么如何知道桌面环境呢? 更进一步, 如果你还想知道当前使用的 Linux 内核版本呢?

有各种各样的命令你可以用来得到这些信息,不过今天我想推荐一个命令行工具, 叫做 Neofetch。 这个工具能在命令行完美展示系统信息,包括 Ubuntu 或者其他 Linux 发行版的系统图标。

用下面的命令安装 Neofetch:

sudo apt install neofetch

安装成功后,运行 neofetch 将会优雅的展示系统的信息如下。

System information in Linux terminal

如你所见,neofetch 完全展示了 Linux 内核版本、Ubuntu 的版本、桌面系统版本以及环境、主题和图标等等信息。

希望我如上展示方法能帮到你更快的找到你正在使用的 Ubuntu 版本和其他系统信息。如果你对这篇文章有其他的建议,欢迎在评论栏里留言。

再见。:)


via: https://itsfoss.com/how-to-know-ubuntu-unity-version/

作者:Abhishek Prakash 选题:lujun9972 译者:DavidChenLiang 校对:wxy

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

Twitter 允许用户将博客帖子和文章分享给全世界。使用 Python 和 Tweepy 库使得创建一个 Twitter 机器人来接管你的所有的推特变得非常简单。这篇文章告诉你如何去构建这样一个机器人。希望你能将这些概念也同样应用到其他的在线服务的项目中去。

开始

tweepy 库可以让创建一个 Twitter 机器人的过程更加容易上手。它包含了 Twitter 的 API 调用和一个很简单的接口。

下面这些命令使用 pipenv 在一个虚拟环境中安装 tweepy。如果你没有安装 pipenv,可以看一看我们之前的文章如何在 Fedora 上安装 Pipenv

$ mkdir twitterbot
$ cd twitterbot
$ pipenv --three
$ pipenv install tweepy
$ pipenv shell

Tweepy —— 开始

要使用 Twitter API ,机器人需要通过 Twitter 的授权。为了解决这个问题, tweepy 使用了 OAuth 授权标准。你可以通过在 https://apps.twitter.com/ 创建一个新的应用来获取到凭证。

创建一个新的 Twitter 应用

当你填完了表格并点击了“ 创建你自己的 Twitter 应用 Create your Twitter application ”的按钮后,你可以获取到该应用的凭证。 Tweepy 需要 用户密钥 API Key 用户密码 API Secret ,这些都可以在 “ 密钥和访问令牌 Keys and Access Tokens ” 中找到。

向下滚动页面,使用“ 创建我的访问令牌 Create my access token ”按钮生成一个“ 访问令牌 Access Token ” 和一个“ 访问令牌密钥 Access Token Secret ”。

使用 Tweppy —— 输出你的时间线

现在你已经有了所需的凭证了,打开一个文件,并写下如下的 Python 代码。

import tweepy
auth = tweepy.OAuthHandler("your_consumer_key", "your_consumer_key_secret")
auth.set_access_token("your_access_token", "your_access_token_secret")
api = tweepy.API(auth)
public_tweets = api.home_timeline()
for tweet in public_tweets:
    print(tweet.text)

在确保你正在使用你的 Pipenv 虚拟环境后,执行你的程序。

$ python tweet.py

上述程序调用了 home_timeline 方法来获取到你时间线中的 20 条最近的推特。现在这个机器人能够使用 tweepy 来获取到 Twitter 的数据,接下来尝试修改代码来发送 tweet。

使用 Tweepy —— 发送一条推特

要发送一条推特 ,有一个容易上手的 API 方法 update_status 。它的用法很简单:

api.update_status("The awesome text you would like to tweet")

Tweepy 拓展为制作 Twitter 机器人准备了非常多不同有用的方法。要获取 API 的详细信息,请查看文档

一个杂志机器人

接下来我们来创建一个搜索 Fedora Magazine 的推特并转推这些的机器人。

为了避免多次转推相同的内容,这个机器人存放了最近一条转推的推特的 ID 。 两个助手函数 store_last_idget_last_id 将会帮助存储和保存这个 ID。

然后,机器人使用 tweepy 搜索 API 来查找 Fedora Magazine 的最近的推特并存储这个 ID。

import tweepy

def store_last_id(tweet_id):
    """ Stores a tweet id in text file """
    with open('lastid', 'w') as fp:
        fp.write(str(tweet_id))


def get_last_id():
    """ Retrieve the list of tweets that were
    already retweeted """

    with open('lastid') as fp:
        return fp.read()

if __name__ == '__main__':

    auth = tweepy.OAuthHandler("your_consumer_key", "your_consumer_key_secret")
    auth.set_access_token("your_access_token", "your_access_token_secret")

    api = tweepy.API(auth)

    try:
        last_id = get_last_id()
    except FileNotFoundError:
        print("No retweet yet")
        last_id = None

    for tweet in tweepy.Cursor(api.search, q="fedoramagazine.org", since_id=last_id).items():
        if tweet.user.name  == 'Fedora Project':
            store_last_id(tweet.id)
            #tweet.retweet()
            print(f'"{tweet.text}" was retweeted')

为了只转推 Fedora Magazine 的推特 ,机器人搜索内容包含 fedoramagazine.org 和由 「Fedora Project」 Twitter 账户发布的推特。

结论

在这篇文章中你看到了如何使用 tweepy 的 Python 库来创建一个自动阅读、发送和搜索推特的 Twitter 应用。现在,你能使用你自己的创造力来创造一个你自己的 Twitter 机器人。

这篇文章的演示源码可以在 Github 找到。


via: https://fedoramagazine.org/learn-build-twitter-bot-python/

作者:Clément Verna 选题:lujun9972 译者:Bestony 校对:校对者ID

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

Fedora 28 Workstation 添加了一个功能允许你使用键盘快速搜索、选择和输入 emoji。emoji,这种可爱的表意文字是 Unicode 的一部分,在消息传递中使用得相当广泛,特别是在移动设备上。你可能听过这样的成语:“一图胜千言”。这正是 emoji 所提供的:简单的图像供你在交流中使用。Unicode 的每个版本都增加了更多 emoji,在最近的 Unicode 版本中添加了 200 多个 emoji。本文向你展示如何使它们在你的 Fedora 系统中易于使用。

很高兴看到 emoji 的数量在增长。但与此同时,它带来了如何在计算设备中输入它们的挑战。许多人已经将这些符号用于移动设备或社交网站中的输入。

[编者注:本文是对此主题以前发表过的文章的更新]。

在 Fedora 28 Workstation 上启用 emoji 输入

新的 emoji 输入法默认出现在 Fedora 28 Workstation 中。要使用它,必须使用“区域和语言设置”对话框启用它。从 Fedora Workstation 设置打开“区域和语言”对话框,或在“概要”中搜索它。

Region & Language settings tool

选择 + 控件添加输入源。出现以下对话框:

Adding an input source

选择最后选项(三个点)来完全展开选择。然后,在列表底部找到“Other”并选择它:

Selecting other input sources

在下面的对话框中,找到 “Typing Booster” 选项并选择它:

这个高级输入法由 iBus 在背后支持。该高级输入法可通过列表右侧的齿轮图标在列表中识别。

输入法下拉菜单自动出现在 GNOME Shell 顶部栏中。确认你的默认输入法 —— 在此示例中为英语(美国) - 被选为当前输入法,你就可以输入了。

Input method dropdown in Shell top bar

使用新的表情符号输入法

现在 emoji 输入法启用了,按键盘快捷键 Ctrl+Shift+E 搜索 emoji。将出现一个弹出对话框,你可以在其中输入搜索词,例如 “smile” 来查找匹配的符号。

Searching for smile emoji

使用箭头键翻页列表。然后按回车进行选择,字形将替换输入内容。


via: https://fedoramagazine.org/boost-typing-emoji-fedora-28-workstation/

作者:Paul W. Frields 选题:lujun9972 译者:geekpi 校对:wxy

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

这幅妙绝的题图来自 Miquel Beltran

我的技术生涯,从两年前算起。开始是 QA 测试员,一年后就转入开发人员角色。没怎么努力,也没有投入过多的个人时间。

你可以从我为何从生物学转向技术和我学习 Android 的一年 这两篇文章中找到些只言片语。今天,我想谈谈是自己是如何开始担任 Android 开发人员这个角色、如何换公司以及作为 Android 工程师的一年所得所失。

我的第一个职位角色

我的第一个职位角色, Android 开发者,开始于一年前。我工作的这家公司,可以花一半的时间去尝试其它角色的工作,这给我从 QA 职位转到 Android 开发者职位创造了机会。

这一转变归功于我在晚上和周末投入学习 Android 的时间。我通过了 Android 基础纳米学位Andriod 工程师纳米学位课程,也获得了 Google 开发者认证。这部分的详细故事在这儿

两个月后,公司雇佣了另一位 QA,我转向全职工作。挑战从此开始!

比起给他们提供一台笔记本电脑和一个 git 账号来说,要把某人转变为胜任的开发角色,显然困难重重。在这里我解释一下我在那段时间遇到的一些障碍:

缺乏预期

我面临的第一个问题是不知道公司对我的期望。我认为他们希望我从第一天起就有交付物,虽然不会要求像那些经验丰富的同事一样,但也要完成一个小任务就交付。这种感觉让我压力山大。由于没有明确的目标,我一直认为自己不够好,而且是个伪劣的冒牌货。

缺乏指导

在公司里没有导师的概念,环境也不允许我们一起工作。我们很少结对编程,因为总是在赶项目进度,公司要求我们持续交付。幸运的是,我的同事都乐于助人!无论何时我卡住或需要帮助,他们总是陪我一起解决。

缺乏反馈

那段时间,我从来没有得到过任何的反馈。我做的好还是坏?我应该改进些什么?我不知道,因为我没有得到过任何人的评论。

缺乏学习氛围

我认为,为了保持常新,我们应该通过阅读博客文章、观看演讲、参加会议、尝试新事物等方式持续学习。该公司在工作时间并没有安排学习时间,不幸的是,其它开发人员告诉我这很常见。由于没有学习时间,所以我觉得没有资格花费哪怕十分钟的时间来阅读与工作相关且很有意思的博客文章。

问题不仅在于缺乏明确的学习时间津贴,而且当我明确要求时,被拒绝了。

当我完成突击任务时,发生了一个例子,我们已经完成了任务,因此我询问是否可以用剩下的时间来学习 Kotlin。这个请求被拒绝了。

另外的例子是我想参加一个 Android 相关的研讨会,然后被要求从带薪年假中抽出时间。

冒充者综合征

在这公司缺乏指导、缺乏反馈、缺乏学习氛围,使我的开发者职业生涯的前九个月更加煎熬。我有感觉到,我内心的冒充者综合征与日俱增。

一个例子就是拉取代码进行公开展示和代码审查。有是我会请同事私下检查我的代码,并不想被公开拉取,向任何人展示。

其他时候,当我做代码审查时,会花好几分钟盯着“批准”按纽犹豫不决,在担心审查通过的代码会被其他同事找出毛病。

当我在一些事上持反对意见时,由于缺乏相关知识,担心被坐冷板凳,从来没有大声说出来过。

某些时间我会请同事私下[...]检查我的代码,以避免被公开展示。

新的公司,新的挑战

后来,我手边有了个新的机会。感谢曾经和我共事的朋友,我被 Babbel 邀请去参加初级 Android 工程师职位的招聘流程。

我见到了他们的团队,同时自告奋勇的在他们办公室主持了一次本地会议。此事让我下定决心要申请这个职位。我喜欢公司的箴言:全民学习。其次,公司每个人都非常友善,在那儿工作看起来很愉快!但我没有马上申请,因为我认为自己不够好,所以为什么能申请呢?

还好我的朋友和搭档推动我这样做,他们给了我发送简历的力量和勇气。过后不久就进入了面试流程。这很简单:以很小的程序的形式来进行编码挑战,随后是和团队一起的技术面试,之后是和招聘经理间关于团队合作的面试。

招聘过程

我用周未的时间来完成编码挑战的项目,并在周一就立即发送过去。不久就受邀去当场面试。

技术面试是关于编程挑战本身,我们谈论了 Android 好的不好的地方、我为什么以这种方式实现这功能,以及如何改进等等。随后是招聘经理进行的一次简短的关于团队合作面试,也有涉及到编程挑战的事,我们谈到了我面临的挑战,我如何解决这些问题,等等。

最后,通过面试,得到 offer,我授受了!

我的 Android 工程师生涯的第一年,有九个月在一个公司,后面三个月在当前的公司。

学习环境

对我来说一个大的变化就是每两周会和工程经理进行面对面会谈。那样,我很清楚我们的目标和方向。

在需要如何改进、需要如何提供帮助及如何寻求帮助这些事情上,我们得到持续的反馈和想法。他们除了提供内部培训的的福利外,我还有每周学习时间的福利,可以学习任意想学的。到目前为止,我正利用这些时间来提高我的 Kotlin 和 RxJava 方面知识。

每日的大部分时间,我们也做结对编程。我的办公桌上总是备着纸和笔,以便记下想法。我旁边还配了第二把椅子,以方便同事就坐。:-)

但是,我仍然在与冒充者综合征斗争。

仍然有冒充者综合征

我仍然在斗争。例如,在做结对编程时,当我对某个话题不太清楚时,即使我的同事很有耐心的一遍一遍为我解释,但有时我仍然还是不知道。

两次三次后,压力就堵到胸口。为什么我还不知道?为什么就那么难理解?这种状态让我焦虑万分。

我意识到我需要承认我确实不懂某个特定的主题,但第一步是要知道有这么个概念!有时,仅仅需要的就是更多的时间、更多的练习,最终会“在大脑中完全演绎” :-)

例如,我常常为 Java 的接口类和抽象类所困扰,不管看了多少的例子,还是不能完全明白他们之间的区别。但一旦我使用后,即使还不能解释其工作原理,也知道了怎么使用以及什么时候使用。

自信

当前公司的学习氛围提升了我的自信心。即使我还在问很多问题,也开始如鱼得水了。

经验较少并不意味着您的意见将不会被重视。比如一个提出的解决方案似乎太复杂了,我会挑战自我以更清晰的方式来重写。此外,我提出了一套不同的体验和观点,目前,对公司的应用程序用户体验改进有着很大帮助。

提高

工程师的角色不仅仅是编码,而是广泛的技能。 我仍然处于旅程的起点,在掌握它的道路上,我想着重于以下几点:

  • 交流:因为英文不是我的母语,所以有的时候我需要努力传达我的想法,这在我工作中是至关重要的。我可以通过写作,阅读和交谈来解决这个问题。
  • 提有建设性的反馈意见:我想给同事有意义的反馈,这样我们一起共同发展。
  • 为我的成就感到骄傲:我需要创建一个列表来跟踪各种成就,无论大小,或整体进步,所以当我挣扎时我可以回顾并感觉良好。
  • 不要着迷于不知道的事情:当有很多新事物出现时很难做到都知道,所以只关注必须的,及手头项目需要的东西,这非常重要的。
  • 多和同事分享知识:我是初级的并不意味着没有可以分享的!我需要持续分享我感兴趣的的文章及讨论话题。我知道同事们会感激我的。
  • 耐心和持续学习:和现在一样的保持不断学习,但对自己要有更多耐心。
  • 自我保健:随时注意休息,不要为难自己。 放松也富有成效。

via: https://proandroiddev.com/a-year-as-android-engineer-55e2a428dfc8

作者:Lara Martín 译者:runningwater 校对:wxy

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

当你使用默认密码创建用户时,你必须强制用户在下一次登录时更改密码。

当你在一个组织中工作时,此选项是强制性的。因为老员工可能知道默认密码,他们可能会也可能不会尝试不当行为。

这是安全投诉之一,所以,确保你必须以正确的方式处理此事而无任何失误。即使是你的团队成员也要一样做。

大多数用户都很懒,除非你强迫他们更改密码,否则他们不会这样做。所以要做这个实践。

出于安全原因,你需要经常更改密码,或者至少每个月更换一次。

确保你使用的是难以猜测的密码(大小写字母,数字和特殊字符的组合)。它至少应该为 10-15 个字符。

我们运行了一个 shell 脚本来在 Linux 服务器中创建一个用户账户,它会自动为用户附加一个密码,密码是实际用户名和少量数字的组合。

我们可以通过使用以下两种方法来实现这一点:

  • passwd 命令
  • chage 命令

建议阅读:

方法 1:使用 passwd 命令

passwd 的意思是“密码”。它用于更新用户的身份验证令牌。passwd 命令/实用程序用于设置、修改或更改用户的密码。

普通的用户只能更改自己的账户,但超级用户可以更改任何账户的密码。

此外,我们还可以使用其他选项,允许用户执行其他活动,例如删除用户密码、锁定或解锁用户账户、设置用户账户的密码过期时间等。

在 Linux 中这可以通过调用 Linux-PAM 和 Libuser API 执行。

在 Linux 中创建用户时,用户详细信息将存储在 /etc/passwd 文件中。passwd 文件将每个用户的详细信息保存为带有七个字段的单行。

此外,在 Linux 系统中创建新用户时,将更新以下四个文件。

  • /etc/passwd: 用户详细信息将在此文件中更新。
  • /etc/shadow: 用户密码信息将在此文件中更新。
  • /etc/group: 新用户的组详细信息将在此文件中更新。
  • /etc/gshadow: 新用户的组密码信息将在此文件中更新。

如何使用 passwd 命令执行此操作

我们可以使用 passwd 命令并添加 -e 选项来执行此操作。

为了测试这一点,让我们创建一个新用户账户,看看它是如何工作的。

# useradd -c "2g Admin - Magesh M" magesh && passwd magesh
Changing password for user magesh.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

使用户账户的密码失效,那么在下次登录尝试期间,用户将被迫更改密码。

# passwd -e magesh
Expiring password for user magesh.
passwd: Success

当我第一次尝试使用此用户登录系统时,它要求我设置一个新密码。

login as: magesh
[email protected]'s password:
You are required to change your password immediately (root enforced)
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user magesh.
Changing password for magesh.
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Connection to localhost closed.

方法 2:使用 chage 命令

chage 意即“改变时间”。它会更改用户密码过期信息。

chage 命令会改变上次密码更改日期之后需要修改密码的天数。系统使用此信息来确定用户何时必须更改他/她的密码。

它允许用户执行其他活动,例如设置帐户到期日期,到期后设置密码失效,显示帐户过期信息,设置密码更改前的最小和最大天数以及设置到期警告天数。

如何使用 chage 命令执行此操作

让我们在 chage 命令的帮助下,通过添加 -d 选项执行此操作。

为了测试这一点,让我们创建一个新用户帐户,看看它是如何工作的。我们将创建一个名为 thanu 的用户帐户。

# useradd -c "2g Editor - Thanisha M" thanu && passwd thanu
Changing password for user thanu.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

要实现这一点,请使用 chage 命令将用户的上次密码更改日期设置为 0。

# chage -d 0 thanu

# chage -l thanu
Last password change : Jul 18, 2018
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

当我第一次尝试使用此用户登录系统时,它要求我设置一个新密码。

login as: thanu
[email protected]'s password:
You are required to change your password immediately (root enforced)
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user thanu.
Changing password for thanu.
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Connection to localhost closed.

via: https://www.2daygeek.com/how-to-force-user-to-change-password-on-next-login-in-linux/

作者:Prakash Subramanian 选题:lujun9972 译者:MjSeven 校对:wxy

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

想寻找一个可以存储和交易你的比特币、以太坊和其它数字货币的软件吗?这里有 6 个开源的软件可以选择。

没有数字货币钱包,像比特币和以太坊这样的数字货币只不过是又一个空想罢了。这些钱包对于保存、发送、以及接收数字货币来说是必需的东西。

迅速成长的 数字货币 之所以是革命性的,都归功于它的去中心化,该网络中没有中央权威,每个人都享有平等的权力。开源技术是数字货币和 区块链 网络的核心所在。它使得这个充满活力的新兴行业能够从去中心化中获益 —— 比如,不可改变、透明和安全。

如果你正在寻找一个自由开源的数字货币钱包,请继续阅读,并开始去探索以下的选择能否满足你的需求。

1、 Copay

Copay 是一个能够很方便地存储比特币的开源数字货币钱包。这个软件以 MIT 许可证 发布。

Copay 服务器也是开源的。因此,开发者和比特币爱好者可以在服务器上部署他们自己的应用程序来完全控制他们的活动。

Copay 钱包能让你手中的比特币更加安全,而不是去信任不可靠的第三方。它允许你使用多重签名来批准交易,并且支持在同一个 app 钱包内支持存储多个独立的钱包。

Copay 可以在多种平台上使用,比如 Android、Windows、MacOS、Linux、和 iOS。

2、 MyEtherWallet

正如它的名字所示,MyEtherWallet (缩写为 MEW) 是一个以太坊钱包。它是开源的(遵循 MIT 许可证)并且是完全在线的,可以通过 web 浏览器来访问它。

这个钱包的客户端界面非常简洁,它可以让你自信而安全地参与到以太坊区块链中。

3、 mSIGNA

mSIGNA 是一个功能强大的桌面版应用程序,用于在比特币网络上完成交易。它遵循 MIT 许可证 并且在 MacOS、Windows、和 Linux 上可用。

这个区块链钱包可以让你完全控制你存储的比特币。其中一些特性包括用户友好性、灵活性、去中心化的离线密钥生成能力、加密的数据备份,以及多设备同步功能。

4、 Armory

Armory 是一个在你的计算机上产生和保管比特币私钥的开源钱包(遵循 GNU AGPLv3)。它通过使用冷存储和支持多重签名的能力增强了安全性。

使用 Armory,你可以在完全离线的计算机上设置一个钱包;你将通过 仅查看 watch-only 功能在因特网上查看你的比特币具体信息,这样有助于改善安全性。这个钱包也允许你去创建多个地址,并使用它们去完成不同的事务。

Armory 可用于 MacOS、Windows、和几个比较有特色的 Linux 平台上(包括树莓派)。

5、 Electrum

Electrum 是一个既对新手友好又具备专家功能的比特币钱包。它遵循 MIT 许可证 来发行。

Electrum 可以在你的本地机器上使用较少的资源来实现本地加密你的私钥,支持冷存储,并且提供多重签名能力。

它在各种操作系统和设备上都可以使用,包括 Windows、MacOS、Android、iOS 和 Linux,并且也可以在像 Trezor 这样的硬件钱包中使用。

6、 Etherwall

Etherwall 是第一款可以在桌面计算机上存储和发送以太坊的钱包。它是一个遵循 GPLv3 许可证 的开源钱包。

Etherwall 非常直观而且速度很快。更重要的是,它增加了你的私钥安全性,你可以在一个全节点或瘦节点上来运行它。它作为全节点客户端运行时,可以允许你在本地机器上下载整个以太坊区块链。

Etherwall 可以在 MacOS、Linux 和 Windows 平台上运行,并且它也支持 Trezor 硬件钱包。

智者之言

自由开源的数字钱包在让更多的人快速上手数字货币方面扮演至关重要的角色。

在你使用任何数字货币软件钱包之前,你一定要确保你的安全,而且一定要记住并完全遵循确保你的资金安全的最佳实践。

如果你喜欢的开源数字货币钱包不在以上的清单中,请在下面的评论区共享出你所知道的开源钱包。


via: https://opensource.com/article/18/7/crypto-wallets

作者:Dr.Michael J.Garbade 选题:lujun9972 译者:qhwdw 校对:wxy

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