Bash 环境变量的那些事
初学者可以在此教程中了解环境变量。bash 变量,尤其是讨厌的环境变量,已经是一个老生常谈的话题了。我们也更应该对它有一个详细的了解,让它为我们所用。下面就打开终端,开始吧。环境变量HOME (LCTT 译注:双关语)除了是你脱下帽子惬意休息的地方,同…
如何在 Ubuntu 和其他 Linux 发行版上安装 Putty
如果我没弄错,Putty 可能是 Windows 最受欢迎的 SSH 客户端。在 IT 公司中,开发环境通常在远程 Linux 系统上,而开发人员则使用 Windows 作为本地系统。Putty 用于从 Windows 机器连接到远程 Linux 系统。Putty 不是限定于 Windows 的。你也可以在 Linux …
用户、组及其它 Linux 特性
Linux 和其他类 Unix 操作系统依赖于用户组,而不是逐个为用户分配权限和特权。一个组就是你想象的那样:一群在某种程度上相关的用户。到这个阶段,在看到如何操作目录或文件夹之后,但在让自己一头扎进文件之前,我们必须重新审视 权限、用户 和 组。幸运…
极客漫画:密室逃脱
“密室逃脱”是近年来流行的益智解密游戏。我们的主人公就进入了这样的一个游戏,然而,发现谜题是——如何退出 Vim!!!“如何退出 Vim”这个话题,已经成了众多 Linux 初学者经常听说的一个梗了,比如说,“如何制造乱码?——新手退出 Vim”。甚至在国…
持续集成与部署的 3 个最佳实践
了解自动化,使用 Git 存储库以及参数化 Jenkins 管道。本文涵盖了三个关键主题:自动化 CI/CD 配置、使用 Git 存储库处理常见的 CI/CD 工件、参数化 Jenkins 管道。术语首先,我们定义一些术语。CI/CD 是允许团队快速自动化测试、打包、部署其应用程序的实…
C/C++函数指针与指针函数(二)
文章缘由上次的文章 嵌入式Linux:C/C++函数指针与指针函数 发出来后,有个同学在后面留言 个人觉得说的比较中肯,文章只说了一些肤浅的东西,没有实质性的内容,也没有涉及到项目开发中,所以这次多说一些,希望大家不要觉得啰嗦。 项目实际用到的函数指针…
如何不重装修复损坏的 Ubuntu 系统
今天,我在升级我的 Ubuntu 18.04 LTS 系统。不幸的是,在更新 Ubuntu 时中途断电,系统关机。电源恢复后,我再次启动系统。在登录页面输入密码后,它变成空白并且没有响应。键盘和鼠标也没有作用。我只看到一个空白的屏幕!值得庆幸的是,它只是一台测试机…
我的个人电子邮件系统设置:notmuch、mbsync、Postfix 和 dovecot
我使用个人电子邮件系统已经相当长的时间了,但是一直没有记录过文档。最近我换了我的笔记本电脑(职业变更导致的变动),我在试图重新创建本地邮件系统时迷茫了。所以这篇文章是一个给自己看的文档,这样我不用费劲就能再次搭建出来。服务器端我运行自己的…
在命令行中步入黑客帝国
使用 cmatrix 重建每个人都喜欢的 20 世纪 90 年代科幻电影中滚动代码的经典外观。这是今天的命令行玩具日历推荐项目。如果这是你第一次访问该系列,你可能想知道什么是命令行玩具?它可以是在命令行中任何可以娱乐的东西,可以是一个游戏,一个有趣的工具…
迁移到 Linux:网络和系统设置
这个系列我们提供了基础知识的概述,以帮助您成功地从另一个操作系统过渡到 Linux;这篇中我们涉及到 Linux 桌面系统上的一些常见设置。在这个系列中,我们提供了基础知识的概述,以帮助您成功地从另一个操作系统过渡到 Linux。如果你错过了以前的文章,可…
极客漫画:聊天机器人
现在聊天机器人技术使用的越来越多了,无论是 Slack 机器人还是 QQ 机器人,甚至还有图灵式的,比如 Siri、微软小冰。很多时候,群里面突然跑来一个机器人,那笨拙而无聊的话术,让人看了令人发噱。有时候,昨天我朋友表示,他的机器人被另外一个机器人搭讪…
认识存储:块、文件和对象
今天产生的大量数据带来了新的存储挑战。在本文中了解各种存储类型以及它们的使用方式。现在,对于那些创建或消费数据的公司来说,处理数量巨大的生成数据是个非常大的挑战。而对于那些解决存储相关问题的科技公司来说,也是一个挑战。Red Hat 存储首席产品…
C语言-数组和指针(一)
指针数组和数组指针的定义指针数组:首先是一个数组,这个数组的每个成员是一个指针变量。数组指针:首先是一个指针,这个指针指向一个数组。代码如下int *p1[10];//[]的优先级大于*,p1是一个数组,数组的值是一个指针 int (*p2)[10]; 数组和指针是同一个…
90 年代的大学网管如何使用 Linux
在上世纪 90 年代中期,我报名了计算机科学课。我大学的计算机科学系为学生提供了一台 SunOS 服务器,它是一个多用户、多任务的 Unix 系统。我们登录它并编写我们学习的编程语言代码,例如 C、C++ 和 ADA。在那时,在社交网络和 IM 出现之前,我们还使用该…
搜索 Linux 中的文件和文件夹的四种简单方法
Linux 管理员一天都不能离开搜索文件,因为这是他们的日常活动。了解一些搜索的东西是不错的,因为这能帮助你在命令行服务器中工作。这些命令记忆起来不复杂,因为它们使用的是标准语法。可以通过四个 Linux 命令啦执行此操作,每个命令都有自己独特的功能。…
使用 lolcat 为你的 Linux 终端带来彩虹
使用这个简单的工具,你可以为所需的任何程序的输出变成七彩。今天是 Linux 命令行玩具日历的第五天。如果这是你第一次访问该系列,你可能会问自己,什么是命令行玩具。即使我不太确定,但一般来说,它可能是一个游戏,或任何简单的可以帮助你在终端玩得开…
极客漫画:TCP 兄弟
这幅漫画展示了 TCP 协议的沟通过程。首先是构建一个层(TCP 工作于传输层),然后向要通信的人发送建立联系的信号(SYN),接受到信息的人回复确认信息(ACK),确认已经收到,同时,发送建立联系的信息(SYN),这时,它发送的信息就是(SYN-ACK),当最…
C/C++函数指针与指针函数
前面说的话面试的时候,经常有面试官问这个问题,在Linux内核里面也是经常被使用的,在看很多大神的代码里面,我们也经常遇到函数指针与指针函数,一样,如果你自己没问题了,就不用往下看了。 定义我们看个代码int *func(int a,int b)我们之前说过运算符的…
C语言-数组a 和&a 的区别
面试经典题目#include "stdio.h" int main() { int a[5] = { 1,2,3,4,5 }; int *ptr = (int *)(&a + 1); printf("%d,%d", *(a + 1), *(ptr - 1)); /*getchar是用VS编写方便查看输出*/ getchar(); return 0; } 请思考一下上面的输出结果,如果你非常…
TLDR 页:Linux 手册页的简化替代品
在终端上使用各种命令执行重要任务是 Linux 桌面体验中不可或缺的一部分。Linux 这个开源操作系统拥有丰富的命令,任何用户都无法全部记住所有这些命令。而使事情变得更复杂的是,每个命令都有自己的一组带来丰富的功能的选项。为了解决这个问题,人们创建了 …