Linux Boost.Python3 安装以及 CMake 配置指南

下载Boost前往Boost官网下载源码压缩包。 或通过 wget 下载 1.83 版本: wget https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.7z 下载完毕后,解压 7z 压缩包 7z x boost_1_83_0.7z 编译安装cd boost_1_83_0 ./bootstrap.sh --with-python=/root/.virtualenvs/ETRS/bin/python3 --with-python-version=3.8 --with-libraries=all --with-python 的路径可以通过 which python3 查看。 --with-python-version 的版本号可以通过 python3 --version 查看,注意这里需要填成 3.x 格式 ,而不是 3.y.z,省略最后的版本号。 运行完以上命令后,需要修改 project-config 配置文件。 vim project-config.jam 修改第 21行,在双引号里添加两个路径,分别是当前 Python 版本的 include 路径和 lib 路径。 Python 的 include 路径和 lib 路径可以通过下面的 Python 代码查看: import sysconfig sysconfig.get_path('include') # 查看 include 路径 sysconfig.get_path('stdlib') # 查看 lib 路径 开始编译: ...

2024年06月16日 · 1 分钟 · Cassius0924

Linux 初探之旅(二)——文件与文件夹的读写

在上一篇文章中,我们学习了Linux中的文件浏览,知道了如何在Linux文件系统中定位文件。本篇文章中,我们将继续深入学习Linux中的文件及目录的读写操作。 读取文件cat 命令:读取文件全部内容要读取一个文件的内容,可以使用cat命令,语法为: cat 文件名 这会将文件的全部内容输出到终端。当文件比较大时,这样的输出会刷屏,不太方便查看。 head 和 tail 命令:显示部分内容Linux提供了head和tail命令来显示部分内容: head - 显示开头部分内容 tail - 显示结尾部分内容 head和tail可以指定显示的行数,例如: head -n 3 文件名 # 显示前3行 tail -n 5 文件名 # 显示后5行 less 命令:分页显示less命令可以分页方式显示文件内容,可以上下翻阅,是文件查看的首选工具。 less可以用方向键上下翻页,也支持各种快捷键,推荐大家阅读less的帮助文档。 写入文件echo 命令:输出到文件使用echo命令可以向文件写入内容,语法为: echo "要写入的内容" > 文件名 这会覆盖文件原有内容。如果要附加内容,使用两个大于号: echo "新增内容" >> 文件名 文本编辑器:vim对文件进行复杂编辑可以使用文本编辑器,Linux中的常用文本编辑器有vi、emacs、vim和nano等。这里简单介绍vim的使用。 使用vim 文件名可以打开vim编辑器。vim有三种模式,分别是命令模式、插入模式和底线命令模式。 命令模式:用于导航文件,可以进行复制、粘贴、删除等操作。 插入模式:用于输入文本,可以使用键盘输入文本。 底线命令模式:用于执行命令,例如保存文件、退出vim等。 初学者可以先了解以下几个快捷键: i - 进入插入模式 ESC - 从插入模式回到命令模式 :w - 保存文件 :q - 退出vim vim非常强大,建议大家自己练习熟悉其操作。 删除文件和目录rm 命令:删除文件删除文件使用rm命令: rm 文件名 rm -r 命令:删除目录如果要删除目录,需要添加-r参数: rm -r 目录名 这会递归删除目录及其中的所有内容,需要小心使用。 复制和移动文件 复制使用cp命令,添加-r参数可以复制目录 ...

2024年06月16日 · 1 分钟 · Cassius0924

Linux 初探之旅(三)——重定向、标准输入输出和管道

标准输入输出我们先从Linux最基础的交互来讲起,我们究竟是如何和Linux系统内核进行交互的?换句话说,如何通过在按下键盘,就能让系统实现对应的操作的? 这一切都离不开它,终端——用户与Linux建立起联系的桥梁。 当我们在终端上输入命令的时候,直到我们未按下回车键之前,我们输入的所有内容都储存在终端的缓冲区(Buffer)里。此时我们输入的内容不会被系统所读到,只有在我们按下回车键后,缓冲区里的内容才会被发往 stdin (Standrad input 标准输入),stdin 是 Linux 内核和用户交互的通道。 接着,Shell 会介入,它会将 stdin 收到的内容翻译成操作并执行,Shell 译为壳层,与 Kernel(内核)相对应。Shell在外,Kernel在内。例如我们输入ls,那么 Shell 就会找到 ls 这条命令对应的二进制文件并执行。 执行完命令后,Shell 会将获取到的结果发送到另一条与 stdin 相对应的通道中,即 stdout(Standard output 标准输出)。终端会不间断地从 stdout 里读取内容,然后打印到屏幕上,即我们在终端中看到的输出。 总的来说,用户的输入的内容会发往 stdin 并被 Shell 读取,Shell 将找到内容所对应的二进制文件并执行,执行完后 Shell 会将结果发往 stdout 中,及时的显示在屏幕上。这就是一次与 Linux 交互的过程。 我们总说,在 Linux 中一切皆为文件,那么 stdin 和 stdout 也不例外,它们也是系统的两个文件。除了 stdin 和 stdout 之外,还有第三条通道 stderr(Standard error 标准错误)。stderr 和 stdout 一样,它们都是用于存储执行结果的地方,区别在于,Shell 执行完命令后,会将正常的结果发往 stdout 里,将错误的结果发往 stderr 里。同样地,stderr 也会被终端所读取,最后显示在屏幕上。 输出重定向理解了标准输入输出后,我们能弄懂重定向的原理了,实际上就是 Shell 执行完命令后不把输出结果存放在 stdout 或 stderr 。而是存放到另一个文件当中。 ...

2024年06月16日 · 1 分钟 · Cassius0924

Linux 批量修改文件名指南

使用 bash 脚本,先创建一个 .sh 结尾的脚本: vim rename.sh 以下是示例 bash 脚本内容,作用是将 /path/to/dir 目录下所有包含冒号:的文件名,将冒号替换为减号。 # !/bin/bash find /path/to/dir -type f -name '*:*' -exec bash -c 'mv "$0" "${0//:/-}"' {} \; 代码解释使用find查找需要更改的文件find /path/to/dir -type f -name '*:*' /path/to/dir 应该替换为包含你要修改文件名的文件夹的实际路径。 -type f 表示只查找普通文件,而不包括目录。 -name '*:*' 是一个查找条件,用于匹配包含冒号的文件名。 使用mv和bash执行文件名更改一旦找到需要更改的文件,可以使用mv命令结合bash来执行文件名更改操作。 find /path/to/dir -type f -name '*:*' -exec bash -c 'mv "$0" "${0//:/-}"' {} \; 这个命令中的 -exec 标志用于在find查找到的每个文件上执行指定的命令。bash -c之后的部分将执行文件名更改操作。 mv "$0" "${0//:/-}" 使用mv命令将文件名中的冒号替换为减号。${0//:/-} 部分是一个bash子shell,其中的${0}表示当前文件名,//后跟着:和-是用来替换的正则表达式。

2024年06月16日 · 1 分钟 · Cassius0924

macOS ClashX Pro 配置指南

