Unix & Linux

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

2
突出显示当前鼠标位置
我正在运行双屏设置,并且大多数时候都禁用触控板(包括隐藏鼠标指针)。重新启用触控板(并再次显示鼠标指针)时,我已经失去了指针之前所在的位置的信息。 我正在寻找一种突出显示当前鼠标位置的工具(例如,用圆圈)。理想情况下,这将是单个命令在短时间内使圆圈闪烁。 我知道xdotool可以找到当前位置,但是没有突出显示;同样,key-mon不提供此功能。我也读过cairo composition manager提供这种功能的文档,但我想知道是否有一个较小的工具可以实现此功能。 如果没有这样的工具:使用提供的数据,最简单的方法是在光标周围显示这样的圆圈 xdotool getmouselocation? 如果这是相关的:我不使用桌面环境,仅使用 xmonad窗口管理器。
18 x11  mouse 

2
双引号内的单引号和Bash参考手册
Bash手册在标题为双引号的第3.1.2.3节中说: 用双引号('“')引起来的字符将保留所有引号内的字符的文字值,但'$','`','\'除外,并且在启用历史记录扩展时,会使用'!'。 目前,我关心的是单引号(')。 在上一节第3.1.2.2节中描述的特殊含义是: 将字符括在单引号(')中可保留引号内每个字符的字面值。即使在单引号前加反斜杠,也不能在单引号之间引起单引号。 结合两个论述, echo "'$a'" 其中a未定义变量(因此$a=空字符串),应$a在屏幕上打印,因为'',如果它在内部具有特殊含义,则可以避免$特殊解释。而是打印''。为什么这样?
18 bash  shell  quoting 

1
透明的SOCKS代理如何知道要使用的目标IP?
我知道有两个SOCKS代理,它们支持任何传出TCP连接的透明代理:Tor和redsocks。与HTTP代理不同,这些SOCKS代理可以透明地代理任何传出TCP连接,包括加密协议和不带元数据或标头的协议。 这两个代理都需要使用NAT来将任何传出的TCP通信重定向到代理的本地端口。例如,如果我TransPort 9040在本地计算机上运行Tor,则需要添加如下iptables规则: iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 9040 据我所知,这将与替换原来的目的地IP和端口127.0.0.1和9040,所以考虑到这是一个加密的数据流(如SSH)或一个无头(如域名注册),请问代理知道原来的目的IP和端口?
18 iptables  proxy  socks  tor 

5
如何修改使用git源仅提取浅克隆的PKGBUILD?
有一天,我尝试安装opencv-git从AUR与makepkg上Arch Linux的。当然,顾名思义,它是从git存储库中提取的。这拉1Gb。我读有关使浅克隆用git。当我使用查看PKGBUILD文件时grep git PKGBUILD,我看到: pkgname="opencv-git" makedepends=('git' 'cmake' 'python2-numpy' 'mesa' 'eigen2') provides=("${pkgname%-git}") conflicts=("${pkgname%-git}") source=("${pkgname%-git}::git+http://github.com/Itseez/opencv.git" cd "${srcdir}/${pkgname%-git}" git describe --long | sed -r 's/([^-]*-g)/r\1/;s/-/./g' cd "${srcdir}/${pkgname%-git}" cd "${srcdir}/${pkgname%-git}" cd "${srcdir}/${pkgname%-git}" install -Dm644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname%-git}/LICENSE" 有没有办法修改配方或makepkg命令以仅提取浅克隆(我想要的是源的最新版本),而没有完整的存储库以节省空间和带宽?阅读man 5 PKGBUILD并不能提供我所需要的见识。还快速浏览了makepkg和pacman 联机帮助页 -似乎找不到解决方法。
18 arch-linux  git 

3
重新排列GPG中的UID
在GPG中,是否可以在PGP密钥的UID列表中向上或向下移动UID? 我意识到这是纯粹的修饰,但是我可能想使用它来显示我的地址中的优先级,如果可能的话,应该首先使用该地址。 pub 4096R/0xAABBD62D0BA66C66 2014-09-02 uid [ultimate] Mr. Foo Bar <fourth@example.com> uid [ultimate] Mr. Foo Bar <first@example.com> uid [ultimate] Mr. Foo Bar <third@example.com> uid [ultimate] Mr. Foo Bar <second@example.com>
18 gpg 

2
通过在Linux中按住一个键来选择字符(例如在OSX中)
我一直在想是否有任何可用的附加功能,例如Mac OSX。我的母语是西班牙语,现在我生活在法语环境中,我也经常说英语,所以我需要不同的口音,尤其是法文版,我已经使用Linux两年了,并且不时地使用Mac OS X进行测试。 我发现Mac OS X上的可用功能真的很有用,您可以在其中连续按该键,并显示相同字符,不同重音或标点符号的可用选项列表。我可以在Linux上这样做吗? 例如:

1
删除awk中的数组
在awk中,我可以使用循环清除数组,使其成为空数组,这等效于删除它。 for (key in array) delete array[key]; 有没有更简单的方法?我可以完全删除一个数组,以便可以将变量名重新用于标量吗?
18 awk  array 


3
堆栈分配在Linux中如何工作?
操作系统是否为堆栈或其他内容保留了固定数量的有效虚拟空间?仅使用大局部变量就能产生堆栈溢出吗? 我写了一个小C程序来测试我的假设。它在X86-64 CentOS 6.5上运行。 #include <string.h> #include <stdio.h> int main() { int n = 10240 * 1024; char a[n]; memset(a, 'x', n); printf("%x\n%x\n", &a[0], &a[n-1]); getchar(); return 0; } 运行程序可以得到&a[0] = f0ceabe0和&a[n-1] = f16eabdf proc映射显示了堆栈: 7ffff0cea000-7ffff16ec000. (10248 * 1024B) 然后我试图增加 n = 11240 * 1024 运行程序可以得到&a[0] = b6b36690和&a[n-1] = b763068f …

2
谁负责Linux内核?
到今天为止,有许多Linux发行版,如Ubuntu,Fedora,Gentoo,Mint,Debian等。这些发行版以不同的周期更新。Ubuntu似乎每周或每月更新一次内核,而Debian不愿更新内核。 我想知道这些发行版是否维护自己的内核。还是他们只是从Linus Torvalds获得原始内核代码,根据需要对其进行了一些修改,然后使用其软件包管理系统发布了经过修订的内核? 所有发行版都使用Linus Torvalds的相同内核吗?如果是这样,为什么不同的发行版在不同的周期更新/发布它们的内核?

2
zsh:在tmux中设置TERM = screen-256color,但在没有tmux的情况下设置xterm-256color
我需要我的$TERM是xterm-256colorTMUX以外(在“普通”与zsh的终端),但screen-256color里面TMUX。 首先,我尝试了: 添加export TERM='xterm-256color'到我的~/.zshrc。 添加set -g default-terminal "screen-256color"到我的~/.tmux.conf 现在,当我打开终端(例如xterm)时,TERMis xterm-256color是正确的。但是当我运行tmux时,又TERM是xterm-256color! 然后,我尝试在自己的评论中删除一行~/.zshrc。现在,当我打开终端时,TERM是xterm,当我运行tmux时,TERM是screen-256color。所以看来,如果我将设置TERM为.zshrc,则tmux首先设置TERM为screen-256color,运行shell(即zsh),然后zsh读取.zshrc并重置TERM为xterm-256color。 那么,如何使TERM自己xterm-256color在“普通”终端和screen-256colortmux中?
18 zsh  tmux  xterm 


2
在bash中,我如何回显变量名,而不是变量值?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 5年前关闭。 假设我var在bash中有一个变量。我可以给它赋一个值。例如,我将其设置为字符串: var="Test" 我要echo的名字var,而不是所拥有的价值var。(我可以用做后者echo $var,但实际上我想做前者。) SO对此问题的答案说可以使用echo ${!var},但是当我这样做时,我只回显一个空行。例如,此bash脚本 #!/bin/bash echo "Hi" var="Test" echo ${!var} echo "Bye" 返回此输出: Hi Bye 在Hi和Bye之间只有一个空行,而不是var。我究竟做错了什么? 我在Ubuntu 10.04.4上运行bash 4.1.5(1)。
18 bash 


5
查找:-exec缺少参数
我正在尝试运行以下命令: find a/folder b/folder -name *.c -o -name *.h -exec grep -I foobar '{}' + 这将返回错误: find: missing argument to -exec 我看不到此命令出了什么问题,因为它似乎与手册页匹配: -exec命令{} + -exec选项的此变体在选定的文件上运行指定的命令,但是通过在末尾附加每个选定的文件名来构建命令行。该命令的调用总数将远远少于匹配文件的数目。命令行的构建与xargs构建命令行的方式几乎相同。命令中仅允许使用一个'{}'实例。该命令在起始目录中执行。 我也尝试过: find a/folder b/folder -name *.c -o -name *.h -exec grep -I foobar {} + find a/folder b/folder -name *.c -o -name *.h -exec 'grep …
18 find 

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.