<commit_before>---

layout: post
title: Ubuntu的常用玩法
categories: 教程
description: 搭建的步骤
keywords: ubuntu, docker
---
> 作者：Jamosf

<h1 style="text-align:center">一、Linux界面安装</h1>

### **1. ubuntu图形界面介绍和安装**

现在最新的ubuntu16.04桌面版系统中默认的界面为Untiy，很多人不喜欢用这个桌面，因为其对内存的占用要大于之前的gnome桌面。我自己亲身操作的感受也是如此。
常用的Linux界面包括：GNOME（2.x、3）、Unity、KDE（类似windows7）、XFCE（有点类似mac桌面）、LXDE（类似于window95）。此外还有IceWM、Enlightenment、Fluxbox、OpenBox和JWM。值得注意的是，图形界面并不是只有将桌面背景更改而已，而是整个显示、控制、管理、图形软件都不相同了。

很多人说，安装完ubuntu系统后，只能看到命令行界面，无法切换到图形界面，这很可能是因为安装的时候没有把桌面装上，此时需要把图形界面装上就好了，命令如下：
```
$ sudo apt-get install x-window-system-core   #安装x－windows基础
$ sudo apt-get install gem   #安装登录管理器
$ sudo apt-get install ubuntu-desktop   #安装ubuntu桌面
```

一般情况下我还是喜欢使用GNOME桌面，因为其看起来更加简洁，那么下面安装一下GNOME桌面，命令如下：
```
$ sudo apt-get install gnome-session-fallback
或者
$ sudo apt-get install gnome-panel
```
我是使用下面一条命令安装成功的，如果要安装更加详细的工具和设置默认启动方式，可以参考：[地址](http://www.tuicool.com/articles/nUbMVbU)

安装完成后，注销登录的用户，在登录界面切换为GNOME界面，就可以使用了。

查看GNOME桌面版本的方法：
```
$ gnome-panel --version
或者
$ gnome-session --version
```

### **2. 远程VNC链接ubuntu桌面**

 -  安装vncserver
```
$ sudo apt-get install vnc4server
```
 -  启动vnc服务
```
$ vncserver
或者
$ sudo vncserver
```
首次启动时需要设置连接的密码，以后也可以通过vncpasswd进行修改。

 -  配置vnc，以图形化访问
```
$ vi ~/.vnc/xstartup
```
启动成功后，会在主目录下生成一个.vnc的目录，修改xstartup配置文件。

```
#!/bin/sh  
  
# Uncomment the following two lines for normal desktop:  
# unset SESSION_MANAGER  
# exec /etc/X11/xinit/xinitrc  
  
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup  
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources  
xsetroot -solid grey  
vncconfig -iconic &  
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop"  &  
#x-window-manager &  
gnome-session & 
```
将x-window-manager修改为自己的桌面，本文改为gnome-session &。

 -  停止服务，重启并设置屏幕显示的大小
```
$ vncserver -kill :1 
$ vncserver -geometry 1420x830 
```

<h1 style="text-align:center">二、Linux文件共享</h1>

```
我将Linux文件共享的方法分为以下几类：

1）通过简单的文件夹属性设置，提供文件的访问和拷贝；

2）通过ssh（secure shell）服务；

3）通过scp（secure copy）命令；

4）搭建文件服务器。

.......
```

目前我所接触到的linux文件共享的方法也就是上面几种，下面大致介绍一下各类方法的操作。

#### 1. 文件夹属性设置

其实很多人不知道，在windows／MacOS与linux之间传输文件，都可以简单的通过文件夹属性的设置达到，windows通过设置文件夹属性为共享，添加共享的权限为everyone或其他用户；MacOS在设置－共享，选择文件共享，添加共享文件夹和用户。在ubuntu中点击alt＋f2出来的搜索框中输入windows或MacOS主机的\\ip地址，即可看到其所有共享的文件夹。这样就能实现从其他系统向linux拷贝文件，但是如何设置将linux文件拷出呢？办法类似于windows文件共享的设置方法。在windows中查看linux文件是通过开始－运行中输入linux主机的\\ip地址，MacOS中在Finder中command＋k输入linux主机的\\ip地址。
上述这种方法适用于所有同学使用，尤其是非码农的同学一定要学会这种操作，节约大量的文件拷进拷出的时间。

#### 2. 通过ssh服务

windows电脑中安装一个mobaxterm或putty（pscp）。通过ssh登录，mobaxterm可以直接拖拽文件到linux目录，也可以从中拖出。putty的附带程序pscp可以很好的实现文件拷贝，pscp是个exe文件，但是需要通过命令行来执行，放到C:\WINDOWS\system32下就能直接在命令行下使用pscp命令了，一般用法：

```
pscp -参数 文件名 用户名@主机ip:/目标目录
pscp －r test.file root@192.168.1.12:/home/test
```

#### 3. 通过scp命令

##### windows to linux

```
scp -参数 文件名 用户名@主机ip:/目标目录
scp －r test.file root@192.168.1.12:/home/test
```

##### linux to windows

```
scp -参数 用户名@主机ip:/文件目录 目标目录 
scp －r root@192.168.1.12:/home/test.file ./ 
```

#### 4. 通过安装文件服务器

之前为了实现文件的共享，安装了samba服务器，安装起来也十分简单，详细可见我的另外一篇博客。

#### 5. 其他方法

NAS或自己搭建的文件服务器。
家里的路由和移动硬盘组合可以当作文件服务器使用，我现在把东西都放在移动硬盘里，将移动硬盘插在路由器上，在家里的任何一台电脑上都可以访问移动硬盘里面的数据，而且速度非常快。
除了路由之外，也可以通过树莓派来作为主体，在树莓派上搭建samba，将移动硬盘挂载到树莓派上，来作为文件服务器使用。

<h1 style="text-align:center">三、samba安装</h1>

samba服务器的介绍可以查看鸟哥私房菜服务篇中的文件服务器之二，有详细的介绍，本文只介绍samba的两种安装方式和配置。

#### 1. 离线安装

1) 下载samba压缩包samba-3.0.22-tar.gz
2）解压到目标目录，如/opt
3）解压之后，进入到source目录，执行以下命令

```
./configure
make
make install
```

4）修改配置文件，将example/samba.conf.default 拷贝到/usr/local/samba/lib，将其名称修改为samba.conf，写入的配置信息如下：

```
[global]
workgroup = Linux # 在windows上显示的目录名称
netbios name = test 
server string = Linux Samba Server TextServer
Security = share # 安全等级

[Linux]
path = /root  # 共享/root目录
writeable = yes # 写的权限
browsable = yes # 查看的权限
guest ok = yes # 访客身份
```

设置以guest身份登录，无需密码。

#### 2. 在线安装

1）在命令行中输入：

```
sudo apt-get install samba samba-common-bin
```

2）进入/etc/samba目录，修改smb.conf配置文件，只需要将[home]块的注释取消即可，共享/home文件夹
3）将当前用户添加到samba访客中：

```
sudo smbpasswd -a username
```

 输入两次密码。

#### 3. 启动服务

命令行输入：

```
smbd
nmbd
```

windows连接采用：\\\ip
linux连接采用：smbclient －L //ip

<h1 style="text-align:center">三、docker安装和基本使用</h1>

<h2 style="text-align:center">3.1 docker安装</h2>

Docker是一种容器，但它是轻量级的。目前在中国，已经有许多Docker使用者，也建立了相应的中文社区。Docker组件包括：Docker客户端和服务器、Docker镜像、Registry和Docker容器。
那么，下面记录一下在linux中安装Docker的步骤。

- 检查内核版本

在linux中使用命令即可：
```
$ name －a 
```
- 检查Device Mapper

```
$ sudo grep device-mapper /proc/devices
```
- 添加Docker的APT仓库

```
$ sudo sh -c "echo deb https://get.docker.io/ubuntu docker main> /etc/apt/sources.list.d /docker.list"
```
- 添加Docker仓库的GPG密钥

```
$ curl -s https://get.docker.io/gpg | sudo apt-get add -
```
在这一步安装的过程中很容易碰到提示：gpg: no valid OpenPGP data found. 这是因为电脑不能访问外网导致的，向终端输入以下代码：
```
$ gpg --keyserver pgpkeys.mit.edu --recv-key D8576A8BA88D21E9
$ gpg -a --export  D8576A8BA88D21E9 | sudo apt-key add -
```
结果会提示ok，但是ok不一定代表成功。D8576A8BA88D21E9这一串数字换成自己的公钥（public key）。先继续下一步。

- 更新APT源

```
$ sudo apt-get update
```
- 安装Docker软件包

```
$ sudo apt-get install lxc-docker
```
- 检查Docker是否已经成功安装

```
$ sudo docker info
```

- UFW文件更改

```
$ vi /etc/default/ufw
$ DEFAULT_FORWARD_POLICY="ACCEPT"
$ sudo ufw reload     
```
- 绑定到网络接口

```
$ sudo /usr/bin/docker -d -H tcp://0.0.0.0:2375
```

- 增加环境变量

```
export DOCKER_HOST="tcp://0.0.0.0:2375"
```

- 检查是否运行

```
$ sudo status docker
```
 这时系统又出现提示：status: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused。可以通过修改upstart和system的默认启动方式解决。也可以在不修改的情况下通过下面的命令查看：
```
$ service docker status
```

> 更新：现在直接使用apt-get install 命令就可以安装了，无需上面的步骤。

<h2 style="text-align:center">3.2 docker常用命令</h2>

- 安装mac的boot2docker工具：可以使用brew install boot2docker或者下载boot2docker的客户端安装程序，但前者需要自己安装virtualbox虚拟机，后者安装包内带virtualbox
- 运行简单的docker程序

```
 docker run -it cowsay /bin/bash<commit_msg>change<commit_after>---

layout: post
title: Ubuntu的常用玩法
categories: 教程
description: 搭建的步骤
keywords: ubuntu, docker
---
> 作者：Jamosf

<h1 style="text-align:center">一、Linux界面安装</h1>

### **1. ubuntu图形界面介绍和安装**

现在最新的ubuntu16.04桌面版系统中默认的界面为Untiy，很多人不喜欢用这个桌面，因为其对内存的占用要大于之前的gnome桌面。我自己亲身操作的感受也是如此。
常用的Linux界面包括：GNOME（2.x、3）、Unity、KDE（类似windows7）、XFCE（有点类似mac桌面）、LXDE（类似于window95）。此外还有IceWM、Enlightenment、Fluxbox、OpenBox和JWM。值得注意的是，图形界面并不是只有将桌面背景更改而已，而是整个显示、控制、管理、图形软件都不相同了。

很多人说，安装完ubuntu系统后，只能看到命令行界面，无法切换到图形界面，这很可能是因为安装的时候没有把桌面装上，此时需要把图形界面装上就好了，命令如下：
```
$ sudo apt-get install x-window-system-core   #安装x－windows基础
$ sudo apt-get install gem   #安装登录管理器
$ sudo apt-get install ubuntu-desktop   #安装ubuntu桌面
```

一般情况下我还是喜欢使用GNOME桌面，因为其看起来更加简洁，那么下面安装一下GNOME桌面，命令如下：
```
$ sudo apt-get install gnome-session-fallback
或者
$ sudo apt-get install gnome-panel
```
我是使用下面一条命令安装成功的，如果要安装更加详细的工具和设置默认启动方式，可以参考：[地址](http://www.tuicool.com/articles/nUbMVbU)

安装完成后，注销登录的用户，在登录界面切换为GNOME界面，就可以使用了。

查看GNOME桌面版本的方法：
```
$ gnome-panel --version
或者
$ gnome-session --version
```

### **2. 远程VNC链接ubuntu桌面**

 -  安装vncserver
```
$ sudo apt-get install vnc4server
```
 -  启动vnc服务
```
$ vncserver
或者
$ sudo vncserver
```
首次启动时需要设置连接的密码，以后也可以通过vncpasswd进行修改。

 -  配置vnc，以图形化访问
```
$ vi ~/.vnc/xstartup
```
启动成功后，会在主目录下生成一个.vnc的目录，修改xstartup配置文件。

```
#!/bin/sh  
  
