开发环境ubuntu16.04(ubuntu18.04)安装以后的初始化设置

时间:2022-04-25 01:21:59

全栈工程师开发手册 (作者:栾鹏)
架构系列文章


办公室需要ubuntu系统作为linux开发环境,目前大家用的多的是ubuntu16.04/ubuntu18.04.所以这里也以ubuntu16.4/ubuntu18.04作为办公开发环境来进行一些初始化。

打开命令行

ubuntu16.04/ubuntu18.04版本
右键——打开终端

有的Ubuntu 14.04没有自带右键打开终端功能,用起来非常不方便。今天偶尔想起来,网上搜了一下,方法如下:

$ sudo apt-get install nautilus-open-terminal

注销系统重新登录,即可。

切换桌面

使用下面命令可以查看当前linux系统的桌面环境是KED 或者是GNOME

zhu@ubuntu:~$ echo $DESKTOP_SESSION
gnome-classic

设置root用户密码

ubuntu默认root密码不启动,设置root密码,sudo passwd root 输入你安装时用户的密码,设置root密码。

更新软件源

sudo apt-get upgrade

更新软件

sudo apt-get update

安装谷歌浏览器

最好直接在浏览器中百度下载。会自动提示安装,如果没有界面,就要用下面的方法了。

需要网络代理

sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.list.d/

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub  | sudo apt-key add -

sudo apt-get update

sudo apt-get install google-chrome-stable

/usr/bin/google-chrome-stable

另一种安装方法

先在能连接国外网络的地方下载好
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
在目标地点安装
dpkg -i google-chrome*; apt-get -f install

输入法:搜狗

如果不喜欢系统自带的中文输入法,可以下载搜狗输入法。

首先安装fcitx
一、检测是否安装fcitx
首先检测是否有fcitx,因为搜狗拼音依赖fcitx

fcitx

提示:
程序“fcitx”尚未安装。 您可以使用以下命令安装:

sudo apt-get install fcitx-bin
sudo apt-get install fcitx-table
im-config

修改上面的ibus为fcitx,重启pc。

下载搜狗
https://pinyin.sogou.com/linux/?r=pinyin 双击下载的deb文件安装,在软件中心安装软件。

重启pc

fcitx-config-gtk3

选择搜狗就可以了。
并且为了能正常使用shift切换中英文,需要保持搜狗输入法为第一个,键盘-英语(美国)为第二个(保留第2个为英文是为了搜狗在shift能正常中英文切换)。其他的输入法删除即可。
要想使用shift进行中英文切换,还要重启。

安装必要软件

vim经常被用来编辑文件
curl用来下载文件

sudo apt-get install vim curl

登录时可以选择的登录用户

使用su root来测试是否可以进入root用户,如果出现#说明已经设置root用户的密码成功

使用root用户打开文件

sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

在打开文件中添加如下信息,来设置登录时可以选择用户登录

user-session=ubuntu
greeter-show-manual-login=true
all-guest=false

使用vi /root/.profile命令修改文件,找到mesg n,修改为:tty -s && mesg n || true

安装ssh服务端方式

安装ssh服务端方式,才能被其他电脑远程访问

sudo apt-get install openssh-server

创建公钥私钥,既能让别人顺利访问你,在同步gitlab仓库时也需要提供自己的公钥。

ssh-keygen

一路回车,命令生成密钥,生成的私钥公钥文件在 根目录的 .ssh/目录下。

查看公钥

cat .ssh/id_rsa.pub

可以看到自己的公钥为以下类似字符串

ssh-rsa AAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5R

公钥在后面链接gitlab时需要使用

查看本机ip地址

ifconfig

安装ubuntu终端多窗口分屏Terminator

sudo apt-get install terminator

快捷键

Ctrl+Shift+E    垂直分割窗口
Ctrl+Shift+O    水平分割窗口
    F11         全屏
Ctrl+Shift+C    复制
Ctrl+Shift+V    粘贴
Ctrl+Shift+N    或者 Ctrl+Tab 在分割的各窗口之间切换
Ctrl+Shift+X    将分割的某一个窗口放大至全屏使用
Ctrl+Shift+Z    从放大至全屏的某一窗口回到多窗格界面

