分类 技术 下的文章

DIY 一个数码相框,图片流来自云端。

数码相框真的很好,因为它可以让你查看你自己的相片而不必打印出来。更棒的是,当你想要展示一张新的相片的时候,增加和删除数字图片要比打开传统的相框然后替换里面的相框更简单。不过,这还是需要一点手动的操作,比如从数字相框取出 SD 卡、U 盘或者其他的存储介质,然后把存储介质接入电脑,接着再复制图片进入存储介质。

一个更简单的选项是数字相框通过 WiFi 获得图片,例如从云端服务器获得。下面就是如何制作这样的一个数字相框。

需要使用的材料

  • 老式 TFT 的 LCD 显示屏
  • HDMI 到 DVI 的转接线(因为 TFT 屏幕支持 DVI)
  • 树莓派 3
  • Micro SD 卡
  • 树莓派的电源
  • 键盘
  • 鼠标(可选)

使用线缆连接树莓派到显示器,并连接电源。

安装 Raspbian

按照以下指示下载并将 Raspbian 烧录到 Micro SD 卡中。将 Micro SD 卡插入树莓派,启动它,并配置你的 WiFi。在安装完 Raspbian 后,我的第一个操作通常是运行 sudo raspi-config。在那里,我在网络选项中更改主机名(例如,改为 picframe),并在接口选项中启用 SSH 以远程连接到树莓派。使用(例如)ssh pi@picframe 连接到树莓派。

建立并安装云客户端

我使用 Nextcloud 来同步我的图片,但是你可以使用 NFS、Dropbox,或者其他的适合你的需求的方式上传图片到相框。

如果你使用 Nextcloud,请按照以下说明在 Raspbian 上安装客户端。这可以很方便的放图片到你的相框,并且你可能很熟悉安装在台式机的这个客户端应用。当连接客户端到 Nextcloud 服务器上的时候,请确保只选择存储你要在相框上显示的图片的文件夹。

设置幻灯片放映

我发现设置幻灯片放映最简单的方式是使用一个专门为这个目的建立的轻量级的幻灯片项目。还有一些备用方案,像是配置屏保,这个应用似乎是最最简单设置幻灯片放映的方式了。

在你的树莓派上下载最新的二进制程序,解包并移动到一个可执行的文件夹里:

wget https://github.com/NautiluX/slide/releases/download/v0.9.0/slide_pi_stretch_0.9.0.tar.gz
tar xf slide_pi_stretch_0.9.0.tar.gz
mv slide_0.9.0/slide /usr/local/bin/

安装依赖关系:

sudo apt install libexif12 qt5-default

通过执行下面的命令播放幻灯片(不要忘记修改图片的路径)。如果你通过 SSH 访问你树莓派,设置 DISPLAY 变量来在连接到树莓派显示屏上开始播放幻灯片。

DISPLAY=:0.0 slide -p /home/pi/nextcloud/picframe

自动播放幻灯片

为了在 Raspbian Stretch 上自动播放幻灯片,建立如下的文件夹并且添加一个 autostart 文件到里面:

mkdir -p /home/pi/.config/lxsession/LXDE/
vi /home/pi/.config/lxsession/LXDE/autostart

在文件中输入如下的命令来自动开启幻灯片。slide 命令可以调整到你需要的地方:

@xset s noblank
@xset s off
@xset -dpms
@slide -p -t 60 -o 200 -p /home/pi/nextcloud/picframe

禁止屏幕空白,树莓派通常会在 10 分钟后这样做,通过编辑下面的文件修改:

vi /etc/lightdm/lightdm.conf

添加这两行到文件末尾:

[SeatDefaults]
xserver-command=X -s 0 -dpms

配置上电时间

你可以安排你的相框什么时候打开和关闭通过使用两个简单的定时任务。例如,你想在上午 7 点自动打开,在晚上 11 点自动关闭。运行 crontab -e 并且输入下面的两行:

0 23 * * * /opt/vc/bin/tvservice -o
0 7 * * * /opt/vc/bin/tvservice -p && sudo systemctl restart display-manager

注意这不会打开或关闭树莓派的电源;这只会关闭 HDMI,它会关闭屏幕。第一行命令将在晚上 11 点关闭 HDMI。第二行将在早上 7 点打开显示屏并重启显示器管理器。

附言

通过这些简单的步骤,你创建了你自己 WiFi 相框。如果你想要让它更好看,为显示屏做一个木质相框吧。


via: https://opensource.com/article/19/2/wifi-picture-frame-raspberry-pi

作者:Manuel Dewald 选题:lujun9972 译者:this-is-name-right 校对:wxy

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

Ubuntu 19.10 Eoan Ermine 产品寿命结束。这意味着它不会获得任何安全或维护更新。继续使用 Ubuntu 19.10 将很危险,因为你的系统将来可能会因为缺少安全更新而变得脆弱。你应该升级到 Ubuntu 20.04。

2019 年 10 月发布的 Ubuntu 19.10 带来了一些为 Ubuntu 20.04 做准备的新功能。

作为非 LTS 版本,它有 9 个月的寿命。截至 2020 年 7 月 17 日,它的生命周期结束,并不会再收到任何更新。

Ubuntu 19.10 生命周期结束

我之前已经详细解释了 Ubuntu 的发布周期和产品寿命结束。如果此后继续使用 Ubuntu 19.10,我会重申这对你和你的系统意味着什么。

软件通常有预定义的生命周期,一旦软件版本到达生命周期结束,它将停止获取更新和支持。生命周期结束后,Ubuntu 19.10 不再会从 Ubuntu 获得系统更新、安全更新或应用更新。

如果你继续使用它,你的系统可能会成为潜在的网络攻击的受害者,因为黑客往往会利用脆弱的系统。

之后,你可能无法使用 apt 命令安装新软件,因为 Ubuntu 将归档 19.10 的仓库。

如果你使用的是 Ubuntu 19.10,该怎么办?

首先,检查你使用的 Ubuntu 版本。这可以在终端中输入此命令完成:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.10
Release: 19.10
Codename: Eoan

如果你看到 Ubuntu 19.10,你应该做以下两项工作之一:

  • 如果你有良好、稳定的互联网连接,从 Ubuntu 19.10 升级到 20.04。你的个人文件和大多数软件保持不变。
  • 如果你有着缓慢或不稳定的互联网连接,你应该全新安装的 Ubuntu 20.04。你的文件和磁盘上的所有内容将被擦除,因此你应该在外部磁盘上备份重要数据。

如何从 19.10 升级到 20.04 (如果你有良好的互联网连接)

我之前已经详细讨论了 Ubuntu 版本升级。我会在这里快速说下步骤。

首先,请确保在“软件和更新”中已设置接收新版本通知。

进入“软件和更新”:

进入“更新”选项卡,将“通知我新的 Ubuntu 版本”设置为“对于任何新版本”:

现在,安装所有挂起的更新。

现在,再次运行更新管理器工具。你应该可以选择升级到 Ubuntu 20.04。点击升级按钮并按照说明操作。

它会安装大约 1.2GB 的软件包。这就是为什么你需要一个良好和稳定的互联网连接。

这样的升级会保持你的家目录。不过,仍建议在外部磁盘进行备份。

你仍在使用 Ubuntu 19.10 吗?

如果你仍在使用 Ubuntu 19.10,那么必须为升级或全新安装做好准备。你不能忽视它。

如果你不喜欢这样的频繁版本升级,你应该使用支持五年的 LTS 版本。当前的 LTS 版本是 Ubuntu 20.04,你无论如何都应该升级到它。

你是否正在使用 Ubuntu 19.10?你是否已升级到 Ubuntu 20.04?如果你面临任何问题,或者如果你有任何问题,请让我知道。


via: https://itsfoss.com/ubuntu-19-10-end-of-life/

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

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

