/ linux

ubuntu

ubuntu 16.04 操作手册

已更新为 16.04

[Official Ubuntu Documentation](https://help.ubuntu.com/)

ubuntu 更换软件源

ubuntu 需要手动更换国内镜像源,centos 会自动选择最快的镜像源。

mv /etc/apt/sources.list /etc/apt/sources.list.bak
vi /etc/apt/sources.list

根据阿里云文档:http://mirrors.aliyun.com/help/ubuntu

将 Quantal(12.10) 的内容加入 /etc/apt/sources.list

然后再将 /etc/apt/sources.list 中的 quantal 替换成 xenial(系统当前版本16.04的代号)

sed -i -e "s/quantal/xenial/g" /etc/apt/sources.list

然后更新软件源列表:

apt update

如果提示有软件可以更新:

Fetched 27.3 MB in 13s (2,005 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
42 packages can be upgraded. Run 'apt list --upgradable' to see them.

则安装更新:

apt upgrade

Ubunt 16.04 中的更新

  • apt 替代 apt-get
  • sysytemctl 替代

Initial Server Setup with Ubuntu 16.04

更新

Update package lists

sudo apt-get update

Upgrade installed packages

sudo apt-get upgrade

添加用户

adduser sammy
usermod -aG sudo sammy

初次登陆(client语系为zh_CN,server端需要初始化)

sudo apt-get install language-pack-zh
# or
sudo locale-gen zh_CN.UTF-8

创建普通用户

首先在服务器上创建一个和自己开发机上一样的同名用户,比如在开发机上 whoami 的输出是 peter ,
那就到服务器上也创建一个同名的用户。具体创建方法是

adduser peter --ingroup sudo

--ingroup sudo 的意思是,新用户 peter 属于一个名为 sudo 的组,这样可以保证peter这个用户可以拥有超级用户权限。

更新环境变量

安装 nvm 之后,需要更新环境变量后即可使用

source ~/.profile

修改 DNS

ubuntu系统修改DNS方法

sudo vi  /etc/resolvconf/resolv.conf.d/tail

添加

nameserver 223.5.5.5
nameserver 8.8.8.8

DNS最终是配置在/etc/resolv.conf文件中的,需要更新一下resolvconf的配置。

sudo resolvconf -u

查看 /etc/resolv.conf

确认时区

date

Mon Jun 12 03:56:00 UTC 2017

sudo timedatectl set-timezone Asia/Shanghai
date

Mon Jun 12 11:57:24 CST 2017

ubuntu 14.04 下可以通过手动修改文件 .profile in your home directory,追加:

TZ='Asia/Shanghai'; export TZ

然后重新登录即可。

确认 swap

国内阿里云默认没有开启 swap

free -m
$ free -m
             total       used       free     shared    buffers     cached
Mem:           489        239        250          5          7         69
-/+ buffers/cache:        161        328
Swap:            0          0          0

注意:

Swap:            0          0          0

可以看到 swap 为 0,很多时候程序会因为内存空间不够而报错。我们需要手动开启 swap

安装 MariaDB

http://haobing.wang/mariadb/

安装php

➜  ~ sudo apt-get install php5-cli
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  php5-common php5-json php5-readline
Suggested packages:
  php-pear php5-user-cache
The following NEW packages will be installed:
  php5-cli php5-common php5-json php5-readline

➜  ~ php -v
PHP 5.5.9-1ubuntu4.21 (cli) (built: Feb  9 2017 20:54:58) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

安装 php 7

how-to-upgrade-to-php-7-on-ubuntu-14-04

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install zip unzip mcrypt

apt-cache search php7

apt-cache search php7.0

sudo apt-get install php7.0-fpm php7.0-mysql php7.0-mbstring php7.0-xml php7.0-zip php7.0-mcrypt php7.0-curl php7.0-bcmath php7.0-gd php7.0-intl php7.0-pgsql  php7.0-sqlite3

# 部分没有 php7 前缀的扩展
sudo apt-get install php-memcache php-imagick php-apcu

# 为了使用 mongodb
sudo apt-get install php7.0-mongodb

更改 nginx 配置文件: fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

隐藏 php 版本:

sudo vi /etc/php/7.0/fpm/php.ini

确认 expose_php 的值为 Off

重启 php-fpm,让扩展和配置生效:

sudo service php7.0-fpm restart

nginx error connect to php5-fpm.sock failed (13: Permission denied)

如果遇到 nginx 访问 php 提示没有权限,那是因为 nginx 的用户名是 nginx ,而 php 的用户名是 www-data,解决办法是:

sudo usermod -aG www-data nginx

aptitude

dpkg 命令是基于 Debian 系 PMS 工具的核心。包含在这个 PMS 中的其他工具有:

  • apt-get
  • apt-cache
  • aptitude

到目前为止,最常用的命令行工具是 aptitude。

命令行下使用 aptitude 命令有助于避免常见的软件安装问题,如软依赖关系缺失、系统环境不稳定及其他一些不必要的麻烦。

用 aptitude 管理软件包

sudo apt-get install aptitude

aptitude

用 aptitude 安装软件包

aptitude search 软件包名
aptitude install 软件包名

要检查安装过程是否正常,只要再次使用 search 选项就好了。

用 aptitude 更新软件

要用软件仓库中的新版本妥善地更新系统上所有的包,可用 safe-upgrade 选项。

sudo aptitude safe-upgrade

注意,这个命令不需要使用软件包名作为参数。因为 safe-upgrade 选项会将所有已安装的包更新到软件仓库中的最新版本,更有利于系统稳定。

显然,应该定期运行 aptitude 的 safe-upgrade 选项来保持系统处于最新状态。

用 aptitude 卸载软件

用 aptitude 卸载软件与安装及更新它们一样容易。我们要做出的唯一选择就是要不要保留软件数据和配置文件。

要想只删除软件包尔不删除软件数据和配置文件,可以使用 aptitude 的 remove 选项。

aptitude remove 软件包名

不仅要删除软件包,而且连软件数据和配置文件也要一起删除的话,可以使用 aptitude 的 purge 选项。

aptitude purge 软件包名

aptitude 仓库

aptitude 默认的仓库地址,存储在文件 /etc/apt/source.list 中。

aptitude 只会从这些仓库中下载文件。在搜索软件进行安装更新时, aptitude 同样只会检查这些库。

  • deb,说明这是一个已编译程序源。
  • deb-src,说明这是一个源代码的源。

apt

Find

apt-cache search nmap

Install a Package

sudo apt-get install nmap

Remove a Package

sudo apt-get remove nmap

Multiple Packages: You may specify multiple packages to be installed or removed, separated by spaces.

sudo apt-get purge nmap

apt-get purge will remove the package configuration files as well. This may or may not be the desired effect, so use with caution.

Update the Package Index

sudo apt-get update

Upgrade Packages

sudo apt-get upgrade

Log

Actions of the apt-get command, such as installation and removal of packages, are logged in the /var/log/dpkg.log log file.

Help

For further information about the use of APT, read the comprehensive Debian APT User Manual or type:

apt-get help

已安装软件列表

dpkg -l | grep nmap