erlang学习笔记
安装
Ubuntu Server上: sudo apt-get install erlang
如果安装时下载 太慢,可手工下载deb包( esl-erlang_16.a-rc1_ubuntu_precise_i386.deb ),下完deb文件后,ftp到虚拟机上,用dpkg -i <.deb file>安装(需要首先安装JRE);Ubuntu Server不能更改屏幕大小,也不能copy/paste文本,所以用kitty ssh过去操作比较好;
erlang 语法
代码中逗号,分号,句号的用法:逗号是表达式的分隔符(可以理解为AND),分号是条件分支的分隔符(可以理解为OR),句号是函数结束符(可以理解为END);
参考"http://stackoverflow.com/questions/1110601/in-erlang-when-do-i-use-or-or";
erlang文档
在线版(增量式查找,效果比离线版好):http://www.erlang.org/erldoc
离线版:otp_doc_html_R16A_RELEASE_CANDIDATE.tar.gz
在erlang官网下载页上下载Erlang/OTP R16A HTML Documentation File,解压到DOC_HOME下,tr_server中用到的gen_server:start_link/4函数可以在$DOC_HOME\lib\stdlib-1.19\doc下找到html和pdf版的api说明;erlang用到的各个库的api文档都在.\lib文件夹下;erlang用户手册在.\doc目录下,erlang运行时(ERTS)在.\erts-5.10下;
erlang内置函数(BIF)文档在$DOC_HOME\erts-5.10\doc\html\erlang.html中可以查到(或者是对应的pdf文档:$DOC_HOME\erts-5.10\doc\pdf\erts-5.10.pdf的Reference Manual -> erlang部分中),例如apply, list_to_atom等;
erlang编译器
Windows上的erlc居然不支持文件通配符,运行"F:\tcp_rpc>"C:\Program Files\erl5.10\bin\erlc.exe" -o ./ebin ./src/*.erl"提示IO错误,只能用"F:\tcp_rpc>"C:\Program Files\erl5.10\bin\erlc.exe" -o ./ebin ./src/tr_sup.erl"的办法分别编译3个erl源文件;
IDE
erlide
在Eclipse for java developers 4.2中,用 eclipse market搜索erlide并安装成功;(2013-05-13)
See https://github.com/erlide/erlide/wiki/Tutorial-Quick-Start for using this plugin to build a HelloWord erlang program.
其他
erlang发音:elan(哦兰);
多台机器上的erlang节点互相连接
使用erl -name name@ip -setcookie cookiename启动erlang节点,启动后用net_adm:ping('name@ip')进行连接,上午在笔记本和两台服务器上创建3个节点并互联成功,其中笔记本是Win7(IP为10.31.1.30),两个服务器是Ubuntu Server 12.04(IP是10.31.1.113和10.0.7.47),每个节点的-name参数是自己的名字和IP地址,互联的各节点的cookiename需一致;另外Win7可能要关闭防火墙;ip必须是节点的真实IP,如果是hostname,需要有效的DNS,否则无法连接;
Remote shell
113服务器:$ erl -name lc@10.31.1.113 -setcookie test
47服务器:$ erl -name lc@10.0.7.47 -setcookie test
在113上远程连接47:Ctrl + G,然后用r指令,例如:
(lc@10.31.1.113)1>
User switch command
--> r 'lc@10.0.7.47'
--> j
1 {shell,start,[init]}
2* {'lc@10.0.7.47',shell,start,[]}
--> c
Eshell V5.8.5 (abort with ^G)
(lc@10.0.7.47)1>
更多细节:
发起和目标节点上的erl shell都必须已经启动,不需要首先用net_adm:ping建立连接,在113上连接上47后,不能关闭47上的节点,否则remote shell也会随之断开;
113要切换到local shell用"Ctrl+G, j, c "方式;
113要退出本地erlang环境用"Ctrl+G, Ctrl+C, A"方式(Linux下);
113要关闭47上的节点用"q()."命令;
113要关闭连接47的Remote Shell用"Ctrl+G, j, k "方式;
erlang学习笔记的更多相关文章
- Erlang 学习笔记
http://wenku.baidu.com/link?url=AUQR8Hn-e-fEB_lqjXsd8XfapWj1qAK7J05JoBXFib_LlSk5qSOTia8HIxNV1XkeZi-k ...
- erlang学习笔记(shell命令)
erlang shell 命令: help(). 可以查看erlang shell内置命令. 比如:m(Mod),可以查看模块Mod. 待续..
- Programming Erlang 学习笔记(一)
入门 启动Shell 在cmd中输入命令”erl”,百分号(%)表示一个注释的开始,从百分号开始到这行结束的所有文本都被看做是注释. 一个完整的命令需要以一个句点和一个回车结束. 退出erlang的命 ...
- erlang学习笔记之基础语法
字符串是双引号,单引号的是atom元组: 下标从1开始 X = {'test1',2,3,4}. element(1,X). 配合模式匹配,可以给元素项命名,直接不用下标标记元素项 列表增删改查 增加 ...
- Erlang学习笔记2
http://wgcode.iteye.com/blog/1007623 第二章 入门 1.所有的变量都必须以大写字母开头,如果要查看某个变量,只要输入变量的名字即可,如果一个变量被赋予值,就称为绑定 ...
- erlang学习笔记(文件操作)
参考这里和这里了解到的文件操作的模块有很多:kernel下有:file,stdlib下有:filelib,filename,file_sorter.(具体查看官方文档)
- erlang学习笔记(2)
函数%###geometry.erl###-module(geometry). 定义-export([area/1, function1/2, function2/0, ...]).area({rec ...
- erlang学习笔记(1)
提示符erl 注释% comment 表达式123456789 * 123456789. 变量(单一赋值)X = 123456789.X.Y = X * X * X.Y.f(). 整数浮点数X = 5 ...
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
随机推荐
- [Django REST framework - RBAC-基于角色的访问控制、base64编码 、xadmin的使用]
[Django REST framework - RBAC-基于角色的访问控制.base64编码 .xadmin的使用] RBAC-基于角色的访问控制 RBAC 是基于角色的访问控制(Role-Bas ...
- DRF之权限和频率限制
一.权限 权限可以限制用户对视图的访问和对具体数据对象的访问. 在执行视图的dispatch方法前,会先进行视图访问权限的判断 在通过get_object获取对象时,会进行模型对象访问权限的判断 源码 ...
- Java中的自增自减
情况①: for (int i = 0; i < 100; i++) { j = 1 + j++; } System.out.println(j); 结果是 0 !! 这是由于在进行后自增/自减 ...
- springboot整合拦截器如何让其不拦截默认的访问路径
1.注册自定义拦截器2.拦截器3.控制器4.其它说明:我想做控制拦截登陆,将所有的请求拦截下来判断如果当前的session里没有用户名则跳转到登陆页面.问题是目前可以拦截所有请求了,但第一次进入登陆页 ...
- XCTF(MISC) 图片隐写
题目描述:菜猫给了菜狗一张图,说图下面什么都没有 1.给了个pdf,打开是这玩意 2.盲猜flag是图片后面,右键直接删除图片试试. 答案出来了.
- CG-CTF single
一.拖入ida,先静态分析一下 发现有三个函数,点击进去看看 a1为0时,当a2[i]为0时,将自身的值赋值到该位置,a1为0时,就不需要动. 这三个函数都是在暗示这东西是个数独,每行每列,都有1到9 ...
- SqlServer常用语句整理
先记录下来 以后整理 1.常用语句 1.1update连表更新 update a set a.YCaseNo = a.WordName + '['+ convert(varchar,a.CaseYea ...
- mongodb,redis,mysql的区别和具体应用场景(转)
一.MySQL 关系型数据库. 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断增加,mysql的份额页在持续增长. 缺点就 ...
- Linux | 命令的参数
命令的参数 格式:command parameters --> 命令参数 短参数 在短参数中,字母的大写效果是不同的,比如大写 T 和小写 t 的含义通常是不同的. 一个短参数 最常用的参数形式 ...
- C语言:const详解
希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定.例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小.为了满足这一要求,可以使用const关键字对变量加以限定:const in ...