随着 Fedora 32 的发布,Docker 的普通用户面临着一个小挑战。在编写本文时,Fedora 32 不支持 Docker。虽然还有其他选择,例如 PodmanBuildah,但是对于许多现有用户而言,现在切换可能不是最佳时机。因此,本文可以帮助你在 Fedora 32 上设置 Docker 环境。

步骤 0:消除冲突

此步骤适用于从 Fedora 30 或 31 升级的任何用户。如果全新安装的 Fedora 32,那么可以跳到步骤 1。

删除 docker 及其所有相关组件:

sudo dnf remove docker-*
sudo dnf config-manager --disable docker-*

步骤 1:系统准备

在 Fedora 的最后两个版本中,操作系统已迁移到两项新技术: CGroups 和用于防火墙的 NFTables。尽管这些新技术的详细信息不在本教程的讨论范围之内,但是令人遗憾的是,Docker 还不支持这些新技术。因此,你必须进行一些更改才能在 Fedora 上使用 Docker。

启用旧的 CGroups

Fedora 仍然支持 CGroups 的先前实现,可以使用以下命令启用它:

sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"

在防火墙中将 Docker 列入白名单

为了让 Docker 具有网络访问权限,需要两个命令:

sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --permanent --zone=FedoraWorkstation --add-masquerade

第一个命令将 Docker 接口添加到受信任的环境,它允许 Docker 建立远程连接。第二个命令将允许 Docker 建立本地连接。当有多个 Docker 容器作为开发环境时,这特别有用。

步骤 2:安装 Moby

Moby 是 Docker 的开源白牌版本。它基于相同的代码,但不带商标。它包含在 Fedora 的主仓库中,因此很容易安装:

sudo dnf install moby-engine docker-compose

这将安装 moby-enginedocker-composecontainerd 和其他一些相关的库。安装完成后,你必须启用系统级守护程序才能运行 Docker:

sudo systemctl enable docker

步骤 3:重新启动并测试

为了确保正确处理所有系统和设置,你现在必须重启计算机:

sudo systemctl reboot

之后,你可以使用 Docker hello-world 包来验证安装:

sudo docker run hello-world

除非遇到问题,不然你就会看到来自 Docker 的问候!

以管理员身份运行

可选地,你现在还可以将用户添加到 Docker 的组帐户中,以便无需输入 sudo 即可启动 Docker 镜像:

sudo groupadd docker
sudo usermod -aG docker $USER

注销并登录以使更改生效。如果以管理员权限运行容器的想法让你有所顾虑,那么你应该研究 Podman。

总结

从现在起,Docker 将按照你的习惯工作,包括 docker-compose 和所有与 docker 相关的工具。不要忘记查看官方文档,这在很多情况下可以为你提供帮助。

Fedora 32 上 Docker 的当前状态并不理想。缺少官方软件包可能会困扰一些人,有一个上游问题对此进行了讨论。对 CGroupsNFTables 缺少支持更多是技术问题,但是你可以查看它们在其公共问题上的进展。

这些指导应可以让你就像什么都没有发生一样继续工作。如果这不能满足你的需求,请不要忘记到 Moby 或 Docker Github 页面去寻求解决你的技术问题,或者看看 Podman,长期来看,它可能会更加强大。


via: https://fedoramagazine.org/docker-and-fedora-32/

作者:Kevin "Eonfge" Degeling 选题:lujun9972 译者:geekpi 校对:wxy

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

操作系统的最外层 —— 也就是跟你直接打交道的 —— 叫做 shell)(“外壳”)。Fedora 预装了好几种不同的 shell。shell 可以是图形界面,或者字符界面。在文档中,你常常能见到两个母缩写词 GUI ( 图形用户界面 Graphical User Interface )跟 CLI( 命令行界面 Command-Line Interface ),它们用来区分图形和基于字符的 shell/界面。GNOMEBash) 分别是 Fedora 默认的图形和命令行界面,不过你也可以使用其它 GUI 或者 CLI shell。

