0%

ubuntu常用软件安装和配置

timeline

  • update at 2019-01-11: ubuntu 18.04 LTS 的常用配置

简介

文章介绍了自己第一次接触 Linux 系统的软件安装及常用配置,作为一名应届新萌,一直不能流畅的操作服务器,所以决定逼自己一把,直接将自己的操作系统换成 ubuntu

wifi驱动缺失

ubuntu18.04默认没有wifi驱动,安装成功后需要将安装介质插入,然后在里边手动安装驱动,安装过程中可能有依赖,建议此时网线联网

ubuntu国内源

清华大学ubuntu镜像帮助页面选择对应的ubuntu版本,然后将系统原来的/etc/apt/sources.list进行备份,sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup,将页面中的配置覆盖原/etc/apt/sources.list文件的内容,这个运行sudo apt-get update && sudo apt-get upgrade

优化流程的配置

sudo免密

1
2
sudo vim /etc/sudoers
your_user_name ALL=(ALL) NOPASSWD: ALL

gnome扩展

打开gnome-extensions在浏览器中添加gnome的插件,然后在terminal中添加gnome-shell

1
sudo apt-get install chrome-gnome-shell

之后就可以直接在浏览器中搜索插件并安装了

  • Pixel Saver: 减少最大化后的窗口标题大小
  • Dash to Dock: 将会自定折叠dock,调整dock的位置,增加屏幕的大小

应用程序

shadowsocks客户端

外面的世界很精彩,ss自然也会在我的安装清单中,各种系统的安装请参考页面安装指南.

ubuntu推荐用ppa方式安装

```shell
sudo add-apt-repository ppa:hzwhuang/ss-qt5
sudo apt-get update
sudo apt-get install shadowsocks-qt5
```

ppa的源在ubuntu 18.04中已经不管用了,推荐直接用sslocal启动,安装方式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo apt install shadowsocks
# 创建 sslocal 本地配置文件
mkdir ~/.sslocal
vim ~/.sslocal/sslocal.json
# {
# "server": <your_server_ip>,
# "server_port": <your_port>,
# "local_address": "127.0.0.1",
# "local_port": 1080,
# "password": <your_service_pwd>,
# "timeout": 300,
# "method": "RC4-MD5"
# }
sslocal -c ~/.sslocal/sslocal.json

设置开机启动,crontab -e

1
@reboot /usr/bin/python /usr/bin/sslocal -c /home/zhongjiajie/.sslocal/sslocal.json

ss服务端可以配置多个账户登录,配置方式如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat /etc/shadowsocks.json
{
"server":"your_server_ip",
# 你的端口对应的密码
"port_password":{
"8381":"pass1",
"8382":"pass2",
"8383":"pass3",
"8384":"pass4"
},
"timeout":60,
"method":"rc4-md5",
"fast_open":false,
"workers":1
}

Chrome 配置 SwitchyOmega里面介绍了 SwitchyOmega 的简单配置使用,包括设置 ss 代理、配置国家防火墙、配置自动切换代理等

chrome

谷歌浏览器,这个没有什么比较解释,很多插件和google的app都在chrome上面,下载方式有两种

1
2
3
4
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt-get update
sudo apt-get install google-chrome

安装完成后打开chrome发现及时运行了ss客户端还是没有办法翻墙,这个和windows下比较不同,ubuntu下需要手动设置代理才能翻墙,但是发现代理软件需要登陆chrome应用市场下载,后来发现start Google Chrome with proxy command可以在命令行启动chrome,于是在命令行下运行google-chrome --proxy-server="socks5://127.0.0.1:1080"然后chrome就能科学上网了

修改root角色密码

1
2
sudo passwd root
# enter root password and repeat it

配置hosts文件

1
2
3
4
5
6
7
8
9
$ cat /etc/hosts
# 微软onedrive的DNS被污染,增加两行
204.79.197.217 onedrive.live.com
134.170.108.152 skyapi.onedrive.live.com

# IntelliJ Pycharm 检测是注册url
0.0.0.0 account.jetbrains.com
192.168.0.253 slave.isoft
192.168.0.252 hdp.isoft

zsh

zsh被称为终极shell,比ubuntu默认的bash要强大不少。根据Installing ZSH安装zsh

1
2
3
4
5
6
7
8
9
10
11
sudo apt-get install zsh
# check if installed
zsh --version
# check default shell in system
echo $SHELL

# 下载 oh-my-zsh 项目来配置 zsh 会自动读取环境变量并且自动帮 zsh 进行设置
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

