为Ubuntu系统添加新的普通用户

文章目录

1.创建一个新的普通用户

  • 创建了可以登录的meow用户并使用/bin/bash作为shell。
  • 设置密码。
  • 为meow用户增加管理员权限。
  • 切换登录用户为meow。
$ sudo useradd -m meow -s /bin/bash
$ sudo passwd meow
$ sudo adduser meow sudo
$ su meow

2.给用户授权

  • 查看meow所在的组。
  • 设置meow权限为superuser。
  • 查看sudoer的文本文件(suders含义),可以添加meow ALL=(ALL:ALL) ALL为meow设置superuser权限。
$ groups meow
$ usermod -aG sudo meow
$ visudo

visudo默认使用vim而不是nano的方法
在顶部附近的/etc/sudoers文件中添加一行:
Defaults editor=/usr/bin/vim 

或者

wangji@DESKTOP-QNG23J0:~$ ll /etc/alternatives/editor
lrwxrwxrwx 1 root root 9 Aug 30 05:40 /etc/alternatives/editor -> /bin/nano*
wangji@DESKTOP-QNG23J0:~$ sudo ln -sf /usr/bin/vim /etc/alternatives/editor

wangji@DESKTOP-QNG23J0:~$ sudo visudo

3.删除用户

  • 会删除用户目录
$ deluser --remove-home meow

4.新增用户添加至ubuntu的sudors文件中

修改这2个位置,增加NOPASSWD:,注意NOPASSWD:的冒号,且前后有空格
在这里插入图片描述

一般上述方式即可,更通用

如果想要单独控制某个用户,可以参照如下的方式:

ALL  ALL=(ALL:ALL)    NOPASSWD:   ALL

用户 组=(用户:组)  NOPASSWD:  允许执行无需密码的程序
sudo cp /etc/sudoers /etc/sudoers.old
sudo chmod +w /etc/sudoers
sudo vim /etc/sudoers
# 加上如下行
%your_user_name% ALL=(ALL) NOPASSWD: ALL

1 youuser ALL=(ALL) ALL
2 %youuser ALL=(ALL) ALL
3 youuser ALL=(ALL) NOPASSWD: ALL
4 %youuser ALL=(ALL) NOPASSWD: ALL

解释如下:
第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.

参考:

5.提高ubuntu下访问github的速度

ubuntu下使用github很慢的解决办法1:

ubuntu下使用github很慢的解决办法2:

ubuntu下使用github很慢的解决办法3:

5.1 vscode在线打开github

vscode在线打开github-非句号方式

vscode在线打开github-句号方式

5.1 wsl永久关闭swap功能

打开Windows资源管理器,地址栏输入 %UserProfile% 回车,在该目录下创建一个文件, 名字为 .wslconfig
写入内容示例如下
[wsl2]
swap=0

powershell:

wsl --shutdown

参考

6.配置ubuntu国内镜像下载源的方法

ubuntu 的apt源配置方法见:Ubuntu配置apt的国内源地址,网站见:阿里云ubuntu镜像源网站

注意:不同的ubuntu系统需要修改镜像源的配置文件,上述的配置文件中一般为focal

wangji@DESKTOP-QNG23J0:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:        20.04
Codename:       focal

所以需要参考将源的codename进行修改:Ubuntu更换apt源与Codename的关系

6.1 如果ping mirrors.tuna.tsinghua.edu.com无法ping通

  • 临时修改方法如下
1.打开/etc/resolv.conf;

$sudo vim /etc/resolv.conf

2.修改nameserver后的ip地址;

加入:

nameserver 8.8.8.8
nameserver 8.8.4.4

永久修改请参考以下的方法

wsl中永久修改/etc/resolv.conf

sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf

7.ubuntu包的安装方法

一般所有的包基本都可以通过命令进行安装,有的是使用包,有的是开发者包,比如ostree,所以执行虾命令就可以完成包的安装

wangji@DESKTOP-QNG23J0:/usr/local/lib/x86_64-linux-gnu/pkgconfig$ sudo apt-cache search ostree
libendless-doc - documentation files for the Endless SDK
libostree-1-1 - content-addressed filesystem for operating system binaries (library)
libostree-dev - Development files for the libostree library
libostree-doc - Development documentation for the libostree library
ostree - content-addressed filesystem for operating system binaries
ostree-boot - libostree boot loader and initramfs integration
ostree-tests - content-addressed filesystem for operating system binaries - tests