接下来在这篇文章中,我们会讨论一些比较推荐的 Bash 字符界面的点文件配置。

Bash 概览

Bash 参考手册中写道:

根本上来说,shell 只是一个能执行命令的宏处理器。宏处理器这个词意味着通过扩展文本跟符号,从而构成更复杂的表达式。

Bash 参考手册 第五版,Bash 5.0 2019 年 5 月

除了能使用其它程序之外,Bash shell 还含有一些内置命令和关键字。Bash 内置功能很强大,甚至能够作为一门 高级语言 独当一面。Bash 的几个关键字和操作符类似于 C 语言)。

Bash 能够以交互式或非交互式模式启动。Bash 的交互模式是一个很多人都熟悉的典型的终端/命令行界面。GNOME 终端 默认以交互模式打开 Bash。Bash 在非交互模式下运行的例子是,当命令和数据从文件或 shell 脚本通过 管道) 传送到 Bash 时。其它 Bash 可以运行的模式包括: 登录 login 非登录 non-login 远程 remote 、POSIX、Unix sh、 受限 restricted ,以及使用与用户不同的 UID/GID 模式。各种模式是可以相互组合的。比如,交互式 + 受限 + POSIX 或者非交互式 + 非登录 + 远程。不同的启动模式,决定着 Bash 所读取的启动文件。理解这些操作模式,有助于帮助我们修改启动文件。

根据 Bash 参考手册,它会:

  1. 从文件中...、从作为 -c 调用选项传入参数的字符...,或者从用户的终端中读取输入。
  2. 将输入分解成单词和操作符,遵循 [它的] 引用规则。...这些标记使用元字符隔开。这一步执行别名展开。
  3. 将标记解析成简单与复合命令。
  4. 执行各种 shell 展开...,将展开之后的标记分解成文件名...以及命令和参数的列表。
  5. 执行必要的重定向...并从参数列表中去除重定向操作符及其操作数。
  6. 执行命令。
  7. 必要时等待命令完成,并收集退出状态。

Bash 参考文档 第五版,Bash 版本 5.0 2019 年 5 月

当用户开启终端模拟器进入命令行环境时,便启动了一次交互式 shell 会话。GNOME 终端默认以非登录模式为用户打开 Shell。你可以在 “ 编辑 → 首选项 → 配置文件 → 命令 Edit → Preferences → Profilles → Command ” 中配置 GNOME 终端以何种模式(登录与非登录式)启动。也可以在 Bash 启动时通过向其传递 -login 标志来要求进入登录模式。要注意一点,Bash 的登录模式与非交互模式并不互斥。可以让 Bash 同时以登录模式和非交互模式运行。

启动 Bash

除非传入 -noprofile 选项,否则登录模式的 Bash shell 会默认读取并执行某些初始化文件中命令。如果 /etc/profile 存在,它会是第一个被执行的文件,紧接着是按 ~/.bash_profile~/.bash_login~/.profile顺序找到的第一个文件。当用户退出登录模式的 shell 时,或者有脚本在非交互式登录模式的 shell 中调用了内置 exit命令,Bash 会读取并执行 ~/.bash_logout 中的命令,如果 /etc/bash_logout 存在的话,会紧接着执行它。通常来说,/etc/profile 援引 source /etc/bashrc 文件,读取并执行其中的命令,然后查找并读取执行 /etc/profile.d 目录中以 .sh 结尾的文件。同样的,~/.bash_profile 通常也会 援引 source ~/.bashrc 文件。/etc/bashrc~/.bashrc 都会进行检查,避免重复 援引 source

(LCTT 译注:在 Bash 中,脚本会通过 source. 命令来将另外一个脚本引入其中,这个行为称之为 “source”、“sourcing”,但是该行为一直没有公认且常用的翻译方法。经过多番斟酌,我认为可以译做“援引”,理由如下:1、“援引”具有“引用、引入”的意思,符合该行为;2、“援”这个词的发音和“source” 常见的汉语意思“源”同音,便于记忆。以上是我们的愚见,供大家参考讨论。—— 老王,2020/7/19)

