2018年10月

简介:关于如何在Linux终端中根据乱序文件创建M3U播放列表实现循序播放的小建议。

Create M3U playlists in Linux Terminal

我是外国电视连续剧的粉丝,这些连续剧不太容易从 DVD 或像 Netflix 这样的流媒体上获得。好在,您可以在 YouTube 上找到一些内容并从 YouTube 下载

现在出现了一个问题。你的文件可能不是按顺序存储的。在 GNU/Linux中,文件不是按数字顺序自然排序的,因此我必须创建 .m3u 播放列表,以便 MPV 视频播放器可以按顺序播放视频而不是乱顺进行播放。

同样的,有时候表示第几集的数字是在文件名中间或结尾的,像这样 “My Web Series S01E01.mkv”。这里的剧集信息位于文件名的中间,“S01E01”告诉我们人类这是第一集,后面还有其它剧集。

因此我要做的事情就是在视频墓中创建一个 .m3u 播放列表,并告诉 MPV 播放这个 .m3u 播放列表,MPV 自然会按顺序播放这些视频.

什么是 M3U 文件?

M3U 基本上就是个按特定顺序包含文件名的文本文件。当类似 MPV 或 VLC 这样的播放器打开 M3U 文件时,它会尝试按给定的顺序播放指定文件。

创建 M3U 来按顺序播放音频/视频文件

就我而言, 我使用了下面命令:

$/home/shirish/Videos/web-series-video/$ ls -1v |grep .mkv > /tmp/1.m3u && mv /tmp/1.m3u .

然我们拆分一下看看每个部分表示什么意思:

ls -1v = 这就是用普通的 ls 来列出目录中的内容. 其中 -1 表示每行显示一个文件。而 -v 表示根据文本中的数字(版本)进行自然排序。

| grep .mkv = 基本上就是告诉 ls 寻找那些以 .mkv 结尾的文件。它也可以是 .mp4 或其他任何你想要的媒体文件格式。

通过在控制台上运行命令来进行试运行通常是个好主意:

ls -1v |grep .mkv
My Web Series S01E01 [Episode 1 Name] Multi 480p WEBRip x264 - xRG.mkv
My Web Series S01E02 [Episode 2 Name] Multi 480p WEBRip x264 - xRG.mkv
My Web Series S01E03 [Episode 3 Name] Multi 480p WEBRip x264 - xRG.mkv
My Web Series S01E04 [Episode 4 Name] Multi 480p WEBRip x264 - xRG.mkv
My Web Series S01E05 [Episode 5 Name] Multi 480p WEBRip x264 - xRG.mkv
My Web Series S01E06 [Episode 6 Name] Multi 480p WEBRip x264 - xRG.mkv
My Web Series S01E07 [Episode 7 Name] Multi 480p WEBRip x264 - xRG.mkv
My Web Series S01E08 [Episode 8 Name] Multi 480p WEBRip x264 - xRG.mkv

结果显示我要做的是正确的。现在下一步就是让输出以 .m3u 播放列表的格式输出。

ls -1v |grep .mkv > /tmp/web_playlist.m3u && mv /tmp/web_playlist.m3u .

这就在当前目录中创建了 .m3u 文件。这个 .m3u 播放列表只不过是一个 .txt 文件,其内容与上面相同,扩展名为 .m3u 而已。 你也可以手动编辑它,并按照想要的顺序添加确切的文件名。

之后你只需要这样做:

mpv web_playlist.m3u

一般来说,MPV 和播放列表的好处在于你不需要一次性全部看完。 您可以一次看任意长时间,然后在下一次查看其余部分。

我希望写一些有关 MPV 的文章,以及如何制作在媒体文件中嵌入字幕的 mkv 文件,但这是将来的事情了。

注意: 这是开源软件,不鼓励盗版。


via: https://itsfoss.com/create-m3u-playlist-linux/

作者:Shirsh 选题:lujun9972 译者:lujun9972 校对:wxy

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

什么是基于 SSH 密钥的认证?