mixed-port: 7890 # Linux 和 macOS 的 redir 代理端口 redir-port: 7892 # 允许局域网的连接 allow-lan: true # 规则模式:Rule(规则) / Global(全局代理)/ Direct(全局直连) mode: rule # 设置日志输出级别 (默认级别:silent,即不输出任何内容,以避免因日志内容过大而导致程序内存溢出)。 # 5 个级别:silent / info / warning / error / debug。级别越高日志输出量越大,越倾向于调试,若需要请自行开启。 log-level: info # Clash 的 RESTful API external-controller: '0.0.0.0:9090' # RESTful API 的口令 secret: '' dns: enable: true ipv6: true listen: '0.0.0.0:53' use-hosts: true enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 nameserver: - 202.120.224.6 - 114.114.114.114 - 223.5.5.5 - 'tcp://223.5.5.5' fallback: - 'tls://223.5.5.5:853' - 'https://223.5.5.5/dns-query' fallback-filter: geoip: true ipcidr: - 240.0.0.0/4 # proxy provider start here proxy-providers: feiniao: type: http path: ./profiles/feiniao.yaml url: https://apiv1.v27qae.com/flydsubal/c8lr21z6wpiebqqx?clash=1&extend=1 interval: 36000 health-check: enable: true url: http://www.gstatic.com/generate_204 interval: 3600 yiyuan: type: http path: ./profiles/yiyuan.yaml url: https://sub1.smallstrawberry.com/api/v1/client/subscribe?token=d6e73f953b6053a3b263b73f9509375d decode-url: true interval: 36000 health-check: enable: true url: http://www.gstatic.com/generate_204 interval: 3600 # proxy provider end proxies: # socks5 - name: windowsServer type: socks5 server: 10.127.78.177 port: 7890 # username: username # password: password # tls: true # skip-cert-verify: true # udp: true # - {name: 🇮🇪 中国-爱尔兰 IPLC C04, server: ir04.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB} # - {name: 🇭🇰 香港 油尖旺御金·国峯 名氣通電訊 C02, server: hkhe02.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB} # - {name: 🇮🇪 中国-爱尔兰 IPLC C03, server: ir03.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB} # - {name: 🇭🇰 香港 油尖旺御金·国峯 名氣通電訊 C09, server: hkhe09.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB} # - {name: 🇨🇳 中国-香港 IEPL Equinix HK8 C 02 1Gbps HBO TVB, server: sg12.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB, udp: true} # - {name: 🇨🇳 中国-爱尔兰 IPLC C05, server: ir05.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB, udp: true} # - {name: 🇨🇳 中国-香港 IPLC Equinix HK2 C 06 1Gbps HBO TVB, server: sg06.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB, udp: true} proxy-groups: - name: Proxies type: select proxies: - 机场节点 - 自动选择 - 故障转移 # - name: 手动节点 # type: select # proxies: # - 🇮🇪 中国-爱尔兰 IPLC C04 # - 🇭🇰 香港 油尖旺御金·国峯 名氣通電訊 C02 # - 🇮🇪 中国-爱尔兰 IPLC C03 # - 🇭🇰 香港 油尖旺御金·国峯 名氣通電訊 C09 # - 🇨🇳 中国-香港 IEPL Equinix HK8 C 02 1Gbps HBO TVB # - 🇨🇳 中国-爱尔兰 IPLC C05 # - 🇨🇳 中国-香港 IPLC Equinix HK2 C 06 1Gbps HBO TVB - name: feiniao type: select use: - feiniao - name: yiyuan type: select use: - yiyuan - name: 机场节点 type: select proxies: - feiniao - yiyuan - name: 故障转移 type: fallback url: 'http://www.gstatic.com/generate_204' interval: 7200 proxies: - feiniao - yiyuan - name: 自动选择 type: url-test url: 'http://www.gstatic.com/generate_204' interval: 300 use: - feiniao - yiyuan rule-providers: reject: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt" path: ./ruleset/reject.yaml interval: 86400 icloud: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt" path: ./ruleset/icloud.yaml interval: 86400 apple: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt" path: ./ruleset/apple.yaml interval: 86400 google: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt" path: ./ruleset/google.yaml interval: 86400 proxy: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt" path: ./ruleset/proxy.yaml interval: 86400 direct: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt" path: ./ruleset/direct.yaml interval: 86400 private: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt" path: ./ruleset/private.yaml interval: 86400 gfw: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt" path: ./ruleset/gfw.yaml interval: 86400 tld-not-cn: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt" path: ./ruleset/tld-not-cn.yaml interval: 86400 telegramcidr: type: http behavior: ipcidr url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt" path: ./ruleset/telegramcidr.yaml interval: 86400 cncidr: type: http behavior: ipcidr url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt" path: ./ruleset/cncidr.yaml interval: 86400 lancidr: type: http behavior: ipcidr url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt" path: ./ruleset/lancidr.yaml interval: 86400 applications: type: http behavior: classical url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt" path: ./ruleset/applications.yaml interval: 86400 rules: - DOMAIN-SUFFIX,visualstudio.com,DIRECT - DOMAIN-SUFFIX,azure.com,DIRECT - DOMAIN-SUFFIX,vscode.dev,Proxies - RULE-SET,applications,DIRECT - DOMAIN,clash.razord.top,DIRECT - DOMAIN,yacd.haishan.me,DIRECT - RULE-SET,private,DIRECT - RULE-SET,reject,REJECT - RULE-SET,tld-not-cn,Proxies - RULE-SET,gfw,Proxies - RULE-SET,telegramcidr,Proxies - MATCH,DIRECT

2024年06月16日 · 3 分钟 · Cassius0924

macOS Word 更好的快捷键配置指南

Microsoft Word在macOS平台上是一款功能强大的文字处理工具,然而,要使其与macOS原生编辑器更好地无缝切换,合理配置快捷键是至关重要的。本指南将介绍一些新的macOS Word的快捷键,使您能够更高效地编辑文档,同时保持与系统级快捷键的一致性。 快捷键 Word快捷键名 备注 Ctrl + A StartOfLine 跳到行首 Ctrl + E EndOfLine 跳到行尾 Ctrl + N LineDown 下一行 Ctrl + P LineUp 上一行 Ctrl + F CharRight 下一个字符 Ctrl + B CharLeft 上一个字符 Ctrl + J NextPage 跳到下一页 Ctrl + K PrevPage 跳到上一页 Ctrl + V PasteTextOnly 无格式粘贴 Ctrl + H Highlight 高亮选中的文字 Ctrl + T TableInsertTable 插入表格 Cmd + Shift + F NavPaneSearch 高级面板搜索 Option + Return TableInsertRowBelow 在表格下方插入一行

