跳转至

简单配置一台 Ubuntu 开发机

Linux 下 profile 和 bashrc 区别

  1. /etc/profile 用来设置系统环境参数,比如 $PATH. 这里面的环境变量是对系统内所有用户生效的。

  2. /etc/bashrc(Ubuntu 为 /ect/bash.bashrc )这个文件设置系统 bash shell 相关的东西,对系统内所有用户生效。只要用户运行 bash 命令,那么这里面的东西就在起作用。

  3. ~/.bash_profile 用来设置一些环境变量,功能和 /etc/profile 类似,但是这个是针对用户来设定的,也就是说,你在 /home/user/.bash_profile 中设定了环境变量,那么这个环境变量只针对 user 这个用户生效.

  4. ~/.bashrc 作用类似于 /etc/bashrc ,只是针对用户自己而言,不对其他用户生效。

另外 /etc/profile 中设定的变量(全局)的可以作用于任何用户,而 ~/.bashrc 等中设定的变量(局部)只能继承 /etc/profile 中的变量。

apt 源配置文件(以中科大源为例)

Bash
1
2
3
4
5
6
7
8
sudo vim /etc/apt/sources.list

#sources.list
deb http://mirrors.ustc.edu.cn/ubuntu/ focal main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal main universe restricted multiverse #Added by software-properties
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security restricted universe multiverse main
deb http://mirrors.ustc.edu.cn/ubuntu/ focal-updates restricted universe multiverse main
deb http://mirrors.ustc.edu.cn/ubuntu/ focal-backports restricted universe multiverse main

中科大镜像地址:https://mirrors.ustc.edu.cn/ubuntu/

LInux 垃圾清理常用命令

Bash
1
2
3
4
5
6
7
sudo apt autoremove
sudo apt autoclean
sudo apt clean

# 卸载
sudo apt-get remove #会删除软件包而保留软件的配置文件
sudo apt-get purge #会同时清除软件包和软件的配置文件

Linux C/C++ 开发环境配置

Bash
# Complier
sudo apt install build-essential
sudo apt install gcc
sudo apt install g++
sudo apt install gdb

### 以下为Qt开发所需环境 ###
# Qt5 推荐 https://download.qt.io/archive/qt/ 下载安装
sudo apt install qt5-default qtcreator 
# Qt5构建时 cannot find -lGL 错误
# 用locate查看libGL.so,找到目录/usr/lib/x86_64-linux-gnu/libGL.so.1.7.0
locate libGL.so
# 添加软链接
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1.7.0 /usr/lib/libGL.so

Linux Java 开发环境

https://www.oracle.com/java/technologies/javase-downloads.html

Bash
# 设置Java环境变量
sudo vim  ~/.bashrc  #/ect/bash.bashrc对所有用户生效

# 加入以下配置(修改对应路径)

# add Java env
export JAVA_HOME=/home/henry/jdk1.8.0_301
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH

# 保存
source ~/.bashrc

Docker

官方文档:https://docs.docker.com/engine/install/ubuntu/

此处完全根据官方文档操作,仅替换源为https://mirrors.ustc.edu.cn

Bash
# 更新apt包索引并安装包以允许apt通过 HTTPS 使用存储库:
sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# 添加Docker官方的GPG密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 设置稳定存储库
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 启动Docker
sudo systemctl enable docker
sudo systemctl start docker

# 建立Docker用户组,并将用户加入
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

# 测试
docker run hello-world

Node.js 换源

如果要进行 Web 前端开发,那么更换 Node.js 源是第一步:

查看当前源

Bash
npm config get registry

官方源

Bash
npm set registry https://registry.npmjs.org/ 

淘宝源

Bash
npm set registry https://registry.npm.taobao.org/ 

安装 mlocate(按需)

Bash
1
2
3
sudo apt install mlocate
# 更新索引
sudo updatedb

Arduino 开发板(按需)

涉及串口访问权限问题,按以下方法操作,否则无法烧录开发板

Bash
#root启动IDE,但VSCode无法使用(不安全也不推荐)
sudo arduino

更好的方法,适用于VSCode等

Bash
1
2
3
4
5
6
#将所用user添加到dialout用户组
sudo usermod -a -G dialout user_name

#  -G, --groups GROUPS           新的附加组列表 GROUPS
#  -a, --append GROUP            将用户追加至上边 -G 中提到的附加组中,
#                                并不从其它组中删除此用户

Linux Qt 程序打包1

下载linuxdeployqt,linuxdeployqt-x86_64.AppImage,下载地址:

https://github.com/probonopd/linuxdeployqt/releases

对于高版本的Ubuntu,按照https://www.bilibili.com/video/av884114337/编译。

Bash
sudo apt install patchelf

下载appimagetool:https://github.com/AppImage/AppImageKit

Bash
# 为了我们后面使用时方便一点,将appimage重命名:
sudo mv linuxdeployqt-7-x86_64.AppImage linuxdeployqt

#appimagetool也做同样的操作
sudo mv appimagetool-x86_64.AppImage appimagetool
sudo chmod 777 appimagetool
sudo mv appimagetool /usr/local/bin

# 修改为可执行权限
sudo chmod 777 linuxdeployqt

