Linux系统各发行版用户文档
1. 发行版
Linux 所有发行版可参见:DistroWatch.com。
2. 用户文档
Debian
Ubuntu
Deepin
Manjaro
LinuxMint
RedHat
CentOS
CentOS 是 RedHat 的社区版,因此技术文档可以参考 RedHat。
ArchLinux
ArchLinux 官方的 Wiki 非常优秀(吹爆~),基本上大部分用户所需要的文档都能在上面找到,而且这些文档不仅适用于 Arch 系的 Linux 发行版,对于其他发行版也基本适用。遇事不决上 ArchLinux Wiki。
KaliLinux
KaliLinux 可谓网络安全必备利器,系统默认安装了各类网安工具,而且其官方文档除了系统本身的使用外,还包含各类网安工具的使用文档。
Ubuntu20.04下安装星火应用商店
1. 简介
星火应用商店是国内一款开源的 Debian 系应用商店,其中整合了许多优秀的 Linux 软件和 Wine 适配良好的软件,和 Deepin 应用商店相辅相成,旨在构建一个良好的 Linux 应用生态。由于 Deepin 应用商店在其他 Debian 系统上的适配不是很好,比如 Ubuntu 系统,因此星火应用商店对于非 Deepin 的 Debian 系用户提供了一个很好的选择。为星火应用商店的贡献者点赞~
2. 安装
2.1 添加软件源
添加 Deepin20 官方源
1sudo vim /etc/apt/sources.list.d/deepin.list
在其中添加以下 Deepin20 官方源:
1deb [by-hash=force] https://community-packages.deepin.com/deepin/ apricot main contrib non-free
添加 Deepin20 应用商店源
1sudo vim /etc/apt/sources.list.d/appstore.list
在其中添加以下 Deepin20 应用商 ...
Ubuntu20.04下apt报错
1. 目标 xxx 在 /etc/apt/sources.list:yy 和 /etc/apt/sources.list:zz 中被配置了多次
问题:/etc/apt/sources.list 同时启用了多个镜像源。
解决:注释掉 /etc/apt/sources.list 中多余的镜像源,只保留其中一个即可。
2. 由于没有公匙,无法验证下列签名: NO_PUBKEY xxx
问题:GPG Key 对应的 GPG 验证文件过期或者是有些软件源没有导入 GPG Key 对应的 GPG 验证文件。可以通过下列命令查看所有 GPG Key:
1sudo apt-key list
解决办法:更新无效 GPG Key 对应的 GPG 验证文件。可以通过以下命令下载更新 GPG Key 对应的 GPG 验证文件:
1sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxx
【注】命令中的 xxx 为报错中 NO_PUBKEY 后的 GPG Key 。命令中的 keyserver.ubuntu.com 为提供 G ...
Ubuntu20.04中遇到的网络问题
1. 已连上有线/无线,网络未开代理,却无法访问网络
缘由:我之前在 Ubuntu20.04 开过网络代理服务,当时访问网络正常。但今天突然把代理一关发现怎么都上不了网了,Ping 网络时报错名称解析服务失败,而奇怪的是一开代理又可以访问网络了。
解决:最终发现是 Ubuntu20.04 的网络名称解析服务即 systemd-resolved.service 未开启,因此导致无法由域名解析到 IP 地址,所以导致 Ping 网址域名的时候失败了。应该是由于我使用网络代理从而导致系统的网络名称解析服务被关闭了,通过开启该服务即可解决该问题:
12sudo systemctl enable systemd-resolved.servicesudo systemctl restart systemd-resolved.service
2. 需登录验证的网络始终无法弹出登录验证界面
问题:如果网络正常没问题,那么可能就是自己的 IP 被限制了(比如在校园网中,如果你使用过魔法或者挖矿之类的,就会导致 IP 被限制)。
解决:
方案一:如果不想自己折腾,可以直接打电话给网络管理中心, ...
Ubuntu20.04下MAC地址随机化
1. 简介
由于之前的挖矿操作(具体原因参见 Manjaro21.0 下 MAC 地址随机化,导致我电脑无线网卡的 MAC 地址对应的 IP 被路由器限制了。而我的电脑上又装了多个操作系统,因此需要每个操作系统都配置 MAC 地址随机化(突然觉得有点麻烦,下次再也不敢了555)。总体而言,在 Ubuntu20.04 上配置 MAC 地址随机化和 Manjaro21.0 下 MAC 地址随机化 差不多,不过细节有些差异。
2. 实现
在 /etc/NetworkManager/conf.d 目录下添加一个配置文件 wifi_rand_mac.conf(文件名可自定义),然后在其中填入以下配置信息:
12345678[device]# 扫描 wifi 时随机化 MACwifi.scan-rand-mac-address=yes # no[connection]# 每次通过无线连接时随机化 MACwifi.cloned-mac-address=randomwifi.mac-address-randomization=random
然后将之前的无线连接设置为忘记连接,再重启网络:
1 ...
Manjaro21.0搭建LAMP环境
1. 简介
LAMP 即 Linux+Apache+Mysql+PHP 的简称。
2. 安装 Apache+Mysql+PHP
1yay -S apache mysql php php-apache
3. 配置 Apache
打开配置文件
1sudo vim /etc/httpd/conf/httpd.conf
修改 DocumentRoot 字段后的路径为自定义的 Web Server 根目录
1234DocumentRoot "xxx" # xxx 为自定义的 Web Server 根目录<Directory "xxx"> # ...</Directory>
【注】对于自定义的 xxx 路径,需要确保每一级路径对于第三方用户都有访问权限。比如,如果 Web Server 根目录设为 /home/username/php,为了方便则可以设置 /home/username/ 和 /home/username/php 的访问权限为 777:
12sudo chmod 777 /home/usernamesudo ch ...
C语言各版本对比
附录
参考资料:
C语言的各种版本:C89,AMD1,C99,C11
C++内置宏定义
1. 标准内置宏定义
标准内置宏定义是由相关的语言标准定义的,因此对于实现了这些语言标准的编译器来说都是可使用的。
__FILE__:字符串格式,指示当前处理的文件路径。
__LINE__:数字格式,指示当前处理的代码行号。
#line:用来修改当前行的下一行的行号,即下一行的 __LINE__ 由 #line 所指定的数字开始。
123456789#include<stdio.h>int main(){ printf("Line: %d\n", __LINE__); // 5 #line 100 printf("Line: %d\n", __LINE__); // 100 return 0;}
【注】__FILE__ 和 __LINE__ 宏主要用于错误处理,可以很方便地定位错误位置。
C99 引入了 __func__,它和 GCC 提供的 __FUNCTION__ 功能类似,二者都是字符串格式,指示当前处理的函数名。
【注】__func__ 和 __FUNCTION__ 本质上都不是宏,因为预处理 ...
Manjaro21.0下MAC地址随机化
1. 缘由
我们平时使用无线 Wifi 时,电脑的 IP 地址一般都是路由器分配的,因此这种情况下我们无法修改自己电脑的 IP 地址(除非路由器是你家的)。而我们电脑的 IP 地址有时候会被路由器莫名奇妙地限制,导致我们无法领略到互联网的精彩。(好吧,我不装了,我摊牌了,其实是我用自己电脑挖矿被校园网发现了,然后 IP 被禁了。。。可是我用的是自己的电脑啊喂,呜呜呜)
哼,道高一尺,魔高一丈。在这种情况下,我们可以通过将电脑的 MAC 地址随机化(就是伪造假的 MAC 地址给路由器),来绕过路由器的限制。因为路由器都是根据硬件的 MAC 地址来给其分配 IP 地址的,所以当修改了电脑 MAC 地址后,就可以让路由器给你分配一个新的 IP 地址。
好处:解决 IP 被禁问题,保护隐私(可以为所欲为,有本事你来禁我呀)
坏处:如果联网有验证登录,那么每次都需要重新验证登录。
2. 实现
在 /etc/NetworkManager/conf.d 目录下添加一个配置文件 wifi_rand_mac.conf(文件名可自定义),然后在其中填入以下配置信息:
123456789[device- ...
Manjaro21.0下挖矿
1. 前置知识
俗称的挖矿是指挖虚拟的数字货币,本质就是用 CPU/GPU 去计算求解,详细原理参见廖雪峰的区块链教程。现在的虚拟货币有很多,所以首先你要决定挖什么币,目前常见的币种参见 unMineable 网站。后续我们也需要用到这个网络来配置我们的挖矿程序,以及观测自己目前在币池中所得的币数。
我个人目前选择了狗狗币(Dogecoin)进行尝试,后续有机会的话也会试试以太币(ETH)。
2. 狗狗币(Dogecoin)
2.1 安装钱包
Manjaro21.0 下安装钱包的命令如下:
1yay -S dogecoin-qt
2.2 配置钱包
首先打开 DogeCoin 软件,进入软件前其会要求你指定保存 DogeCoin Core 数据副本的路径,一般至少要几十 GB,建议保存在移动硬盘中,平时也很少用到这个数据。
进入到 DogeCoin 软件中后,配置钱包密码:「主界面」->「Settings」->「Encrypt Wallet…」。
然后生成收款地址,主要用于将币池中挖到的币转到自己的钱包中:「主界面」->「Much Recive」-> ...
Linux下合并PDF
1. pdfunite
Linux 下可以使用 pdfunite 命令来合并多个 PDF 文件。如果你的 Linux 发行版上没有该命令,需要安装 poppler-utils(Debian 系)或 poppler(Arch 系)软件。pdfunite 命令的语法格式如下:
1pdfunite <PDF-sourcefile-1>..<PDF-sourcefile-n> <PDF-destfile>
其中 <PDF-sourcefile-1>..<PDF-sourcefile-n> 为需要合并的源 PDF 文件路径名,<PDF-destfile> 为合并后的目标 PDF 文件路径名。
【注】源文件的路径名可以使用通配符,比如使用 * 来匹配目录下所有的 PDF 文件路径名,此时将根据它们的路径名按照字母表顺序来进行合并。如果需要其他的排序规则,可以结合 Linux 下的 sort 命令来自定义顺序。sort 详细介绍参见 sort --help。
2. PDFtk
PDFtk 是一款跨平台的命令行 PDF 编辑软件, ...
Linux下图片转PDF
1. img2pdf
Linux 下可以使用 img2pdf 工具来将图片转为 PDF 文件。如果你的 Linux 发行版上没有安装 img2pdf,可以使用包管理器(Ubuntu 上的 apt、ArchLinux 上的 pacman 等)手动安装,或者直接使用 pip 进行安装 pip install img2pdf。img2pdf 的基本语法格式如下:
1img2pdf <IMG-sourcefile-1>..<IMG-sourcefile-n> -o <PDF-destfile>
其中,<IMG-sourcefile-1>..<IMG-sourcefile-n> 为源图像文件的路径名,<PDF-destfile> 为目标 PDF 文件的路径名。img2pdf 支持的图像格式有:JPEG、JPEG2000、PNG、TIFF,img2pdf 更多参数介绍参见 img2pdf --help。
【注】源文件的路径名可以使用通配符,比如使用 *.png 来匹配目录下所有的 PNG 图像文件路径名,此时将根据它们的路径名 ...