惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Y
Y Combinator Blog
M
MIT News - Artificial intelligence
The Cloudflare Blog
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 司徒正美
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
C
Check Point Blog
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
V
V2EX
F
Fortinet All Blogs
B
Blog
大猫的无限游戏
大猫的无限游戏
N
Netflix TechBlog - Medium
B
Blog RSS Feed
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

Razeen`s Blog

Let's Encrypt 推出 Gen Y 根证书架构:揭示 Web PKI 的五大未来趋势 通过 Wi-Fi 自动备份你的 iPhone 到 Nas 管理培训感悟:从技术视角看管理之路 UPS 一拖多:保护你的 NAS 和 Linux 服务器 从影音中心到 AI 助手:我的50款 Homelab 服务清单 从SSL证书有效期将缩短到47天聊开去 部署一个自己的 Running Page 谈谈特斯拉 Model Y 用车一年的感受和费用分析 弃用 Disqus 评论,使用自建 Waline 使用 Prometheus 和 Grafana 搭建你的证书监控面板 服务器迁移记:一次磁盘换板引发的Linux分区与挂载的学习 改善信息来源, 利用 RSS 高效获取资讯 (RSShub + Reeder5 + WeWe RSS) 多种 Docker 镜像拉取解决方案与实践 App分享 | AppCleaner - Mac上的卸载神器 Azure OpenAI API 申请和使用 如何开通 OneKey 虚拟信用卡,并充值消费 如何拥有一个可长期在国内使用的国外手机号码 分享开通 ChatGPT Plus 过程 如何开通 Depay 虚拟信用卡,并充值消费 如何开通欧易Web3钱包, 交易入账 如何5分钟内1块钱注册 ChatGPT 如何注册美区的 Apple ID (2023年/无需科学上网) NAS折腾记(11): NASTool3.0体验和降级 NAS折腾记(10): Docker版本的NASTool配置 NAS折腾记(9): NASTool与微信交互,微信发送消息远程下载电影【多图】 NAS折腾记(8):群晖安装 NASTool 实现影音半自动化【多图】 内网穿透(2):Tailscale 组网实现内网穿透,操作简单,无成本 内网穿透(1):总结了11中内网穿透的方式,总有一种适合你 NAS折腾记(7):从零开始设置(黑)群晖系统 NAS折腾记(6):黑群晖系统安装好后怎么洗白?
折腾 Ubuntu 20.04 LTS 开发环境
2020-08-28 · via Razeen`s Blog

前段时间买了个 Inter NUC (NUC10i5FNH6), 主要用来在家里搬砖。体验了一段时间 win10, 虽然配置了 WSL2, 但开发体验实在糟糕,在考虑过 Ubuntu 和黑苹果后,还是选择了 Ubuntu, 毕竟用习惯了白苹果,突然用个黑苹果,不能随意升级,还有接一个 USB WiFi ,还担心驱动问题。。。

NUC 用了一段时间,还是有点卡,CPU跟不上。 最后还是组装了一台台式主机,将原来的系统盘查上去直接就可使用,爽到飞起。 至于NUC就当服务器用了。

毕竟头一次想把 Ubuntu 当作生产力,记录一下折腾过程。

配置篇

配置
CPUi5-10210U (1.6GHz-4.2GHz) Intel(R) Core(TM) i5-10400F CPU @ 2.90GHz
显卡Intel UHD GeForce GTX 1050 Ti
内存32G x 2 (相当浪费==) 32G
磁盘Intel 760p 512G + 三星 860 EVO 500G

系统篇

安装双系统

双系统安装很简单,网上教程视频很多,这里主要说一下我的 Ubuntu 怎么分区的。

我分了 200G 磁盘给 Ubuntu, 其中:

  • 根目录 (/) - 120G

    主要是系统和软件,还是比较吃空间的。

  • HOME (/home) - 79G

    桌面,文档等一些东西,差不多够用了。不够再把其他分区挂载进来存东西就行了。

  • BOOT (/boot) - 1G

    其实现在都用了LVM,BOOT直接放根目录一起也可以了,但我还是给了1G。

至于SWAP分区,我看了以下SWAP分区的作用(内存交换,内存不足就把一部分硬盘虚拟成内存使用),emmm… 貌似我……64G的内存我目前还用不完,索性不分了。

系统设置

  • 软件源设置国内的(关于->Software Updates->Ubuntu软件->下载自);

    我选了一个阿里的,感觉速度还可以。

  • 软件更新频率等按自己偏好设置一波;

  • Dock栏放右边;

磁盘挂载

我想在 Linux 下查看原来 Win的文件,找到磁盘,挂载即可。

