# 记录双系统装好 ubuntu 之后做了什么
虚拟机没有灵魂?还是虚拟机香 qwq
咕咕好久之后最终还是换成了虚拟机(逃)
打算一点一点地把工作环境迁移到 linux 上,在此记录过程,Ubuntu20.04。
纯 linux 萌新,对 linux 的了解仅限于搭过 mc 服务器的程度,欢迎围观咱蠢蠢的操作,嘤~
# 换源
网上搜换源出来一堆看不懂的命令 QAQ
好像在 软件和更新
这个应用程序里直接找就好了,听说 utsc 挺快的。
# 更换浏览器
老 chrome 用户,可能用久了 chrome 就不太习惯 firefox 之类的了。
拿到 chrome 的安装包,好像是 .deb
结尾的,cd 到那个位置就好了诶
sudo apt install google-chrome***.deb |
之后的设定还挺智能的样子(不用担心东西被装到 C 盘真舒服 owo)
大概知道了这些东西:
.deb
是某种安装包的样子,惊奇地发现 apt 还可以安装离线包(傻~)
# 体验感优化
# 屏幕缩放问题
轻薄本小屏幕看着字太小好难受,想办法先放大一点叭 (>_<)
sudo apt install gnome-tweaks |
之后就是有图形界面的一些设定了,功能好丰富的样子 QwQ
大概知道了这些东西:
apt 是个包管理器,之前用过 npm 感觉;比较类似..?
sudo
是在最高权限下执行指令,用 su
直接切换到管理员模式。
# 输入法
ubuntu 自带的输入法 shigeshabiba)
先打开设置 -> 管理已安装的语言 -> 键盘输入法系统 换成 fcitx
丢一个搜狗输入法的的官方教程
sudo apt install ./sogou*** | |
fcitx-config-gtk3 | |
# 设置输入法首选之类的,没有就重启 |
顺带切换输入法可以用 ctrl
+ space
。
# 主题美化
# 科学
没有科学还怎么网上冲浪 qwq
试来试去找到最舒服的一篇教程: Linux 下安装 & 配置 Clash 以实现代理上网
# 安装 clash
Github 地址 一般是下载 clash-linux-amd64.tar.gz
su | |
gunzip ***.gz | |
chmod +x clash*** | |
./clash*** |
会自动在 ~/.config/clash/config.yaml
中生成 config.yaml
文件。
导入配置:
cd ~/.config/clash/ | |
curl [订阅连接] >> config.yaml #替换掉原来的文件 | |
#另一种姿势 | |
wget -P ~/.config/clash/ -O config.yaml [订阅链接] |
打开系统设置 -> 网络 -> 网络代理,改为手动:
HTTP代理 127.0.0.1 7890 | |
HTTPS代理 127.0.0.1 7890 | |
FTP代理 空 | |
Socks主机 127.0.0.1 7891 | |
忽略主机 localhost,127.0.0.0/8,::1 |
再运行 clash,访问 https://clash.razord.top/,测试连接即可。
# 配置开机启动与自动更新订阅
开机启动:
习惯性地把 clash 的二进制文件移动到 /opt/clash/
目录下并重命名为 clash
:
mv ./clash*** /opt/clash/clash |
创建 service 文件:
vim /etc/systemd/system/clash.service | |
# 写入以下内容 | |
[Unit] | |
Description=clash daemon | |
[Service] | |
Type=simple | |
User=root | |
ExecStart=/opt/clash/clash -d /opt/clash/ | |
Restart=on-failure | |
[Install] | |
WantedBy=multi-user.target |
systemctl daemon-reload #重新加载 systemctl deamon | |
systemctl start clash.sevice #启动 clash | |
systemctl enable clash.service #开机启动 |
重启测试没什么问题。
自动更新订阅:
利用 cron 执行计划任务:
crontab -e | |
#写入以下内容,前面的时间是 分 时 | |
29 21 * * * pgrep clash | xargs kill -s 9 | |
30 21 * * * mv ~/.config/clash/config.yaml ~/.config/clash/configbackup.yaml | |
31 21 * * * wget -P ~/.config/clash/ -O config.yaml [订阅链接] | |
32 21 * * * nohup /opt/clash/clash -d /opt/clash/ |
systemctl restart crond.service #重启 crontab,有的地方也叫 cron.service |
大概知道了这些东西:
~
大概是当前用户的根目录,里面有好多配置文件 qwq
systemd(不懂 QAQ),总之好像可以用来做很多东西。
crontab 可以用来配置定时任务。
# 网易云等 QT 应用缩放问题
有 linux 版就很舒服,安装之后遇到了些小问题... 非常小的那种.. 指字体非常小(躺)
搜到了这个:
Linux 下的高分屏在 Gnome、KDE 中有缩放因子一说,但是对 QT 程序(常用如 WPS、网易云音乐等)无效,这里只是简记修改 QT 程序的缩放方法。
解决方法:
vim /etc/profile | |
#在最后添加,测试一波感觉 2.25 倍看上去还算正常的样子 qwq | |
export QT_SCALE_FACTOR=2.25 | |
#不用 vim 的另一种姿势 | |
echo "export QT_SCALE_FACTOR=2.25" >> /etc/profile | |
#保存退出注销重新登录 |
看起来大小正常了 qwq
UPD: 搜狗输入法变得异常大。。这样全局作用于 QT 应用似乎不太好 emm
可以在.desktop 里设置变量
sudo vim /usr/share/applications/netease-cloud-music.desktop #一般都是这个路径 | |
#在里面找到 Exec=*** 一行,等号后面加上这些 | |
Exec=env QT_SCALE_FACTOR=2.25 ***#后面内容不变 |
保存,把 /etc/profile
里的东西改回去,看上去 ok
# 配置 Github 免密 SSH 连接
基本根 Windows 一样叭,但是弄了两次,因为 root 跟普通用户好像不在一个地方存 SSH-Key
#配置本地用户信息 | |
git config --global user.name "your nickName“ | |
git config --global user.email "your email" | |
#生成公钥 | |
ssh-keygen -t rsa | |
#查看公钥,这里不同用户好像要重新弄一边 | |
cat ~/.ssh/id_rsa.pub |
之后在 Github 的 Setting 里边添加这个公钥就好啦 QwQ
# 使用 nvm 安装管理多版本 nodejs
菜鸟教程
# 安装与配置 nvm
Github 仓库地址:https://github.com/nvm-sh/nvm
按仓库的步骤来就好了唔:
cd ~/ | |
git clone https://github.com/nvm-sh/nvm.git .nvm | |
vim ~/.bashrc | |
#添加环境变量 | |
export NVM_DIR="$HOME/.nvm" | |
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm | |
#保存退出,重载环境变量 | |
source ~/.bashrc | |
nvm -v #就好像没什么问题了 |
# 管理 node 版本
常用命令:
nvm list #查看已安装版本 | |
nvm ls-remote --lts #查看远程 lts 版本 | |
nvm install 12.21 #安装 v12.21 的 node | |
nvm use 12.21 #激活版本 |
# 安装多版本 mysql
# 单版本安装配置
先装一个 8.0 版本:
sudo apt update | |
sudo apt install mysql-server | |
sudo systemctl status mysql #查看服务是否在运行 | |
sudo mysql #竟然可以不输密码直接进 qwq |
查看初始随机账户密码:
sudo cat /etc/mysql/debian.cnf |
还是改个 root 密码叭:
MySql 从 8.0 开始修改密码有了变化,在 user 表加了字段 authentication_string,修改密码前先检查 authentication_string 是否为空。
所以网上搜到的 set authentication_string
大概会报错 qwq
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
之后 mysql -uroot -p
就可以登录了的样子。
# minio 安装并设为服务启动
为什么是 minio?因为项目要用 QAQ
MinIO 安装并将 MinIO 设置成服务启动
# 安装启动 minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio #拿到一个二进制文件 | |
su | |
chmod +x minio | |
mv minio /usr/local/bin | |
mkdir -p /data/minio | |
/usr/local/bin | |
./minio server /data/minio #后面的路径是数据目录 |
# 将 minio 设置为服务
#原文新建了一个 minio-user 用户,这边直接拿 root 会不会出事呀 qwq | |
sudo vim /etc/default/minio | |
#新建文件并写入以下内容(记得改成自己的用户名密码) | |
MINIO_ACCESS_KEY="minioadmin" | |
MINIO_SECRET_KEY="minioadmin" | |
MINIO_VOLUMES="/data/minio/" | |
MINIO_OPTS="--address :9000" | |
sudo vim /etc/systemd/system/minio.service | |
#新建文件并写入以下内容 | |
[Unit] | |
Description=Minio | |
Documentation=https://docs.minio.io | |
Wants=network-online.target | |
After=network-online.target | |
AssertFileIsExecutable=/usr/local/bin/minio | |
[Service] | |
WorkingDirectory=/usr/local/ | |
User=root | |
Group=root | |
PermissionsStartOnly=true | |
EnvironmentFile=-/etc/default/minio | |
ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"" | |
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES | |
StandardOutput=journal | |
StandardError=inherit | |
# Specifies the maximum file descriptor number that can be opened by this process | |
LimitNOFILE=65536 | |
# Disable timeout logic and wait until process is stopped | |
TimeoutStopSec=0 | |
# SIGTERM signal is used to stop Minio | |
KillSignal=SIGTERM | |
SendSIGKILL=no | |
SuccessExitStatus=0 | |
[Install] | |
WantedBy=multi-user.target |
# 启动测试
systemctl enable minio.service | |
systemctl daemon-reload | |
systemctl start minio | |
systemctl status minio.service | |
systemctl stop minio |
# 集成开发环境安装配置
# vscode
# 安装
这个直接去官网下载 deb 包,然后 apt install code***
就好了诶。
https://code.visualstudio.com/Download
或者直接装:
sudo apt update | |
sudo apt install code |
# 配置 C++ 编译调试
sudo apt install gcc | |
sudo apt install g++ | |
sudo apt install gdb |
安装 C/C++ 插件
开个文件夹,写一个 Hello World
此处 include 出红色波浪线看这个:如何解决 vscode 检测到 #include 错误,请更新 includePath。
进终端输入
gcc -v -E -x c -
,把这里这几条路径复制出来:#include <...> search starts here: 复制下面这几条
/usr/lib/gcc/x86_64-linux-gnu/9/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
进 vscode,
ctrl + shift + p
,搜c/c++:Edit Configurations(JSON)
在
configurations.includePath
数组里添加上面的几条路径,重启 vsc。
.vscode
文件夹新建两个文件粘进去:tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "compile",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
使用
ctrl + shift + b
进行编译。launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"preLaunchTask": "compile",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
使用
F5
进行调试。
# 以 root 启动 vscode 以收拾各种插件
# IDEA
# 安装
下载对应版本压缩包:https://www.jetbrains.com/idea/download/#section=linux
su | |
mkdir /opt/idea | |
cp idea***.tar.gz /opt/idea/ | |
cd /opt/idea/ | |
tar -zxvf idea***.tar.gz | |
rm idea***.tar.gz | |
cd ./idea***/bin/ | |
#这里最好切换回非 root 用户 qwq | |
./idea.sh #以后都是用这个来启动 |
# 创建快捷方式
直接在应用内 tools 选项下创建快捷方式,不用新建 .desktop
文件。
# 安装配置 jdk
sudo apt install openjdk-11-jre-headless | |
# 默认装在 /usr/lib/jvm 下 | |
sudo vim /etc/profie | |
# 添加以下内容 | |
export JAVA_HOME=/usr/bin/jvm/java-11-openjdk-amd64 | |
export JRE_HOME=${JAVA_HOME}/jre | |
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib | |
export PATH=${JAVA_HOME}/bin:$PATH | |
# 执行以下内容立即生效 | |
source /etc/profile |