# make zsh as your default shell
chsh -s $(which zsh)

thefuck

thefuck 是自动纠正上一个命令的命令行工具,经常用命令行的同学怎么可以错过

1
2
3
4
5
6
7
sudo apt update
sudo apt install python3-dev python3-pip
sudo pip3 install thefuck

# 修改 .zshrc 文件
eval $(thefuck --alias fuck)
source ~/.zshrc

tmux

1
2
# 安装
sudo apt-get install tmux
  • 配置文件
1
2
3
4
5
6
$ cat ~/.tmux.conf
# 默认<prefix>是Ctrl+b,如果你觉得不好按可以调整为Ctrl+a
unbind ^b
set -g prefix 'C-a'
# Tmux动态载入配置而不是重启 设一个快捷键<prefix>r来重新载入配置
bind r source-file ~/.tmux.conf \; display-message "Config reloaded"
  • 基本使用方式

tmux-concept相关概念

[[tmux-concept.png|tmux-concept]]

<prefix>指的是tmux的前缀键,所有tmux快捷键都需要先按前缀键.它的默认值是Ctrl+b

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 快捷键帮助列表
<prefix>?

# 新建一个session
tmux new -s <session_name>
# 或者新建一个无名session然后重命名
tmux
<prefix>$
# unicode 显示问题 启动tmux增加参数
tmux -u
# detach 退出 Tmux Session,回到父级 Shell
<prefix>d
# 在bash查看当前tmux服务有哪些session
tmux ls
# 根据session名字回去该session
tmux a -t <session_name>
# 在tmux里面列出所有session及window的树结构 可以通过左右键展开树状结构 可以查看并切换session及windows
<prefix>s
# 关闭session
tmux kill-session -t <session_name>

# 新建windows
<prefix>c
# 切换同一session的第n个windows
<prefix><n>
# 关闭当前窗口
<prefix>&
# 切换window
<prefix><编号> # 切换到指定编号windows
<prefix>p # 切换至上一窗口
<prefix>n # 切换至下一窗口
<prefix>w # 通过window列表切换window
# 重命名当前windows
<prefix>,
# 修改当前window编号
<prefix>.

# 水平分割窗口 形成两个Pane
<prefix>%
# 垂直分割窗口 形成两个Pane
<prefix>\"
# 关闭当前Pane
<prefix>x
# 最大化当前Pane 重复一次恢复正常
<prefix>z
# 显示Pane编号 在编号消失前输入对应的数字可切换到相应的Pane
<prefix>q
# 移动光标切换Pane
<prefix><方向键>
# 调整pane大小
<prefix><ctrl+方向键> # 以1个单元格为单位调整当前pane边缘
<prefix><alt+方向键> # 以5个单元格为单位调整当前pane边缘
# 切换 Pane 布局
<prefix><space>

# 复制粘贴
# 在Tmux中通过`<prefix>[`进入拷贝模式,按下<space>开始拷贝。然后用Vim/Emacs快捷键选择文本,按下<Enter>拷贝所选内容。然后通过`<prefix>]`进行粘贴

jq

jq是是linux下的json格式化神器,如果有安装python的情况下也可以使用json.tool完成.echo '{"one": 1, "two": 2}' | python -m json.tool

1
2
3
4
5
6
7
8
9
10
11
12
13
# install
sudo apt-get install jq
# qiuck start
echo '{"one": 1, "two": 2, "name": "zhongjiajie"}' | jq
# 获取key
echo '{"one": 1, "two": 2, "name": "zhongjiajie"}' | jq '.name'
# 嵌套解析
cat json_test.txt | jq '.location.city'
# 内建函数
# 获取所有的key
cat json_test.txt | jq 'keys'
# 判断某个可以是否存在
cat json_test.txt | jq 'has("location")'

pv

复制时候显示完成百分比、传输速度、剩余时间、已用时间,用法和cp类似: pv src_file > dest_file,参照如何使用 pv 命令监控 linux 命令的执行进度

guake

有了tmux之后guake很少用了

F12可以快速生成一个terminal,然后失去焦点后会自动缩进去的终端,在临时处理事情的时候非常有用sudo apt-get guake这里给了一些Guake can not init!问题的处理方式。

Python

Python虚拟环境的安装

