一站式环境配置

配置万千

🤔 配置新系统

1. 用户相关

# 1. 修改 root 密码
sudo passwd

# 2. 创建新用户(adduser有交互;用useradd没有)
su root
## 2.1 用useradd
useradd newuser
passwd newuser
useradd -d /home/newuser newuser
## 2.2 用adduser
adduser shuaikai

# 3. 设置 sudo 权限
## 3.1 更改文件
sudo vim /etc/sudoers
shuaikai ALL=(ALL:ALL) NOPASSWD: ALL

# 4. 更改名字
sudo vim /etc/hostname

2. 网络相关

2.1 ssh

# 初始化rsa密钥
ssh-keygen -t rsa	# 三次回车(创建私钥,公钥)
# hostname自然是你想去登录的,别的主机名
ssh-copy-id hostname

# 取消哈希已知hosts,不然后面删除的时候认不出来了
sudo vim /etc/ssh/ssh_config
- HashKnownHosts no

# 如果出现 Permission denied (publickey) 记得检查这两项,取消其注释!
sudo vim /etc/ssh/sshd_config
- PubkeyAuthentication yes
- PasswordAuthentication yes
# 重启sshd服务
sudo systemctl stop sshd
sudo systemctl start sshd
sudo systemctl status sshd

🐱 系统配置

1 网络

1.1 防火墙与 iptables

# 备份 iptables
iptables-save > /etc/iptables.rules
# 恢复
iptables-restore  < /etc/iptables.rules

🐂 其它备忘

1. wsl-gdb 修改

WSL 中的 gdb 不能用,对其进行一定的修改:参考这里,以及这里

首先定位到 wsl 中 gdb 的位置(我这时 gdb 版本是 12.1),然后 explorer.exe . ,将 gdb 复制出来

然后利用反汇编工具 IDA 打开 wsl 的 gdb,用 Search-for-text (左上角一个小望远镜带个 T) 搜索 linux_proc_xfer_memory_partial,看它的 function 地址

然后定位到 function 地址查看这函数的汇编码

前面一堆堆栈处理不用管,找一条指令叫 cmp esi 1,然后jz short loc_xxxxxx,即发现内存不存在就跳转到错误处理去了。记住 jz 指令的地址:0xXXX

回到 WSL,运行:(注意用你上面的地址替换掉 XXX 部分)

echo -ne '\x90\x90' | sudo dd of=/usr/bin/gdb seek=$((0xXXX)) bs=1 count=2 conv=notrunc

然后运行 gdb 打断点调试一个你的文件,跟着走即可正常运行。

让上面的设置永久生效只需:

vim .gdbinit
# 写入:set debuginfod enabled on

2. 各种换源

2.1 ubuntu 换源

源就在 /etc/apt/sources.list 文件里面写着。备份一下,重写文件,然后 sudo apt update 就好了

  • 不同 ubuntu 版本之间,区别就在一个小动物上(就是默认桌面的壁纸),改个名字就好了

    1. Ubuntu 22.04:jammy

    2. Ubuntu 20.04:focal

    3. Ubuntu 18.04:bionic

    4. Ubuntu 16.04:xenial

  • 默认注释了代码源以提高速度,注释了预发布软件源(可能不稳定),如有需要可以取消注释。

  • 建议将所有常用镜像源保存在/etc/apt/目录下,并命名为类似source.list.aliyun的形式,需要使用时直接复制替换source.list文件即可。(国内镜像源)

# 中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
## Pre-released source, not recommended.
# deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

2.2 pip 换源

# USTC
pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/

# 阿里云 https://mirrors.aliyun.com/pypi/simple/
# 科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
# 豆瓣(douban) https://pypi.douban.com/simple/
# 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
# 中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple/

2.3 npm 换源

npm config get registry # 查看当前源地址
# 临时使用
npm install [xxx] --registry https://registry.npm.taobao.org
# 永久更换
npm config set registry https://registry.npm.taobao.org # 淘宝
npm config set registry https://mirrors.huaweicloud.com/repository/npm # 华为

3. 云服务器