注意:由于terminator是python写的,所以不同的python版本启动可能会出错.安装后直接在命令行中输入terminator,会正常启动,如果不能正常启动会报错.例如我的电脑是python3.6,启动报错,需要将文件/usr/bin/terminator

except (KeyError,ValueError), ex:
修改成
except Exception as e:


注意:terminator是基于python2的,如果安装的是python3,终端输入: sudo gedit /usr/share/terminator/terminator 将第一行的#!/usr/bin/python修改为#!/usr/bin/python2
输入: sudo gedit /usr/share/terminator/remotinator 修改同上。
然后Ctrl + Alt+T
发现终端terminator回来了

在右键菜单中添加open in terminator
sudo add-apt-repository ppa:daniel-marynicz/filemanager-actions
sudo apt-get install filemanager-actions-nautilus-extension

通过上面两句话添加PPA并且安装Nautilus-actions

使用fma-config-tool 启动配置界面,新建一个动作

开发环境ubuntu16.04(ubuntu18.04)安装以后的初始化设置


开发环境ubuntu16.04(ubuntu18.04)安装以后的初始化设置


开发环境ubuntu16.04(ubuntu18.04)安装以后的初始化设置


开发环境ubuntu16.04(ubuntu18.04)安装以后的初始化设置


重启。

如果terminator不好用,使用tmux

sudo apt-get install tmux

ctrl+b 是tmux的前置命令

ctrl+b % 水平分割出一个新窗口

ctrl+b “ 垂直分割出一个新窗口

ctrl+b x 关闭当前光标所在窗口

ctrl+b ! 关闭所有窗口

ctrl+b 方向键 切换窗口

ctrl+b t 显示一个时钟

ctrl+b pageup/pagedown 普通模式下的pageup/pagedown,按ecs键退出翻页

