Linux 系统初始化
Linux Init
1. 修改配置
#!/bin/bash
set -x
lsb_release -a
mkdir $HOME/workspace
mkdir $HOME/workspace/docker-compose
mkdir $HOME/workspace/yaml
mkdir $HOME/workspace/scripts
tee -a $HOME/.bashrc << EOF
# User specific environment
# Basic envs
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -al'
alias ch='chmod a+x'
alias cip='curl cip.cc'
alias aip='curl -s http://myip.ipip.net'
alias c='clear'
alias vi='nvim'
# alias psi='reptyr -s'
alias psg='ps -aux|grep'
alias s='screenfetch'
alias x='xclip'
alias k='kubectl'
alias ks='kubectl -n kube-system'
alias ka='kubectl apply -f'
alias kd='kubectl delete -f'
alias dc='docker-compose'
export LANG="en_US.UTF-8" # 设置系统语言为 en_US.UTF-8,避免终端出现中文乱码
export PS1='[\u@dev \W]\$ ' # 默认的 PS1 设置会展示全部的路径,为了防止过长,这里只展示:"用户名@dev 最后的目录名"
export WORKSPACE="$HOME/workspace" # 设置工作目录
export PATH=$HOME/bin:$PATH # 将 $HOME/bin 目录加入到 PATH 变量中
# Default entry folder
cd \$WORKSPACE
# 登录系统,默认进入 workspace 目录
EOF
source $HOME/.bashrc
cp /etc/apt/sources.list /etc/apt/sources.list_backup
tee /etc/apt/sources.list << EOF
#阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
EOF
apt-get -y update
apt-get -y upgrade
sudo apt-get install libc6-dev
# 添加公钥
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
apt-get -y update
apt-get -y upgrade
apt -y autoremove
apt install -y screenfetch git wget net-tools vim libc6-dev snapd snapcraft add-apt-repository xclip
# 安装 neovim
sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt-get update
sudo apt-get install -y neovim
# 安装 spacevim
# curl -sLf https://spacevim.org/cn/install.sh | bash
# 使mkfontscale和mkfontdir命令正常运行
sudo apt-get install -y ttf-mscorefonts-installer
# 使fc-cache命令正常运行
sudo apt-get install -y fontconfig
tee -a $HOME/.vim/vimrc << EOF
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1, "#!/bin/bash")
call setline(2, "set -x")
call setline(3, "")
call setline(4, "#Author: 1ch0")
call setline(5, "#Date: ".strftime("%Y-%m-%d"))
call setline(6, "#FileName: ".expand("%"))
call setline(7, "#Description: 1ch0 script")
call setline(8, "#Blog: https://1ch0.github.io/")
call setline(9, "#Copyright(C): ".strftime("%Y")." All rights reserved")
call setline(10, "")
call setline(11, "")
endif
endfunc
autocmd BufNewFile * normal G
EOF
添加用户
useradd -m dev
passwd dev
usermod -s /bin/bash dev
# 在 groupA 添加 dev 用户
usermod -a -G groupA dev
# 修改文件夹权限
chomod -R 764 /home/dev/work/
# 修改文件夹归属
chown -R dev:dev /home/dev/work/
# root 添加其他用户 docker 执行权限
chmod 666 /var/run/docker.sock
普通用户无docker权限
Example 1: Got permission denied while trying to connect to the Docker daemon socket
sudo chmod 666 /var/run/docker.sock
Example 2: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
sudo chmod 666 /var/run/docker.sock
Example 3: dial unix /var/run/docker.sock: connect: permission denied
sudo setfacl –modify user:
Example 4: Server: ERROR: Got permission denied while trying to connect to the Docker daemon socket
sudo newgroup docker sudo chmod 666 /var/run/docker.sock sudo usermod -aG docker ${USER}
Example 5: permission denied while trying to connect to the docker daemon socket
sudo usermod -aG docker ${ubuntu}
Example 6: got permission denied docker
docker deamon permission issue
安装常见软件
#!/bin/bash
# 安装 go
wget https://studygolang.com/dl/golang/go1.17.11.linux-amd64.tar.gz -O /tmp/go1.17.11.linux-amd64.tar.gz
mkdir -p $HOME/go
tar -xvzf /tmp/go1.17.11.linux-amd64.tar.gz -C $HOME/go
mv $HOME/go/go $HOME/go/go1.17.11
rm -f /tmp/go1.17.11.linux-amd64.tar.gz
tee -a $HOME/.bashrc <<'EOF'
# Go envs
export GOVERSION=go1.17.11 # Go 版本设置
export GO_INSTALL_DIR=$HOME/go # Go 安装目录
export GOROOT=$GO_INSTALL_DIR/$GOVERSION # GOROOT 设置
export GOPATH=$HOME/gopath # GOPATH 设置
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将 Go 语言自带的和通过 go install 安装的二进制文件加入到 PATH 路径中
export GO111MODULE="on" # 开启 Go moudles 特性
export GOPROXY=https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
export G_MIRROR=https://golang.google.cn/dl/
export GOPRIVATE=
export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
EOF
source ~/.bashrc
go version
# 安装docker
# 卸载旧版
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装 docker 1
curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun
# 安装 docker 2
curl -sSL https://get.daocloud.io/docker | sh
# 安装 docker compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
systemctl daemon-reload
service docker restart
service docker status
# brctl show 查看docker网络
apt install -y bridge-utils
# bash 补全
apt install -y bash-completion
source /usr/share/bash-completion/bash_completion
source /usr/share/bash-completion/completions/docker
apt install -y bridge-utils
# 安装 npm
sudo apt-get install -y npm
npm install --global yarn
npm install -g n
n latest
1.1 修改 $HOME/.bashrc
#!/bin/bash
mkdir $HOME/workspace
tee -a $HOME/.bashrc << EOF
# User specific environment
# Basic envs
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -al'
alias ch='chmod a+x'
alias cip='curl cip.cc'
alias aip='curl -s http://myip.ipip.net'
alias c='clear'
alias vi='nvim'
# alias psi='reptyr -s'
alias psg='ps -aux|grep'
alias s='screenfetch'
alias x='xclip'
alias k='kubectl'
alias ks='kubectl -n kube-system'
alias ka='kubectl apply -f'
alias kd='kubectl delete -f'
alias dc='docker-compose'
export LANG="en_US.UTF-8" # 设置系统语言为 en_US.UTF-8,避免终端出现中文乱码
export PS1='[\u@dev \W]\$ ' # 默认的 PS1 设置会展示全部的路径,为了防止过长,这里只展示:"用户名@dev 最后的目录名"
export WORKSPACE="$HOME/workspace" # 设置工作目录
export PATH=$HOME/bin:$PATH # 将 $HOME/bin 目录加入到 PATH 变量中
# Default entry folder
cd \$WORKSPACE
# 登录系统,默认进入 workspace 目录
EOF
source $HOME/.bashrc
1.2 修改 $HOME/.vimrc
git clone --depth=1 https://github.com.cnpmjs.org/amix/vimrc.git ~/.vim_runtime
# github.com.cnpmjs.org
# hub.fastgit.org
# git.sdut.me
# github.wuyanzheshui.workers.dev
# raw.Githubusercontent.Com
sh ~/.vim_runtime/install_awesome_vimrc.sh
tee -a $HOME/.vimrc << EOF
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1, "#!/bin/bash")
call setline(2, "#")
call setline(3, "#***********************************************************************")
call setline(4, "# Author: 1ch0")
call setline(5, "# Date: ".strftime("%Y-%m-%d"))
call setline(6, "# FileName: ".expand("%"))
call setline(7, "# Description: 1ch0 script")
call setline(8, "# Blog: https://1ch0.github.io/")
call setline(9, "# Copyright (C): ".strftime("%Y")." All rights reserved")
call setline(10, "#***********************************************************************")
call setline(11, "#")
call setline(12, "")
endif
endfunc
autocmd BufNewFile * normal G
EOF
Vim 常见命令
i 插入到光标前面
I 插入到行的开始位置
a 插入到光标的后面
A 插入到行的最后位置
o, O 新开一行
Esc 关闭插入模式
:w 保存
:wq, :x 保存并关闭
:q 关闭(已保存)
:q! 强制关闭
/string 搜索string字符串,如果要忽略大小写set ic
n 搜索指定字符串出现的下一个位置
:%s/old/new/g 全文替换指定字符串old--->new
:n1,n2s/old/new/g 在一定范围内替换,n1,n2表示行数
dd 删除一行
dw 删除一个单词
x 删除后一个字符
X 删除前一个字符
D 删除一行最后一个字符
[N]yy 复制一行或者N行
yw 复制一个单词
p 粘贴
安装 vim-plug 插件管理器
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
安装 SpaceVim
curl -sLf https://spacevim.org/cn/install.sh | bash
# 使mkfontscale和mkfontdir命令正常运行
sudo apt-get install -y ttf-mscorefonts-installer
# 使fc-cache命令正常运行
sudo apt-get install -y fontconfig
tee -a $HOME/.vim/vimrc << EOF
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1, "#!/bin/bash")
call setline(2, "#")
call setline(3, "#")
call setline(4, "#Author: 1ch0")
call setline(5, "#Date: ".strftime("%Y-%m-%d"))
call setline(6, "#FileName: ".expand("%"))
call setline(7, "#Description: 1ch0 script")
call setline(8, "#Blog: https://1ch0.github.io/")
call setline(9, "#Copyright(C): ".strftime("%Y")." All rights reserved")
call setline(10, "#")
call setline(11, "set -x")
call setline(12, "#")
call setline(13, "")
endif
endfunc
autocmd BufNewFile * normal G
EOF
nslookup github.com
nslookup github.global.ssl.fastly.net
vi /etc/hosts
162.125.7.1 http://github.global.ssl.fastly.net
162.125.7.1 https://github.global.ssl.fastly.net
20.205.243.166 http://github.com
20.205.243.166 https://github.com
sudo systemctl restart systemd-networkd
1.3 更换 apt 源
cp /etc/apt/sources.list /etc/apt/sources.list_backup
tee /etc/apt/sources.list << EOF
# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
EOF
# 添加公钥
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
apt-get -y update
apt-get -y upgrade
apt -y autoremove
Centos 换yun源(待完善)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
enabled=0
yum clean all
yum makecache
1.4 修改时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 后回车确认
1.5 新建用户
useradd
passwd
# 添加 sudoers
sed -i '/^root.*ALL=(ALL).*ALL/a\going\tALL=(ALL) \tALL' /etc/sudoers
2. 安装常见软件
软件个人选择
2.1 安装常用软件
apt install -y make autoconf automake cmake libtool gcc git-lfs telnet ctags lrzsz jq
perl-CPAN libcurl-devel expat-devel openssl-devel zlib-devel gcc-c++ glibc-
headers
apt install -y screenfetch git wget net-tools vim xclip
apt install -y iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev gcc openssh-server iotop unzip zip make selinux-utils sshpass socat openssh
Git
cd /tmp
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.30.2.tar.gz
tar -xvzf git-2.30.2.tar.gz
cd git-2.30.2/
./configure
make
sudo make install
git --version # 输出 git 版本号,说明安装成功
git version 2.30.2
2.2 安装 Go
安装包安装
#!/bin/bash
wget https://studygolang.com/dl/golang/go1.17.11.linux-amd64.tar.gz -O /tmp/go1.17.11.linux-amd64.tar.gz
mkdir $HOME/workspace
export WORKSPACE="$HOME/workspace"
mkdir -p $HOME/go
tar -xvzf /tmp/go1.17.11.linux-amd64.tar.gz -C $HOME/go
mv $HOME/go/go $HOME/go/go1.17.11
rm -f /tmp/go1.17.11.linux-amd64.tar.gz
tee -a $HOME/.bashrc <<'EOF'
# Go envs
export GOVERSION=go1.17.11 # Go 版本设置
export GO_INSTALL_DIR=$HOME/go # Go 安装目录
export GOROOT=$GO_INSTALL_DIR/$GOVERSION # GOROOT 设置
export GOPATH=$WORKSPACE/go # GOPATH 设置
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将 Go 语言自带的和通过 go install 安装的二进制文件加入到 PATH 路径中
export GO111MODULE="on" # 开启 Go moudles 特性
export GOPROXY=https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
export G_MIRROR=https://golang.google.cn/dl/
export GOPRIVATE=
export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
EOF
source ~/.bashrc
go version
Apt 源安装
add-apt-repository ppa:longsleep/golang-backports
apt-get update
sudo apt-get install golang-go
go version
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env -w G_MIRROR=https://golang.google.cn/dl/
使用 g 安装
curl -sSL https://raw.githubusercontent.com/voidint/g/master/install.sh | bash
tar -zxvf g1.2.1.linux-amd64.tar.gz
mv g /usr/local/bin/
echo "unalias g" >> ~/.bashrc
tee -a ~/.bashrc<<EOF
export GOROOT="${HOME}/.g/go"
export PATH="${HOME}/.g/go/bin:$PATH"
export G_MIRROR=https://golang.google.cn/dl/
# Enable the go modules feature
export GO111MODULE=on
# Set the GOPROXY environment variable
export GOPROXY=https://goproxy.io
EOF
source ~/.bashrc
# https://github.com/voidint/g/releases
g ls-remote stable
g install
安装 python
Conda
wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod 777 Miniconda3-latest-Linux-x86_64.sh #给执行权限
bash Miniconda3-latest-Linux-x86_64.sh #运行
安装 gh
conda install gh --channel conda-forge
# upgrade
conda update gh --channel conda-forge
2.3 安装 Tmux
sudo apt install -y tmux
2.4 安装 SpaceVim
curl -sLf https://spacevim.org/cn/install.sh | bash
# 使mkfontscale和mkfontdir命令正常运行
sudo apt-get install ttf-mscorefonts-installer
# 使fc-cache命令正常运行
sudo apt-get install fontconfig
2.3 安装 vim-plug 插件管理器
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
2.5 安装k8s
Sealos
2.5.0 安装前配置
统一时间
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime修改 hostname
tee /etc/hostname << EOF node2 EOF # 重启linux reboot配置静态 ip、ssh、root 密码
下载常用软件,需下载 socat
apt install -y screenfetch git wget net-tools vim openssh socat
2.5.1 安装
# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos && \
chmod +x sealos && mv sealos /usr/bin
# 下载离线资源包
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/05a3db657821277f5f3b92d834bbaf98-v1.22.0/kube1.22.0.tar.gz
# 安装一个三master的kubernetes集群
sealos init --passwd '123456' \
--master 192.168.0.2 --master 192.168.0.3 --master 192.168.0.4 \
--node 192.168.0.5 \
--pkg-url /root/kube1.22.0.tar.gz \
--version v1.22.0
2.5.2 增加 Master
sealos join --master 192.168.0.6 --master 192.168.0.7
# 或者多个连续IP
sealos join --master 192.168.0.6-192.168.0.9
2.5.3 增加node
sealos join --node 192.168.0.6 --node 192.168.0.7
sealos join --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
2.5.4 删除指定master节点
sealos clean --master 192.168.0.6 --master 192.168.0.7
sealos clean --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
2.5.5 删除指定node节点
sealos clean --node 192.168.0.6 --node 192.168.0.7
sealos clean --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
2.5.6 清理集群
sealos clean --all
2.5.2 使用 kubeasz安装
使用纯净服务器,未安装过 docker k8s
安装
export release=3.0.0
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
./ezdown -D
./ezdown -S
docker exec -it kubeasz ezctl start-aio
5.清理
以上步骤创建的K8S开发测试环境请尽情折腾,碰到错误尽量通过查看日志、上网搜索、提交issues等方式解决;当然你也可以清理集群后重新创建。
在宿主机上,按照如下步骤清理
- 清理集群
docker exec -it kubeasz ezctl destroy default - 清理运行的容器
./ezdown -C - 清理容器镜像
docker system prune -a - 停止docker服务
systemctl stop docker - 删除docker文件
umount /var/run/docker/netns/default
umount /var/lib/docker/overlay
rm -rf /var/lib/docker /var/run/docker
2.6 安装配置 zsh
apt-get install -y zsh
wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh
tee -a ~/.zshrc << EOF
ZSH_THEME="agnoster" # 主题配置
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
)
# 插件配置,常用插件,git分支显示,关键字高亮,自动建议
source "/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
EOF
# 安装插件
git clone https://hub.fastgit.org/zsh-users/zsh-autosuggestions.git ~/.oh-my-zsh/custom/plugins
git clone https://hub.fastgit.org/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins
source ~/.zshrc
2.7 安装 Docker
2.7.1 安装 Docker
# 卸载旧版
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装 docker 1
curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun
# 安装 docker 2
curl -sSL https://get.daocloud.io/docker | sh
# 安装 docker compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
systemctl daemon-reload
service docker restart
service docker status
apt install -y bridge-utils # brctl show 查看docker网络
2.7.2 安装 bash 补全
# yum install -y bash-completion
apt install -y bash-completion
source /usr/share/bash-completion/bash_completion
source /usr/share/bash-completion/completions/docker
apt install -y bridge-utils # brctl show 查看docker网络
3. 配置
3.1 配置 ssh
- 配置 root 密码,开启远程登录
sudo passwd
vim /etc/ssh/sshd_config
port 22
PermitRootLogin yes
PasswordAuthentication no
tee -a /etc/ssh/sshd_config << EOF
port 22
PermitRootLogin yes
PasswordAuthentication no
EOF
service sshd restart
开启 ssh,关闭密码验证 https://blog.csdn.net/qq_43228568/article/details/110824158
- 配置 key
https://jingyan.baidu.com/article/0f5fb0990660076d8234ea50.html
ssh-keygen -t dsa /etc/ssh/ssh_host_dsa_key
ssh-keygen -t ecdsa /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 /etc/ssh/ssh_host_ed25519_key
ssh-keygen -t rsa /etc/ssh/ssh_host_rsa_key
ssh-keygen -t rsa1 /etc/ssh/ssh_host_rsa1_key
chmod 600 /etc/ssh/*key
cat /etc/ssh/ssh*pub>>/home/ubuntu/.ssh/authorized_keys
cat /home/ubuntu/.ssh/authorized_keys >/root/.ssh/authorized_keys
chmod 644 /root/.ssh/authorized_keys
3.2 配置静态 IP
tee /etc/netplan/00-installer-config.yaml << EOF
network:
ethernets:
ens33:
addresses:
- 192.168.0.15/24
dhcp4: no
gateway4: 192.168.0.2
nameservers:
addresses: ['114.114.114.114']
version: 2
EOF
netplan apply
ifconfig
3.3 克隆虚拟机
# 修改hostname
vim /etc/hostname
# 修改ip
vim /etc/netplan/00-installer-config.yaml
netplan apply
Summary
#!/bin/bash
mkdir $HOME/workspace
tee -a $HOME/.bashrc << EOF
# User specific environment
# Basic envs
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -al'
alias ch='chmod a+x'
alias cip='curl cip.cc'
alias c='clear'
# alias psi='reptyr -s'
alias psg='ps -aux|grep'
alias s='screenfetch'
alias dc='docker-compose'
alias ll='ls -la'
alias c='clear'
alias aip='curl -s http://myip.ipip.net'
alias k='kubectl'
alias ka='kubectl apply -f'
alias kd='kubectl delete -f'
alias ch='chmod a+x'
# Go env
export GOROOT="/root/.g/go"
export PATH="/root/.g/go/bin:/root/.g/go/bin:/root/bin:/root/bin:/root/bin:/ root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/ games:/usr/local/games:/snap/bin"
export G_MIRROR=https://golang.google.cn/dl/
# Enable the go modules feature
export GO111MODULE=on
# Set the GOPROXY environment variable
export GOPROXY=https://goproxy.io
export LANG="en_US.UTF-8" # 设置系统语言为 en_US.UTF-8,避免终端出现中文乱码
export PS1='[\u@dev \W]\$ ' # 默认的 PS1 设置会展示全部的路径,为了防止过长,这里只展示:"用户名@dev 最后的目录名"
export WORKSPACE="$HOME/workspace" # 设置工作目录
export PATH=$HOME/bin:$PATH # 将 $HOME/bin 目录加入到 PATH 变量中
# Default entry folder
cd \$WORKSPACE
# 登录系统,默认进入 workspace 目录
EOF
cp /etc/apt/sources.list /etc/apt/sources.list_backup
tee /etc/apt/sources.list << EOF
# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
EOF
# 添加公钥
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
apt-get -y update
apt-get -y upgrade
apt -y autoremove
apt install -y screenfetch git wget net-tools vim
git clone --depth=1 https://github.com.cnpmjs.org/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh
tee $HOME/.vimrc << EOF
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1, "#!/bin/bash")
call setline(2, "#")
call setline(3, "#***********************************************************************")
call setline(4, "# Author: 1ch0")
call setline(5, "# Date: ".strftime("%Y-%m-%d"))
call setline(6, "# FileName: ".expand("%"))
call setline(7, "# Description: 1ch0 script")
call setline(8, "# Blog: https://1ch0.github.io/")
call setline(9, "# Copyright (C): ".strftime("%Y")." All rights reserved")
call setline(10, "#***********************************************************************")
call setline(11, "")
endif
endfunc
autocmd BufNewFile * normal G
EOF
source $HOME/.bashrc