Unix & Linux

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

2
KVM中的无线桥接网络。为什么这么复杂?
我使用VirtualBox(有时甚至是VMWare)已经有很多年了,无论物理网络是否连接,虚拟网络适配器都没有任何问题。 我前段时间也通过有线设置在KVM上玩过,尽管我必须编辑一些配置文件才能使其正常工作,但我也可以创建桥接适配器,而不会出现任何重大问题。 今天,我决定(似乎是错误的)尝试在运行Ubuntu 13.10的笔记本电脑中使用KVM,并尝试通过无线接口通过桥接网络创建虚拟机。设置它非常痛苦。 在完成我发现的所有教程之后(例如),不得不多次重启笔记本电脑以恢复连接后,我放弃了,回到了以前的知名VirtualBox。 而且,实际上,当我查看正式的KVM文档时,我注意到的第一件事是,他们不鼓励尝试桥接无线适配器,因为据他们说: 此处显示的方法不适用于大多数(所有?)无线驱动程序,因为它们不支持桥接。 所以,我的问题是: 他们怎么说大多数无线适配器不支持桥接,如果它在VirtualBox和VMWare中可以“开箱即用”地工作? 这些虚拟机管理程序之间的区别是什么,如果它可以工作的话,它在KVM中是如此复杂?

3
如何删除字符串中的特定字符,但前提是在Linux中该行中没有数字时
我已经为这个看似简单的问题感到困惑。 这是我需要编辑的文件的示例输出: $cat file George Washington Geneva Convention 123,281,029 USD 342,019,929 EUR 我需要删除“乔治华盛顿”和“日内瓦公约”之间的空格,而不是“ 123,281,029 USD”或“ 342,019,929 EUR”之间的空格。 本质上,我的目标是仅在一行中没有数字的情况下才删除一行中单词之间的空格。 我试图通过编辑文件grep -v [0-9] $file | sed 's/ //',但是唯一可行的方法是输出到另一个文件,但这意味着从旧文件到新文件都排除了所有带数字的行,这不是我所需要的。 我已经用grep尝试了一些非常荒谬的循环,sed但是似乎没有什么能正常工作。 同样,这是文件的示例输出: $cat file George Washington Geneva Convention 123,281,029 USD 342,019,929 EUR 这是我想要的输出: $cat file GeorgeWashington GenevaConvention 123,281,029 USD 342,019,929 EUR
8 centos  sed  string  replace 

4
虚拟只写文件系统,用于将文件存储在归档中
我有一个令人尴尬的并行过程,该过程会创建大量几乎(但不是完全)相同的文件。有没有一种方法可以“即时”归档文件,以使数据不会消耗比所需更多的空间? 该进程本身接受命令行参数,并将创建的每个文件的名称打印到stdout。我正在调用它,parallel --gnu它负责分配输入(来自另一个进程)并收集输出: arg_generating_process | parallel --gnu my_process | magic_otf_compressor 管道第一部分的简单示例bash: for ((f = 0; $f < 100000; f++)); do touch $f; echo $f; done 怎么能magic_otf_compressor是什么样子?应该将每个输入行都视为文件名,然后将每个文件复制到压缩.tar存档中(已处理所有文件的存档!),然后将其删除。(实际上,打印每个已处理文件的名称就足够了,另一个| parallel --gnu rm可以负责删除文件。) 有没有这样的工具?我不考虑单独压缩每个文件,这会浪费太多空间。我调查了archivemount(将文件系统保留在内存中->不可能,我的文件太大和太多)和avfs(无法使其与FUSE一起使用)。我错过了什么? 我距离自己入侵这样的工具仅一步之遥,但必须有人做过…… 编辑:从本质上讲,我认为我正在寻找一个stdin前端libtar(而不是从命令行tar读取参数的命令行前端)。


3
陷阱:不能以su为根,不能将组更改为wheel,禁止以ssh作为根
这是陷阱吗?我在FreeBSD 10中做了以下步骤: 1)禁止以root身份使用ssh 2)以用户身份登录 3)su作为根 4)以root chsh将用户“ user”的名称更改为“ luser” 5)从根目录退出 从这一刻起,我无法阻止root用户,因为luser不在wheel组中,并且我不能在/ etc / group中更改组,因为我没有这样做的特权。 以root身份登录该怎么办?

