admin 管理员组文章数量: 887016
文章目录
- 1.创建一个新的普通用户
- 2.给用户授权
- 3.删除用户
- 4.新增用户添加至ubuntu的sudors文件中
- 5.提高ubuntu下访问github的速度
- 5.1 vscode在线打开github
- 6.配置ubuntu国内镜像下载源的方法
- 6.1 如果ping mirrors.tuna.tsinghua.edu无法ping通
- 7.ubuntu包的安装方法
- 问题:Package python3 is not configured yet或者 Package ** is not configured yet或者Errors were encountered while processing
- 8.Ubuntu中将默认的dash改为bash
- 9.pip很慢
- 10. wsl2安装openssh-server
- 11.wsl2安装docker
- 12.wsl2将默认的NAT方式配置成网桥模式
- 13.谷歌浏览器商店打不开怎么办?
- 14.wsl增加组播路由
- 15.Python默认查找包的环境
- 16.vscode使用wsl插件出现的问题
- 17.WSL2很卡
- 18.vscode常用插件小结
- 19.vim 整合插件
- 20.curl直接下载github release文件
- 21 git submodule问题
- 22 ubuntu支持交叉编译
- 23.Ubuntu 查看cpu个数及核心数
- 23.如何在ubuntu22.04版本上安装libssl1.1?
- 24.boost手册及安装
- 25.WSL2端口映射
- 26.Ubuntu 22.04 Minikube安装配置
- 27.ubuntu 22.04 安装kubectl
- 28.ubuntu22.04安装kOps
- 29.在线生成asicc字符画网站
- 30.连接dl.google超时的问题
- 31.clang-tid静态检查工具
- 32.起变量名网站CODELF
- 33.wsl2中pip很慢
- 34.Windows10或者Windows11主机无法PING通的解决方法
- 35. Key is stored in legacy trusted.gpg
- 36.wget --no-check-certificate 问题解决
- 40.Windows设置暗黑主题方案
- 41.pdf翻译
- 42.ubuntu20.04 install/uninstall gcc11
- 43.clang-format配置
- 44.ubuntu 配置命令提示符
- 45.wsl2中安装kali
- 46.WSL2 install plantuml.jar
- 47. The repository 'http://mirrors.kernel/ubuntu hirsute Release' does not have a Release file
- 48.ubuntu 界面使用gparted进行扩容
- 49.docker hub镜像
- 50. 构建支持多种 CPU 架构的 Docker 镜像
- 在amd64的docker上运行arm64的镜像
- 51.gcc/clang/android-ndk docker镜像编译环境
- 52.ubuntu22.04 安装高版本cmake
- 53.Ubuntu linux下git命令无法自动补齐问题
- 54.
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
- 参考:如何将visudo编辑器从nano更改为vim
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命令,并且在执行的时候不输入密码.
参考:
- 关于Ubuntu下is not in the sudoers file解决方法
- wsl ubuntu 取消sudo密码:
5.提高ubuntu下访问github的速度
ubuntu下使用github很慢的解决办法1:
-
提高ubuntu下访问github的速度
-
注意:因为上述修改了wsl的host,若想在wsl中持久化生效,需要修改windows的host文件以永久保存到WSL中
ubuntu下使用github很慢的解决办法2:
- Ubuntu20.04 、windows10 解决无法ping通github的问题(亲测有效,避免入坑)
ubuntu下使用github很慢的解决办法3:
- github下载代理
在windows store安装免费github加速器:watt tookit
- powertoys工具:如果无法删除文件,可以下这个工具,同样来自windows store。操作方法:右键点击删除的文件,选中file locksmith
5.1 vscode在线打开github
vscode在线打开github-非句号方式
vscode在线打开github-句号方式
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无法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
- 按照先修改/etc/wsl.conf。然后再修改 /etc/resolv.conf文件的流程操作即可
- ref:Make /etc/resolv.conf changes permanent in WSL 2,WSL2 Ubuntu20.04 /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
默认下载包的位置:
- ref:ubuntu软件默认安装位置
下载的软件存放位置
/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
- ref:ubuntu完全卸载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包到指定目录
- ref:ubuntu中apt-get的默认安装路径、安装、卸载以及查看等方法总结
8.Ubuntu中将默认的dash改为bash
sudo dpkg-reconfigure dash Enter
9.pip很慢
- ref:
pip安装使用清华源
解决Ubuntu pip install下载慢的问题,其中pip配置文件需要对应进行修改
配置pip源
(1)pip config set global.index-url https://mirrors.huaweicloud/repository/pypi/simple
/home/wangji/.config/pip/pip.conf
wangji:是你自己的用户哦
(2)使用vi pip.conf命令打开pip.conf文件,写入如下内容:
[global]
index-url = http://mirrors.myhuaweicloud/pypi/web/simple
format = columns
[install]
trusted-host=mirrors.myhuaweicloud
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/gitpython-developers/GitPython
Author: Sebastian Thiel, Michael Trier
Author-email: byronimo@gmail, mtrier@gmail
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/gitpython-developers/GitPython
Author: Sebastian Thiel, Michael Trier
Author-email: byronimo@gmail, mtrier@gmail
License: BSD
Location: /usr/local/lib/python3.8/dist-packages
Requires: gitdb
Required-by:
10. wsl2安装openssh-server
- ref:wsl中安装openssh-server:会出现安装openssh-server报Depends: openssh-client (= 1:6.6p1-2ubuntu2.8)错误
启动:
不能使用(直接使用就会报错):
sudo systemctl start sshd
得通过:
sudo /etc/init.d/ssh start
由于WSL2默认使用NAT的方式,所以需要开启端口转发,这样其他主机就可以ssh进来了
参考去设置wsl2的端口转发:wsl2 设置端口映射,以及修改windows防火墙(进和出的规则),别人就可以访问了
11.wsl2安装docker
ubuntu:
- ref:记一次Ubuntu19无法安装docker源
curl -fsSL https://download.docker/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker/linux/ubuntu/ $(lsb_release -cs) stable"
或者 vim /etc/apt/sources.list中增加:
deb [arch=amd64] https://download.docker/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组
- ref:Docker权限 “Got permission denied while trying to connect to the Docker daemon socket at unix:///var/”
防火墙问题:
/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
-
ref:Docker in WSL2 failed to start daemon: Error initializing network controller
-
ref:Docker hub使用国内镜像源:最新Docker hub 国内镜像方法
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://4sjn347i.mirror.aliyuncs",
"https://docker.mirrors.ustc.edu"
],
"max-concurrent-downloads": 10,
"insecure-registries": [],
"debug": true,
"experimental": false,
"features": {
"buildkit": true
}
}
接着重启docker即可
重要!!!!
- Docker Hub 镜像加速器
⚠️⚠️⚠️ 自 2024-06-06 开始,国内的 Docker Hub 镜像加速器相继停止服务,可选择为 Docker daemon 配置代理或自建镜像加速服务。
12.wsl2将默认的NAT方式配置成网桥模式
条件:
- 只有:win10专业版支持
- ref:wsl关闭或者启用NAT或者桥接模式网络
WSL系列内容:wsl2 通过桥接网络实现被外部局域网主机直接访问(更新一键执行powershell脚本)
13.谷歌浏览器商店打不开怎么办?
如何在国内,下载Chrome应用商店中的插件
14.wsl增加组播路由
-
ref:ubuntu增加组播路由
-
参考:为Ubuntu系统添加新的普通用户,Ubuntu系统sudo不需要密码设置,使用Apt命令查找软件包– Ubuntu
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/commit:${commit_id}/server-linux-x64/stable
curl -sSL "https://update.code.visualstudio/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 错误问题解决
- ref:wsl导致vmmem占用高解决办法
19.vim 整合插件
vimrc
- 教程:Vim命令全解
(1)vim搜索设置高亮
- ref: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查看这个函数被谁引用了
- ref:wsl vim无法复制到系统剪贴板,解决方法,WSL2环境下VIM的clipboard解决方案
20.curl直接下载github release文件
方法1:
curl -LsO https://github/archibate/vimrc/releases/vimrc-install.sh
# -L 参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
# -s 是silent,就是不输出详细过程
# -O 把输出写到该文件中,保留远程文件的文件名
方法2:
git clone git@github:archibate/vimrc.git
注释掉./vimrc/.vim/install.sh文件中的set -e
./vimrc/.vim/install.sh
21 git submodule问题
submodule
22 ubuntu支持交叉编译
- ref:Linux环境中安装指定版本的gcc-aarch64-linux-gnu、gcc-arm-linux-gnueabi工具包
会在你的环境中安装一个默认适配你环境的较新版本
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 设置端口映射
- ref:How can I install vscode-server in linux offline [duplicate]
26.Ubuntu 22.04 Minikube安装配置
Ubuntu 22.04 Minikube安装配置,Minikube-ubuntu系统安装minikube,minikube配置,–registry-mirror=https://registry.docker-cn
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-hangzhou.aliyuncs/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/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超时的问题
解决Android studio 连接 dl.google超时的问题
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/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>
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>
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>
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>
/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>
选择出现告警的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:
- Fixing “Key is stored in legacy trusted.gpg keyring” Issue in Ubuntu
36.wget --no-check-certificate 问题解决
添加 --no-check-certificate
使用.wgetrc 文件(以后都就可以了)
echo "check_certificate = off" >> ~/.wgetrc
ref:
- wget --no-check-certificate 问题解决
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
- How to install GCC 11 on Ubuntu
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/kali@https://mirrors.tuna.tsinghua.edu/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
- free profession version(for Linux version, WIndows版本也支持)
- ZIP压缩包,或者从Pentesting Club下载也可以
使用步骤如下:
下载 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
参考:
- Install kali linux on wsl2
- How do i fix the error “WslRegisterDistribution failed with error: 0x80004005” which comes when I try to install kali linux?
- Kali 软件仓库
- Burp-Suite-Pro
46.WSL2 install plantuml.jar
下载jar包:
放在~/.java/下面:
▶ [test]$
▶ [test]$ ll ~/.java/
total 9540
drwxr-xr-x 4 wangji wangji 4096 Mar 18 13:55 ./
drwxrwxr-x 71 wangji wangji 4096 Mar 18 13:58 ../
drwx------ 3 wangji wangji 4096 Nov 15 2022 .userPrefs/
drwxr-xr-x 5 wangji wangji 4096 Mar 18 13:51 fonts/
-rwxr-xr-x 1 wangji wangji 9749978 Mar 18 13:59 plantuml.jar*
▶ [test]$
vscode 的preview enhance中配置plantuml.jar包的绝对路径:
参考:
- PlantUML Downloads and Source Code
47. The repository ‘http://mirrors.kernel/ubuntu hirsute Release’ does not have a Release file
执行sudo apt-get update -y,出现以下的结果:
E: The repository 'http://mirrors.kernel/ubuntu hirsute Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details
解决办法:
sudo vim /etc/apt/sources.list
在出问题的deb后面增加[trusted=yes]
参考:
- “Repository does not have a release file” error [closed]
48.ubuntu 界面使用gparted进行扩容
参考:
- ubuntu图形化界面根目录简单快速扩容
49.docker hub镜像
- 最新Docker hub 国内镜像方法
位置:/etc/docker/daemon.json
{
"registry-mirrors": [
"https://4sjn347i.mirror.aliyuncs",
"https://docker.mirrors.ustc.edu"
],
"max-concurrent-downloads": 10,
"insecure-registries": [],
"debug": true,
"experimental": false,
"features": {
"buildkit": true
}
}
很多镜像已经无法从docker hub拉取了。国内的镜像仓库很多也被迫关闭了。新方法可以参考:pull docker镜像
50. 构建支持多种 CPU 架构的 Docker 镜像
Docker Buildx 是 Docker CLI 的一个插件,它是默认 Docker Build 命令的拓展,完全支持 Moby BuildKit 构建器的特性并提供与 Docker Build 一致的体验,它带来的新特性之一就是支持构建多架构镜像。
参考:
- 构建支持多种 CPU 架构的 Docker 镜像
- docker 使用QEMU,构建多平台镜像;docker buildx
- tonistiigi/binfmt 是一使用 Docker 镜像分发的跨平台仿真模拟器集合
- tonistiigi/binfmt github
Pick specific emulators:
# 安装所有 CPU 架构模拟器
sudo docker run --privileged --rm tonistiigi/binfmt --install all
# 安装指定 CPU 架构模拟器
sudo docker run --privileged --rm tonistiigi/binfmt --install arm64,riscv64,arm
# ls /proc/sys/fs/binfmt_misc/qemu-*
/proc/sys/fs/binfmt_misc/qemu-aarch64
# 创建一个名称为 multiarch 的 buildx 构建实例并立即使用
sudo docker buildx create --name multiarch --use
# 列出所有的 buildx 构建实例状态,可以看到这个新的 buildx 构建实例还未启动
sudo docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
multiarch * docker-container
multiarch0 unix:///var/run/docker.sock inactive
default docker
default default running 20.10.22 linux/arm64, linux/arm/v7, linux/arm/v6, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386
# 我们可以立即启动这个构建实例(不是必须的)
sudo docker buildx inspect --bootstrap
Name: multiarch
Driver: docker-container
Nodes:
Name: multiarch0
Endpoint: unix:///var/run/docker.sock
Status: running
Buildkit: v0.11.0
Platforms: linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
# 再次查看所有 buildx 构建实例状态,可以看到已经在运行了
sudo docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
multiarch * docker-container
multiarch0 unix:///var/run/docker.sock running v0.11.0 linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
default docker
default default running 20.10.22 linux/arm64, linux/arm/v7, linux/arm/v6, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386
打镜像并推送
# qiangge80800880 是我的用户名,镜像打完,并推送到docker hub
[root@]# docker buildx build --platform linux/arm64,linux/amd64 -t qiangge80800880/ubuntu-arm-test:v1 . --push
清理
# 镜像构建并推送完成后,如果没有特殊需求,可以删除构建缓存
# 查看 buildx 构建缓存
sudo docker buildx du
ID RECLAIMABLE SIZE LAST ACCESSED
no7ihggdz0dg9w916xfqdgpo4* true 1.649GB 19 hours ago
zfsooeun4nk9wuuhzkbs13bvg* true 1.631GB 19 hours ago
17luobonj5ah02zvbvvjemxhr true 981.7MB 19 hours ago
...
9kdh9ldirubp6ulj6h5anjsrn* true 8.192kB 19 hours ago
Reclaimable: 14.79GB
Total: 14.79GB
# 删除 buildx 构建缓存
sudo docker buildx prune
# 删除 buildx 实例
sudo docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
multiarch * docker-container
multiarch0 unix:///var/run/docker.sock running v0.11.0 linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
default docker
default default running 20.10.22 linux/arm64, linux/arm/v7, linux/arm/v6, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386
# 停止 buildx 实例
sudo docker buildx stop multiarch
# 删除 buildx 实例
sudo docker buildx rm multiarch
注意:Dockerfile 中的基础镜像不支持某些特定的 CPU 架构、某些项目缺少特定的的链接库
在amd64的docker上运行arm64的镜像
直接拉取arm64版本的镜像,就可以执行拉!!
#拉取镜像:
bash -c "$(curl -sSLf https://xy.ggbond/xy/docker_pull.sh)" -s tonistiigi/binfmt
bash -c "$(curl -sSLf https://xy.ggbond/xy/docker_pull.sh)" -s arm64v8/ubuntu
docker run --privileged --rm tonistiigi/binfmt --install arm64
docker run -it --rm arm64v8/ubuntu bash -l
其他方法:
- 在x86/amd64的机器上使用Docker运行arm64v8/ubuntu并安装ROS1
#拉取镜像:
sudo docker pull arm64v8/ubuntu:20.04
#或者
bash -c "$(curl -sSLf https://xy.ggbond/xy/docker_pull.sh)" -s arm64v8/ubuntu:20.04
# 为了在 AMD64 主机上运行 ARM64 容器,你需要安装 QEMU 并注册 binfmt 支持。以下是详细步骤:
# 安装 QEMU 用户模式仿真器:
sudo apt-get update
sudo apt-get install -y qemu-user-static
#注册 binfmt:
#Docker 提供了一个方便的镜像来注册 binfmt,可以使用以下命令:
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
# 验证 QEMU 是否正确安装
docker run --rm --privileged multiarch/qemu-user-static:register --reset
# 运行 ARM64 容器
sudo docker run --platform linux/arm64 -it arm64v8/ubuntu:20.04
51.gcc/clang/android-ndk docker镜像编译环境
location
52.ubuntu22.04 安装高版本cmake
参考:
- How To Install CMake 3.22 Ubuntu 22.04
sudo apt update
sudo apt install build-essential
sudo apt install libssl-dev
export OPENSSL_ROOT_DIR=/usr/include/openssl
wget https://cmake/files/v3.29/cmake-3.29.2.tar.gz
tar -xzvf cmake-3.29.2.tar.gz
cd cmake-3.29.2
./bootstrap
make -j$(nproc)
sudo make install
# Update PATH Environment Variable
which cmake
/usr/local/bin/cmake
export PATH=/usr/local/bin/cmake:$PATH
source ~/.bashrc
cmake --version
53.Ubuntu linux下git命令无法自动补齐问题
参考
- Ubuntu linux下git命令无法自动补齐问题
apt-get install bash-completion
#编辑~/.bashrc 文件
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
54.
版权声明:本文标题:为Ubuntu系统添加新的普通用户 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726333529h938989.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论