Clash DNS & IPv6 配置
DNS 配置说明
我华硕路由器使用的是 Clash.Meta 内核的 Merlin Clash,下面介绍了其中的 DNS 配置,部分参考了 请教下 clash 的 DNS 是这么配置么? 这篇帖子。
核心思想是,通过 nameserver-policy
对域名进行匹配,
- 使用
"geosite: cn,private"
条件,匹配所有国内域名 - 使用
"geosite: geolocation-!cn":
条件,匹配所有国外域名
乔布斯2005斯坦福大学演讲
乔布斯演讲原文链接
I am honored to be with you today for your commencement【nous,kəˈmensmənt, 学位授予典礼;毕业典礼】from one of the finest universities in the world. Truth be told, I never graduated from college, and this is the closest I’ve ever gotten to a college graduation. Today I want to tell you three stories from my life. That’s it. No big deal. Just three stories.
我今天很荣幸能和你们一起参加毕业典礼,斯坦福大学是世界上最好的大学之一。我从来没有从大学中毕业。说实话,今天也许是在我的生命中离大学毕业最近的一天了。今天我想向你们讲述我生活中的三个故事。不是什么大不了的事情,只是三个故事而已。
Linux 系统中文件的 atime, mtime 和 ctime
先上结论:
- Access time (atime): 最近一次读取文件内容的时间。
- Modifty time, (mtime): 最近一次修改文件内容的时间。
- Change time (ctime): 最近一次更改文件元数据的时间
- 修改文件内容会同时修改 mtime 和 ctime,具体原因见下面对
struct stat
的分析。
VSCode Tips
Regex Engine in VSCode
部分内容参考自 Regex in VSCode
VSCode 包含两种搜索方式:
搜索方式 | 快捷键 | 正则引擎 | 作用 |
---|---|---|---|
Search | Ctrl-Shift-F | ripgrep | 活动侧边栏上的放大镜图标,用于搜索当前工作区中的所有文件夹 |
Find/Replace | Ctrl-F | JavaScript | 仅适用于当前文档的简单查找/替换工具(可通过单击 编辑->查找 访问) |
VSCode 中的工作区搜索由开源的 ripgrep 面向行的搜索工具提供支持。 ripgrep 引擎在底层使用 Rust 正则表达式。如果 ripgrep 引擎无法解析正则表达式,VSCode 会回退到 PCRE2 引擎来处理结果。
比如,ripgrep 不支持反向引用 (backreferences) 和环视 (lookaround),如果搜索中用到这两个功能,VSCode 将自动调用 PCRE2 引擎。
相比之下,编辑器 Find 使用 JavaScript(特别是 ECMAScript 5)正则表达式引擎,该引擎支持反向引用和环视。
理解 sudoers
sudoers
是默认的 sudo
策略插件,它确定用户的 sudo
权限,其策略在 /etc/sudoers
文件或 LDAP 中定义。
sudoers 语法
sudoers options
sudo
的行为可以通过 Default_Entry 行进行修改
- 输入密码后 30 分钟内不需要再次输入密码
Defaults timestamp_timeout=30
- 不再需要用户 peter 输入密码
Defaults:peter !authenticate
User specifications
Ansible 笔记
Ansible: What’s the difference between task, role, play and playbook?
Playbook 是 play 的列表。顶层的 playbook YAML 里只做两件事:
- 定义 play
- 使用关键字
import_playbook
从另一个 playbook YAML 文件导入 plays。
playbook 只能被 ansible-playbook
调用。
Task,用手册的话说,就是用来调用一个 ansible 模块。但是,task 不知道它应该运行在哪些主机上。
Play 用来将任务绑定到要运行的服务器上。这里的重点是强制关键字 hosts
,它告诉哪些主机受到影响以及如何受到影响。
Hadoop and MapR
hadoop fs and hadoop dfs command
StackOverflow - Difference between “hadoop fs” and “hdfs dfs”
hadoop fs <args>
fs
处理通用文件系统相关操作,它可以指向任何文件系统,因此,当处理不同的文件系统时,如 Local FS、HDFS、(S)FTP、S3 等,可以使用它。
Openshift
以下命令,如无特别说明,均可以使用 kubectl
替换 oc
kubectl 命令自动补全
参考 kubectl auto completion 设置别名和自动补全。
echo 'source <(kubectl completion zsh)' >>~/.zshrc
echo 'alias k=kubectl' >>~/.zshrc
echo 'complete -o default -F __start_kubectl k' >>~/.zshrc
如果使用 oh-my-zsh
,可以直接使用 kubectl
和 oc
自动补全插件
Maven 生命周期
生命周期 (Build Lifecycle)
Maven 的核心概念基于 Build Lifecycle。Maven 有三个内建的 build lifecycle
Build Lifecycle | Description |
---|---|
default |
handles project deployment |
clean |
handles project cleaning |
site |
handles the creation of project’s web site |
生命周期中的阶段 (Build Phase)
- Build lifecycle 由多个阶段组成
- 阶段的执行是有序的,执行某个阶段,会先执行其前面的所有阶段
Jenkins
容器中运行
Master
如果使用 nginx 作为反向代理,并设置 context path 为 /jenkins
,需要向容器传入环境变量 --env JENKINS_OPTS="--prefix=/jenkins"
在主机上创建 /var/jenkins_home
目录并修改权限,使得 container 中的 jenkins user 可以访问
mkdir /var/jenkins_home
chown -R 1000:1000 /var/jenkins_home
- 无证书访问,启动端口为 8080
docker run -it --name jenkins-master -v /var/jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure -e JENKINS_OPTS="--prefix=/jenkins" jenkins/jenkins:lts-jdk11
Windows Subsystem Linux (WSL)
安装 Windows 默认发行版
列出可用的发行版
wsl --list --online
# short
wsl -l -o
安装可选的 Linux 发行版
wsl --install -d <distro>
常用操作
关闭 WSL 中的 Linux
wsl --terminate <distro>
# short
wsl -t <distro>
Github API
在 Organization 间迁移 Repositories
Github 提供了 Transfer a repository API, 可以在个人或组织间转移仓库。
在 Github 页面个人头像上选择 Settings -> Developer settings -> Personal access tokens,添加一个新的访问token,作为访问 Github API 的密码。
下面的脚本可用于批量转移多个仓库。
Pandas
在 Jupyterlab 中使用 Pandas
pip install jupyterlab
如果是在 WSL2
系统中使用 Jupyterlab,需要如下配置才能默认使用 Windows 主机上的浏览器打开界面
禁用 use_redirect_file
jupyter lab --generate-config
vim ~/.jupyter/jupyter_lab_config.py
c.ServerApp.use_redirect_file = False
使用环境变量 BROWSER
指定 Windows 主机浏览器路径
export BROWSER="/mnt/c/Program Files/Mozilla Firefox/firefox.exe"
使用 localhost
作为 WSL 系统主机名
vim /etc/wsl.conf
[network]
hostname = localhost
启动 jupyterlab,指定 IP 和端口,否则可能报错
jupyter lab --ip=0.0.0.0 --port 8080
导入 Pandas
import pandas as pd
import numpy as np
print(pd.__version__)
print(np.__version__)
数据结构
Wolfram 使用
安装 Wolfram Engine for Developers
Wolfram Engine for Developers 是 Wolfram Language 的后端核心,安装完成后可以使用 WolframScript 进入命令行执行代码。
安装 WolframLanguageForJupyter 插件
使用 Jupyter notebook 做为 Wolfram Engine 的前端
pip install jupyterlab
git clone https://github.com/WolframResearch/WolframLanguageForJupyter.git
./configure-jupyter.wls add
现在可以在 jupyter lab
中打开 Wolfram Language
的 Notebook。
Windows System Provision
安装 Windows Terminal
安装 Dracula 主题
Windows Terminal Dracula color scheme
安装 scoop
安装 Git
scoop install git
SELinux 设置
关闭 SELinux
用 getenforce
命令检查 SELinux 是否已禁用,其结果为 Enforcing,Permissive 或 Disabled 之一,修改 SELinux 配置文件可将其禁用。
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
如果只想临时关闭 SELinux,可以输入命令
setenforce 0
Linux firewalld 设置
CentOS 8 防火墙设置
防火墙状态
systemctl status firewalld
列出防火墙可设置的服务名
firewall-cmd --get-services
共计 99 篇文章,5 页。