![](https://i-blog.csdnimg.cn/blog_migrate/11ab61846568f7310c1fec6b75306fcd.jpeg)
全栈工程师开发手册 (作者:栾鹏)
架构系列文章
办公室需要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:
外观和快捷键,参考网址:https://blog.csdn.net/mrgong_/article/details/77817018
注意: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 启动配置界面,新建一个动作
重启。
如果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磁盘的解决方法
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