Ubuntu下安装 JDK 1.7/1.8(JDK8)以及环境变量配置教程(附:Tomcat 9安装)

本文将会讲述如何在ubuntu 系统安装JDK 1.7/1.8(JDK8) 以及openjdk 1.7, 以及在ubuntu linux 系统下的jdk环境变量的配置。在ubuntu 14.04 和16.04 系统下的jdk安装方法以及环境变量配置都是相同的。

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。

SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。

EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。

ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。

没有JDK的话,无法编译Java程序,如果想只运行Java程序,要确保已安装相应的JRE。

以下是各版本的名称及发布日期:

版本 名称 发行日期
JDK 1.1.4 Sparkler(宝石) 1997-09-12
JDK 1.1.5 Pumpkin(南瓜) 1997-12-13
JDK 1.1.6 Abigail(阿比盖尔–女子名) 1998-04-24
JDK 1.1.7 Brutus(布鲁图–古罗马政治家和将军) 1998-09-28
JDK 1.1.8 Chelsea(切尔西–城市名) 1999-04-08
J2SE 1.2 Playground(运动场) 1998-12-04
J2SE 1.2.1 none(无) 1999-03-30
J2SE 1.2.2 Cricket(蟋蟀) 1999-07-08
J2SE 1.3 Kestrel(美洲红隼) 2000-05-08
J2SE 1.3.1 Ladybird(瓢虫) 2001-05-17
J2SE 1.4.0 Merlin(灰背隼) 2002-02-13
J2SE 1.4.1 grasshopper(蚱蜢) 2002-09-16
J2SE 1.4.2 Mantis(螳螂) 2003-06-26
Java SE 5.0 (1.5.0) Tiger(老虎) 2004-09-30
Java SE 6.0 (1.6.0) Mustang(野马) 2006-04
Java SE 7.0 (1.7.0) Dolphin(海豚) 2011-07-28
Java SE 8.0 (1.8.0) Spider(蜘蛛) 2014-03-18
Java SE 9 2017-09-21

摘自:百度百科

Ubuntu安装 jdk 1.8(JDK8)及配置环境变量 (14.04/ 16.04)

我们将会通过两种方式来介绍如何在ubuntu linux系统下安装jdk 1.8 并配置jdk 环境变量。

方法一: 通过添加PPA 源来安装JDK 1.8 (JDK8)

1# 首先要添加ppa安装源

执行下面的命令:

$ sudo add-apt-repository ppa:webupd8team/java

命令输出如下:

[sudo] devops 的密码:
Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK7 / JDK8 / JDK9). There are no actual Java files in this PPA.
Important -> Why Oracle Java 7 And 6 Installers No Longer Work: http://www.webupd8.org/2017/06/why-oracle-java-7-and-6-installers-no.html
Ubuntu 16.10 Yakkety Yak is no longer supported by Canonical (and thus, Launchpad and this PPA). The PPA supports Ubuntu 17.10, 17.04, 16.04, 14.04 and 12.04.
More info (and Ubuntu installation instructions):
- for Oracle Java 7: http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html
- for Oracle Java 8: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html
Debian installation instructions:
- Oracle Java 7: http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html
- Oracle Java 8: http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html
Oracle Java 9 (for both Ubuntu and Debian): http://www.webupd8.org/2015/02/install-oracle-java-9-in-ubuntu-linux.html
Oracle JDK 9 is now considered stable. There are currently only 64bit builds (no other builds are available for download: http://www.oracle.com/technetwork/java/javase/downloads/index.html )
更多信息: https://launchpad.net/~webupd8team/+archive/ubuntu/java
按回继续或者 Ctrl+c 取消添加
gpg: 钥匙环‘/tmp/tmp77dgqq2l/secring.gpg’已建立
gpg: 钥匙环‘/tmp/tmp77dgqq2l/pubring.gpg’已建立
gpg: 下载密钥‘EEA14886’,从 hkp 服务器 keyserver.ubuntu.com
gpg: /tmp/tmp77dgqq2l/trustdb.gpg:建立了信任度数据库
gpg: 密钥 EEA14886:公钥“Launchpad VLC”已导入
gpg: 没有找到任何绝对信任的密钥
gpg: 合计被处理的数量:1
gpg:               已导入:1  (RSA: 1)
OK
$ sudo apt-get update

2# 安装jdk8 oracle-java-installer

执行下面命令:

$ sudo apt-get install oracle-java8-installer

3# 执行下面的命令,将jdk8 设置为默认的Java 运行版本

$ sudo apt install oracle-java8-set-default

4# 下面我们可以来检测一下JDK8 是否安装成功

执行命令:

$ java –version

命令输出:

java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
$ javac -version
javac 1.8.0_144

 

方法二: 通过安装jdk tar.gz 源码包的方式安装jdk 1.8 (JDK8)

1# 从官网下载jdk 1.8 的源码包 (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

执行下面命令:

$ wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz

2# 创建/usr/jvm 目录

执行命令:

$ sudo mkdir /usr/jvm

3# 解压缩刚才下载的源码包

执行命令:

$ tar zxvf jdk-8u144-linux-x64.tar.gz –C /usr/lib/jvm

4# 配置JDK环境变量

首先要编辑用户bashrc文件,加入下面的配置行:

执行命令:

sudo vim ~/.bashrc

在文件的末尾追加下面行:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_144  ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

如果想使环境变量马上生效,执行下面的命令:

source ~/.bashrc

5#设置系统默认jdk 版本

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/ jdk1.8.0_144/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/ jdk1.8.0_144/bin/javac 300
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/ jdk1.8.0_144/bin/jar 300
sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/ jdk1.8.0_144/bin/javah 300
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/ jdk1.8.0_144/bin/javap 300

然后执行:

sudo update-alternatives --config java

6# 测试JDK 1.8 是否安装配置成功

执行下面命令:

$ java –version

命令输出:

java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
$ javac -version
javac 1.8.0_144

 Ubuntu安装 jdk 1.7 配置环境变量(14.04/ 16.04)

下面我们来介绍如何在ubuntu linux系统下安装jdk 1.7 并配置jdk 环境变量. 安装JDK 1.7 的方法和1.8是一样,主要的安装和配置思路就是下载源码包,新建安装目录,解压缩安装包,设置环境变量,测试jdk环境。

1# 下载oracle JAVA JDK 1.7 源码包

执行下面命令:

$ wget http://download.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz

2# 创建安装目录

sudo mkdir /usr/lib/jvm

3# 解压缩安装jdk tar.gz 包

sudo tar zxvf jdk-7u67-linux-x64.tar.gz -C /usr/lib/jvm

4# 设置JDK环境变量

执行下面的命令,编辑/etc/profile 文件,并加入下面的配置行。

sudo gedit /etc/profile

加入环境变量内容

#set java environment
 export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_67
 export JRE_HOME=${JAVA_HOME}/jre
 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
 export PATH=${JAVA_HOME}/bin:$PATH

5# 设置默认的JDK

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_67/bin/java 300
 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_67/bin/javac 300

6# 测试JDK 1.7 是否安装配置成功

执行命令:

$ java -version

命令输出如下:

java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

如果显示出了JDK的版本号则说明JDK 1.7开发环境配置成功了。

Ubuntu安装openjdk1.7/1.8

1# 使用apt-get命令来安装OpenJDK

执行下面的命令:

#对于 openjdk 1.7

$sudo apt-get update
$ sudo apt-get install openjdk-7-jdk

# 对于openjdk 1.8

$sudo apt-get update
$ sudo ap[t-get install openjdk-8-jdk

2# 在多个JDK版本中切换

执行命令:

sudo update-alternatives –config java

选择你需要运行的JDK版本

再设置默认的JAVAC版本

执行命令:

sudo update-alternatives –config javac

3# 配置openJDK环境变量

编辑/etc/profile 配置文件,加入下面的配置行:

$ sudo vi /etc/profile

#对于openjdk 1.7加入下面的行

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
 export JRE_HOME=$JAVA_HOME/jre
 export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
 export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

#对于openjdk 1.8加入下面的行

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:JAVAHOME/lib:{JRE_HOME}/lib
export PATH=JAVAHOME/bin:PATH

4# 测试openjdk是否配置成功

执行下命令:
 $ java –version

输出如下:

#对于openjdk1.7

java version "1.7.0_95"
OpenJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

#对于openjdk 1.8

openjdk version “1.8.0_01-internal”
 OpenJDK Runtime Environment (build 1.8.0_01-internal-b04)
 OpenJDK 64-Bit Server VM (build 25.40-b08, mixed mode)

Linux下的JDK OpenJDK有什么区别?

对于JDK, 也有不同过的发行版本,比如Oracle java JDK, IBM JDK, OpenJDK, SUNJDK 等。 那么这些不同的JAVA JDK 到底有什么不同呢?来看我们下面的说明:

大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk. openjdk是jdk的开放原始码版本,以GPL协议的形式放出。 openjdk只包含最精简的JDK, 在安装openjdk的机器上,输入“java -version”显示的是openjdk. openJDK 与 Sun 的 JDK 功能都是一样的,只是版权信息不一样。 OpenJDK 公开了 JDK、JVM、JRE、Java 类库的源代码,而 Sun JDK 只公开了 Java 类库的源代码。

通过 LICENSE 文件可以看出 OpenJDK 是 GNU 许可证,而 Sun JDK 的 LICENSE 是 Java 许可证。OpenJDK, Sun JDK, IBM JDK, Oracle JDK 等对于开发、运行都没有什么太大的区别。

Ubuntu 使用apt-get卸载默认jdk

有时候我门需要卸载系统默认安装好的openjdk, 来安装别的版本的jdk,比如oracle jdk. 如何才能彻底干净的卸载原有的jdk.

方法一: 首先使用apt-get autoremove 命令

执行命令:

$ sudo apt-get autoremove default-jdk

 

方法二:上面的命令有时候不能彻底的卸载干净,那么可以使用下面的方法,可以确保jdk卸载干净:

执行步骤如下:

1# 执行下面的命令

$ apt-get update
$ apt-cache search java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e 'java-common' | xargs sudo apt-get -y remove
$ apt-get -y autoremove

2# 清除配置信息

$  dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge

3# 清除java配置及缓存

$ bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf

4# 手动清除JVMs

$ sudo   rm -rf /usr/lib/jvm/*

Ubuntu 非root 安装tomcat

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。-摘自百度百科

下面来介绍如何在ubuntu下安装tomcat 9, 该版本需要安装JAVA JDK 8 以上的版本,可以参照上面的jdk安装配置步骤。

1# 验证java jdk 版本

执行下面命令:

$ java –version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

需要检测当前的java版本是否是1.8以上版本。

2# 下载Tomcat 安装包并解压缩

$ wget http://www.us.apache.org/dist/tomcat/tomcat-9/v9.0.0.M1/bin/apache-tomcat-9.0.0.M1.tar.gz$ tar xzf apache-tomcat-9.0.0.M1.tar.gz  -C /opt/$ mv apache-tomcat-9.0.0.M1 tomcat9

3# 配置tomcat环境变量

编辑~/.bashrc 文件,配置CATALINA_HOME 环境变量,执行下面的命令:

$ echo "export CATALINA_HOME='/opt/tomcat9/'" >> ~/.bashrc
$ source ~/.bashrc

4# 为Manager 和admin 页面 指定特定的用户

编辑/tomcat9/conf/tomcat-users.xml, 加入下面的行:

<!—用户osetc只能访问 manager区域 --><role rolename="manager-gui" /><user username="osetc" password="<Enter-Secure-Password>" roles="manager-gui" />
 <!--用户osetc只能访问 manager区域--><role rolename="admin-gui" /><user username="admin" password="<Enter-Secure-Password>" roles="admin-gui" />

5# 启动Tomcat 9 服务

执行下面的命令:

$ cd /opt/tomcat9/bin
$ sudo ./startup.sh

命令输出如下:

Using CATALINA_BASE:   /opt/tomcat9
Using CATALINA_HOME:   /opt/tomcat9
Using CATALINA_TMPDIR: /opt/tomcat9/temp
Using JRE_HOME:        /usr/lib/jvm/java-8-oracle/jre
Using CLASSPATH:       /opt/tomcat9/bin/bootstrap.jar:/opt/tomcat9/bin/tomcat-juli.jar
Tomcat started.

6# 从浏览器访问配置好的tomcat9

Tomcat 服务默认使用的端口号是8080,在浏览器中输入网址:http://localhost:8080

ubuntu tomcat-9.0.0.m1

本文永久链接:http://www.osetc.com/archives/20430.html


99%的人还阅读了:

Ubuntu 系统下安装软件包的6种方法介绍以及查看/删除软件包命令

Ubuntu系统软件安装和CentOS Linux或者Redhat  Linux系统下不同,因为ubuntu下面的默认安装软件包扩展名为deb, 无法使用yum 或者rpm命令来安装。 下面我们将会详细介绍6中最常见的ubuntu 安装软件包的命令或方法(本文所有的实例均在ubuntu 16.04 系统运行)。

ubuntu 安装软件包命令的方法

1# 使用apt-get 或者apt命令安装软件包

该方法是ubuntu系统下的最常用的安装方法,该方法要求你提前配置好ubuntu软件装源, 并且需要经常运行apt-get update 命令,以保证软件源里的软件版本是最新的。Apt-get 命令安装软件包的时候会把下载的软件包保存到/var/cache/apt/archives目录,并进行安装, 而且更重要的是可以解决软件包安装中的依赖问题。

执行下面的命令:

$ sudo apt-get install 软件包名

使用apt-get命令安装wget工具

执行下面命令:

$ sudo apt-get install wget

命令输出如下:

正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
java-common libappindicator1 libindicator7
使用'sudo apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:
wget
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 245 个软件包未被升级。
需要下载 298 kB 的归档。
解压缩后会消耗 901 kB 的额外空间。
获取:1 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 wget amd64 1.17.1-1ubuntu1.2 [298 kB]
已下载 298 kB,耗时 0秒 (1,325 kB/s)
正在选中未选择的软件包 wget。
(正在读取数据库 ... 系统当前共安装有 181686 个文件和目录。)
正准备解包 .../wget_1.17.1-1ubuntu1.2_amd64.deb  ...
正在解包 wget (1.17.1-1ubuntu1.2) ...
正在处理用于 install-info (6.1.0.dfsg.1-5) 的触发器 ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在设置 wget (1.17.1-1ubuntu1.2) ...

2# 安装deb软件包

在ubuntu系统下默认的软件包扩展名为deb,这种deb包是debian系统下的软件包管理方式, 因为ubuntu系统是基于debian系统后更改的版本,所有deb格式也是ubuntu系统下的默认软件包格式。Deb软件包的安装需要使用dpkg命令或者在图形界面下,直接双击安装即可。通常情况下我们是在命令行下安装deb软件包。执行下面的命令:

$ sudo dpkg    –i     package.deb
dpkg命令常用选项介绍如下:
dpkg -r package 删除包
dpkg -P package 删除包(包括配置文件)
dpkg -L package 列出与该包关联的文件
dpkg -l packag 显示该包的版本e
dpkg –unpack package.de 解开 deb 包的内容
dpkg -S keyword 搜索所属的包内容
dpkg -l 列出当前已安装的包
dpkg -c package.deb 列出 deb 包的内容
dpkg –configure package 配置包

3# Ubuntu源码包编译安装方式

如果你只有源码包而没有下载到deb软件包,那么可以通过编译安装的方式来安装软件包。在编译安装之前,需要先建立编译环境,使用以下命令建立基本的编译环境:

$ sudo apt-get install build-essential

命令输出如下:

正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
build-essential 已经是最新版 (12.1ubuntu2)。
下列软件包是自动安装的并且现在不需要了:
java-common libappindicator1 libindicator7
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 245 个软件包未被升级。

通常情况下我们下载到的源码包.tar, .tar.gz, .tgz, .tar.bz等格式, 当然也并不是所有以.tar ,.tar.gz等为扩展名的文件都是源码压缩包,它们也有可能已经被编译过了,压缩包里面会有一个安装程序(Installer)或者扩展名为bin的可执行文件.

编译安装的步骤如下:

a) tar xvf 源码包.tar.gz

b)进入解压后的源码包目录,查看readme或者相关说明即可找到安装的方法(下面方法仅是通常做法,具体最好参照源码包的说明)。

c) ./configure make sudo make install

编译安装方式需要我们自己解决软件包安装的依赖问题,如果在安装过程报依赖问题,我们可以使用apt-get 命令去尝试安装,之后再进行编译安装。

4# 使用新立得软件包管理器安装

使用新立得软件包管理器:系统系统管理新立得软件包管理器,输入想要安装的软件名字,搜到后右击选“标记以安装”,然后点击菜单栏下面的“应用”即可。这个工具其实跟apt一样,可以搜索,下载,安装ubuntu源里的软件。

5# 二进制包的安装方式

对于扩展名为bin, run,sh等的文件或者没有扩展名的二进制文件安装(此类型为Linux通用的2进制安装包,可能只对应x86,也可能包括x86-64支持),使用下面的命令安装:

$ chmod u+x  二进制包.bin
./二进制包.bin

6# rpm包的安装方式

Ubuntu系统下默认只支持deb格式的软件包安装,如果想安装rpm格式的软件包,首先我们需要安装一个rpm转deb的软件

sudo apt-get install alien

然后就可以对rpm格式的软件转换成deb格式了:

alien -d *.rpm

然后就可以用deb的安装方式进行软件安装。也可以不需转换而直接对rpm包进行安装:

alien -i *.rpm

更多的alien使用方法可以用-h参数查看相应说明文档。

Ubuntu mate软件安装

MATE 是经典桌面 Gnome 2 的分支,该桌面按照 window 用户操作习惯设计,适合于 windows 转投 Linux 的初级用户,MATE 做了功能改进和新增功能。如:增加窗口管理器支持;使用 Caja 文件管理器;使用 Marco 窗口管理器,添加并排平铺;面板新增支持运行对话框和菜单打开快捷键扥等。

ubuntu mate安装软件1

安装 MATE,MATE 1.8 还没有进入官方库,相信不久就会更新,现在安装的版本为 1.6,支持 Ubuntu 13.10,13.04,12.10和Ubuntu 12.04及其衍生版本。

打开终端,输入以下命令:

sudo add-apt-repository "deb http://packages.mate-desktop.org/repo/ubuntu saucy main"
 sudo apt-get update
 sudo apt-get install mate-archive-keyring
 sudo apt-get update
 sudo apt-get install mate-core mate-desktop-environment

安装完成之后,注销就可以在登陆界面选择 MATE:

ubuntu mate安装软件5

ubuntu 安装 R Rstudio

R语言安装

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具

下面我们来介绍R语言的安装方法:

1# 使用apt-get 安装R

执行下面的命令:

$ sudo apt-get install r-base

如果安装失败的话,那有可能是当前的软件源里没有该软件包,我们需要添加新的软件源。 通过vim命令打开配置文件/etc/apt/sources.list, 然后添加下面的行:

deb http://ftp.ctex.org/mirrors/CRAN/bin/linux/ubuntu maverick/

保存文件并退出,重新更新软件源,并重新安装,执行下面命令:

$ sudo apt-get update
$ sudo apt-get install r-base

命令输出如下:

root@devops-virtual-machine:~# apt-get install r-base
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
java-common libappindicator1 libindicator7
使用'apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
autoconf automake autotools-dev  …
建议安装:
autoconf-archive gnu-standards autoconf-doc libtool devscripts gcc-5-locales
…
下列新】软件包将被安装:
autoconf automake autotools-dev bzip2-doc cdbs debhelper
…
下列软件包将被升级:
cpp-5 g++-5 gcc-5 gcc-5-base libasan2 libatomic1 libcc1-0 libcilkrts5
libgcc-5-dev libgomp1 libitm1 liblsan0 libmpx0 libquadmath0 libstdc++-5-dev
libstdc++6 libtsan0 libubsan0
升级了 18 个软件包,新安装了 62 个软件包,要卸载 0 个软件包,有 227 个软件包未被升级。
需要下载 83.9 MB 的归档。
解压缩后会消耗 121 MB 的额外空间。
您希望继续执行吗? [Y/n]Y
…
正在设置 r-base-html (3.2.3-4) ...
正在设置 dh-strip-nondeterminism (0.015-1) ...
正在设置 debhelper (9.20160115ubuntu3) ...
正在设置 dh-translations (129) ...
正在设置 cdbs (0.4.130ubuntu2) ...
正在设置 r-base-dev (3.2.3-4) ...
正在处理用于 libc-bin (2.23-0ubuntu9) 的触发器 ...

R语言安装完成手,我们在命令行下执行命令R,既可以进入R语言环境:

root@devops-virtual-machine:~# R
R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R是自由软件,不带任何担保。
在某些条件下你可以将其自由散布。
用'license()'或'licence()'来看散布的详细条件。
R是个合作计划,有许多人为之做出了贡献.
用'contributors()'来看合作者的详细情况
用'citation()'会告诉你如何在出版物中正确地引用R或R程序包。
用'demo()'来看一些示范程序,用'help()'来阅读在线帮助文件,或
用'help.start()'通过HTML浏览器来看帮助文件。
用'q()'退出R.
>

RStudio IDE工具的安装

RStudio是一款跨平台的R语言IDE,把常用的窗口都整合在让开发者,不用在命令行和绘图窗口跳来跳去,RStudio全部都在一个窗口,让你更方便的来控制。R语言,一直来都没有一个很好的IDE,RStudio算是给R补充了这一块。

1# 下载RStudio deb软件包

执行下面命令:

$ wget https://download1.rstudio.org/rstudio-xenial-1.1.383-amd64.deb

2# 使用dpkg –i 命令安装刚才下载的deb软件包

$ sudo dpkg –i  rstudio-xenial-1.1.383-amd64.deb

如果想了解更多关于R语言的知识,可以参考其官方站点: https://www.r-project.org

ubuntu 查询软件包是否安装

在ubuntu系统下面我们可以使用dpkg –l 来查看或查询已经安装的软件包。

$dpkg –l 软件包名

Ubuntu下彻底并安全的卸载删除软件

apt-get remove --purge 软件包名 # 移除软件包的应用及配置
apt-get autoremove                         # 移除没有依赖关系的包

linux下的软件基本都会需要其他的软件来依赖,在安装某个软件的时候,会连同依赖包也一并安装。

apt-get remove 软件包 就是删除该软件包 但不会删除依赖的软件包,因为有可能会有别的软件包对该依赖包有依赖关系,所以不会对依赖包进行删除。

apt-get autoremove 是专门用来检测并删除那些不再“依赖”的包。

更多阅读:ubuntu下必装的使用软件

本文永久链接:http://www.osetc.com/archives/20422.html

 

20款 Ubuntu 系统下必装的软件应用

如果将ubuntu系统作为我们日常工作或生活使用的桌面系统,那么在安装完ubuntu linux系统后,可能需要要安装很多常用的或者很必要的软件应用,下面将会列出ubuntu系统下最常用的必装的20款应用。

如果你每天都使用Ubuntu桌面的话,肯定有一些心得,哪些应用好用,哪些不好用。在本文中,Datamation网站作者Matt Hartley将分享20款实用的Ubuntu应用。这些应用涵盖生产工具以及基于Web的工具。

一、Dropbox在Web上有无数种方式将你与其他人连接,但只有Dropbox能实现最轻松的连接。从共享文件到发送图片给其他人查看,Dropbox可以共享文件与目录,而不需要将自己的计算机暴露在所有人面前。Dropbox让人喜欢的地方在于能与Ubuntu桌面以及安卓手机兼容。如果你使用苹果手机,它也可以访问iOS。

ubuntu dropbox

二、Parcellite在一天的工作中,如果需要在内存中复制大量URL,那么不需要将这些URL复制进文本中,只需要通过叫做Parcellite的粘贴板即可完成访问。Parcellite支持自定义热键,只捕捉热链接,甚至可以设置Parcellite避免空白和修剪换行符。如果经常有大量的复制粘贴工作,Parcellite是不可或缺的好帮手。

ubuntu Parcellite

三、 Wunderlist它其实也是Google Calendar的替代品,功能强大。Wunderlist完全是个跨平台的,能支持Ubuntu、安卓等。它能轻松快速地管理任何任务。Wunderlist最酷的一个功能是通过应用或通过发送邮件创建新任务。

ubuntu Wunderlist

四、gscan2pdf如果你严重依赖文件扫描,使用gscan2pdf进行发票、收据扫描以及相关任务。最爽的是它能将多个文件整合在一个PDF文件中。更妙的是能扫描不同镜像格式。有了以上这些功能,再加上扫描控制选择,gscan2pdf是个必须拥有的应用。

gscan2pdf

五、gMTP虽然不需要每天都访问MP3播放器,但是,安装gMTP还是有必要的。当播放列表需要更新时,或者想在iRiver MP3播放器上作些更改,就要用到gMTP。虽然很多软件音乐管理器提供MTP支持,比如我的iRiver设备,但gMTP提供更一直的体验。它能轻松进行删除、添加或其他功能。

六、FreetuxTV如果在不同对象中工作,这个应用可以在后台打开并运行。FreetuxTV依赖不同的网络电视机和网络收音机内容资源。通过FreetuxTV能轻松访问CNN和其他本地新闻台,还可以进行录制功能。

ubuntu FreetuxTV

七、gPodder它提供了你感兴趣的领域最新发生的动作同步的功能。不像以上的应用,gPodder可轻松订阅播客,还能选择想要的媒体播放器。使用gPodder最酷的是可以同步媒体播放器或智能手机,所以能随身携带你喜欢的播客。

八、Skype Call Recorder不像其他应用,这款应用使用的时候要小心。只能在授权访问允许的情况下才能使用Skype Call Recorder并做好记录,要遵守当地法律法规。如果将来有什么问题的话,可以查看记录。

九、VLC这是款使用起来最轻松的媒体播放器。不想其他软件媒体播放器,VLC啥都能播,也不会出现延迟情况。而且,VLC播起DVD来得心应手。它也可以从网络摄像头捕捉视频。

十、LibreOffice可能很多人能轻松使用LibreOffice,其实不然。多数情况下,LibreOffice在进程和电子表格方面提供的功能很丰富。如果老用到写文章的Writer与处理个人经济的Calc,LibreOffice是个不错的选择。

十一、Pithos工作期间,除了听音乐,还有什么能打发时间嘛?可以试试装个Pandora,它因为Pithos而为人熟知。如果在浏览器中运行Pandora,Pithos就能提供好多好多功能。比如喜欢、不喜欢、跳过等所有Pandora的功能都有,最好的是能屏蔽广告。

十二、Chromium如果之前你很依赖火狐,现在可以使用Chromium,除非每个浏览器更新,否则不会推荐插件。

十三、Y PPA Manager如果在Ubuntu上运行的PPA数量多得要超过负荷的话,可通过使用Y PPA Manager去控制PPA。如果添加、移除或进行PPA备份,Y PPA Manager可节省大量时间。

Y PPA Manager

十四、OpenShot如果你经常需要用到视频编辑器的话,推荐使用OpenShot。其最新版本更强悍,Blender集成是比其他视频编辑器好用的缘由。通过Blender可轻松生成3D标题,然后使用OpenShot输入进所选的文件格式中,因此视频创建也变得很有趣。

ubuntu OpenShot

十五、Kazam该软件在Ubuntu 12.10上运行有点问题,但在Ubuntu 12.04上运行得很好。它可以图解如何使用Ubuntu完成大量任务,从对现有软件微调到对大问题进行故障排除都能用。Kazam可生成一个奇妙的截屏显示,然后上传到YouTube分享给大家。

十六、pavucontrolUbuntu Unity环境提供的音频控制有很多需要改进的地方。如果你从不使用USB音频设备,也不想从Skype这样的应用切换到另一个录音设备的话,那没问题。但还是推荐pavucontrol,在进行Skype呼叫时,能轻松从网络摄像头麦克风切换到USB耳机。它也能轻松排除是否由于Ubuntu安装造成的音频漏洞。

十七、GIMP运行Linux的桌面经常会用到GIMP。新版GIMP跨所有流行桌面平台提供了很棒的功能。此外,它是个免费软件,但提供了商业软件Photoshop拥有的功能。最炫的是可从Ubuntu知识库获取。

十八、GUVCView无论你是否拥有一个基于UVC的网络摄像头或者差劲的摄像头,GUVCView都是款确保网络摄像头设置完美的好工具。此外,它提供了与知名Cheese同样的功能。录制视频、捕获静态影像,甚至加入夸张效果,让你的网络摄像头视频看起来与众不同。

十九、FileZilla如果你在不同服务器上使用WordPress,那么拥有一个FTP客户端非常关键,能让网站以最佳状态运行。受信任的FTP软件,本文推荐使用Filezilla。它在sFTP与标准FTP连接做得很好,提供管理多站点FTP登陆的工具,能一次性轻处理大量FTP连接。

ubuntu FileZilla

二十、HPLIP作为一名Ubuntu爱好者,使用惠普一体化打印机能节省大量时间,这是多年经验之谈。利用SANE与OpenPrinting功能,惠普打印机通过叫做HPLIP的工具集提供了大量选项。不似Ubuntu提供的默认打印机对话框,HPLIP还提供墨水量信息,wifi控制,以及故障检修工具。最棒的是HPLIP对于照片卡的颗粒控制,还能复制与扫描。 参考:http://os.51cto.com/art/201211/368336.htm

本文永久链接:http://www.osetc.com/archives/20410.html

Linux 查看发行版本信息以及内核版本的方法(CentOS/Ubuntu)

本文主要讲述如何在linux系统下查看不同发型版本的版本信息(centos/ubuntu),以及查看linux内核版本号的方法。当前已经存在了很多的linux 版本,那么这些版本直接到底有什么区别,有什么特点,到底哪个linux发行版本更好用呢。

linux 发行版本概念

Linux 主要作为Linux发行版(通常被称为”distro”)的一部分而使用。这些发行版由个人,松散组织的团队,以及商业机构和志愿者组织编写。它们通常包括了其他的系统软件和应用软件,以及一个用来简化系统初始安装的安装工具,和让软件安装升级的集成管理器。大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。 一个典型的Linux发行版包括:Linux内核,一些GNU程序库和工具,命令行shell,图形界面的X Window系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公套件,编译器,文本编辑器到科学工具的应用软件。-来自百度百科

linux 版本信息查看命令(centos/ubuntu)

查看linux发行版系统的信息

1# 使用lsb_release –a 命令

这个命令基本使用与所有其它的linux发型版本(redhat,centos, fedora, Ubuntu,suse等)

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:     Ubuntu 16.04.3 LTS
Release:  16.04
Codename:      xenial

2# 查看/etc/issue 文件的信息

执行下面命令:

#cat /etc/issue
Ubuntu 16.04.3 LTS \n \l

3#  查看/etc/redhat-release 文件

执行下面命令:

# cat /etc/redhat-release
CentOS release 6.5 (Final)

查看linux系统架构

在日常工作中我们有时会需要查看当前 Linux 系统是 32 位还是 64 位系统架构类型,下面将会介绍5个命令来查看系统的架构信息。无论你使用的是桌面版或是只装了文本界面的 Linux 环境,以下命令几乎可以通吃所有 Linux 发行版,例如:RHEL、CentOS、Fedora、Scientific Linux、Debian、Ubuntu、Linux Mint、OpenSUSE 等等。

1# uname 命令

uname -a 命令可以直接显示 Linux 系统架构的命令,安几乎可以工作在所有 Linux/Unix 系统当中。

执行命令:

# uname –a
Linux devops-virtual-machine 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

2# dpkg 命令

dpkg 的命令可用于查看 Debian/ Ubuntu 操作系统是 32 位还是 64 位,此命令只适用于基于 Debian 和 Ubuntu 的 Linux 发行版。

执行下面命令:

#dpkg –print-architecture
amd64

3# getconf命令

getconf 命令主要用于显示系统变量配置,我们也可使用如下参数来查看 Linux 系统架构

执行下面的命令:

#getconf LONG_BIT
64

4# arch 命令

arch 命令主要用于显示操作系统架构类型,与 uname -m 命令非常类似。如果输出 x86_64 则表示为 64 位系统,如果输出 i686 或 i386 则表示为 32 位系统。

执行下面的命令:

#arch
x86_64

5# file 命令

file 命令可以配合 /sbin/init 这个特殊参数来查看系统架构类型(/sbin/init 在 Ubuntu 15.10 里面是链接到/lib/systemd/systemd 的)

执行下面的命令:

#file /sbin/init

linux 内核版本号查看命令

下面我们通过两个方法来介绍如何查看linux系统的内核版本号。

1# 使用命令: uname -a

该命令可以用来 查看系统内核版本号及系统名称

执行命令:

# uname –a
Linux devops-virtual-machine 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

从上面的命令输出,我们可以看到linux的内核版本号为:4.10.0-28

2# 使用命令 cat /proc/version

作用: 查看目录”/proc”下version的信息,也可以得到当前系统的内核版本号及系统名称

# cat /proc/version
Linux version 4.10.0-28-generic (buildd@lgw01-12) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017

另外:

/proc文件系统,它不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,它以文件系统的方式为访问系统内核数据的操作提供接口。而我们使用命令“uname -a”的信息就是从该文件获取的,当然用方法二的命令直接查看它的内容也可以达到同等效果.另外,加上参数”a”是获得详细信息,如果不加参数为查看系统名称。

linux发行版本有哪些

发行版为许多不同的目的而制作, 包括对不同计算机结构的支持, 对一个具体区域或语言的本地化,实时应用,和嵌入式系统,甚至许多版本故意地只加入免费软件。已经有超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十二个。

每一款发行版都拥有一大批用户,开发者自愿为相关项目投入精力。Linux发行版可谓是形形色色,它们旨在满足每一种能想得到的需求。下面将会简要介绍述十款常用Linux发行版,并会介绍该发行版的目标用户,以及它与其他发行版相比有什么样的特殊功能。

1. Debian

Debian运行起来极其稳定,这使得它非常适合用于服务器。Debian平时维护三套正式的软件库和一套非免费软件库,这给另外几款发行版(比如Ubuntu和Kali等)带来了灵感。Debian这款操作系统派生出了多个Linux发行版。它有37500多个软件包,这方面唯一胜过Debian的其他发行版只有Gentoo。Debian使用apt或aptitude来安装和更新软件。

Debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。Debian支持如今的大多数架构(处理器)。

下载Debian ISO映像文件:http://www.debian.org/distrib/

附有屏幕截图的Debian安装:《Debian 7.0″Wheezy”安装指南

debian linux

2. Gentoo

与Debian一样,Gentoo这款操作系统也包含数量众多的软件包。Gentoo并非以预编译的形式出现,而是每次需要针对每个系统进行编译。连Gentoo社区都觉得Gentoo安装和使用起来很困难;不过它被认为是最佳学习对象,可以进而了解Linux操作系统的内部运作原理。提到Gentoo总有人这么说:”如果你要学用Linux发行版,那就学用该发行版吧;如果你学会了Gentoo,也就学会了Linux。”Gentoo使用portage来安装和更新软件。

Gentoo这款操作系统适合对Linux已经完全驾轻就熟的那些用户。

下载和安装Gentoo:http://www.gentoo.org/main/en/where.xml

gentoo linux

3. Ubuntu

Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。作为Debian Gnu Linux的一款衍生版,Ubuntu的进程、外观和感觉大多数仍然与Debian一样。它使用apt软件管理工具来安装和更新软件。它也是如今市面上用起来最容易的发行版之一。Ubuntu使用基于apt的程序包管理器。

Ubuntu是新手用户肯定爱不释手的一款操作系统。

下载Ubuntu ISO映像文件:http://www.ubuntu.com/download

附有屏幕截图的Ubuntu安装:《Ubuntu 13.04″Raring Ringtail”安装指南

ubuntu linux

4. Damn Vulnerable Linux

当然,大多数人可能对这款发行版前所未闻,不过该发行版在本文中还是占有一席之地。那么,它有何过人之处呢? Damn Vulnerable Linux恰如其名:其字面意思就是”该死的易受攻击的Linux”。Vulnerable Linux(DVL)根本不是一般意义上的优秀的Linux发行版。它有意捆绑了坏的、配置不当的、过时的、很容易被不法分子攻击的软件。

它的目的在于借机训练Linux管理员。还有什么比给Linux管理员一款坏的发行版去排解问题来得更管用的吗?面对Apache、MySQL、PHP、FTP和SSH等比较旧或破的版本,接受训练的管理员够有得忙了。

Damn Vulnerable Linux堪称旨在训练管理员的实验室。

下载Damn Vulnerable Linux(DVL)ISO映像文件:DVL_1.5_Infectious_Disease.iso

Damn Vulnerable Linux

5. 红帽企业级Linux

这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证。就全球市场而言,总利润中80%来自支持,另外20%来自培训和认证,不过在印度不是这样。

在印度,红帽的利润中80%来自认证和培训,只有20%来自支持。而Fedora是个平台,而不是开发新产品或新应用程序的测试环境;一旦成为稳定版,就与红帽企业级Linux捆绑在一起,包括支持。红帽提供了非常多的稳定版应用程序,但是众所周知的缺点是,把太多旧程序包打包起来,支持成本确实相当高。不过,如果安全是关注的首要问题,那么红帽企业级Linux的确是款完美的发行版,它使用YUM程序包管理器。

红帽企业级Linux是系统管理员的第一选择,它有众多的程序包,还有非常到位的支持。

由于该发行版是商业化产品,所以不是免费的。不过,你可以下载用于教学用途的测试版。

下载红帽企业级Linux测试版DVD ISO映像文件:RedHat Enterprise Linux(测试版

附有屏幕截图的RHEL 6安装:《RHEL 6安装指南

补充说明:通常认为,开发了该发行版的Marc Ewin将该产品命名为红帽,因为他丢失了似乎很心爱的那顶红色帽子,帽子是他爷爷在他过生日时送的礼物。

redhat linux

6. CentOS

CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业级Linux如出一辙。 CentOS使用YUM来管理软件包。

非常稳定的程序包;谁要是想在桌面端测试一下服务器的运作原理,都应该试试这款操作系统。

下载CentOS 6.4 DVD ISO映像文件:http://wiki.centos.org/Download

附有屏幕截图的CentOS 6.4安装:《CentOS 6.4安装指南

centos linux

7. Fedora

小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。Fedora同样使用YUM来管理软件包。

下载Fedora 18(Spherical Cow)DVD ISO映像文件:http://fedoraproject.org/en/get-fedora

附有屏幕截图的Fedora 18(Spherical Cow)安装:《Fedora 18(Spherical Cow)安装指南

fedora linux

8. Kali Linux

Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。它大概在三个月前才发行。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马可以使用。Kali使用APT来管理软件包。

毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统。

下载Kali Linux DVD ISO映像文件:Kali Linux 6

Kali Linux

9. Arch Linux

Arch是一款采用滚动发行方式的操作系统:只要安装一次就够了;每当发行了某个新版本,就可以升级发行版,不需要重新安装。Pacman是Arch Linux的软件包管理器。Arch Linux既支持X86处理器架构,又支持X86_64架构,安装程序可以从光盘或U盘来运行。Arch旨在从开发者的角度而不是从用户的角度做到力求简单。Arch配置和安装起来超容易。它真是一款面向高手的发行版,让你可以了解Linux系统的每一个细枝末节。

下载Arch Linux ISO映像文件:https://www.archlinux.org/download/

Arch Linux

10. OpenSuse

OpenSuse这款Linux发行版是免费的,并不供商业用途使用,仍然供个人使用。OpenSuse的真正竞争对手是红帽企业级Linux。它使用Yast来管理软件包。有了Yast,使用和管理服务器应用程序就非常容易。此外,Yast安装向导程序可以配置电子邮件服务器、LDAP服务器、文件服务器或Web服务器,没有任何不必要的麻烦。它随带snapper快照管理工具,因而可以恢复或使用旧版的文件、更新和配置。由于让滚动发行版本成为可能的Tumbleweed,可将已安装的操作系统更新到最新版本,不需要任何的新发行版。

SUSE在管理员当中的名气更大,因为它有Yast以及让系统管理员能够自动管理任务的其他此类应用程序,同样水准的其他发行版没有这项功能。

下载OpenSuse 12.3 DVD ISO映像文件:http://software.opensuse.org/123/en

附有屏幕截图的OpenSuse 12.3安装:《OpenSuse 12.3安装指南

OpenSuse

市面上有好几百款发行版,每款发行版在某个方面都与众不同。不可能在此全部罗列,本文只罗列了十款最常见的Linux发行版(世界上只有两种人,一种是懂二进制的,另一种是不懂二进制的)。

linux不同版本的区别,都有什么特点(版本比较)

Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。

下面介绍一下各个发行版本的特点:

Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server收费版本)、FedoraCore(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。

Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing和unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get /dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去。

Ubuntu 严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。根据选择的桌面系统不同,有多个版本可供选择,比如基于unity的Ubuntu,基于Gnome的Ubuntu Gnome,基于KDE的Kubuntu,基于LXDE的Lubuntu以及基于Xfce的Xubuntu等。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

Gentoo 伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。

FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。

FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,而current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。

下面给为选择一个Linux发行版本犯愁的朋友一些建议:

如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大量的钱购买商业软件,那么你就需要一款适合桌面使用的Linux发行版本了,如果你不想自己定制任何东西,不想在系统上浪费太多时间,那么很简单,你就根据自己的爱好在ubuntu、kubuntu以及xubuntu中选一款吧,三者的区别仅仅是桌面程序的不一样。

如果你需要一个桌面系统,而且还想非常灵活的定制自己的Linux系统,想让自己的机器跑得更欢,不介意在Linux系统安装方面浪费一点时间,那么你的唯一选择就是Gentoo,尽情享受Gentoo带来的自由快感吧!

如果你需要的是一个服务器系统,而且你已经非常厌烦各种Linux的配置,只是想要一个比较稳定的服务器系统而已,那么你最好的选择就是CentOS了,安装完成后,经过简单的配置就能提供非常稳定的服务了。

如果你需要的是一个坚如磐石的非常稳定的服务器系统,那么你的唯一选择就是FreeBSD。

如果你需要一个稳定的服务器系统,而且想深入摸索一下Linux的各个方面的知识,想自己定制许多内容,那么我推荐你使用Gentoo。[3]  参考文献:百度百科

linux系统哪个版本更好用?

至于那个linux 发型版本更好用,这也是因人而异,下面我们给出一个统计图,针对不同发行版本系统的使用比例的对比。

linux 不同发行版本市场占有率排名

本文永久链接:http://www.osetc.com/archives/20394.html

Linux 下apache 服务器安装与配置教程(配置文件虚拟主机多站点详解)

本文主要讲述如何在linux系统下安装及配置APACHE web 服务器(httpd),并讲解如何配置针对apache 配置SSL, PHP,HTTPS等,并会详细介绍apache配置文件以及如何来配置虚拟主机,apache web 多站点配置等。

Apache 是什么

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python解释器编译到服务器中。 摘自百度百科

Apache 该怎么读

Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等。 所以我们一般讲apache读作“阿帕奇”。

Apache 安装与配置

1# Apache 服务器安装前的准备工作

检查该环境中是否已经存在httpd服务的配置文件,默认存储路径:/etc/httpd/httpd.conf(这是centos预装的Apache的一个ent版本,一般我们安装源代码版的Apache)。如果已经存在/etc/httpd/httpd.conf,请先卸载或者关闭centos系统自带的web服务,执行命令:chkconfig  httpd off,再或者把centos自带的httpd服务的80端口改为其他端口,只要不与我们安装的Apache服务的端口冲突就可以啦。

停止并卸载Linux系统自带的httpd服务,执行下面的命令:

service httpd stop
ps -ef | grep httpd
kill -9 pid号(逐个删除)
rpm -qa |grep httpd
rpm -e httpd软件包

最后我们来查看下apache默认配置文件httpd.conf是否被删除,执行下面的命令:

find / -name httpd.conf

2# 下载apache源码包(httpd-2.4.28.tar.gz或httpd-2.2.34.tar.gz)

执行下面的命令:

Wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.28.tar.gz

或者

Wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.2.34.tar.gz

3# 安装相关软件包apr、apr-util、pcre

在编译安装apache源码包之前,我们需要先安装三个依赖软件包apr、apr-util、pcre, 否则会出现下面的安装错误。

checking for APR... no
configure: error: APR not found.  Please read the documentation.

首先执行下面的wget命令来下载依赖包的源码包:

Wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.2.tar.gzWget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.0.tar.gzWget  https://sourceforge.net/settings/mirror_choices?projectname=pcre&filename=pcre2/10.30/pcre2-10.30.zip

执行下面的命令,编译安装相应软件包:

a)解决apr not found问题

# tar -zxf apr-1.6.2.tar.gz
# ./configure --prefix=/usr/local/apr
# make
# make install

b)解决APR-util not found问题

# tar -zxf apr-util-1.6.0.tar.gz
# ./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
# make
# make install

c)解决pcre-config for libpcre not found问题

# unzip pcre2-10.30.zip
# cd pcre2-10.30
# ./configure --prefix=/usr/local/pcre
# make
# make install

4# 安装apache 源码包

在安装Apache时,我分别针对不同版本进行了安装,在编译时是不同的,configure后跟的参数不同。

对于httpd-2.2.34版本编译命令如下:

./configure --prefix=/usr/local/apache2 (安装目录参数后面可以不加任何参数,直接安装即可)
make
make install

对于httpd-2.4.28版本编译安装命令如下:

./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre (除了指定Apache的安装目录外,还要安装apr、apr-util、pcre,并指定参数)
make
make install

5#启动apache 服务

执行下面的命令:

# /usr/local/apache2/bin/apachectl start

另外如果想停止或者重启apache服务,可以执行下面的命令:

#/usr/local/apache2/bin/apachectl stop
# /usr/local/apache2/bin/apachectl restart

网站的php程序文件放在/usr/local/apache2/htdocs目录下,下面应该会有一个名为index.php的文件。

6# 验证apache服务器是否配置成功

通过浏览器打开连接http://localhost:80, 如果看到页面中显示“It works!”字样,则代表Apache验证通过。如果网站的index后缀是PHP格式的,则要修改httpd.conf配置文件(/usr/local/apache2/conf),在DirectoryIndex增加 index.php。

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

如果网站不能访问,那么可能是防火墙开启导致,执行下面的命令,将防火墙关闭,或者开启80端口。

执行下面命令:

# service iptables stop

Apache 服务器配置文件详解

Apache的主配置文件:/etc/httpd/conf/httpd.conf

下面我们来依次介绍httpd.conf文件中每一项说明

1# ServerRoot 配置

ServerRoot “” 主要用于指定Apache的安装路径,此选项参数值在安装Apache时系统会自动把Apache的路径写入。Windows安装时,该选项的值为Windows安装的路径,Linux安装时该选项值为编译时选择的路径.

Apache 服务器配置文件详解-1-serverroot配置

2# Mutex default:logs

互斥:允许你为多个不同的互斥对象设置互斥机制mutex mechanism和互斥文件目录,或者修改全局默认值

如果互斥对象是基于文件的以及默认的互斥文件目录不在本地磁盘或因为其它原因而不适用,那么取消注释并改变目录。

下面这个命令是改变互斥对象的目录

Apache 服务器配置文件详解-2-Mutex default

3# Listen 配置

Apache 服务器配置文件详解-3-Listen 配置

Listen主要侦听web服务端口状态,默认为:80,即侦听所有的地址的80端口,注意这里也可以写成IP地址的侦听形式,不写即默认的地址:0.0.0.0

4# Dynamic Shared Object (DSO) Support(动态共享对象支持)

Apache 服务器配置文件详解-4-Dynamic Shared Object (DSO) Support

主要用于添加Apache一些动态模块,比如php支持模块。重定向模块,认证模块支持,注意如果需要添加某些模块支持,只需把相关模块前面注释符号取消掉。如图所示,要对Apache添加某个功能模块,把前面的注释符号去掉就行

5# Apache运行用户配置

Apache 服务器配置文件详解-5# Apache运行用户配置

此选项主要用指定Apache服务的运行用户和用户组,默认为:daemon,如图所示下

6# Apache服务默认管理员地址设置

Apache 服务器配置文件详解-6# Apache服务默认管理员地址设置

此选项主要用指定Apache服务管理员通知邮箱地址,选择默认值即可,如果有真实的邮箱地址也可以设置此值

7# Apache的默认服务名及端口设置

Apache 服务器配置文件详解7# Apache的默认服务名及端口设置

此选项主要用指定Apache默认的服务器名以及端口,默认参数值设置为:ServerName localhost:80即可

8# Apache的根目录访问控制设置

Apache 服务器配置文件详解-8# Apache的根目录访问控制设置

此选项主要是针对用户对根目录下所有的访问权限控制,默认Apache对根目录访问都是拒绝访问。后面会继续讲到

9# Apache的默认网站根目录设置及访问控制

Apache 服务器配置文件详解-9# Apache的默认网站根目录设置及访问控制

此区域的配置文件,主要是针对Apache默认网站根目录的设置以及相关的权限访问设置,默认对网站的根目录具有访问权限,此选项默认值即可

10# Apache的默认首页设置

Apache 服务器配置文件详解-10# Apache的默认首页设置

此区域文件主要设置Apache默认支持的首页,默认只支持:index.html首页,如要支持其他类型的首页,需要在此区域添加:如index.php表示支持index.php类型首页

11# Apache关于.ht文件访问配置

Apache 服务器配置文件详解-11# Apache关于.ht文件访问配置

此选项主要是针对.ht文件访问控制,默认为具有访问权限,此区域文件默认即可

12# Apache关于日志文件配置

Apache 服务器配置文件详解-12# Apache关于日志文件配置

此区域文件主要是针对Apache默认的日志级别,默认的访问日志路径,默认的错误日志路径等相关设置,此选项内容默认即可

13# URL重定向,cgi模块配置说明

Apache 服务器配置文件详解-13# URL重定向,cgi模块配置说明1

Apache 服务器配置文件详解-13# URL重定向,cgi模块配置说明1

Apache 服务器配置文件详解-13# URL重定向,cgi模块配置说明1

此区域文件主要包含一些URL重定向,别名,脚本别名等相关设置,以及一些特定的处理程序,比如cgi设置说明。后期会继续说道

14# MIME媒体文件,以及相关http文件解析配置说明

Apache 服务器配置文件详解-14# MIME媒体文件,以及相关http文件解析配置说明

此区域文件主要包含一些mime文件支持,以及添加一些指令在给定的文件扩展名与特定的内容类型之间建立映射关系,比如添加对php文件扩展名映射关系。

15# 服务器页面提示设置

Apache 服务器配置文件详解-15# 服务器页面提示设置

此区域可定制的访问错误响应提示,支持三种方式:1明文 ,2本地重定向 3,外部重定向;另外还包括内存映射或“发送文件系统调用”可被用于分发文件等配置

16# Apache服务器补充设置

Apache 服务器配置文件详解-16# Apache服务器补充设置

此区域主要包括:服务器池管理,多语言错误消息,动态目录列表形式配置,语言设置,用户家庭目录,请求和配置上的实时信息,虚拟主机,Apache Http Server手册,分布式创作和版本控制,多种类默认设置,mod_proxy_html,使其支持HTML4/XHTML1等等补充配置的补充

17# Apache服务器安全连接设置

Apache 服务器配置文件详解-17# Apache服务器安全连接设置

此区域主要是关于服务器安全连接设置,用于使用https连接服务器等设置的地方

-参考资料:http://blief.blog.51cto.com/6170059/1672955

Apache 配置虚拟主机(多站点)

Apache配置虚拟主机的三种方式:基于IP, 基于主机名和基于端口。 下面我们分别来介绍如何通过这三种配置apache虚拟主机的方式来配置多站点虚机主机。

一、基于IP

1#假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP:

# ifconfig eth0:1 192.168.1.11
# ifconfig eth0:2 192.168.1.12
# ifconfig eth0:3 192.168.1.13

2# 修改hosts文件,添加三个域名与之一一对应:

192.168.1.11   www.test1.com
192.168.1.12   www.test2.com
192.168.1.13   www.test3.com

3# 建立虚拟主机存放网页的根目录,如在/www目录下建立test1、test2、test3文件夹,其中分别存放1.html、2.html、3.html

/www/test1/1.html
/www/test2/2.html
/www/test3/3.html

4#在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:

<VirtualHost 192.168.1.11:80>
ServerName www.test1.com
DocumentRoot /www/test1/
<Directory "/www/test1">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>




<VirtualHost 192.168.1.12:80>
ServerName www.test1.com
DocumentRoot /www/test2/
<Directory "/www/test2">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>

<VirtualHost 192.168.1.13:80>
ServerName www.test1.com
DocumentRoot /www/test3/
<Directory "/www/test3">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>

 5# 测试下每个虚拟主机,分别访问www.test1.com、www.test2.com、www.test3.com

二、基于主机名

1# 设置域名映射同一个IP,修改hosts:

192.168.1.10  www.test1.com
192.168.1.10  www.test2.com
192.168.1.10  www.test3.com

2# 跟上面一样,建立虚拟主机存放网页的根目录

/www/test1/1.html
/www/test2/2.html
/www/test3/3.html

3# 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:

为了使用基于域名的虚拟主机,必须指定服务器IP地址(和可能的端口)来使主机接受请求。可以用NameVirtualHost指令来进行配置。 如果服务器上所有的IP地址都会用到, 你可以用*作为NameVirtualHost的参数。在NameVirtualHost指令中指明IP地址并不会使服务器自动侦听那个IP地址。 这里设定的IP地址必须对应服务器上的一个网络接口。

下一步就是为你建立的每个虚拟主机设定<VirtualHost>配置块,<VirtualHost>的参数与NameVirtualHost指令的参数是一样的。每个<VirtualHost>定义块中,至少都会有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这个主机的内容存在于文件系统的什么地方。

如果在现有的web服务器上增加虚拟主机,必须也为现存的主机建造一个<VirtualHost>定义块。其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。

NameVirtualHost *:80
<VirtualHost *:80>
ServerName *
DocumentRoot /www/
</VirtualHost>

<VirtualHost *:80>
ServerName www.test1.com
DocumentRoot /www/test1/
<Directory "/www/test1">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName www.test2.com
DocumentRoot /www/test2/
<Directory "/www/test2">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName www.test3.com
DocumentRoot /www/test3/
<Directory "/www/test3">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

4# 我们来测试下每个虚拟主机,分别访问www.test1.com、www.test2.com、www.test3.com

三、基于端口

1# 修改配置文件

将原来的

Listen 80

改为

Listen 80
Listen 8080

2# 更改虚拟主机设置:

<VirtualHost 192.168.1.10:80>
DocumentRoot /var/www/test1/
ServerName www.test1.com
</VirtualHost>

<VirtualHost 192.168.1.10:8080>
DocumentRoot /var/www/test2
ServerName www.test2.com
</VirtualHost>

参考资料:http://www.cnblogs.com/hi-bazinga/archive/2012/04/23/2466605.html

Apache 配置php

在LAMP环境里,我们需要安装并配置php,特别是当前流行开源的CMS系统,都是基于php语言开发。下面我们介绍如何在linux系统下来安装并配置PHP环境。

1# 下载php源码包

执行下面的命令:

wget http://museum.php.net/php5/php-5.4.10.tar.gz

2# 解压php-5.4.10.tar.gz源码包

 tar -zxvf php-5.4.10.tar.gz

3# 建立安装目标文件夹(也就是说等下安装的php要安装到这个文件夹里面)

mkdir /usr/local/php

4# 配置
回到原来解压后的文件夹

 ./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache/bin/apxs

注意这里有一个-with-apxs2=/usr/local/apache/bin/apxs选项,其中apxs是在安装Apache时产生的,apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。我的理解是通过这个工具把PHP模块动态加载到Apache中

出现错误:configure: error: xml2-config not found. Please check your libxml2 installation.

运行yum install libxml2,然后再运行yum install libxml2-devel安装完毕后,重新运行上面的./configure命令。

5#编译并安装

make
make   test
make install

6# 配置文件

cp /usr/local/src/php-5.3.16/php.ini-development  /usr/local/php/lib/php.ini

把原来位于源代码里面的php.ini-development拷贝到/usr/local/php/lib/php.ini下,并且重命名为php.ini

7# 重启apache
8# 测试
在apache的htdocs下建立一个php文件test.php,里面的内容如下:

<?php
 phpinfo();
 ?>

然后在浏览器里输入http://127.0.0.1/test.php

如果出现php的相关配置,成功,如果什么都没有输入,说明失败,重新以上步骤或者查找原因

如果决定在安装后改变配置选项,只需重复最后的三步configure, make, 以及 make install,然后需要重新启动 Apache 使新模块生效。Apache不需要重新编译。

测试结果如下图:

apache php

Apache 和tomcat 有什么不同

经常在用apachetomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总结了一下:

解析一:
apache支持静态页,tomcat支持动态的,比如servlet等,一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。

apche可以支持phpcgiperl,但是要使用java的话,你需要tomcatapache后台支撑,将java请求由apache转发给tomcat处理。

apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。

这两个有以下几点可以比较的:
1、两者都是apache组织开发的
2、两者都有HTTP服务的功能
3、两者都是免费的

不同点:
Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等)
TomcatApache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器

Runtime r=Runtime.getRuntime();
 Process p=null;
try
{
p=r.exec("notepad");
}

catch(Exception ex)
{
System.out.println("fffff");
}

解析二:

APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等动态网页的就不行

如果要在APACHE环境下运行jsp 的话就需要一个解释器来执行jsp网页 而这个jsp解释器就是TOMCAT, 为什么还要JDK呢?因为jsp需要连接数据库的话 就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要APACHE+TOMCAT+JDK

整合的好处是:
如果客户端请求的是静态页面,则只需要Apache服务器响应请求
如果客户端请求动态页面,则是Tomcat服务器响应请求
因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销

C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。

解析三:
apache:侧重于http server
tomcat:侧重于servlet引擎,如果以standalone方式运行,功能上与apache等效 , 支持JSP,但对静态网页不太理想;
apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。
换句话说,apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上。

更多阅读:apache 配置SSL实现HTTPS访问

本文永久链接:http://www.osetc.com/archives/20369.html

 

Linux 下Apache 配置SSL实现HTTPS访问

本文主要讲述如何在linux系统下通过配置ssl模块实现网站的https访问的方法。

Web服务器在默认情况下使用HTTP,这是一个纯文本的协议。正如其名称所暗示的,纯文本协议不会对传输中的数据进行任何形式的加密。而基于HTTP的Web服务器是非常容易配置,它在安全方面有重大缺陷。任何”中间人”,通过精心防止的数据包嗅探器,是能够看到任何经过的数据包内容。更进一步,恶意用户甚至可以在传输路径设置一个假冒的WEB服务器冒名顶替实际的目标Web服务器。在这种情况下,最终用户可能实际上与假冒者服务器,而不是真正的目的服务器进行通信。这样,恶意用户可以通过精心设计的表单欺骗终端用户获取到敏感信息,如用户名密码。

为了处理这些类型的漏洞,大多数供应商往往在他们的web服务器应用HTTPS协议。对于只读类型的网站,用户只能读取内容,并没有实际提交任何信息,HTTP仍然是一个可行的选择。但是,对于保存敏感信息的网站,比如:用户需要登录来获得网站的服务,那么HTTPS是必须的。 HTTPS能够为一个网站提供以下能力。

  • 确保所有经过服务器传输的数据包都是经过加密的。
  • 建立了一个官方数字证书证书,使得假冒服务器无法冒充真正的服务器。

需要建立支持HTTPS的WEB服务器所要做的第一件事就是获得数字证书。数字证书可以在以下任一方法来获得。

  1. 自签名证书被推荐用于测试目的和个人项目。自签名证书,也可以用于服务提供商,不过一般适用于用户互相信任的情形。另外,自签名证书不用花钱购买。
  2. 证书可以由社区为基础的认证供应商如StartSSL和CACERT办法。这些证书也不需要花钱,但建议为个人项目。
  3. 对于全球性商业网站,建议从值得信赖的知名证书颁发机构购买证书。这些证书需要花钱,但他们增加了网络服务提供商的信誉。

1# 准备

在这篇文档中,我们将使用自签名证书。假设CentOS已经安装了Apache Web服务器。我们需要使用OpenSSL生成自签名证书。如果尚未安装OpenSSL,它可以使用yum来安装。

# yum install mod_ssl openssl

安装完毕后,会自动生成 /etc/httpd/conf.d/ssl.conf 文件,下文配置会用到!

2# 生成一个自签名证书

下面的命令可以被用来产生一个自签名的证书。

首先,生成2048位的加密私钥

# openssl genrsa -out server.key 2048

然后,生成证书签名请求(CSR),这里需要填写许多信息,如国家,省市,公司等

# openssl req -new -key server.key -out server.csr

最后,生成类型为X509的自签名证书。有效期设置3650天,即有效期为10年

# openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

生成密钥流程如下图,供参考

Linux 下Apache 配置SSL实现HTTPS访问1

创建证书后,将文件复制到对应的目录。

# cp server.crt /etc/pki/tls/certs/
 # cp server.key /etc/pki/tls/private/
 # cp server.csr /etc/pki/tls/private/

3#配置Apache Web服务器

首先,修改下面的配置文件。仅需配置红色部分 SSLCertificateFile 和 SSLCertificateKeyFile

# vim /etc/httpd/conf.d/ssl.conf

### overwrite the following parameters ###
 SSLCertificateFile /etc/pki/tls/certs/server.crt
 SSLCertificateKeyFile /etc/pki/tls/private/server.key

### The following parameter does not need to be modified in case of a self-signed certificate. ###
 ### If you are using a real certificate, you may receive a certificate bundle. The bundle is added using the following parameters ###
 SSLCertificateChainFile /etc/pki/tls/certs/example.com.ca-bundle

然后,重新启动httpd服务使更改生效

# service httpd restart           // 或者  /etc/init.d/httpd restart

Web服务器现在可以使用HTTPS

4# 调整虚拟主机

Apache Web服务器可以配置为多个Web站点。这些站点在httpd的配置文件中以虚拟主机的形式定义。例如,让我们假设我们的Apache Web服务器托管站点为proxy.mimvp.com,网站所有的文件都保存在/var/www/html/virtual-web目录。

对于虚拟主机,典型的HTTP配置是这样的。

# vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:80

<VirtualHost *:80>
 ServerAdmin email@example.com
 DocumentRoot /var/www/html/virtual-web
 ServerName proxy.mimvp.com
 </VirtualHost>

我们可以参考上面的配置创建HTTPS虚拟主机。

# vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:443

<VirtualHost *:443>
 SSLEngine on
 SSLCertificateFile /etc/pki/tls/certs/server.crt
 SSLCertificateKeyFile /etc/pki/tls/private/server.key
 <Directory /var/www/html/virtual-web>
 AllowOverride All
 </Directory>
 ServerAdmin email@example.com
 DocumentRoot /var/www/html/virtual-web
 ServerName proxy.mimvp.com
 </VirtualHost>

需要按照上面的配置,定义每个虚拟主机。添加虚拟主机后,重新启动Web服务。

# service httpd restart

现在的虚拟主机就可以使用HTTPS

实例见米扑代理: https://proxy.mimvp.com

5# 强制Apache Web服务器始终使用https

如果由于某种原因,你需要站点的Web服务器都只使用HTTPS,此时就需要将所有HTTP请求(端口80)重定向到HTTPS(端口443)。 Apache Web服务器可以容易地做到这一点。

a) 强制主站所有Web使用(全局站点)

如果要强制主站使用HTTPS,我们可以这样修改httpd配置文件:

# vim /etc/httpd/conf/httpd.conf

ServerName www.example.com:80
 Redirect permanent / https://www.example.com

重启Apache服务器,使配置生效:

# service httpd restart

b) 强制虚拟主机(单个站点)

如果要强制单个站点在虚拟主机上使用HTTPS,对于HTTP可以按照下面进行配置:

# vim /etc/httpd/conf/httpd.conf

<VirtualHost *:80>
 ServerName proxy.mimvp.com
 Redirect permanent / https://proxy.mimvp.com/
 </VirtualHost>

重启Apache服务器,使配置生效:

# service httpd restart

单个站点全部使用HTTPS,则 http://proxy.mimvp.com 会强制重定向跳转到 https://proxy.mimvp.com

一般情况下,由于浏览器会自动拦截https未被认证的网址,因此建议同时保留 http://proxy.mimvp.com 和 https://proxy.mimvp.com ,或者购买权威的认证服务,让用户浏览器信任https浏览访问。

综上所述,当存在如用户登录,付款交易等交互时推荐HTTPS方式,可以提高服务器的安全性。

证书可以通过各种方式获得,如:自签名、社区提供的甚至商业机构够哦买的。管理员应当谨慎选择将要使用的证书的类型。

参考:http://blog.csdn.net/ithomer/article/details/50433363

本文永久链接:

linux FTP 服务器安装配置及命令使用教程(附:视频讲解)

本文将会讲述如何在linux系统下安装并配置最常用的FTP 服务器(VSFTPD),并通过实例来介绍如何利用FTP命令来上次文件和从ftp服务器上下载文件。

FTP 是什么

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:”下载”(Download)和”上传”(Upload)。”下载”文件就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。  -摘自 百度百科

linux FTP 服务器安装(VSFTP 软件包安装)

在linux系统下我们主要使用ftp软件是vsftp,它的进程名为vsftpd,下面我们来介绍如何来安装vsftp 软件包。

1# 检查vsftp软件包是否安装

执行下面的命令:

# rpm -qa |grep vsftp

2# 如果vsftp软件没有安装,执行下面的命令安装

# yum install vsftpd

linux FTP 服务启用

1# 启用vsftpd ftp 服务

执行下面命令:

# chkconfig vsftpd on

linux FTP 服务器启动/停止/重启

1# 启动vsftpd ftp 服务器

执行下面的命令:

# service vsftpd start

对于centos7 或者ubuntu 16.04 系统,执行命令:

# systemctl start vsftpd.service

2# 停止vsftpd ftp 服务器

执行下面的命令:

# service vsftpd stop

对于centos7 或者ubuntu 16.04 系统,执行命令:

# systemctl stop vsftpd.service

3# 重启vsftpd ftp 服务器

# service vsftpd restart

对于centos7 或者ubuntu 16.04 系统,执行命令:

# systemctl restart vsftpd.service

Linux FTP 端口开启(ftp端口号为21)

在linux下的ftp 服务默认使用的端口号为21,我们需要配置防火墙策略,允许对服务器21号端口的访问。

1# 使用vim 编辑器打开/etc/sysconfig/iptables配置文件

执行命令:

# vim /etc/sysconfig/iptables

2# 添加下面的防火墙策略到配置文件里

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

3# 保存并退出配置文件。重启防火墙服务

执行下面命令:

# service iptables restart

测试 FTP 服务器

执行下面命令:

# ftp localhost
# ftp ftp服务器ip地址

linux FTP 服务器配置

Vsftp ftp 软件默认的配置文件为/etc/vsftpd/vsftpd.conf, 我们需要根据实际情况来对配置文件做更改, 下面将会对一些典型的配置案例做介绍:

1# ftp 匿名用户配置

如果想让匿名用户浏览ftp服务器上的文件,但不能上传文件以及创建目录,那么我们可以对配置做下面的更改:

ftpd_banner=Welcom to my FTP Server!!!    //登录时显示的欢迎信息
 dirmessage_enable=YES            //允许为目录配置显示信息,显示每个目录下面message_file文件的内容
 setproctitle_enable=YES            //显示会话状态信息
anonymous_enable=YES            //接受匿名用户
 no_anon_password=YES            //匿名用户登录时不询问口令
 anon_root=目录路径            //匿名用户登录后所在的位置,可以根据自己的实际需求来修改
 write_enable=YES            //可以上传(全局控制)
 file_open_mode=0666            //上传文件的权限,配合umask使用
 anon_upload_enable=NO        //匿名用户可以上传
 anon_mkdir_write_enable=YES        //匿名用户可以建立目录
 anon_other_write_enable=YES        //匿名用户可以重名名、删除等权限
 anon_world_readable_only=YES    //如果设为YES,匿名用户登入者会被允许下载可阅读的文档
 chown_uploads=YES            //所有匿名上传的文件的所属用户将会被更改为chown_username
 chown_username=user            //匿名上传文件所属用户名

2# 允许用户上传文件并在服务器上创建目录的配置

通过vim 编辑vsftpd 配置文件,更改下面的配置:

anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

保存并退出配置文件,并重启vsftpd 服务器

3# FTP网络连接参数

如果需要对ftp服务器网络连接参数做更改,可以优化下面的网络参数配置:

max_clients=1000            //可接受的最大连接数,可以根据自己的实际情况来修改
 max_per_ip=5                //每个IP地址的最大连接数,可以根据自己的实际情况来修改
 anon_max_rate=51200            //匿名用户的带宽(b/s)
 local_max_rate=5120000        //本地用户的带宽(b/s)
 idle_session_timeout=600        //空闲连接超时时间
 data_connection_timeout=120        //数据传输超时时间
 ACCEPT_TIMEOUT=60            //PAVS请求超时时间
 connect_timeout=60            //PORT模式连接超时时间
 connect_from_port_20=YES        //使用标准的20端口来连接FTP
 listen_address=地址或网段        //绑定到某个IP或网段,其他IP不能访问该FTP
 listen_port=2121            //绑定到某个端口
 ftp_data_port=2020            //数据传输端口
 pasv_max_port=0            //PASV连接模式时可以使用port范围的上界,0表示任意。
 pasv_min_port=0            //PASV连接模式时可以使用port范围的下界,0表示任意。

linux ftp 服务器配置后可能遇到的问题

Ftp 服务器中的默认文件存放路径是在/var/ftp/pub 目录下,服务器配置完毕后,可能会遇到一些小问题,比如:无法登陆,不能创建目录,不能写文件等,造成这种问题的原因主要是权限问题。我们需要对权限做一些更改,如下:

1# 更改pub目录的权限为755, 执行下面命令:

# chmod 755 -R /var/ftp/pub

需要注意的是,pub目录的权限不能设置为777, 否则会报错。

2# 如果匿名用户需要上传文件,那么需要给pub目录的其它组增加写的权限,执行下面命令:

#chmod o+w /var/ftp/pub/

Linux 下通过shell 脚本自动化实现FTP服务器的安装及配置

在实际的工作中,可能需要实现ftp服务器的自动化安装及配置,那么我们就可以使用linux bash shell 脚本来实现其自动化安装配置。下面的脚本仅作为参考使用,具体的设置可以执行更改。

#!/bin/bash
# 设置ftp环境的脚本。ftp的根目录为只读,其下的writable目录为可写
# 可自定义以下四项
# ftp用户名
userName="test"
# ftp密码
password="test"
# ftp根目录,末尾不要加/
ftp_dir="$HOME/ftp"
# 可写目录的目录名
writable="writable"

# 如果没有加sudo,提示错误并退出
if [ "x$(id -u)" != x0 ]; then
echo "Error: please run this script with 'sudo'."
exit 1
fi

# 核心工具,vsftpd。 -y是对所有提示都回答yes
sudo apt-get -y install vsftpd

# db-util是用来生成用户列表数据库的工具
sudo apt-get -y install db-util


# 以下步骤参考https://help.ubuntu.com/community/vsftpd#The_workshop
# 创建用户名和密码的数据库,以单数行为用户名,双数行为密码记录
cd /tmp
printf "$userName\n$password\n" > vusers.txt
db_load -T -t hash -f vusers.txt vsftpd-virtual-user.db
sudo cp -f vsftpd-virtual-user.db /etc/
cd /etc
chmod 600 vsftpd-virtual-user.db
if [ ! -e vsftpd.conf.old ]; then
sudo cp -f vsftpd.conf vsftpd.conf.old
fi


# 创建PAM file。bash的here-document,直接输出这些内容覆盖原文件
(sudo cat <<EOF
auth       required     pam_userdb.so db=/etc/vsftpd-virtual-user
account    required     pam_userdb.so db=/etc/vsftpd-virtual-user
session    required     pam_loginuid.so
EOF
) > pam.d/vsftpd.virtual


# 获取当前的用户名,不能用whoami或$LOGNAME,否则得到的是root
owner=`who am i| awk '{print $1}'`

# 创建vsftpd的配置文件。
(sudo cat <<EOF
listen=YES
anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
local_umask=000
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
hide_ids=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd.virtual
guest_enable=YES
user_sub_token=$USER
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
EOF
) > vsftpd.conf
sudo echo "local_root=$ftp_dir" >> vsftpd.conf

# 虚拟用户需要映射为本地用户,设为自己,避免权限问题,但同时也令自己对ftp根目录不可写
sudo echo "guest_username=$owner" >> vsftpd.conf


# 设置了每个虚拟用户只可以浏览其根及子目录(否则可访问磁盘根目录),
# 这样会被要求根目录不可写,所以创建一个writable的子目录
mkdir "$ftp_dir"
mkdir "$ftp_dir/$writable"
sudo chmod a-w "$ftp_dir"
sudo chown -R $owner:$owner $ftp_dir
sudo /etc/init.d/vsftpd restart
#该脚本出自:blog.csdn.net/hursing

linux ftp 服务器安装及配置视频讲解教程

如果对上面的某些步骤还有不明白的地方,那么可以参考下面的vsftp 视频安装及配置教程。

linux FTP 命令

ls: 显示远端文件列表(ils 显示本地文件列表)。# l 的意思就是local ils比较特殊
cd: 切换远端目录(lcd 切换本地目录)。
get:下载远端文件。
mget:下载远端文件(可以用通配符也就是 *)。
pget:使用多个线程来下载远端文件, 预设为五个。
mirror:下载/上传(mirror -R)/同步 整个目录。
put:上传文件。
mput:上传多个文件(支持通配符)。
mv:移动远端文件(远端文件改名)。
rm:删除远端文件。 参数-r,递归删除文件夹
mrm:删除多个远端文件(支持通配符)。
mkdir:建立远端目录。
rmdir:删除远端目录。
pwd:显示目前远端所在目录(lpwd 显示本地目录)。
du:计算远端目录的大小
set net:limit-rate 10000,10000 限制上传下载各为10KB/s
set ftp:charset gbk 设置远程ftp site用gbk编码
! 执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代)
lcd:切换本地目录
lpwd:显示本地目录
alias:定义别名
exit:退出ftp

FTP 命令的实例

1# 登陆linux ftp服务器

命令格式:ftp [hostname| ip-address]

执行下面的命令:

ftp 192.168.1.105

然后输入相应的ftp用户名和密码。

2# 从ftp服务器上下载文件

下载文件通常用get和mget这两条命令。

a) 使用get 命令

格式:get [remote-file] [local-file]

将文件从远端主机中传送至本地主机中.例如要下载ftp服务器上的fio.txt 文件到本地目录上

执行下面的命令:

ftp> get fio.txt  fio.txt

b) 使用mget命令

格式:mget [remote-files]

从远端主机接收一批文件至本地主机.例如要获取服务器上/var/pub/目录下的所有文件

执行下面的命令:

ftp> cd /var/pub/
ftp> mget *.*

3#往linux ftp服务器上传文件

a)使用 put命令

格式:put local-file [remote-file]

将本地一个文件传送至远端主机中.例如要把本地的fio.txt上传到到远程ftp服务器的/var/pub 目录里,执行下面的命令

ftp> put fio.txt  /var/pub

b)使用 mput命令

格式:mput local-files

将本地主机中一批文件传送至远端主机.

例如要把本地当前目录下所有txt文件上传到ftp服务器的/var/pub/ 下

ftp> cd /var/pub/
ftp> mput *.txt

4# 断开ftp连接

bye:中断与服务器的连接。

执行下面的命令:

ftp> bye

更多阅读:LFTP : 一个功能强大的命令行FTP程序 

本文永久地址:http://www.osetc.com/archives/20354.html

Windows 下的免费 SSH 客户端工具

如果你的操作系统是 Windows,而你想要连接 Linux 服务器相互传送文件,那么你需要一个简称 SSH 的 Secure Shell 软件。实际上,SSH 是一个网络协议,它允许你通过网络连接到 Linux 和 Unix 服务器。SSH 使用公钥加密来认证远程的计算机。你可以有多种途径使用 SSH,无论是自动连接,还是使用密码认证登录。

本篇文章介绍了几种可以连接 Linux 服务器 SSH 客户端。

让我们开始吧。

Putty

Putty 是最有名的 SSH 和 telnet 客户端,最初由 Simon Tatham 为 Windows 平台开发。Putty 是一款开源软件,有可用的源代码,和一群志愿者的开发和支持。

Putty 非常易于安装和使用,通常大部分的配置选项你都不需要修改。你只需要输入少量基本的参数,就可以开始很简单地建立连接会话。点此下载 Putty。

Bitvise SSH Client

Bitvise SSH 是一款支持 SSH 和 SFTP 的 Windows 客户端。由 Bitvise 开发和提供专业支持。这款 SSH 客户端性能强悍,易于安装、便于使用。Bitvise SSH 客户端拥有功能丰富的图形界面,通过一个有自动重连功能的内置代理进行动态端口转发。

Bitvise SSH 客户端对个人用户使用是免费的,同时对于在组织内部的个人商业使用也一样。你可以在这里下载 Bitvise SSH 客户端

MobaXterm

MobaXterm 是你的远程计算的终极工具箱。在一个 Windows 应用里,它为程序员、网管、IT 管理员及其它用户提供了精心裁剪的一揽子功能,让他们的远程操作变得简约时尚。

MobaXterm 提供了所有重要的远程网络工具 (如SSH、 X11、 RDP、 VNC、 FTP、 MOSH 等等),以及 Windows 桌面上的 Unix 命令(bash、 ls、 cat、sed、 grep、 awk、 rsync等等),而这些都是由一个开箱即用的单一的便携程序所提供。MobaXterm 对个人使用免费,你可以在这里下载 MobaXterm。

DameWare SSH

我认为 DameWare SSH 是最好的免费SSH客户端。(LCTT 译注:似乎 DameWare 已经取消了该软件的下载。)

这个免费工具是一个终端模拟器,可以让你从一个易用的控制台建立多个 telnet 和 SSH 连接。

  • 用一个带标签的控制台界面管理多个会话
  • 将常用的会话保存在 Windows 文件系统中
  • 使用多套保存的证书来轻松登录不同的设备
  • 使用 telnet、SSH1 和 SSH2 协议连接计算机和设备

SmarTTY

SmarTTY 是一款免费的多标签 SSH 客户端,支持使用 SCP 命令随时复制文件和目录。

大多数 SSH 服务器每个连接支持最多10个子会话.SmarTTY 在这方面做得很好:没有烦人的多个窗口,不需要重新登录,仅仅打开一个新的标签页就可以开始了!

Cygwin

Cygwin 是一款 GNU 和开源工具的大杂烩,提供的功能近似于一个 Windows 平台下的 Linux。

Cygwin 包括了一个称为模拟库的 Unix 系统:cygwin.dll,集成了大量的 GNU 和其它的免费软件,以大量的可选包方式组织而成。在这些安装包中,有高质量的编译器和其他软件开发工具、一个X11服务器、一套完整的X11开发套件、GNU emacs 编辑器、Tex 和 LaTeX、openSSH(客户端和服务器),除此之外还有很多,包括在微软 Windows 下需要编译和使用 PhysioToolkit 软件的每一样东西。

读完我们的文章后,不知你中意哪一款 SSH 客户端?你可以留下你的评论,描述你喜欢的系统和选择的原因。当然,如果有另外的 SSH 客户端没有被本文列举出来,你可以帮助我们补充。

via: linux.cn

最实用的 Linux 命令行使用技巧 (必看!)

我们可能每天都会要使用到很多的 Linux 命令行。 我们也会网络上知晓一些使用它们的小技巧,但是如果我们没有时常来进行练习,就有可能会忘掉怎么去使用它们。 所以我就决定把那些你可能会忘记的小提示和小技巧,或者对你而言可能是全新的东西都列表来。

将输出内容以表格的形式显示出来

有时,在你看到命令行执行的输出时,因为字符串过度拥挤(比如说 mount 命令的输出)导致输出内容难以识别。如果我们看到的内容是一张表格会如何呢?其实这是很容易做到的!

mount | column –t:

在此例中,由于内容中留了空格,所以输出的形式就美观了起来。 那如果想要的分隔符是别的什么符号,比如说冒号,又该怎么去做呢? (例如,在 cat/etc/passwd 的输出内容中使用)

这时候只需要使用 -s 参数指定分隔符就行了,像下面这样。

cat /etc/passwd | column -t -s:

重复执行一个命令,直到它运行成功

如果在 Google 上搜索这个功能,你会发现很多人都问到了如何重复执行命令,直到这个命令成功返回并且运行正常。 Google上的建议里就包括 ping 服务器,直到它变得空闲为止,还有就是检查是否有向特定的目录上传了具有特定扩展名的文件,还有就是检查特定的URL是否已经存在,诸如此类的办法。

其实你还可以使用 while true 的循环来实现来实现这个功能:

在上面这个示例中,>/dev/null 2>&1 会让程序的输出重定向到 /dev/ null。标准错误和标准输出都会被包含进去。

这是我认为最酷的Linux命令行技巧之一。

按内存资源的使用量对进程进行排序

ps aux | sort -rnk 4:

按 CPU 资源的使用量对进程进行排序

ps aux | sort -nk 3:

如果想要检查你的机器架构,那就执行 getconf LONG_BIT。

可以同时查看多个日志文件

毫无疑问,你可能已经会使用 tail  命令来查看日志文件了,但可能有时候你还想着能同时查看多个日志文件。 使用 multi-tail 命令就支持支持文本的高亮显示,内容过滤以及更多你可能需要的功能:

如果系统里还没有这个命令,运行 apt-get install multitail 命令就可以把它给装上。

回到你操作过的上一个目录去

只需敲入 cd – 就会返回到你操作过的上一个目录中去。

让非交互式 Shell 会话可进行交互

想要这样做,那就把设置从 ~/.bashrc 改成 ~/.bash_profile 吧。

定时的监视性命令输出

使用 watch 命令(watch df -h),你就可以查看到任何命令的任何输出。例如,你可以查看可用空间以及它的使用量增长情况。

通过利用 watch 命令来操作会变化的数据,你可以尽情想象自己能拿这个来做些什么哦。

在会话关掉以后继续运行程序

如果你在后台运行了什么程序,然后你关掉了的 shell 会话,那么这个后台运行的程序就会被你的 shell 杀掉。关闭 shell 以后怎么让程序继续运行下去呢?

这个可以用 nohup 命令做到 – 该指令表示不做挂断操作:

nohup wget site.com/file.zip

此命令是最容易被遗忘的 Linux 命令行技巧之一,因为我们许多人都会使用另外一个类命令的 screen 环境:

这样会在同一个目录下生成一个名称为 nohup.out 的文件,其中包含了正在运行的程序的输出内容:

命令很酷,对吧?

自动对任何命令回答 Yes 或者 No

如果你想自动化需要向用户说的 Yes 的过程,可以使用 yes 命令来实现:yes | apt-get update。

也许你想做的是自动地说“No”。这个可以使用 yes no | 命令来实现。

创建具有指定大小的文件

可以使用 dd 命令来创建出具有指定大小的文件:dd if=/dev/zero of=out.txt bs=1M count=10。

这样就会创建出一个 10 MB 的文件,填充零作为内容:

以根目录用户来运行最后一个命令

有时,你会忘记在需要 root 权限的命令之前敲入 sudo。这时候你没必要去重写命令; 只要输入 sudo 就行了!

对命令行会话进行记录

如果想要把自己在 shell 屏幕上敲的内容记录下来,可以使用 script 命令将所有敲写的内容保存到一个名为 typescriptscript 的文件中去。

等你敲入 exit 命令以后,所有命令就都会被写入该文件,以便你事后再回过头去查看。

用标签符号替换空格符

可以使用 tr 命令替换任何字符,这个用起来非常方便:cat geeks.txt | tr ‘:[space]:’ ‘\t’ > out.txt.

将文件内容转换为大写或者小写

可以这样实现:cat myfile | tr a-z A-Z> output.txt。

强大的 Xargs 命令

xargs 命令是最重要的 Linux 命令行技巧之一。你可以使用这个命令将命令的输出作为参数传递给另一个命令。例如,搜索 png 文件然后对其进行压缩或者其它操作:

find. -name *.png -type f -print | xargs tar -cvzf images.tar.gz

又或者你的文件中有一个 URL 的列表,而你想要做的是以不同的方式下载或者处理这些 URL,可以这样做:

cat urls.txt | xargs wget

xargs command

请你要记得,第一个命令的输出会在 xargs 命令结尾处传递。

那如果命令需要中间过程的输出,该怎么办呢?这个简单!

只需要使用 {} 并结合 -i 参数就行了。如下所示,替换在第一个命令的输出应该去的地方的参数:

ls /etc/*.conf | xargs -i cp {} /home/likegeeks/Desktop/out

这只是 Linux 命令行技巧其中的几个而已。你可以使用其他命令来做一些更 HAPPY 的事情,比如 awk 命令和 sed 命令!

如果你知道一些我在这里没有提到的任何其它的极客命令,欢迎评论。

 

Ubuntu 安装教程及相应软件JDK、MySQL 和Chrome安装(史上最全!)

本文将会详细讲述如何在VMware workstation工具里安装 Ubuntu 系统(以ubuntu 16.04系统为例),并会介绍在Ubuntu 安装后,如何来安装常用的Ubuntu应用软件,比如:JDK,MySQL 和Chrome浏览器。

Ubuntu 系统是以桌面应用为主的开源Linux发行版本,其支持x86, Amd 64 以及ppc系统架构,目前广泛应用于个人电脑,平板电脑,只能手机,并且现在也开发出来服务器以及云版本。在大多数的国内外主机服务提供商里(阿里云,Amazon, linode等),都会提供安装ubuntu 14.04/16.04 等版本的主机。

Ubuntu 怎么读

对于很多初学者来说,可能都有有个疑问,”ubuntu” 到底该怎么读?

我们从官方了解到的关于 “ubuntu”的解释,该词源于非洲祖鲁人和科萨人的语言,他们会发“oo-boon-too” 的读音。英文的国际音标为:[uːˈbuːntuː] (这是老美们的读法), 用我们的拼音来读的话,发音类似于: wu ban tu,。 而我们 国内Ubuntu的读法也和这个类似,读作:友帮拓优般图乌班图

Ubuntu iso 镜像文件下载

因为Ubuntu系统是一个免费的Linux发型版本,所有我们可以直接去Ubuntu的官方网站去下载你所需要的安装包。其下载地址如下:

Ubuntu Iso镜像文件官方下载地址:

Ubuntu 16.04 LTS 长期支持版本 64位:http://releases.ubuntu.com/16.04/ubuntu-16.04.3-desktop-amd64.iso
Ubuntu 16.04 LTS 长期支持版本 32位: http://releases.ubuntu.com/16.04/ubuntu-16.04.3-desktop-i386.iso
Ubuntu 17.04 版本 64位:http://releases.ubuntu.com/17.04/ubuntu-17.04-desktop-amd64.iso
Ubuntu 17.04 版本32位:http://releases.ubuntu.com/17.04/ubuntu-17.04-desktop-i386.iso
Ubuntu 14.04 LTS 长期支持版本 64位:http://mirrors.163.com/ubuntu-releases/14.04.5/ubuntu-14.04.5-desktop-amd64.iso
Ubuntu 14.04 LTS 长期支持版本 32位: http://mirrors.163.com/ubuntu-releases/14.04.5/ubuntu-14.04.5-desktop-i386.iso

如果你想下载更多其他版本的ubuntu安装包,可以去ubuntu官方下载(由于官方提供的下载地址,iso镜像服务器可能都在国外,所以下载速度可能会比较慢)或者去163镜像官方站去下载不同的版本号的安装包, 地址为:http://mirrors.163.com/ubuntu-releases/  , 也可以去中科院开源镜像站,地址为:http://mirrors.opencas.org/ubuntu-releases/ , 这两个站的下载速度都还不错。

Ubuntu 16.04安装

下面我们会通过详细的图文教程来讲述如何来安装Ubuntu 16.04 操作系统。

1#  首先打开虚拟机软件vmware workstation 或者 oracle的virtualBox. (本教程使用vmware workstation)

Ubuntu 安装教程1

2#  创建一个新的虚拟机,点击 ”文件”-> “创建新的虚拟机” –> 选择 “Custom” -> “next

Ubuntu 安装教程1

Ubuntu 安装教程1

Ubuntu 安装教程1

Ubuntu 安装教程1

3#  输入虚拟机的名字,如:ubuntu 16.04 guide , 如果需要更改虚拟机的安装位置,可以点击“Browse…”,更改安装后的位置。

Ubuntu 安装教程

Ubuntu 安装教程

Ubuntu 安装教程

Ubuntu 安装教程

Ubuntu 安装教程

Ubuntu 安装教程

Ubuntu 安装教程

Ubuntu 安装教程

Ubuntu 安装教程

4#  点击“Edit virtual machine settings” 来编辑新创建的虚拟机的设置, 指定你要安装系统的iso镜像文件地址。

Ubuntu 安装教程

Ubuntu 安装教程

5# 点击”Power on this virtual machine” 来启动虚拟机,开始安装ubuntu系统

Ubuntu 安装教程

6#  在安装界面的最左侧的语言栏,选中“中文(简体)”,此时,界面会从英文变成中文简体界面。然后点击“安装ubuntu” 按钮

Ubuntu 安装教程

7# 接下来是要检测准备情况,在继续之前你可以选中下面两个安装更新选项,这样可以节省你安装后的更新系统所需要的时间。如果你没有连接到互联网,第一选项将会是灰色的无法选择,但你可以选择第二并继续安装。当然也可以两个都不选择。

Ubuntu 安装教程

8#  Ubuntu分区方案

常用的两个分区方案如下(以磁盘大小100G为例):

方案一: 只创建根分区“/” 和交换分区”swap”, 这种简单的分区方案足以满足大多数的日常应用

方案二:创建 根分区”/”  ,分区大小为30G,分区文件系统格式为:Ext4

创建交换分区 “swap”,  分区大小和主机内存大小一样即可。 分区格式为swap

创建boot分区,用来存放内核文件引导linux系统启动,大小为500M即可, 分区文件系统格式选择Ext4

本ubuntu 安装教程选择默认安装,点击“清楚真个磁盘并安装ubuntu”, 并点击“现在安装” 按钮

Ubuntu 安装教程

9# 在弹出的“将改写写入磁盘吗?” 窗口, 选择“继续”来确认你的分区方案,进入下一步骤

Ubuntu 安装教程

10#  选择你当前位置,如输入:beijingshi

Ubuntu 安装教程

11# 选择键盘布局

Ubuntu 安装教程

12#  输入相关的信息,比如姓名,计算机名,用户名和密码

Ubuntu 安装教程

13# 系统正式开始安装。。。。

Ubuntu 安装教程

14# 安装完成后,重新启动系统。

Ubuntu 安装教程

在安装完ubuntu系统后,我们可能会安装一些常用的应用软件,比如搜狗拼音输入法,JDK 开发环境,chrome浏览器等。下面我们来介绍如何在ubuntu系统下安装这几种常用的应用软件。

Ubuntu 安装搜狗输入法

在安装完系统后,可能我们第一个要装的软件应该是中文输入法了,而我们常用的中文输入法是搜狗拼音输入法,可以参照下面的文章去了解如何在ubuntu系统下安装搜狗拼音输入法。

阅读:Ubuntu 系统下安装搜狗拼音输入的方法

Ubuntu系统安装Chrome 浏览器

Ubuntu系统安装后默认会安装Firefox火狐浏览器,打开浏览器,进入google chrome浏览器官网下载chrome浏览器的deb安装包。下载地址为:http://www.google.cn/intl/zh-CN/chrome/browser/desktop/index.html

1# 点击”下载chrome” 按钮

Ubuntu系统安装Chrome 浏览器1

2# 选择下载包 64bit deb, 并点击 “接受并安装”按钮

Ubuntu系统安装Chrome 浏览器1

3# 接下来Firefox 浏览器会询问你如何打开这个下载的deb软件包,你可以选择默认的打开方式,通过ubuntu software center。 也可以将deb软件包保存在指定的目录下。(本教程将会使用默认的方法)

Ubuntu系统安装Chrome 浏览器1

如果选择了第一种打开方式,那么google chrome deb 软件包将会被保存到/tmp/mozilla_$username 目录里。 一旦下载完成后,ubuntu 软件中心会自动打开。 你只需要点击“安装”按钮,就可以安装google chrome 稳定版本到系统上。

如果此时安装失败,那是因为在安装chrome软件包的时候,有软件包依赖的问题。执行下面的命令解决依赖问题:

$ sudo agpt-get install  google-chrome-stable
$ sudo apt-get install -f

命令输出如下:

[sudo] devops 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在修复依赖关系... 完成
将会同时安装下列软件:
libappindicator1 libindicator7
下列【新】软件包将被安装:
libappindicator1 libindicator7
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 143 个软件包未被升级。
有 1 个软件包没有被完全安装或卸载。
需要下载 41.2 kB 的归档。
解压缩后会消耗 165 kB 的额外空间。
您希望继续执行吗? [Y/n] Y
获取:1 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libindicator7 amd64 12.10.2+16.04.20151208-0ubuntu1 [21.9 kB]
获取:2 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libappindicator1 amd64 12.10.1+16.04.20170215-0ubuntu1 [19.4 kB]
已下载 41.2 kB,耗时 0秒 (305 kB/s)
正在选中未选择的软件包 libindicator7。
(正在读取数据库 ... 系统当前共安装有 180114 个文件和目录。)
正准备解包 .../libindicator7_12.10.2+16.04.20151208-0ubuntu1_amd64.deb  ...
正在解包 libindicator7 (12.10.2+16.04.20151208-0ubuntu1) ...
正在选中未选择的软件包 libappindicator1。
正准备解包 .../libappindicator1_12.10.1+16.04.20170215-0ubuntu1_amd64.deb  ...
正在解包 libappindicator1 (12.10.1+16.04.20170215-0ubuntu1) ...
正在处理用于 libc-bin (2.23-0ubuntu9) 的触发器 ...
正在设置 libindicator7 (12.10.2+16.04.20151208-0ubuntu1) ...
正在设置 libappindicator1 (12.10.1+16.04.20170215-0ubuntu1) ...
正在设置 google-chrome-stable (61.0.3163.100-1) ...
update-alternatives: 使用 /usr/bin/google-chrome-stable 来在自动模式中提供 /usr/bin/x-www-browser (x-www-browser)
update-alternatives: 使用 /usr/bin/google-chrome-stable 来在自动模式中提供 /usr/bin/gnome-www-browser (gnome-www-browser)
update-alternatives: 使用 /usr/bin/google-chrome-stable 来在自动模式中提供 /usr/bin/google-chrome (google-chrome)
正在处理用于 libc-bin (2.23-0ubuntu9) 的触发器 ...

6# 如果在第三步选择了将软件包保存到指定目录下, 那么可以使用下面的dpkg -i 命令来直接安装chrome deb软件包。

$ sudo dpkg -i  google-chrome-stable_current_amd64.deb

如果遇到依赖问题,可以通过执行下面命令解决:

$ sudo agpt-get install  google-chrome-stable
$ sudo apt-get install -f

再次执行dpkg -i  google-chrome-stable_current_amd64.deb

7# 我们来看下安装后的结果

Ubuntu系统安装Chrome 浏览器5

Ubuntu系统安装Chrome 浏览器5

Ubuntu 安装 JDK 8

下面我们会将如何通过下载源码包来安装java jdk 8. 因为oracle 官方已经不支持对JDK 7的下载,所有本教程值讲述如何来安装jdk 8.

1# 首先要添加ppa安装源

执行下面的命令:

$ sudo add-apt-repository ppa:webupd8team/java

命令输出如下:

[sudo] devops 的密码:
 Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK7 / JDK8 / JDK9). There are no actual Java files in this PPA.
Important -> Why Oracle Java 7 And 6 Installers No Longer Work: http://www.webupd8.org/2017/06/why-oracle-java-7-and-6-installers-no.html
Ubuntu 16.10 Yakkety Yak is no longer supported by Canonical (and thus, Launchpad and this PPA). The PPA supports Ubuntu 17.10, 17.04, 16.04, 14.04 and 12.04.
More info (and Ubuntu installation instructions):
- for Oracle Java 7: http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html
- for Oracle Java 8: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html
Debian installation instructions:
- Oracle Java 7: http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html
- Oracle Java 8: http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html
Oracle Java 9 (for both Ubuntu and Debian): http://www.webupd8.org/2015/02/install-oracle-java-9-in-ubuntu-linux.html
Oracle JDK 9 is now considered stable. There are currently only 64bit builds (no other builds are available for download: http://www.oracle.com/technetwork/java/javase/downloads/index.html )
 更多信息: https://launchpad.net/~webupd8team/+archive/ubuntu/java
按回车继续或者 Ctrl+c 取消添加
gpg: 钥匙环‘/tmp/tmp77dgqq2l/secring.gpg’已建立
gpg: 钥匙环‘/tmp/tmp77dgqq2l/pubring.gpg’已建立
gpg: 下载密钥‘EEA14886’,从 hkp 服务器 keyserver.ubuntu.com
gpg: /tmp/tmp77dgqq2l/trustdb.gpg:建立了信任度数据库
gpg: 密钥 EEA14886:公钥“Launchpad VLC”已导入
gpg: 没有找到任何绝对信任的密钥
gpg: 合计被处理的数量:1
gpg:               已导入:1  (RSA: 1)
OK
$ sudo apt-get update

2# 安装jdk8 oracle-java-installer

执行下面命令:

$ sudo apt-get install oracle-java8-installer

3# 执行下面的命令,将jdk8 设置为默认的Java 运行版本

$ sudo apt install oracle-java8-set-default

4# 下面我们可以来检测一下JDK8 是否安装成功

执行命令:

$ java –version

命令输出:

java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
$ javac -version
javac 1.8.0_144

Ubuntu 安装MySQL

当前最新的MySQL 版本是5.7, 接下来将会讲述如何使用apt-get 命令来安装MySQL 5.7.

1# 更新当前的系统

执行命令:

$ sudo apt update
$ sudo apt upgrade

2# 在ubuntu 16.4 系统上安装MySQL 5.7

执行下面命令:

$ sudo apt-get install mysql-server mysql-client

命令输出如下:

Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following additional packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18
  libterm-readkey-perl mysql-client-5.7 mysql-client-core-5.7 mysql-common
  mysql-server-5.7 mysql-server-core-5.7
Suggested packages:
  libclone-perl libmldbm-perl libnet-daemon-perl libsql-statement-perl
  libipc-sharedcache-perl mailx tinyca
The following NEW packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18
  libterm-readkey-perl mysql-client mysql-client-5.7 mysql-client-core-5.7
  mysql-common mysql-server mysql-server-5.7 mysql-server-core-5.7
0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.
Need to get 21.7 MB of archives.
After this operation, 155 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

在运行过程中,需要你输入mysql root的密码。

3#  执行mysql_secure_installation  命令来增强mysql的安全性

$ sudo mysql_secure_installation

mysql_secure_installation命令会要求你更改root的密码,并且禁用或删除MySQL服务器中的匿名用户,关闭MySQL root用户远程登录权限,删除测试数据库,并重新加载授权表的系统。如果你已经完成了所有的步骤,那么MySQL安装将会是比较安全的。

 Ubuntu 手机

Ubuntu公司自从2013年1月份发布了针对手机的智能操作系统,并且与国产手机厂商魅族手机进行了合作,退出了乌班图MX3智能手机系统,但由于ubuntu手机系统的两大竞争对手安卓和苹果实力太过强大,并且占据了大部分市场份额,而且ubuntu手机系统的手机应用也不够多,以及合作的手机厂商太少,最后生存在了4年的ubuntu 手机系统也以失败而告终。

Ubuntu  和Deepin 相比哪个系统更好?

Deepin 基于debian的衍生版本,可以说是当前图形界面做的最华丽最漂亮的linux发型版本之一,对于桌面用户易用性相当强,默认会支持各种中文的应用,比如搜狗输入法,qq,自带chrome流量器等,当然还是有一些小bug, 稳定性还需要提高,如果是初学者的话,上手会很快。

Ubuntu系统发展时间比较长了,现在已经有服务器版本,云版本,手机版本,各方面来说都比较成熟了,产品也很稳定,社区支持也很强大。如果是深入学习的话或者做服务器使用的话,还是推荐使用ubutnu系统,毕竟网络上针对ubuntu系统的资料是最多的。


99%的人还阅读了: