Unix & Linux

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

2
设置-u用法未按预期工作
我正在学习如何set在脚本中有效使用不同的选项,并且发现set -u如果变量未正确设置(例如删​​除用户),退出脚本似乎是完美的选择。根据手册页,set -u并set -e执行以下操作... -e Exit immediately if a command exits with a non-zero status. -u Treat unset variables as an error when substituting. 我创建了一个测试脚本来测试此功能,但似乎无法正常工作。也许有人可以更好地向我解释我的问题,而我在哪里曲解?测试脚本如下。谢谢。 set -e set -u testing="This works" echo $? echo ${testing} testing2= echo $? echo ${testing2} testing3="This should not appear" echo $? echo ${testing3} 我希望脚本显示0和“ This …


1
我可以通过交互方式从Dockerfile构建Docker容器并分配一些伪TTY吗?
我从Dockerfile下面构建容器: FROM ubuntu:14.04 ... RUN apt-get update && apt-get install -y vim #RUN ssh-keygen -f /root/.ssh/id_rsa -N strongpass123$%^ RUN ssh-keygen -f /root/.ssh/id_rsa ... 我很少这样做,但是在使用前后都有很多命令ssh-keygen。 我知道我可以从脚本开始docker exec -it thirsty_darwin sh script.sh,然后标记图像,然后使用容器(图像)链接,但这并不是我想要的清晰解决方案。 更糟糕的情况是ssh-add ~/.ssh/id_rsa我必须使用Expect工具。Expect工具已经硬编码了我的密码。我不想做。

2
sink和source关键字在Pulseaudio中是什么意思?
我正在阅读有关pulseaudio的信息,它是如何工作的以及如何配置它。我经常遇到两个关键字:SINK,SOURCE。 起初我以为SINK表示OUTPUT,而SOURCE表示INPUT,但事实并非如此。 有人可以用简单的英语解释一下SINK和SOURCE的意思吗?
12 pulseaudio 

2
如何获得各个发行版之间可移植的可用内存量?
报告内存的标准文件/工具在不同的Linux发行版上似乎具有不同的格式。例如,在Arch和Ubuntu上。 拱 $ free total used free shared buff/cache available Mem: 8169312 3870392 2648348 97884 1650572 4110336 Swap: 16777212 389588 16387624 $ head /proc/meminfo MemTotal: 8169312 kB MemFree: 2625668 kB MemAvailable: 4088520 kB Buffers: 239688 kB Cached: 1224520 kB SwapCached: 17452 kB Active: 4074548 kB Inactive: 1035716 kB Active(anon): 3247948 …
12 linux  memory  meminfo 

2
从命令行每张打印两页
假设我从一个有12页的PDF文档开始,并仔细查看。要生成另一张6页的PDF(每面两页),通常使用^ P对话窗口中列出的“打印到文件”设备。这工作得很整齐。 我想将此操作转换为命令行。 据我了解,这不是pdftk可以执行的操作。请交叉检查。 该命令lp将接受该选项-o number-up=2,但不会识别称为“打印到文件”的任何设备,该设备实际上不会显示在中lpstat -p -d。 我知道该帖子是“打印到文件”,可以在命令行中使用它吗?。我安装了cups-pdf,从而确认了名为PDF的新打印机。但是,简单文本文件的打印质量太原始了(例如,开始时没有打印边距)。此外,如果我在此设备上重新打印现有的PDF文件,例如lp -p PDF existing.pdf,即使无法成功打开该复制的输出,但“打印到文件”方式不是这种情况。 我看了看man evince。在底部,它涉及一些打印预览选项,并重定向到GNOME-developer项目页面。诚然,我无法理解和使用它。 实际上,有没有一种方法可以将命令行的灵活性与我从GUI界面的“打印到文件”选项中获得的打印质量相结合? 同样,我的测试用例是从命令行以每页打印两页的原始文档中创建PDF。 感谢您的配合。
12 pdf  cups  evince  pdftk  lp 

3
为什么涉及AltGr的xmodmap绑定仅在某些键上起作用?
我想重新映射我的AltGR + Right_Windows,但是我不知道怎么做。不管我尝试什么,无论是否按右alt,按右Windows键都会发出名称keyym。 这些是我现在正在测试的xmodmap文件的内容。在我的键盘上,38是“ a”的键代码,48是竖线/双引号的键代码,134是右Windows键的键代码。 keycode 38 = 1 2 3 4 5 6 7 8 keycode 48 = 1 2 3 4 5 6 7 8 keycode 134 = 1 2 3 4 5 6 7 8 当我按Right_Alt +撇号时,它输出5,但是Right_Alt + a和Right_Alt + Right_Windows给出1(这两种情况都在按下right alt时出现,而在没有按下alt时),这不是我想要的。 我当前的键盘布局是us(alt-intl),正确的alt显然已设置为AltGr / Iso_Level3_Shift。的输出xmodmap -pm如下: xmodmap: …
12 xmodmap 

1
在KVM VM中配置公共IP地址
我有一台运行CentOS 6.5的物理服务器,其中一个接口连接到Internet(具有一个公共IP地址)。在该服务器内部,我有两个通过libvirt用KVM创建的VM,每个都有一个接口。我想为每个VM分配一个公用IP地址,然后继续使用与物理服务器的连接。 这张图片以黑色显示了我想要的东西,以蓝色显示了我想要的东西 。 我尝试了各种方法,例如添加Linux桥接器brctl并附加服务器物理接口和两个VM虚拟接口,但是它不起作用,并且我失去了与物理服务器的连接。 我愿意使用Linux桥接器或libvirt网络。 如何在虚拟机和物理服务器中获取公共IP地址?
12 kvm  bridge  libvirt 


1
“ wait&”(“ wait&”符号)是有用的(流行的)shell / shell脚本惯用法或技巧吗?
我已经“继承”了运行GNU“ bash” shell的Linux机器的一些shell脚本。在一种特定情况下,机器运行GNU bash版本2.0.5b 这些脚本之一有一个wait &(“&”符号)作为for循环“ for行”的一部分。乍一看,这似乎是一种好奇/有趣的习惯用法,但是我在网上搜索时并未返回任何相关信息。man wait显示了“ BASH_BUILTINS”(“ BASH BUILTINS COMMAND”)联机帮助页,该联机帮助具有以下描述: wait [n] Wait for the specified process and return its termination status. n may be a process ID or a job spec­ification; if a job spec is given, all processes in that job's pipeline are waited for. If …

1
输入选项的完整列表
我想隐藏光标,并且知道tput命令。我确实搜索了其手册页。在搜索互联网时,我发现 $ tput civis # to hide the cursor $ tput cnorm # to bring back the cursor 这些可以完美地工作,但是手册页中没有提到这些选项。 他们在哪里正式记录?


1
为什么使用内核模式设置,而不是特权分离?
刚开始使用Linux时,内核模式设置有些痛苦,但是现在有了它真是太棒了。我的意思是,X是否不需要以root身份运行?高分辨率硬件加速控制台?酷的东西。 问题是,许多UNIX平台都没有任何形式的模式设置内核驱动程序。因此,依赖KMS的硬件现在大多限于Linux。 我的问题:为什么实际上在内核中实现呢? 如果需要硬件访问来设置屏幕分辨率,为什么不使用单独的特权守护程序或小的setuid二进制文件?这样可以保持分离特权代码并让显示服务器以受限用户身份运行的优势。同时摆脱了特殊的驱动程序要求,并使跨UNIX支持更加容易。对?还是我在这里错过了重要的事情?
12 kernel  xorg  drivers 

2
如何仅显示不匹配过滤器的进程?
我htop用来交互式地监视我的过程。 但是,有时某些进程会“阻碍”运行,我想将它们过滤掉。 不幸的是,似乎htop的内置过滤器(例如F4)仅允许我定义一个正过滤器(仅显示匹配项),而不是负过滤器(除匹配项之外的所有示例)。 最后,我还没有找到有关搜索字符串实际语法的任何文档(正则表达式似乎无效)。
12 filter  htop 

3
在bash上使用户键入的密码成为程序的stdin的最安全和最简单的方法是什么?
我正在寻找(1)最安全和(2)最简单的方法,让用户在bash shell提示符下键入密码,并使该密码成为程序stdin的一部分。 这是stdin需要的样子:{"username":"myname","password":"<my-password>"},在<my-password>shell提示中键入的内容在哪里。如果我可以控制stdin程序,则可以对其进行修改以安全地提示输入密码并将其放置到位,但是下游命令是标准的通用命令。 我已经考虑并拒绝了使用以下方法: 用户在命令行中输入密码的密码:该密码将显示在屏幕上,并且也将通过“ ps”显示给所有用户 shell变量插值到外部程序的参数中(例如...$PASSWORD...):通过“ ps”,所有用户仍然可以看到密码 环境变量(如果它们留在环境中):密码对所有子进程都是可见的;如果可信赖的进程在诊断中转储核心或转储环境变量,它们甚至可能会暴露密码。 密码在文件中放置的时间过长,甚至是权限很严格的文件:用户可能会意外泄露密码,而root用户可能会意外看到密码 我在下面将我当前的解决方案作为答案,但是如果有人提出一个答案,我会很乐意选择一个更好的答案。我认为应该有一些简单的方法,或者可能有人看到我错过的安全问题。
12 bash  security  password  curl 

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.