众所周知,Secure Shell,又称 SSH,是允许你通过无安全网络(例如 Internet)和远程系统之间安全访问/通信的加密网络协议。无论何时使用 SSH 在无安全网络上发送数据,它都会在源系统上自动地被加密,并且在目的系统上解密。SSH 提供了四种加密方式,基于密码认证基于密钥认证基于主机认证键盘认证。最常用的认证方式是基于密码认证和基于密钥认证。

在基于密码认证中,你需要的仅仅是远程系统上用户的密码。如果你知道远程用户的密码,你可以使用 ssh user@remote-system-name 访问各自的系统。另一方面,在基于密钥认证中,为了通过 SSH 通信,你需要生成 SSH 密钥对,并且为远程系统上传 SSH 公钥。每个 SSH 密钥对由私钥与公钥组成。私钥应该保存在客户系统上,公钥应该上传给远程系统。你不应该将私钥透露给任何人。希望你已经对 SSH 和它的认证方式有了基本的概念。

这篇教程,我们将讨论如何在 Linux 上配置基于密钥认证的 SSH。

在 Linux 上配置基于密钥认证的 SSH

为方便演示,我将使用 Arch Linux 为本地系统,Ubuntu 18.04 LTS 为远程系统。

本地系统详情:

  • OS: Arch Linux Desktop
  • IP address: 192.168.225.37/24

远程系统详情:

  • OS: Ubuntu 18.04 LTS Server
  • IP address: 192.168.225.22/24

本地系统配置

就像我之前所说,在基于密钥认证的方法中,想要通过 SSH 访问远程系统,需要将公钥上传到远程系统。公钥通常会被保存在远程系统的一个 ~/.ssh/authorized_keys 文件中。

注意事项:不要使用 root 用户生成密钥对,这样只有 root 用户才可以使用。使用普通用户创建密钥对。

现在,让我们在本地系统上创建一个 SSH 密钥对。只需要在客户端系统上运行下面的命令。

$ ssh-keygen

上面的命令将会创建一个 2048 位的 RSA 密钥对。你需要输入两次密码。更重要的是,记住你的密码。后面将会用到它。

样例输出