3.1 安全组

  • 放通端口的时候注意,看你更改的是安全组,还是实例的防火墙(轻量应用服务器)。这俩是不一样的,别对着安全组一顿放通,结果发现实例没关联上安全组

3.2 对象存储

🐶糊口家伙儿

1 vscode

  • code-runner:在 settings.json 中,可以在当前工作目录下重写一部分,比如对 C++ 文件,单独指定编译命令 -lpthread -D _DEBUG 等等 。可以通过 ctrl p 打开设置然后搜索 code runner 找到

2 redis

2.1 安装

# 只有这一个版本,就是最新的,不用点进去看了
wget http://download.redis.io/redis-stable.tar.gz && tar xzf redis-stable.tar.gz
cd redis-stable
make -j4
make test # 电脑可能会很吵,不知道它受不受得鸟。一般情况下是不用test的
sudo make install # 把可执行文件拷贝到 /usr/local/bin 目录下

2.2 运行

# 启动服务,可以选择加上你的配置文件
redis-server [{directory}/redis.conf]
# 停止服务
redis-cli shutdown

# 启动命令行
redis-cli -h [hostname] -p [port] -a [passwd]
# 可以 --no-auth-warning,或者不加 -a,进去之后写密码
auth [passwd]

# 修改设置
CONFIG SET/GET loglevel warning
CONFIG SET requirepass ''

2.3 配置

(1)配置文件:

初始在redis-stable/redis.conf(rw-rw-r--664),可以给它拷贝到~/.redis/,然后修改的有:

daemonize yes		# 以守护进程形式启动
port 6379			# 端口号,默认是 6379
dir     {~/.redis/6379}		 # 放置持久化文件的位置   rwxrwxr-x 775
logfile {.redis/redis.log}	 # 日志文件			    rw-rw-rw- 666
# 允许远程lian'jie
bind 0.0.0.0		# 任意主机连接
protected-mode no	 # 关闭保护模式

(2)设置开机自启

初始有一个脚本:redis-stable/utils/redis_init_script,把它放到 /etc/init.d/ 目录下,而后

# 先备份一下,别等下删了 cp ./utils/redis_init_script ~/.redis/
sudo cp ./utils/redis_init_script /etc/init.d/
# chmod 774 /etc/init.d/redis_init_script
sudo update-rc.d redis_init_script defaults

(3)常见错误

  1. (error) ERR Errors trying to SHUTDOWN. Check logs

    • 主要检查:持久化文件路径和日志文件路径的权限,最起码当前用户要有读写权限。特别是设置在系统目录的时候。(如果设置在etc var等目录,除非把这些目录设为可写,不然好像一直退出不了,所以我建议在 home 路径下设置这两个)
  2. Could not connect to Redis at 127.0.0.1:6379: Connection refused

    • 笨蛋,快看看是不是已经停止掉 redis 服务了,还想着 redis-cli shutdown 呢?😄
  3. 不能远程连接

2.4 使用

python 连接

pip install redis

import redis
r = redis.StrictRedis(host='127.0.0.1', port=6379, db=0)
r.set('foo', 'bar')  # True
r.get('foo') 		# 'bar'
# 哈希表
r.hmset('dict', {'name': 'Bob'})
people = r.hgetall('dict')
print people # {'name': 'Bob'}
# 事务与管道
pipe = r.pipeline()
pipe.set('foo', 'bar')
pipe.get('foo')
result = pipe.execute()
print result # [True, 'bar']
# 管道
pipe = r.pipeline(transaction=False)
result = r.pipeline().set('foo', 'bar').get('foo').execute()
# [True, 'bar']
C++ 连接

hredis

git clone https://github.com/redis/hiredis
cd hiredis
make -j4
sudo make install #仍然是复制可执行文件
sudo ldconfig /usr/local/lib	# 更新链接库缓存
#include <hiredis/hiredis.h>
redisConnect(...);
redisCommand(...);

3 docker

Docker — 从入门到实践 Docker 容器使用 | 菜鸟教程

3.1 安装

官方脚本快速安装

