极客漫画:当 Git 有了智能
要是你的 Git 有了人工智能,会不会嫌弃你的提交?
当你想修复一个游戏防沉迷的时间验证 bug 时,却被 Git 鄙视了——你确认你的老板还需要你吗,而不是一个 Git?
就算是你恼羞成怒想要删除 Git 怕是也会被智能的 Yum 拒绝吧——它们肯定是一伙的。
via: http://turnoff.us/geek/when-ai-meets-git/
作者:Daniel Stori 译者 & 点评:wxy 校对 & 合成:wxy
要是你的 Git 有了人工智能,会不会嫌弃你的提交?
当你想修复一个游戏防沉迷的时间验证 bug 时,却被 Git 鄙视了——你确认你的老板还需要你吗,而不是一个 Git?
就算是你恼羞成怒想要删除 Git 怕是也会被智能的 Yum 拒绝吧——它们肯定是一伙的。
via: http://turnoff.us/geek/when-ai-meets-git/
作者:Daniel Stori 译者 & 点评:wxy 校对 & 合成:wxy
我知道每个人都更喜欢使用 top 命令来监控系统利用率。这是被 Linux 系统管理员大量使用的原生命令之一。
在 Linux 中,每个包都有一个替代品。Linux 中有许多可用于此的工具,我更喜欢 htop 命令。
如果你想了解其他替代方案,我建议你浏览每个链接了解更多信息。它们有 htop、CorFreq、glances、atop、Dstat、Gtop、Linux Dash、Netdata、Monit 等。
所有这些只允许我们监控系统利用率而不能监控系统硬件。但是 Hegemon 允许我们在单个仪表板中监控两者。
如果你正在寻找系统硬件监控软件,那么我建议你看下 lm\_sensors 和 s-tui 压力终端 UI。
Hegemon 是一个正在开发中的模块化系统监视器,以安全的 Rust 编写。
它允许用户在单个仪表板中监控两种使用情况。分别是系统利用率和硬件温度。
Hegemon 需要 Rust 1.26 或更高版本以及 libsensors 的开发文件。因此,请确保在安装 Hegemon 之前安装了这些软件包。
libsensors 库在大多数发行版官方仓库中都有,因此,使用以下命令进行安装。
对于 Debian/Ubuntu 系统,使用 apt-get 命令 或 apt 命令 在你的系统上安装 libsensors。
# apt install lm_sensors-devel
对于 Fedora 系统,使用 dnf 包管理器在你的系统上安装 libsensors。
# dnf install libsensors4-dev
运行以下命令安装 Rust 语言,并按照指示来做。如果你想要看 Rust 安装的方便教程,请进入该 URL。
$ curl https://sh.rustup.rs -sSf | sh
如果你已成功安装 Rust。运行以下命令安装 Hegemon。
$ cargo install hegemon
成功安装 Hegemon 包后,运行下面的命令启动。
$ hegemon
由于 libsensors.so.4 库的问题,我在启动 Hegemon 时遇到了一个问题。
$ hegemon
error while loading shared libraries: libsensors.so.4: cannot open shared object file: No such file or directory manjaro
我使用的是 Manjaro 18.04。它存在 libsensors.so 和 libsensors.so.5 共享库,而没有 libsensors.so.4。所以,我刚刚创建了以下符号链接来解决问题。
$ sudo ln -s /usr/lib/libsensors.so /usr/lib/libsensors.so.4
这是从我的 Lenovo-Y700 笔记本中截取的示例 gif。
默认它仅显示总体摘要,如果你想查看详细输出,则需要展开每个部分。如下是 Hegemon 的展开视图。
via: https://www.2daygeek.com/hegemon-a-modular-system-and-hardware-monitoring-tool-for-linux/
作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy
为初学者介绍尖括号。
Bash 内置了很多诸如 ls
、cd
、mv
这样的重要的命令,也有很多诸如 grep
、awk
、sed
这些有用的工具。但除此之外,其实 Bash 中还有很多可以起到胶水作用的标点符号,例如点号(.
)、逗号(,
)、括号(<>
)、引号("
)之类。下面我们就来看一下可以用来进行数据转换和转移的尖括号(<>
)。
如果你对其它编程语言有所了解,你会知道尖括号 <
和 >
一般是作为逻辑运算符,用来比较两个值之间的大小关系。如果你还编写 HTML,尖括号作为各种标签的一部分,就更不会让你感到陌生了。
在 shell 脚本语言中,尖括号可以将数据从一个地方转移到另一个地方。例如可以这样把数据存放到一个文件当中:
ls > dir_content.txt
在上面的例子中,>
符号让 shell 将 ls
命令的输出结果写入到 dir_content.txt
里,而不是直接显示在命令行中。需要注意的是,如果 dir_content.txt
这个文件不存在,Bash 会为你创建;但是如果 dir_content.txt
是一个已有的非空文件,它的内容就会被覆盖掉。所以执行类似的操作之前务必谨慎。
你也可以不使用 >
而使用 >>
,这样就可以把新的数据追加到文件的末端而不会覆盖掉文件中已有的数据了。例如:
ls $HOME > dir_content.txt; wc -l dir_content.txt >> dir_content.txt
在这串命令里,首先将家目录的内容写入到 dir_content.txt
文件中,然后使用 wc -l
计算出 dir_content.txt
文件的行数(也就是家目录中的文件数)并追加到 dir_content.txt
的末尾。
在我的机器上执行上述命令之后,dir_content.txt
的内容会是以下这样:
Applications
bin
cloud
Desktop
Documents
Downloads
Games
ISOs
lib
logs
Music
OpenSCAD
Pictures
Public
Templates
test_dir
Videos
17 dir_content.txt
你可以将 >
和 >>
作为箭头来理解。当然,这个箭头的指向也可以反过来。例如,Coen brothers (LCTT 译注:科恩兄弟,一个美国电影导演组合)的一些演员以及他们出演电影的次数保存在 CBActors
文件中,就像这样:
John Goodman 5
John Turturro 3
George Clooney 2
Frances McDormand 6
Steve Buscemi 5
Jon Polito 4
Tony Shalhoub 3
James Gandolfini 1
你可以执行这样的命令:
sort < CBActors
Frances McDormand 6 # 你会得到这样的输出
George Clooney 2
James Gandolfini 1
John Goodman 5
John Turturro 3
Jon Polito 4
Steve Buscemi 5
Tony Shalhoub 3
就可以使用 sort 命令将这个列表按照字母顺序输出。但是,sort
命令本来就可以接受传入一个文件,因此在这里使用 <
会略显多余,直接执行 sort CBActors
就可以得到期望的结果。
如果你想知道 Coens 最喜欢的演员是谁,你可以这样操作。首先:
while read name surname films; do echo $films $name $surname > filmsfirst.txt; done < CBActors
上面这串命令写在多行中可能会比较易读:
while read name surname films;\
do
echo $films $name $surname >> filmsfirst;\
done < CBActors
下面来分析一下这些命令做了什么:
while
后面的条件成立时,do
和 done
之间的部分会一直重复执行;read
会从标准输入中持续读入,直到没有内容可读入;CBActors
文件的内容会通过 <
从标准输入中读入,因此 while
循环会将 CBActors
文件逐行完整读入;read
命令可以按照空格将每一行内容划分为三个字段,然后分别将这三个字段赋值给 name
、surname
和 films
三个变量,这样就可以很方便地通过 echo $films $name $surname >> filmsfirst;\
来重新排列几个字段的放置顺序并存放到 filmfirst
文件里面了。执行完以后,查看 filmsfirst
文件,内容会是这样的:
5 John Goodman
3 John Turturro
2 George Clooney
6 Frances McDormand
5 Steve Buscemi
4 Jon Polito
3 Tony Shalhoub
1 James Gandolfini
这时候再使用 sort
命令:
sort -r filmsfirst
就可以看到 Coens 最喜欢的演员是 Frances McDormand 了。(-r
参数表示降序排列,因此 McDormand 会排在最前面)
via: https://www.linux.com/blog/learn/2019/1/understanding-angle-brackets-bash
作者:Paul Brown 选题:lujun9972 译者:HankChow 校对:wxy
在 Unix 进程模型中,父进程和其所产生的子进程是异步运行的,所以如果子进程在结束后,会留下一些信息需要父进程使用 wait
/waitpid
来接收。而如果父进程太忙了,没有调用 wait
/waitpid
的话,子进程就会变成僵尸进程。
via: http://turnoff.us/geek/zombie-processes/
作者:Daniel Stori 译者 & 点评:wxy 校对 & 合成 :wxy
使用 HomeBank 跟踪你的资金流向,这是我们开源工具系列中的第八个工具,它将在 2019 年提高你的工作效率。
每年年初似乎都有疯狂的冲动想提高工作效率。新年的决心,渴望开启新的一年,当然,“抛弃旧的,拥抱新的”的态度促成了这一切。通常这时的建议严重偏向闭源和专有软件,但事实上并不用这样。
这是我挑选出的 19 个新的(或者对你而言新的)开源项目来帮助你在 2019 年更有效率。
管理我的财务可能会很有压力。我不会每天查看我的银行余额,有时也很难跟踪我的钱流向哪里。我经常会花更多的时间来管理我的财务,挖掘账户和付款历史并找出我的钱去了哪里。了解我的财务状况可以帮助我保持冷静,并让我专注于其他事情。
HomeBank 是一款个人财务桌面应用,帮助你轻松跟踪你的财务状况,来帮助减少此类压力。它有很好的报告可以帮助你找出你花钱的地方,允许你设置导入交易的规则,并支持大多数现代格式。
HomeBank 默认可在大多数发行版上可用,因此安装它非常简单。当你第一次启动它时,它将引导你完成设置并让你创建一个帐户。之后,你可以导入任意一种支持的文件格式或开始输入交易。交易簿本身就是一个交易列表。与其他一些应用不同,你不必学习复式记账法来使用 HomeBank。
从银行导入文件将使用另一个分步向导进行处理,该向导提供了创建新帐户或填充现有帐户的选项。导入新帐户可节省一点时间,因为你无需在开始导入之前预先创建所有帐户。你还可以一次将多个文件导入帐户,因此不需要对每个帐户中的每个文件重复相同的步骤。
我在导入和管理帐户时遇到的一个痛点是指定类别。一般而言,类别可以让你分解你的支出,看看你花钱的方式。HomeBank 与一些商业服务(以及一些商业程序)不同,它要求你手动设置所有类别。但这通常是一次性的事情,它可以在添加/导入交易时自动添加类别。还有一个按钮来分析帐户并跳过已存在的内容,这样可以加快对大量导入的分类(就像我第一次做的那样)。HomeBank 提供了大量可用的类别,你也可以添加自己的类别。
HomeBank 还有预算功能,允许你计划未来几个月的开销。
对我来说,最棒的功能是 HomeBank 的报告。主页面上不仅有一个图表显示你花钱的地方,而且还有许多其他报告可供你查看。如果你使用预算功能,还会有一份报告会根据预算跟踪你的支出情况。你还可以以饼图和条形图的方式查看报告。它还有趋势报告和余额报告,因此你可以回顾并查看一段时间内的变化或模式。
总的来说,HomeBank 是一个非常友好,有用的程序,可以帮助你保持良好的财务状况。如果跟踪你的钱是你生活中的一件麻烦事,它使用起来很简单并且非常有用。
via: https://opensource.com/article/19/1/productivity-tools-homebank
作者:Kevin Sonney 选题:lujun9972 译者:geekpi 校对:wxy
重复性压迫损伤 (RSI)是职业性损伤综合症,非特异性手臂疼痛或工作引起的上肢障碍。RSI 是由于过度使用双手从事重复性任务导致的,如打字、书写和使用鼠标. 不幸的是,大部分人不了解什么是 RSI 以及它的危害有多大。你可以使用名叫 Workrave 的开源软件轻松的预防 RSI。
我从这个页面引用过来的,看看哪些你被说中了:
Workrave 是一款预防计算机用户发展为 RSI 或近视的自由开源软件。软件会定期锁屏为一个动画: “Workrave 小姐”,引导用户做各种伸展运动并敦促其休息一下。这个软件经常提醒你暂停休息一下,并限制你每天的限度。程序可以运行在 MS-Window、Linux 以及类 UNIX 操作系统下。
在 Debian/Ubuntu Linux 系统运行以下 apt 命令/apt-get 命令:
$ sudo apt-get install workrave
Fedora Linux 发行版用户运行以下 dnf 命令:
$ sudo dnf install workrave
RHEL/CentOS Linux 用户可以启动 EPEL 仓库并用 yum 命令安装:
### [ **在CentOS/RHEL 7.x 及衍生版本上测试** ] ###
$ sudo yum install epel-release
$ sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ sudo yum install workrave
Arch Linux 用户运行以下 pacman 命令来安装:
$ sudo pacman -S workrave
FreeBSD 用户可用以下 pkg 命令安装:
# pkg install workrave
OpenBSD 用户可用以下 pkg\_add 命令安装:
$ doas pkg_add workrave
Workrave 以一个小程序运行,它的用户界面位于面板中。你可以为 workrave 增加一个面板来控制软件的动作和外观。
增加一个新 workrave 对象到面板:
图 01:新增 workrave 对象到面板
如果修改 workrave 对象的属性,执行以下步骤:
图 02:修改 Workrave 对象属性
主窗口显示下一次提醒休息的剩余时间,这个窗口可以关闭,时间提示窗口会显示在面板上。
图 03:时间计数器
图 04:Workrave 小姐 - 引导你做伸展运动的动画
休息提示窗口,请求你暂停一下工作:
图 05:休息提示倒计时
图 06:你可以跳过休息
作者是 nixCraft 创始人,经验丰富的系统管理员,同时也是一个 Linux/Unix 系统下的 shell 脚本培训师。他曾服务于全球客户,并与多个行业合作包括 IT、教育、国防和航天研究,以及非盈利机构。可以在 Twitter、Facebook、Google+ 上关注他。
via: https://www.cyberciti.biz/tips/repetitive-strain-injury-prevention-software.html
作者:Vivek Gite 译者:guevaraya 校对:wxy