Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答


2
gpg-agent拒绝SSH密钥,并通过ssh-add报告“代理拒绝操作”
我在arch linux上使用openssh7.5p1和gnupg 2.1.21(这些是arch随附的默认版本)。我想gpg-agent用作ssh代理。我在我的内容~/.gnupg/gpg-agent.conf: pinentry-program /usr/bin/pinentry-qt enable-ssh-support Arch会自动从systemd启动一个gpg-agent,所以我设置了 export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh" 当我运行时ssh-add -l,它没有报告任何身份,并且没有ps报告gpg-agent --supervised我期望的过程。 不幸的是,当我运行时ssh-add,无论键类型是什么,它都不起作用。这是我如何尝试dsa的示例: $ ssh-keygen -f testkey -t dsa -N '' Generating public/private dsa key pair. Your identification has been saved in testkey. Your public key has been saved in testkey.pub. $ ssh-add testkey Could not add identity "testkey": agent …

1
ACPI组/操作未定义:处理器/ LNXCPU
如果从交流电源适配器上拔下笔记本电脑的电源,会出现如下所示的ACPI错误: May 07 21:45:04 veritas root[7067]: ACPI group/action undefined: processor / LNXCPU:00 May 07 21:45:04 veritas root[7076]: ACPI group/action undefined: processor / LNXCPU:01 May 07 21:45:04 veritas root[7078]: ACPI group/action undefined: processor / LNXCPU:02 May 07 21:45:04 veritas root[7080]: ACPI group/action undefined: processor / LNXCPU:03 acpi_listen 转储 ac_adapter ACPI0003:00 00000080 …

3
按标题名称以awk打印列
我有一个像这样的文本文件 foo bar baz 1 a alpha 2 b beta 3 c gamma 我可以使用awk通过来打印某些列,例如1和3,{print $1, $3}但是我想通过指定列的标题来指定要打印的列,例如{print $foo, $baz}。这很有用,因此我不必打开文件并手动对列进行计数即可查看哪一列,并且如果列号或顺序发生更改,我也不必更新脚本。我可以使用awk(或其他shell工具)执行此操作吗?


1
sudoers和默认值
我需要允许用户在没有tty的情况下运行无密码的sudo。 我有一个/etc/sudoers.d/带有我所需的特殊命令和设置的文件,因为我不想直接编辑该sudoers文件。在该文件中,我具有以下内容: # My list of commands that the user can run passwordless myUser ALL=(ALL) NOPASSWD:SETENV: /foo/bar /foo/zaz # My new defaults. Defaults exempt_group = myUser Defaults !env_reset,env_delete-=PATH Defaults: myUser !requiretty 但是,当我su向用户运行时,sudo -l我得到的是默认值: Matching Defaults entries for myUseron this host: requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR …
12 sudo  sudoedit 

3
ssh配置文件中的远程命令
我想设置ssh_config,所以只需输入ssh my_hostname我就可以进入特定的文件夹。就像我打字一样cd /folder/another_one/much_much_deeper/。 我该如何实现? 编辑。它已被标记为“如何ssh进入目录...”的副本,但这不是我的问题。 我知道我可以通过将任何命令尾随命令来执行任何命令ssh。我的问题是关于/ssh_config文件而不是命令。
12 ssh  ssh-config 


1
如何在自己的目录中安装R 3.3.1
这是一个有点重复的问题(请参阅如何在我的目录中安装R设置PATH),但是我确实遇到了新版本R的一些新问题。 我试图在自己的目录中安装R(R 3.3.1)的新版本。我遵循了以前的安装流程 但是我遇到了一个前所未有的问题。 ./configure --prefix=$HOME/Programme/R-3.3.1 ....... checking for zlib.h... yes checking if zlib version >= 1.2.5... no checking whether zlib support suffices... configure: error: zlib library and headers are required 看来zlib版本太低,所以我安装了当前版本的zlib tar xvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure --prefix=$HOME/Programme/zlib-1.2.11 make && make install 然后我尝试再次为R做配置,例如: ./configure --prefix=$HOME/Programme/R-3.3.1 --enable-R-shlib LDFLAGS="-L/$HOME/Programme/zlib-1.2.11/lib" CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include" 仍然我有同样的错误: …

4
从字节偏移量获取行号
具有文件的字节偏移量。 有没有提供此字节行号的工具? 字节计数从零开始,例如:第一个字节为0而不是1。 行号以1.开头 文件可以同时包含纯文本,“二进制” blob,多字节字符等。但是我感兴趣的部分:文件结尾,仅包含ASCII。 示例文件: 001 002 003 <<-- first zero on this line is byte 8 004 具有字节偏移量8将使我行3。 猜猜我可以用这样的东西来找到行号: 一个。tail -c+(offset + 1) file | wc -l,这里+1为tail从1计数 湾 wc -l file C。那么tail -n+num 这里num是a - b + 1 但是...是否有可以num直接给我的相当普遍的工具? 编辑,错误:或更明显的是: head -c+offset file | wc -l

6
可以缓冲标准输入或文件的程序
除了使用临时文件提供帮助之外,还有一种方法/程序可以缓冲来自的输入,stdin但直到得到时才输出内容EOF。我也不想使用shell变量(例如buffer=$(cat))。 该程序的行为应如下所示(假设程序名称为buffered-cat): $ buffered-cat line 1 line 2 line 3 ^D # Ctr-D here(End of Line) 现在程序已接收^D,buffered-cat输出内容 line 1 line 2 line 3
12 shell  stdout  buffer 

1
在使用Windows子系统用于Linux时,我使用Windows程序编辑了Linux文件,现在无法再访问它了。
我正在Windows上的Ubuntu上使用Bash或Windows子系统中的另一个Linux发行版(用于Linux),并且已经lxss使用Windows编辑器在目录中编辑了Linux文件。 现在,每当我或某个程序尝试从Linux访问它时,我都会收到一个错误“输入/输出错误”,或者即使我可以在File Explorer中看到该文件,文件也完全消失了。 cat abc cat: abc: Input/output error 为什么会这样呢?我该如何解决?将来如何避免呢?

2
Systemd:网络完全连接后如何使Systemd服务启动?
背景 我正在编写一个简单的脚本,使其在Raspberry Pi 2上的Raspbain中运行,只需打开一个LED灯,以指示我准备从台式计算机连接SSH。 该脚本在这里并不重要,只不过要提到,由于我使用了频率控制,因此该脚本正在运行一个无限循环,可以频繁地打开和关闭LED。因此,这是简单服务的示例。但是,至少该问题的可接受答案建议我将类型设置为空闲。所以我的服务档案看起来像 [Unit] Description=Turn on LED after SSH is ready [Service] Type=idle ExecStart=/usr/bin/sshready.py [Install] Wants=network-online.target After=network-online.target 影响 该服务将按预期运行。但是,我注意到当LED亮起后,立即在台式计算机上启动腻子时,登录提示不会立即出现。所以我检查了 $ systemd-analyze plot > output.svg 结果显示 题 看来我的服务没有在之后启动network-online.target,这是什么问题,我该如何解决?
12 systemd  startup 

1
设备文件,ioctl,sysfs,netlink之间的用法差异
我试图阐明哪种方法(就功能而言)是与Linux中的设备进行交互的最有用的方法。据我了解,设备文件仅公开部分功能(块设备中的地址块,字符设备中的流等)。 ioctl(2)似乎是最常用的方法,但有人说它不安全,等等。 一些好的文章或其他相关的指针将受到欢迎。
12 devices  sysfs  ioctl 

1
Linux中的“泄漏”管道
假设您具有如下所示的管道: $ a | b 如果b停止处理stdin,则在一段时间后,管道将被填满,并将a对其的stdout 写入,将阻塞(直到b再次开始处理或终止)。 如果我想避免这种情况,可以尝试使用更大的管道(或更简单地说,是buffer(1)),如下所示: $ a | buffer | b 这只会给我带来更多的时间,但a最终最终会停止。 我很想拥有(对于我要解决的非常特殊的情况)是拥有一个“泄漏的”管道,该管道在充满时会从缓冲区中丢弃一些数据(理想的是逐行)以a继续处理(您可能会想到,在管道中流动的数据是消耗性的,即,处理数据的b重要性不如a能够不阻塞地运行)。 总结一下,我很想拥有一个有界,漏水的缓冲区: $ a | leakybuffer | b 我可能可以很容易地用任何一种语言来实现它,我只是想知道我是否缺少某些“准备使用”的东西(或者像bash单线的东西)。 注意:在示例中,我使用的是常规管道,但问题同样适用于命名管道 在授予以下答案的同时,我也决定实施LeakyBuffer命令,因为以下简单解决方案有一些局限性:https : //github.com/CAFxX/leakybuffer
12 linux  pipe  fifo  buffer 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.