Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4853
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 22
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-01 09:41
文章分类

全部博文(1)

文章存档

2019年(1)

我的朋友
最近访客

分类: Python/Ruby

2019-06-23 01:35:43

一个偶然的机会,要接触到ruby的脚本修改,于是给自己一点时间;系统认识下ruby吧!
简介
Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘使用C语言设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。Ruby 可运行于多种平台,如 Windows、MAC OS 和 UNIX 的各种版本。作者是:松本行弘(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(红宝石)命名
ruby的特点
1)高度可移植:它主要在 GNU/Linux 上开发,但也支持很多类型的 UNIX,以及 Mac OS X,Windows,DOS,BeOS,OS/2 等
2)提供不依赖操作系统的线程。可以实现一个程序中处理若干个控制流功能,而且这种线程于系统线程不同,可以共享内存空间!
3)拥有一个针对所有对象的标识-清扫(mark-and-sweep)式垃圾回收程序。使用者无需维护扩展库中的引用计数。
4)直接访问OS;ruby的Kernel模块可以使用(UNIX系统)绝大多数的系统调用,单独使用Ruby就可以进行系统编程
5)解释执行,动态类型语言:没有变量类型,程序运行过程中也可以加入属性、行为和重写方法。
6)丰富的库函数,语法简单,而且完全面向对象,支持异常处理功能
ruby的亮点:
语法简单:程序流风格偏向"一行流"
垃圾回收:虚拟机自带垃圾回收机制
可移植性:多数允许在类UNIX系统上,windows上多用于web 动态载入:解释执行,无须编译,这样源代码无法封装
完全免费:基于GPL协议和Ruby license,自由开源的代码
正则表达式:实用工具,工作利器;
核心:二进制执行器:/usr/bin/ruby 交互式解释脚本:/usr/bin/irb
交互式 Ruby(IRb)为体验提供了一个 shell。在 IRb shell 内,您可以逐行立即查看解释结果。这个工具会随着 Ruby 的安装自动带有,所以您不需要做其他额外的事情,IRb 即可正常工作。只需要在命令提示符中键入 irb,一个交互式 Ruby Session 将会开始,如下所示
ruby --help
Usage: ruby [switches] [--] [programfile] [arguments]
-c 只检查语法,不执行程序
-d 启用调试模式(方便调试puppet中的实现)
-s parsing script name 分析脚本的名字,解读程序名称和文件名参数之间的匹配模式,并定义相应的变量
-S look for the script using PATH environment variable 寻找环境变量,使用PATH
-I dir 添加 dir 作为加载库的目录
-F pat 指定 pat 作为默认的分离模式($;)
-r lib 使用 require 来加载 lib 作为执行前的库
-n 把代码放置在一个输入循环中
-p 把代码放置在一个输入循环中。在每次迭代后输出变量 $_ 的值
-w 启用冗余警告模式。如果未指定程序文件,则从 STDIN 读取代码,常用来调试
-e 'command' 执行一行脚本. Several -e's allowed. Omit [programfile]
-y 启用解析器调试模式
-a 与 -n 或 -p 一起使用时,可以打开自动拆分模式(auto split mode)。请查看 -n 和 -p 选项
示例:
#!/usr/bin/ruby
STDOUT.puts("Hello World!");
Ruby 默认使用ASCII 编码来读源码,中文会出现乱码,解决方法在文件开头加入
# -*- coding: UTF-8 -*-或者 #coding=utf-8 就行
#!/usr/bin/ruby -w
# -*- coding: UTF-8 -*-
STDOUT.puts("你好,世界!");
r
uby的环境变量
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 命令来查看所有环境变量的列表
RubyGem包管理器
Ruby的包管理器被称为 RubyGem。使用RubyGem发布的包或者模块称为 "Gems"。
使用这个工具按照软件包可以顺利处理依赖关系,它的前端脚本称为:gem
比如安装Rails: gem install rails
其他命令还包括:
gem list ==> 列出所有安装的gems发行包
gem update ==> 升级所有gems安装的包
gem update --system ==> 升级RubyGem系统
gem uninstall rails ==> 卸载相关的软件包
gem environmeng ==> 显示安装环境

阅读(422) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~