0X00 你需要一台 NAS 吗
不知怎么的,在移动互联网疯狂发展的今天,反而慢慢开始兴起了自建网络服务这种复古风潮。最近这些年身边的朋友同事越来越多聊到 NAS 了,甚至 B 站上出现了一小撮 NAS 区 UP 主(没错,你知道我说的是谁)。就更不说现在淘宝咸鱼上大量的 NAS 专用机箱,甚至是 3D 打印的定制化版本了。
你真的需要一台 NAS 吗?NAS 说白了就是一块连着网的硬盘,速度比直接插电脑上还慢一些,如果你平日里需要访问数据的设备并不多,且拥有一个台式电脑,那不如先买两块硬盘插上去。通过文件共享功能将台式机转换成一个带有存储功能的兼职 NAS。
如果你家里的多个手机、平板、电脑、电视都需要访问存储,或者你没有台式机可以扩容,那确实可以考虑搞一台 NAS。
我自己的需求是这样的:
* 平时喜欢摄影,每次拍摄回来的照片少则 10G 多则 50G,日积月累已经有大几百 G 了,需要备份
* 也喜欢拍一些视频,相机拍摄的码率都很高,随随便便 50G 100G 的,需要备份
* 患有仓鼠症,喜欢囤一些高清电影电视剧来看,总共搞了有差不多 8T 了
*…
0X00 来骗,来偷袭
这次来介绍一个来骗来偷袭的 Python 库:Faker。我们平时经常会跟数据库、跟 csv 这些东西打交道。尤其是当你设计一个数据库表的时候,开发和测试环境中只有空荡荡一个表,没有测试数据就很尴尬。
Faker 就是设计来解决这种问题的,它可以快速生成各种你需要的假数据。安装和使用都非常简单:pip install Faker 就可以完成安装。
这篇 mini 博客的目的是解决「不知道自己不知道」的问题,也就是说明有这么一个库可以做什么,然后介绍简单的用法;具体这个库的完整用法还是要去查看文档。
这里给出一个简单的使用实例:
简单示例
这里仅仅有两条需要注意的:
1. 实例化 faker 的时候记得标记语言,默认是英文信息;
2. 实例化的 faker 每次调用都会生成新的假数据,只需要实例化一次即可;
Faker 支持生成非常非常非常多数据类型,这里就不也没必要一个个介绍出来。分享一个我自己的用法:可以用 dir(faker) 的方式看它究竟有多少假数据类型可用,也可以在 iPython 中实例化一个 faker 出来然后通过 faker. TAB…
0X00 前言
不知道为什么,当三个好用的工具在一起的时候就会被称作:三剑客;四个好用的工具在一起的时候就会被叫做四大天王 🤔。
算了,这不重要。
这篇文章的目的是带不了解这三个工具的朋友们简单上手使用它们,默认各位是掌握了 Linux 的基本用法的,其中也会出现有关正则的内容。如果你不懂正则的话建议跳过正则的部分,并且看完这篇文章马上就去学。另外,不要因为正则看起来有点像通配符就按通配符的操作进行下去。
0X01 grep
首先这三个工具中最常用的应该就是 grep 了,它用于从文件中搜索你感兴趣的内容。例如下面的例子就可以输出 /etc/passwd 文件中包含 root 的行
也可以接多个文件,这样输出的时候就会以文件名开头了
下面介绍几个参数:
* -i 忽略大小写
* -v 显示不匹配的行(取反)
* -n 增加行号显示
* -c 显示总共多少行,而非具体内容
* -r 递归查找所有文件
* -A 也就是 after,即显示匹配行和它后面的 n 行
* -B 也就是 before,显示匹配行和它后面的 n 行
* -C 相当于 -A 和…
0X00 基础知识
常用 Linux 的各位估计都知道 iptables、firewalld 和 ufw 这三个工具吧,或者还知道 netfilter 这个内核组件。但是他们究竟是什么关系呢?从关系上来讲,可以将他们分成三层:最底层是 Linux 的安全框架 netfilter,上面是用来操作 netfilter 的 iptables,再上层是 firewalld 和 ufw。
其中 firewalld 一般会默认安装在 RHEL 和 CentOS 中,ufw 会默认安装在 Debian 和 Ubuntu 中。不过由于很多人还是习惯直接操作 iptables 所以这次的重点就是它了。很多人会说 iptables 是防火墙,这其实并不严谨,它的标准定义应该叫做 Packet Filter 也就是包过滤工具。而且事实上也是如此,它不仅能够实现防火墙的限制流量功能,还能提供 NAT 转发的能力。
iptables 内部总共拥有 4 张表(table),又有多个链(chain),如下图所示。
既然是「写给新手的 iptables 使用说明」,自然是挑选最重要的一部分来介绍的,也就是 nat…
0X00 什么不是加密
首先要先明确一个问题:我们日常使用非常多的 md5、SHA-1、SHA-256 这些 通通都不是加密 ,这些叫做摘要算法 。一串明文经过加密算法加密之后,是可以再次解密成明文的,但是摘要算法就不行了。
拿最常见的摘要算法 md5 举例:针对任何一个合法输入,md5 都会给出一个固定长度为 128 bit(32 byte)的输出,例如 md5("hello, world") -> e4d7f1b4ed2e42d15898f4b27b019da4。准确来说你是不能通过后面这串摘要值来反推之前的原文是什么的。因为严格来说这一串摘要值可以对应无限个不同的原文。那么摘要算法一般是拿来做什么用的呢?比较常见的是用来校验数据一致性,比如鸡太美同学编写了一个程序放到网上给大家下载使用,但是我们都知道文件传输过程中理论上可能会出错,所以他在上传之前就计算了程序的 md5 并且在传到服务器上之后再次计算…
0X00 Header
相信各位肯定都对 Python 中的基础、常见数据类型和数据结构比较熟悉了吧,不管是 int、float、string、bool 还是 list、tuple、set 用起来应该也都是手到擒来了吧。下面我们就来简单了解一下相对高级一些的 Python 内置数据结构,这些数据结构全都在 collections 的标准库中。
掌握这些数据结构虽然并不能让你「精通 Python」,但起码可以让你的代码更加 Pythonic,也能让你少写几行冗余的代码。
0X01 ChainMap
首先是 ChainMap,光是看名字大概都能猜到这东西的用途了:把 Map 组装为 Chain 嘛。在 Python 中最常见的也就是字典了,所以这个数据结构的主要功能就是将多个字典加在一起。
如果你手上有 100 个字典,现在你需要将他们加在一起,在没有 ChainMap 的时候大概率会写出这样的代码:先整一个 result 作为最终结果的容器,然后遍历这 100 个字典,一遍遍 update
现在有了 ChainMap 之后可以写成这样:将所有的 dict 都作为 ChainMap…
片头胡诌
要说 2023 年跟前几年比起来有什么最大的变化,那应该就是防疫了吧。连续了三年的疫情或者说防疫,终于在 2023 年到来的时候结束了。本以为到了新的一年能报复性娱乐 一把,但是低头看了看兜里的钱,抬头看了看当前的经济形势,一怒之下就...在床上翻了个身 😮💨
不过话虽这么说,毕竟防控还是没有了,今年出行便利程度直接拉满(其实只是回到了应该有的样子而已)。不然按照之前的操作,根本不敢想今年这几次出行得有多费劲。
去年定下的「2023 年度计划」也在这篇博客完成之际到了 Deadline,怎么说呢,俩字形容基本就是「稀碎 」,具体的就打散了放在这个年度总结里说一说吧。离谱的是往前看了两年的总结,好像每年都挺稀碎的,所以这次 2024 年的计划我打算换个形式来设计,争取一年后再次总结的时候不这么稀碎。
那么圆规正转,直接就开始吧 🎉
生活变化
今年生活上的一些变化很多都涉及到了个人隐私,确实不太方便写出来,简单来说就是又有了一个里程碑式的前进吧。硬要选一个来说的话可能就是今年八月份回了一趟家,说起来已经五年没有感受过唐山的八月了,更是已经快要十年没有感受过北方的春天了。…
0X00 header
首先,git 是没有 header 这个命令的:)
平时经常会用到一些 git 的用法,也有遇到过别人来问怎么实现某某操作,但是都太零散了并不成体系,所以这里就简单整理一下不做分类了。希望对不小心通过 Google 搜到该文章的你有所帮助(不会的有人能搜到吧🤣)
0X01 pull 与 pull --rebase
首先是搞清楚 git pull 和 git pull --rebase 的区别,我们学 git 第一天肯定就学了 git push 是推代码,git pull 是拉代码,那么这个 git pull --rebase 又是个什么东西呢?
git pull 本质上是 git fetch 加上 git merge 的功能,也就是说把代码拉到本地来再和本地代码进行一次 merge。这就意味着,如果出现冲突的话 git 会创建一个 Merge commit 来解决这个问题。
git pull --rebase 则是 git fetch 和 git rebase 的组合。使用的时候会先将本地比远端多出来的 commit…
0X00 前言
在这里介绍 Shell 脚本编程和日常的命令行操作中最常用的 9 个命令,希望对读到这篇文章的你有所帮助~
这是一篇基础得不能再基础的内容,如果你看完还能有两三个收获的话,那就一起来恶补 Linux 知识吧🤣
0X01 cat
cat 命令应该是学习 Linux 命令时候最早接触到的命令之一了,自然不用多说什么,这里只提一个用法:如何 cat 命令创建一个文件。例如在脚本中我们需要创建一个配置文件,当然可以把配置文件跟脚本文件放一起,然后 cp 过去,但是如果你想用一个文件搞定的话(这样在看脚本的时候就知道配置文件是什么内容了,看着舒服改起来也方便)就可以这么操作
这段命令写在 shell 脚本中就意味着会把两个 EOF 中间行的内容作为文件 cat 一下,再接上后面的重定向,就把它写入到 xxx.conf 中了。不仅可以在脚本中,直接写在命令行中也是可以的。当然也可以不带重定向使用。
这里有一篇阮一峰的文章在相对详细的介绍什么是 EOF。
需要注意的是 EOF 只是我们约定俗成的 Enf Of File 的缩写,你非要用别的表示也是可以的(比如你的文本中包含…
0X00 介绍
不管对 sudo 的了解具体有多少,至少应该都用过 sudo 命令来临时将自己的非 root 用户提权至 root 了吧。不过 sudo 当然不只是将用户变成 root 的这么一个简单工具了,虽然它确实是将用户临时变更为 root ,但是页还是有不少其他更加细致的配置与选项。
sudo 是 Linux 中的一个命令,用于以管理员身份执行命令。它允许普通用户在不切换到 root 用户的情况下执行需要特权的操作,从而提高了系统的安全性和可管理性。sudo 可以通过配置文件进行自定义,以控制哪些用户可以以何种方式执行哪些命令。同时,sudo 还可以记录用户的操作日志,以便系统管理员进行审计和监控。
还有一个需要注意的就是,sudo 本质上是一个应用,并非最基础系统的一部分,它比 Unix 晚诞生了有近 10 年。这也就意味着并不是所有的 Linux 发行版本都会自带这个程序(比如 minimal 模式安装的 Ubuntu Server 就是没有的),如果遇到这种情况还是需要自己手动安装一下,不过这种多人共用的操作系统中没有 sudo 的情况还是很罕见的。
0X01 修改配置…