一个交互式的 shell,如果不是登录 shell,那么当它第一次被调用的时候,会执行 ~/.bashrc 文件。这是用户在 Fedora 上打开终端时通常会进入的 shell 类型。当 Bash 以非交互模式启动 —— 就像运行脚本时那样 —— 它会寻找 BASH_ENV环境变量。如果找到了,就会展开它的值作为文件名,接着读取并执行该文件。效果跟执行以下命令相同:

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi

值得注意的是,不会使用 PATH 环境变量的值来搜索该文件名(LCTT 译注:意即不会检索搜索路径)。

重要的用户点文件

Bash 最广为人知的用户点文件是 ~/.bashrc。通过编辑该文件,可以设置大多数个性化选项。由于我们常常需要设置一些选项,会改动上面提及甚至没有提及的文件,所以大部分自定义选项会成为一个麻烦事。Bash 环境具有很高的可定制性,正是为了适应不同用户的不同需求。

当登录 shell 正常退出时,如果 ~/.bash_logout/etc/bash_logout 存在,它们会被调用。下一幅图展示了 Bash 作为交互式 shell 启动时的过程。例如,当用户从桌面环境打开终端模拟器时,会按照以下顺序进行。

我们已经知道,在不同的启动模式下,Bash 会执行不同的命令,所以很明显,只有几种最需要关注的典型启动模式。分别是非交互、交互式登录 shell,和非交互式、交互式非登录 shell。如果想定义某些全局环境,那么需要将一个具有唯一名称、以 .sh 为后缀的文件(例如 custom.sh)放置在 /etc/profile.d 目录。

对于非交互式非登录启动方式,需要特别注意。在这种模式下,Bash 会检查 BASH_ENV 变量。如果定义了该变量,Bash 会援引它所指向的文件。另外,处理 BASH_ENV 时并不会使用 PATH 变量所存储的值(LCTT 译注:意即不会检索搜索路径),所以它必须包含执行文件的绝对路径。比如说,如果有人希望非交互式执行脚本时,shell 能读取 ~/.bashrc 文件中的设置,那么他可以把类似下面这样的内容放在一个名为 /etc/profile.d/custom.sh 的文件中...

# custom.sh
.
.
.
# 如果使用 Fedora Workstation
BASH_ENV="/home/username/.bashrc"
.
.
.
# 如果使用 Fedora Silverblue Workstation
BASH_ENV="/var/home/username/.bashrc"

export BASH_ENV

上面这份脚本会让每个 shell 脚本在运行之前先执行该用户的 ~/.bashrc

用户一般都会自定义他们的系统环境,以便契合他们自己的工作习惯与偏好。举例来说,用户可以通过别名来实现这种程度的自定义。拥有相同起始参数、需要频繁使用的命令是制作别名的最佳选择。以下展示了一些来自 ~/.bashrc 文件中定义的别名。

# .bashrc
# 执行全局文件
if [ -f /etc/bashrc ];
   then . /etc/bashrc
fi
.
.
.
# 用户别名和函数
alias ls='ls -hF --color=auto'
alias la='ls -ahF --color=auto'

# 让 dir 命令用起来像在 Windows 那样
alias dir='ls --color=auto --format=long'

# 用颜色高亮 grep 结果
alias grep='grep --color=auto'

在系统中,别名是一种自定义各种命令的方法。它能减少击键次数,而且让命令用起来更方便。针对用户级别的别名通常存放在该用户的 ~/.bashrc 文件中。

如果你发现自己经常要去历史中查找曾经执行过的某条命令,那可能需要改改历史设置了。你依然可以在 ~/.bashrc 文件中设置针对用户级别的历史选项。比如说,如习惯同时使用多个终端,那你可能要启用 histappend 选项。某些 Bash 相关的 shell 选项本质上是布尔值(接收 onoff),通常可以用内置命令 shopt 启用或禁用。接收更复杂的值的 Bash 选项(如 HISTTIMEFORMAT),常常通过赋值给环境变量来达到配置目的。以下演示如何以 shell 选项和环境变量定制 Bash。

