Articles of terminal

检测NUL文件描述符(isatty是假的)

下面的C文件在NUL被传送给它时给出了一个伪造的结果: int main() { printf("_isatty = %d\n", _isatty(0)); } 结果是: C:\Users\Edward\Dev\nulltest> test.exe < NUL _isatty = 64 我很确定NUL(aka / dev / null)不是terminal设备! 所以我需要以另一种方式检测文件描述符是否对应于NUL。 这个数字没有任何具体的含义; 当我确实有一个terminal连接时,我看到它。 我该怎么办? 这个问题build议使用一个粗略的未logging的函数来获取底层名称,大概是将它与NUL进行比较,但这对我来说并不理想。 有没有更好的办法? PS这将有助于解决这个GHC错误 。

Vim:Windows下terminal的编码(Unicode)

我不知道为什么,但是这个话题似乎被logging得很差,而且有争议,因为没有人知道真正的答案(除了也许很less有人回答的穆勒纳尔先生之外)。 所以基本上我在这里提出了一个讨论,并且很快就死了,可能是因为在Windows上没有太多人在terminal模式下使用Vim。 我的编码设置如下所示: if has('multi_byte') if empty(&termencoding) let &termencoding = &encoding endif let &encoding = 'utf-8' let &fileencoding = 'utf-8' endif 当然,我在GVim下运行也没有问题:可以input任何字符,我修补的Powerline的Consolas工作得很好。 当我尝试在terminal模式下运行Vim时,问题就开始了。 我使用ConEmu ,一个function丰富的Windowsterminal模拟器。 它声称正式支持Unicode的开箱即用。 例如,我可以运行以下testing脚本: chcp 65001 & (cmd /c type "%~dpn0.cmd") & pause & goto :EOF English: texts, web pages and documents Graves,etc: à á â ã ä å æ ç è […]

在Cygwin上找不到sudo命令

我目前正在尝试在Windows操作系统上安装和更新一些软件包。 唯一的问题是,我正在使用Cygwin来通过terminal键入命令(正如我所知,我可以在Cygwin上键入Linuxtypes的命令,如cd,ls等 – 我可能是错的)。 但是,当我尝试安装一个包如: sudo apt-get install paparazzi-dev 我得到了答复: -sh: sudo: command not found. 有没有人有一个想法,我该如何解决这个问题?

确定程序是否在远程桌面上运行

我的程序在远程桌面(terminal服务)上运行时可以确定是否有方法? 我想在远程桌面会话上运行程序时启用“非活动超时”。 由于用户在远程桌面会话打开时声名狼借,我希望我的程序在指定的闲置时间后终止。 但是,我不想为非RD用户启用不活动超时。

串口不正常的数据损坏模式

我通过从Windows超级terminal发送数据来testing我的应用程序通过串行端口接收数据,这大部分工作。 例如,如果我发送: 快速布朗福克斯 我收到 : 快速布朗福克斯 但是,如果我发送: UUUUUUUUUUU 我收到 UUÕUÕUÕUÕUÕ 或者如果我发送: AAAAAAAAAAA 我收到 : AAAAAAAAAAA 所以对于任何重复的string长度超过2,那么第3,第5,第7等字符被设置的高位破坏。 两台机器上的串口设置是相同的。

检测远程桌面连接的来源

这个问题告诉我如何检测远程桌面会话。 有谁知道是否有可能从远程连接的初始化位置找出来? -Vegar

在C获得terminal宽度?

我一直在寻找一种方法来获取我的C程序中的terminal宽度。 我一直在提出的是: #include <sys/ioctl.h> #include <stdio.h> int main (void) { struct ttysize ts; ioctl(0, TIOCGSIZE, &ts); printf ("lines %d\n", ts.ts_lines); printf ("columns %d\n", ts.ts_cols); } 但每次我尝试我得到 austin@:~$ gcc test.c -o test test.c: In function 'main': test.c:6: error: storage size of 'ts' isn't known test.c:7: error: 'TIOCGSIZE' undeclared (first use in this function) test.c:7: error: (Each […]

类似Linux的Ctrl-C(KeyboardInterrupt)用于Windows cmd行?

我已经被迫在Windows中使用命令行,并想知道是否有类似Linux的键盘快捷键? 我GOOGLE了,没有find我在找什么。 像^ C,^ Z等等的东西? 谢谢大家!

如何使用pid从Python中终止进程?

我想在Python中写一些简短的脚本,如果不是已经开始其他的terminal和应用程序(Linux),将启动子stream程中的另一个Python代码。 所以它看起来像: #!/usr/bin/python from subprocess import Popen text_file = open(".proc", "rb") dat = text_file.read() text_file.close() def do(dat): text_file = open(".proc", "w") p = None if dat == "x" : p = Popen('python StripCore.py', shell=True) text_file.write( str( p.pid ) ) else : text_file.write( "x" ) p = # Assign process by pid / pid from int( […]

Windows7批处理,如何在第一个For循环之后打破

我正在写一个简单的脚本来检索作为IP提供的本地主机地址。 为了得到我的IPv4地址(Win7),我写了简单的FOR循环,但是结果是我从最后一个循环而不是第一个 循环获得了IP。 这里是批处理代码: cls for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do ( set ip=%%b ) set ip=%ip:~1% echo %ip% 这返回: (set ip= 192.168.1.101 ) (set ip= 192.168.88.1 ) (set ip= 192.168.137.1 ) set ip=192.168.137.1 echo 192.168.137.1 192.168.137.1 我需要的是第一个循环的结果: 192.168.1.101