Linux | Screen
screen命令
screen 是一个非常有用的命令。应用场景:
- 单个
SSH会话中使用多个shell窗口(会话)的能力 - 服务器开发,一个单独运行进程的窗口。可以避免单独再开一个窗口。 …
screen使用
创建一个窗口
$ screen -S name
执行自己需要的命令
$ ...
分离窗口
ctrl + A + D
重新连接到screen
如果只有一个会话可以直接使用 -r
screen 是一个非常有用的命令。应用场景:
SSH 会话中使用多个 shell 窗口(会话)的能力$ screen -S name
执行自己需要的命令
$ ...
ctrl + A + D
如果只有一个会话可以直接使用 -r
我是用 docker 拉取镜像 CentOS 7.2.1511, 利用容器来作为我的开发环境。有条件的也可以用虚拟机或者实体机器。原理都一样。
$ docker
$ yum update && yum install gcc gcc-c++ make zlib-devel.x86_6
升级 gcc, 下载安装包下载依赖。
$ wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.3/gcc-4.9.3.tar.bz2
$ tar xfv gcc-4.9.3.tar.bz2 && cd gcc-4.9.3
$ ./contrib/download_prerequisites
如果连接失败,无法下载的话,就打开此文件,手动下载下面5个文件,然后将文件放在gcc根目录,再屏蔽contrib/download_prerequisites文件里面的wget操作,再重新执行一次./contrib/download_prerequisites。这样的话,后面编译gcc时,这几个依赖库会自动先编译,不用自动手动一个个编译。
spawn 交互程序开始后面跟命令或者指定程序
expect 获取匹配信息匹配成功则执行expect后面的程序动作
send exp_send 用于发送指定的字符串信息
exp_continue 在expect中多次匹配就需要用到
send_user 用来打印输出 相当于shell中的echo
exit 退出expect脚本
eof expect执行结束 退出
set 定义变量
puts 输出变量
set timeout 设置超时时间
log_user 是否开启日志 0/1
log_file 设置日志路径,log_user = 1时才有效
我是用skynet的debug_console作为示例:
在 Unity 的 Hierarchy 面板上右键–>UI–>Text, 在 Inspector 面板上查看属性
属性 功能
Text 需要显示的文本Font 显示文本的字体 如:微软雅黑,宋体等Font Style 显示文本的样式,有普通,粗体,斜体,粗体和斜体四种选项Font Size 显示字体的大小Line Spacing 行与行之间的垂直距离Alignment 文本的水平和垂直方向的对齐方式Align by Geometry 使用字形几何范围执行水平对齐,而不是字形度量Horizontal Overflow 用于处理文本宽度超出文本框的情况的方法,有 Wrap (隐藏)和Overflow (溢出)两个选项Vertical Overflow 用于处理文本高度超出文本框的情况的方法,有 Truncate (截断)和Overflow (溢出)两个选项Best Fit 忽略 Size 属性,将文本合适的显示在文本框内Color 文本的颜色Material 用来渲染文本的材质其中水平溢出和垂直溢出的两个选项效果:
……网上有很多golang操作redis的例子,我使用github.com/gomodule/redigo/redis包写一个关于redis分布式锁的问题。
锁需要的几个组件
分布式锁还需要
推荐使用redis的连接池
……lua_next(L,index):先把 表(lua栈 index所指的表), 的当前索引弹出,再把table 当前索引的值弹出,也就是先弹出 table的索引,再弹出table索引的值 举例:
local t = {
["a"] = 1,
["b"] = 2,
["c"] = 3
}
使用lua_next遍历table t
我们直接来看lua_settop,文档解释
/*
设置栈的高度,如果之前的栈顶比新设置的更高,那么高出来的元素会被丢弃,反之压入nil来补足大小
假设栈里有2个元素。
如果index=0,那么移除栈上所有元素
如果index=1,移除栈顶一个元素
如果index=4,那么压入2个nil元素
*/
void lua_settop (lua_State *L, int index);
使用代码测试
int lua_test(lua_State *L)
{
int pop_num = lua_tointeger(L,1);
printf("pop_num= %d\n", pop_num);
lua_settop(L,0);
printf("1-top %d\r\n",lua_gettop(L));
lua_pushinteger(L,31);
lua_pushinteger(L,32);
lua_pushinteger(L,33);
lua_pushinteger(L,34);
printf("2-top %d\r\n",lua_gettop(L));
lua_pop(L,pop_num);
lua_settop(L, -2); //清除一个栈顶
printf("3-top %d\r\n",lua_gettop(L));
printf("栈底 %d\r\n",lua_tointeger(L,1));
printf("栈顶 %d\r\n",lua_tointeger(L,-1));
return 0;
}
输出
pop_num= 0
1-top 0
2-top 4
3-top 3
栈底 31
栈顶 33
总结lua_settop(L, idx)函数
我用过的静态博客有hexo、jekyll和hugo,对比起来,hugo虽然没有hexo那样丰富的插件和主题,但是hugo生成文章的速度更快。我是一名go语言爱好者,而hugo是go语言开发的, jekyll是用ruby开发的。于是我选择了hugo。下面我把hugo的安装步骤记录下来,供后来者参考。
……在使用go mod的过程中,依赖的包往往是第三方库,当我们自定义一个包并且放在github.com私有仓库时候,按照原来的方法则会有如下问题。
get "gitlab.com/xxx/zz": found meta tag get.metaImport{Prefix:"gitlab.com/xxx/zz", VCS:"git", RepoRoot:"https://gitlab.com/xxx/zz.git"} at //gitlab.com/xxx/zz?go-get=1
verifying gitlab.com/xxx/zz@v0.0.1: gitlab.com/xxx/zz@v0.0.1: reading https://sum.golang.org/lookup/gitlab.com/xxx/zz@v0.0.1: 410 Gone
这个错误是因为新版本go mod会对依赖包进行checksum校验,但是私有仓库对sum.golang.org是不可见的,它当然没有办法成功执行checksum。