# 安装
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
# 启动
sudo systemctl enable docker
sudo systemctl start docker
# 创建用户组并添加当前用户,否则可能会 Permission Deny
sudo groupadd docker
sudo usermod -aG docker shuaikai
# 配置镜像加速
sudo vim /etc/docker/daemon.json
# 写入如下配置
{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}
# 重启服务,并查看是否配置成功
sudo systemctl daemon-reload
sudo systemctl restart docker
docker info | tail -5

3.2 常用指令

# 列出所有镜像
docker images
# 列出所有的容器
docker container ls -a
# 删除所有已终止的容器
docker container prune
# 运行一个程序
docker run ubuntu:18.04 /bin/echo 'Hello World'
# pull 下载镜像
## docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
docker pull ubuntu:18.04
# 运行
docker run -it --rm ubuntu:18.04 bash
## -i 交互操作; -t 终端;  --rm 容器退出之后将其删除; ubuntu:18.04 启动容器的基础镜像
## bash 启动容器后运行的命令,因为是想要一个终端

🏇 消遣玩意儿

1 wox

插件:

  • [][Plugin Detail (wox.one)]directory,查词翻译,!t, !d, !e
  • 自带的一些,比如查文件夹,查书签,显示十六进制颜色,进制转换等
  • 可以是 everything 的关键词查找,如果采用 glob 匹配,则注意匹配全名

2 typora

🪲 Typora 1.4.8

(1) 设置自动上传阿里云图床

图片\(\Rarr\)上传服务设定:选择 PicGo-Core(command line),没下载的记得下载。使用方法参考 Upload Images - Typora Support PicGo-Core

然后申请你的阿里☁️腾讯云这云那云的,更新配置文件(在 C:\Users\[username]\.picgo\):

{
  "picBed": {
    "uploader": "aliyun", // 指定当前默认的图床为 aliyun,
    "aliyun": {
      "accessKeyId": "", //创建用户时生成的accessKeyId,替换为自己的
      "accessKeySecret": "", //创建用户时生成的accessKeySecret,替换为自己的
      "bucket": "shuaikai-bucket0001", // 存储空间名,也就是我们创建的Bucket的名字
      "area": "oss-cn-shanghai", // 存储区域代号,课通过bucket概览查看,替换为自己的
      "path": "blog_img/", // 自定义存储路径,一定要以"/"结尾!,根据自己需求修改
      "customUrl": "", // 自定义域名,注意要加http://或者https:// ,根据自己实际情况修改
      "options": "" // 针对图片的一些后缀处理参数 PicGo 2.2.0+ PicGo-Core 1.4.0+ 不用修改
    }
  },
  "picgoPlugins": {}
}

(2) CSS 已经备份,🤔 等待上传云上

3 sharpkeys

  • 映射按键,下载解压版的就够了

4 snipaste

  • Alt + S 截图, Alt + Z 贴图, Ctrl + T 固定到屏幕上(直接点击就好)
  • ,. 能在历史记录中移动,历史记录保存着整个屏幕
  • 1 2 3 4可以对贴图进行旋转以及镜像。如果想要看一部分镜像的样子,这或许很有用
  • 双击左键关闭贴图,对贴图 shift+左键双击:得到缩略图, 鼠标中间单击:从缩略图恢复原样
  • shift+上下左右/WASD:以像素为单位缩小截图区域;ctrl + 上下左右/WASD:放大

5 nginx

  • sudo apt install nginx

  • sudo systemctl status nginx

  • 配置文件在 sudo vim /etc/nginx/nginx.conf 中 (🔗Nginx 配置文件详解)

  • http{}里面添加上server{...}

    user shuaikai;
    ...
    server {
            listen 80;
            server_name xxx.xxx.xxx.xxx;
            root /home/shuaikai/web/;
            index index.html;
            access_log /home/shuaikai/web/log/kkcloud.access.log;
            error_log /home/shuaikai/web/log/kkcloud.error.log;
    }
    
  • nginx -t 测试配置文件有没有毛病

超详细图解:从 0 搭建一个个人网站

🐔 奇技淫巧

1 windows 技巧

  1. Systeminfo.exe 查看系统信息,包括基本信息、BIOS 版本、网卡、Hyper-V 等
posted @ 2023-06-06 15:23  开宝特攻  阅读(43)  评论(0编辑  收藏  举报
Back to Top Button