ubuntu 系统内置两个版本的 Python ,之前一直用py2,但是考虑到20年py2就要停止维护了,所以打算上py3, ubuntu 16.04 默认两个版本的 python 都有安装,开发的时候一般都会用虚拟环境以免 ubuntu 原生的工具被破坏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 安装 pip3
sudo apt-get install python-pip3
pip3 --version

# 安装 virtualenv
pip install virtualenv
virtualenv --version

# 安装 virtualenvwrapper
pip install virtualenvwrapper

# 编辑你的 .bashrc 或者 .zshrc 在最后面添加
VIRTUALENVWRAPPER_PYTHON=$(which python3) # 这句一定要添加,不然会默认用python2 来解析
# 或者加 VIRTUALENVWRAPPER_PYTHON='/path/to/python3'
export WORKON_HOME=$HOME/.virtualenvs
source $(which virtualenvwrapper.sh)

# virtualenvwrapper 使用
mkvirtualenv venv
deactivate
rmvirtualenv venv

pip 换国内源

官方源很好,但是下载速度比较慢,所以把 pip 默认的源从官方源改成国内源提高速度,等国内源下载确实有问题时再去官方源下载,国内源用的是清华大学pypi源

java

Java JDK有两个版本,一个开源版本Openjdk,还有一个oracle官方版本jdk。下面记录在Ubuntu 16.04上安装Java JDK的步骤

1
2
3
4
5
6
7
8
9
10
11
12
# 开源版openjdk
sudo apt-get update
sudo apt-get install openjdk-8-jdk
java -version

# oracle Java JDK
# 安装依赖包
sudo apt-get install python-software-properties
# 添加仓库源
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

gradle

根据gradle-instal方式,推荐手动安装,然后将安装路径的bin子路径放在环境变量中vim ~/.zshrc; export PATH=$PATH:/opt/gradle/gradle-4.10.2/bin,测试是否存在gradle -v

maven

安装mavensudo apt-get install mvn,测试是否成功及版本mvn -v

vscode

文本编辑器,根据官网Running VS Code on Linux的介绍,建议直接下载deb包并且安装

Pycharm

JetBrains 出品的 Python IDE,可直接在 ubuntu software中下载

Idea

JetBrains 出品的 Java IDE,可直接在 ubuntu software中下载

数据库管理工具

  • datagrip: 跨三个平台的 jetbrains 独立出来的数据库管理工具,可以除了配置指定的数据源之外,还可以配置驱动链接 hive kylin 等数据源.但是 NoSQL 还没有很好的解决方案,可直接在ubuntu software中下载
  • dbeaver: 跨三个平台的数据库管理工具,天生支持 hive sparkhive neo4j Greenplum等数据库,但是不支持 mongo,同样是需要下载jar包通过jdbc进行链接

docker

docker 是非常好用的容器技术,可以说是改变了软件的交付和部署方式,docker 的安装如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 卸载旧版本的docker
sudo apt-get remove docker docker-engine docker.io

# docker 可选的内核模块
sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

# 使用 apt 镜像源安装
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

# 通过国内源安装
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 向 source.list 添加 docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# 安装 Docker CE
sudo apt-get update
sudo apt-get install docker-ce

# 启动 docker ce
sudo systemctl enable docker
sudo systemctl start docker

# 建立 docker 用户组
sudo groupadd docker
sudo usermod -aG docker $USER
# 重启之后可以在普通用户运行 docker

# 国内镜像加速
vim /etc/docker/daemon.json # 输入你用的国内镜像加速器 这里以docker中国为例
# {
# "registry-mirrors": [
# "https://registry.docker-cn.com",
# "https://<your-specific-key>.mirror.aliyuncs.com"
# ]
# }
sudo service docker restart

其中国内镜像加速器有
docker中国
阿里云
daocloud

输入法

update: 20180829,使用rime输入法替代搜狗输入法,用的是 fcitx-rime

1
2
3
4
sudo apt-get install fcitx-rime
im-configsudo reboot
fcitx-config-gtk3
# 重启后便可

搜狗输入法是我下载的第一个应用,他是和计算机交流的重要途径。直接前往搜狗for linux进行下载,安装指南直接看官网的安装指南。因为我是ubuntu 16.04.LTS,所以我更新了upgrade了系统的软件后直接双击.deb文件就完成了安装过程。

微信

可直接在 ubuntu 18.04的 ubuntu software下载

生活沟通必备,主要是QQ被我用烂了,不想用了。两种方式可以实现微信的安装,一种是在chrome插件里面安装,直接页面操作不多解释。另一种是第三方的安装方式electronic-wechat,如果是简单的交流肯定是用第一种方式更加简单粗暴,如果希望有更多的功能就要选择第二中方式。

