Ruby_01_环境安装



手册简介:

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。

由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。

Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。

因为Perl发音与6月诞生石pearl(珍珠)相同,

因此Ruby以7月诞生石ruby(红宝石)命名。

C#的命名则是乐理中的C音符升半度而来

手册说明:

201610261616553875

官网:http://www.ruby-lang.org/en/

API文档:http://www.ruby-lang.org/en/documentation/

下载:http://www.ruby-lang.org/en/downloads/


发展历程

Ruby明显比其他类似的编程语言(如Perl或Python)年轻,又因为Ruby是日本人发明的,所以早期的非日文资料和程序都比较贫乏,所以在网上仍然可以找到类似“Ruby的资料太少”之类的批评。约于2000年,Ruby开始进入美国,英文的资料开始发展。
Ruby归根结底源于Perl和Python两类语言,与C,C++,C#,java是不同大类。

Ruby 标识
2011年10月31日1.9.3的第一个稳定版本1.9.3p0发布。
2013年2月22日发布了Ruby 1.9.3-p392。
2013年2月24日发布了Ruby 2.0.0-p0。
2015年4月13日发布了Ruby 2.2.2。
2015年12月25日发布了Ruby 2.3.0。

语言标准

Ruby的变量有一定的规则,
以 $ 开头的一定是全局变量,
以 @ 开头的都是实例变量,
而以  @@  开头的是类变量。
常数则以大写字母开头;
这种方法,对文本编辑器的命令补全很有帮助,
如在vim下先键入$及开头字母,再敲击Ctrl+p,则可专门补全本文件以及关联文件中的全局变量,perl与php亦有此优点。

已经定义的类可以在运行时修改
Ruby是动态语言,你可以在程序中修改先前定义过的类。
 也可以在某个类的实例中定义该实例特有的方法,这叫做单例方法。

class Girl
    def showCup
        "generalmethod_showCup"
    end
end
loli=Girl.new
def loli.showCup
    "no cup for this loli instance."
end
loli.showCup#specialcupforthisloliinstance


使用Ruby可以写出简短而又功能强大的代码
下面的方法用来完成两个矩阵的乘积???Excuse Me???
def matrix_mul(matrix1,matrix2)
    result=[]
    (0...matrix1.length).each{|i|
        temp=[]
        (0...matrix2[0].length).each{|j|
            tmp=0
            (0...matrix1[0].length).each{|k|
                tmp+=matrix1[i][k]*matrix2[k][j]
            }
            temp<<tmp
        }
        result<<temp
    }
    return result
end
注:ruby标准库中已包含矩阵库 Matrix

语言特点

完全面向对象
在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数
变量没有类型
Ruby的变量可以保存任何类型的数据。
任何东西都有值
不管是数学或者逻辑表达式还是一个语句,都会有值。
ruby语言很优雅,可以做到不需要注释就可以读懂。吹牛>_<

Ruby优点

