diff --git a/SUMMARY.md b/SUMMARY.md index b15081a..d3b79a6 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -42,11 +42,11 @@ ## linux - [linnux 入门 -- 01了解开源协议](linux/01-License.pdf) -- [如何重置 root 密码](linux/reset_passwd.pdf) -- [如何设置静态 IP](linux/static_ip.pdf) -- [vim 快捷操作](linux/vim_command.pdf) +- [如何重置 root 密码](linux/reset_passwd.md) +- [如何设置静态 IP](linux/static_ip.md) +- [vim 快捷操作](linux/vim_command.md) - [profile 、bashrc 等的区别和联系](linux/linux-profile-bashrc-diff.pdf) -- [初识 Raspberry Pi OS Lite](linux/Raspberry%20Pi%20OS%20Lite.pdf) +- [初识 Raspberry Pi OS Lite](linux/Raspberry%20Pi%20OS%20Lite.md) diff --git a/linux/Raspberry Pi OS Lite.md b/linux/Raspberry Pi OS Lite.md new file mode 100644 index 0000000..9f0a1d1 --- /dev/null +++ b/linux/Raspberry Pi OS Lite.md @@ -0,0 +1,191 @@ +--- +title: 初识 Raspberry Pi OS Lite +author: Uncle Dragon +date: 2021-07-13 +categories: linux +tags: [linux,containerd,mqtt] +--- + +
初识 Raspberry Pi OS Lite
+ + + + + + + + + + + + + + + + + + + + + + + +
author: Uncle Dragon
+ + +
date: 2021-07-13
+ + +
+ +[TOC] + +
+ + Raspberry Pi OS Lite 基于 Debian 10 32 位版本的精简版,因此debian 下默认使用的命令,绝大部分它都可以使用。 + + # set up Raspberry + 设置静态IP + +```shell +$ vi /etc/dhcpcd.conf + +interface eth0 +static ip_address=10.8.30.100/24 +static routes=10.8.30.1 +static domain_name_servers=114.114.114.114 223.5.5.5 223.6.6.6 + +``` + + +ssh + 默认已经安装ssh服务 + 设置开机自启 +```shell +$ systemctl enable ssh +Synchronizing state of ssh.service with SysV service script with /lib/systemd/systemd-sysv-install. +Executing: /lib/systemd/systemd-sysv-install enable ssh +Created symlink /etc/systemd/system/sshd.service → /lib/systemd/system/ssh.service. +Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /lib/systemd/system/ssh.service. + +``` + +安装 vim + +```shell +$ apt-get update && apt-get install vim + +``` + + +时区设置 + +```shell +$ apt-get install ntpdate + +$ tzselect +Please identify a location so that time zone rules can be set correctly. +Please select a continent, ocean, "coord", or "TZ". +1) Africa 5) Atlantic Ocean 9) Pacific Ocean +2) Americas 6) Australia 10) coord - I want to use geographical coordinates. +3) Antarctica 7) Europe 11) TZ - I want to specify the time zone using the Posix TZ format. +4) Asia 8) Indian Ocean +#? 4 +Please select a country whose clocks agree with yours. +1) Afghanistan 7) Brunei 13) Hong Kong 19) Japan 25) Kyrgyzstan 31) Myanmar (Burma) 37) Qatar 43) Taiwan 49) Vietnam +2) Armenia 8) Cambodia 14) India 20) Jordan 26) Laos 32) Nepal 38) Russia 44) Tajikistan 50) Yemen +3) Azerbaijan 9) China 15) Indonesia 21) Kazakhstan 27) Lebanon 33) Oman 39) Saudi Arabia 45) Thailand +4) Bahrain 10) Cyprus 16) Iran 22) Korea (North) 28) Macau 34) Pakistan 40) Singapore 46) Turkmenistan +5) Bangladesh 11) East Timor 17) Iraq 23) Korea (South) 29) Malaysia 35) Palestine 41) Sri Lanka 47) United Arab Emirates +6) Bhutan 12) Georgia 18) Israel 24) Kuwait 30) Mongolia 36) Philippines 42) Syria 48) Uzbekistan +#? 9 +Please select one of the following time zone regions. +1) Beijing Time +2) Xinjiang Time +#? 1 + +The following information has been given: + + China + Beijing Time + +Therefore TZ='Asia/Shanghai' will be used. +Selected time is now: Mon Jul 12 17:33:01 CST 2021. +Universal Time is now: Mon Jul 12 09:33:01 UTC 2021. +Is the above information OK? +1) Yes +2) No +#? 1 + +You can make this change permanent for yourself by appending the line + TZ='Asia/Shanghai'; export TZ +to the file '.profile' in your home directory; then log out and log in again. + +Here is that TZ value again, this time on standard output so that you +can use the /usr/bin/tzselect command in shell scripts: +Asia/Shanghai + +$ vi /etc/profile + +TZ='Asia/Shanghai'; export TZ + +$ source /etc/profile + +$ date +Mon 12 Jul 17:36:07 CST 2021 +``` + + +# install containerd + +```shell +$ sudo apt-get update + +$ sudo apt-get install \ + apt-transport-https \ + ca-certificates \ + curl \ + gnupg \ + lsb-release +``` + + +```shell +$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg +``` + + + +```shell +$ echo \ + "deb [arch=armhf signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ + $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +``` + +```shell +$ sudo apt-get update +$ sudo apt-get install containerd.io +``` + +# install mqtt + +```shell + + +wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key + +sudo apt-key add mosquitto-repo.gpg.key + +# sudo wget -P /etc/apt/sources.list.d/ http://repo.mosquitto.org/debian/mosquitto-jessie.list +# sudo wget -P /etc/apt/sources.list.d/ http://repo.mosquitto.org/debian/mosquitto-stretch.list +sudo wget -P /etc/apt/sources.list.d/ http://repo.mosquitto.org/debian/mosquitto-buster.list + +apt-get update + +apt-get install mosquitto + + +``` + + + diff --git a/linux/Raspberry Pi OS Lite.pdf b/linux/Raspberry Pi OS Lite.pdf deleted file mode 100644 index f48cada..0000000 Binary files a/linux/Raspberry Pi OS Lite.pdf and /dev/null differ diff --git a/linux/login_no_passwd.md b/linux/login_no_passwd.md new file mode 100644 index 0000000..b9c1ad9 --- /dev/null +++ b/linux/login_no_passwd.md @@ -0,0 +1,70 @@ +--- +title: SSH 免密认证 +date: 2020-09-28 +categories: + - devops +tags: [linux, ssh] +--- + + +## a. 安装ssh + +``` bash +sudo apt-get update +sudo apt-get install openssh-server +sudo apt-get install openssh-client +# 测试是否安装成功 +ssh -l anxinyun 10.8.30.179 +``` + + +## b. 修改配置 + +``` +修改 /etc/ssh/sshd_config: +RSAAuthentication yes (启用RSA认证) +PubkeyAuthentication yes (启用公钥私钥配对认证) +AuthorizedKeysFile %h/.ssh/authorized_keys (公钥文件路径) +``` + +``` bash +# 重启服务 +service ssh restart +``` + +## c. 配置密钥 + +``` bash +# 生成密钥对 +# ssh-keygen -t rsa -P "" +ssh-keygen -t rsa -b 4096 -C "your_email@example.com" +# 输出到authorized_keys文件 +cat .ssh/id_rsa.pub >> .ssh/authorized_keys +# 设置authorized_keys权限 +chmod 600 .ssh/authorized_keys +``` + +``` bash +# 需要免密登录 哪台主机,就把公钥注册到哪台主机 +# 复制 n1 公钥到 m1 +scp anxinyun@10.8.30.179:/home/anxinyun/.ssh/id_rsa.pub . +# 追加到 authorized_keys +cat id_rsa.pub >> .ssh/authorized_keys +# 删除 n1 公钥 +rm id_rsa.pub + +# 在 n1、n2中重复上述命令 +``` + +## M1 远程登录免密 + +``` basic +用xshell 用户密钥生成工具生成密钥对 +把公钥追加到 .ssh/authorized_keys +私钥和密钥自己妥善保存 + +# 禁用ssh用户密码登录 +修改 /etc/ssh/sshd_config: + PasswordAuthentication no +``` + diff --git a/linux/reset_passwd.md b/linux/reset_passwd.md new file mode 100644 index 0000000..4c5d2ed --- /dev/null +++ b/linux/reset_passwd.md @@ -0,0 +1,37 @@ +--- +title: 忘记 Linux root 密码 +date: 2020-05-26 +categories: + - linux +tags: [linux] +--- + + +> linux 忘记密码,别慌,按下面步骤轻松重置密码。 + +## 1. 重启系统 + +``` +# 根据提示在系统启动菜单,选择系统,然后根据提示 按 `e` 修改启动参数 +Use the ↑ and ↓ keys to changed the selection. +Press 'e' to edit the selected item. or 'c' for ... ... +``` + + +## 2. 修改参数 + +向下滚动光标,找到 `...root=/dev/Mapper/centos-root ro rd.lvm.lv=...` 主要时找 **ro** +把 ro 更改为 `rw init=/sysroot/bin/sh` +修改完成,根据提示 按 `Ctrl-x` + +## 3. 修改密码 + +```bash +passwd root # 不只是root,任何你想修改的可登录用户名 +# 下面根据系统提示输入新密码并确认密码 +``` + +## 4. 重启系统 + +> 使用新创建的密码登录 + diff --git a/linux/reset_passwd.pdf b/linux/reset_passwd.pdf deleted file mode 100644 index 052a497..0000000 Binary files a/linux/reset_passwd.pdf and /dev/null differ diff --git a/linux/static_ip.md b/linux/static_ip.md new file mode 100644 index 0000000..b6c2852 --- /dev/null +++ b/linux/static_ip.md @@ -0,0 +1,202 @@ +--- +title: Linux 设置静态 IP +date: 2020-05-26 +categories: + - linux +tags: [linux] +--- + +## Ubuntu + +### Ubuntu 16 +#### 修改 `/etc/network/interfaces` + +``` bash +sudo vi /etc/network/interfaces +``` + + + +``` ini +auto eno4 +iface eno4 inet static +address 10.8.30.176 +netmask 255.255.255.0 +gateway 10.8.30.1 +dns-nameserver 114.114.114.114 +``` + +### Ubuntu 18.04 + + +> 原来设置 `/etc/network/interfaces` 的方法还可以用,只是设置的dns没有用 +> 新的配置使用 netplan 管理 + +#### 修改配置文件 + +> 编辑 `/etc/netplan/`下的yaml文件 +> +> 这里文件名是 `01-network-manager-all.yaml` + +```bash +sudo vi /etc/netplan/01-network-manager-all.yaml + +# 注释掉 renderer:NetworkManager + +network: + version: 2 + ethernets: + # 网络名 + enp0s3: + # 一个ip数组,用 ‘,’ 隔开 + addresses: [10.8.40.119/24] + # 使用dhcp 动态获取ip: true/no + dhcp4: no + # ipv4 网关 + gateway4: 192.168.0.1 + # dns + nameservers: + addresses: [114.114.114.114] + search: [localdomain] + optional: true + +# 立即生效 +sudo netplan apply +``` + +### 补充 + +#### 查看网关 + +```bash +# 查看网关 +netstat -rn +# 或 +route -n + +``` + +#### 设置默认网关 +``` bash +route add default gw 10.8.30.1 +``` + +#### 重启网关 +``` bash +/etc/init.d/networking restart +``` + +### 配置 `/etc/resolv.conf` +> 以上配置完成就可以了 +> 如果是desktop 版本可能设置的dns不能使 /etc/resolv.conf生效. 重启又恢复到默认 + +#### 安装 resolvconf 服务 + +```bash +sudo apt-get update +sudo apt-get install resolvconf +``` + +#### 配置 resolvconf + +> 修改 /etc/resolvconf/resolv.conf.d/head + +```bash +vi /etc/resolvconf/resolv.conf.d/head +# 增加 +nameserver 223.5.5.5 +nameserver 223.6.6.6 +``` + +> 保存退出,执行 + +```bash +resolvconf -u +``` + +> 查看 /etc/resolv.conf, 重启再看 + +```bash +cat /etc/resolv.conf +``` + +## CentOS + +> +>配置文件在 `/etc/sysconfig/network-scripts ` 下 +> +>这里测试机文件名为:ifcfg-enp0s3 +> +>修改 ifcfg-enp0s3 文件 + +```bash +vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 +``` + +> 默认配置 + +```bash +TYPE=Ethernet +PROXY_METHOD=none +BROWSER_ONLY=no +BOOTPROTO=dhcp +DEFROUTE=yes +IPV4_FAILURE_FATAL=no +IPV6INIT=yes +IPV6_AUTOCONF=yes +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no +IPV6_ADDR_GEN_MODE=stable-privacy +NAME=enp0s3 +UUID=64a31304-95d8-4ab6-961e-8d5db92f8cc0 +DEVICE=enp0s3 +ONBOOT=no +``` + +> 修改为 + +```bash +TYPE=Ethernet +PROXY_METHOD=none +BROWSER_ONLY=no +#BOOTPROTO=dhcp +DEFROUTE=yes +IPV4_FAILURE_FATAL=no +IPV6INIT=yes +IPV6_AUTOCONF=yes +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no +IPV6_ADDR_GEN_MODE=stable-privacy +NAME=enp0s3 +UUID=64a31304-95d8-4ab6-961e-8d5db92f8cc0 +DEVICE=enp0s3 +#ONBOOT=no + +#static assignment +NM_CONTROLLED=no +ONBOOT=yes +BOOTPROTO=static +IPADDR=192.168.0.116 +NETMASK=255.255.255.0 +GATEWAY=192.168.0.1 + +``` + + + +> 修改/etc/sysconfig/network + +> 默认为空 + +```bash +# Created by anaconda +NETWORKING=yes +GATEWAY=192.168.0.1 +DNS1=114.114.114.114 +``` + +> 重启服务 + +```bash +service network restart +``` + diff --git a/linux/static_ip.pdf b/linux/static_ip.pdf deleted file mode 100644 index 47429fb..0000000 Binary files a/linux/static_ip.pdf and /dev/null differ diff --git a/linux/vim_command.md b/linux/vim_command.md new file mode 100644 index 0000000..85ee523 --- /dev/null +++ b/linux/vim_command.md @@ -0,0 +1,83 @@ +--- +title: VIM 编辑器 +date: 2020-10-18 +categories: + - linux +tags: [linux] +--- + + +## VIM 文本编辑器 +> 一般 `linux` 系统上默认都会安装 `vim` 文本编辑器。 + + + +## 快捷操作 + +### 批量添加注释 + +> 有两种方法: + +#### 使用可视模式 + +##### 注释 + +1. 按 **`Ctrl+ v`** 进入块选择模式, + + ![](https://cdn.jsdelivr.net/gh/vinloong/imgchr@latest/notes/img/202201191058873.png) + + +2. 然后移动光标选中你要注释的行, + + ![](https://cdn.jsdelivr.net/gh/vinloong/imgchr@latest/notes/img/202201191059608.png) + + +3. 再按大写的 **`I`** 进入首行插入模式,输入注释符号比如 `#`, + + ![](https://cdn.jsdelivr.net/gh/vinloong/imgchr@latest/notes/img/202201191059940.png) + + +4. 输入完成后,按 **两下** `ESC`, vim 会自动将你选中的行都加上注释,保存退出 + + ![](https://cdn.jsdelivr.net/gh/vinloong/imgchr@latest/notes/img/202201191059429.png) + + +##### 取消注释 + +1. **`Ctrl + v`** 进入块选择模式, + + ![](https://cdn.jsdelivr.net/gh/vinloong/imgchr@latest/notes/img/202201191100130.png) + +2. 选中你要删除的行首的注释符号, + + ![](https://cdn.jsdelivr.net/gh/vinloong/imgchr@latest/notes/img/202201191100634.png) + +3. 选好之后按 **d** 即可删除注释,**ESC** 保存退出。 + + ![](https://cdn.jsdelivr.net/gh/vinloong/imgchr@latest/notes/img/202201191100231.png) + + + +#### 使用替换命令 + +##### 注释 + +使用下面命令在指定的行首添加注释。 + +使用名命令格式: **`:起始行号,结束行号s/^/注释符/g`** + + ![](https://cdn.jsdelivr.net/gh/vinloong/imgchr@latest/notes/img/202201191101730.png) + + + + ![](https://cdn.jsdelivr.net/gh/vinloong/imgchr@latest/notes/img/202201191101021.png) + +##### 取消注释 + +使用名命令格式: **`:起始行号,结束行号s/^注释符//g`** + + ![](https://cdn.jsdelivr.net/gh/vinloong/imgchr@latest/notes/img/202201191101890.png) + + ![](https://cdn.jsdelivr.net/gh/vinloong/imgchr@latest/notes/img/202201191101210.png) + + diff --git a/linux/vim_command.pdf b/linux/vim_command.pdf deleted file mode 100644 index 68cd5f2..0000000 Binary files a/linux/vim_command.pdf and /dev/null differ