erlang shell 命令中文使用说明

http://www.jb51.cc/article/p-albhfila-bcz.html

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

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

shell 函数帮助

[plain] view plain copy
  1. EshellV5.10.2(abortwith^G)
  2. 1>help().
  3. **shell内置命令**
  4. b()--显示所有绑定的变量
  5. e(N)--重复某次查询<N>
  6. f()--释放所有绑定的变量
  7. f(X)--释放某个绑定的变量
  8. h()--显示之前的操作
  9. history(N)--设置保存之前操作命令的条数
  10. results(N)--设置保存之前操作结果的条数
  11. catch_exception(Bool)--设置的执行过程中的异常处理
  12. v(N)--使用某次查询的值<N>
  13. rd(R,D)--定义一个record
  14. rf()--移除所有record
  15. rf(R)--移除某个record
  16. rl()--显示所有record
  17. rl(R)--显示某个record信息
  18. rp(Term)--显示某个元组的所有内容
  19. rr(File)--从一个文件或模块读取record定义
  20. **c模块命令**
  21. bt(Pid)--显示一个进程的栈回溯
  22. c(File)--编译及重新加载模块
  23. cd(Dir)--改变工作目录
  24. flush()--刷新信箱(以便shell接收信息)
  25. help()--帮助信息
  26. i()--显示系统信息
  27. ni()--和i()一样显示系统信息,还包括网络节点的系统信息
  28. i(X,Y,Z)--通过pid<X,Z>获取某个进程的信息
  29. l(Module)--加载或重新加载模块
  30. lc([File])--编译一个列表的Erlang模块
  31. ls()--显示当前工作目录下的文件列表
  32. ls(Dir)--显示某个目录下的文件列表
  33. m()--显示已加载进系统的模块
  34. m(Mod)--显示某个模块信息
  35. memory()--显示内存分配信息
  36. memory(T)--显示某项内存分配信息<T>
  37. nc(File)--在所有节点编译及加载模块
  38. nl(Module)--在所有节点重新加载模块
  39. pid(X,Z>获取某个进程pid
  40. pwd()--显示当前工作目录
  41. q()--关闭erlangshell
  42. regs()--显示注册过的进程信息
  43. nregs()--和regs()一样显示注册过的进程信息,还包括网络节点的进程信息
  44. xm(M)--查找某个模块未定义的函数,未使用的函数,已弃用的函数
  45. y(File)--编译Yecc文件(.yrl)
  46. **i模块命令**
  47. ih()--显示i模块的帮助信息
  48. true

shell 函数说明

1、显示绑定变量

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

copy
    1>[A,B,C]=[1,2,3].
  1. [1,3]
  2. 2>b().
  3. A=1
  4. B=2
  5. C=3
  6. ok

2、重复查询

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

copy
    3>e(1).
  1. 3、释放绑定变量

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

    copy
    4>A.
  1. 1
  2. 5>f(A).
  3. ok
  4. 6>A.
  5. *1:variable'A'isunbound
  6. 7>B.
  7. 2
  8. 8>f().
  9. 9>B.
  10. *1:variable'B'isunbound
  11. 10>C.
  12. *1:variable'C'isunbound

4、使用查询结果

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

copy
    11>A1=v(4).
  1. 12>A1.
  2. 1

5、record 操作

rd(R,D) -- 定义一个 record
rf() -- 移除所有 record
rf(R) -- 移除某个 record
rl() -- 显示所有 record
rl(R) -- 显示某个 record 信息

copy
    13>rd(person,{name,age,address,salary,children}).
  1. person
  2. 14>rd(child,age}).
  3. child
  4. 15>rl().
  5. -record(child,age}).
  6. -record(person,children}).
  7. 16>rl(child).
  8. ok

6、显示元组内容

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

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

copy
    17>lists:seq(1,50).
  1. 23,24,25,26,27,28,29|...]
  2. 18>rp(lists:seq(1,50)).
  3. [1,
  4. 23,29,30,31,32,33,34,35,36,37,38,39,40,41,42,108); color:inherit; line-height:18px; margin-top:0px!important; margin-right:0px!important; margin-bottom:0px!important; padding:0px 3px 0px 10px!important"> 43,44,45,46,47,48,49,50]
  5. ok

7、工作目录

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

pwd() -- 获取工作目录

copy
    19>pwd().
  1. d:/tmp
  2. ok
  3. 20>cd("d:/").
  4. d:/
  5. 21>pwd().
  6. d:/
  7. ok

8、进程操作

self() -- 获取当前进程 pid

