Basic Setup for Ubuntu

Overview

Ubuntu 基础设置,包含一些常用软件安装,配置文件修改等等。

这篇文章的意义在于,当你拿到一个新的 Ubuntu 系统之后,直接按照本文的步骤进行设置,就可以得到一个顺手的开发/部署环境。不再需要逐项搜索每个软件的安装步骤了。

  • 设置国内软件镜像源
  • node
  • git
  • docker
  • nginx
  • oh-my-zsh
  • alias
  • vim

设置系统软件镜像源

配置系统源第一件事是修改镜像源,这样方便后续其他软件的安装。在国内可以选择阿里云的源。

1# 编辑源文件
2sudo vim /etc/apt/sources.list
3# 在VIM编辑器内替换默认源为阿里云
4:0,$ s/archive.ubuntu.com/mirrors.aliyun.com/
5# 保存源文件并退出
6:wq

包管理工具安装

先更新

1sudo apt update -y && sudo apt upgrade -y

安装常用软件

通常会有一些是默认安装的,比如 git vim wget curl vim,如果没有,用下面方式安装即可。

1sudo apt install zsh nginx tree -y

oh-my-zsh

关于 zsh 和 oh-my-zsh 可以参考: 终极 Shell——ZSH

安装

脚本安装:

1wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

或者手动安装:

1git clone https://github.com/ohmyzsh/ohmyzsh.git  ~/.oh-my-zsh
2cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

安装完成之后退出当前会话重新打开一个终端窗口即可。

插件

(1) autojump github 地址 autojump

下载并执行

1wget https://github.com/downloads/joelthelion/autojump/autojump_v21.1.2.tar.gz
2./install.sh

最后把以下代码加入.zshrc:

1[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh

node(nvm)

nvm github 地址: nvm-sh/nvm

方法一:脚本安装

执行脚本

1curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash
2# 或者
3wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash

最后,将下面内容分别添加到 ~/.bashrc, ~/.profile, 和 ~/.zshrc 文件中。

1export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ]
2&& printf %s "${HOME}/.nvm"
3|| printf %s "${XDG_CONFIG_HOME}/nvm")"
4
5[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

加载配置文件:

1source ~/.bashrc

方法二:git 安装

将代码克隆到用户目录下:

1cd ~/
2git clone https://github.com/nvm-sh/nvm.git .nvm

切换到最新版本

1cd ~/.nvm
2git checkout v0.35.1

激活 nvm,在命令行执行:

1. nvm.sh

最后,将下面内容分别添加到 ~/.bashrc, ~/.profile, 和 ~/.zshrc 文件中。

1export NVM_DIR="$HOME/.nvm"
2[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
3[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

完成之后,通过 nvm -v 查看版本来验证是否安装成功。

docker

安装 Docker

1curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh

安装 Compose

1sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docke-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2# 给Docker Compose 执行权限
3sudo chmod +x /usr/local/bin/docker-compose
4
5#查看Docker和Docker Compose的版本
6sudo docker version
7sudo docker-compose version

设置镜像源

执行下面命令进行设置

ps: 阿里云镜像源是个人注册阿里云账号之后分配的个人专属镜像源。

1sudo mkdir -p /etc/docker
2sudo tee /etc/docker/daemon.json <<-'EOF'
3{
4  "registry-mirrors": ["https://oojjt1xs.mirror.aliyuncs.com"]
5}
6EOF
7sudo systemctl daemon-reload
8sudo systemctl restart docker

vim 配置

有些系统默认没有安装

配置文件路径:

  • 全局配置文件:/etc/vim/vimrc
  • 当前用户配置文件:~/.vimrc

将下面内容粘贴到配置文件中:

1" 左单引号表示单行注释
2" 编码指定 UTF-8
3set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
4set termencoding=utf-8
5set encoding=utf-8
6
7set number " 显示行号
8set cursorline " 突出显示当前行
9set ruler " 打开状态栏标尺

设置别名(alias)

将所有的别名放在单独一个文件 .bash_aliases 中,这样更加方便管理,ubuntu 也推荐这种做法。

1if [ -f ~/.bash_aliases ]; then
2    . ~/.bash_aliases
3fi

注意:等号两侧不能有空格!

 1# 代替键盘上难以触及的 ~ 键
 2alias home="cd ~"
 3
 4# 同样也可以为一些深层却很常用的目录设置别名
 5# 如:宝塔面包的 nginx 配置目录
 6alias ng="cd /www/server/panel/vhost/nginx"
 7
 8# 回退多级目录
 9alias bk1="cd .."
10alias bk2="cd ../.."
11alias bk3="cd ../../.."
12alias bk4="cd ../../../.."
13alias bk5="cd ../../../../.."
14
15# ls 相关
16alias cls='clear'
17alias ll='ls -l'
18alias la='ls -a'
19
20# git 相关
21alias gs='git status'
22alias glog="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Cr eset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
23
24# 解压
25alias -s gz='tar -xzvf'
26alias -s tgz='tar -xzvf'
27alias -s zip='unzip'
28alias -s bz2='tar -xjvf'
29
30# other
31alias vi='vim'
32alias grep="grep --color=auto"
33alias tree="tree -I '*svn|*node_module*'"

Python3

系统升级到 ubuntu 20.04 之后,移除了 Python 2,只保留了 Python 3。

因此默认不能执行 Python 命令,但可以执行 python3。

因此我们可以在 /usr/bin 下创建一个软链接,指向 python3。

1sudo ln -s /usr/bin/python3 /usr/bin/python

注意:避免某些软件需要用的 python3,所以不建议把 python3 的软连接删除


本文完,感谢阅读。:stuck_out_tongue_winking_eye: