Ubuntu 环境配置
Ubuntu 备份与恢复
VSCode 创建启动器
C++ 环境安装配置
1 sudo apt install g++ gdb make build-essential ninja-build zip vim screen
Java、maven3 环境配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 sudo apt install openjdk-16-jdk sudo yum install java-1.8.0-openjdk* -y java -version javac -version which javals -lrt /usr/bin/javals -lrt /etc/alternatives/javasudo vim /etc/profile export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-3.el8.x86_64export JRE_HOME=$JAVA_HOME /jreexport CLASSPATH=$JAVA_HOME /lib:$JRE_HOME /lib:$CLASSPATH export PATH=$JAVA_HOME /bin:$JRE_HOME /bin:$PATH export JAVA_HOME=/usr/lib/jvm/java-16.0.1-openjdk-amd64export PATH=$JAVA_HOME /bin:$PATH source /etc/profilesudo apt-get install maven wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz tar zxf apache-maven-3.9.9-bin.tar.gz mv apache-maven-3.9.9 maven3<mirrors> <mirror> <id >alimaven</id> <name>aliyun maven</name> <url>https://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> <profiles> <profile> <id >jdk-1.8</id> <activation> <activeByDefault>true </activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> </profiles> sudo vim /etc/profile export MAVEN_HOME=/home/frank/maven3export PATH=$PATH :$JAVA_HOME /bin:$MAVEN_HOME /binsource /etc/profile
配置 root 密码
中文包
1 2 sudo apt install language-pack-zh-hans sudo update-locale LANG=zh_CN.UTF-8
删除桌面回收站、用户文件图标
1 2 gsettings set org.gnome.shell.extensions.desktop-icons show-trash false gsettings set org.gnome.shell.extensions.desktop-icons show-home false
添加监视器 system monitor
1 2 sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor sudo apt-get install -y indicator-sysmonitor
sudo 不输入密码
1 2 3 4 sudo vim /etc/sudoers frank ALL=(ALL:ALL) NOPASSWD: ALL
软件安装
数据库
点击查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 sudo apt install mysql-server sudo apt install mysql-client sudo apt install libmysqlclient-dev sudo vim /etc/mysql/debian.cnf mysql -u debian-sys-maint -p flush privileges; alter user 'root' @'localhost' identified with caching_sha2_password by '123456frank' flush privileges quit service mysql restart
安装 deb 软件包
vim
1 2 sudo apt install gedit vim
主菜单编辑软件
1 2 sudo apt install alacarte
1 2 sudo apt install gnome-tweak-tool
copyQ
1 2 3 4 sudo add-apt-repository ppa:hluk/copyq sudo apt update sudo apt install copyq
indicator & stickynotes
1 2 3 4 sudo add-apt-repository ppa:umang/indicator-stickynotes sudo apt-get update sudo apt-get install indicator-stickynotes
jetbrains IDE
1 2 3 sudo snap install intellij-idea-ultimate --classic sudo snap install clion --classic
systemback
1 2 3 4 5 sudo sh -c 'echo "deb [arch=amd64] http://mirrors.bwbot.org/ stable main" > /etc/apt/sources.list.d/systemback. list' sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key 50B2C005A67B264F sudo apt-get update sudo apt-get install systemback
timeshift
1 sudo apt install timeshift
nvm, node
1 2 3 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash nvm install node
conda
1 2 3 4 5 6 wget -P /tmp https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh sudo gedit ~/.bashrc export PATH="/home/用户名/anaconda3/bin:$PATH " source ~/.bashrc
screen
管理会话,SSH 时断开连接也不中断进程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 sudo apt install screen screen -S <name> screen -r <name> Ctrl+A,Ctrl+D screen -ls Ctrl+D screen -S <name> -X quit
VirtualBox
1 2 sudo apt install virtualbox sudo apt install virtualbox-ext-pack
EasyConnect
EasyConnect 在 Ubuntu 20.04 以上因为依赖问题无法正常打开。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 sudo dpkg -i ./EasyConnect.deb dpkg -L easyconnect cd /usr/share/sangfor/EasyConnectsudo su ldd ./EasyConnect | grep pango cp ./* /usr/share/sangfor/EasyConnect
安装 VMware 17.5.2 虚拟机
1 2 3 4 5 6 7 8 9 10 11 12 13 14 sudo dpkg -i ./*.bundle sudo apt install gcc-12 git clone https://github.com/mkubecek/vmware-host-modules git checkout -t origin/workstation-17.5.1 sudo make sudo make install sudo /etc/init.d/vmware start
常用命令 / 解决方案
显示内存
screen
管理会话,SSH 时断开连接也不中断进程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 sudo apt install screen screen -S <name> screen -r <name> screen -D -r <session-id> Ctrl+A,Ctrl+D screen -ls Ctrl+D screen -S <name> -X quit
增加虚拟内存交换空间
未开启交换空间:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 sudo su free -h dd if =/dev/zero of=/swapfile bs=1G count=20chmod 600 swapfilemkswap swapfile swapon swapfile free -h swapon --show
已开启交换空间,重新修改 swap 大小:
1 2 3 4 5 6 7 8 9 10 11 12 free -h swapoff /swapfile fallocate -l 30G /swapfile chmod 600 swapfilemkswap swapfile swapon swapfile
动态库无法链接 cannot open shared object file
1 2 3 4 5 6 7 sudo vim /etc/ld.so.conf sudo ldconfig
挂载、卸载 img 镜像
使用 mount
、umount
命令。挂载 nsg_server.img
文件为例子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 fdisk ./NSG_SERVER.img mkdir /mnt/nsg_serversudo mount -o loop,offset=2097152 NSG_SERVER.img /mnt/nsg_server sudo umount /mnt/nsg_server
VirtualBox 挂载共享文件夹
在本地中创建共享的文件夹,我的共享文件夹为:/mnt/nsg_server/home/icecream
,想要挂载到虚拟机中的 /mnt/nsg_server
中。
本地电脑中设置共享文件夹路径(如上)以及共享文件夹名称 icecream
,注意不要勾选自动挂载 ,会出现权限问题;
虚拟机中:
1 2 3 4 5 6 7 8 9 10 11 12 13 sudo mkdir /mnt/nsg_server sudo mount -t vboxsf icecream /mnt/nsg_server/ sudo gedit /etc/sftab icecream /mnt/nsg_server/ vboxsf defaults 0 0
vim 操作
1 2 3 4 5 6 7 8 9 :set number dd :<num>d :<begin><end>d
img、vdi 格式转换
通过 VirtualBox 的 VBoxChange 工具进行转换
1 2 3 4 5 VBoxManage clonehd test.vdi test.img --format raw VBoxManage convertfromraw test.img test.vdi --format vdi
彻底删除 Snap
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 for p in $(snap list | awk '{print $1}' ); do sudo snap remove $p done sudo systemctl stop snapd sudo systemctl disable --now snapd.socket for m in /snap/core/*; do sudo umount $m done sudo apt autoremove --purge snapd rm -rf ~/snapsudo rm -rf /snap sudo rm -rf /var/snap sudo rm -rf /var/lib/snapd sudo rm -rf /var/cache/snapd
关闭 systemd-resolved
自启动且会占用 53 端口。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 sudo systemctl disable systemd-resolved sudo systemctl stop systemd-resolved sudo vim /etc/NetworkManager/NetworkManager.conf dns=default sudo unlink /etc/resolv.conf sudo touch /etc/resolv.conf sudo systemctl restart NetworkManager cat /etc/resolv.conf
重装网卡
重装网卡后还需要修改 DNS。
1 2 3 4 5 6 ifconfig -a sudo dhclient <nic_name> sudo ifconfig <nic_name>
设置 DNS
1 2 3 4 5 6 7 8 9 10 sudo vim /etc/systemd/resolved.conf systemctl restart systemd-resolved systemctl enable systemd-resolved mv /etc/resolv.conf /etc/resolv.conf.bakln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
网卡消失
问题:
解决方案:
1 2 3 4 5 sudo service NetworkManager stop sudo rm /var/lib/NetworkManager/NetworkManager.state sudo vi /etc/NetworkManager/NetworkManager.conf sudo service NetworkManager start
ip link show
命令可以查看所有网卡。
文件分割 sh 脚本
已知文件大小,利用 dd
命令
1 2 3 4 5 6 7 8 9 10 11 12 size=$(stat -c%s "/dataset/bigann/bigann_learn.bvecs" ) half=$((size / 2 )) dd if =filename of=part1.bvecs bs=1 count=$half dd if =filename of=part2.bvecs bs=1 skip=$half
sftp 大文件断点续传
1 2 3 4 5 6 7 8 9 10 11 sftp root@hust-server sftp> cd /root..... sftp> get -a nsg_100G.img sftp> put -a nsg_100G.img
将命令放至后台