丹炉志

深度学习及其运维日志

参考: GitHub Pages 绑定二级域名

已申请一级域名hyliang.ml, 欲给 hyliang96.github.io 绑定二级域名blog.lianghy.ml, 操作如下.

注意: 读者操作时切勿照抄上述url, hyliang.ml换成你注册的一级域名, blog 可随便写, hyliang96.github.io换成你的github page的url.

阅读全文 »

Markdown软件对比

软件 Typora MarkText vscode插件Office Viewer(Markdown Editor) 浏览器端markdown编辑器vditor Obsidian
所见即所得 支持 支持 支持 支持 支持
左代码右预览 不支持 不支持 支持 支持 支持
第三方插件 支持(插件管理器的下载安装链接,但插件管理器bug多,社区不成熟) 计划在 v1.0.0 发布之后添加插件机制,以及自定义主题 需要与其他vscode插件兼容 不支持
官方下载链接 https://typora.io https://www.marktext.cc https://marketplace.visualstudio.com/items?itemName=cweijan.vscode-office 在线工具: https://vditor.vercel.app ;支持本地部署,需要安装node https://obsidian.md/
操作系统 Mac、windows、Linux Mac、windows、Linux Mac、windows、Linux 所有操作系统 Mac、windows、Linux、iOS、安卓
开源否 2021年底前在beta版本期间开源、免费于https://github.com/typora;之后闭源、付费 开源 https://github.com/marktext/marktext 开源 https://github.com/cweijan/vscode-office 开源 https://github.com/Vanessa219/vditor 闭源
收费否 过往版本(<=0.11.18版本)免费,之后版本付费,或去MacTorrents下载破解版 免费 免费 下同Office Viewer(Markdown Editor),因为其内核是vditor 个人免费,商用组织收费
表格 支持 支持 支持 支持
支持 支持 支持 支持
公式 支持 支持 支持 支持
内嵌html 支持 支持 支持 支持
中文界面 支持 原版不支持。请往汉化版官网,但这个版本无法在打开文件夹时向当中的markdown文件内插图。 不支持 支持,但界面汉化不充分
流畅度 图/公式/字数多时卡顿 图/公式/字数多时流畅 图/公式/字数多时流畅
\tag{} 手动编号 支持 支持 支持 支持
公式块中align或equation环境自动编号 支持 支持 支持 不支持(除非安装下述插件,但不能设置只给equation和align环境自动编号)
公式块全部自动编号 支持,可在Typora设置里勾选 不支持 不支持 支持(但需要安装插件MathLinksLaTeX-like Theorem & Equation Referencer,可以设置仅被引用的公式会自动编号、或任何公式都自动编号)
公式中使用\label \eqref \ref 支持 不支持,整个公式块无法渲染 并报错 不支持,整个公式块能渲染,但这几条命令处渲染错误并报错 不支持?(偶尔能渲染正确,但一编辑公式,公式引用就报错)
在文件夹内显示*.textbundle 不支持 支持 支持 支持,但无法打开
直接打开*.textbundle 支持(打开方式见下文说明) 支持(打开方式同Typora) 支持(无需额外设置) 不支持,详见TextBundle support
*.textbundle插入图片 支持(需要配置插图自动复制到./assets 支持不充分:
1. 原版:当设置插图路径为assets时:若打开一markdown文件,则把插图复制到此文件所在目录下的assets子文件夹内;但若打开一文件夹,则复制插图到文件夹根目录下的assets子文件夹内。详见 官方说明
2.汉化版:不管如何设置插图路径,在打开文件夹时,都无法向当中的markdown文件内插图
支持(需要配置插图自动复制到./assets,即向vscode的用户配置文件添加:"vscode-office.pasterImgPath": "${workspaceDir}/assets/${now}.png", "vscode-office.workspacePathAsImageBasePath": true, 不支持
在文件夹内搜索文本 支持 支持 支持
打开.markdown .txt文件 支持 支持 支持 支持(需要安装插件Custom File Extensions, 并设置{ "markdown": [ "", "md", "markdown", "txt", 等 ] } 表示这些后缀的文件都用markdown格式打开)
打开任何位置的文件 支持 支持 支持 不支持(除非安装脚本
sequence制图 支持 汉化版支持 不支持 不支持
flow制图 支持 汉化版不支持 不支持 不支持
mermaid制图 支持(但我的电脑上有bug,Typora 1.8.4,MacOS 10.15.7,会显示Painting Diagram ... 汉化版支持 支持 支持

说明:

阅读全文 »

系统级locate

以下用于搜整个系统的文件

首次使用locate

阅读全文 »

什么是bundle

bundle文件包是macOS上的文件夹的特殊格式,使得Finder和图形界面下的应用程序可以像打开单个文件那样打开bundle文件包。

但是,在macOS的类unix系统内核看来,bundle仍然被当成文件夹。比如,在shell/bash/zsh下:

阅读全文 »

以下原文在此备份一版本,以备不时之需

Mac 重启后自动 ssh-add 私钥

管理服务器有一些安全常识:

  • 禁止 root 远程登录
  • 禁止密码登录
  • 使用 priviate / public key 作为默认的登录方式。
  • 修改 sshd 端口

From Linode: Securing your server

安全级别上去后,问题随之而来,有一堆的私钥需要管理。每次 Macbook 升级系统,需要一次次手工 ssh-add 私钥,特别心烦。

几年前有这种方法 ssh-add -K privateKey 可以一劳永逸的把私钥存到 keychain 中,重启后也不需要手动 ssh-add,非常方便。

这种方式不管用了。

img

新的解决方法

创建 Automator 任务加载私钥,然后放到开机启动中。

  1. 创建一个 Automator task.img
  2. 在 task 中写一串 shell scriptimg
  3. 把 task 添加到 login items 中,每次系统重启后会执行这个 Automator task,自动 ssh-add 所有的私钥。imgimg

搞定!

MacOS隐藏Dock栏中特定App图标的三种方法

来自:出处

有些App在设定中并没有“在Dock中隐藏应用图标”的自定义选项,而我们有时不希望App图标在Dock中常驻,但又希望App能在后台保持运行

阅读全文 »

增加用户的sudo权限,即将用户加入到sudo用户组

sudo adduser <用户名> sudo

删除用户的sudo权限,即将用户从sudo用户组删除

阅读全文 »

以下为永久更改ubuntu主机名的方法:

查看主机名,记下老主机名

hostname
阅读全文 »

多github帐号的ssh key切换

我有两个github帐号,一个是个人所用,一个是为公司项目所用。如果是单用户,很方便,默认拿id_rsa与你的github服务器的公钥对比;如果是多用户如user1,user2, 那么就不能用在user2的身上了,这个时候就要配置一下了

配置多个ssh key

阅读全文 »

自定制ssh登录界面

用sudo创建可执行文件/etc/update-motd.d/<执行序号>-文件名(bash脚本),则此脚本会在ssh登录时执行,脚本输出会显示在ssh登录界面上。此法可用户定制酷炫的ssh登录界面,例如

ScreenShot 2019-12-04 17.59.39

阅读全文 »

将脚本设为开机自启

非sudo的自启脚本

mac下,网上可查到脚本开机自启方法众多,经验证,有效的方法包括不限于以下两种

阅读全文 »

使用Iptables设置NAT

  • 查看NAT映射关系列表
sudo iptables -t nat -L -n --line-number
阅读全文 »

[TOC]

在服务器和本机上通用的Vim配置

先安装依赖配置,以下依赖文件可直接复制到~/.vimrc文件(若无该文件,则vim ~/.vimrc创建该文件)

阅读全文 »

TRIM原理

文件系统会用文件表记录每个文件存放在磁盘上的物理地址。

在机械硬盘上,文件被删除后,仅仅删除其对应的文件表,使得文件系统上不再显示此文件,但不会将磁盘上文件所在处的数据擦除,因而,被误删的文件往往能够找回,即通过磁盘上的详细数据推断出被删文件的文件表。机械硬盘在已有数据的位置,可以直接写入新数据,而无需先擦除,因此,删文件仅删文件表不擦数据,并不会影响机械硬盘的表现

阅读全文 »

文件夹组织

cuda_cudnn/
    cuda/
        各个版本的cuda安装包
    cudnn/
        各个版本的cuda对应的各个版本的cudnn的安装包
    README.md

cuDNN与cuda之间的关系

阅读全文 »

tmux 使用

    • 窗口进程管理
      即使终端关闭(cmd+Q/W),tmux的窗口依旧运行
      打开一个tmux窗口
    tmux new -s 窗口名字

    将该tmux窗口放入后台

    ctrl+b d

    查看所有tmux窗口的方法

    tmux ls

    唤出(使后台的窗口显示)tmux窗口

    tmux a -t 窗口名字

    显示最后放入后台的窗口

    tmux a

    杀死tmux窗口的方法

    tmux kill-session -t 窗口名字

    杀死当前窗口

    ctrl+b &
    选择y (yes)
  • 窗口分区管理

  • 页面
    单个程序只给一屏用于输出,超出此范围,要翻页查看:
    ctrl+b [ fn+↑/↓ esc
    进入拷贝模式:拷贝模式中,新输出的文字不会显示
    ctrl+b [ :进入拷贝模式
    fn+上/下键 :翻页
    esc :退出拷贝模式
    进入黏贴模式
    ctrl+b ]

tmux配置

阅读全文 »

小鹤音形码

纯音码

一个汉字 = 声母 一个按键 + 韵母 一个按键

阅读全文 »

服务器上安装pytorch

  • 进入虚拟python环境(以下均在虚拟环境)

    source bin/activate
  • 查看记录cuda版本

    nvcc -V

    当执行nvcc --version,显示

    The program 'nvcc' is currently not installed. To run 'nvcc' please ask your administrator to install the package 'nvidia-cuda-toolkit'

    时,则

    ls /usr/local/

    若见有如下文件

    cuda-8.0

    则cuda是8.0版本的

  • 查看记录python版本

    python -V
  • 升级pip到最新

    pip install -U pip
  • 查看pip版本

    pip -V
  • 登录pytorch官网 http://pytorch.org

    选择linux下用pip,python、cuda选对应版本

    将网页上的命令复制到虚拟环境里的命令行(逐行输入)

  • python安装包

    pip install
  • 测试安装成功否

    python
  • 在python中

    • cuda测试
    import torch
    torch.cuda.is_available()

    若返回True,则cuda可用

    • 求导
    from torch import Tensor as T
    from torch.autograd import Variable as V
    a=V(T([[1,2],[3,4]]),require_grad=True)
    b=a*a
    c=b.mean()
    c.backward()
    a.grad

    返回若为

    Variable containing:
     0.5000  1.0000
     1.5000  2.0000
    [torch.FloatTensor of size 2x2]
    

    则正确

安装过程中的bug

阅读全文 »

vscode安装配置

拓展安装方法

  • ⇧⌘P -Extentions: Install Extentions - 输入插件名称 - install

  • 或在左侧拓展商店栏,输入插件名称 - install

阅读全文 »

安装配置VNC——debug的日志

安装sogou输入法报错 xxx is not installed.

sudo dpkg -i sogoupinyin_2.2.0.0108_amd64.deb # ??sogou???
Selecting previously unselected package sogoupinyin.
(Reading database ... 264452 files and directories currently installed.)
Preparing to unpack sogoupinyin_2.2.0.0108_amd64.deb ...
Unpacking sogoupinyin (2.2.0.0108) ...
dpkg: dependency problems prevent configuration of sogoupinyin:
 sogoupinyin depends on libopencc2 | libopencc1; however:
  Package libopencc2 is not installed.
  Package libopencc1 is not installed.
 sogoupinyin depends on fcitx-libs (>= 4.2.7); however:
  Package fcitx-libs is not installed.
 sogoupinyin depends on libqtwebkit4 (>= 2.1.0~2011week13); however:
  Package libqtwebkit4 is not installed.

dpkg: error processing package sogoupinyin (--install):
 dependency problems - leaving unconfigured
Processing triggers for mime-support (3.59ubuntu1) ...
Processing triggers for libglib2.0-0:amd64 (2.48.2-0ubuntu4.1) ...
No such key 'Gtk/IMModule' in schema 'org.gnome.settings-daemon.plugins.xsettings' as specified in override file '/usr/share/glib-2.0/schemas/50_sogoupinyin.gschema.override'; ignoring override for this key.
Processing triggers for desktop-file-utils (0.22-1ubuntu5.2) ...
Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) ...
Processing triggers for shared-mime-info (1.5-2ubuntu0.2) ...

Processing triggers for hicolor-icon-theme (0.15-0ubuntu1.1) ...
Errors were encountered while processing:
 sogoupinyin
阅读全文 »

简介

参考:teamviewer检测为商业用途-mac

Teamviewer会根据一套算法检测当前是否用于商业用途,可能根据在线时间,是否跨网段远程访问,当前操作系统是否为专业或企业版,以及其他因素进行检测,具体算法不得而知,不过有时明明只是个人非盈利目的使用,却弹出下面的对话框,在1到5分钟后就会自动断开,然后就连不上了,触发重新运行Teamviewer。

img

阅读全文 »

sshfs教程

在linux或mac上,加载远程Linux服务器上的文件目录

[TOC]

阅读全文 »

mac 升级 rsync

mac自带rsync在/usr/bin/rsync,版本 rsync version 2.6.9 protocol version 29太老,不支持用一条命令将多个远程文件传到本地,需要升级才支持。

升级方法:

阅读全文 »

getopt

使用规则

bash或zsh getopt_demo.sh 一堆参数 # 其前中后均可有 余参数
阅读全文 »

zsh的自动补全

zsh-completions是zsh官方支持的自动补全包

使用antigen管理zsh插件的话,zsh-completions的路径在~/.antigen/bundles/zsh-users/zsh-completions/src,其下有众多文件名如_xxx,分别定义了xxx命令的补全。

阅读全文 »

显示256色的预览

执行

curl -s https://gist.githubusercontent.com/HaleTom/89ffe32783f89f403bba96bd7bcd1263/raw/ | bash
阅读全文 »

jupyter-themes: 修改 jupyter notebook 的主题

安装方法

  • 安装

    看jupyter是用conda还是pip装的

    conda list | grep -e '^jupyter '
    jupyter                   1.0.0            py36h9896ce5_0    【defaults】
    • 【】中为default,则是jupyter notebook是conda安装的,强烈建议用conda安装jupyterthemes,不然若用pip安装jupyterthemes,会出现多种依赖不匹配

      conda install -c conda-forge jupyterthemes
    • 【】中为pypi,jupyter notebook是pip安装的,则

      pip install jupyterthemes
  • 配置

    终端下输入以下命令

    jt -t gruvboxd -T -N -cellw 90% -f roboto -fs 11

    这表示我选择了 gruvboxd 这个主题,同时希望打开顶部的工具栏(Toolbar),显示笔记本的名字(Name),文本框占浏览器页宽的90%,用roboto等宽字体,字号11

    运行过程中可能会返回报错如下,这说明已经别的用户安装了jupyterthemes,并重建了/tmp/yacctab.py,故你无法重写这个文件,这并不运行你使用jupyter notebook的配色。你的配色设置,保存到 $HOME/.jupyter/custom/,不和他的配色设置冲突。

    WARNING: Couldn’t create ‘yacctab’. [Errno 13] Permission denied: ‘/tmp/yacctab.py’
    WARNING: Couldn’t create ‘yacctab’. [Errno 13] Permission denied: ‘/tmp/yacctab.py’

  • 配置文件

    配置文件保存到了 $HOME/.jupyter/custom/,下是四个配置和依赖文件current_theme. txt, custom.css, custom.js, fonts/,之后每次执行jupyter notebook启动notebook时,会加载此配置,看见你要的主题。

阅读全文 »

自动操作文件分类

使用 mac 自带的app /Application/Automator.app (自动操作), 可以创建自动工作流.

用此app新建文件, 会创建到 /Users/<username>/Library/Services/ 目录, 创建文件格式有好几种, 如下图所.

阅读全文 »

Safari对于一些用https访问的域名, 会存入一个列表, 此后访问 http://此域名 , 会自动跳转到 https://此域名 .

若不想跳转, 可如下操作:

  • ⌘+Q 退出Safari

  • 执行如下命令. 这个文件是个域名列表, safari见之则访https而非http. 删此文件, 则列表清空. 出处

    rm /Users/${USER}/Library/Cookies/HSTS.plist
  • 打开 Safari, 访问http://<目标域名>, 一般能解决问题.

阅读全文 »

原因

注销iCloud时, 若误点”不保留” icloud所同步的文档, 则系统会将所同步的文档删除, 例如若之前桌面文稿被iCloud同步, 注销iCloud后则桌面被完全清空.

解决方法

阅读全文 »

分区方案

完全参照https://www.jianshu.com/p/5f8b4d9a8922

主力分区是NTFS格式,以确保和windows的数据交换,配套Tuxera NTFS for Mac来解决Mac系统无法写入NTFS文件系统的问题。

阅读全文 »

方法 原理 优缺点 速度 收费否
ntfstool 参见,第一次release在2020-3-10 免费里最靠谱的 开源免费
ntfs-3g 可能遇到 chkdsk 免费
tuxera 基于ntfs3g封装 可能遇到 chkdsk 付费
Paragon 先慢后快, 最终比Tuxera快, 类似于本机HFS+速度 付费
osx原生ntfs写功能 此功能不稳定, 被macOS默认关闭了 只能打开预定名字的的磁盘; 直接把磁盘可能损坏索引, 但 不丢文件,可在win下修复 免费
mounty 基于 osx 内置的 ntfs 写功能 可能丢索引, 不丢文件,可在win下修复 免费
买希捷硬盘送软件(官网下载)
虚拟机 开销大 移动硬盘数据安全
fat32 通用文件系统 单文件<=4GB
exfat 通用文件系统, 微软自家 单文件<=1EB; 没有文件日志功能, 在修改文件索引时若拔下移动硬盘, 会有部分文件/子目录消失了 免费

img

安装

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

上边的命令行是两个命令,首先下载install文件,然后用系统的ruby工具安装。

阅读全文 »

mac 命令行专属命令

mac 命令行专属命令

永久修改hostname (命令行行首提示中的主机名)

阅读全文 »

第三方的软件 xxx.app 已损坏, 无法打开

xxx.app 安装后, 初次打开时显示 xxx.app 已损坏, 无法打开, 原因是 Mac在安装第三方的软件的时候会对第三方的身份做check. 若显示 xxx.app 已损坏, 无法打开,

开全局的允许安装任意来源的app

阅读全文 »

Mac符号

参考

⌘: Command
⇧: Shift
⌥: Option
⌃: Control
↩︎: Return/Enter
⌫: Delete
⌦: 向前删除键(Fn+Delete)
⇞: Page Up(Fn+↑)
⇟: Page Down(Fn+↓)
Home: Fn + ←
End: Fn + →
⇥: 右制表符(Tab键)
⇤: 左制表符(Shift+Tab)
⎋: Escape (Esc)

阅读全文 »

目录下统计磁盘用量

法一 使用duc (推荐)

仅能统计磁盘大小, 不能统计文件数目. 是按照子文件夹来统计, 而不是文件归属的用户来统计.

阅读全文 »

概述

linux的防火墙有ufw和iptables两套命令,都是ip、url、端口的匹配规则

  • iptables:不仅仅能当防火墙,还能做端口转发、nat;但需要第三方软件 iptables-persistent 才能实现持久化规则
  • ufw:全称 ubuntu uncomplicated firewall,是Debian下的简化版iptables,ufw的规则会被记录到iptables中;自动持久化规则。
阅读全文 »

压缩解压工具

Linux下压缩解压算法与工具比较

方法 Linux自带否 优点 压缩命令 解压命令
zip 所有操作系统都自带,可压缩文件夹 zip -r xxx.zip 一或多个文件会文件夹 unzip xxx.zip -d 解压到的路径 (会自动创建解压到的路径;压缩包内根目录下诸物皆解压到解压到的路径)
7z 压缩解压都最快,可压缩文件夹 7z a xxx.7z 一或多个文件会文件夹 (注意: a前无-) 7z e xxx.7z -o解压到的路径 (注意:x前无-;-o后没空格;会自动创建解压到的路径,压缩包内根目录下诸物皆解压到解压到的路径)
阅读全文 »

ISO介绍

xxxx.iso文件,称镜像(mirror)文件,相当于光盘,内存有文件。

安装ISO中的文件

阅读全文 »

开机过程中

alt+ctrl+del:在系统启动完成前,按此可重启系统,而无需去按电源键 参考

BIOS 界面

阅读全文 »

批注教程

1.4 C++ 命名空间(名字空间)

  • namespace XX{xxxx}外定义的命名,遵循C语言的命名规范。

    重名时优先级别:内部变量>外部变量>用using设置默认的变量>XX::xxx

  • 一个cpp文件中using只能写一次;可以写在函数内部,也可以写在函数外部;不可再函数外写了一次,又在函数内再写。

阅读全文 »

编译器介绍

编译器介绍:

  • cc: Unix系统的C Compiler,老式C编译器;linux下cc即gcc

  • gcc:只编译不链接

  • gcc -lstdc++:编译也链接

  • g++: 编译调用gcc,链接用g++

阅读全文 »

背景

最近一年感到压力很大啊,又看到身边的人同样各有各的苦。众生皆苦呀,说的没错。顺势看了些佛教的东西,可是我还未能接受轮回的观点,但却自以为有了出离心,觉得 “生是一切苦的起源” “一切诸行无常,一切法无我,涅槃寂灭”好有道理诶。我意识到,要是没有轮回这个设定,那谁死都是涅槃了咯,那我不用活下去了。于是赶紧找找存在的意义让自己坚持活下去。

宇宙的历程

阅读全文 »

参见