去年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,为了图省事,经常会用到终端,几条简单命令就成,慢慢向键盘党靠拢,虽然不说能够提高效率,至少不会因为找鼠标打断思路。