安装方法

wangji@DESKTOP-QNG23J0:/usr/local/lib/x86_64-linux-gnu/pkgconfig$ sudo apt-get install libostree-dev 

默认下载包的位置:

下载的软件存放位置
 /var/cache/apt/archives

查看dpkg的control信息

dpkg --info python3.8-examples_3.8.10-0ubuntu1~20.04.6_all.deb

问题:Package python3 is not configured yet或者 Package ** is not configured yet或者Errors were encountered while processing

  • “dpkg: error processing package openssh-server (–configure)” on apt install

  • ref:大量dpkg依赖错误

1、sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
2、sudo mkdir /var/lib/dpkg/info/
3、sudo apt-get update
4、sudo apt-get -f install

问题:安装python3

sudo apt install python3.7
sudo apt install python-is-python3

问题4:卸载python2.7

1.卸载python2.7
sudo apt-get remove python2.7

2.卸载python2.7及其依赖
sudo apt-get remove --auto-remove python2.7

3.清除python2.7的一些配置文件
sudo apt-get purge python2.7 
sudo apt-get purge --auto-remove python2.7

dpkg -L +软件包的名字,可以知道这个软件包包含了哪些文件, 这个方法可以列出所有安装后留在系统里的文件

dpkg -L packagename
dpkg -l | grep 程序大概包含的程序名关键字

sudo dpkg --purge  libpython2.7-minimal:amd64 删除对应配置文件

即可查出安装后的文程序名,然后根据这个文件名即可完成对文件的卸载
sudo apt autoremove --purge 文件名

ubuntu安装deb包到指定目录

8.Ubuntu中将默认的dash改为bash

sudo dpkg-reconfigure dash Enter

9.pip很慢

(1)pip config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple

 /home/wangji/.config/pip/pip.conf
wangji:是你自己的用户哦

(2)使用vi pip.conf命令打开pip.conf文件,写入如下内容:
[global]
index-url = http://mirrors.myhuaweicloud.com/pypi/web/simple
format = columns
[install]
trusted-host=mirrors.myhuaweicloud.com

pip用于查看 某个 库的名字、版本、位置等具体信息

pip show xxx
#如 pip show requests#

sudo pip show xxx是不一样的

其他命令类似

eg:

wangji@script-wang:~/framework/framework_master$ pip show gitpython



Name: GitPython
Version: 3.1.31
Summary: GitPython is a Python library used to interact with Git repositories
Home-page: https://github.com/gitpython-developers/GitPython
Author: Sebastian Thiel, Michael Trier
Author-email: byronimo@gmail.com, mtrier@gmail.com
License: BSD
Location: /home/wangji/.local/lib/python3.8/site-packages
Requires: gitdb
Required-by: 
wangji@script-wang:~/framework/framework_master$ 
wangji@script-wang:~/framework/framework_master$ sudo pip show gitpython
Name: GitPython
Version: 3.1.31
Summary: GitPython is a Python library used to interact with Git repositories
Home-page: https://github.com/gitpython-developers/GitPython
Author: Sebastian Thiel, Michael Trier
Author-email: byronimo@gmail.com, mtrier@gmail.com
License: BSD
Location: /usr/local/lib/python3.8/dist-packages
Requires: gitdb
Required-by: 

10. wsl2安装openssh-server

启动:

不能使用(直接使用就会报错)sudo systemctl start sshd

得通过:
sudo /etc/init.d/ssh start 

由于WSL2默认使用NAT的方式,所以需要开启端口转发,这样其他主机就可以ssh进来了
参考去设置wsl2的端口转发:wsl2 设置端口映射,以及修改windows防火墙(进和出的规则),别人就可以访问了

11.wsl2安装docker

ubuntu:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu/ $(lsb_release -cs) stable"

或者 vim /etc/apt/sources.list中增加:
deb [arch=amd64] https://download.docker.com/linux/ubuntu/ focal stable

focla:由$(lsb_release -cs)

安装docker以及docker-compose

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

启动docker

 sudo /etc/init.d/docker start

