初始化 Ubuntu 工作环境

该图片由chanwit whansetPixabay上发布

你好,我是看山。

去年 6 月份开始使用 Ubuntu 14.04 LTS,当时是在公司电脑上装的,因为是第一次搭建工作环境,很多东西不是很随心意。终于等到 16.04 LTS 版发布,就重装系统,公司的那个老爷本也不用了。

ubuntu desktop 是一个很简单的桌面系统,比较适合菜鸟级的使用,学习曲线比较平缓。本文主要是记录一下这次搭建工作环境的经过,留作备份,下一次再需要重装的时候可以有个依据。

ubuntu-cloud

1 系统语言

作为英语的半吊子,没办法直接使用英文环境,所以系统安装的是简体中文环境,但是系统创建的 home 路径中的文件夹都是中文的:桌面、文档、下载。作为一个懒人,不想在终端输命令的时候还要切换输入法,所以把这几个路径全部改为英文。

export LANG=en_US
xdg-user-dirs-gtk-update

会弹出一个对话框,问是否修改 home 下的文件夹名字,直接点击”Update Names”,问题解决,然后把系统语言改回简体中文。

export LANG=zh_CN.UTF-8
xdg-user-dirs-gtk-update

这次又弹出的对话框是询问是否把文件夹名字改为简体中文的,直接点否就行。为了以后不再询问,选中不要再次询问,以后就不会弹出了。

2 软件源

大家都知道,国内的网络环境不是很好,ubuntu 的镜像服务器在地球另一端,所以装完系统通常需要修改软件源,国内比较可靠的是阿里云的镜像,为阿里赞一个。需要使用 root 权限修改/etc/apt/sources.list 文件:sudo vi /etc/apt/sources.list,我这里是需要把”cn.archive.ubuntu.com”和”security.ubuntu.com”改为”mirrors.aliyun.com”,根据自己的情况修改。这样 ubuntu 的系统更新、安全更新、软件更新都是走阿里云的镜像了,速度还是很快的。
下面是我的软件源文件(精简过的,原文件很多注释):

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

3 快捷初始化

ubuntu 使用可能会用到一些解码器之类的组件、插件、字体,一个个找实在麻烦,好在有一个 ubuntu-restricted-extras,可以直接帮忙安装这一堆繁琐的东西。命令行输入:sudo apt install ubuntu-restricted-extras,然后等待安装完成即可。

4 常用软件

基础环境简单配置完成,接下来就开始安装常用的软件。

4.1 vim

因为开发使用的是 IDE,vi 工具只是用来编辑一些简单的文件,所以没装太多插件。作为一个 vi 的菜鸟,只会一些简单的快捷键,所以还是装上 vim 吧:

sudo apt install vim

4.2 Chromium & Chrome

ubuntu 自带的浏览器是 Firefox,一款非常优秀的浏览器,Chrome 中也有部分是 firefox 的代码,奈何已经熟悉 Chrome,还是装上 Chrome 浏览器。这里的 Chromium 相当于 Chrome 的先行军,开源项目,全球优秀的开发人员进行维护,增加功能,然后 Google 再把这些新功能加到 Chrome 中,ubuntu 的软件库中自带 Chromium,想装 Chrome 还得翻墙出去下,为了快 (tou) 捷 (lan),直接装 Chromium:

sudo apt-get install chromium-browser unity-chromium-extension chromium-codecs-ffmpeg-extra

Chromium 和 Firefox 一样,有很多扩展扩展程序(依赖浏览器)和应用(可以不启动浏览器独立运行):

  • The QR Code Extension: 把地址栏地址转为二维码
  • 有道云笔记网页剪报:用过有道云笔记的比较熟悉,抓取网页内容,保存到有道云笔记中
  • cVim: 一个摆脱鼠标的扩展程序,键盘流的福音,好像还有很多类似的扩展,大同小异
  • JSON Formatter: 可以把 json 响应内容格式化
  • JSON Editor: 应用,用于编辑 json 数据
  • Postman: 应用,http 的客户端

4.3 JDK

作为 Java 开发,最需要安装的就是 jdk 了,ubuntu 库中只有 Open JDK,但是工作环境中还是使用 Oracle JDK,其实可以在 Oracle 官网下载 tar.gz 包,解压,然后配置环境变量,但是安装 ant、maven 的时候还是会再次引入 open jdk,烦不胜烦,直接使用 webupd8 的源,省去乱七八糟的烦恼。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer oracle-java7-installer oracle-java8-installer

这里把 jdk 6\7\8 几个版本都装上了,虽然自己的项目中使用 JDK 8,但是有时候需要把一个公共组件提供给其他组,就需要 jdk 6 来开发编译打包,这个时候需要切换下默认 jdk 的版本:

sudo apt-get install oracle-java6-set-default # 切换为 jdk6
sudo apt-get install oracle-java7-set-default # 切换为 jdk7
sudo apt-get install oracle-java8-set-default # 切换为 jdk8

修改 jdk 的环境变量,为了各用户统一,直接在系统环境变量中增加配置:

cd /etc/profile.d
sudo touch set_classpath.sh
sudo chmod +x set_classpath.sh