Generating public/private rsa key pair.
Enter file in which to save the key (/home/sk/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sk/.ssh/id_rsa.
Your public key has been saved in /home/sk/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wYOgvdkBgMFydTMCUI3qZaUxvjs+p2287Tn4uaZ5KyE [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|+=+*= + |
|o.o=.* = |
|.oo * o + |
|. = + . o |
|. o + . S |
| . E . |
| + o |
| +.*o+o |
| .o*=OO+ |
+----[SHA256]-----+

如果你已经创建了密钥对,你将看到以下信息。输入 y 就会覆盖已存在的密钥。

/home/username/.ssh/id_rsa already exists.
Overwrite (y/n)?

请注意密码是可选的。如果你输入了密码,那么每次通过 SSH 访问远程系统时都要求输入密码,除非你使用了 SSH 代理保存了密码。如果你不想要密码(虽然不安全),简单地敲两次回车。不过,我建议你使用密码。从安全的角度来看,使用无密码的 ssh 密钥对不是什么好主意。这种方式应该限定在特殊的情况下使用,例如,没有用户介入的服务访问远程系统。(例如,用 rsync 远程备份……)

如果你已经在个人文件 ~/.ssh/id_rsa 中有了无密码的密钥,但想要更新为带密码的密钥。使用下面的命令:

$ ssh-keygen -p -f ~/.ssh/id_rsa

样例输出

Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.

现在,我们已经在本地系统上创建了密钥对。接下来,使用下面的命令将 SSH 公钥拷贝到你的远程 SSH 服务端上。

$ ssh-copy-id [email protected]

在这里,我把本地(Arch Linux)系统上的公钥拷贝到了远程系统(Ubuntu 18.04 LTS)上。从技术上讲,上面的命令会把本地系统 ~/.ssh/id_rsa.pub 文件中的内容拷贝到远程系统 ~/.ssh/authorized_keys 中。明白了吗?非常棒。

输入 yes 来继续连接你的远程 SSH 服务端。接着,输入远程系统用户 sk 的密码。

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:

Number of key(s) added: 1

Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

如果你已经拷贝了密钥,但想要替换为新的密码,使用 -f 选项覆盖已有的密钥。

$ ssh-copy-id -f [email protected]

我们现在已经成功地将本地系统的 SSH 公钥添加进了远程系统。现在,让我们在远程系统上完全禁用掉基于密码认证的方式。因为我们已经配置了密钥认证,因此不再需要密码认证了。

在远程系统上禁用基于密码认证的 SSH

你需要在 root 用户或者 sudo 执行下面的命令。

禁用基于密码的认证,你需要在远程系统的终端里编辑 /etc/ssh/sshd_config 配置文件:

$ sudo vi /etc/ssh/sshd_config

找到下面这一行,去掉注释然后将值设为 no

PasswordAuthentication no

重启 ssh 服务让它生效。

$ sudo systemctl restart sshd

从本地系统访问远程系统

在本地系统上使用命令 SSH 你的远程服务端:

$ ssh [email protected]

输入密码。

样例输出

Enter passphrase for key '/home/sk/.ssh/id_rsa':
Last login: Mon Jul 9 09:59:51 2018 from 192.168.225.37
sk@ubuntuserver:~$

现在,你就能 SSH 你的远程系统了。如你所见,我们已经使用之前 ssh-keygen 创建的密码登录进了远程系统的账户,而不是使用当前账户实际的密码。

如果你试图从其它客户端系统 ssh(远程系统),你将会得到这条错误信息。比如,我试图通过命令从 CentOS SSH 访问 Ubuntu 系统:

样例输出

The authenticity of host '192.168.225.22 (192.168.225.22)' can't be established.
ECDSA key fingerprint is 67:fc:69:b7:d4:4d:fd:6e:38:44:a8:2f:08:ed:f4:21.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.225.22' (ECDSA) to the list of known hosts.
Permission denied (publickey).

如你所见,除了 CentOS(LCTT 译注:根据上文,这里应该是 Arch)系统外,我不能通过其它任何系统 SSH 访问我的远程系统 Ubuntu 18.04。

为 SSH 服务端添加更多客户端系统的密钥

这点非常重要。就像我说过的那样,除非你配置过(在之前的例子中,是 Ubuntu),否则你不能通过 SSH 访问到远程系统。如果我希望给更多客户端予以权限去访问远程 SSH 服务端,我应该怎么做?很简单。你需要在所有的客户端系统上生成 SSH 密钥对并且手动拷贝 ssh 公钥到想要通过 ssh 访问的远程服务端上。

在客户端系统上创建 SSH 密钥对,运行:

$ ssh-keygen

输入两次密码。现在,ssh 密钥对已经生成了。你需要手动把公钥(不是私钥)拷贝到远程服务端上。

使用以下命令查看公钥:

$ cat ~/.ssh/id_rsa.pub

应该会输出类似下面的信息:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCt3a9tIeK5rPx9p74/KjEVXa6/OODyRp0QLS/sLp8W6iTxFL+UgALZlupVNgFjvRR5luJ9dLHWwc+d4umavAWz708e6Na9ftEPQtC28rTFsHwmyLKvLkzcGkC5+A0NdbiDZLaK3K3wgq1jzYYKT5k+IaNS6vtrx5LDObcPNPEBDt4vTixQ7GZHrDUUk5586IKeFfwMCWguHveTN7ykmo2EyL2rV7TmYq+eY2ZqqcsoK0fzXMK7iifGXVmuqTkAmZLGZK8a3bPb6VZd7KFum3Ezbu4BXZGp7FVhnOMgau2kYeOH/ItKPzpCAn+dg3NAAziCCxnII9b4nSSGz3mMY4Y7 ostechnix@centosserver

拷贝所有内容(通过 USB 驱动器或者其它任何介质),然后去你的远程服务端的终端,像下面那样,在 $HOME 下创建文件夹叫做 .ssh。你需要以 root 身份执行命令(注:不一定需要 root)。

$ mkdir -p ~/.ssh

现在,将前几步创建的客户端系统的公钥添加进文件中。

echo {Your_public_key_contents_here} >> ~/.ssh/authorized_keys

在远程系统上重启 ssh 服务。现在,你可以在新的客户端上 SSH 远程服务端了。

如果觉得手动添加 ssh 公钥有些困难,在远程系统上暂时性启用密码认证,使用 ssh-copy-id 命令从本地系统上拷贝密钥,最后禁用密码认证。

推荐阅读:

好了,到此为止。基于密钥认证的 SSH 提供了一层防止暴力破解的额外保护。如你所见,配置密钥认证一点也不困难。这是一个非常好的方法让你的 Linux 服务端安全可靠。

不久我会带来另一篇有用的文章。请继续关注 OSTechNix。

干杯!


via: https://www.ostechnix.com/configure-ssh-key-based-authentication-linux/

作者:SK 选题:lujun9972 译者:LuuMing 校对:pityonline

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

这个月的 Python 专栏将介绍一些 Django 包,它们有益于你的工作,以及你的个人或业余项目。

Django 开发者们,在这个月的 Python 专栏中,我们会介绍一些能帮助你们的软件包。这些软件包是我们最喜欢的 Django 库,能够节省开发时间,减少样板代码,通常来说,这会让我们的生活更加轻松。我们为 Django 应用准备了六个包,为 Django 的 REST 框架准备了两个包。几乎所有我们的项目里,都用到了这些包,真的,不是说笑。

不过在继续阅读之前,请先看看我们关于让 Django 管理后台更安全的几个提示,以及这篇关于 5 个最受欢迎的开源 Django 包 的文章。

有用又省时的工具集合:django-extensions

django-extensions 这个 Django 包非常受欢迎,全是有用的工具,比如下面这些管理命令:

  • shell_plus 打开 Django 的管理 shell,这个 shell 已经自动导入了所有的数据库模型。在测试复杂的数据关系时,就不需要再从几个不同的应用里做导入操作了。
  • clean_pyc 删除项目目录下所有位置的 .pyc 文件
  • create_template_tags 在指定的应用下,创建模板标签的目录结构。
  • describe_form 输出模型的表单定义,可以粘贴到 forms.py 文件中。(需要注意的是,这种方法创建的是普通 Django 表单,而不是模型表单。)
  • notes 输出你项目里所有带 TODO、FIXME 等标记的注释。

Django-extensions 还包括几个有用的抽象基类,在定义模型时,它们能满足常见的模式。当你需要以下模型时,可以继承这些基类:

  • TimeStampedModel:这个模型的基类包含了 created 字段和 modified 字段,还有一个 save() 方法,在适当的场景下,该方法自动更新 createdmodified 字段的值。
  • ActivatorModel:如果你的模型需要像 statusactivate_datedeactivate_date 这样的字段,可以使用这个基类。它还自带了一个启用 .active().inactive() 查询集的 manager。
  • TitleDescriptionModelTitleSlugDescriptionModel:这两个模型包括了 titledescription 字段,其中 description 字段还包括 slug,它根据 title 字段自动产生。

django-extensions 还有其他更多的功能,也许对你的项目有帮助,所以,去浏览一下它的文档吧!

12 因子应用的配置:django-environ

在 Django 项目的配置方面,django-environ 提供了符合 12 因子应用 方法论的管理方法。它是另外一些库的集合,包括 envparsehoncho 等。安装了 django-environ 之后,在项目的根目录创建一个 .env 文件,用这个文件去定义那些随环境不同而不同的变量,或者需要保密的变量。(比如 API 密钥,是否启用调试,数据库的 URL 等)

然后,在项目的 settings.py 中引入 environ,并参考官方文档的例子设置好 environ.PATH()environ.Env()。就可以通过 env('VARIABLE_NAME') 来获取 .env 文件中定义的变量值了。

创建出色的管理命令:django-click

django-click 是基于 Click 的,(我们之前推荐过两次 Click),它对编写 Django 管理命令很有帮助。这个库没有很多文档,但是代码仓库中有个存放测试命令的目录,非常有参考价值。 django-click 基本的 Hello World 命令是这样写的:

# app_name.management.commands.hello.py
import djclick as click

@click.command()
@click.argument('name')
def command(name):
    click.secho(f'Hello, {name}')

在命令行下调用它,这样执行即可:

>> ./manage.py hello Lacey
Hello, Lacey

处理有限状态机:django-fsm

django-fsm 给 Django 的模型添加了有限状态机的支持。如果你管理一个新闻网站,想用类似于“写作中”、“编辑中”、“已发布”来流转文章的状态,django-fsm 能帮你定义这些状态,还能管理状态变化的规则与限制。

Django-fsm 为模型提供了 FSMField 字段,用来定义模型实例的状态。用 django-fsm 的 @transition 修饰符,可以定义状态变化的方法,并处理状态变化的任何副作用。

虽然 django-fsm 文档很轻量,不过 Django 中的工作流(状态) 这篇 GitHub Gist 对有限状态机和 django-fsm 做了非常好的介绍。

联系人表单:#django-contact-form

联系人表单可以说是网站的标配。但是不要自己去写全部的样板代码,用 django-contact-form 在几分钟内就可以搞定。它带有一个可选的能过滤垃圾邮件的表单类(也有不过滤的普通表单类)和一个 ContactFormView 基类,基类的方法可以覆盖或自定义修改。而且它还能引导你完成模板的创建,好让表单正常工作。

用户注册和认证:django-allauth

django-allauth 是一个 Django 应用,它为用户注册、登录/注销、密码重置,还有第三方用户认证(比如 GitHub 或 Twitter)提供了视图、表单和 URL,支持邮件地址作为用户名的认证方式,而且有大量的文档记录。第一次用的时候,它的配置可能会让人有点晕头转向;请仔细阅读安装说明,在自定义你的配置时要专注,确保启用某个功能的所有配置都用对了。

处理 Django REST 框架的用户认证:django-rest-auth

如果 Django 开发中涉及到对外提供 API,你很可能用到了 Django REST Framework(DRF)。如果你在用 DRF,那么你应该试试 django-rest-auth,它提供了用户注册、登录/注销,密码重置和社交媒体认证的端点(是通过添加 django-allauth 的支持来实现的,这两个包协作得很好)。

Django REST 框架的 API 可视化:django-rest-swagger

Django REST Swagger 提供了一个功能丰富的用户界面,用来和 Django REST 框架的 API 交互。你只需要安装 Django REST Swagger,把它添加到 Django 项目的已安装应用中,然后在 urls.py 中添加 Swagger 的视图和 URL 模式就可以了,剩下的事情交给 API 的 docstring 处理。

API 的用户界面按照 app 的维度展示了所有端点和可用方法,并列出了这些端点的可用操作,而且它提供了和 API 交互的功能(比如添加/删除/获取记录)。django-rest-swagger 从 API 视图中的 docstrings 生成每个端点的文档,通过这种方法,为你的项目创建了一份 API 文档,这对你,对前端开发人员和用户都很有用。


via: https://opensource.com/article/18/9/django-packages

作者:Jeff Triplett 选题:lujun9972 译者:belitex 校对:wxy

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

以下内容将向你介绍如何轻松对网络带宽做出限制,并在类 Unix 操作系统中对网络流量进行优化。通过限制网络带宽,可以节省应用程序不必要的带宽消耗,包括软件包管理器(pacman、yum、apt)、web 浏览器、torrent 客户端、下载管理器等,并防止单个或多个用户滥用网络带宽。在本文当中,将会介绍 Wondershaper 这一个实用的命令行程序,这是我认为限制 Linux 系统 Internet 或本地网络带宽的最简单、最快捷的方式之一。

请注意,Wondershaper 只能限制本地网络接口的传入和传出流量,而不能限制路由器或调制解调器的接口。换句话说,Wondershaper 只会限制本地系统本身的网络带宽,而不会限制网络中的其它系统。因此 Wondershaper 主要用于限制本地系统中一个或多个网卡的带宽。

下面来看一下 Wondershaper 是如何优化网络流量的。

在 Linux 中使用 Wondershaper 限制网络带宽

wondershaper 是用于显示系统网卡网络带宽的简单脚本。它使用了 iproute 的 tc 命令,但大大简化了操作过程。

安装 Wondershaper

使用 git clone 克隆 Wondershaper 的版本库就可以安装最新版本:

$ git clone https://github.com/magnific0/wondershaper.git

按照以下命令进入 wondershaper 目录并安装:

$ cd wondershaper
$ sudo make install

然后执行以下命令,可以让 wondershaper 在每次系统启动时都自动开始服务:

$ sudo systemctl enable wondershaper.service
$ sudo systemctl start wondershaper.service

如果你不强求安装最新版本,也可以使用软件包管理器(官方和非官方均可)来进行安装。

wondershaperArch 用户软件仓库(Arch User Repository,AUR)中可用,所以可以使用类似 yay 这些 AUR 辅助软件在基于 Arch 的系统中安装 wondershaper

$ yay -S wondershaper-git

对于 Debian、Ubuntu 和 Linux Mint 可以使用以下命令安装:

$ sudo apt-get install wondershaper

对于 Fedora 可以使用以下命令安装:

$ sudo dnf install wondershaper

对于 RHEL、CentOS,只需要启用 EPEL 仓库,就可以使用以下命令安装:

$ sudo yum install epel-release
$ sudo yum install wondershaper

在每次系统启动时都自动启动 wondershaper 服务。

$ sudo systemctl enable wondershaper.service
$ sudo systemctl start wondershaper.service

用法

首先需要找到网络接口的名称,通过以下几个命令都可以查询到网卡的详细信息:

$ ip addr
$ route
$ ifconfig

在确定网卡名称以后,就可以按照以下的命令限制网络带宽:

$ sudo wondershaper -a <adapter> -d <rate> -u <rate>

例如,如果网卡名称是 enp0s8,并且需要把上行、下行速率分别限制为 1024 Kbps 和 512 Kbps,就可以执行以下命令:

$ sudo wondershaper -a enp0s8 -d 1024 -u 512

其中参数的含义是:

  • -a:网卡名称
  • -d:下行带宽
  • -u:上行带宽

如果要对网卡解除网络带宽的限制,只需要执行:

$ sudo wondershaper -c -a enp0s8

或者:

$ sudo wondershaper -c enp0s8

如果系统中有多个网卡,为确保稳妥,需要按照上面的方法手动设置每个网卡的上行、下行速率。

如果你是通过 git clone 克隆 GitHub 版本库的方式安装 Wondershaper,那么在 /etc/conf.d/ 目录中会存在一个名为 wondershaper.conf 的配置文件,修改这个配置文件中的相应值(包括网卡名称、上行速率、下行速率),也可以设置上行或下行速率。

$ sudo nano /etc/conf.d/wondershaper.conf

[wondershaper]
# Adapter
#
IFACE="eth0"

# Download rate in Kbps
#
DSPEED="2048"

# Upload rate in Kbps
#
USPEED="512"

Wondershaper 使用前:

Wondershaper 使用后:

可以看到,使用 Wondershaper 限制网络带宽之后,下行速率与限制之前相比已经大幅下降。

执行以下命令可以查看更多相关信息。

$ wondershaper -h

也可以查看 Wondershaper 的用户手册:

$ man wondershaper

根据测试,Wondershaper 按照上面的方式可以有很好的效果。你可以试用一下,然后发表你的看法。


via: https://www.ostechnix.com/how-to-limit-network-bandwidth-in-linux-using-wondershaper/

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

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

ScreenCloud是一个很棒的小程序,你甚至不知道你需要它。桌面 Linux 的默认屏幕截图流程很好(PrtScr 按钮),我们甚至有一些强大的截图工具,如 Shutter。但是,ScreenCloud 有一个非常简单但非常方便的功能,让我爱上了它。在我们深入它之前,让我们先看一个背景故事。

我截取了很多截图,远超常人。收据、注册详细信息、开发工作、文章中程序的截图等等。我接下来要做的就是打开浏览器,浏览我最喜欢的云存储并将重要的内容转储到那里,以便我可以在手机上以及 PC 上的多个操作系统上访问它们。这也让我可以轻松与我的团队分享我正在使用的程序的截图。

我对这个标准的截图流程没有抱怨,打开浏览器并登录我的云,然后手动上传屏幕截图,直到我遇到 ScreenCloud。

ScreenCloud

ScreenCloud 是跨平台的程序,它提供轻松的屏幕截图功能和灵活的云备份选项管理。这包括使用你自己的 FTP 服务器

ScreenCloud 很顺滑,在细节上投入了大量的精力。它为你提供了非常容易记住的热键来捕获全屏、活动窗口或鼠标选择区域。

ScreenCloud 的默认键盘快捷键

截取屏幕截图后,你可以设置 ScreenCloud 如何处理图像或直接将其上传到你选择的云服务。它甚至支持 SFTP。截图上传后(通常在几秒钟内),图像链接就会被自动复制到剪贴板,这让你可以轻松共享。

你还可以使用 ScreenCloud 进行一些基本编辑。为此,你需要将 “Save to” 设置为 “Ask me”。此设置在应用图标菜单中有并且通常是默认设置。当使用它时,当你截取屏幕截图时,你会看到编辑文件的选项。在这里,你可以在屏幕截图中添加箭头、文本和数字。

Editing screenshots with ScreenCloud

用 ScreenCloud 编辑截屏

在 Linux 上安装 ScreenCloud

ScreenCloud 可在 Snap 商店中找到。因此,你可以通过访问 Snap 商店或运行以下命令,轻松地将其安装在 Ubuntu 和其他启用 Snap 的发行版上。

sudo snap install screencloud

对于无法通过 Snap 安装程序的 Linux 发行版,你可以在这里下载 AppImage。进入下载文件夹,右键单击并在那里打开终端。然后运行以下命令。

sudo chmod +x ScreenCloud-v1.4.0-x86_64.AppImage

然后,你可以通过双击下载的文件来启动程序。

总结

ScreenCloud 适合所有人吗?可能不会。它比默认屏幕截图更好吗?可能是。如果你正在截某些屏幕,有可能它是重要的或是你想分享的。ScreenCloud 可以更轻松,更快速地备份或共享屏幕截图。所以,如果你想要这些功能,你应该试试 ScreenCloud。

欢迎在用下面的评论栏提出你的想法和意见。还有不要忘记与朋友分享这篇文章。干杯。


via: https://itsfoss.com/screencloud-app/

作者:Aquil Roshan 选题:lujun9972 译者:geekpi 校对:wxy

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

有一天,我正在测试 Dosbox – 这是一个在 Linux 平台上运行 MS-DOS 游戏与程序的软件。当我在搜索一些常用的软件,例如 Turbo C++ 时,我意外留意到了一个叫做 WinWorld 的网站。我查看了这个网站上的某些内容,并且着实被惊艳到了。WinWorld 收集了非常多经典的,但已经被它们的开发者所抛弃许久的操作系统、软件、应用、开发工具、游戏以及各式各样的工具。它是一个以保存和分享古老的、已经被废弃的或者预发布版本程序为目的的线上博物馆,由社区成员和志愿者运营。

WinWorld 于 2013 年开始运营。它的创始者声称是被 Yahoo birefcases 激发了灵感并以此构建了这个网站。这个网站原目标是保存并且分享老旧软件。多年来,许多志愿者以不同方式提供了帮助,WinWorld 收集的老旧软件增长迅速。整个 WinWorld 仓库都是自由开源的,所有人都可以使用。

WinWorld 保存了大量的废弃操作系统、软件、系统应用以及游戏

就像我刚才说的那样, WinWorld 存储了大量的被抛弃并且不再被开发的软件。

Linux 与 Unix:

这里我给出了完整的 UNIX 和 LINUX 操作系统的列表,以及它们各自的简要介绍、首次发行的年代。

  • A/UX - 于 1988 年推出,移植到苹果的 68k Macintosh 平台的 Unix 系统。
  • AIX - 于 1986 年推出,IBM 移植的 Unix 系统。
  • AT &T System V Unix - 于 1983 年推出,最早的商业版 Unix 之一。
  • Banyan VINES - 于 1984 年推出,专为 Unix 设计的网络操作系统。
  • Corel Linux - 于 1999 年推出,商业 Linux 发行版。
  • DEC OSF-1 - 于 1991 年推出,由 DEC 公司开发的 Unix 版本。
  • Digital UNIX - 由 DEC 于 1995 年推出,OSF-1 的重命名版本。
  • FreeBSD 1.0 - 于 1993 年推出,FreeBSD 的首个发行版。这个系统是基于 4.3BSD 开发的。
  • Gentus Linux - 由 ABIT 于 2000 年推出,未遵守 GPL 协议的 Linux 发行版。
  • HP-UX - 于 1992 年推出,UNIX 的变种系统。
  • IRIX - 由硅谷图形公司(SGI)于 1988 年推出的操作系统。
  • Lindows - 于 2002 年推出,与 Corel Linux 类似的商业操作系统。
  • Linux Kernel - 0.01 版本于 90 年代早期推出,Linux 源代码的副本。
  • Mandrake Linux - 于 1999 年推出。基于 Red Hat Linux 的 Linux 发行版,稍后被重新命名为 Mandriva。
  • NEWS-OS - 由 Sony 于 1989 年推出,BSD 的变种。
  • NeXTStep - 由史蒂夫·乔布斯创立的 NeXT 公司于 1987 年推出,基于 Unix 的操作系统。
  • PC/IX - 于 1984 年推出,为 IBM 个人电脑服务的基于 Unix 的操作系统。
  • Red Hat Linux 5.0 - 由 Red Hat 推出,商业 Linux 发行版。
  • Sun Solaris - 由 Sun Microsystem 于 1992 年推出,基于 Unix 的操作系统。
  • SunOS - 由 Sun Microsystem 于 1982 年推出,衍生自 BSD 基于 Unix 的操作系统。
  • Tru64 UNIX - 由 DEC 开发,旧称 OSF/1。
  • Ubuntu 4.10 - 基于 Debian 的知名操作系统。这是早期的 beta 预发布版本,比第一个 Ubuntu 正式发行版更早推出。
  • Ultrix - 由 DEC 开发, UNIX 克隆。
  • UnixWare - 由 Novell 推出, UNIX 变种。
  • Xandros Linux - 首个版本于 2003 年推出。基于 Corel Linux 的专有 Linux 发行版。
  • Xenix - 最初由微软于 1984 推出,UNIX 变种操作系统。

不仅仅是 Linux/Unix,你还能找到例如 DOS、Windows、Apple/Mac、OS 2、Novell netware 等其他的操作系统与 shell。

DOS & CP/M:

  • 86-DOS
  • Concurrent CPM-86 & Concurrent DOS
  • CP/M 86 & CP/M-80
  • DOS Plus
  • DR-DOS
  • GEM
  • MP/M
  • MS-DOS
  • 多任务的 MS-DOS 4.00
  • 多用户 DOS
  • PC-DOS
  • PC-MOS
  • PTS-DOS
  • Real/32
  • Tandy Deskmate
  • Wendin DOS

Windows:

  • BackOffice Server
  • Windows 1.0/2.x/3.0/3.1/95/98/2000/ME/NT 3.X/NT 4.0
  • Windows Whistler
  • WinFrame

Apple/Mac:

  • Mac OS 7/8/9
  • Mac OS X
  • System Software (0-6)

OS/2:

  • Citrix Multiuser
  • OS/2 1.x
  • OS/2 2.0
  • OS/2 3.x
  • OS/2 Warp 4

于此同时,WinWorld 也收集了大量的旧软件、系统应用、开发工具和游戏。你也可以一起看看它们。

说实话,这个网站列出的绝大部分东西,我甚至都不知道它们存在过。其中列出的某些工具发布于我出生之前。

如果您需要或者打算去测试一个经典的程序(例如游戏、软件、操作系统),并且在其他地方找不到它们,那么来 WinWorld 资源库看看,下载它们然后开始你的探险吧。祝您好运!

WinWorld – A Collection Of Defunct OSs, Software, Applications And Games

免责声明:

OSTechNix 并非隶属于 WinWorld。我们 OSTechNix 并不确保 WinWorld 站点存储数据的真实性与可靠性。而且在你所在的地区,或许从第三方站点下载软件是违法行为。本篇文章作者和 OSTechNix 都不会承担任何责任,使用此服务意味着您将自行承担风险。(LCTT 译注:本站和译者亦同样申明。)

本篇文章到此为止。希望这对您有用,更多的好文章即将发布,敬请期待!

谢谢各位的阅读!


via: https://www.ostechnix.com/winworld-a-large-collection-of-defunct-oss-software-and-games/

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

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