# 配置 Bash 历史

# 用制表符扩展目录环境变量,并设置 histappend
shopt -s direxpand histappend

# ignoreboth 等同于 ignorespace 和 ignoredup
HISTCONTROL='ignoreboth'

# 控制 `history` 输出中的时间格式
HISTTIMEFORMAT="[%F %T] "

# 无限历史记录
# NB:在新版 Bash 中,任何 < 0 的写法都有效,但是在 CentOS/RHEL 中,只有这样才行得通
HISTSIZE=
HISTFILESIZE=

# 或者对于使用新版 Bash 的人
HISTSIZE=-1
HISTFILESIZE=-1

上面例子中的 direxpand 选项,可以让 Bash 在文件名补全时,用单词展开结果替换目录名。它会改变 readline 编辑缓冲区的内容,所以你所输入的东西已经被补全得到的结果替换了。

HISTCONTROL 变量用于启用或禁用命令历史的某些过滤选项。重复行、以空白打头的行,都能通过该选项将它们从命令历史中过滤掉。引用自 Dusty Mabe,这是我从他那儿得到的技巧:

ignoredup 可以让历史不记录重复条目(如果你反复执行同一条命令)。ignorespace 会忽略前面有空白的条目,当你在设置一个包含敏感信息的环境变量或者执行一条不想被记录进磁盘的命令时,这就很有用。ignoreboth相当于这两条选项的结合体。

Dusty Mabe – Redhat首席软件工程师,2020.6.19

对于命令行重度用户,Bash 有一个 CDPATH 环境变量。如果 CDPATH 包含一系列供 cd 命令搜索的目录,且提供一个相对路径作为第一个参数,那么它会按顺序检查所有列出的目录,寻找匹配的子目录并切换到第一个匹配结果目录。

# .bash_profile

# 设置 CDPATH
CDPATH="/var/home/username/favdir1:/var/home/username/favdir2:/var/home/username/favdir3"

# 也可以写成这样
CDPATH="/:~:/var:~/favdir1:~/favdir2:~/favdir3"

export CDPATH

CDPATH 通常像 PATH 一样的方式进行更新 —— 通过在赋值右侧引用自身来保留原来的值。

# .bash_profile

# 设置 CDPATH
CDPATH="/var/home/username/favdir1:/var/home/username/favdir2:/var/home/username/favdir3"

# 或者写成这样
CDPATH="/:~:/var:~/favdir1:~/favdir2:~/favdir3"

CDPATH="$CDPATH:~/favdir4:~/favdir5"

export CDPATH

PATH 是另一个极其重要的变量。它是系统上的命令的搜索路径。注意,有些应用要求将它们自己的目录加入 PATH 变量,这样才能正常使用。跟 CDPATH 一样,通过在赋值右侧引用原值来追加新值到 PATH 变量。如果你希望将新值前置,只需要把原来的值($PATH)放到列表末尾即可。还有注意的是在 Fedora,这一列值通过冒号分隔(:)。

# .bash_profile

# 添加 PATH 值到 PAHT 环境变量
PATH="$PATH:~/bin:~:/usr/bin:/bin:~/jdk-13.0.2:~/apache-maven-3.6.3"

export PATH

命令提示符是另一个流行的自定义选项。它有七个可定制的参数:

  • PROMPT_COMMAND:如果设置了,会在每一个主提示符($PS1)出现之前执行该值。
  • PROMPT_DIRTRIM:如果设置成大于零的数,则该值用作展开 \w\W 提示符字符串转义符时保留的尾随目录组件数量。删除的字符将替换为省略号。
  • PS0:这个参数的值像 PS1 一样展开,在交互式 shell 读取命令之后、执行命令之前展示。
  • PS1:主提示符字符串。默认值是 \s-\v\$
  • PS2:次提示符字符串。默认是 > 。在显示之前,PS2PS1 那样展开。
  • PS3:这个参数的值用作 select 命令的提示符。如果这个变量没有设置,select 命令会用 #? 作为提示符。
  • PS4:这个参数的值像 PS1 那样展开,如果设置了 -x 选项,这个展开值会在命令行被回显之前作为提示符显示。展开后的值的第一个字符在必要时会复制数次,指示间接层数。默认值是 +

Bash 参考文档 第五版,Bash 版本 5.0 2019 年 5 月

Bash 的这一个方面就可以用整篇文章来讨论。你可以找到许许多多信息和例子。在本文末尾链接的存储库中提供了一些点文件范例,包括提示符重新配置。你可以随意使用该存储库中的例子进行学习和体验。

总结

既然你已经掌握了一些 Bash 的工作原理,那就可以轻松修改你的 Bash 点文件,满足你自己的需求和习惯。美化你的提示符,制作一些别名,这样你的电脑才真的属于你。查看 /etc/profile/etc/bashrc/etc/profile.d/ 这些文件的内容,获得一些启发。

你也可以在这里写一些关于终端模拟器的评论。有很多办法可以将你最喜欢的终端,完全配置成你想要的样子。你或许早就想到了,但是通常可以通过……嗯……用户家目录的点文件实现这个目的。终端模拟器也可以作为登录会话启动,有些人总喜欢用登录环境。你使用终端和电脑的姿势,取决于你如何修改(或不修改)你的点文件。

如果你很好奇自己的命令行处于什么会话状态,使用下面这个脚本来判断一下。

#!/bin/bash

case "$-" in
   (*i*) echo This shell is interactive ;;
   (*) echo This shell is not interactive ;;
esac

把这几行放到一个文件里,加上可执行权限,然后运行,就能看到你当前处于何种类型的 shell。$- 在 Bash 中是一个变量,如果是交互式 shell,它会包含字母 i。此外,你可以直接输出 $- 变量然后检查它的输出中是否含有 i 标记。

$ echo $-

参考信息

可以参考以下资料以获取更多信息和示例。Bash 手册也是一个很好的信息来源。请注意,确保你的本地手册页记录了你当前运行的 Bash 版本的特性,因为在网上找到的信息有时可能太老(过时了)或太新(你的系统还没有安装)。

对本文有各种形式(点文件示例、提示,以及脚本文件)贡献的社区成员:

  • Micah Abbott – 首席质量工程师
  • John Lebon – 首席软件工程师
  • Dusty Mabe – 首席软件工程师
  • Colin Walters – 高级首席软件工程师

示例点文件和脚本可以在这个存储库中找到:

请仔细检查上面所提供的存储库中的信息。有些可能已经过时了。里面还包含很多开发中的自定义脚本和 宠物容器 pet container 配置例子,那些不是点文件。我推荐从 John Lebon 的点文件开始学习,从头到尾都含有完善的解说,它们是我见过的最详细的,并且包含了非常好的描述。祝你学得开心!


via: https://fedoramagazine.org/customizing-bash/

作者:Stephen Snow 选题:lujun9972 译者:nophDog 校对:wxy

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

你可能想在 GIMP 中裁剪图像的原因有很多。例如,你可能希望删除无用的边框或信息来改善图像,或者你可能希望最终图像的焦点是在一个特定细节上。

在本教程中,我将演示如何在 GIMP 中快速裁剪图像而又不影响精度。让我们一起来看看吧。

如何在 GIMP 中裁剪图像

方法 1

裁剪只是一种将图像修整成比原始图像更小区域的操作。裁剪图像的过程很简单。

你可以通过“工具”面板访问“裁剪工具”,如下所示:

你还可以通过菜单访问裁剪工具:“ 工具 → 变形工具 → 裁剪 Tools → Transform Tools → Crop ”。