# 找磁盘
sudo fdisk -l
设备                起点       末尾      扇区   大小 类型
/dev/nvme0n1p1      2048    1085439   1083392   529M Windows 恢复环境
/dev/nvme0n1p2   1085440    1290239    204800   100M EFI 系统
/dev/nvme0n1p3   1290240    1323007     32768    16M Microsoft 保留
/dev/nvme0n1p4   1323008  419337986 418014979 199.3G Microsoft 基本数据
/dev/nvme0n1p5 419338240  420745215   1406976   687M Windows 恢复环境
/dev/nvme0n1p6 420747264 1000212479 579465216 276.3G Microsoft 基本数据

如,按照分区顺序,大小,我这里基本可以确认 /dev/nvme0n1p4 是 C 盘, /dev/nvme0n1p6是 D 盘。

# 建一个目录 挂载
sudo mkdir /mnt/d
sudo mount /dev/nvme0n1p6 /mnt/d

这只是临时挂载,重启系统需要再次执行挂载命令。启动时自动挂载需要修改文件/etc/fstab

sudo vim /etc/fstab

# 加入如以下(我这里是ntfs系统,如果FAT32,把ntfs改成vfat即可)
/dev/nvme0n1p6 /mnt/d ntfs defaults 0 0

CAPS 与 CTRL 键位互换

sudo vi /usr/share/X11/xkb/keycodes/evdev

搜索 <CAPS>CTRL, 并互换后面的数字。

    ...
    <CAPS> = 37;
    ...

    <LCTL> = 66;

注销,重新登录生效。

安装L2TP/IPSec VPN

公司办公用的是这个VPN,在家要处理一些事情需要连接。

sudo add-apt-repository ppa:nm-l2tp/network-manager-l2tp  
sudo apt update  
sudo apt install -y network-manager-l2tp network-manager-l2tp-gnome

安装后就可以直接在 设置>网络> VPN > ‘+’ > ‘第2层隧道协议(L2TP)’ 中添加了。

环境变量

在home目录下建一个 .bash_profile 放自定义的环境变量,并在启动终端时自动应用。

cd
touch .bash_profile
echo "source \$HOME/.bash_profile" >> .zshrc

字体设置

长时间搬砖,字体一定得看着束缚。 个人偏好CamingoCode字体。更多字体

sudo apt install -y font-manager

字体下载好后,打开安在,在IDE/终端内设置该字体即可。

科学上网

为了面向 Google , Stackoverflow 编程, 科学上网必不可少。我用的这家,¥90多一年,速度够用。

换个Grub2主题

也就是开机选择系统的界面主题。

主题 breeze。 更换步骤如下。

# 下载
git clone git@github.com:gustawho/grub2-theme-breeze.git

# 主题移到合适位置
sudo mkdir /boot/grub/themes
sudo cp -r grub2-theme-breeze/breeze /boot/grub/themes/breeze

# 修改默认配置
sudo vim /etc/default/grub
# 添加如下
GRUB_THEME="/boot/grub/themes/breeze/theme.txt"

# 配置
sudo grub-mkconfig -o /boot/grub/grub.cfg

修改开机启动顺序

默认 Win,毕竟有时候家人也要用。但默认配置是

  1. Ubuntu
  2. Ubuntu 的高级选项
  3. Windows
  4. EFI 设置

看着难受,必须把 Win 第一, Ubuntu第二。

很简单,修改 /boot/grub 即可。

# 该文件是只读的, 给一个修改权限
sudo chmod u+w /boot/grub/grub.cfg

# 修改文件
sudo vim /boot/grub/grub.cfg

menuentry 'xxx' {} 就对应显示的一个启动菜单, 把menuentry 'Windows Boot Manager xxx {}' 移动到menuentry 'Ubuntu' xxx {} 之前 :wq保存即可。

# 恢复只读权限
sudo chmod u-w /boot/grub/grub.cfg

上面的方式,在系统更新 grub 后,或 sudo update-grub之后会失效(grub.cfg 文件被更新了)。

推荐使用下面的方式,即 修改配置文件 /etc/default/grub , 设置 GRUB_DEFAULT=2, 这里的2是 win 在启动界面的顺序,从上到下0,1,2

# sudo vim /etc/default/grub

GRUB_DEFAULT=2
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

顶部状态栏显示CPU等监控信息

效果如下:

其实这只是桌面系统gnome的一个插件,我们只需要安装一个 Chrome 浏览器插件GNOME Shell integration 和 本地的代理chrome-gnome-shell 就可以在https://extensions.gnome.org/ 上安装、管理你的桌面插件。

  • Chrome 浏览器插件 -> chrome-gnome-shell ;

  • 本地代理安装

    sudo apt install chrome-gnome-shell
    