# Uncomment the following two lines for normal desktop:  
# unset SESSION_MANAGER  
# exec /etc/X11/xinit/xinitrc  
  
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup  
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources  
xsetroot -solid grey  
vncconfig -iconic &  
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop"  &  
#x-window-manager &  
gnome-session & 
```
将x-window-manager修改为自己的桌面，本文改为gnome-session &。

 -  停止服务，重启并设置屏幕显示的大小
```
$ vncserver -kill :1 
$ vncserver -geometry 1420x830 
```

<h1 style="text-align:center">二、Linux文件共享</h1>

```
我将Linux文件共享的方法分为以下几类：

1）通过简单的文件夹属性设置，提供文件的访问和拷贝；

2）通过ssh（secure shell）服务；

3）通过scp（secure copy）命令；

4）搭建文件服务器。

.......
```

目前我所接触到的linux文件共享的方法也就是上面几种，下面大致介绍一下各类方法的操作。

#### 1. 文件夹属性设置

其实很多人不知道，在windows／MacOS与linux之间传输文件，都可以简单的通过文件夹属性的设置达到，windows通过设置文件夹属性为共享，添加共享的权限为everyone或其他用户；MacOS在设置－共享，选择文件共享，添加共享文件夹和用户。在ubuntu中点击alt＋f2出来的搜索框中输入windows或MacOS主机的\\ip地址，即可看到其所有共享的文件夹。这样就能实现从其他系统向linux拷贝文件，但是如何设置将linux文件拷出呢？办法类似于windows文件共享的设置方法。在windows中查看linux文件是通过开始－运行中输入linux主机的\\ip地址，MacOS中在Finder中command＋k输入linux主机的\\ip地址。
上述这种方法适用于所有同学使用，尤其是非码农的同学一定要学会这种操作，节约大量的文件拷进拷出的时间。

#### 2. 通过ssh服务

windows电脑中安装一个mobaxterm或putty（pscp）。通过ssh登录，mobaxterm可以直接拖拽文件到linux目录，也可以从中拖出。putty的附带程序pscp可以很好的实现文件拷贝，pscp是个exe文件，但是需要通过命令行来执行，放到C:\WINDOWS\system32下就能直接在命令行下使用pscp命令了，一般用法：

```
pscp -参数 文件名 用户名@主机ip:/目标目录
pscp －r test.file root@192.168.1.12:/home/test
```

#### 3. 通过scp命令

##### windows to linux

```
scp -参数 文件名 用户名@主机ip:/目标目录
scp －r test.file root@192.168.1.12:/home/test
```

##### linux to windows

```
scp -参数 用户名@主机ip:/文件目录 目标目录 
scp －r root@192.168.1.12:/home/test.file ./ 
```

#### 4. 通过安装文件服务器

之前为了实现文件的共享，安装了samba服务器，安装起来也十分简单，详细可见我的另外一篇博客。

#### 5. 其他方法

NAS或自己搭建的文件服务器。
家里的路由和移动硬盘组合可以当作文件服务器使用，我现在把东西都放在移动硬盘里，将移动硬盘插在路由器上，在家里的任何一台电脑上都可以访问移动硬盘里面的数据，而且速度非常快。
除了路由之外，也可以通过树莓派来作为主体，在树莓派上搭建samba，将移动硬盘挂载到树莓派上，来作为文件服务器使用。

<h1 style="text-align:center">三、samba安装</h1>

samba服务器的介绍可以查看鸟哥私房菜服务篇中的文件服务器之二，有详细的介绍，本文只介绍samba的两种安装方式和配置。

#### 1. 离线安装

1) 下载samba压缩包samba-3.0.22-tar.gz
2）解压到目标目录，如/opt
3）解压之后，进入到source目录，执行以下命令

```
./configure
make
make install
```

4）修改配置文件，将example/samba.conf.default 拷贝到/usr/local/samba/lib，将其名称修改为samba.conf，写入的配置信息如下：

```
[global]
workgroup = Linux # 在windows上显示的目录名称
netbios name = test 
server string = Linux Samba Server TextServer
Security = share # 安全等级