2
Fedora 20中的Lenovo T440s指纹读取器
我刚刚获得了新的Lenovo T440,并安装了带有Gnome 3的Fedora 20。除指纹读取器外,其他所有设备均运行平稳。它有一个Validity VFS5011(138a:0017)设备,该设备尚未得到官方的支持libfprint,但是有实验性的支持。 我libfprint从源代码安装了此版本,还构建了标准的fprintd和pam_fprint。现在,在Gnome设置的“用户”部分,我可以选择启用指纹登录。我注册了指纹并获得“您的指纹已成功保存。您现在应该可以使用指纹读取器登录”。信息。但是,我不是。登录屏幕照常提示我输入密码。指纹读取器上的LED指示灯不闪烁。 在终端中,我可以使用来检查我的指纹,fprintd-verify并且它可以工作。通过fprintd-enroll也注册手指,并且看起来与从系统设置进行实际注册相同。 更新资料 从pam.d文件中,两个已经包含pam_fprintd.so,一个是fingerprint-auth,另一个是system-auth: #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_fprintd.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so account required …

1
-bash:phpize:在Centos 6上找不到命令
当我尝试跑步时,phpize我得到 -bash: phpize: command not found 我已经跑步,yum -y install php-devel但是返回: Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.softaculous.com * extras: centos.schlundtech.de * rpmforge: mirror1.hs-esslingen.de * updates: ftp.plusline.de Setting up Install Process No package php-devel available. Error: Nothing to do 我怎样才能解决这个问题?
8 php  centos 

2
对两个完全独立的事物进行grep并将值分配给独立变量的最有效方法是什么?
CentOS 6.x版 我想将curl,grep的输出用于两个完全独立的字符串,并将它们各自的值分配为变量。什么是最有效的方法(不将输出写入磁盘)? 通常,我会考虑使用类似以下内容的脚本: #!/usr/bin/env bash foo1=$(curl https://domain.com/file.xml | grep string1) foo2=$(curl https://domain.com/file.xml | grep string2) 但这最终要花两遍,而且效率极低。有没有更好的办法?希望解决方案涉及更少的通行证吗?

5
匹配模式时如何在行尾添加文本?
输入: line1 with the PATTERN that contains ( ) line2 with the PATTERN that contains ( ) lineN with the PATTERN that contains ( ) 输出: line1 with the PATTERN that contains ( ) ; line2 with the PATTERN that contains ( ) ; ... lineN with the PATTERN that …

3
为什么pidof和pgrep的行为有所不同?
我有一个初始化脚本,/etc/init.d/myservice用于初始化这样的服务: ... start() { ... daemon /usr/sbin/myservice ... } stop() { ... pgrep myservice pidof myservice ps -ef | grep myservice ... } 当我尝试停止该服务时,这是输出: 10000 10001 10000 root 10000 1 0 09:52 ? 00:00:02 /usr/sbin/myservice root 9791 9788 0 10:06 pts/1 00:00:00 /bin/sh /sbin/service myservice stop root 10001 9791 1 …

7
如何使用`sed`匹配确切的字符串?但不是它的一部分。
我有一个输入文件FILE1.TXT如下。 11 id1 12 13 AGE = 20 14 NAME = NAME1 15 16 id2 17 18 AGE = 30 19 NAME = NAME2 . . . 110 idXYZ 111 112 AGE = AGEXYZ 113 NAME = NAMEXYZ 114 115 idZZZ 116 我想搜索属于特定ID的所有字段并获取NAME的值 我设法遍历每个Id,并根据需要为每个Id形成了以下命令。 sed -n '/11/,/14/p' FILE1.TXT | grep …
8 sed  string  patterns 


4
正则表达式匹配“ locate”
我正在尝试使用locate命令在主文件夹中查找文件,但是,每当尝试运行此文件时,都不会得到任何结果: locate -i -l 4 --regexp '^\/home\/jack\/[A-Za-z0-9\/\ ]*(My.)*$' 我也尝试过,^\/home\/jack\/^(?!\.)[A-Za-z0-9\/\ ]*(My.)*$但是也不会返回任何结果。 我要测试的文件是 /home/jack/Music/Foals/My Number.flac 我想从搜索中排除隐藏文件的结果。

1
防止Nix将git升级到git-full
我在Ubuntu上使用Nix来拥有某些软件包的更现代版本,其中之一就是git。当我跑步时nix-env -u,会发生以下情况: % nix-env -u --dry-run '*' (dry run; not doing anything) upgrading `git-1.8.5.4' to `git-1.9.0-full' 这不是我想要的-与普通版本相比git-1.9.0,我更喜欢普通-full版本。我知道我可以使用手动升级到普通版本nix-env -i git-1.9.0,但是有什么方法nix-env -u可以做我想要的?

2
如何在基于Debian的发行版中用systemd替换sysvinit?
我在Debian安装中使用systemd已有一段时间了,只是为了使其成为可能,我必须在/etc/default/grub文件中添加启动参数以使其起作用,该参数已添加到Ubuntu启动参数中。Ubuntu尚未安装systemd,因此我必须将其删除,否则引导可能会失败。因此,我正在寻找一种用systemd替换sysvinit并删除boot参数的方法,我该怎么做?

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.