pid(X,Z) -- 通过 pid <X,Z> 获取某个进程 pid
exit(Pid) -- 杀死某个进程
catch_exception(Bool) -- 设置的执行过程中的异常处理
copy
    22>self().
  1. <0.31.0>
  2. 23>catch_exception(false).
  3. true
  4. 24>exit(pid(0,0)).
  5. **exceptionexit:<0.31.0>
  6. 25>self().
  7. <0.33.0>
  8. 26>catch_exception(true).
  9. false
  10. 27>exit(pid(0,248); line-height:18px; margin-top:0px!important; margin-right:0px!important; margin-bottom:0px!important; padding:0px 3px 0px 10px!important"> *exceptionexit:<0.33.0>
  11. 28>self().
  12. <0.33.0>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2280端口映射到公网,发现经常被暴力破解,自己写了个临时封禁ip功能的脚本,实现5分钟内同一个ip登录密码错误10次就封禁这个ip5分钟,并且进行邮件通知使用步骤openwrt为19.07.03版本,其他版本没有测试过安装bashmsmtpopkg
#!/bin/bashcommand1&command2&wait从Shell脚本并行运行多个程序–杨河老李(kviccn.github.io)
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/phpls-ls 2.编辑修改.bash_profile文件(没有.bash_profile文件的情况下回自动创建)sudovim~/.bash_profile在文件的最后输入以下信息,然后保存退出exportPATH="/Applications/MAMP/bin/php/php7.2.20/b
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如zh_CN之类的语言包,进行中文语言包装:apt-getinstalllanguage-pack-zh-hans3、安装好后我们可以进行临时修改:然后添加中文支持: locale-genzh_CN.UTF-8临时修改> export LC_ALL='zh_CN.utf8'> locale永久
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexadecimalbash2#[0~1]0[0~7]0x[0~f]or0X[0~f]perl0b[0~1]0[0~7]0x[0~f]tcl0b[0~1]0o[0~7]0x[0~f]bashdifferentbaserepresntationreference2.StringlengthLanguageStr
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全命令补全方法:yum-yinstallbash-completionsource/usr/share/bash-completion/bash_completionsource<(kubectlcompletionbash)echo"source<(kubectlcompletionbash)">>~/.bashrc 
参考这里启动jar包shell脚本修改过来的#!/bin/bash#默认应用名称defaultAppName='./gadmin'appName=''if[[$1&&$1!=0]]thenappName=$1elseappName=$defaultAppNamefiecho">>>>>>本次重启的应用:$appName<
#一个数字的行#!/bin/bashwhilereadlinedon=`echo$line|sed's/[^0-9]//g'|wc-L`if[$n-eq1]thenecho$linefidone<1.txt#日志切割归档#!/bin/bashcd/data/logslog=1.logmv_log(){[-f$1]&&mv$1$2
#文件增加内容#!/bin/bashn=0cat1.txt|whilereadlinedon=[$n+1]if[$n-eq5]thenecho$lineecho-e"#Thisisatestfile.\n#Testinsertlineintothisfile."elseecho$linefidone#备份/etc目录#
# su - oraclesu: /usr/bin/ksh: No such file or directory根据报错信息:显示无法找到文件 /usr/bin/ksh果然没有该文件,但是发现存在文件/bin/ksh,于是创建了一个软连接,可以规避问题,可以成功切换到用户下,但无法执行系统自带命令。$. .bash_profile-ksh: .: .b
history显示历史指令记录内容,下达历史纪录中的指令主要的使用方法如果你想禁用history,可以将HISTSIZE设置为0:#exportHISTSIZE=0使用HISTIGNORE忽略历史中的特定命令下面的例子,将忽略pwd、ls、ls-ltr等命令:#exportHISTIGNORE=”pwd:ls:ls-ltr:”使用HIS
一.命令历史  1.history环境变量:    HISTSIZE:输出的命令历史条数,如history的记录数    HISTFILESIZE:~/.bash_history保存的命令历史记录数    HISTFILLE:历史记录的文件路径    HISTCONTROL:     ignorespace:忽略以空格开头的命令
之前在网上看到很多师傅们总结的linux反弹shell的一些方法,为了更熟练的去运用这些技术,于是自己花精力查了很多资料去理解这些命令的含义,将研究的成果记录在这里,所谓的反弹shell,指的是我们在自己的机器上开启监听,然后在被攻击者的机器上发送连接请求去连接我们的机器,将被攻击者的she
BashOne-LinersExplained,PartI:Workingwithfileshttps://catonmat.net/bash-one-liners-explained-part-oneBashOne-LinersExplained,PartII:Workingwithstringshttps://catonmat.net/bash-one-liners-explained-part-twoBashOne-LinersExplained,PartII
Shell中变量的作用域:在当前Shell会话中使用,全局变量。在函数内部使用,局部变量。可以在其他Shell会话中使用,环境变量。局部变量:默认情况下函数内的变量也是全局变量#!/bin/bashfunctionfunc(){a=99}funcecho$a输出>>99为了让全局变量变成局部变量
1、多命令顺序执行;  命令1;命令2  多个命令顺序执行,命令之间没有任何逻辑联系&&  命令1&&命令2  逻辑与,当命令1正确执行,才会执行命令2||  命令1||命令2  逻辑或,当命令1执行不正确,才会执行命令2例如:ls;date;cd/home/lsx;pwd;who ddif=输入文件of=输
原博文使用Linux或者unix系统的同学可能都对#!这个符号并不陌生,但是你真的了解它吗?首先,这个符号(#!)的名称,叫做"Shebang"或者"Sha-bang"。Linux执行文件时发现这个格式,会把!后的内容提取出来拼接在脚本文件或路径之前,当作实际执行的命令。 Shebang这个符号通常在Unix系统的脚本
1、历史命令history[选项][历史命令保存文件]选项:-c:  清空历史命令-w:  把缓存中的历史命令写入历史命令保存文件 ~/.bash_historyvim/etc/profile中的Histsize可改存储历史命令数量历史命令的调用使用上、下箭头调用以前的历史命令使用“!n”重复执行第n条历史
目录1.Shell脚本规范2.Shell脚本执行3.Shell脚本变量3.1环境变量3.1.1自定义环境变量3.1.2显示与取消环境变量3.1.3环境变量初始化与对应文件的生效顺序3.2普通变量3.2.1定义本地变量3.2.2shell调用变量3.2.3grep调用变量3.2.4awk调用变量3.3
   http://www.voidcn.com/blog/wszzdanm/article/p-6145895.html命令功能:显示登录用户的信息命令格式:常用选项:举例:w显示已经登录的用户及正在进行的操作[root@localhost~]#w 11:22:01up4days,21:22, 3users, loadaverage:0.00,0.00,0.00USER