可能存在的问题:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json": dial unix /var/run/docker.sock: connect: permission denied
  • 原因:
wangji@script-wang:~/ota/OpenSource/ota-lith$ ll /var/run/docker.sock
srw-rw---- 1 root docker 0 Dec  2 12:43 /var/run/docker.sock=

可以看出,这个套接字文件所属组是docker,我们可以将该普通用户加入到docker这个组。
  • 解决办法:

 sudo gpasswd -a username docker   #将普通用户username加入到docker组
 $ newgrp docker  #更新docker组

防火墙问题:

/var/log/docker.log

Error initializing network controller: error obtaining controller instance: unable to add return rule in DOCKER-ISOLATION-STAGE-1 chain:  (iptables failed: iptables --wait -A DOCKER-ISOLATION-STAGE-1 -j RETURN: iptables v1.8.7 (nf_tables):  RULE_APPEND failed (No such file or directory): rule in chain DOCKER-ISOLATION-STAGE-1
  • 解决办法
sudo update-alternatives --config iptables

选择:iptables-legacy
sudo vim /etc/docker/daemon.json

{
  "registry-mirrors": [
    "https://4sjn347i.mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "max-concurrent-downloads": 10,
  "insecure-registries": [],
  "debug": true,
  "experimental": false,
  "features": {
    "buildkit": true
  }
}

接着重启docker即可

12.wsl2将默认的NAT方式配置成网桥模式

条件:

13.谷歌浏览器商店打不开怎么办?

如何在国内,下载Chrome应用商店中的插件

14.wsl增加组播路由

15.Python默认查找包的环境

python -m site

16.vscode使用wsl插件出现的问题

问题1:openssl error:0A000126:SSL routines::unexpected eof while reading

  • 主要原因是wsl中使用wget下载vscode服务器端报错
首先尝试升级openssl
sudo apt-get update && sudo apt-get install openssl

若不可以,则需离线安装服务器端到wsl中
commit_id=f06011ac164ae4dc8e753a3fe7f9549844d15e35

# Download url is: https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable
curl -sSL "https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable" -o vscode-server-linux-x64.tar.gz

mkdir -p ~/.vscode-server/bin/${commit_id}
# assume that you upload vscode-server-linux-x64.tar.gz to /tmp dir
tar zxvf /tmp/vscode-server-linux-x64.tar.gz -C ~/.vscode-server/bin/${commit_id} --strip 1
touch ~/.vscode-server/bin/${commit_id}/0

17.WSL2很卡

问题:WSL2 Vmmem占用内存很高,用着用着就卡

  • 解决办法:打开cron的自启动服务,定时清内存
(1)配置cron服务
sudo crontab -e 
添加:*/5 * * * * sync; echo 3 > /proc/sys/vm/drop_caches &&  touch /tmp/success_drop_caches_last_run || touch /tmp/faliure_drop_caches_last_run

(2)自动启动cron服务
sudo vim ~/.bashrc
添加:[ -z "$(ps -ef | grep cron | grep -v grep)" ] && sudo /etc/init.d/cron start &> /dev/null
配置sudo命令:若配置过则不需要配置
sudo visudo
sudo ALL=NOPASSWD: /etc/init.d/cron start

(3)在powershell中:wsl --shutdown

18.vscode常用插件小结

(1)vscode使用markdown:VS Code 插件之 Markdown 篇

  • 说明:若需要对markdown的表格对齐的话,建议使用markdown all in one 格式化工具,不要去用markdown-formatter(很难用)

(2)离线环境下仅使用vscode remote ssh方式远程连接服务器操作指南

(3)vscode 的tab与空格设置 ,vscode使用sftp配置 ,vscode代码补全插件

(4)vsocde跳转python代码,vscode实现RF框架代码跳转功能

(5)vscode中使用TIMELINE和GIT插件查看代码的历史记录

(6)VSCode 的扩展包C/C++ IntelliSense, debugging, and code browsing的IntelliSense功能无法使用

(7)Windows 下 VSCode 使用 SSH 连接报 Bad owner or permissions on C:\Users\Administrator/.ssh/config 错误问题解决

19.vim 整合插件

vimrc

(1)vim搜索设置高亮

有两种方法:
1、临时设置:vim打开文档-->命令行形式输入 set hlsearch。
缺点:关闭文档后,下次打开,又需要重新设置一遍。

2、永久设置(推荐):在~/.vimrc中配制
vim ~/.vimrc
在文件中加上set hlsearch 
然后保存退出便可。
优点:一次设置,永久生效。

(2)vim常用操作

hjkl左上下右
i当前字符前插入
a当前字符后插入
I当前行开头插入
A当前行末尾插入
o在后一行插入
O在前一行插入
v选择
V选择整行
y复制
p粘贴在当前字符后
P粘贴在当前字符前
c修改
d删除
x删除一个字符
s修改当前字符
r仅修改当前字符
f跳转到下一个字符上
t跳转到下一个字符前
0开头
$结尾
^除去空格的开头
w下一个单词
b上一个单词
e下一个单词的末尾
W下一个单词(无视符号)
B上一个单词(无视符号)
E下一个单词的末尾(无视符号)
ZZ保存并退出
ZQ不保存强制退出
<<减小缩进
>>增大缩进
==自动调整缩进
#向前查找当前光标下单词
*向后查找当前光标下单词
?向前查找
/向后查找
n下一个
N上一个
{上一段落
}下一段落
u撤销上一次操作,ctrl+r则为反撤销操作
全词匹配:/int\>
不区分大小写::set ignorecase //忽略大小写,:set noignorecase //恢复到大小写敏感

vim其他操作

(1)vim批量注释
v或者V选中后,命令行输入:'<,'>norm I//
等价于26,32norm I//

批量取消注释
v或者V选中后,命令行输入:'<,'>norm 0x


(2)ctrl+u,ctrl+d快速翻页

(3)V选中部分批量替换
'<,'>s/wang/ji/g

全文替换:1,$s/wang/ji/g

(4)取消高亮选中
:noh

(5)vim中打开目录
:NERDTreeToggle

(6)Plug
:PulgInstall

eg:"Plug 'vim-scripts/vim-airline' ->"Plug 'vim-scripts/vim-airline'
去掉前面的"
" no longer used vim-airline:
"let g:airline#extensions#coc#enabled = 1
"let g:airline#extensions#tabline#enabled = 1
"let g:airline#extensions#tabline#left_alt_sep = '|'
"let g:airline#extensions#tabline#buffer_nr_show = 0
"let g:airline#extensions#tabline#formatter = 'default'
"let g:airline#extensions#keymap#enabled = 1
"let g:airline#extensions#tabline#buffer_idx_mode = 1


则需要在vim下执行:PulgInstall

(7)wsl ubuntu中vim拷贝到windows剪切板
apt-get install -y vim-gtk3
检查一下是否安装成:
vim --version | grep \"clipboard\"
+clipboard         +keymap            +printer           +vertsplit

vim中的内容保存至windows剪切板:
:'<,'>w !clip.exe

(8)ctrl t 下面打开终端,ctrl w在终端和代码中切换
将代码拷贝到终端:y拷贝vim中的内容,然后换到终端中输入:ctrl w\"\"

(9)F7编译代码,编译选项:/home/wangji/.vim/tasks.ini
F5构建和运行Cmake工程

(10)gd寻找定义
可能打开多个文件F2文件往左,F3文件往右
跳转回来:ctrl o,跳转进去ctrl i

gr查看这个函数被谁引用了


20.curl直接下载github release文件

方法1:
curl -LsO https://github.com/archibate/vimrc/releases/vimrc-install.sh
# -L 参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
# -s 是silent,就是不输出详细过程
# -O 把输出写到该文件中,保留远程文件的文件名


方法2:
git clone git@github.com:archibate/vimrc.git
注释掉./vimrc/.vim/install.sh文件中的set -e
./vimrc/.vim/install.sh

21 git submodule问题

submodule

22 ubuntu支持交叉编译

会在你的环境中安装一个默认适配你环境的较新版本
 sudo  apt-get install gcc-aarch64-linux-gnu -y
查询版本号
root@bruce:/# aarch64-linux-gnu-gcc -v
如果CMake中制定特定版本的交叉编译器,eg:
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc-9)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++-9)