安装完成后,打开 https://extensions.gnome.org ,搜索 system-monitor ,打开开关,状态栏就有了,可以点击设计按钮设置喜欢的样式。

2020-08-29_16-52.png

软件篇

Chrome

最喜欢的浏览器还是Chrome, 直接下载 .deb 包安装

Typora

没错,Markdown 就用它,简洁而强大。

# or run:
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt update
# install typora
sudo apt install -y typora

Flameshot

很强大的一款截图软件,写文档需要标注,说明,马赛克等等,很实用。

sudo apt install -y flameshot

Enpass

一款仅次于 1password 的密码管理软件。 由于是早期付费用户(¥80全平台==),还是享受到一定优惠的。

sudo - i 
echo "deb https://apt.enpass.io/ stable main" > /etc/apt/sources.list.d/enpass.list
wget -O - https://apt.enpass.io/keys/enpass-linux.key | apt-key add -
apt update
apt install -y enpsudo vi /usr/share/X11/xkb/keycodes/evdevass
exit

SwitchHosts

一款 Electron 写的跨平台 Hosts 管理软件,管理/切换 Hosts很方便。

SwitchHosts

images/PNG image.png

SMB服务

手机与 Linux 怎么快速传文件,我考虑用了 SMB。 正好苹果手机的文件支持连接SMB服务。

# 安装
sudo apt-get install -y samba samba-common

# 设置一个共享文件夹
mkdir /home/razeen/wspace/share

# 权限放开
sudo chmod 777 /home/razeen/wspace/share -R

# 添加用户, 需要输入密码
sudo smbpasswd -a razeen
New SMB password:
Retype new SMB password:
Added user razeen.

# 配置
sudo vim /etc/samba/smb.conf

# 我简单设置了一下
[ubuntu]
   comment = ubuntu share dir
   path = /home/razeen/wspace/share
   public = yes
   writable = yes
   
# 重启服务
sudo systemctl restart smbd.service

# 开机自启
systemctl enable smbd.service

在手机直接输入 smb://你的ip 浏览器提示打开文件应用, 确认,然后进去输入刚刚设置的账户以及密码即可。然后手机中的文件就可以直接分享到电脑,电脑上的文件拖到共享文件夹可以快速下载。

搬砖工具篇

oh-my-zsh

高效,美观的终端,就靠它了。

先安装 zsh , git编译

再安装 oh-my-zsh

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

设置启动时自动进入 zsh

首选项 -> 配置文件 -> 运行自定义命令而不是shell -> 自定义命令 输入 zsh

tmux

分屏,Session, 多缓存区,高效管理终端,终端复用 用它没错。

配置还在摸索,Mac 上的不适用了,后面再单独整理一篇文章。

vim

效率,极客之选。

同上,配置还在摸索,Mac 上的不适用了,后面再单独整理一篇文章。

docker

安装。

sudo apt update
sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

把 docker 加入当前用户组,然后重启,用非 root 运行 docker。

sudo usermod -aG docker $USER

添加国内的镜像源。

sudo vim /etc/docker/daemon.json

# 163
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

# 重启 docker服务
systemctl restart docker.service
# 自启动
systemctl enable docker.service

VSCode 配置

好用,没话说。直接官网下载,点击安装。

Golang 篇

作为主力编程语言,不能怠慢。

从源码安装

必须从源码安装,掌控每个细节。

通商准备工作

给自己建一个工作区, 以及相关目录

cd 

# go 相关目录
mkdir -p wspace/source/go \
	wspace/source/go14 \
	wspace/go/src \
	wspace/go/bin

# 相关环境变量
echo '
# 我的工作区
export WSPACE=$HOME/wspace
# 源码文件
export SOURCECODE=$WSPACE/source
# go 安装引导
export GOROOT_BOOTSTRAP=$SOURCECODE/go14
# go root
export GOROOT=$SOURCECODE/go
# go path
export GOPATH=$WSPACE/go
# go bin
export GOBIN=$GOPATH/bin
# go module
export GO111MODULE=on
# go proxy
export GOPROXY=https://goproxy.io,direct
# cgo
export CGO_ENABLED=0

# PATH
export PATH=$PATH:$GOROOT/bin:$GOBIN
' >> .bash_profile

source .bash_profile
下载Go1.4引导
curl https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz -v -o go1.4.tar.gz
tar -zxvf go1.4.tar.gz
mv go/* $GOROOT_BOOTSTRAP
rm -fr go go1.4.tar.gz
cd $GOROOT_BOOTSTRAP/src
./all.bash
下载源码并编译
git clone https://go.googlesource.com/go $GOROOT
cd $GOROOT
git checkout go1.15
cd src
./all.bash
go version