您的位置:首页 > 运维架构 > Shell

erlang shell 命令中文使用说明

2017-10-07 11:55 309 查看
http://blog.csdn.net/mycwq/article/details/16858805

erlang shell 是在命令行模式下使用命令和 erlang 交互的工具。erlang shell功能十分强大,可以直接编译、加载、执行、调试模块等等,完全可以将shell做为erlang项目的终端使用。文章将对erlang shell 命令做介绍,还简单以示例说明。

打开erlang shell的帮助信息,在这里变成中文了。同时可以看下官方文档

shell 函数帮助

[plain] view
plain copy

Eshell V5.10.2  (abort with ^G)  

1> help().  

** shell 内置命令 **  

b()        -- 显示所有绑定的变量  

e(N)       -- 重复某次查询 <N>  

f()        -- 释放所有绑定的变量  

f(X)       -- 释放某个绑定的变量  

h()        -- 显示之前的操作  

history(N) -- 设置保存之前操作命令的条数  

results(N) -- 设置保存之前操作结果的条数  

catch_exception(Bool) -- 设置的执行过程中的异常处理  

v(N)       -- 使用某次查询的值 <N>  

rd(R,D)    -- 定义一个 record  

rf()       -- 移除所有 record  

rf(R)      -- 移除某个 record  

rl()       -- 显示所有 record  

rl(R)      -- 显示某个 record 信息  

rp(Term)   -- 显示某个元组的所有内容  

rr(File)   -- 从一个文件或模块读取 record 定义  

** c 模块命令 **  

bt(Pid)    -- 显示一个进程的栈回溯  

c(File)    -- 编译及重新加载模块  

cd(Dir)    -- 改变工作目录  

flush()    -- 刷新信箱(以便shell接收信息)  

help()     -- 帮助信息  

i()        -- 显示系统信息  

ni()       -- 和 i() 一样显示系统信息,还包括网络节点的系统信息  

i(X,Y,Z)   -- 通过 pid <X,Y,Z> 获取某个进程的信息  

l(Module)  -- 加载或重新加载模块  

lc([File]) -- 编译一个列表的 Erlang 模块  

ls()       -- 显示当前工作目录下的文件列表  

ls(Dir)    -- 显示某个目录下的文件列表  

m()        -- 显示已加载进系统的模块  

m(Mod)     -- 显示某个模块信息  

memory()   -- 显示内存分配信息  

memory(T)  -- 显示某项内存分配信息 <T>  

nc(File)   -- 在所有节点编译及加载模块  

nl(Module) -- 在所有节点重新加载模块  

pid(X,Y,Z) -- 通过 pid <X,Y,Z> 获取某个进程 pid  

pwd()      -- 显示当前工作目录  

q()        -- 关闭 erlang shell  

regs()     -- 显示注册过的进程信息  

nregs()    -- 和 regs() 一样显示注册过的进程信息,还包括网络节点的进程信息  

xm(M)      -- 查找某个模块未定义的函数,未使用的函数,已弃用的函数  

y(File)    -- 编译 Yecc 文件(.yrl)  

** i 模块命令  **  

ih()       -- 显示 i 模块的帮助信息  

true  

shell 函数说明

1、显示绑定变量

b()  -- 显示所有绑定的变量

[plain] view
plain copy

1> [A,B,C] = [1,2,3].  

[1,2,3]  

2> b().  

A = 1  

B = 2  

C = 3  

ok  

2、重复查询

e(N)   -- 重复某次查询

[plain] view
plain copy

3> e(1).  

[1,2,3]  

3、释放绑定变量

f()        -- 释放所有绑定的变量

f(X)     -- 释放某个绑定的变量

[plain] view
plain copy

4> A.  

1  

5> f(A).  

ok  

6> A.  

* 1: variable 'A' is unbound  

7> B.  

2  

8> f().  

ok  

9> B.  

* 1: variable 'B' is unbound  

10> C.  

* 1: variable 'C' is unbound  

4、使用查询结果

v(N)  -- 使用某次查询的值

[plain] view
plain copy

11> A1 = v(4).  

1  

12> A1.  

1  

5、record 操作

rd(R,D)    -- 定义一个 record

rf()       -- 移除所有 record

rf(R)      -- 移除某个 record

rl()       -- 显示所有 record

rl(R)      -- 显示某个 record 信息

[plain] view
plain copy

13> rd(person, {name, age, address, salary, children}).  

person  

14> rd(child, {name, age}).  

child  

15> rl().  

-record(child,{name,age}).  

-record(person,{name,age,address,salary,children}).  

ok  

16> rl(child).  

-record(child,{name,age}).  

ok  

6、显示元组内容

rp(Term)   -- 显示某个元组的所有内容

erlang shell会自动省略内容太长的元组,使用rp命令可以完整显示出来

[plain] view
plain copy

17> lists:seq(1,50).  

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,  

 23,24,25,26,27,28,29|...]  

18> rp(lists:seq(1,50)).  

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,  

 23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,  

 43,44,45,46,47,48,49,50]  

ok  

7、工作目录

cd(Dir)   --  改变工作目录

pwd()     --  获取工作目录

[plain] view
plain copy

19> pwd().  

d:/tmp  

ok  

20> cd("d:/").  

d:/  

ok  

21> pwd().  

d:/  

ok  

8、进程操作

self()              --  获取当前进程 pid
pid(X,Y,Z)            -- 通过 pid <X,Y,Z> 获取某个进程 pid

exit(Pid)              -- 杀死某个进程

catch_exception(Bool)  -- 设置的执行过程中的异常处理

[plain] view
plain copy

22> self().  

<0.31.0>  

23> catch_exception(false).  

true  

24> exit(pid(0,31,0)).  

** exception exit: <0.31.0>  

25> self().  

<0.33.0>  

26> catch_exception(true).  

false  

27> exit(pid(0,33,0)).  

* exception exit: <0.33.0>  

28> self().  

<0.33.0>  

版权声明:本文为“没有开花的树”原创文章,未经博主允许不得转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  erlang shell