TypechoJoeTheme

MetMan's Blog

网站页面
搜索到 137 篇与 的结果 ———只是一个默认分类
2024-09-22

交互式登录shell

交互式登录shell
本文是上一篇文章[[TMOUT引起服务器断开连接解决方法]]的附带研究产物。TMOUT环境变量在Bash Beginners Guide的解释如下:If set to a value greater than zero, TMOUT is treated as the default timeout for the read built-in. In an interative shell, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt when the shell is interactive. Bash terminates after that number of seconds if input does not arrive.TMOUT设置首先对read命令会产生影响,如果在指定时间内没有输入,Bash会退出read语句输入环境。其次,TMOUT会对交互式(interactive)shell产生影响,如果主提示符(P...
2024年09月22日
257 阅读
0 评论
2024-08-10

TMOUT引起服务器断开连接解决方法

TMOUT引起服务器断开连接解决方法
服务器管理员为了系统安全性和减少开销,一般会设置一定时间内shell没有活动自动断开连接。但如果设置时间过短,查查资料/休息下,再回终端工作发现已经退出登录是挺烦恼的。那么如何绕过这个限制保持SSH会话长时间在线?TMOUT变量首先我们要确认管理员如何实现该功能的。原先我以为自动断开连接是通过SSH配置实现的,后来发现是通过shell的TMOUT环境变量实现的。管理员会在系统配置文件/etc/profile中设置TMOUT值,并将其设为只读变量。export TMOUT=1200 # 保持在线1200秒,不活动退出 readonly TMOUT普通用户没有权限unset这个只读变量,这样用户就不能关闭这个自动退出功能了。$ unset TMOUT -bash: unset: TMOUT: cannot unset: readonly variable解决方法方法一一种解决思路是保持shell繁忙,可以在~/.bashrc加上一段代码:# ~/.bashrc alias bs="while sleep 1000; do printf '\33[0n'; done&...
2024年08月10日
319 阅读
0 评论
2024-08-10

C面向对象

C面向对象
五星上将麦克阿瑟曾说过:“不是C不能OOP,而是C++更有性价比”。面向对象编程是一种编程思想,不和具体的语言工具绑定,但有些语言在语法层面支持使得面向对象编程实现更容易,比如C++,Python。我们常说C语言是一门面向过程的语言,但实际上也可以通过C结构体、函数指针来模拟实现面向对象编程。本文实例来自《嵌入式C语言自我修养》(王利涛编著)。类的模拟C语言中没有class关键字,但可以用结构体模拟一个类(C++中类定义也可以用struct),结构体成员类似C++类中属性,成员函数使用结构体中内嵌函数指针来模拟。// animal.c struct animal { int age; int weight; void (*fp)(void); //函数指针模拟成员函数 };类似于C++的类定义// animal.cpp class Animal { public: int age; int weight; void speak(void); //类方法 };如果需要模拟类的多个方法,一个结构体中需...
2024年08月10日
155 阅读
0 评论
2024-08-10

当Zotero遇见了GPT

当Zotero遇见了GPT
Zotero-gpt是一款Zotero插件,利用GPT对文献内容(包括摘要、PDF全文或选择文本)进行提问回答,提高文献阅读效率。安装与设置插件地址: https://github.com/MuiseDestiny/zotero-gpt 从官网下载.xpi格式插件,然后拖动到Zotero软件中即可安装。设置:进入“编辑->首选项->高级->编辑器”中搜索gpt进行设置,主要设置OpenAI API KEY,如果是中转key的话,还需要修改接口地址。使用通过快捷键ctrl+/调出zotero-gpt窗口,ESC退出插件使用。zotero-gpt通过comand tag实现具体功能。插件窗口中彩色小框表示Command tag,代表着一个个插件功能,可以自行设置。鼠标左键长按tag会显示tag内容。比如AskPDF这个tag,定义的内容如下图所示。其中触发词表示在提问框中提问时包含这些词语时,直接使用Enter键会触发对应的tag功能。AskPDF触发词包含本文、这篇文章、论文,你可以自定义其它词语。示例:如果提问的内容不包含触发词,也可以鼠标点击对应的tag手动执...
2024年08月10日
405 阅读
0 评论
2024-07-31

替代RM命令的防误删工具TRASH-D

替代RM命令的防误删工具TRASH-D
前言最近好不容易写了几千行代码,突然担心起会不会发生源代码文件误删掉这件事来^-^虽然使用了GIT进行管理,但没有上传到版本服务器,总感觉不保险,因此研究代替RM命令的工具,将文件“删除”放入到所谓的回收站,而不是彻底的删除,即使误删了也能轻松恢复。在网上找到几款软件,发现trash-cli和trash-d两款软件能够满足需求。但trash-cli对于HPC多分区存储环境不太友好,最终选择了trash-d这款工具。安装项目地址:https://github.com/rushsteve1/trash-d 官方在GITHUB中提供了rpm/deb等安装包。本人使用的机器平台是centos,没有管理员权限,只能安装在个人目录下,从rpm包中抽取可执行文件方式安装。$ rpm2cpio trash-d-19-x86_64.rpm | cpio -idmv $ mv usr trash-d $ vi ~/.bashrc export PATH=/path/to/trash-d/bin:$PATH export MANPATH=/path/to/trash-d/share/man:$MA...
2024年07月31日
274 阅读
0 评论
2024-07-31

Fortran面向对象 二

Fortran面向对象 二
面向对象编程核心概念包括封装、继承及多态。下面介绍Fortran的类继承及多态语法。Fortran类继承Fortran中类继承使用扩展(extends)关键字定义继承哪个父类。type mytype integer :: value end type mytype ! extend from mytype type, extends(mytype) :: mynewtype real :: extra end type mynewtype新的类mynewtype除了继承mytype中成员value,还定义了新成员extra。module mytypes implicit none type mytype integer :: value contains ! => 过程别名 procedure,public :: write => write_mytype end type mytype type, extends(mytype) :: mynewtype real :: extra end ty...
2024年07月31日
137 阅读
0 评论
2024-07-31

Fortran面向对象

Fortran面向对象
从Fortran 2003开始标准加强了面向对象(OOP)语法支持,通过使用模块(module)及复用派生类型关键字(type)定义Fortran的类。Fortran主要参照C++ OOP模型进行设计,两者对比如下表所示。 C++Fortran成员在类中定义在'type'中定义方法在类中定义在'type'中声明interface;在module中实现构造函数default或explicit没有对象本身this第一个参数对象方法引用点操作符'.’%操作符Fortran类组织方式在模块文件定义类(module ...type ...contains ... end type ...contains ... end module)type...contains...end type定义类(包括数据成员及类方法声明)实际方法定义在模块contains部分实现类方法的第一个参数是对象本身module A type B ! data members integer :: c contains procedure :: d end type cont...
2024年07月31日
166 阅读
0 评论
2024-07-31

Wgrib2提取小区域数据

Wgrib2提取小区域数据
对于GRIB2数据处理,常见的一个需求是提取全场区域内一个子区域数据。wgrib2提供了几种处理方法。GRIB2数据提取方法wgrib2主要通过两种方法限制提取范围,一是根据格点索引范围;二是通过经纬度范围进行指定。-ijbox根据格点索引范围截取数据区域。-ijbox out X..Z,A grid values in bounding box X=i1:i2[:di] Y=j1:j2[:dj] Z=file A=[bin|text|spread]该选项需要四个参数,第一个是X方向索引范围:起始i1,结束i2,可选步长间隔di;第二个是Y方向范围,用法类似;第三个是写出文件名;第四个参数指定生成文件格式,支持bin/text/spread。-lola根据经纬度范围截取数据区域。-lola out X..Z,A lon-lat grid values X=lon0:nlon:dlon Y=lat0:nlat:dlat Z=file A=[bin|text|spread|grib]该选项需要四个参数,第一个是经度范围:起始经度lon0,...
2024年07月31日
206 阅读
0 评论

互动读者

标签云

最新回复

  1. tqymnonccc打酱油
    2024-09-27
  2. toibdpojay打酱油
    2024-09-22
  3. yvctxyevvw打酱油
    2024-09-22
  4. frezhwzwuq打酱油
    2024-09-22
登录
X
用户名
密码