普通视图

Received before yesterday

为什么 Linux Shell 命令前加空格会有影响?

2025年6月6日 03:34

理解 Linux Shell 中前导空格的行为

概述

在像 bash 这样的 Linux shell 环境中,命令前加一个空格可能会影响该命令是否被保存到命令历史中。

这个小技巧在处理敏感数据时非常有用,或者当你不希望某个命令被记录下来时也能派上用场。

关键变量:HISTCONTROL

这种行为是由一个叫做 HISTCONTROL 的 shell 环境变量控制的。

查看当前设置的方法如下:

echo $HISTCONTROL

例如,你可能会看到:

ignoredups:ignorespace

值的含义解释

选项 描述
ignoredups 防止连续重复的命令被保存到历史中。
ignorespace 防止以空格开头的命令被保存到历史中。
ignoreboth ignoredups:ignorespace 的简写形式。

使用示例

假设你想导出一个密钥,但又不希望它出现在历史记录中:

 export AWS_SECRET_ACCESS_KEY="super-secret"

命令前加的空格(注意前面的空格)可以阻止它被写入 ~/.bash_history 文件(前提是 ignorespace 设置生效)。

注意事项

  • 只有当 HISTCONTROL 包含 ignorespace 时,此行为才生效。
  • 命令本身的功能不会受到影响 —— 仍然正常执行。
  • 如果没有设置 ignorespace,前导空格将没有任何特殊作用。

如何永久启用此功能

要确保每次打开终端都启用此功能,请在你的 ~/.bashrc~/.bash_profile 文件中加入如下内容:

export HISTCONTROL=ignoredups:ignorespace

然后刷新 shell 配置:

source ~/.bashrc

结语

在 Linux Shell 中命令前加一个空格,是一个简单却强大的技巧。它能防止敏感或临时命令被记录到历史中。对于开发者、系统管理员,或任何频繁使用终端的人来说,这都是一个非常实用的功能。

BASH小技巧

英文:Why a Leading Space in Linux Shell Commands Can Matter?