ctrl+b [ 进入复制模式,此时和普通模式下复制粘贴一样, 按ecs键退出

如果想使用鼠标可以控制

查看tmux当前版本:

tmux -V (大写V)

编辑tmux配置文件 :

sudo nano ~/.tmux.conf

tmux2.1之后版本:

set-option -g mouse on

tmux2.1之前版本:

setw -g mouse-resize-pane on

setw -g mouse-select-pane on

setw -g mouse-select-window on

setw -g mode-mouse on

这几行配置加到 ~/.tmux.conf 中,然后在tmux里面按 C-b : 执行 source ~/.tmux.conf 即可生效

python和pip的基本配置

ubuntu16.04自带的python2和python3,不过默认链接是python2

更换python链接版本

将/etc/bin/python链接转为python3.5,(原链接指向python2.7)

sudo rm /usr/bin/python   # 删除原链接
sudo ln -s /usr/bin/python3.5 /usr/bin/python   # 建立新链接

在命令行输入python,查看python版本

如果不知道安装在哪里了

which pip    # 查看在哪里
whereis pip/pip3   无法查到pip位置

安装pip和其他需要的插件

sudo apt-get install python3-pip python3-dev build-essential 
sudo pip3 install --upgrade pip 
sudo pip install --upgrade virtualenv 
sudo pip install --upgrade pip    # 升级pip后,pip不能再使用,可以通过下面的方法修复


ubuntu 18.04
apt install python3.6-dev
apt isntall python3-pip
sudo ln -s /usr/bin/python3 /usr/bin/python   # 建立新链接
sudo ln -s /usr/bin/pip3 /usr/bin/pip   # 建立新链接


gedit /usr/bin/pip 

修改对应部分,安装pip2的版本管理器
#!/usr/bin/python2
from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

切换pip的镜像源,不然pip下载太慢了

如果你想安装pip3的管理器
gedit /usr/bin/pip

修改对应部分,安装pip2的版本管理器

gedit /usr/bin/pip3 

#!/usr/bin/python3.6
from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

管理员权限创建或打开/etc/pip.conf文件,设置如下内容更换为阿里云镜像

[global]
trusted-host = mirrors.aliyun.com
index-url = http://mirrors.aliyun.com/pypi/simple

或豆瓣云镜像

[global]
trusted-host=pypi.douban.com
index-url = http://pypi.douban.com/simple/

安装python3.6,python3.7

安装依赖

# 安装依赖zlib、zlib-devel
# 在ubuntu里,zlib叫zlib1g,相应的zlib-devel叫zlib1g-dev
$ sudo apt-get install zlib1g
$ sudo apt-get install zlib1g-dev

首先去python官网下载python3的源码包,网址:https://www.python.org/

打开终端,利用命令cd 进入文件所在文件夹里
解压文件

tar xfz Python-3.6.1.tgz

这里使用xfz命令,而不建议使用-xvzf命令,因为其释放的文件夹需要root权限才可以更改或者删除。

进入释放的文件夹

cd Python-3.6.1/

添加配置

./configure --prefix=/usr/bin/python3.6

要配置的是安装Python需要的文件夹。配置完成后,终端会显示下面一段话,可以选择无视它,不影响后续操作。
If you want a release build with all optimizations active (LTO, PGO, etc),
please run ./configure –enable-optimizations

编译源码

sudo make

执行安装

sudo make install

安装过程持续几分钟,安装成功后,安装的Python就在 计算机/usr/python3.6 文件夹之中。

修改默认Python版本

Ubuntu16.04版本集成了Python2.7及3.5版本,系统中原来的python在/usr/bin/python,通过ls -l可以看到,python是一个软链接,链接到本目录下的python2.6
我们需要先把这个默认链接删除,再新建一个python3.6的软链接.
首先要确保终端的指针已经退回根目录,再进行以下操作

需要删除原有的Python链接文件:

rm /usr/bin/python

注意如果终端提示:rm: 无法删除’/usr/bin/python’: 权限不够,那么就需要打开root权限删除链接。

建立指向Python3.6的链接:

ln -s /usr/bin/python3.6/bin/python3.6 /usr/bin/python

查询Python版本

python --version

如果显示是python3.6.1则说明安装成功!

安装配置git

研发人员的代码一般保存在gitlab上,因为可以创建私有仓库。

注册gitlab需要能连接国外网络,登录不需要

登录gitlab账号后,打开git账户settings,在SSH key中添加本地公钥。本地公钥的查看方法,在前面ssh处有介绍。

安装Git

sudo apt-get install git

克隆分支到本地仓库,这里是克隆到当前目录。

git clone -b 分支名 git@网址/仓库名

例如:git clone -b offline-v2.5.0 git@gitlab.com:intellif/kubespray.git

克隆远程仓库到本地

git clone git@网址/仓库名

关于上面两个命令的git@网址/仓库名,可以在仓库的首页看到。

安装虚拟机

安装虚拟机,不要使用在线安装方法,不一定能成功
直接去下载官网最新的虚拟机deb文件,然后双击安装最好。https://www.virtualbox.org/wiki/Downloads

截图

安装

sudo apt-get install gnome-screenshot

在搜索中,直接搜索截图,就可以搜索到gnome-screenshot

安装系统清理工具 BleachBit

sudo apt-get install bleachbit

安装压缩软件RAR

sudo apt-get install rar

安装微信

安装依赖

sudo apt -y install libgconf2-4

方法1 – 使用Snap来安装微信

安装snap
sudo apt install snapd snapd-xdg-open
安装
sudo snap install electronic-wechat
启动
electronic-chat
要删除微信客户端
sudo snap remove electronic-wechat

方法2 – 通过代码方式安装
从github website. 下载electronic-chat, 地址:https://github.com/geeeeeeeeek/electronic-wechat/releases
选择合适的版本下载病解压

tar xvf linux-x64.tar.gz

解压成功后就可以运行以下命令启动微信客户端了

./electronic-wechat

第三种方法:直接在ubuntu软件中搜索wechat,就可以安装了。

安装类似mac的界面

安装docky,执行

sudo apt install docky

关闭不反应的窗口

当在运行中某些窗口出现死机,无法通过关闭按钮关闭窗口,可以在命令行输入xkill,然后鼠标再点击死机窗口就可以了。

软件相关操作

查看安装软件

dpkg -l

执行卸载:

sudo apt-get remove <package>   # 删除已安装的软件包(保留配置文件),不会删除依赖软件包,且保留配置文件。
sudo apt-get --purge remove <package>   # 删除软件及其配置文件

卸载软件:
在ubuntu下删除软件需要知道确切的包名,所以要学会查看软件的完整包名:

dpkg -l | grep mysql

查看到的可能是已经删除的,前面两个字符表示状态,rc表示已删除,但保留配置文件,ii表示已安装

查找软件安装位置:

which 软件名

双系统Ubuntu无法进入Windows磁盘的解决方法

开发环境ubuntu16.04(ubuntu18.04)安装以后的初始化设置

1.Ctrl+Alt+T打开终端,输入命令检测ntfs-3g是否已经安装:

locate ntfs-3g

输入安装安装命令:

sudo apt-get install ntfs-3g

2.修复挂载错误的相应的分区如提示中的/dev/sda7,输入修复命令:

sudo ntfsfix /dev/sda7

3.一般都是这样的修复不同的分区,有时候还会出现一下问题:
(我的这个分区是win10的系统盘,被拒绝了)
进win10,关闭快速启动,恩,对,关了它就ok

同一局域网下的windows和ubuntu共享文件夹

1、windows10和ubuntu连在同一个局域网上。
2、在win10上新建文件夹,右键属性-共享-添加所有用户可读写。确定共享生成共享链接。

例如我的文件名为windows_linux_share,生成的共享链接为//LAPTOP-NEFGGCT3/windows_linux_share

3、在ubuntu系统下安装samba-client(sudo apt-get install smbclient);

4、在ubuntu系统下安装cifs-utils(sudo apt-get install cifs-utils);

5、在ubuntu系统下新建目录my_share(mkdir /mnt/my_share);

在win10下修改用户名密码,如果你已经知道win用户密码了就不用修改了。ctrl+alt+del进入修改密码,可以看到自己的用户名和设置新的密码,新电脑的旧密码默认为空。

6、挂载windows上的windows_linux_share到ubuntu上的/mnt/my_share(sudo mount -t cifs -o username=lenovo //192.168.100.105/windows_linux_share /mnt/my_share,其中lenovo是windows的用户名,192.168.100.105是windows主机的ip地址,上述命令运行出现以下提示,Password for Administrator@192.168.100.105/windows_linux_share:,输入windows主机的lenovo用户的密码即可);

7、此外就可在/mnt/my_share目录下访问windows下windows_linux_share文件夹下的内容

将启动器放在底部

安装unity-tweak-tool

$sudo apt-get install  unity-tweak-tool
$unity-tweak-tool

选择“启动器”并进入。

在外观中,里面的position默认是左侧,选择“Bottom”。

要改变面板的大小,可以设置“图标大小”,面板是适应图标的。

调整启动器图标的顺序

如果想调节启动器上图标的位置,可以单击选中图标,然后向外拉动图标(注意不是直接按启动器的方向拉动,而是垂直启动器的方向拉动),当拉出原位置后,才能延启动器的方向拖动,改变图标的位置.

在启动器中添加快捷启动应用

例如eclipse快捷方式的创建
1、进入/usr/share/applications目录

root@PC:/usr/share/applications#

2、gedit创建一个eclipse.desktop文件

root@PC:/usr/share/applications# gedit eclipse.desktop

3、写入以下内容,并保存

[Desktop Entry]
Version=1.0
Name=eclipse
Exec=/home/XXXXXX/adt-bundle-linux-x86_64-20140702/eclipse/eclipse
Terminal=false
Icon=/home/XXXXXX/adt-bundle-linux-x86_64-20140702/eclipse/icon.xpm
Type=Application
Categories=Development

注意: Exec=和Icon=请替换成本地目录。

4、这时就可以在搜索中找到eclpise程序了,直接拖拽到启动器上即可。

标题栏实时显示网速,cpu内存

sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor  
sudo apt-get update  

sudo apt-get install indicator-sysmonitor

终端执行: indicator-sysmonitor &,然后Ctrl+C就可以实现后台运行indicator-sysmonitor

为了方便还要为程序添加开机启动!鼠标右键点击标题栏上图标,弹出菜单,选择首选项,

勾上Run on startup:, 这样就能开机启动了。切换到 Advanced 选项,

可以对要显示的信息的格式进行设置。

可以尝试设置其他格式,再Test,直到效果满意再点击保存。

好了,到此就结束了!

设置ubuntu软件列表的阿里云镜像池

备份原来的源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bakcup

编辑原来的文件

sudo vim /etc/apt/sources.list

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

更新

sudo apt update

也可以设置清华的镜像,参考https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/

18.04

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

硬盘分区,开机挂在

1、什么是分区?
分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁硬使用。分区表是一个硬盘分区的索引,分区的信息都会写进分区表。
2、为什么要有多个分区?

防止数据丢失:如果系统只有一个分区,那么这个分区损坏,用户将会丢失所的有数据。

增加磁盘空间使用效率:可以用不同的区块大小来格式化分区,如果有很多1K的文件,而硬盘分区区块大小为4K,那么每存储一个文件将会浪费3K空间。这时我们需要取这些文件大小的平均值进行区块大小的划分。

数据激增到极限不会引起系统挂起:将用户数据和系统数据分开,可以避免用户数据填满整个硬盘,引起的系挂起。

3、分区工具fdisk用法介绍

fdisk命令参数介绍
p、打印分区表。
n、新建一个新分区。
d、删除一个分区。
q、退出不保存。
w、把分区写进分区表,保存并退出。

sudo fdisk -l 查看硬盘

sudo fdisk /dev/sda 进入硬盘分区控制
根据提示划分分区(最后要输入w才能保存退出)
/dev/sda1 63 204862 204800 100M EFI 系统
/dev/sda2 206848 629352447 629145600 300G Linux 文件系统
/dev/sda3 629352448 1258498047 629145600 300G Linux 文件系统
/dev/sda4 1258498048 1953525134 695027087 331.4G Linux 文件系统

分别将300G左右的这三个分区挂在到

  • /home/luanpeng/data 用于个人数据存储
  • /var/lib/docker 用于docker数据存储
  • /data 用于系统数据存储

在使用硬盘之前必须对其分区进行格式化,并挂载。

sudo mkfs.ext4 /dev/sda2
sudo mkfs.ext4 /dev/sda3
sudo mkfs.ext4 /dev/sda4

创建挂在目录
sudo mkdir /home/luanpeng/data
sudo mkdir /data
sudo mkdir /var/lib/docker

挂载盘
sudo mount /dev/sda2 /home/luanpeng/data
sudo mount /dev/sda3 /var/lib/docker
sudo mount /dev/sda4 /data

挂载目录
mount --bind /data/home1 /home1 #挂载目录, # mount --bind olddir newdir
mount --bind /data/home2 /home2 # 挂载目录,将前面的目录,挂载成后面的目录
卸载
umount /var/lib/docker 卸载
umount /data 卸载

开机自动挂载,修改/etc/fstab文件,文件末尾添加(开机自动挂载)

/dev/sda2 /home/luanpeng/data defaults 0 0
/dev/sda3 /var/lib/docker ext4 defaults 0 0
/dev/sda4 /data ext4 defaults 0 0
/data/home1 /home1 none bind 0 0
/data/home2 /home2 none bind 0 0 # fstab中 olddir newdir none bind 0 0
init 6 重启检查
df /var/lib/ -kh 查看文件系统和目录挂载点

fusuma 自定义触摸板多点触控

github官网:https://github.com/iberianpig/fusuma

配置文件存储在~/.config/fusuma/config.yml

# 滑动
swipe:
  3:    # 三指滑动
    left: 
      command: 'xdotool key alt+Left'
    right: 
      command: 'xdotool key alt+Right'
    up: 
      command: 'xdotool key ctrl+t'
      threshold: 1.5
    down: 
      command: 'xdotool key ctrl+w'
      threshold: 1.5
  4:
    left: 
      command: 'xdotool key super+Left'
    right: 
      command: 'xdotool key super+Right'
    up: 
      command: 'xdotool key super+a'
    down: 
      command: 'xdotool key super+s'
# 缩放
pinch:
  2:
    in:
      command: 'xdotool key ctrl+plus'
      threshold: 0.1
    out:
      command: 'xdotool key ctrl+minus'
      threshold: 0.1
# 对滑动/捏合敏感
threshold:
  swipe: 1
  pinch: 1
# 滑动/捏合之间的延迟
interval:
  swipe: 1
  pinch: 1