# 移动至/usr/local/bin目录,可以在其他目录访问
sudo mv linuxdeployqt /usr/local/bin
# 测试
linuxdeployqt --version
Bash
# 修改 .bashrc 文件
sudo vim ~/.bashrc 
# 在文件末尾追加以下内容
# add Qt env
export PATH=/home/henry/Qt5.14.2/5.14.2/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/henry/Qt5.14.2/5.14.2/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/henry/Qt5.14.2/5.14.2/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/henry/Qt5.14.2/5.14.2/gcc_64/qml:$QML2_IMPORT_PATH
# 最后source ~/.bashrc
source ~/.bashrc
Bash
1
2
3
4
5
6
7
# release后,将可执行文件放在目录下,在该目录执行
# QtMagicOASystem即为可执行文件名
linuxployqt QtMagicOASystem -appimage
# 如果成功,会在目录里生成lib等文件夹,并且产生AppRun,接着在desktop文件添加(可能被隐藏)
Categories=Application;
#成功后,开始构建AppImage文件,QtMagicOASystem即为存放打包完成后文件的目录
appimagetool ./QtMagicOASystem

Ubuntu & Windows 双系统时间差问题(按需)

Bash
1
2
3
4
#通过本地时间维护实时时钟
sudo timedatectl set-local-rtc 1
#恢复
sudo timedatectl set-local-rtc 0

Linux tlp 电源管理(可选)

安装

Bash
1
2
3
sudo add-apt-repository ppa:linrunner/tlp
sudo apt update
sudo apt install tlp

使用

Bash
1
2
3
4
5
6
sudo tlp start #启动/重启TLP 在第一次安装后,如果不想重启,就可以使用这个命令启动TLP
sudo tlp ac #开启交流电源模式(类似于windows中的性能模式) 相当于sudo tlp false
sudo tlp bat #开启电池模式(节能模式) 相当于 sudo tlp true
sudo tlp usb #将连接的USB设备空闲时自动挂起或关闭
sudo tlp bayoff #关闭MediaBay或Ultrabay中的光盘驱动器
tlp diskid #查看磁盘的id型号  其他是thinkpads only, 所有具体man tlp

查看tlp信息

Bash
sudo tlp-stat

使用以下命令检查TLP是否已启用并处于活动状态:

Bash
tlp-stat -s

grub 主题(可选)

下载:https://www.gnome-look.org/browse/,放在合适的位置,如EFI分区

编辑文件:sudo vim /etc/default/grub添加

Bash
GRUB_THEME="具体主题路径/theme.txt"

如果是gpt分区,以uefi启动方式启动的话,启动时读取的文件是/boot/efi/EFI/fedora/grub.cfg ,这个时候更新时需更新这个文件

Bash
sudo grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg

如果是一般的启动方式,启动时读取的文件是/boot/grub2/grub.cfg,这个时候更新时需更新这个文件

Bash
sudo grub-mkconfig -o /boot/grub/grub.cfg

DSL 拨号链接(按需)

在/usr/bin目录下

Bash
sudo ./nm-connection-editor

Ubuntu 安装微信(已过时)

Bash
1
2
3
4
5
6
7
8
9
wget -O- https://deepin-wine.i-m.dev/setup.sh | sh
sudo apt-get install com.qq.weixin.deepin

# 微信查看图片依赖
sudo apt-get install libjpeg62-dev:i386

# 托盘微信图标
sudo apt-get install gnome-shell-extension-top-icons-plus gnome-tweaks
# 注销重新登录后在tweak工具中启用对应插件
应用 包名
微信 com.qq.weixin.deepin
QQ com.qq.im.deepin
TIM com.qq.office.deepin
钉钉 com.dingtalk.deepin
阿里旺旺 com.taobao.wangwang.deepin
QQ音乐 com.qq.music.deepin
QQ视频 com.qq.video.deepin
爱奇艺 com.iqiyi.deepin
Bash
# 清理应用运行时目录

# 例如QQ/TIM会把帐号配置、聊天文件等保存~/Documents/Tencent Files目录下,而微信是~/Documents/WeChat Files,删除这些文件夹以移除帐号配置等数据。

# 清理wine容器

# deepin-wine应用第一次启动后会在~/.deepinwine/目录下生成一个文件夹(名字各不相同)用于存储wine容器(可以理解我一个“Windows虚拟机”),如果使用出了问题,可以试试删除这个目录下对应的子文件夹。

# 卸载软件包

# 执行命令把你安装过的包给移除。
sudo apt-get purge --autoremove <包名>

# 移除软件仓库
sudo rm /etc/apt/preferences.d/deepin-wine.i-m.dev.pref \
        /etc/apt/sources.list.d/deepin-wine.i-m.dev.list \
        /etc/profile.d/deepin-wine.i-m.dev.sh
sudo apt-get update

fcitx 输入法更换皮肤(可选)

皮肤文件目录

Bash
/usr/share/fcitx/skin/

然后在fcitx输入法配置中点击外观,并勾选显示高级选项,将皮肤名称替换为自己的即可。

推荐rime输入法:https://rime.im/


  1. https://blog.csdn.net/qq_43081702/article/details/115668609