多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
![](https://img.kancloud.cn/16/5d/165d8cc5ec428b0998818aa117de43cf_882x1064.png) # Linux上Lua应用实战与人工智能 本教程适用于至少了解并掌握一种类似C、C++、java 、OC等主流语言,具有基本脚本语言理解学习。 本教程主要包括 快速入门Lua语法,在Linux快速开发Lua脚本程序、Lua+Nginx、Lua+Redis等相关内容。 > ## 编著: 刘丹冰 > ## 公众号: 刘丹冰Aceld # 1 Lua介绍及环境 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 * 轻量级:它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。 * 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言\(通常是C或C++\)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。 * 其它特性: * * 支持面向过程\(procedure-oriented\)编程和函数式编程\(functional programming\); * 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象; * 语言内置模式匹配;闭包\(closure\);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持; * 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。 * 游戏开发 * 独立应用脚本 * web应用脚本 * 扩展和数据库插件 * 安全系统:如入侵检测系统\(IDS\) ## 1.1 官方网站 [http://www.lua.org/](http://www.lua.org/) 中文在线文档 [http://www.runoob.com/manual/lua53doc/](http://www.runoob.com/manual/lua53doc/) ## 1.2 下载 [http://www.lua.org/download.html](http://www.lua.org/download.html) 找到 tar包进行下载。 或者使用以下指令安装。 ```bash curl -R -O http://www.lua.org/ftp/lua-5.1.tar.gz tar zxf lua-5.1.tar.gz cd lua-5.1 make linux sudo make install ``` 如果报错 找不到readline.h头文件 ```bash lua.c:80:31: fatal error: readline/readline.h: No such file or directory #include <readline/readline.h> ^ compilation terminated. make[2]: *** [lua.o] Error 1 make[2]: Leaving directory `/root/lua/lua-5.3.2/src' make[1]: *** [linux] Error 2 make[1]: Leaving directory `/root/lua/lua-5.3.2/src' make: *** [linux] Error 2 ``` 解决办法: ```bash 缺少libreadline-dev依赖包 centos: yum install readline-devel debian: apt-get install libreadline-dev ``` 找不到-lncurses apt-get install libncurses5-dev ## 1.3 运行第一个Lua程序 新建Hello\_lua.lua文件,写代码如下 ```lua print("Hello Lua!") ``` 运行 ```bash lua Hello_lua.lua ``` 输出 ```bash Hello Lua! ```