激活该工具后,你会注意到画布上的鼠标光标会发生变化,以表示正在使用“裁剪工具”。

现在,你可以在图像画布上的任意位置单击鼠标左键,并将鼠标拖到某个位置以创建裁剪边界。此时你不必担心精度,因为你可以在实际裁剪之前修改最终选区。

此时,将鼠标光标悬停在所选内容的四个角上会更改鼠标光标并高亮显示该区域。现在,你可以微调裁剪的选区。你可以单击并拖动任何边或角来移动部分选区。

选定完区域后,你只需按键盘上的回车键即可进行裁剪。

如果你想重新开始或者不裁剪,你可以按键盘上的 Esc 键。

方法 2

裁剪图像的另一种方法是使用“矩形选择工具”进行选择:“ 工具 → 选择工具 → 选择矩形 Tools → Selection Tools → Rectangle Select ”。

然后,你可以使用与“裁剪工具”相同的方式高亮选区,并调整选区。选择好后,可以通过以下方式裁剪图像来适应选区:“ 图像 → 裁剪为选区 Image → Crop to Selection ”。

总结

对于 GIMP 用户而言,精确裁剪图像可以视为一项基本功能。你可以选择哪种方法更适合你的需求并探索其潜力。

如果你对过程有任何疑问,请在下面的评论中告诉我。如果你“渴望”更多 GIMP 教程,请确保在你喜欢的社交媒体平台上订阅!


via: https://itsfoss.com/crop-images-gimp/

作者:Dimitrios Savvopoulos 选题:lujun9972 译者:geekpi 校对:wxy

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

Ubuntu 表示,它将不再跟踪桌面用户从存档中安装的软件包。

这个“人气竞赛”(popularity-contest)工具,从该发行版早期开始就作为 Ubuntu 标准安装包的一部分,正在被移除。

但是这个软件是做什么的呢?引用 Ubuntu 帮助页面上的一句话:

Ubuntu 人气竞赛 …… 收集统计数据,以确定哪些软件包在 Ubuntu 用户中最受欢迎。人气竞赛软件包会每周一次向中央服务器提交数据。

它收集到的统计数据用于帮助“改进 Ubuntu 的未来版本,使最受欢迎的软件包成为新用户自动安装的软件包”。不过 Ubuntu 已经很久没有在默认安装中添加或删除应用了(几年前它选择添加 GNOME To Do 应用时,并不是因为“受欢迎”)。

而另外一方面,随着 Snap、Flatpak、PPA 和其它途径给开发者提供了更直接的触达用户的方式(也就无法更准确地统计有多少人在使用他们的软件了),“仓库中流行的东西”的相对优点……嗯,有点不切实际。

所以未来 Ubuntu 桌面的安装将不再默认包含这个人气竞赛软件包。

事实证明,这也是好事,因为这东西根本就不能用!

Canonical 的 Michael Hudson Doyle 说:“……从 18.04 LTS 开始,这个包和后台都损坏了,但好像也没少啥。”

虽然听起来有点让人担心,但所有的这些跟踪都是匿名的,其数据结果可以在 popcon.ubuntu.com 网站上公开查看。

“Ubuntu 删除了这个不能用又没人用的东西”是头条新闻吗?不是,但这是一个相当值得注意的删除,因为它跟上了 Linux 软件包分发和获取的变化。

从现有的 Ubuntu 安装中删除 Ubuntu 人气竞赛也是可以的。只要启动终端窗口并运行:

sudo apt remove popularity-contest

输入密码后按 y 键允许。这个过程也会删除 ubuntu-standard 包。这是一个元包,它告诉 Ubuntu 在“标准”安装中要引入哪些包。虽然它不应该被删除(一般来说),但这是完全删除这个包的唯一方法。


via: https://www.omgubuntu.co.uk/2020/07/ubuntu-popularity-contest-removed

作者: Joey Sneddon 译者:wxy 校对:wxy

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