则可以执行这个命令,ubuntu会告诉你如何安装
wangji@script-wang:~/time/timesync/build/install/bin$ aarch64-linux-gnu-g++-9
sudo apt install g++-9-aarch64-linux-gnu -y

23.Ubuntu 查看cpu个数及核心数

  • ref:
查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l


查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

查看线程数
grep 'processor' /proc/cpuinfo | sort -u | wc -l    

23.如何在ubuntu22.04版本上安装libssl1.1?

链接

24.boost手册及安装

boost中文手册:
Boost C++ 库

boost英文手册:
Chapter 22. Boost.PropertyTree

Boost常用组件概览:链接

boost安装:
在Ubuntu上安装Boost的五种方法(全网最全,建议收藏)
main/release/1.71.0/source

25.WSL2端口映射

将ip地址的对应的端口映射到宿主win10对应的端口
# netsh interface portproxy add v4tov4 listenport=[win10端口] listenaddress=0.0.0.0 connectport=[虚拟机的端口] connectaddress=[虚拟机的ip]
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=172.29.41.233

删除端口转发
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=0.0.0.0


检测是否设置成功
netsh interface portproxy show all

接着,还需要配置windows的防火墙规则,可以参考:vm虚拟机中使用NAT模式特别说明

wsl2 设置端口映射