本文一共 438 个汉字, 你数一下对不对.
为什么 Linux Shell 命令前加空格会有影响?. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 为什么 Linux Shell 命令前加空格会有影响? BASH BASH 学习笔记 安全 小技巧 计算机 运维 运维 DevOps
The post 为什么 Linux Shell 命令前加空格会有影响? first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 租车被收了两份保险钱 前不久去北爱游玩的时候在 booking.com/rentalcars.com 上租了车, 当时一共付了92英镑, 其中36英镑多是保险钱. 然而, 当飞机落地后我去 Budget 取车的时候又交了92英镑钱. 当时我在柜台的时候就有点犹豫, 但是没办法, 必须交, 不交就不给钥匙. 当然92英镑还包括路税. 后来回来就想想不对劲,...
  3. WordPress 最简单的过滤垃圾评论的方法 WordPress 很多垃圾评论都是由程序直接调用访问 wp_comments.php 造成的. 所以我们可以在 functions.php 文件里加入以下代码 新增一个过滤 简单的检查是否是直接调用. 1 2 3 4 5 6...
  4. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  5. LOGO 海龟作画 系列 一 之 给孩子最好的编程启蒙语言 – Logo Turtle Graphics – Series 1 – Best Introductory Programming for Kids I think the LOGO turtle graphic is the best introductory programming language for the kids....
  6. 在英国给孩子换学校的经历: 孩子离开了村里的小学 由于搬了家, 孩子上学得提前半小时出门了, 因为早上堵, 也得开车半小时才能到. 之前在 Fen Drayton 村庄上小学, 早上8:45学校门开, 9点敲钟孩子排队依次进入教室, 我们由于在村里, 只需要提前5分钟出门和孩子一起走路就可以了. 现在一下子早上变得很匆忙, 得叫孩子起床, 做早饭,...
  7. 比特币最近波动有点大: 一天牛市一天熊 比特币10万美金以内都是最后上车的机会! 比特币近期的价格波动可以归因于多个关键因素,包括地缘政治动态、监管变化以及加密行业内的重大安全事件。其中一个主要影响因素是美国前总统唐纳德·特朗普对乌克兰和加密货币监管的立场变化。据报道,特朗普再次当选,他可能会推动减少美国对乌克兰的支持,这可能会影响全球金融市场和风险偏好。同时,特朗普正在将自己塑造为亲加密货币的候选人,表示有意让美国成为一个更加友好的加密货币环境。这一立场引发了市场对监管政策可能发生变化的猜测,导致市场情绪在乐观和不确定性之间波动。 特朗普对俄乌战争的态度 美国第43届总统唐纳德·特朗普已经在2025年1月当选并正式上任(第二次),那么他的政策可能会对比特币价格的波动产生更加直接和显著的影响。他政府对乌克兰和加密货币监管的立场已经不再是猜测,而是正在实际塑造市场的关键力量。 特朗普(Donald Trump)减少美国对乌克兰的支持,全球投资者可能会预期地缘政治稳定性发生变化,从而增加对比特币作为避险资产的需求。同时,他的亲加密货币立场可能正在推动市场的乐观情绪。如果他的政府推出有利于加密行业的监管政策,例如明确的合规指南或减少监管审查,可能会吸引更多机构投资者进入市场,并促进更广泛的加密货币采用。然而,政策的快速变化也可能导致短期市场剧烈波动,因为市场需要时间来消化新的政策动向。 朝鲜黑客盗取Bybit交易所15亿美元的ETH 另一个显著影响比特币价格的事件是近期涉及朝鲜黑客组织“Lazarus”的15亿美元以太坊被盗案件。据报道,Bybit交易所(全球第二)这些被盗的ETH已经被清洗,此次大规模黑客攻击引发了人们对加密行业安全性的担忧。此类安全事件不仅会削弱投资者信心,还可能引发更严格的监管审查,导致短期市场动荡。此外,被盗资金的大规模流动和出售可能对市场流动性造成冲击,进一步加大价格波动。随着这些事件的持续发酵,比特币价格正受到政治决策、监管预期以及安全挑战等多重因素的影响。 与此同时,与朝鲜黑客组织 Lazarus 相关的 15 亿美元以太坊被盗事件仍在影响加密市场。由于这些被盗 ETH 已被清洗,人们对加密行业安全漏洞的担忧持续存在,同时也可能引发更严格的监管审查。政治、监管和安全等多重因素交织在一起,共同导致了比特币近期的剧烈价格波动。...
  8. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  •  

超级自恋狂 — 定制终端 ssh 欢迎语

2025年2月13日 15:36

今天宝子开学了,其实这个假期她在家也没待几天。昨天折腾完浏览器控制台自定义输出之后,目光又转向了很久之前就想做,但是一直没做的终端以及 ssh 的定制输出。

这个东西简单做法非常简单,不外乎是配置 sshd 的banner 或者/etc/update-motd.d/下的相关文件,然而,我想要的不仅仅是输出几个文字那么简单,最起码要能达到类似于昨天做的控制台输出 ascii 字符画的效果。

然而,这个实现起来的确比上文提到的控制台输出要复杂的多。毕竟作为纯文本的终端系统要输出复杂字符或者直接输出图片难度还是挺大的。

最开始是想基于 neofetch 来做:

Neofetch is a command-line system information tool written in bash 3.2+. Neofetch displays information about your operating system, software and hardware in an aesthetic and visually pleasing way.

The overall purpose of Neofetch is to be used in screen-shots of your system. Neofetch shows the information other people want to see. There are other tools available for proper system statistic/diagnostics.

The information by default is displayed alongside your operating system’s logo. You can further configure Neofetch to instead use an image, a custom ASCII file, your wallpaper or nothing at all.