2024年06月16日 · 1 分钟 · Cassius0924

macOS Word 设置论文排版指南

正文字体大小默认12,两端对齐,1.5倍行距。字体类型选择 Latin 文字,将字体改成 Times New Roman,再将字体类型改成 Asian 亚洲文字,将字体改成 SimHei(黑体)。 带首行缩进的正文打开样式面板,点击 New Style。 输入样式名称“Indent”,继承于 Normal 样式。 左下角选择 Paragraph 面板,将 Special 改成 First line,后面填 0.86cm。 各级标题一级标题打开 Heading 1 一级标题的设置。 字体大小默认16,加粗,黑色,居中对齐,1.5倍行距。字体类型选择 Latin 文字,将字体改成 Times New Roman,再将字体类型改成 Asian 亚洲文字,将字体改成 SimHei(黑体)。 左下角选择 Paragraph 面板,将 Special 改成 none,取消继承于正文样式(Normal)的值。 ...

2024年06月16日 · 1 分钟 · Cassius0924

macOS 设置自动复制消息验证码指南

前提 接受短信验证码的 SMI 卡必须在上 iPhone iPhone 和 macOS 须登录同一个 iCloud 打开短信转发打开 iPhone 的设置,找到 Message 短信 App 的设置。 往下拉,找到 Text Message Forwarding 短信转发并点击,打开需要被转发的 Mac 电脑。若你有 iPda,也可以顺便转发至 iPad。 打开 macOS 的 Message 短信应用,按下快捷键 command+, 打开设置。打开 iMessage 面板,勾选需要接受的短信来源。 下载 MessAuto点击跳转 Github 下载地址 下载自己电脑对应的版本,M系列的芯片下载第一个,Intel芯片下载第二个。 下载完毕后,解压压缩包会直接得到一个名为 MessAuto.app 的应用程序文件,需要将它拖进 Applicatioin 文件夹里。 打开 Finder,按下快捷键command+ T 创建新的标签页,再按下 command+shift+A打开 Application 应用程序文件夹。 回到第一个标签页,将 MessAuto.app 拖到 Application 文件夹下。 由于 MessAuto 没有 Apple 的开发者证书,所以 M 系列芯片的电脑不能直接打开无需安装的应用程序,所以需要运行命令: ...

2024年06月16日 · 1 分钟 · Cassius0924

macOS 为 Google Coral Dev Board 刷入系统镜像指南

本指南旨在帮助 macOS 开发者为 Google Coral Dev Board (Google Edege TPU) 通过 OTG 刷入 Mendel Linux 系统。 第一步:连接到开发板串行控制台安装 USB 转 UART Bridge VCP 驱动程序官方下载地址:https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads 下载完成后,双击运行并安装即可。 安装辅助程序通过 Homebrew 安装: sudo brew install screen fastboot 连接开发板先不给开发板供电,使用 micro-B USB 线将 Mac 连接到开发板。连接成功后会开发板会亮起绿色🟩和橙色🟧指示灯。 随后使用命令查看串口连接是否正常工作: ls /dev/cu* 连接正常应该会列出/dev/cu.SLAB_USBtoUART,如下图所示。 然后使用screen命令连接开发板串行命令行: screen /dev/cu.SLAB_USBtoUART 115200 此时命令行应为空白,因为开发板未供电开机。 给开发板供电如图所示,将开发板电源插入,电源接口为右边的 USB-C 接口。 连接后开发板会亮起电源指示灯并转动风扇。串行命令行则会打印开发板的开机信息: 接着在串行命令行输入命令使开发板进入 fastboot 模式: fastboot 0 第二步:刷入 Mendel Linux 系统下载 Mendel Linux 系统镜像回到 Mac,下载 Mendel Linux 系统镜像,官方下载地址:https://coral.ai/software/#mendel-dev-board ...

2024年06月16日 · 1 分钟 · Cassius0924

SSH 远程连接后解决 No protocol specified 指南

参考链接:https://unix.stackexchange.com/questions/209746/how-to-resolve-no-protocol-specified-for-su-user

2024年06月16日 · 1 分钟 · Cassius0924