26.Ubuntu 22.04 Minikube安装配置

Ubuntu 22.04 Minikube安装配置Minikube-ubuntu系统安装minikubeminikube配置–registry-mirror=https://registry.docker-cn.com

MacOS 安装 minikube 后执行 “minikube start” 卡在 “Booting up control plane …”

如果改用国内镜像源还是无法下载,则参看链接,自己使用docker下载并重新tag
在这里插入图片描述
自己docker pull然后改名字
在这里插入图片描述

问题:

shaokun@shaokun:~/wangji/ota-community-edition$ make start
😄  minikube v1.2.0 on linux (amd64)
✅  using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
E0413 18:31:19.631161    3057 start.go:559] StartHost: Error loading existing host. Please try running [minikube delete], then run [minikube start] again.: registry: driver not found

💣  Unable to start VM: Error loading existing host. Please try running [minikube delete], then run [minikube start] again.: registry: driver not found

😿  Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
👉  https://github.com/kubernetes/minikube/issues/new
make: *** [Makefile:14: start-minikube] Error 70
shaokun@shaokun:~/wangji/ota-community-edition$ minikube delete

解决:
安装minikube v1.4.0版本

27.ubuntu 22.04 安装kubectl

在 Linux 系统中安装并设置 kubectl

28.ubuntu22.04安装kOps

kOps

29.在线生成asicc字符画网站

在线生成ascii字符画网站

30.连接dl.google.com超时的问题

解决Android studio 连接 dl.google.com超时的问题

31.clang-tid静态检查工具

clang-tidy——静态代码分析框架

32.起变量名网站CODELF

CODELF

33.wsl2中pip很慢

如果已经配置pip源,还是很慢,可以执行:

 python -m pip install --upgrade pip wheel setuptools

34.Windows10或者Windows11主机无法PING通的解决方法

步骤:Windows10或者Windows11主机无法PING通的解决方法

检查:
打开windows安全中心->打开防火墙和网络保护->打开高级设置
在这里插入图片描述
可以看到入站规则中显示ICMP回显请求,说明设置成功了
在这里插入图片描述

35. Key is stored in legacy trusted.gpg

问题:

apt-get update -y 出现以下告警
Reading package lists... Done
W: https://download.docker.com/linux/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

解决办法:
sudo apt-key list

wangji@DESKTOP-9TAUMH9:~$ apt-key list
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2015-05-29 [SC]
      2EE0 EA64 E40A 89B8 4B2D  F734 99E8 2A75 642A C823
uid           [ unknown] sbt build tool <scalasbt@gmail.com>
sub   rsa4096 2015-05-29 [E]

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

/etc/apt/trusted.gpg.d/sbt.gpg
------------------------------
pub   rsa4096 2015-05-29 [SC]
      2EE0 EA64 E40A 89B8 4B2D  F734 99E8 2A75 642A C823
