有人知道Windows上stty的等效工具吗?我想在Windows平台上对串行端口设置进行反向工程.
我必须将Windows应用程序移植到Linux平台,但我没有关于我必须用于应用程序的串行端口设置的任何信息.我必须对这些设置进行逆向工程.最常见的不起作用.
Windows上的示例应用程序可用且正常工作.
我想从远程机器运行一个简单的脚本.该脚本包含以下内容:
#!/usr/bin/python
import os
print str(os.popen('stty size', 'r').read())
Run Code Online (Sandbox Code Playgroud)
如果我从本地机器运行它我会得到很好的输出,比如36 138.如果我尝试从另一台机器运行它,我得到<ip>: stty: standard input: Invalid argument(使用ssh ot pdsh).
问题是我无法更改使用stty命令的脚本.这是一个常见的脚本,我编写了包装器.建议?
在bash脚本中,我使用以下内容:
$ stty -F /dev/ttyUSB0 921600 raw
$ echo -n "some test data" >/dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)
它按预期工作.使用PL2303 USB转RS232适配器:
$ lsusb
...
Bus 006 Device 010: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 006 Device 011: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Run Code Online (Sandbox Code Playgroud)
现在我尝试用1 MBd做同样的事,但是出现了错误:
$ stty -F /dev/ttyUSB0 1000000 raw
stty: /dev/ttyUSB0: unable to perform all requested operations
Run Code Online (Sandbox Code Playgroud)
当我尝试500 kBd时也是相同的消息.尝试250 kBd的错误信息是不同的:
$ stty -F /dev/ttyUSB0 250000 raw
stty: invalid argument `250000'
Try `stty --help' for more information.
Run Code Online (Sandbox Code Playgroud)
正如所看到的在这里 …
在等待来自操作的输入时按Ctrl-C read -sp会将操作返回到命令行,但是给定的输入会被隐藏,就像它仍在运行一样read -s.
例
#!/bin/sh
sig_handler() {
echo "SIGINT received"
exit 1
}
trap "sig_handler" SIGINT
read -sp "ENTER PASSWORD: " password
echo
echo $password
Run Code Online (Sandbox Code Playgroud)
通常执行如下:
$~ ./example.sh
ENTER PASSWORD:
password
$~ text
-bash: text: command not found
Run Code Online (Sandbox Code Playgroud)
但是如果你在ENTER PASSWORD按Ctrl-C就可以了
$~ ./example.sh
ENTER PASSWORD: SIGINT received
$~ -bash: text: command not found
Run Code Online (Sandbox Code Playgroud)
在您刷新之前,文本或任何其他后续命令不会显示为输入reset.
收到SIGINT后如何将文本返回正常输入?read -p "ENTER PASSWORD: " password出于明显的安全原因,不需要.
I would like to know if someone has a way to make stty raw -echo works on fish or zsh.
I used it to upgrade a reverse shell but when I do fg i can't press "enter" etc
I got this result :
Thanks !
我有一个甚高频无线电通过串口连续发送状态信息,我需要将我作为十六进制数据存储的消息存储在文本文件中
我尝试了如下所示的hexdump命令,我从高清无线电获得的数据是正确的,但是这个脚本的问题是,当我执行它时,它不会结束,直到我按下ctrl-c
d -A n -t x1 -w128 /dev/ttyS0 > file.txt
Run Code Online (Sandbox Code Playgroud)
所以我尝试了另一个命令,即read命令如下:
COUNTER=0
while [ $COUNTER -lt 10 ]; do
read -r -t1 -N128 DATA < /dev/ttyS0
echo $DATA >> file1.txt
od -A n -t x1 -w128 file1.txt >> file2.txt
let COUNTER=COUNTER+1
done
Run Code Online (Sandbox Code Playgroud)
但存储在file2.txt中的数据不正确.
我从收音机收到的信息不是按照无线电协议文件我可以解释的格式.所以,当我说数据不正确时,我的意思是消息无法解释(它是随机收到的)
请注意我在执行两个脚本之前设置了串口,如下所示:
stty -g /dev/ttyS0 raw
stty -F /dev/ttyS0 9600
Run Code Online (Sandbox Code Playgroud)
所以,请帮我解决这个问题.或者给了我另一种从串口读取的方法.
问候,
有很多选择stty。我想要的是基于stty raw -echo:我想知道是否可以添加一个选项,使终端驱动程序在看到例如ctrl+时发送信号z,而不是让我的程序处理这个按键。
如何在我的.inputrc中覆盖bash中的Control + W?以下内容本身不起作用:
"\C-w": forward-word
Run Code Online (Sandbox Code Playgroud)
当我添加时它确实有效,stty werase undef但是's'键被神秘地禁用了!
我有一个 netcore 应用程序,它打开串行端口,并在检测到奇偶校验错误后在控制台上写入“奇偶校验错误”。它在 Windows 10 中工作正常,但无法在 Linux 下工作。
我的假设是操作系统没有将奇偶校验错误传递给 netcore。
为了检查端口设置,我运行:
stty -D /dev/ttyS0 -ignpar inpck
Run Code Online (Sandbox Code Playgroud)
然后我跑:
stty -D /dev/ttyS0 -a
Run Code Online (Sandbox Code Playgroud)
并且设置似乎已按预期正确设置(-ignpar inpck)。
然后我运行我的 netcore 3 应用程序,但未检测到奇偶校验错误。
所以我跑
stty -D /dev/ttyS0 -a
Run Code Online (Sandbox Code Playgroud)
用于验证设置,但这些似乎已重置(-ignpar -inpck)
如何强制我的应用程序在启用 inpck 属性的情况下运行?
有没有办法让inpck默认启用?
谢谢。
更新:netcore 3 应用程序奇偶校验错误检测在 Windows 10 中工作正常,但在 Linux 下不起作用。我的假设是:
[TRIVIAL] [求助]
tl:dr - DOW CRLF觉得好像是胡子行为不端; 琐碎的错误!
我不确定为什么awk/gawk的表现如此.任何提示?有没有看过awk结果覆盖终端上的列?我只在一台机器上看到这个; 在其他地方,东西工作得很好!不确定这是终端行为不端还是其他任何事情.一个stty sane似乎并没有帮助的.有谁见过类似的东西?
$ cat in.txt
2132088 AAA_WEB_50181_552222195-1
2110665 AAA_WEB_50177_547796499-2
2157591 AAA_WEB_50181_551310844-1
2117370 AAA_WEB_50178_549250104-1
2109777 AAA_WEB_50180_551512637-1
2112704 AAA_WEB_50179_410838823-13
2116984 AAA_WEB_50178_549463801-2
2119511 AAA_WEB_50179_550076677-2
2122008 AAA_WEB_50180_551679428-1
2124984 AAA_WEB_50177_548026293-1
$ awk '{print $2 " " $1}' in.txt
213208850181_552222195-1
211066550177_547796499-2
215759150181_551310844-1
211737050178_549250104-1
210977750180_551512637-1
211270450179_410838823-13
211698450178_549463801-2
211951150179_550076677-2
212200850180_551679428-1
212498450177_548026293-1
$ cat /etc/issue.net
Ubuntu 14.04.4 LTS
$ gawk '{print $2 " " $1}' in.txt
213208850181_552222195-1
211066550177_547796499-2
215759150181_551310844-1
211737050178_549250104-1
210977750180_551512637-1
211270450179_410838823-13
211698450178_549463801-2
211951150179_550076677-2
212200850180_551679428-1
212498450177_548026293-1
$ gawk -W …Run Code Online (Sandbox Code Playgroud)