命令
printf 'ABC$def%hx\n' 10 # output: ABC$defa
printf 'ABC$def%s\n' 10 # output: ABC$def10
按预期工作....但我找不到有关 %h 的任何信息。
它在所有系统上都可用吗?
命令
printf 'ABC$def%hx\n' 10 # output: ABC$defa
printf 'ABC$def%s\n' 10 # output: ABC$def10
按预期工作....但我找不到有关 %h 的任何信息。
它在所有系统上都可用吗?
这个最近的汇编问题引起了我的注意,不是因为明显多余的指令,而是因为sys_write
输出的内容。
该程序尝试输出所有 256 个 ASCII 字符,从 ASCII 48 开始,从 255 到 0,最后以 47 结束。
提问者提供的输出为:
└─$ ./example_displayascii
0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������
我可以接受以这种方式打印 128 个扩展 ASCII 代码,但是从 0 到 31 的代码怎么了,尤其是从 32 到 47 的代码,这些代码显然必须是可打印的字符!
我的问题:
sys_write
当 Linux 面对从 0 到 31 的(控制)代码时,它通常会做什么?我正在尝试使用 WSL2 在 Bash 中填充一个数组。我有一个输入文本文件,我正在尝试使用它进行解析awk
。我想将 YOLOargs 下面的资料提取到一个用空格分隔的数组中,但引号中的文件路径除外,我想将其全部提取出来。
以下是示例文本文件(argstext
):
Pipelines:
YOLO-Goby
Pipeline Container Arguments:
Bubblerargs:
python Collect_Unpack.py --primary_images --processes 1 --every_nth 25 --output_folder
YOLOargs:
python 03_YOLO_infer_no_labels.py --img_list_txt --output_name inference_output_test --confidence 0.1 --weights "/mnt/c/Users/jmilitello/OneDrive - DOI/ARIS_MLM_Files/Literature/Literature for Pete/Code/best.pt"
到目前为止,我仅使用以下内容来提取以下信息YOLOargs
:
YOLOcontainerargs=($(awk -F' ' 'c&&c--;/.*YOLOargs:/{c=1}' "${argstext}"))
这将创建一个数组,但是文件路径的元素被所有空格分隔,而不是一个元素。
我有这个
$ cat test.sh
echo "https://bitbucket.dev.global.server.com/scm/xyz/abd.git"
echo "ssh://[email protected]:6699/xyz/abc.git"
echo "http://bitbucket.dev.global.server.com/abc"
echo "ssh://[email protected]/xyz/abc"
echo "http://bitbucket.dev.global.server.com"
echo "ssh://[email protected]/xyz/abc.git"
我想要一个单行命令(最好是 sed 命令),它可以从 URL 中提取服务器名称。例如
bitbucket.dev.global.server.com
我试过了,但是没用
$ ./test.sh | sed 's/\(\/\/\|\@\)/&\n/;s/.*\n//;s/\(\:\|\/\)/\n&/;s/\n.*//'
bitbucket.dev.global.server.com
[email protected]
bitbucket.dev.global.server.com
[email protected]
bitbucket.dev.global.server.com
[email protected]
它仍然有用户和@符号。如何做到这一点?
select
我可以使用或等待多个网络连接之一epoll
。我可以使用 等待信号sigwaitinfo
,或者添加一个在收到信号时运行的处理程序。
我如何等待网络套接字有传入流量,或者等待特定信号(在我的情况下是 SIGWINCH)?
我想到的一个想法是让信号处理程序将“环回”流量发送到某个打开的文件描述符,这样epoll
就可以等待它了。但我宁愿不实际创建任何文件。也许有办法创建两个直接相互连接的新文件描述符?
我正在编写一个简单的堡垒服务,它将记录 ssh 会话的输入/输出。ssh 连接部分如下所示:
func connect(user, host string, logger sessionLogger) error {
cmd := exec.Command("ssh", user+"@"+host)
t, err := pty.Start(cmd)
if err != nil {
return err
}
defer t.Close()
go func() {
buf := make([]byte, 1024)
for {
n, err := t.Read(buf)
if err != nil {
break
}
os.Stdout.Write(buf[:n])
logger(buf[:n])
}
}()
go func() { io.Copy(t, os.Stdin) }()
return cmd.Wait()
}
问题是用户输入的所有命令都会回显到 PTY 两次,如下所示:
我曾尝试使用 cmd 的 stdin/stdout,包括根本不使用 pty,但遇到了各种奇怪的问题,例如没有命令提示符的输出等。其中大多数与命令的 stdout 的性质有关(它必须是 pty)。
这是目前为止最好的结果了。不过我需要消除过多的命令回音。
我正在使用 Ansible 的blockinfile
模块在文件中的特定行之间添加一行代码。该代码块应缩进 8 个空格。但是,当我运行剧本时,这些行会插入到行的开头(没有缩进),忽略我在代码块中添加的空格。这是我正在使用的剧本:
- name: Add lines between specific lines with 8 spaces of indentation
hosts: all
tasks:
- name: Add lines
ansible.builtin.blockinfile:
path: /path/to/my/file
marker: "# {mark} Do not edit manually"
insertbefore: '^\s*the line that exists'
block: |
# first line
second line
预期行为:应像这样插入块,并缩进 8 个空格:
# BEGIN ANSIBLE MANAGED BLOCK
# first line
second line
# END ANSIBLE MANAGED BLOCK
实际行为:块插入时没有缩进:
# BEGIN ANSIBLE MANAGED BLOCK
# first line
second line
# END ANSIBLE MANAGED BLOCK
我尝试直接在块中添加空格,但它们被忽略了。有没有办法让blockinfile
插入的块尊重缩进?
在 gnuplot 中,填充两条曲线之间的空间时,我们会这样做:
plot "data" using 1:2,/
"data" using 1:3,/
"data" using 1:2:3 with filledcurves,\
"data2" using 1:2,/
"data2" using 1:4,/
"data2" using 1:2:4 with filledcurves
我怎样才能做同样的事情,但使用文件“data”的 1:2,但使用文件“data2”的“3”?当然,无需修改数据库。
也就是说,我想填充数据第 2 列和数据 4 第 4 列之间的空间。因此,它将类似于:
plot "data" using 1:2,/
"data2" using 1:4,/
??????????? with filledcurves
编辑
文件数据样本:
1736683200 24.28 24.83 1012 79 0.0 12 56
1736694000 24.71 25.09 1011 71 0.0 17 38
1736704800 24.29 24.6 1010 70 0.0 10 53
1736715600 23.6 24.03 1012 77 0.13 7 66
1736726400 23.05 23.47 1011 79 0.32 7 79
1736737200 22.37 22.8 1010 82 0.18 3 88
1736748000 22.15 22.61 1012 84 0.22 4 66
1736758800 22.92 23.36 1012 80 0.49 2 77
1736769600 24.33 24.72 1011 73 0.35 12 41
1736780400 24.62 24.89 1010 67 0.0 15 27
....
文件数据2示例:
1736676000 24.6 21.4 1011.8 0 0.0 13.0 85
1736679600 24.9 21.3 1011.6 0 0.0 16.7 83
1736683200 25.2 21.2 1011.4 0 0.0 18.5 74
1736686800 25.2 21.1 1010.9 0 0.0 18.5 76
1736690400 25.2 21.0 1010.3 0 0.0 18.5 78
1736694000 25.2 20.9 1009.8 0 0.0 20.4 82
1736697600 24.7 20.7 1009.8 0 0.0 18.5 82
1736701200 24.2 20.5 1009.7 0 0.0 16.7 83
1736704800 23.7 20.4 1009.7 0 0.0 14.8 83
1736708400 23.6 20.4 1010.3 0 0.0 13.0 85
使用 Linux mint 下的 PyCharm 社区版 2024.3.1.1,我在对“/usr/bin/chromium”等系统文件调用 os.stat 时出现异常。使用 python 解释器直接以同一用户身份调用同一脚本即可。
示例脚本test.py:
import os
if __name__ == '__main__':
print( os.stat("/usr/bin/chromium") )
产生以下错误:
File "/home/user/test.py", line 4, in <module>
print( os.stat("/usr/bin/chromium") )
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/chromium'
pycharm中使用的解释器是/usr/bin/python3。
直接使用以下方式调用脚本
/usr/bin/python3 test.py
一切按预期进行。
原因是什么以及如何在 pycharm 中运行脚本?
fail2ban 服务不起作用但正则表达式匹配......
这是我的配置:
sudo nano /etc/fail2ban/filter.d/login_eiren_studio.conf
[Definition]
datepattern =\[%%Y-%%m-%%d\s%%H:%%M:%%S\s%%z\]
failregex =^\s\|\sIP:\s<HOST>\s.*$
ignoreregex =
sudo nano /etc/fail2ban/jail.local
[login_eiren_studio]
enabled = true
filter = login_eiren_studio
logpath = /var/www/openvscode/proyectos/login.eiren.studio/logs/badauth.log
maxretry = 5
bantime = 3600
findtime = 600
和日志……
[2025-01-02 12:43:58 +0100] | IP: 85.87.24.22 | Dispositivo: Windows 10 | Navegador: Chrome 131.0.0.0 | Usuario: intento de login: [email protected] | Mensaje: Error: El usuario existe pero la contraseña no es correcta.
[2025-01-02 12:52:18 +0100] | IP: 85.87.24.22 | Dispositivo: Windows 10 | Navegador: Chrome 131.0.0.0 | Usuario: intento de login: [email protected] | Mensaje: Error: El usuario existe pero la contraseña no es correcta.
当我尝试使用 fail2ban-regex 匹配日志 图像时
但是当我输入 fail2ban-client status login_eiren_studio 时,我有 0 次失败的身份验证,我的时区是欧洲/马德里,在我的计算机和日志中也是如此 IMAGE
fail2ban 日志中没有任何内容,我已将其配置为默认(root),并且我在日志中拥有读取权限
有什么想法吗?谢谢 ;)