uid           [ unknown] sbt build tool <scalasbt@gmail.com>
sub   rsa4096 2015-05-29 [E]

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
------------------------------------------------------
pub   rsa4096 2012-05-11 [SC]
      8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid           [ unknown] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>

/etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg
------------------------------------------------------
pub   rsa4096 2018-09-17 [SC]
      F6EC B376 2474 EDA9 D21B  7022 8719 20D1 991B C93C
uid           [ unknown] Ubuntu Archive Automatic Signing Key (2018) <ftpmaster@ubuntu.com>

选择出现告警的key进行修复,我这里显然是docker,且仅取出上述key最后的8个字符即可0EBF CD88

wangji@DESKTOP-9TAUMH9:~$ sudo apt-key export 0EBFCD88| sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg

ref:

36.wget --no-check-certificate 问题解决

添加 --no-check-certificate
使用.wgetrc 文件(以后都就可以了)

echo "check_certificate = off" >> ~/.wgetrc

ref:

40.Windows设置暗黑主题方案

10 个适用于 Google Chrome 的最佳黑暗模式扩展

最好用的感觉还是浏览器自带的暗模式
Step1

  • 依次点击:设置 > 个性化 > 颜色 > 选择默认应用模式 > 深色,来开启系统深色主题。
  • 此时,Chrome的标题栏和状态栏,应该会变成深色,但是网页的主体部分没有变化。
    在这里插入图片描述
    Step2
  • 打开 Chrome,并在地址栏中输入(或复制+粘贴)“ chrome://flags ”,然后按 “Enter”
  • 然后,在搜索框中,输入 “dark mode”,找到选项之后,把右侧的状态,改为 “Enable”
  • 重新启动浏览器,即可完成设置。
    在这里插入图片描述

41.pdf翻译

知云文献翻译

42.ubuntu20.04 install/uninstall gcc11

sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt install -y gcc-11
gcc-11 --version
sudo apt purge --autoremove -y gcc-11
sudo rm -rf /etc/apt/trusted.gpg.d/ubuntu-toolchain-r_ubuntu_test.gpg
sudo rm -rf /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-focal.list

43.clang-format配置

vscode安装clang-format插件
在这里插入图片描述

jiang下属配置放到工程目录的.clang-format即可:

---
Language: Cpp
# BasedOnStyle: Google
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign
# T503 : 2-2-5
AlignConsecutiveAssignments: Consecutive
AlignConsecutiveDeclarations: false
AlignConsecutiveMacros: false
AlignEscapedNewlines: Left
AlignOperands: false
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
# T503 : 2-4-1
AllowShortLambdasOnASingleLine: Empty
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
# To be included in T503
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
  # T503 : 2-2-2, 2-1-2
  AfterCaseLabel: true
  AfterClass: true
  # T503 : 2-1-2
  AfterControlStatement: Always
  AfterEnum: true
  AfterFunction: true
  AfterNamespace: true
  AfterObjCDeclaration: false
  AfterStruct: true
  AfterUnion: true
  AfterExternBlock: false
  BeforeCatch: false
  # T503: 2-1-2
  BeforeElse: true
  IndentBraces: false
  SplitEmptyFunction: false
  SplitEmptyRecord: false
  SplitEmptyNamespace: false
BreakAfterJavaFieldAnnotations: false
BreakBeforeBinaryOperators: All
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: true
# To be included in T503
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma
BreakStringLiterals: true
# T503 : 2-1-1
ColumnLimit: 80
CommentPragmas: '^ clang-format:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: false
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
IncludeBlocks: Preserve
# To be included in T503
IncludeCategories:
  - Regex: '^<.*\.h>'
    Priority: 1
  - Regex: '^<.*'
    Priority: 2
  - Regex: '.*'
    Priority: 3
IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: false
IndentPPDirectives: BeforeHash
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: '^MR_HEADER$'
MacroBlockEnd: '^MR_FOOTER$'
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: false
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
ReflowComments: true
SortIncludes: false 
SortUsingDeclarations: false
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
Standard: Auto
TabWidth: 4
UseCRLF: false
UseTab: Never
...

44.ubuntu 配置命令提示符

Bash 命令提示符定制指南

可用的配置如下:

## PS1&PS2
## get current branch in git repo
function parse_git_branch() {
 BRANCH=`git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
 if [ ! "${BRANCH}" == "" ]
 then
  STAT=`parse_git_dirty`
  echo "[${BRANCH}${STAT}]"
 else
  echo ""
 fi
}

## get current status of git repo
function parse_git_dirty {
 status=`git status 2>&1 | tee`
 dirty=`echo -n "${status}" 2> /dev/null | grep "modified:" &> /dev/null; echo "$?"`
 untracked=`echo -n "${status}" 2> /dev/null | grep "Untracked files" &> /dev/null; echo "$?"`
 ahead=`echo -n "${status}" 2> /dev/null | grep "Your branch is ahead of" &> /dev/null; echo "$?"`
 newfile=`echo -n "${status}" 2> /dev/null | grep "new file:" &> /dev/null; echo "$?"`
 renamed=`echo -n "${status}" 2> /dev/null | grep "renamed:" &> /dev/null; echo "$?"`
 deleted=`echo -n "${status}" 2> /dev/null | grep "deleted:" &> /dev/null; echo "$?"`
 bits=''
 if [ "${renamed}" == "0" ]; then
  bits=">${bits}"
 fi
 if [ "${ahead}" == "0" ]; then
  bits="*${bits}"
 fi
 if [ "${newfile}" == "0" ]; then
  bits="+${bits}"
 fi
 if [ "${untracked}" == "0" ]; then
  bits="?${bits}"
 fi
 if [ "${deleted}" == "0" ]; then
  bits="x${bits}"
 fi
 if [ "${dirty}" == "0" ]; then
  bits="!${bits}"
 fi
 if [ ! "${bits}" == "" ]; then
  echo " ${bits}"
 else
  echo ""
 fi
}

## return
function get_return() {
    RETVAL=$?
    # Normal
    [ $RETVAL -eq 0 ] && echo -e "\033[32m▶ \033[0m"
    # Ctrl + C
    [ $RETVAL -eq 130 ] && echo -e "\033[32m▶ \033[0m"
    # Ctrl + Z
    [ $RETVAL -eq 148 ] && echo -e "\033[32m▶ \033[0m"

    # Error
    [ $RETVAL -ne 0 ] && [ $RETVAL -ne 130 ] && [ $RETVAL -ne 148 ] && echo -e "\033[31m✗ \033[0m"
}

export PS1="\`get_return\`\[\e[36m\][\W]\[\e[m\]\[\e[35m\]\`parse_git_branch\`\[\e[m\]\[\e[33m\]\\$\[\e[m\] "
export PS2="\[\e[32m\]>\[\e[m\] "

在新建一个~/.bashrc_ps1_ps2文件,然后填入上述内容;
在/.bashrc中,填入以下内容即可:

. ~/.bashrc_ps1_ps2

45.wsl2中安装kali

(1)打开微软商店安装kali
在这里插入图片描述

安装完毕后打开kali,可能会出现WslRegisterDistribution failed with error: 0x80004005错误
在PowerShell中执行wsl --update即可

(2)配置kali源

sed -i "s@http://http.kali.org/kali@https://mirrors.tuna.tsinghua.edu.cn/kali@g" /etc/apt/sources.list

(3)Install the dependencies

sudo apt update 
sudo apt install kali-win-kex

(4)open the GUI

  • 可能需要输入密码,输入即可
kex

(5)install burpsuit

  • built-in version:
sudo apt-get install -y burpsuite 

使用步骤如下:

下载 Zip 文件并解压。
使用 Sudo 执行 Kali_Linux_Setup.sh 文件,sudo ./Kali_Linux_Setup.sh

Burp Suite Pro 激活步骤
修改加载窗口中的许可证字符串 “license to Siddharth Sangwan”。
从加载窗口复制许可证密钥并粘贴到 Burp Suite Pro 中,然后点击下一步。
选择 Burp Suite Pro 右下方的手动激活选项。
从 BurpSuite_Pro 中复制许可证请求并粘贴到加载器中。
从加载器中复制许可证响应并粘贴到 Burp Suite Pro 中,然后点击下一步并完成。
现在 Burp Suite Pro 已为根用户激活,要重新启动它,只需在终端运行以下命令:sudo burp

结果展示:
在这里插入图片描述

启动

sudo burp

参考:

46.