set_classpath.sh 文件的内容如下:

#!/bin/bash
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

可以通过source set_classpath.sh使环境变量立即生效,也可以等下次重启之后生效。

4.4 Ant

工作中基本不用 Ant 了,一般 maven 就够用了。先装上,用不用再说:sudo apt-get install ant,安装完之后配置环境变量:

cd /etc/profile.d
sudo touch ant_env.sh
sudo chmod +x ant_env.sh

ant_env.sh 内容如下:

#!/bin/bash
export ANT_HOME=/usr/share/ant
export PATH=$PATH:$ANT_HOME/bin

4.5 Maven

构建工具最常用 maven 了,基本不需要关心 jar 包之间的依赖,而且在 IDE 中,maven 的插件也比较完善了。

sudo apt-get install maven

# 安装完成后通过 mvn -n 查看 maven 版本
mvn -v

可以看到如下信息:

Apache Maven 3.3.3
Maven home: /usr/share/maven
Java version: 1.8.0_66, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "4.2.0-22-generic", arch: "amd64", family: "unix"

4.6 SVN

公司喜欢用 svn,不过也马上要换成 Git 了,还是把 svn 安装记录下,万一以后需要呢。

sudo apt-get install subversion
sudo apt-get install libsvn-java # 如果要用 Eclipse SVN 插件还得装下 libsvn-java

# 使用 ln 建立链接,不然插件还是会报错:
sudo mkdir -P /usr/java/packages/lib/amd64/
sudo ln -s /usr/lib/x86_64-linux-gnu/jni/libsvnjavahl-1.so.0.0.0 /usr/java/packages/lib/amd64/libsvnjavahl-1
sudo ln -s /usr/lib/x86_64-linux-gnu/jni/libsvnjavahl-1.so.0.0.0 /usr/java/packages/lib/amd64/libsvnjavahl-1.so

在 Linux 中可用的 svn 的 GUI 工具只有一个 rapidsvn,已经很久没有更新过了,不过也还凑合用,复杂操作可以使用命令,

sudo apt-get install rapidsvn

4.7 Git

直接安装

sudo apt-get install liberror-perl git-man git git-doc

git 的 GUI 工具就不装了,毕竟 git 的命令很简单,而且 IDE 中的插件效果也挺不错的。

4.8 其他工具

  • unison: 一个同步工具,可以比较文件夹之间是否有修改,可以很直观的操作同步数据,相当于有 GUI 的 sync,sudo apt-get install unison unison-gtk
  • ssh: 这个不多说,sudo apt-get install openssh-client openssh-server openssh-sftp-server
  • openvpn: 在家办公的时候,需要通过 VPN 连接公司内网,sudo apt-get install network-manager-openvpn
  • FileZilla: 连接服务器的文件管理器,sudo apt-get install filezilla
  • Meld: 文件、文件夹对比工具,相当于带 GUI 的 diff,sudo apt-get install meld
  • mysql: 不多说,sudo apt-get install mysql-client mysql-workbench
  • nethogs: 各应用实时网速检查,需要 sudo 权限,sudo apt-get install nethogs
  • indicator-multiload: 综合负载指示器,可实时显示 CPU 使用率、内存占用、网速、负载、磁盘 IO、交换空间等,sudo apt-get install indicator-multiload
  • GIMP: 图像编辑,sudo apt-get install gimp gimp-data-extras
  • GParted: 分区管理器,需要 root 权限,sudo apt-get install gparted

5 基本配置

5.1 ubuntu 终端

ubuntu 终端会显示当前位置的全路径,当目录比较深的时候,占用空间太大,所以直接进行优化:

export PS1='\[\e]0;\u@\h: \w\a\]\[\033[01;32m\]\u\[\033[01;33m\]@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]$ '

5.2 本地打开文件数限制解除

echo "fs.file-max = 819200" | sudo tee /etc/sysctl.d/60-fs-file-max.conf
echo "fs.inotify.max_user_watches = 524288" | sudo tee /etc/sysctl.d/60-fs-max-user-watches.conf

6 结束

到这里,这个 ubuntu 环境就基本配置完成了。
话说自从把系统换成 ubuntu 了,好像很久没有玩游戏了。舍友的系统是 windows,前一段时间,想玩了,就玩他的,后来媳妇抱怨说我总是跟他们混在一起,也就不怎么玩了,最近好像就想不起来玩。算是把游戏戒了。
然后使用 linux,为了图省事,经常会用到终端,几条简单命令就成,慢慢向键盘党靠拢,虽然不说能够提高效率,至少不会因为找鼠标打断思路。


你好,我是看山。游于码界,戏享人生。如果文章对您有帮助,请点赞、收藏、关注。我还整理了一些精品学习资料,关注公众号「看山的小屋」,回复“资料”即可获得。

个人主页:https://www.howardliu.cn
个人博文:初始化 Ubuntu 工作环境
CSDN 主页:http://blog.csdn.net/liuxinghao
CSDN 博文:初始化 Ubuntu 工作环境

👇🏻欢迎关注我的公众号「看山的小屋」,领取精选资料👇🏻

公众号:看山的小屋