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(集合). ...
随机推荐
- LAMP——实现phpMyadmin、wordpress及Discuz应用部署
一.环境准备 操作系统:Centos8.3.2011 软件:Apache2.4.37.Mysql8.0.21.PHP7.2.24 二.安装过程 1.安装phpmyadmin 1.1.安装软件包并启动服 ...
- 暑假自学java第八天
1.接口的概念(关键字interface ) Java程序设计中的接口 ( interface)也是一种规范,用来组织应用程序中的类,并调节它们的相互关系.接口是由常量和抽象方法组成的特殊类,是对抽 ...
- Vue:node.js与vue安装配置
下载node.js 官网: https://nodejs.org/zh-cn/ 查看node版本 node -v 配置淘宝NPM镜像源(下载速度快) npm install -g cnpm --reg ...
- redis学习笔记(三)——redis的命令大全总结
总结了一些redis五种存储类型的常用命令以及一些通用操作命令,不是很全,是在学习的时候将学到的做了个汇总,使用的时候可以查一下. 笔记写在表格里面了,不好粘贴.......后面的直接截图了..... ...
- mysql 索引介绍与运用
索引 (1)什么是索引? 是一种提升查询速度的 特殊的存储结构. 它包含了对数据表里的记录的指针,类似于字典的目录. 当我们添加索引时会单独创建一张表来去存储和管理索引,索引比原数据大,会占用更多的资 ...
- netcore3.1 + vue (前后端分离) ElementUI多文件带参数上传
vue前端代码 前端主要使用了ElementUI的el-uploda插件,除去业务代码需要注意的是使用formdata存储片上传时所需的参数 <el-upload class="upl ...
- Hadoop知识总结
------------恢复内容开始------------ Hadoop知识点 Hadoop知识点什么是HadoopHadoop和Spark差异Hadoop常见版本,有哪些特点,一般是如何进行选择H ...
- postman使用笔记
postman主要是用来做接口测试的工具,用来模拟客户端向服务器发起请求. 一.postman支持的请求类型 1.get请求 get请求是用来向服务器获取数据 get请求没有请求体,只有url和请求头 ...
- python之数据驱动Excel+ddt操作(方法二)
一.Mail163数据如下: 二.Excel+ddt代码如下: import xlrdimport unittestfrom selenium import webdriverfrom seleniu ...
- Requests方法 -- Blog流程类进行关联
1.接口封装关联 1.有些接口经常会用到比如登录的接口,这时候我们可以每个接口都封装成一个方法,如:登录.保存草稿.发帖.删帖,这四个接口就可以写成四个方法2.接口封装好了后,后面我们写用例那就直接调 ...