Linux中国
1.73K subscribers
777 photos
6.34K links
Linux 中国官方 Telegram 频道
Download Telegram
如何根据文件权限查找文件

今天,在基于 Unix 的操作系统中,我们将见识如何通过权限查找文件。Media

via https://linux.cn/article-9279-1.html
创建一个简易 APT 仓库

Debian 仓库本质上可以看作是一个静态的网站,而且内容是经过 GPG 签名的,所以它不一定需要托管在某个可信任的地方(除非可用性对你的程序来说是至关重要的)。Media

via https://linux.cn/article-9281-1.html
创建一个简易 APT 仓库

Media作为我工作的一部分,我所维护的 PATHspider 依赖于 cURLPycURL中的一些刚刚合并或仍在等待被合并的功能。我需要构建一个包含这些 Debian 包的 Docker 容器,所以我需要快速构建一个 APT 仓库。Debian 仓库本质上可以看作是一个静态的网站,而且内容是经过 GPG 签名的,所以它不一定需要托管在某个可信任的地方(除非可用性对你的程序来说是至关重要的)。我在 Netlify(一个静态的网站主机)上托管我的博客,我认为它很合适这种情况。他们也支持开源项目。你可以用下面的命令安装 netlify 的 CLI 工具:
sudo apt install npmsudo npm install -g netlify-cli
设置仓库的基本步骤是:
mkdir repositorycp /path/to/*.deb repository/cd repositoryapt-ftparchive packages . > Packagesapt-ftparchive release . > Releasegpg --clearsign -o InRelease Releasenetlify deploy
当你完成这些步骤后,并在 Netlify 上创建了一个新的网站,你也可以通过 Web 界面来管理这个网站。你可能想要做的一些事情是为你的仓库设置自定义域名,或者使用 Let's Encrypt 启用 HTTPS。(如果你打算启用 HTTPS,请确保命令中有 apt-transport-https。)要将这个仓库添加到你的 apt 源:
gpg --export -a YOURKEYID | sudo apt-key add -echo "deb https://SUBDOMAIN.netlify.com/ /" | sudo tee -a /etc/apt/sources.listsudo apt update
你会发现这些软件包是可以安装的。注意下 APT pinnng,因为你可能会发现,根据你的策略,仓库上的较新版本实际上并不是首选版本。更新:如果你想要一个更适合平时使用的解决方案,请参考 repropro。如果你想让最终用户将你的 apt 仓库作为第三方仓库添加到他们的系统中,请查看 Debian wiki 上的这个页面,其中包含关于如何指导用户使用你的仓库。更新 2:有一位评论者指出用 aptly,它提供了更多的功能,并消除了 repropro 的一些限制。我从来没有用过 aptly,所以不能评论具体细节,但从网站看来,这是一个很好的工具。via: https://iain.learmonth.me/blog/2017/2017w383/作者:Iain R. Learmonth 译者:geekpi 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media

via https://linux.cn/article-9281-1.html?utm_source=rss&utm_medium=rss
启动开源项目:免费指导!

启动项目、组建社区支持可能会比较复杂,但是这个全新的指南可以帮助你开启开源项目。Media

via https://linux.cn/article-9282-1.html
启动开源项目:免费指导!

Media启动项目、组建社区支持可能会比较复杂,但是这个全新的指南可以帮助你开启开源项目。各种规模的组织、技术人员和 DecOps 工作者选择使用开源项目,甚至去开发自己的开源项目,开源程序变得越来越普遍。从 Google 到 Netflix 再到 Facebook ,这些公司都在将它们的开源创作发布到开源社区。经常见到起于内部的开源项目,然后受惠于外部开发人员的合作开发。然而,开启一个开源项目、组建社区支持比你想的还要复杂。一些前期准备可以帮助事情开展变得顺利,这就是这个全新的“启动开源项目指南”所能为你做的。这个免费指南是为了帮助那些深谙开源的组织启动自己的开源项目而诞生。在本文的开始,介绍包括了决定开源什么项目,预计项目费用,考虑开源协议和一些其他方面。开源项目这种方式可能源自国外,但是从 Google 到 Facebook 这样一些主要的开源公司都已经开放提供了开源项目指导资源。事实上,Google 拥有的丰富的在线资源对开源项目实践和启动开源项目上做出了贡献。Capital One 开源社区经理 Jared Smith 指出,“无论公司在内雇佣了多少聪明人,总还是有聪明人在公司之外”, “我们发现开放我们的源代码给外面世界的专业且愿意分享的人士交流经验是非常值得的,我们能从中获取一些非常好的建议”。在这个新指南中,开源专家 Ibrahim Haddad 提供了五条关于一个组织为什么要开源新项目的原因:促成开放式问题解决方案;为标准提供参照实现;分担战略功能的开发开销。商品化市场;减少非战略的软件成本费用。通过建立产品生态来驱动需求。协同合作;吸引客户;深化共同目标间的关系。提供用户自我支持的能力:无需等待即可调整代码本文指出:“做出发布或创建一个新的开源项目的决定和自身境况相关。你的公司应该在使用或贡献既有的开源项目上拥有一定程度的熟练度。这是因为消费能够指导你,通过外部工程使开发者对自己的产品构建变得省力(参见我们的指南使用开源代码加入开源社区 上)。但是当一旦你顺利的参与过开源,那这将是启动你自己的开源项目的最佳时机。”该指南还指出, 规划可以使您和您的组织摆脱法律麻烦。如果您希望您的项目蓬勃发展, 则与许可、分发、支持选项甚至品牌相关的问题都需要提前考虑。“我认为, 对于一家公司来说, 至关重要的是要考虑他们希望通过新的开源项目实现的目标,” Linux 基金会的项目管理主任 John Mertic 说。"他们必须考虑它对社区和开发者的价值,以及他们希望从中得到什么结果。然后, 他们必须了解所有的部分,以正确的方式去完成,包括法律、治理、基础设施和一个启动社区。当你把一个开源项目放在那里时,我总是最强调这些。”这个“启动开源项目指南”可以帮助您了解从许可证问题到最佳开发实践的所有内容,并探讨如何无缝地将现有的开放组件编织到您的开源项目中。它是来自 Linux 基金会和 TODO 组的免费指南的新集合之一,对于任何运作开源程序的组织来说都非常有价值。现在可以使用该指南来帮助您运行开源计划办公室,以支持、分享和利用开源。有了这样一个办公室, 组织就可以有效地建立并执行其开放源码战略,并有明确的条款。这些免费的教程是基于开源领导人的经验而来。在这里可以查看所有指南,然后关注我们的后续文章。也别错过了本系列早些的文章:如何创建开源计划开源计划管理工具衡量你的开源项目成功性吸引开源开发者的高效策略加入开源社区使用开源代码via: https://www.linuxfoundation.org/blog/launching-open-source-project-free-guide/作者:Sam Dean 译者:CYLeft 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media

via https://linux.cn/article-9282-1.html?utm_source=rss&utm_medium=rss
如何解决 check_mk 出现 “Cannot fetch deployment URL via curl” 的错误

本文解释了 “ERROR Cannot fetch deployment URL via curl:Couldn't resolve host。The given remote host was not resolved。” 的原因及其解决方案。Media

via https://linux.cn/article-9283-1.html
三款简单而优秀的 Linux 网络监视工具

通过 iftop、 nethogs 和 vnstat 详细了解你的网络连接状态。Media

via https://linux.cn/article-9284-1.html
无需 root 实现在 Android 设备上运行 Linux

我当时唯一的意图只是想使用 Linux 以及一些基本的应用程序,比如 SSH,Git,awk 等。要求的并不多!我不想 root 我的 Android 设备。Media

via https://linux.cn/article-9285-1.html
在 Linux 字符界面中获取天气预报

http://wttr.in 是一个允许你搜索世界各地天气预报的网站,而且它的是以 ASCII 字符的形式来显示结果的。通过使用 cURL 访问 http://wttr.in,就能直接在终端显示查询结果了。Media

via https://linux.cn/article-9287-1.html
如何在 Linux/Unix/Windows 中发现隐藏的进程和端口

绝大多数的 Rootkit 工具或者恶意软件借助内核来实现进程隐藏,这些进程只在内核内部可见。你可以使用 unhide 或者诸如 rkhunter 等工具,扫描 rootkit 程序 、后门程序以及一些可能存在的本地漏洞。Media

via https://linux.cn/article-9288-1.html
热爱你的 Bug

我爱 bug 因为它们有趣。它们富有戏剧性。调试一个好的 bug 的过程可以非常迂回曲折。一个好的 bug 像是一个有趣的笑话或者或者谜语——你期望看到某种结果,但却事与愿违。Media

via https://linux.cn/article-9289-1.html
Linux/Unix 桌面盛典:模仿 “黑客帝国” 界面!

《黑客帝国》是 1999 年,由 Wachowki 兄弟编导的科幻动作片。这部电影的荧屏里有无尽的绿色字符降落。数字雨模拟着《黑客帝国》中的虚拟现实活动。现在,Linux 和 Unix 终端上,你也可以通过 CMatrix 模仿出矩阵数字雨。Media

via https://linux.cn/article-9291-1.html
迁移到 Linux:图形操作环境

这篇文章对 Linux 图形环境做了一番介绍,展示了在不同的 Linux 发行版上的各种选择。Media

via https://linux.cn/article-9293-1.html
如何在使用 scp 命令时递归地排除文件

我不认为你可以在使用 scp 命令时过滤或排除文件。但是,有一个很好的解决方法来排除文件并使用 ssh 安全地复制它。Media

via https://linux.cn/article-9292-1.html
Python 版的 Nmon 分析器:让你远离 excel 宏

nmon 输出的文件很难直接由电子表格应用来处理,因此诞生了 Nmon_Analyzer excel 宏。这个过程很死板而且有点麻烦。现在出现了一个更灵活的工具,我向你们介绍一下 pyNmonAnalyzer。Media

via https://linux.cn/article-9294-1.html
精通 Linux 上的文件搜索

有很多有用的命令可以搜索文件,find 命令可能是其中最有名的,但它不是唯一的命令,也不一定总是找到目标文件的最快方法。Media

via https://linux.cn/article-9295-1.html
用命令行查看比特币等加密货币的价格

Coinmon 会在终端上检查加密货币的价格。它将从 coinmarketcap.com API 获取所有详细信息。对于那些 加密货币投资者和工程师来说是非常有用的。Media

via https://linux.cn/article-9297-1.html
如何在 Linux 上用 Fail2Ban 保护服务器免受暴力攻击

任何连接到互联网的机器都是恶意攻击的潜在目标。 有一个名为 Fail2Ban 的工具可用来缓解服务器上的非法访问。Media

via https://linux.cn/article-9299-1.html
如何安装并设置 Vagrant

什么是 Vagrant?简而言之,这是一个与虚拟机一起工作的工具,可以让你自动创建和删除虚拟机。Media

via https://linux.cn/article-9301-1.html
如何在 Linux 或者 UNIX 下调试 Bash Shell 脚本

我写了一个 hello world 小脚本。我如何能调试运行在 Linux 或者类 UNIX 的系统上的 bash shell 脚本呢?Media

via https://linux.cn/article-9302-1.html
当 CPU 空闲时它都在做什么?

Media上篇文章中 我说了操作系统行为的基本原理是,在任何一个给定的时刻,在一个 CPU 上有且只有一个任务是活动的。但是,如果 CPU 无事可做的时候,又会是什么样的呢?事实证明,这种情况是非常普遍的,对于绝大多数的个人电脑来说,这确实是一种常态:大量的睡眠进程,它们都在等待某种情况下被唤醒,差不多在 100% 的 CPU 时间中,都处于虚构的“空闲任务”中。事实上,如果一个普通用户的 CPU 处于持续的繁忙中,它可能意味着有一个错误、bug、或者运行了恶意软件。因为我们不能违反我们的原理,一些任务需要在一个 CPU 上激活。首先是因为,这是一个良好的设计:持续很长时间去遍历内核,检查是否有一个活动任务,这种特殊情况是不明智的做法。最好的设计是没有任何例外的情况。无论何时,你写一个 if 语句,Nyan Cat 就会喵喵喵。其次,我们需要使用空闲的 CPU 去做一些事情,让它们充满活力,你懂得,就是创建天网计划呗。因此,保持这种设计的连续性,并领先于那些邪恶计划一步,操作系统开发者创建了一个空闲任务,当没有其它任务可做时就调度它去运行。我们可以在 Linux 的 引导过程 中看到,这个空闲任务就是进程 0,它是由计算机打开电源时运行的第一个指令直接派生出来的。它在 rest_init 中初始化,在 initidlebootup_task 中初始化空闲调度类scheduling class。简而言之,Linux 支持像实时进程、普通用户进程等等的不同调度类。当选择一个进程变成活动任务时,这些类按优先级进行查询。通过这种方式,核反应堆的控制代码总是优先于 web 浏览器运行。尽管在通常情况下,这些类返回 NULL,意味着它们没有合适的任务需要去运行 —— 它们总是处于睡眠状态。但是空闲调度类,它是持续运行的,从不会失败:它总是返回空闲任务。好吧,我们来看一下这个空闲任务到底做了些什么。下面是 cpuidleloop,感谢开源能让我们看到它的代码:
while (1) { while(!need_resched()) { cpuidle_idle_call(); } /* [Note: Switch to a different task. We will return to this loop when the idle task is again selected to run.] */ schedule_preempt_disabled();}
cpuidleloop我省略了很多的细节,稍后我们将去了解任务切换,但是,如果你阅读了这些源代码,你就会找到它的要点:由于这里不需要重新调度(即改变活动任务),它一直处于空闲状态。以所经历的时间来计算,这个循环和其它操作系统中它的“堂兄弟们”相比,在计算的历史上它是运行的最多的代码片段。对于 Intel 处理器来说,处于空闲状态意味着运行着一个 halt 指令:
static inline void native_halt(void) { asm volatile("hlt": : :"memory"); }
native_halthlt 指令停止处理器中的代码执行,并将它置于 halt 的状态。奇怪的是,全世界各地数以百万计的 Intel 类的 CPU 们花费大量的时间让它们处于 halt 的状态,甚至它们在通电的时候也是如此。这并不是高效、节能的做法,这促使芯片制造商们去开发处理器的深度睡眠状态,以带来着更少的功耗和更长休眠时间。内核的 cpuidle 子系统 是这些节能模式能够产生好处的原因。现在,一旦我们告诉 CPU 去 halt(睡眠)之后,我们需要以某种方式让它醒来。如果你读过 上篇文章《你的操作系统什么时候运行?》 ,你可能会猜到中断会参与其中,而事实确实如此。中断促使 CPU 离开 halt 状态返回到激活状态。因此,将这些拼到一起,下图是当你阅读一个完全呈现的 web 网页时,你的系统主要做的事情:Media除定时器中断外的其它中断也会使处理器再次发生变化。如果你再次点击一个 web 页面就会产生这种变化,例如:你的鼠标发出一个中断,它的驱动会处理它,并且因为它产生了一个新的输入,突然进程就可运行了。在那个时刻, need_resched() 返回 true,然后空闲任务因你的浏览器而被踢出而终止运行。如果我们呆呆地看着这篇文章,而不做任何事情。那么随着时间的推移,这个空闲循环就像下图一样:Media在这个示例中,由内核计划的定时器中断会每 4 毫秒发生一次。这就是滴答tick周期。也就是说每秒钟将有 250 个滴答,因此,这个滴答速率(频率)是 250 Hz。这是运行在 Intel 处理器上的 Linux 的典型值,而其它操作系统喜欢使用 100 Hz。这是由你构建内核时在 CONFIG_HZ 选项中定义的。对于一个空闲 CPU 来说,它看起来似乎是个无意义的工作。如果外部世界没有新的输入,在你的笔记本电脑的电池耗尽之前,CPU 将始终处于这种每秒钟被唤醒 250 次的地狱般折磨的小憩中。如果它运行在一个虚拟机中,那我们正在消耗着宿主机 CPU 的性能和宝贵的时钟周期。在这里的解决方案是 动态滴答,当 CPU 处于空闲状态时,定时器中断被 暂停或重计划,直到内核知道将有事情要做时(例如,一个进程的定时器可能要在 5 秒内过期,因此,我们不能再继续睡眠了),定时器中断才会重新发出。这也被称为无滴答模式。最后,假设在一个系统中你有一个活动进程,例如,一个长时间运行的 CPU 密集型任务。那样几乎就和一个空闲系统是相同的:这些示意图仍然是相同的,只是将空闲任务替换为这个进程,并且相应的描述也是准确的。在那种情况下,每 4 毫秒去中断一次任务仍然是无意义的:它只是操作系统的性能抖动,甚至会使你的工作变得更慢而已。Linux 也可以在这种单一进程的场景中停止这种固定速率的滴答,这被称为 自适应滴答 模式。最终,这种固定速率的滴答可能会 完全消失。对于阅读一篇文章来说,CPU 基本是无事可做的。内核的这种空闲行为是操作系统难题的一个重要部分,并且它与我们看到的其它情况非常相似,因此,这将帮助我们理解一个运行中的内核。via: https://manybutfinite.com/post/what-does-an-idle-cpu-do/作者:Gustavo Duarte 译者:qhwdw 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media

via https://linux.cn/article-9303-1.html?utm_source=rss&utm_medium=rss