Unix & Linux

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

1
git-upload-pack无限期挂起
我有以下通话结构: 詹金斯奔跑fab -Huser@host set_repository_commit_hash:123abc。 set_repository_commit_hashgit fetch与运行pty = False。 子进程ssh git@github.com git-upload-pack 'user/repository.git'永远不会完成。 我尝试git fetch在本地克隆中运行,但成功了,但是运行ssh git@github.com git-upload-pack 'user/repository.git'只会返回以下内容并挂起: 00ab84249d3bb20930c185c08848c60b71f7b28990d6 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed agent=git/1.8.4 0041cb34b1c8ca75d478df38c794fc15c5f01cc6377e refs/heads/branch_name 004012577068adf47015001bfa0cff9386d6cdf497ce refs/heads/[...] 003f84249d3bb20930c185c08848c60b71f7b28990d6 refs/heads/master [a couple more lines like the ones above, then:] 0000 这是已知的SSH / Git / Fabric / …
30 ssh  git  jenkins 

5
如何在Gnome 3中的显示之间移动窗口?
在Gnome 3中,使用键盘快捷键Meta+ ←和Meta+ 移动窗口→会很方便。 现在,我已经安装了两个显示器,并且想在不触摸鼠标的情况下跨显示器移动窗口。更准确地说,我想看看Windows 7中的默认行为是什么,即四个位置,第一屏幕的左半部分,第一屏幕的右半部分,第二屏幕的左半部分,第二屏幕的右半部分。 还需要涉及一系列多个快捷方式的任何解决方案。 请注意,我仅使用一个桌面,但使用多个显示器。

11
仅打印字符串的后3个字符的命令
我知道该cut命令可以打印n字符串的第一个字符,但是如何选择最后一个n字符? 如果我的字符串中的字符数可变,那么如何仅显示字符串的后三个字符。例如。 所需的“无限”输出为“ ted” 所需的“ 987654”输出为“ 654” 所需的“ 123456789”输出为“ 789”


4
如何在Linux上连接数据并将数据发送到蓝牙串行端口?
我正在尝试通过Linux上的USB蓝牙适配器设置虚拟串行端口,并通过Android设备向其发送消息。我在内核3.6上。我能够使用gnome-bluetooth与设备成功配对,并且还可以向其发送文件。 要设置串行端口,我首先将带有SP配置文件的通道添加到适配器: sdptool add --channel=22 SP 然后我用rfcomm叫“听”: rfcomm listen /dev/rfcomm0 22 哪个阻止 Waiting for connection on channel 22 显然,rfcomm将在成功连接后创建/ dev / rfcomm0。一旦发生这种情况,我想使用cutecom之类的东西来回发送消息到所连接的设备。 在我的Android设备上,我打开了一个蓝牙SPP终端(那里有几个,我尝试了几个不同的终端)并尝试连接。他们都失败了。 鉴于我可以成功配对并发送文件而没有任何问题,所以我知道蓝牙配对和通信可以正常工作。 我不太确定我还能尝试什么。我在本地设备和Android设备上使用了“ sdptool浏览”功能,以确保没有任何RFCOMM频道冲突。
30 bluetooth 

3
不使用@file将二进制数据传递给curl
是否可以使用curl和发布二进制数据而不传递文件名?例如,您可以通过--data-binary使用二进制文件发布表单: curl -X POST --data-binary @myfile.bin http://foo.com 但是,这需要文件存在。我希望能够将curl的文本记录为HTTP调用(例如,休息服务),以重现请求。(例如,这大大有助于调试这些服务) 但是,记录引用文件的curl命令将没有用,所以我希望我实际上可以记录原始的二进制数据(大概是base64编码),但仍然允许您复制并粘贴记录的curl命令并执行它。 那么,有可能使用curl并发布二进制数据而不引用文件吗?如果是这样,那将如何工作?一个例子看起来像什么?
30 curl  binary 

3
五彩的Grep
我正在尝试让每个grep命令以不同的颜色突出显示它的结果。我可以用这样的一行手动进行操作: ls -l GREP_COLORS='mt=01;32' grep c | GREP_COLORS='mt=01;31' grep o | GREP_COLORS='mt=01;34' grep n | GREP_COLORS='mt=01;36' grep f 每个c字符将以绿色突出显示,每个o字符将以红色突出显示,等等。 为了使该示例正常工作,您需要确保始终使用 --color=alwaysgrep命令。我已经在我的.bashrc grep中设置了它,所以它将始终具有颜色: export GREP_OPTIONS='--color=always' 我要完成的工作是用别名包装此功能,这样我每次grep都可以调用并具有不同的GREP_COLORS值。我了解为每个新的管道grep考虑多个外壳的问题,并且我试图通过创建一些文件(每种颜色一个)来解决这个问题,以表明它们已被使用。 我做了一些尝试,但奇怪的是,这似乎是“最好的”方法。我在我的.bashrc: alias mg="mygrep" mygrep(){ # define possible colors COLORS=("01;32" "01;31" "01;34" "01;36") COUNTER=0 NUM=0 # as long as the color has already been used, keep …
30 bash  shell  grep  pipe  bashrc 

5
自Unix时代以来如何获得毫秒数?
我想做一个bash脚本,用于测量浏览器的启动时间,因为我正在使用html,它使用JavaScript获取了以毫秒为单位的时间戳加载时间。 在调用浏览器之前,在shell脚本中,我得到了时间戳: date +%s 问题在于它以秒为单位获取时间戳,我需要以毫秒为单位,因为有时第二次运行时浏览器在不到一秒的时间内启动,因此我需要能够使用毫秒而不是秒来精确地测量该时间。 如何从bash脚本获取以毫秒为单位的时间戳?
30 bash  timestamps 

8
如何有效地在bash中生成大的,均匀分布的随机整数?
我一直想知道什么是在bash中获得良好随机性的最佳方法,即,什么程序可以获取MIN和之间的随机正整数,MAX从而 该范围可以任意大(或至少,例如,高达2 32 -1); 值是均匀分布的(即无偏差); 这是有效的。 获得bash随机性的有效方法是使用$RANDOM变量。但是,这仅采样0到2 15 -1 之间的值,该值可能不足以用于所有目的。人们通常会使用模数使其达到他们想要的范围,例如, MIN=0 MAX=12345 rnd=$(( $RANDOM % ($MAX + 1 - $MIN) + $MIN )) 另外,这会产生偏差,除非$MAX碰巧将2 15 -1 = 32767相除。例如,如果$MIN为0且$MAX为9,则值0到7比值8和9更有可能,因为$RANDOM永远不会是32768或32769。随着范围的增加,此偏差会变得更糟,例如,如果$MIN为0且$MAX为9999,然后通过2767数字0具有的概率4 / 32767,而数字2768到9999只的概率3 / 32767。 因此,尽管上述方法满足条件3,但不满足条件1和2。 到目前为止,我想满足条件1和2的最佳方法是使用/dev/urandom以下方法: MIN=0 MAX=1234567890 while rnd=$(cat /dev/urandom | tr -dc 0-9 | fold -w${#MAX} | head -1 | …

1
SSH导致while循环停止
我终于设法解决了我几个星期一直在努力的问题。我使用带有“授权密钥”的SSH来远程运行命令。一切都很好,除非我在while循环中这样做。使用ssh命令完成任何迭代后,循环终止。 很长时间以来,我认为这是某种ksh怪异的现象,但现在我发现bash的确具有相同的表现。 一个小示例程序来重现该问题。这是从一个较大的实现中提取的,该实现拍摄快照并在群集中的节点之间复制快照。 #!/bin/bash set -x IDTAG=".*zone" MARKER="mark-$(date +%Y.%m.%d.%H.%M.%S)" REMOTE_HOST=sol10-target ZFSPARENT=rpool ssh $REMOTE_HOST zfs list -t filesystem -rHo name,mounted $ZFSPARENT | grep "/$IDTAG " > /tmp/actionlist #for RMT_FILESYSTEM in $(cat /tmp/actionlist) cat /tmp/actionlist | while read RMT_FILESYSTEM ISMOUNTED do echo ${RMT_FILESYSTEM}@${MARKER} [ "$ISMOUNTED" = "yes" ] && ssh $REMOTE_HOST zfs …

2
/etc/rc.local和/etc/init.d/rc.local有什么区别?
我想在iptables我的新规则中添加一条永久性规则VPS,在经过简短的Google搜索后,我很惊讶可以在该规则中添加两个地方,这似乎是相同的:/etc/rc.local和/etc/init.d/rc.local。也许有人知道为什么在两个位置放置简单的启动代码?它是特定于Linux的风味(但ubuntu兼有!)吗?还是其中之一被弃用?


4
是否有JavaScript Shell?
最近,我一直在与JS合作,并对这种语言非常热情。我知道有在服务器端运行JS的node.js,但是是否有使用JS作为脚本语言的shell?如果存在这种情况,它的可用性和稳定性如何?

5
如何减小LVM中的卷组大小?
[root@localhost ~] vgdisplay --- Volume group --- VG Name vg_root System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 297,59 GiB PE …

1
为什么Linux不使用IANA临时端口范围?
根据维基百科 Internet分配号码授权机构(IANA)建议将动态端口或专用端口的范围设置为49152至65535。许多Linux内核使用的端口范围是32768至61000。 尽管IANA的建议范围似乎存在历史偏差,但Windows Vista,Windows 7,Windows Server 2008,FreeBSD 4.6+以及许多其他人都已经同意该范围,这似乎很尴尬,但是Linux仍然脱颖而出。 看着它,瞧瞧: $ cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000 为什么Linux没有采用标准范围?
30 linux  ip  tcp 

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.