- centos开启ssh服务命令
kolaseen
centossshlinux
1.检查centos是否安装了openssh-serveryumlistinstalled|grepopenssh-server如果没有则输入下面的命令进行安装(输入su进入管理员模式)yuminstallopenssh-server2.进入/etc/ssh/目录下的sshd服务配置文件sshd_configvim/etc/ssh/sshd_config按下键盘的o键或i进入编辑模式找到如下行将注
- 《FPGA至简设计原理与应用》学习笔记2 —— FPGA至简设计原理
|惜取少年时
FPGA与嵌入式fpga开发
课程资源视频:https://www.bilibili.com/video/BV14K4y1u7kH/资料:https://www.aliyundrive.com/s/E9H7Mc5hqhu第1章高效编辑器GVIMGVIM官方的四种操作模式命令模式插入模式可视模式正常模式本课程至简设计法将GVIM分为三种模式:命令模式:只能看代码和发出命令,不能进行文本编辑编辑模式:文本编辑列操作模式:对多行的某
- vim基本操作
AeroZ
参考:https://blog.csdn.net/HUANGQUANZHE/article/details/82750243vim的三种工作模式以及转换方式vim-vi-workmodel.pngvim简单使用指南20180917223909895.gifvi/vim的使用基本上vi/vim共分为三种模式,分别是命令模式(Commandmode)输入模式(Insertmode)底线命令模式(Las
- gvim【一】【安装和基本使用】
凳子花❀
数字IC设计GVIMlinuxvim编辑器
文章目录一、安装二、基础使用(一)模式简介(二)编辑模式(三)命令模式1.光标移动2.复制/剪切/删除/粘贴操作3.撤销/恢复4.其他(四)末行模式三、本系列其他博客有关Vim的具体介绍请查看:Linux虚拟机(CentOS5)学习笔记(三)之Vim,此处不再具体介绍,只讲解一些GVIM的安装和基础使用。一、安装GVIM下载:GVIM打开上述网页(可能比较慢),然后点击下图红框所示下载安装包:双击
- linux centos修改ssh端口号
Etyero
linuxlinuxcentosssh端口
ssh默认端口为22,安全起见,一般不用默认端口,而是修改成其他不规则端口。进入正题:1.修改ssh配置文件/etc/ssh/sshd_configvim/etc/ssh/sshd_config2.修改firewall配置(如果本机防火墙是关闭状态,可跳过这一步)firewall添加端口:firewall-cmd--zone=public--add-port=22492/tcp--permanen
- docker 安装mysql
会飞的大鱼吃小鱼
dockerdockermysql容器
1、创建宿主机挂载磁盘目录mkdir-p/home/huangliang/mysql/datamkdir-p/home/huangliang/mysql/config2、创建配置文件cd/home/huangliang/mysql/configvimysqld.cnf文件mysqld.cnf配置如下[mysqld]pid-file=/var/run/mysqld/mysqld.pidsocket=
- cnpmjs.org部署私有npm源
平仄_pingze
项目cnpm/cnpmjs.orgDocker部署方式:创建配置文件mkdir/root/.cnpmjs.orgvim/root/.cnpmjs.org/config.jsonconfig.json{"bindingHost":"0.0.0.0","scopes":["@company"],"registryHost":"192.168.16.25:7001"}使用Docker启动这里superm
- nginx做盗链与防盗链配置
Starts️
chrome前端
盗链与防盗链配置1.盗链服务机准备资源(10.12.153.43) #在/usr/local/nginx/html/存放tupian1.jpgtupian.jpgvim/usr/local/nginx/html/index.html zbw.com 客户端配置(10.12.153.220) #vim/usr/share/nginx/html/index.ht
- GVIM 可视化模式
Bug_Killer_Master
gvimvim
在可视化模式下,可以对一个文本块的整体进行操作。例如,首先高亮选中一部分文本,然后用d命令删除这个文本块。可视化模式的好处在于,不但可以大大提高操作的效率,而且还可以在做改动之前,就看到操作将影响的文本。可视化模式的种类可视化模式可以分为以下三种:用v命令进入的字符可视化模式(Characterwisevisualmode),文本选择是以字符为单位的。用V命令进入的行可视化模式(Linewisev
- 2018-09-26 vscode使用vim全局替换
五大RobertWu伍洋
vim,gvim下一直使用如下命令全局替换::%s/pattern/string/g最后才发现g是指替换整行所有匹配%才表示是全文但是vscdoe中使用却达不到想要的效果最后发现是大小写问题,使用::%s/pattern/string/gi终于可以在vscode快乐地替换了!
- Linux文本处理指令truncate-man帮助手册
云计算DevOps-韩老师
#云计算入门linux运维服务器
Linux文本处理指令truncate-man帮助手册VIM(1)GeneralCommandsManualVIM(1)NAMEvim-ViIMproved,aprogrammer'stexteditorSYNOPSISvim[options][file..]vim[options]-vim[options]-ttagvim[options]-q[errorfile]exgexviewgvimgv
- windows gvim查询配置文件位置
ITKEY_
windowsvimvim
打开gvim输入以下命令::echo$MYVIMRC还可以点菜单中的帮助==》版本配置分享colorschemedesertsetencoding=UTF-8"leader设置成空格letmapleader="""使用鼠标setmouse=c"显示行号setnu"相对行号setrelativenumber"tab=4个空格settabstop=4setshiftwidth=4"高度光标所在行"se
- 如何使用jabref向gvim插入参考文献引用
中年阿甘
软件使用参考文献jabrefgvimlatex
文章目录1.JabRef是什么2.本文要解决的问题3.解决步骤3.1步骤1-设置jabref-使之能向打开的gvim编辑器插入引文3.2步骤2-在tex文档导言区调用宏包biblatex‾\underline{biblatex}biblatex、引入bib数据库3.3步骤3-在tex文档正文区合适位置输出参考文献列表3.4步骤4-使用jabref向当前gvim编辑器插入点插入参考文献引用3.5最后
- Windows下Gvim的安装与配置
A u g
数字IC工具vimlinux编辑器
1.简述Vim是Linux上著名的文本编辑器,他是早年的Vi编辑器的加强版。Gvim是Vim的图形前端,它是跨平台的编辑器,基本上主流的操作系统上面都有它的版本。此处记录在Windows下的安装与配置,在Linux下的网上教程很多。因为在公司实习时,主要用的两台电脑放在公司,下班不想带回实验室,所以就在实验室的电脑上安装GVIM,用于配合在Linux下的Verilog训练。2.GVIM的安装最新安
- Windows环境下 Gvim 安装 Vundle/Ctags/taglist
君子爱财好色
gitwindowsvim
目录一、安装VundleforWindows1、安装Git2、安装Curl3、安装Vundle二、ctags下载与安装1、生成Tag文件2、代码的快速浏览三、Taglist下载和安装1、在_vimrc中设置tagslist2、taglist的配置与使用四、网盘下载:包括:gvim81、ctags、taglist、git一、安装VundleforWindows1、安装Git1下载GitforWind
- 从零开始配置vim(Windows版)
薛定谔的青蛙
vim编辑器linux
linux下vim用习惯了...然后就给自己win下vscode也装了个vim插件,用下来还是感觉不顺手,并且处理太多文本时有明显卡顿,于是乎自己配了下win版的vim。不过好像也并不是从零开始的...初始基础版的.vimrc有copy他们版本,在此基础上进行了各类配置。先放个最终效果,以lammpsin文件为例:vim安装Windows下Gvim的安装与配置_gvimwindows-CSDN博客
- ssh公私钥登录
小薛睡不醒
ssh运维
1.生成ssh公私钥文件ssh-keygen-trsa一直为默认选项2.修改SSH主配置文件/etc/ssh/sshd_configvim/etc/ssh/sshd_config这里面找到PasswordAuthenticationyes这一行将yes改为no。3.在终端软件Xshell下,生成自己的公私钥。点击下一步。点击下一步。输入密码后,点击下一步。点击下一步。保存为文件后,选择保存目录保存
- mycli
诺之林
Install#Ubuntu1604sudoaptinstall-ymycli#MacOSbrewinstallmycliConfigvim~/.myclirc#Favoritequeries.[favorite_queries]ds='SELECTtable_schema,ROUND(SUM(data_length+index_length)/1024/1024,2)"SizeinMB"FROM
- Python - 接收命令行参数
小田_
Pythonpythonpycharm爬虫
文章目录方式一:通过sys.argv方式二:getopt()方式三:argparse方式一:通过sys.argvimportsysif__name__=='__main__':print(sys.argv)print(len(sys.argv))使用pythonmain.py或用pycharm运行时,得到的结果为:['.../xxx/main.py']#本文件地址1如果在终端执行:(base)$p
- Flutter引擎源码分析(二) - channel原生通信
erlich
Flutter引擎源码分析(一)-编译调试一、Xcode编译干了什么image.pngcdflutter存放路径/flutter/packages/flutter_tools/bin&&vimxcode_backend.shimage.pngvimxcode_backend.dartimage.pngimage.png其实主要就是干了一件事,编译Appimage.pngimage.pngimage
- 【基于VirtualBox及openEuler20.03 TLS SP1编译openGauss2.1.0源码】
若兰幽竹
openGaussopenGauss
【openEuler20.03TLS编译openGauss2.1.0源码】一、安装环境二、安装步骤一、安装环境项目Value虚拟机virtualbox操作系统openEuler20.03TLSopenGauss2.1.0openGauss-third_party2.1.0二、安装步骤以下操作需要在root用户下执行编辑/etc/selinux/configvim/etc/selinux/confi
- Django的开发笔记小结
jshan
course1djangoinstalldjango-adminstartprojectjstestdjango-adminstartappblogvimsettings.pyappadd----->blogvimurls.pyurl(r'^blog/index/$','blog.views.index'),vimblog.views.pyfromdjango.httpimportHttpResp
- Hadoop+Hive学习笔记-4
fwings260
HadoopHive
Hadoop集群搭建配置三台虚拟机之间的免密登录1切换到root用户:crontab-e在第一行写入:*/5****/usr/sbin/ntpdatentp1.aliyun.com三台机器都一同操作,这一步让三台机器的时间服务器一致2关闭selinux:vim/etc/selinux/configvim编辑器打开文件,把里面的SELINUX值修改为disabled这一步是关闭selinuxseli
- windows安装、基本使用vim
jay编程
小操作vim编辑器linux
标题:windows安装、基本使用vim1.下载并安装GVIM百度网盘链接提取码:2apr进入安装界面,如下,勾选其它都是默认即可参考;2.在powershell中使用vim参考blog:window10安装vim编辑器安装好后,win+r后,输入powershell,我们就可以在powershell中使用vim了eg:输入vim,就可以进入vim界面,然后你可以随便用vim玩;注:如果想要在cm
- GVIM 配置 for begin/end class/endclass 等配对
Bug_Killer_Master
gvimuvmlinuxvim
有时候我们的代码很长,或者结构比较复杂,多个if/else或者begin/end快嵌套,为了阅读方便,利用gvim插件实现块跳转还是很有实用性的,下面的.vimrc的配置,简单方便。使用方式:将光标定位到块头(task)或者块尾(endtask),按%即可跳转到块尾(endtask)或者块头(task).
- GVIM 命令
Bug_Killer_Master
gvimvim
持续记录一下用到的一些有用的gvim相关命令:模式分组:abc_xxx(x为数字)替换为ab_xxx:%s/abc_\(\d\+\)/ab_\1/g
- 我为什么不用vim了?
天天卡丁
vim
最早知道vim是看了善用佳软(http://blog.sina.com.cn/xbeta)的介绍,xbeta称vim是最好用的文本编辑器,我是十分信服xbeta的,所以在他的推荐下,尝试使用了gvim(windows下的vim版本),不过最终由于入门难度高而放弃了。在后续的工作生活中,我经常(但不是每天)会用到文本编辑器,所以一直想找一个简单好用的文本编辑器,期间我试过notepad++,note
- 【linux常用命令+vi编辑器_2023.11.3】
iKUNqa
IC验证linux编辑器
芯片开发Linux/Unix(环境)EDA工具TCL(波形)SVN/GIT(版本控制)Makefile(脚本语言)Perl/Python(脚本语言)Vim/Gvim(编辑器)命令who当前在使用该服务器的人/whoami自己pwd当前所在的位置/:只在第一个位置表示根目录,其他位置表示分隔符,无实际意义绝对路径~:当前用户家目录绝对路径.:当前目录相对路径…:上一级目录相对路径…/…:上上级目录空
- linux CentOS MobaXterm 通过X11 Forwarding 在本地开启图形可视化窗口
冰冰的coco
C++linuxcentos
第一步操作系统安装图形界面X11Forwardingdnfinstallxorg-x11-xauthxorg-x11-fonts-*xorg-x11-font-utilsxorg-x11-fonts-Type1xclock第二步修改参数,启用X11Forwardingvim/etc/ssh/sshd_config修改参数X11Forwardingyes和X11UseLocalhostno#Allo
- Linux:一文掌握vim/gvim最常用的24个快捷键
IC Beginner
Linux数字IC验证vimlinux
文章目录光标定位、翻页撤销、删除复制、剪切、粘贴、选中其他写在前面:本文尽量简洁,持续筛选并更新。若文中有任何错误,请务必在评论区指出,感谢!光标定位、翻页0 将光标定位在行首$ 定位到行尾w 向后跳一个单词,相当于ctrl+→b 向前跳一个单词,相当于ctrl+←20G 定位到第20行G 定位到最后一行gg 定位到第一行ctrl+f front,向前翻一页ctrl+
- 关于旗正规则引擎中的MD5加密问题
何必如此
jspMD5规则加密
一般情况下,为了防止个人隐私的泄露,我们都会对用户登录密码进行加密,使数据库相应字段保存的是加密后的字符串,而非原始密码。
在旗正规则引擎中,通过外部调用,可以实现MD5的加密,具体步骤如下:
1.在对象库中选择外部调用,选择“com.flagleader.util.MD5”,在子选项中选择“com.flagleader.util.MD5.getMD5ofStr({arg1})”;
2.在规
- 【Spark101】Scala Promise/Future在Spark中的应用
bit1129
Promise
Promise和Future是Scala用于异步调用并实现结果汇集的并发原语,Scala的Future同JUC里面的Future接口含义相同,Promise理解起来就有些绕。等有时间了再仔细的研究下Promise和Future的语义以及应用场景,具体参见Scala在线文档:http://docs.scala-lang.org/sips/completed/futures-promises.html
- spark sql 访问hive数据的配置详解
daizj
spark sqlhivethriftserver
spark sql 能够通过thriftserver 访问hive数据,默认spark编译的版本是不支持访问hive,因为hive依赖比较多,因此打的包中不包含hive和thriftserver,因此需要自己下载源码进行编译,将hive,thriftserver打包进去才能够访问,详细配置步骤如下:
1、下载源码
2、下载Maven,并配置
此配置简单,就略过
- HTTP 协议通信
周凡杨
javahttpclienthttp通信
一:简介
HTTPCLIENT,通过JAVA基于HTTP协议进行点与点间的通信!
二: 代码举例
测试类:
import java
- java unix时间戳转换
g21121
java
把java时间戳转换成unix时间戳:
Timestamp appointTime=Timestamp.valueOf(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:m
- web报表工具FineReport常用函数的用法总结(报表函数)
老A不折腾
web报表finereport总结
说明:本次总结中,凡是以tableName或viewName作为参数因子的。函数在调用的时候均按照先从私有数据源中查找,然后再从公有数据源中查找的顺序。
CLASS
CLASS(object):返回object对象的所属的类。
CNMONEY
CNMONEY(number,unit)返回人民币大写。
number:需要转换的数值型的数。
unit:单位,
- java jni调用c++ 代码 报错
墙头上一根草
javaC++jni
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000777c3290, pid=5632, tid=6656
#
# JRE version: Java(TM) SE Ru
- Spring中事件处理de小技巧
aijuans
springSpring 教程Spring 实例Spring 入门Spring3
Spring 中提供一些Aware相关de接口,BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,其中最常用到de匙ApplicationContextAware.实现ApplicationContextAwaredeBean,在Bean被初始后,将会被注入 Applicati
- linux shell ls脚本样例
annan211
linuxlinux ls源码linux 源码
#! /bin/sh -
#查找输入文件的路径
#在查找路径下寻找一个或多个原始文件或文件模式
# 查找路径由特定的环境变量所定义
#标准输出所产生的结果 通常是查找路径下找到的每个文件的第一个实体的完整路径
# 或是filename :not found 的标准错误输出。
#如果文件没有找到 则退出码为0
#否则 即为找不到的文件个数
#语法 pathfind [--
- List,Set,Map遍历方式 (收集的资源,值得看一下)
百合不是茶
listsetMap遍历方式
List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身
- 解决SimpleDateFormat的线程不安全问题的方法
bijian1013
javathread线程安全
在Java项目中,我们通常会自己写一个DateUtil类,处理日期和字符串的转换,如下所示:
public class DateUtil01 {
private SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public void format(Date d
- http请求测试实例(采用fastjson解析)
bijian1013
http测试
在实际开发中,我们经常会去做http请求的开发,下面则是如何请求的单元测试小实例,仅供参考。
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.httpclient.HttpClient;
import
- 【RPC框架Hessian三】Hessian 异常处理
bit1129
hessian
RPC异常处理概述
RPC异常处理指是,当客户端调用远端的服务,如果服务执行过程中发生异常,这个异常能否序列到客户端?
如果服务在执行过程中可能发生异常,那么在服务接口的声明中,就该声明该接口可能抛出的异常。
在Hessian中,服务器端发生异常,可以将异常信息从服务器端序列化到客户端,因为Exception本身是实现了Serializable的
- 【日志分析】日志分析工具
bit1129
日志分析
1. 网站日志实时分析工具 GoAccess
http://www.vpsee.com/2014/02/a-real-time-web-log-analyzer-goaccess/
2. 通过日志监控并收集 Java 应用程序性能数据(Perf4J)
http://www.ibm.com/developerworks/cn/java/j-lo-logforperf/
3.log.io
和
- nginx优化加强战斗力及遇到的坑解决
ronin47
nginx 优化
先说遇到个坑,第一个是负载问题,这个问题与架构有关,由于我设计架构多了两层,结果导致会话负载只转向一个。解决这样的问题思路有两个:一是改变负载策略,二是更改架构设计。
由于采用动静分离部署,而nginx又设计了静态,结果客户端去读nginx静态,访问量上来,页面加载很慢。解决:二者留其一。最好是保留apache服务器。
来以下优化:
- java-50-输入两棵二叉树A和B,判断树B是不是A的子结构
bylijinnan
java
思路来自:
http://zhedahht.blog.163.com/blog/static/25411174201011445550396/
import ljn.help.*;
public class HasSubtree {
/**Q50.
* 输入两棵二叉树A和B,判断树B是不是A的子结构。
例如,下图中的两棵树A和B,由于A中有一部分子树的结构和B是一
- mongoDB 备份与恢复
开窍的石头
mongDB备份与恢复
Mongodb导出与导入
1: 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的.
所以,都有如下通用选项:
-h host 主机
--port port 端口
-u username 用户名
-p passwd 密码
2: mongoexport 导出json格式的文件
- [网络与通讯]椭圆轨道计算的一些问题
comsci
网络
如果按照中国古代农历的历法,现在应该是某个季节的开始,但是由于农历历法是3000年前的天文观测数据,如果按照现在的天文学记录来进行修正的话,这个季节已经过去一段时间了。。。。。
也就是说,还要再等3000年。才有机会了,太阳系的行星的椭圆轨道受到外来天体的干扰,轨道次序发生了变
- 软件专利如何申请
cuiyadll
软件专利申请
软件技术可以申请软件著作权以保护软件源代码,也可以申请发明专利以保护软件流程中的步骤执行方式。专利保护的是软件解决问题的思想,而软件著作权保护的是软件代码(即软件思想的表达形式)。例如,离线传送文件,那发明专利保护是如何实现离线传送文件。基于相同的软件思想,但实现离线传送的程序代码有千千万万种,每种代码都可以享有各自的软件著作权。申请一个软件发明专利的代理费大概需要5000-8000申请发明专利可
- Android学习笔记
darrenzhu
android
1.启动一个AVD
2.命令行运行adb shell可连接到AVD,这也就是命令行客户端
3.如何启动一个程序
am start -n package name/.activityName
am start -n com.example.helloworld/.MainActivity
启动Android设置工具的命令如下所示:
# am start -
- apache虚拟机配置,本地多域名访问本地网站
dcj3sjt126com
apache
现在假定你有两个目录,一个存在于 /htdocs/a,另一个存在于 /htdocs/b 。
现在你想要在本地测试的时候访问 www.freeman.com 对应的目录是 /xampp/htdocs/freeman ,访问 www.duchengjiu.com 对应的目录是 /htdocs/duchengjiu。
1、首先修改C盘WINDOWS\system32\drivers\etc目录下的
- yii2 restful web服务[速率限制]
dcj3sjt126com
PHPyii2
速率限制
为防止滥用,你应该考虑增加速率限制到您的API。 例如,您可以限制每个用户的API的使用是在10分钟内最多100次的API调用。 如果一个用户同一个时间段内太多的请求被接收, 将返回响应状态代码 429 (这意味着过多的请求)。
要启用速率限制, [[yii\web\User::identityClass|user identity class]] 应该实现 [[yii\filter
- Hadoop2.5.2安装——单机模式
eksliang
hadoophadoop单机部署
转载请出自出处:http://eksliang.iteye.com/blog/2185414 一、概述
Hadoop有三种模式 单机模式、伪分布模式和完全分布模式,这里先简单介绍单机模式 ,默认情况下,Hadoop被配置成一个非分布式模式,独立运行JAVA进程,适合开始做调试工作。
二、下载地址
Hadoop 网址http:
- LoadMoreListView+SwipeRefreshLayout(分页下拉)基本结构
gundumw100
android
一切为了快速迭代
import java.util.ArrayList;
import org.json.JSONObject;
import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayo
- 三道简单的前端HTML/CSS题目
ini
htmlWeb前端css题目
使用CSS为多个网页进行相同风格的布局和外观设置时,为了方便对这些网页进行修改,最好使用( )。http://hovertree.com/shortanswer/bjae/7bd72acca3206862.htm
在HTML中加入<table style=”color:red; font-size:10pt”>,此为( )。http://hovertree.com/s
- overrided方法编译错误
kane_xie
override
问题描述:
在实现类中的某一或某几个Override方法发生编译错误如下:
Name clash: The method put(String) of type XXXServiceImpl has the same erasure as put(String) of type XXXService but does not override it
当去掉@Over
- Java中使用代理IP获取网址内容(防IP被封,做数据爬虫)
mcj8089
免费代理IP代理IP数据爬虫JAVA设置代理IP爬虫封IP
推荐两个代理IP网站:
1. 全网代理IP:http://proxy.goubanjia.com/
2. 敲代码免费IP:http://ip.qiaodm.com/
Java语言有两种方式使用代理IP访问网址并获取内容,
方式一,设置System系统属性
// 设置代理IP
System.getProper
- Nodejs Express 报错之 listen EADDRINUSE
qiaolevip
每天进步一点点学习永无止境nodejs纵观千象
当你启动 nodejs服务报错:
>node app
Express server listening on port 80
events.js:85
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at exports._errnoException (
- C++中三种new的用法
_荆棘鸟_
C++new
转载自:http://news.ccidnet.com/art/32855/20100713/2114025_1.html
作者: mt
其一是new operator,也叫new表达式;其二是operator new,也叫new操作符。这两个英文名称起的也太绝了,很容易搞混,那就记中文名称吧。new表达式比较常见,也最常用,例如:
string* ps = new string("
- Ruby深入研究笔记1
wudixiaotie
Ruby
module是可以定义private方法的
module MTest
def aaa
puts "aaa"
private_method
end
private
def private_method
puts "this is private_method"
end
end