Linux Memos(备忘)

使用Linux已经有段时间,都是断断续续,没有很好地将这一过程中的知识积累和更新,所以基本没有进步。年过三十,已知积累之重要,知识持续更新之难能,因此立此文件以为积累更新之用,名之曰:Memos。

1. Linux basic

1.1. 目录操作

  1. cd

用来切换目录,用法:

cd (选项) (参数)

1.2. DDE(deepin-desktop-environment)

  1. caps ctrl swap (ctrl和caps互换)
gsettings set com.deepin.dde.keybinding.mediakey capslock ""
gsettings set com.deepin.dde.keyboard layout-options "['ctrl:swapcaps']"

2. 一些实用工具及用法

记录一些日常可能用到的小工具。

2.1. 将 Markdown 文件转为 Org 文件

使用 pandoc 这个工具来转换,代码:

pandoc -f markdown -t org -o new-org-file-name.org origin-markdown-file.md

2.2. base64解码

看到有博客留邮箱用的一串码,说明是要base64解码的,百度了一下,使用方法如下(macos下):

echo "需解码的字符" | base64 -D  #解码
echo "需加码的字符" | base64

另一种方法(看到评论说有缺陷), chromium 内核的浏览器自带,打开开发者工具, Console 下输入:

btoa('hello,world')  #编码
//'aGVsbG8sd29ybGQ='
atob('aGVsbG8sd29ybGQ=')  #解码
//'hello,world'

base64是什么:

Base64是一种用64个字符来表示任意二进制数据的方法。

2.3. Mac OS

解决 .DS_Store 文件问题: 禁止生成使用下列代码

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

重新生成使用下列代码

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool FALSE

删除文件夹下 .DS_Store 文件:

find . -name ‘.DS_Store’ -type f -delete / find ~ -name ".DS_Store" -delete

2.4. SSH 免密登录

SSH 登录: ssh 用户名@目标主机ip/域名,此时回车后一般需要输入密码验证通过才能登录。

目标:本地主机 A 免密登录目标主机 B;方式:本地主机上生成公钥文件与私钥文件,传递公钥文件到目标主机,实现免密登录。

步骤:

  1. 本地主机上生成密钥对: ssh-keygen
  2. 拷贝公钥到目标主机: ssh-copy-id 目标主机ip ,会在目标主机生成 .ssh/authorized_keys 文件;
  3. 直接登录: ssh 用户名@目标主机ip

2.5. 文本替换

把 org 文件中的 原文本 替换为 现文本 ,使用 find, xargssed 实现。

find . -name "*.org" | xargs sed -i 's/原文本/现文本/g'

2.6. git 相关

创建 submodule

git submodule add <submodule_url> path # git submodule add [email protected]:username/xxx.git path

获取 submodule

cd path
git clone url --recurse-submodules

或者

git submodule init
git submodule update

2.7. rsync 文件同步

https://www.ruanyifeng.com/blog/2020/08/rsync.html

$ rsync -av --delete source/ destination

将 source 文件夹内容同步到 destination 文件夹内。 --delete 参数会使 destination 成为 source 的一个镜像。