语法简单
普通的面向对象功能(类,方法调用等)
特殊的面向对象功能(Mixin,特殊方法等)
操作符重载(类似C++,C#)
错误处理功能
迭代器和闭包(类似JS,Swift)
垃圾回收
动态载入(取决于系统架构)
可移植性高.不仅可以运行在多数UNIX上,还可以运行在DOS,Windows,Mac,BeOS等平台上
适合于快速开发,一般开发效率是JAVA的5倍

语言理念
减少编程时候的不必要的琐碎时间,令编写程序的人高兴,是设计 Ruby 语言的 Matz 的一个首要的考虑;
其次是良好的界面设计。他强调系统设计必须注重人性化,而不是一味从机器的角度设想。

“ 人们特别是电脑工程师们,常常从机器着想。他们认为:‘这样做,机器就能运行的更快;这样做,机器运行效率更高;这样做,机器就会怎样怎样怎样。’
实际上,我们需要从人的角度考虑问题,人们怎样编写程序或者怎样使用机器上应用程序。我们是主人,他们是仆人。 ”
遵循上述的理念,Ruby 语言通常非常直观,按照编程人认为它应该的方式运行。

Ruby 是完全面向对象的:
任何一点数据都是对象,包括在其他语言中的基本类型(比如:整数,布尔逻辑值),
每个过程或函数都是方法。

下面是一个在标准输出设备上输出Hello World的简单程序,
这种程序通常作为开始学习编程语言时的第一个程序:

#!/usr/bin/env ruby
puts "Hello, world!"

语言用途

  • Ruby 是开源的,在Web 上免费提供,但需要一个许可证。
  • Ruby 是一种通用的、解释的编程语言。
  • Ruby 是一种真正的面向对象编程语言。
  • Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。
  • Ruby 可以用来编写通用网关接口(CGI)脚本。
  • Ruby 可以被嵌入到超文本标记语言(HTML)。
  • Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。
  • Ruby 与 C++ 和 Perl 等许多编程语言有着类似的语法。
  • Ruby 可扩展性强,用 Ruby 编写的大程序易于维护。
  • Ruby 可用于开发的 Internet 和 Intranet 应用程序。
  • Ruby 可以安装在 Windows 和 POSIX 环境中。
  • Ruby 支持许多 GUI 工具,比如 Tcl/Tk、GTK 和 OpenGL。
  • Ruby 可以很容易地连接到 DB2、MySQL、Oracle 和 Sybase。
  • Ruby 有丰富的内置函数,可以直接在 Ruby 脚本中使用。

发明人

松本行弘"Matz"(Yukihiro Matsumoto)是Ruby语言的发明人,他从1993年起便开始着手Ruby的研发工作。他一直想发明一种语言,使你既能进行高效开发又能享受编程的快乐。1993年2月24日Ruby诞生了,1995年12月Matz推出了Ruby的第一个版本Ruby 0.95。不久Ruby便凭借其独特的魅力横扫日本。

Ruby 语言

Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本  行弘(まつもと  ゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。Ruby 可运行于多种平台,如 Windows、MAC OS 和 UNIX 的各种版本。

编译/执行 Ruby 程序

对于大多数编程语言,第一个入门实例便是 "Hello World!",下面的实例使用 Ruby 输出 "Hello World!":

#!/usr/bin/ruby
puts "Hello World!";

或者是在irb交互式命令行的模式下

>>puts "Hello, world!"
Hello, world!
=> nil

Ruby 简介

Ruby是一种纯粹的面向对象编程语言。它由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)创建于1993年。

您可以在 www.ruby-lang.org 的 Ruby 邮件列表上找到松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)的名字。在 Ruby 社区,松本也被称为马茨(Matz)。

Ruby 是"程序员的最佳朋友"。

Ruby 的特性与 Smalltalk、Perl 和 Python 类似。

Perl、Python 和 Smalltalk 是脚本语言。

Smalltalk 是一个真正的面向对象语言。

Ruby,与 Smalltalk 一样,是一个完美的面向对象语言。使用 Ruby 的语法比使用 Smalltalk 的语法要容易得多。

您需要的工具

为了执行本教程中讨论的实例,您需要 RAM 至少为 2GB(推荐为 4GB)的 Intel Core i3 或 i5 的计算机。您还需要以下软件:

  • Linux 或 Windows 95/98/2000/NT 或 Windows 7 以上操作系统
  • Apache 1.3.19-5或以上 Web 服务器
  • Internet Explorer 5.0 或以上的 Web 浏览器
  • Ruby 1.8.5或以上

本教程将介绍如何使用 Ruby 创建 GUI、网络和 Web 应用程序。另外还会讨论如何扩展和嵌入 Ruby 应用程序。

接下来将学习什么?

下一章将向您介绍从哪里可以获取 Ruby 及其文档。最后,它会指示您如何安装 Ruby,并配置环境为开发 Ruby 应用程序做准备。


Ruby 环境

本地环境设置

如果您想要设置 Ruby 编程语言的环境

  • Linux/Unix 上的 Ruby 安装:如果您想要在 Linux/Unix 上配置开发环境,那么请查看本章节的内容。

  • Ruby 命令行选项:本章节列出了所有的命令行选项,您可以和 Ruby 解释器一起使用这些命令行选项。

  • Ruby 环境变量:本章节列出了所有重要的环境变量列表,设置这些环境变量以便让 Ruby 解释器工作。

流行的 Ruby 编辑器

为了编写 Ruby 程序,您需要一个编辑器:

  • 如果您是在 Windows 上进行编写,那么您可以使用任何简单的文本编辑器,比如 Notepad++ 或 Edit plus。
  • VIM(Vi IMproved)是一个简单的文本编辑器,几乎在所有的 Unix 上都是可用的,现在也能在 Windows 上使用。另外,您还可以使用您喜欢的 vi 编辑器来编写 Ruby 程序。

交互式 Ruby(IRb)

交互式 Ruby(IRb)为体验提供了一个 shell。在 IRb shell 内,您可以逐行立即查看解释结果。

这个工具会随着 Ruby 的安装自动带有,所以您不需要做其他额外的事情,IRb 即可正常工作。

只需要在命令提示符中键入 irb,一个交互式 Ruby Session 将会开始,如下所示:

$irb
irb 0.6.1(99/09/16)
irb(main):001:0> def showGirlCup
irb(main):002:1> cup = "girl's cup is F"
irb(main):003:1> puts cup
irb(main):004:1> end
nil
irb(main):005:0> showGirlCup
girl's cup is F
nil
irb(main):006:0>

这里您可以先不用关心上面命令的执行内容,我们将在后续的章节中向您讲解。


接下来将学习什么?

假设现在您已经设置好 Ruby 环境,且已经做好编写第一个 Ruby 程序的准备。下一章我们将向您讲解如何编写 Ruby 程序。



附:Ruby 安装 - Unix

下面列出了在 Unix 机器上安装 Ruby 的步骤。

注意:在安装之前,请确保您有 root 权限。

  • 下载最新版的 Ruby 压缩文件。请点击这里下载
  • 下载 Ruby 之后,解压到新创建的目录下:
  • $ tar -xvzf ruby-2.2.3.tgz    
    $ cd ruby-2.2.3
    • 现在,配置并编译源代码,如下所示:
    $ ./configure
    $ make
    $ sudo make install
    • 安装后,通过在命令行中输入以下命令来确保一切工作正常:
    $ruby -v
    ruby 2.2.3……
  • 如果一切工作正常,将会输出所安装的 Ruby 解释器的版本,如上所示。如果您安装了其他版本,则会显示其他不同的版本。
  • 自动安装 Ruby

    如果您的计算机已经连接到 Internet,那么最简单安装 Ruby 的方式是使用 yum 或 apt-get

    $  sudo yum install ruby    # CentOS, Fedora, 或 RHEL 系统
    
    或
    
    sudo apt-get install ruby-full # Debian 或 Ubuntu 系统
    

    如果你是苹果系统,可以使用 brew 命令安装:

    $ brew install ruby
  • 在命令提示符中输入以下的命令,即可在您的计算机上安装 Ruby。

Ruby 命令行选项

Ruby 一般是从命令行运行,方式如下:

$ ruby [ options ] [.] [ programfile ] [ arguments ... ]

解释器可以通过下列选项被调用,来控制解释器的环境和行为。

选项描述
-a与 -n 或 -p 一起使用时,可以打开自动拆分模式(auto split mode)。请查看 -n 和 -p 选项。
-c只检查语法,不执行程序。
-C dir在执行前改变目录(等价于 -X)。
-d启用调试模式(等价于 -debug)。
-F pat指定 pat 作为默认的分离模式($;)。
-e prog指定 prog 作为程序在命令行中执行。可以指定多个 -e 选项,用来执行多个程序。
-h显示命令行选项的一个概览。
-i [ ext]把文件内容重写为程序输出。原始文件会被加上扩展名 ext 保存下来。如果未指定 ext,原始文件会被删除。
-I dir添加 dir 作为加载库的目录。
-K [ kcode]指定多字节字符集编码。e 或 E 对应 EUC(extended Unix code),s 或 S 对应 SJIS(Shift-JIS),u 或 U 对应 UTF-8,a、A、n 或 N 对应 ASCII。
-l启用自动行尾处理。从输入行取消一个换行符,并向输出行追加一个换行符。
-n把代码放置在一个输入循环中(就像在 while gets; ... end 中一样)。
-0[ octal]设置默认的记录分隔符($/)为八进制。如果未指定 octal 则默认为 。
-p把代码放置在一个输入循环中。在每次迭代后输出变量 $_ 的值。
-r lib使用 require 来加载 lib 作为执行前的库。
-s解读程序名称和文件名参数之间的匹配模式 -xxx 的任何参数作为开关,并定义相应的变量。
-T [level]设置安全级别,执行不纯度测试(如果未指定 level,则默认值为 1)。
-v显示版本,并启用冗余模式。
-w启用冗余模式。如果未指定程序文件,则从 STDIN 读取。
-x [dir]删除 #!ruby 行之前的文本。如果指定了 dir,则把目录改变为 dir
-X dir在执行前改变目录(等价于 -C)。
-y启用解析器调试模式。
--copyright显示版权声明。
--debug启用调试模式(等价于 -d)。
--help显示命令行选项的一个概览(等价于 -h)。
--version显示版本。
--verbose启用冗余模式(等价于 -v)。设置 $VERBOSE 为 true。
--yydebug启用解析器调试模式(等价于 -y)。

单字符的命令行选项可以组合使用。下面两行表达了同样的意思:

$ruby -ne 'print if /Ruby/' /usr/share/bin


$ruby -n -e 'print if /Ruby/' /usr/share/bin

Ruby 环境变量

Ruby 解释器使用下列环境变量来控制它的行为。ENV 对象包含了所有当前设置的环境变量列表。

变量描述
DLN_LIBRARY_PATH动态加载模块搜索的路径。
HOME当没有参数传递给 Dir::chdir 时,要移动到的目录。也用于 File::expand_path 来扩展 "~"。
LOGDIR当没有参数传递给 Dir::chdir 且未设置环境变量 HOME 时,要移动到的目录。
PATH执行子进程的搜索路径,以及在指定 -S 选项后,Ruby 程序的搜索路径。每个路径用冒号分隔(在 DOS 和 Windows 中用分号分隔)。
RUBYLIB库的搜索路径。每个路径用冒号分隔(在 DOS 和 Windows 中用分号分隔)。
RUBYLIB_PREFIX用于修改 RUBYLIB 搜索路径,通过使用格式 path1;path2 或 path1path2,把库的前缀 path1 替换为 path2。
RUBYOPT传给 Ruby 解释器的命令行选项。在 taint 模式时被忽略(其中,$SAFE 大于 0)。
RUBYPATH指定 -S 选项后,Ruby 程序的搜索路径。优先级高于 PATH。在 taint 模式时被忽略(其中,$SAFE 大于 0)。
RUBYSHELL指定执行命令时所使用的 shell。如果未设置该环境变量,则使用 SHELL 或 COMSPEC。

对于 Unix,使用 env 命令来查看所有环境变量的列表。

HOSTNAME=ip-72-167-112-17.ip.secureserver.net
RUBYPATH=/usr/bin
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
SSH_CLIENT=122.169.131.179 1742 22
SSH_TTY=/dev/pts/1
USER=amrood
JRE_HOME=/usr/java/jdk/jre
J2RE_HOME=/usr/java/jdk/jre
PATH=/usr/local/bin:/bin:/usr/bin:/home/guest/bin
MAIL=/var/spool/mail/guest
PWD=/home/amrood
INPUTRC=/etc/inputrc
JAVA_HOME=/usr/java/jdk
LANG=C
HOME=/root
SHLVL=2
JDK_HOME=/usr/java/jdk
LOGDIR=/usr/log/ruby
LOGNAME=amrood
SSH_CONNECTION=122.169.131.179 1742 72.167.112.17 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
RUBYLIB=/usr/lib/ruby
G_BROKEN_FILENAMES=1
_=/bin/env


Ruby 中文编码

前面章节中我们已经学会了如何用 Ruby 输出 "Hello, Beyond!",英文没有问题,但是如果你输出中文字符"妳好,二次元"就有可能会碰到中文编码问题。

Ruby 文件中如果未指定编码,在执行过程会出现报错:

#!/usr/bin/ruby -w

puts "妳好,二次元!";

以上程序执行输出结果为:

invalid multibyte char (US-ASCII) 

以上出错信息显示了 Ruby 使用用 ASCII 编码来读源码,中文会出现乱码,

解决方法为只要在文件开头加入 

# -*- coding: UTF-8 -*-(EMAC写法) 

或者 

#coding=utf-8 就行了。

实例

#!/usr/bin/ruby -w
# -*- coding: UTF-8 -*-
#coding=utf-8
puts "妳好,二次元!";

输出结果为:

妳好,二次元!

所以如果大家再学习过程中,源代码文件中,若包含中文编码,则需要注意两点:

  • 1. 必须在首行添加 # -*- coding: UTF-8 -*-,告诉解释器使用utf-8来解析源码。
  • 2. 必须设置编辑器保存文件的编码为utf-8。

Ruby 语法

让我们编写一个简单的 Ruby 程序。所有的 Ruby 文件扩展名都是 .rb。所以,把下面的源代码放在 ruby_01.rb 文件中。

实例

#!/usr/bin/ruby -w
puts "Hello, Beyond!";

在这里,假设您的 /usr/bin 目录下已经有可用的 Ruby 解释器。现在,尝试运行这个程序,如下所示:

$ ruby ruby_01.rb

这将会产生下面的结果:

Hello, Beyond!

您已经看到了一个简单的 Ruby 程序,下一章节将让我们看看一些 Ruby 语法相关的基本概念:


未完待续,下一章节,つづく




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值