Unix & Linux

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

4
如何使用`find`进行广度优先搜索?
的-depth伯〜find导致它执行深度优先搜索。 但是,默认序列不是广度优先搜索。 默认序列可以非正式地描述为“深度优先遍历,它在第一次遇到节点时进行处理,而不是在回溯过程中进行处理。” 我实际需要广度优先搜索。如何使find这种行为? 为了说明,请使用以下设置: $ mkdir -p alpha/{bravo,charlie,delta} $ touch alpha/charlie/{alpha,beta,gamma,phi} find 具有以下默认行为: $ find alpha alpha alpha/charlie alpha/charlie/alpha alpha/charlie/phi alpha/charlie/beta alpha/charlie/gamma alpha/delta alpha/bravo 并使用-depth,它的执行如下: $ find alpha -depth alpha/charlie/alpha alpha/charlie/phi alpha/charlie/beta alpha/charlie/gamma alpha/charlie alpha/delta alpha/bravo alpha 但是,我想要以下(虚拟)选项: $ find alpha -bfs alpha alpha/charlie alpha/delta alpha/bravo alpha/charlie/alpha alpha/charlie/phi alpha/charlie/beta …
17 find 

5
如何更改当前登录用户的主目录
我目前已登录到CentOS服务器,我想将主目录从更改/home/myuserName/为/var/www/html/ 我尝试了以下命令: > sudo usermod -d /var/www/html myuserName 但这给我一个错误: usermod: user myUserName is currently logged in
17 linux  centos  users  home 




3
将jq输出设置为Bash变量
我正在使用curl从这样的rest api获取JSON: content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc) echo "${content}"| jq -r '.data.value' 产生我需要的价值。然而; 当我将上面的代码更改为如下所示时: content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc) username=$(echo "${content}"| jq -r '.data.value') echo $username 什么都不产生。如何更改此设置,以便为用户名变量分配输出?
17 bash  curl  json  jq 

2
使用命令行在eth0上使用dhcp
我试图eth0通过命令行将接口设置为使用dhcp获取ipv4地址。我可以使用手动更改IP地址 sudo ifconfig eth0 x.x.x.x netmask x.x.x.x 是否有类似的命令可用于设置eth0使用dhcp获取地址?我尝试输入: sudo dhclient eth0 但是,当我键入此IP地址不会更改。该 /etc/network/interfaces文件设置为 iface eth0 inet manual 然后我将其更改为: auto eth0 iface eth0 inet dhcp 但是,eth0即使重新启动系统,这也不会更改IP地址。
17 ip  dhcp 

3
通过xargs传递多个参数
我希望能够用于xargs在命令的不同部分执行多个参数。 例如,以下内容: echo {1..8} | xargs -n2 | xargs -I v1 -I v2 echo the number v1 comes before v2 我希望它会回来 the number 1 comes before 2 the number 3 comes before 4 ...等等 这可以实现吗?我怀疑我对的多次使用-I是不正确的。
17 xargs 

1
后台的SSH隧道
我有一个期望ssh隧道连接正确执行的进程,并且我一直在使用以下命令: ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -N & 我已经成功运行了8个月,最近我们的托管服务提供商不得不进行硬件更改以更新我们的计算机,并使用适用于Ubuntu的新内核升级了我们的计算机。它从4.8.3-x86_64-linode76变为4.8.6-x86_64-linode78。 经过一堆麻烦的解决之后,我们不得不将命令更新为: ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -fN 研究ssh文档时,-f参数 要求ssh在执行命令之前进入后台。如果ssh要求输入密码或口令,但用户希望在后台输入密码或口令,则此功能很有用。这意味着-n。建议在远程站点上启动X11程序的方法是使用ssh -f host xterm之类的方法。 研究“&”的bash命令时 将进程置于后台(请参见“ UNIX操作系统的中间使用”中的多任务)。 这两个命令在根本上有什么区别吗?

3
使用dd创建随机数据并获得“部分读取警告”。警告之后的数据现在真的是随机的吗?
我使用创建一个包含随机数据的1TB文件dd if=/dev/urandom of=file bs=1M count=1000000。现在,我检查kill -SIGUSR1 <PID>进度并获得以下信息: 691581+0 Datensätze ein 691580+0 Datensätze aus 725174190080 Bytes (725 GB) kopiert, 86256,9 s, 8,4 MB/s 800950+1 Datensätze ein 800950+0 Datensätze aus 839856947200 Bytes (840 GB) kopiert, 99429,5 s, 8,4 MB/s dd: warning: partial read (809620 bytes); suggest iflag=fullblock 803432+1 Datensätze ein 803431+1 Datensätze …
16 dd  random 

2
Alt-Left跳过单词在终端仿真器中不起作用
在上一份工作的Debian Wheezy机器上,我习惯了Alt + Left和Alt + Right来在活动命令行中的单词之间跳跃(以bash表示)。 但是,由于在家里,我已经升级到Jessie(Debian 8.0,测试分支),因此不再起作用:Alt-Left不会跳到上一个单词,而是打印类似D或的内容[D。OTOH,如果我打开ssh并连接到无头的Debian Wheezy,它的确运行良好。 此外,我刚刚在新工作中安装了Fedora 20,这里的行为是相同的。这适用于bash,csh和ksh(在下开始env -i),以及rxvt-unicode和xfce4-terminal,因此它必须在这些级别之外。 我应该在堆栈中的其他地方找到区别吗?

2
如何在Oracle Virtualbox中设置GParted视频模式?
我正在尝试在Oracle Virtualbox 4.2.6 r82870(已安装扩展包)中引导GParted live 0.14.1-6。 主机操作系统是Windows 7,物理图形卡是AMD Radeon HD6900。物理CPU是AMD Phenom II X6 1100T。 为了在Virtualbox中使用以下设置测试最新的ArchLinux版本,我创建了一个VM : 1024 MB RAM 8 GB磁盘(VDI) 启用EFI 显存:128 MB 显示器数量:1 我选择了具有“添加虚拟CD / DVD磁盘文件”功能(附加到虚拟IDE控制器)的GParted iso(gparted-live-0.14.1-6-amd64.iso)。 Gparted live CD / iso引导正确,我在GRUB菜单(GRUB 1.99-23.1)中选择了默认选项“ GParted live default settings”,设置了键盘布局和首选语言。关于视频模式选择,我尝试了以下所有选项: 继续启动X以自动使用GParted 运行“强制视频”以手动配置X:我尝试使用默认的vesa驱动程序和ATI(24位色深)使用1024x768和800x600分辨率的此选项。 所有这些选择都会导致相同的错误,此时GParted陷入困境: Fatal server error: no screens found server terminated …

2
是否像在Emacs中一样在Bash中复制并设置标记?
我希望能够复制并粘贴到使用相同的键盘绑定中的Bash命令行的文本Emacs的默认情况下使用(即使用C-space了set-mark,M-w复制文本,C-y,M-y将其粘贴等)。 在GNU Bash的文件说,猛砸附带了一些默认设置了这些键绑定。 例如,C-y默认情况下,yanking()在我的终端上有效。但是,我无法使用set-mark和copy命令,并且默认情况下它们似乎未绑定到任何键。 通常,用户可以定义自己的键绑定的方法是将其添加到中.inputrc。因此,我查看并在文档中找到了以下bash函数,这些函数可以帮助我定义所需的类似于Emacs的行为(即set-markwith C-space和copywith M-w)。 copy-region-as-kill () 将区域中的文本复制到终止缓冲区,以便立即将其取消。默认情况下,此命令是未绑定的。 和 set-mark (C-@) 将标记设置到该点。如果提供了数字参数,则将标记设置到该位置。 如果我理解正确,则上面的意思copy-region-as-kill是默认情况下未绑定到任何键盘序列,而默认情况下set-mark已绑定C-@。 我C-@在终端上尝试过,但是我认为它不能运行,set-mark因为在移动光标时没有看到任何突出显示的文本。无论如何,我都尝试将键盘绑定(M-w和C-)添加到函数中copy-region-as-kill以及set-mark上面的函数 中.inputrc,然后使用进行重新加载C-x C-r,但这是行不通的。我知道我的其他条目还在.inputrc工作,因为我在其中定义了其他用户定义的键绑定。 我做错了什么吗?我有什么想念的吗?

10
CentOS 6.3全新安装后无法启用网络
我试图执行全新的CentOS 6.3安装,然后运行各种yum命令,例如yum install httpd。 安装运行正常,但是我无法运行任何基于网络的命令,例如 yum 我知道默认安装已禁用网络连接。我已/etc/sysconfig/network-scripts/ifcfg-eth0按照本指南对文件进行了修改,但仍然收到错误 无法检索镜像列表 http://mirrorlist.centos.org?release=6arch=i1386&repo=os错误为 14:PYCURL错误6-“无法解析主机'mirrorlist.centos.org'” 错误:找不到用于回购的有效基本URL:基本 此后,我已经对该/etc/resolv.conf文件进行了修改,以包括Google的名称服务器8.8.8.8,但这并未改变任何内容。 我已经修改/etc/sysconfig/network了hostname从更改localhost.localdomain为local.igoo.net(一个已组成但完全合格的域?)。 昨天我确实有工作,然后尝试安装WHM / cPanel,一切正常。然后,我决定不需要WHM / cPanel,而不必再安装新的CentOS,现在无法重新创建为使网络正常工作所采取的步骤。当我运行/etc/init.d/network restart错误消息时: 调出接口eth0: 确定eth0的IP信息...失败;没有链接。检查电缆? (未拔下电缆) 我不确定接下来要尝试什么!有人可以建议我错过的内容吗?
16 centos  networking  yum 

2
为什么有些Unicode字符无法打印到我的终端上?
我正在使用Adobe Source Code Pro字体通过简单的终端运行Arch Linux。我的语言环境已正确设置为LANG=en_US.UTF-8。 我想将代表扑克牌的Unicode字符打印到我的终端上。我正在使用Wikipedia作参考。 卡套装的Unicode字符可以正常工作。例如,发行 $ printf "\u2660" 在屏幕上打印黑色的心。 但是,我在使用特定的纸牌时遇到了麻烦。发行 $ printf "\u1F0A1" 打印符号Ἂ1而不是黑桃🂡。怎么了 这个问题在多个终端(urxvt,xterm,白蚁)和我尝试过的每种字体(DejaVu,Inconsolata)上仍然存在。
16 bash  fonts  unicode  printf 

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.