shutter

截图软件,直接在ubuntu software搜索安装

网易云音乐

听歌必备神器,直接在网易云音乐下载安装点击deb包就可以安装

VLC

视频播放软件,直接在ubuntu software搜索安装

Tweaks

直接在ubuntu software安装

  • 配置开关在左边: windows->titlebar buttons->placement->left
  • 显示电池百分比: top bar->battery percentage
  • 不显示应用菜单: top bar->application menu
  • 调整显示时间相关: top bar
  • 桌面不显示icon: desktop->show icon

WPS

先在WPS-社区下载对应的安装包,到对应的下载目录安装sudo dpkg -i wps-office_10.1.0.5672_a21_amd64.deb,如果此时安装出错要用sudo apt-get install -f.安装成功打开回提示部分字体缺失,可以到https://pan.baidu.com/s/1eS6xIzo下载字体,解压字体并sudo mv wps_symbol_fonts /usr/share/fonts移动到对应的文件夹.运行命令生成字体索引信息sudo mkfontscale;sudo mkfontdir更新字体缓存sudo fc-cache

FBReader

轻量级的阅读器,支持多种电子书籍格式,直接在应用中心下载

钉钉

平时工作交流用钉钉,所以装了个钉钉 for linux,只需要按照README文档中介绍在relase页面下载相应的deb包进行安装就行

有道翻译

翻译软件,直接有道翻译页面下载deb然后安装,建议下载deepin版本

数据库客户端

Oracle client - sqlplus

安装 Oracle client 参见 Installing Oracle SQL*Plus client on Ubuntu 以及 How to install SqlPlus

设置开机启动,进入search your computer,就是按Windows键或者ubuntu建,输入startup

Remmina远程桌面客户端

ubuntu自带软件,支持多个远程协议 RDP SFTP SSH VNC

迅雷

通过迅雷固件制作而成的前端,需要自己编译,但是教程已经比较完整,详情查看Ubuntu上编译安装说明,安装成功启动后请看使用说明,因为有部分注意事项要遵守

由于迅雷前端固件经常会报错,所以直接用 xware + 迅雷远程下载网页版进行下载

1
2
3
4
docker pull zhongjiajie/docker-xware
docker-compose up -d
docker logs -f
# 可以在日志中看到对应的 `THE ACTIVE CODE IS`,将

百度网盘客户端

百度网盘和迅雷在国内都比较常用,百度网盘 Linux 客户端在 github 上主要是三个bypyBaiduPCSYufeikang/bcloud,其中前两个是命令行客户端,后面是图形化界面。本来考虑图形化界面,但是看到 README 说作者不维护了,Yufeikang/bcloud 就是因为原作者没有维护所以才拿过来修改的,现在 Yufeikang 也弃坑了,所以只能转战命令行客户端了。两个来选,当然选择我更加熟悉的 Python 版的 bypy 了。说不定还能提几个 issue 和 PR 呢。

1
2
3
4
5
# 我放在了虚拟环境中运行
workon venv
pip3 install bypy

bypy list # 在命令行界面会给出提示,让你去指定的网址进行登录注册,并将授权码复制到命令行

桌面美化相关

部分的桌面美化对于ubuntu来说还是有必要的,毕竟原来的桌面真的有点丑,我选择了大众而简单的美化路线,ubuntu tweakflatabulous-theme以及ultra-flat-icons。

1
2
3
4
5
6
7
8
9
10
11
12
# ubuntu tweak
sudo apt-get install unity-tweak-tool

# flatabulous-theme 主题
sudo add-apt-repository ppa:noobslab/themes
sudo apt-get update
sudo apt-get install flatabulous-theme

# flatabulous配套图标
sudo add-apt-repository ppa:noobslab/icons
sudo apt-get update
sudo apt-get install ultra-flat-icons

安装完成后就可以启动ubuntu tweak,然后在Tweak -> Theme中的GTK和windows主题中选择flatabulous,icon主题中选择ultra-flat

pandoc

格式转换工具pandoc,直接通过apt安装sudo apt-get install pandoc,将markdown转成HTML的例子如下pandoc -o test.html test.md

rdesktop

rdesktop is an open source client for Windows Remote Desktop Services, capable of natively speaking Remote Desktop Protocol (RDP) in order to present the user’s Windows desktop.

1
2
sudo apt-get install rdesktop
rdesktop [hostname]

Ref