Unix & Linux

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

3
通过SSH进行远程循环
我在脚本中有以下内容 for server in ${servers[@]}; do echo ${server} ssh user@${server} "for i in /tmp/foo* ; do echo ${i}; done" done 但这是行不通的。奇怪的是,我看到$ I的返回行数量。因此,如果我有十个文件,我会看到十个空行。
12 bash  ssh  quoting 

3
i386在macOS Mojave上意味着什么?
我使用的是2013年末推出的二手MacBook Pro(Mojave 10.14.3),当我arch在Terminal上键入内容时,我会回来i386。不应该是x86_64吗?卖方虚假陈述了该物品吗?请参阅“关于本机”下面的屏幕截图。



3
解密错误的魔术数字
4月,我使用以下命令对文件进行了加密 openssl enc -aes-256-cbc -salt -pass file:<passwordfile> < infile > outfil 现在我想用 openssl enc -d -aes-256-cbc -salt -pass file:<passwordfile> -in outfil -out infile2 但是我得到了不好的魔术数字。 昨天使用相同参数加密的文件可以解密。 会发生什么事?而且无论如何我都可以检索此存档文件?
12 openssl 

1
systemctl的--now开关
如手册页所述, systemctl --now enable servicename 应该启用并启动服务。 但是,在许多不同的发行版下,它对我都无效。 而输出: systemctl is-enabled 启用 systemctl is-active 对该服务仍然无效。 此开关有什么用? 我尝试了其他组合,例如: systemctl enable --now servicename 和: systemctl enable servicename --now 但还是一样 systemctl start servicename即使先前的命令(即enable零件)成功执行,我也必须每次都手动执行。 应用程序对systemd服务的要求是否应该支持它在单位文件中的某处实现该功能?许多众所周知的服务所不具备的功能,使我认为它完全无用。我认为正在考虑。

3
列出顶级手动安装的软件包,不依赖于它们
有很多方法可以显示使用手动安装的软件包apt,例如: apt-mark showmanual 但是有时候输出的太多了。例如,如果用户手动安装软件包foo: apt-get install foo ...并foo取决于bar和baz,然后apt-mark showmanual将输出: bar baz foo 我们如何只列出顶级手动安装的软件包(即 foo),而不列出其依赖项(即,不是baz或bar)? 以下代码似乎可以工作,但是GNU parallel调用apt-rdepends几百次太慢了(对于4核CPU,这要花三个小时): apt-mark showmanual | tee /tmp/foo | parallel "apt-rdepends -f Depends,PreDepends,Suggests,Recommends {} | tail +2" 2> /dev/null | tr -s ' ' '\n' | grep -v '[():]' | sort -Vu | grep -wv -f - …
12 debian  ubuntu  apt  deb 

3
阻止自动EOF到命名管道,并在需要时发送EOF
我有一个程序,在读取给定流中的EOF时会自动退出(在以下情况下为stdin)。 现在,我想制作一个Shell脚本,该脚本创建一个命名管道并将程序的stdin连接到它。然后,脚本使用和(以及其他工具退出时自动生成EOF)多次写入管道。我面临的问题是,当第一个操作完成时,它会向管道发送EOF并退出程序。如果我使用类似的东西,那么我打算退出程序时无法发送EOF。我正在研究一种平衡的解决方案,但无济于事。 我已经找到了如何防止EOF以及如何手动发送EOF的方法,但是我无法将它们结合在一起。有什么提示吗? echocatechotail -f #!/bin/sh mkfifo P program < P & : # Run in background # < P tail -n +1 -f | program echo some stuff > P # Prevent EOF? cat more_stuff.txt > P # Prevent EOF? send_eof > P # How can I do this? …

1
如何使用Debian配置从WiFi到以太网的网络接口网桥?
我正在使用Raspbian的Raspberry Pi,这仅仅是Debian。 我想将连接到Cox电缆的主要WiFi网络路由器桥接到此处的有线路由器,以使我的子网能够可靠地访问Internet。 它必须是WiFi到以太网的网桥。 我已使用外部适配器和高增益天线将/ etc / networks设置为USB wlan1的静态地址。wpa_supplicant配置为正确登录到主路由器。 因此,现在已设置好,因此我可以使用外部wlan1上的密码登录到正确的网络。静态地址在/ etc / networks中设置。网关和名称服务器都可以。我可以浏览网页等。 缺少的链接是将其桥接到eth0端口,以便我的路由器也可以连接,从而为我的子网提供服务。 不需要任何额外的网络服务,例如路由,nat或dhcp等。只需一个简单的桥即可。 谁能指出正确的方向来实现这一目标?
12 debian  wifi  ethernet  bridge 

2
为什么我不能使用chsh命令更改外壳?
至少我以为,我学会了一条新命令,因为该命令:的chsh行为不像所描述的那样。 它被描述为这样工作: cat /etc/shells 要知道安装了哪些外壳,因此可以在其中进行选择。 这样做echo $SHELL就知道了,它外壳所使用。 选择一种贝壳并输入 chsh -s /path/to/shell 输入密码并使用验证echo $SHELL您是否在新的外壳中。 我这样做了,输入密码时没有收到错误消息,但是我仍然在同一外壳中。 % echo $SHELL /bin/bash % cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash % chsh -s /bin/sh Password: % echo $SHELL /bin/bash

2
avahi-daemon和“ .local”域问题
我有一个运行24/7的基于Ubuntu 16.04的HTPC / Media Server 。就我所记得使用的官方Ubuntu发行版而言,avahi-daemon一直存在问题。这个问题经常在网上讨论。有人决定只删除守护程序,但是,当我运行CUPS服务器并使用Kodi作为我的AirPlay接收器时,我实际上需要它。 问题 mDNS / DNS-SD本质上与单播DNS区域.local不兼容。我们强烈建议不要在这种网络设置中使用Avahi或nss-mdns。注意:nss-mdns通常不与Avahi捆绑在一起,并且需要单独下载和安装。(avahi.org) 症状很简单-大约2-4天的正常运行时间后,网络连接将断开,并将对此进行记录 Mar 17 18:33:27 15 avahi-daemon[1014]: Withdrawing address record for 192.168.1.200 on enp3s0. Mar 17 18:33:27 15 avahi-daemon[1014]: Leaving mDNS multicast group on interface enp3s0.IPv4 with address 192.168.1.200. Mar 17 18:33:27 15 avahi-daemon[1014]: Interface enp3s0.IPv4 no longer relevant for mDNS. …
12 linux  dns  avahi 

10
使用Shell脚本从字符串中删除所有重复的单词
我有一个像 "aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc" 我想从字符串中删除重复的单词,然后输出将像 "aaa,bbb,ccc" 我尝试过此代码源 $ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs 使用相同的值可以正常工作,但是当我提供变量值时,它也会显示所有重复的单词。 如何删除重复的值。 更新 我的问题是如果用户相同,则将所有对应的值添加到单个字符串中。我有这样的数据-> user name | colour AAA | red AAA | black BBB | red BBB | blue AAA | blue AAA | red CCC | …

4
是否可以通过Shell脚本修改yml文件?
这就是我的docker-compose.yml的样子。 nginx: container_name: 'nginx' image: 'nginx:1.11' restart: 'always' ports: - '80:80' - '443:443' volumes: - '/opt/nginx/conf.d:/etc/nginx/conf.d:ro' links: - 'anything' 现在,我需要通过shell脚本(在ubuntu服务器上)添加一些内容。我不太确定是否有可能: 将新元素添加到nginx/links(如果不存在) newthing如果不存在newthing-block,则附加块 新内容应如下所示: nginx: container_name: 'nginx' image: 'nginx:1.11' restart: 'always' ports: - '80:80' - '443:443' volumes: - '/opt/nginx/conf.d:/etc/nginx/conf.d:ro' - '/etc/letsencrypt:/etc/letsencrypt' links: - 'anything' - 'newthing' newthing: container_name: foo image: 'newthing:1.2.3' …

1
如何更改密码密码(密码管理器)
我更改了我的gpg密钥的密码。但是,之前我已经使用相同的gpg密钥通过pass建立了密码存储。 现在,无论何时查询密码,我仍然会被要求输入旧的gpg密码。其他应用程序需要新的密码短语。 如何更改通行密码?我是否必须再次运行“ init”?

7
如何在Bash中通过不同的代码点打印ASCII字符?
在ASCII表中,存在'J'字符,该字符在不同的数字系统中具有代码点: Oct Dec Hex Char 112 74 4A J 可以通过打印printf '\112'或通过八进制代码点打印此字符 echo $'\112'。如何通过十进制和十六进制代码点表示形式打印相同的字符?
12 bash  shell  ascii 

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.