You can further configure Neofetch to display exactly what you want it to. Through the use of command-line flags and the configuration file you can change existing information outputs or add your own custom ones.

Neofetch supports almost 150 different operating systems. From Linux to Windows, all the way to more obscure operating systems like Minix, AIX and Haiku. If your favourite operating system is unsupported: Open up an issue and support will be added.

地址:https://github.com/dylanaraps/neofetch/

效果:

在实际测试的时候发现左侧的图片要想实现项目首页的这个效果,竟然无法做到,按照 wiki 的指导,支持下面的 backend:

Neofetch 3.0 included a rewrite of how we handle different modes (imageascii and etc) which allowed us to add additional image backends to Neofetch. Neofetch now supports displaying images using catimglibcacachafaiterm2jp2akittypixtermpotlibsixeltermpixtycat, and w3m.

然而,不管是 iterm2 还是w3m,实际实现效果都非常差。无法正常显示要加载的图片。后来发现 viu 可以在终端显示图片,然而效果嘛,看下来还是不行,不过放到终端里面,也算是能看出人形来了。

然而,困难之处在于 neofetch 无法使用 viu 作为 backend 显示图片。

并且这个项目已经停止更新了,按照作者的说法是回家种地了。就在这个结束不久之后又出现了一堆新的 fetch。

按照评价最高的就是 fastfetch,这个东西同样支持定制化的图片输出。

Fastfetch is a neofetch-like tool for fetching system information and displaying it prettily. It is written mainly in C, with performance and customizability in mind. Currently, Linux, Android, FreeBSD, macOS, SunOS and Windows 7+ are supported.

地址:https://github.com/fastfetch-cli/fastfetch?tab=readme-ov-file

这个东西是用 c 语言开发的,不再跟 neofetch 一样是纯 bash 脚本。至于运行效率提升,应该是有一些。

同样,看项目首页的效果还是不错的:

既然选定了目标,那就继续开始折腾吧。由于家里的电脑是 windows,所以选择了远程 ssh 到 ubuntu 服务器上进行配置的方式。在测试的过程中发现基于 w3m 无法在 ssh 终端中显示图像。一番搜索之后,发现了这么一个项目:

https://github.com/sqlsec/fastfetch/tree/main?tab=readme-ov-file
Fastfetch 是一个类似 neofetch 的工具,用于获取系统信息并漂亮地显示它。它主要用 C 语言编写,并考虑了性能和可定制性。本项目是一个 Fastfetch 轮子,主要是集成了宝可梦显示和其他系列的恶搞图片,目前只在 Linux 和 macOS 平台下测试过。

里面继承了一个宝可梦的字符图片生成。那么基于这个东西既然能在 ssh 中显示,那么也就是说如果能生成宝可梦类似的文本就可以正常显示所谓的图片了。

上面的图片虽然模糊,但是生成一个网站 logo 应该是可以的。宝可梦的字符串是基于这个项目创建的:

https://gitlab.com/phoneybadger/pokemon-colorscripts.git

翻了半天代码发现,并不是通过图片生成的文本,而是本身就已经是文本:

这就尴尬了,也就是说通过这个项目的代码将图片转为文本已经不可能了。

google 上搜索 convert image/picture to text 或者convert image/picture to ascii,发现返回的都是 ocr 相关的内容,这该死的人工智能,现在已经没人有这种需求了吗?我是真的要讲图片转为文本,而不是要识别图片上的文本。翻了数十页,有用的信息 一条也没有。

这时突然灵光一现,直接搜索转化的文本:

https://www.google.com/search?q=%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84++++++++++++++++++++%0D%0A++%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m+++++++++++++++%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m++%0D%0A+%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B189%3B189%3B189m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84+++%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%0D%0A%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B90%3B99%3B123m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B65%3B65%3B65m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B189%3B189%3B189m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B65%3B65%3B65m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B90%3B99%3B123m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m+%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B189%3B189%3B189m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B132%3B132%3B132m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B132%3B132%3B132m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B189%3B189%3B189m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%80&newwindow=1&sca_esv=0fc7dd398656b67a&biw=2519&bih=1218&sxsrf=AHTn8zrYB8iVn-PuK5p4PazbOlDmwyh7KQ%3A1739371785317&ei=CbWsZ_H3Esjo1e8P25fugAY&ved=0ahUKEwixoJXrsL6LAxVIdPUHHduLG2A4HhDh1QMIEg&uact=5&oq=%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84++++++++++++++++++++%0D%0A++%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m+++++++++++++++%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m++%0D%0A+%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B189%3B189%3B189m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84+++%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%0D%0A%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B90%3B99%3B123m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B65%3B65%3B65m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B189%3B189%3B189m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B65%3B65%3B65m%1B%5B48%3B2%3B65%3B65%3B65m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B99%3B132%3B173m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B90%3B99%3B123m%1B%5B48%3B2%3B99%3B132%3B173m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m+%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%84%1B%5B38%3B2%3B0%3B0%3B0m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B189%3B189%3B189m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B132%3B132%3B132m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B132%3B132%3B132m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B189%3B189%3B189m%1B%5B48%3B2%3B255%3B255%3B255m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B255%3B255%3B255m%1B%5B48%3B2%3B0%3B0%3B0m%E2%96%80%1B%5B0m%1B%5B38%3B2%3B0%3B0%3B0m%E2%96%80&gs_lp=Egxnd3Mtd2l6LXNlcnAi-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&sclient=gws-wiz-serp

nice,总算是给了点提示,ansi color,或者 ansi 。继续搜索图片转 ansi,最后终于找到了一个在线工具:

https://dom111.github.io/image-to-ansi/

那么有了这个东西,就可以将图片转化为宝可梦类似的字符串了。

下面会给出对应的 sh 脚本代码,测试效果可以直接扔到终端去测试。

图片转化解决了,剩下的就是怎么写配置文件。搜索的时候发现了这么一篇文章,同样里面给出了上面的配置文件脚本的合集:

https://www.sqlsec.com/2024/09/ubuntu.html#

参考文章给的:https://github.com/sqlsec/fastfetch里面的配置文件,编写自己的配置文件。

将上面图片转 ansi 给出的 sh 脚本保存为 sh 文件,修改配置文件的 图片为下面的内容:

"modules": [
        {
            "type": "command",
            "text": "sh $HOME/.config/fastfetch/sh/logo-80.sh",
            "key": "\n"
        },

上面的代码没有在 logo 字段内设置,目前还没发现怎么在 logo 中执行命令,如果直接将生成的字符串贴到 logo 内会报错。

通过下面的命令验证配置文件,主要文件路径要复制到用户目录下的.config/fastfetch/中。

这个是基于 zsh 的,当然如果是 iterm 那么效果就更加惊艳了。如下面:

远程 ssh 效果:

为了简化上面的操作,于是我创建了一个开源项目,如果需要可以直接拉取代码针对性修改即可。

下面正文开始啦:

1.安装 fastfetch,具体安装方法,参考https://github.com/fastfetch-cli/fastfetch

Linux

 

Some distros package an outdated fastfetch version. Older versions receive no support, so please try always to use the latest version.

Packaging status

  • Ubuntu: ppa:zhangsongcui3371/fastfetch (for Ubuntu 22.04 or newer)
  • Debian: apt install fastfetch (for Debian 13 or newer)
  • Debian / Ubuntu: Download fastfetch-linux-<proper architecture>.deb from Github release page and double-click it (for Ubuntu 20.04 or newer and Debian 11 or newer).
  • Arch Linux: pacman -S fastfetch
  • Fedora: dnf install fastfetch
  • Gentoo: emerge --ask app-misc/fastfetch
  • Alpine: apk add --upgrade fastfetch
  • NixOS: nix-shell -p fastfetch
  • openSUSE: zypper install fastfetch
  • ALT Linux: apt-get install fastfetch
  • Exherbo: cave resolve --execute app-misc/fastfetch
  • Solus: eopkg install fastfetch
  • Slackware: sbopkg -i fastfetch
  • Void Linux: xbps-install fastfetch
  • Venom Linux: scratch install fastfetch

You may need sudodoas or sup to run these commands.

If fastfetch is not packaged for your distro or an outdated version is packaged, linuxbrew is a good alternative: brew install fastfetch

macOS

 

Windows

 

  • scoopscoop install fastfetch
  • Chocolateychoco install fastfetch
  • wingetwinget install fastfetch
  • MSYS2 MinGWpacman -S mingw-w64-<subsystem>-<arch>-fastfetch

You may also download the program directly from the GitHub releases page in the form of an archive file.

FreeBSD

 

  • pkg install fastfetch

Android (Termux)

 

  • pkg install fastfetch

2.拉取项目代码:git clone https://gitee.com/obaby/baby-fetch

将项目目录下的 fastfetch 复制到用户目录下的.config 目录下

cp -rf fastfetch ~/.config/

增加一键部署脚本,下载后直接执行 deploy.sh 即可,支持 bash, zsh 终端!后续步骤可以省略了!!!

增加一键部署脚本,下载后直接执行 deploy.sh 即可,支持 bash, zsh 终端!后续步骤可以省略了!!!

增加一键部署脚本,下载后直接执行 deploy.sh 即可,支持 bash, zsh 终端!后续步骤可以省略了!!!

直接修改 welcome.sh 修改加载配置文件皆可!

直接修改 welcome.sh 修改加载配置文件皆可!

直接修改 welcome.sh 修改加载配置文件皆可!

(venv) zhongling@ZhongLingdeMBP baby_fetch % /bin/bash /Users/zhongling/PycharmProjects/baby_fetch/deploy.sh
===========================================================================
Baby fetch自动部署工具
obaby@mar
https://h4ck.org.cn
https://oba.by
https://nai.dog
===========================================================================
Start deploy:
copy files......
*************************************
Write config to terminal profile:
process .bash_profile
already exists, skip
-------------------------------------
process .zshrc
already exists, skip
-------------------------------------
process .profile
already exists, skip
All done, have a nice day
===========================================================================

 

红字部分于2015.01.13 17.25 更新!

3.修改终端配置文件,在修改之前需要确定当前运行的终端是什么 bash,zsh 或者是其他的什么东西。

例如,我这里的终端是 zsh,运行 fastfetch 查看 shell 字段:

vim ~/.zshrc

添加以下代码:

if [ -f ~/.config/fastfetch/welcome.sh ]; then
    ~/.config/fastfetch/welcome.sh
fi

如果是 bash :

vim ~/.bash_profile

同理其他的终端修改对应的位置文件,执行 source ~/.zshrc加载配置文件,如果无误应该就可以看到效果了。

目前针对 macos welcome.sh 会针对是否运行在 iterm 内加载不同的配置文件:

#!/bin/bash
if [ "$TERM_PROGRAM" = "iTerm.app" ]; then
#    echo "当前运行在 iTerm 中"
     fastfetch -c ~/.config/fastfetch/config-obaby-mac-iterm-weding.jsonc
else
#    echo "当前没有运行在 iTerm 中"
    fastfetch -c ~/.config/fastfetch/config-obaby-logo-80.jsonc
fi

同样定制化加载的文件也可以通过修改 welcome.sh实现,或者直接修改这个文件加载的配置文件实现。

为了更好的体验效果,在 mac 下建议安装 iterm,linux 下建议安装kitty。

iterm 建议通过 homebrew 安装:

brew install iterm2

https://iterm2.com

https://sw.kovidgoyal.net/kitty/binary/

4.显示问题,如果显示有乱码建议安装包含自带字体图标的字体,可以通过这里下载:https://www.nerdfonts.com/font-downloads

项目中已经包含了两个字体压缩包,可以直接安装使用。

同样,针对 ssh 的欢迎语也可以通过修改终端配置文件实现,这么改的好处是,针对不同用户可以用户自己定义。并且不需要修改 sshd配置文件,无需重启服务。

测试环境:

Mac:

 CPU Apple M1
󰋵 GPU Apple Apple M1 Ghz
󰀚 Memory 13.46 GiB / 16.00 GiB (84%)
󰘳 Shell zsh v5.9
󰀚 Disk 200.69 GiB / 228.27 GiB (88%) – apfs [Read-only]
󰀚 Disk 5.06 MiB / 5.06 MiB (100%) – hfs [External, Read-only]
󰀚 Disk 766.07 MiB / 934.23 MiB (82%) – apfs [External, Read-only]
󰘳 Network en0 192.168.8.100/24
󱦟 OS Age 20132 days
󱫐 Uptime 41 days, 23 hours, 57 mins
 Machine MacBook Pro (13-inch, M1, 2020) (Apple Inc.)

Ubuntu:

󰀶 OSUbuntu 22.04.4 LTS x86_64
󱢌 Bios449e491 (0.0)
 KernelLinux 5.15.0-92-generic
󰏗 Packages1190 (dpkg), 3 (snap)
󰹑 Display1024x768 @ 60 Hz
 Terminalsshd

● ● ● ● ● ● ● ●

 CPUIntel(R) Xeon(R) Platinum
󰋵 GPUCirrus Logic GD 5446 Ghz
󰀚 Memory1.00 GiB / 1.65 GiB (61%)
󰘳 Shellbash v5.1.16
󰀚 Disk27.71 GiB / 39.01 GiB (71%) – ext4
󰘳 Networketh0 172.23.120.93/20
󱦟 OS Age 380 days
󱫐 Uptime 89 days, 20 hours, 50 mins
 MachineAlibaba Cloud ECS (Alibaba Cloud)

项目地址:

https://gitee.com/obaby/baby-fetch

https://github.com/obaby/baby-fetch

参考链接:

https://github.com/sqlsec/fastfetch

https://www.sqlsec.com/2024/09/ubuntu.html#%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B

https://talyian.github.io/ansicolors/

https://gitlab.com/phoneybadger/pokemon-colorscripts

 

  •  

把你的终端变成复古显示器

2019年10月26日 00:00

你还记得那段遍地都是 CRT 显示器、终端屏幕闪烁不停的时光吗?现在你不需要穿越到过去来见证那段时光。假如观看背景设置在上世纪 90 年代的电影,你就可以看到大量带有绿色或黑底白字的显像管显示器。这种极客光环让它看起来非常酷!

工具介绍

Cool Retro Term 就是一款让你回到过去的应用,它的作用与系统的终端完全一致,特别的是,它模拟各种古董级显示器的显示效果,年代感十足哦!

不过因为其界面的效果,在虚拟机中运行可能会有些卡顿。杜老师的宿主机系统使用的是 Linux,运行起来十分流程,建议大家也来体验一下!

安装步骤

1
2
3
4
5
yum -y install qt5-qtbase qt5-qtbase-devel qt5-qtdeclarative qt5-qtdeclarative-devel qt5-qtgraphicaleffects qt5-qtquickcontrols redhat-rpm-config git gcc-c++
git clone --recursive https://code.aliyun.com/penndu/cool-retro-term.git
cd cool-retro-term/
qmake-qt5
make

注意:为了提升下载速度,杜老师已经将下载地址改为国内的服务器,所以可能不是最新版本。

使用方法

1
./cool-retro-term

注意:每次运行时需要进入到安装目录执行上面命令,如果感觉麻烦,可以使用软链接的形式。

运行效果

运行效果如图:

  •  
❌