[Linux]
path = /root  # 共享/root目录
writeable = yes # 写的权限
browsable = yes # 查看的权限
guest ok = yes # 访客身份
```

设置以guest身份登录，无需密码。

#### 2. 在线安装

1）在命令行中输入：

```
sudo apt-get install samba samba-common-bin
```

2）进入/etc/samba目录，修改smb.conf配置文件，只需要将[home]块的注释取消即可，共享/home文件夹
3）将当前用户添加到samba访客中：

```
sudo smbpasswd -a username
```

 输入两次密码。

#### 3. 启动服务

命令行输入：

```
smbd
nmbd
```

windows连接采用：\\\ip
linux连接采用：smbclient －L //ip

<h1 style="text-align:center">三、docker安装和基本使用</h1>

<h2 style="text-align:left">3.1 docker安装</h2>

Docker是一种容器，但它是轻量级的。目前在中国，已经有许多Docker使用者，也建立了相应的中文社区。Docker组件包括：Docker客户端和服务器、Docker镜像、Registry和Docker容器。
那么，下面记录一下在linux中安装Docker的步骤。

- 检查内核版本

在linux中使用命令即可：
```
$ name －a 
```
- 检查Device Mapper

```
$ sudo grep device-mapper /proc/devices
```
- 添加Docker的APT仓库

```
$ sudo sh -c "echo deb https://get.docker.io/ubuntu docker main> /etc/apt/sources.list.d /docker.list"
```
- 添加Docker仓库的GPG密钥

```
$ curl -s https://get.docker.io/gpg | sudo apt-get add -
```
在这一步安装的过程中很容易碰到提示：gpg: no valid OpenPGP data found. 这是因为电脑不能访问外网导致的，向终端输入以下代码：
```
$ gpg --keyserver pgpkeys.mit.edu --recv-key D8576A8BA88D21E9
$ gpg -a --export  D8576A8BA88D21E9 | sudo apt-key add -
```
结果会提示ok，但是ok不一定代表成功。D8576A8BA88D21E9这一串数字换成自己的公钥（public key）。先继续下一步。

- 更新APT源

```
$ sudo apt-get update
```
- 安装Docker软件包

```
$ sudo apt-get install lxc-docker
```
- 检查Docker是否已经成功安装

```
$ sudo docker info
```

- UFW文件更改

```
$ vi /etc/default/ufw
$ DEFAULT_FORWARD_POLICY="ACCEPT"
$ sudo ufw reload     
```
- 绑定到网络接口

```
$ sudo /usr/bin/docker -d -H tcp://0.0.0.0:2375
```

- 增加环境变量

```
export DOCKER_HOST="tcp://0.0.0.0:2375"
```

- 检查是否运行

```
$ sudo status docker
```
 这时系统又出现提示：status: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused。可以通过修改upstart和system的默认启动方式解决。也可以在不修改的情况下通过下面的命令查看：
```
$ service docker status
```

> 更新：现在直接使用apt-get install 命令就可以安装了，无需上面的步骤。

<h2 style="text-align:left">3.2 docker常用命令</h2>

- 安装mac的boot2docker工具：可以使用brew install boot2docker或者下载boot2docker的客户端安装程序，但前者需要自己安装virtualbox虚拟机，后者安装包内带virtualbox
- 运行简单的docker程序

```
 docker run -it cowsay /bin/bash
{'fraction_non_alphanumeric': 0.14618336886993605, 'fraction_numerical': 0.025245202558635393, 'mean_word_length': 5.532590529247911, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 33, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 10, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6177507', 'n_tokens_mistral': 7587, 'n_tokens_neox': 7852, 'n_words': 721}