Unix & Linux

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

1
输出重定向和空格
我对此感到偏执,但希望这是一个简单的问题: 之间有什么区别 cat file1 | egrep -oP "[Mm]y string" > /home/user/file.txt 和 cat file1|egrep -oP "[Mm]y string">/home/user/file.txt 即,是否有空格填充竖线(|)和重定向(>)字符有关系吗?我真的很偏执,如果我不想要空格,空格会以某种方式最终出现在输出文件中。谁能澄清?(如果重要,请使用Ubuntu 12 / bash。)

1
具有实时优先级的正在运行的进程是否定的?
运行具有实时优先级(chrt -f 99)的进程是否有不利影响? 我的假设是,结合亲和力将确保我的进程的任何抢占是最小的,因此,任何抖动(特别是网络延迟)都将降到最小-这对总体延迟没有帮助,但此刻我会更与抖动有关。 (内核:2.6.16 / 3.0)


2
从多个Konsole保存bash历史记录无法正常工作
我使用多个Konsole终端。而且我希望我在每个终端中键入的所有命令都保存在命令历史记录中,以便我打开的下一个konsole拥有所有命令。为了防止每个终端覆盖另一个终端的命令历史记录,我在我的计算机中进行了以下设置.bashrc # avoid duplicates and commands starting with space export HISTCONTROL=ignoredups:erasedups:ignorespace # append history entries.. shopt -s histappend #My machine reboots without warning sometimes.Hence to save commands instantaneously. export PROMPT_COMMAND="history -a" export HISTSIZE=1000 PS1="\[\e[1;34m\]\! \[\e[0m\]"$PS1 我在最后一行给出了提示符,以查看命令号。命令号 从未超过600,但是我的一些旧命令仍然从历史中消失。有很多命令是重复给出的,但是正如从所期望的那样ignoredups,它永远不会在提示符后增加命令no。然而旧的命令仍在消失,历史上的命令数量始终保持在500多一点。 .bash_history尽管忽略了该文件,但该文件仍然包含许多重复项。 PS:echo $HISTSIZE和输出$HISTFILESIZE均为=1000 更新:我在上面的条目中发现了问题.bashrc。只需调用即可history -a,PROMPT_COMMAND只需将最后一个新命令附加到.bash_history。所以ignoredups和erasedups没有作用。 有什么办法,我仍然可以写.bash_history而不用从每个终端重复吗?我不想在每个命令提示符处加载整个历史记录,history -r然后再用再次写回history -w,因为我在一个终端中发出的命令也会出现在另一个并行运行的终端中。我希望组合的命令仅出现在新终端中。 我的历史为何被修整到500的难题已解决。我注意到每次我进入这台机器时,它都会发生。.bash_profile使用以下条目创建一个即可解决此问题。 if [ -f ~/.bashrc …

5
如何计算bash中第一个字段排序的行
这是INPUT的摘录: ... #################### Bala Bela;XXXXXX12345;XXXXXX12345678;A SERVER345Z3.DOMAIN.com0 SERVER346Z3.DOMAIN.com0 SERVER347Z3.DOMAIN.com0 SERVER348Z3.DOMAIN.com0 ssh-dss ...pubkeyhere... #################### Ize Jova;XXXXXX12345;XXXXXX12345;A SERVER342Z3.DOMAIN.com0 SERVER343Z3.DOMAIN.com0 SERVER345Z3.DOMAIN.com0 ssh-rsa ...pubkeyhere... ... 这是我需要的输出片段: Bala Bela;XXXXXX12345;XXXXXX12345678;A 4 Ize Jova;XXXXXX12345;XXXXXX12345;A 3 因此,我需要从INPUT输出,以便可以看到以“ SERVER”开头的行分配给给定用户(例如:“ Bala Bela; XXXXXX12345; XXXXXX12345678; A”)。我该如何在bash中做到这一点?

3
身体摔成盒子?(内存和磁盘)
我有一个VPS。我也许可以加密我的分区,但是我还没有尝试过。我相信我的VPS公司可以重设我的root密码,尽管我看到的唯一SSH密钥是我自己的。我将所有数据加密为encfs。以防万一黑客获得某种访问权限,encfs只有在我的密码正确的情况下才可以安装驱动器(SSH密钥无法安装该驱动器,因为新密码是不正确的密码,因此重置root密码也不会安装) 我的问题是我的VPS主机可以闯入我的盒子吗?实际上,数据是加密的。我相信无需重置该框即可更改根目录吗?如果是这样,那么他们可以访问我已经挂载的文件系统?如果另一个没有权限的用户登录,该用户可以执行某些操作来访问ram并转储敏感数据吗?VPS主机可以轻松读取我的RAM的内容吗? 注意:这是假设的。我在考虑是否有大客户,我想知道我能保证多少安全性,而这正是我想到的。我宁可不要在家中放一个盒子,也不要用管道来支撑它。

3
在Mutt中重新绑定“清除提示”
默认情况下,在中的命令提示符下输入信息时mutt,可以使用清除提示符Ctrlg,如手册中所述: ^ G不适用 我一直在尝试将此功能绑定到Escape。不幸的是,手册或源代码中abort未在可用功能中列出。 我试过在我的.muttrc: 绑定编辑器<esc>中止 但是它抛出一个错误: /home/jason/.mutt/muttrc,第143行错误:中止:地图中没有这样的功能 我尝试使用不同的地图,例如(generic),并尝试使用其他虚构函数,例如clear,都无济于事。 我将如何绑定Escape以清除提示行?

2
插入Wifi卡时自动运行脚本(udev)
我一直试图在udev连接无线网卡时使Debian系统运行bash脚本。 到目前为止,我已经创建了这个文件/etc/udev/rules.d/wifi-detect.rules: ACTION=="add", ATTRS{idVendor}=="0cf3", ATTRS{idProduct}=="9271", RUN+="/root/test.sh" 现在,我正在尝试test.sh使用以下内容: #!/bin/bash /bin/echo "test!" > /test.txt 但是由于某种原因,当我连接无线网卡时似乎什么也没发生,没有test.txt创建文件。 我lsusb的卡片上: Bus 001 Device 015: ID 0cf3:9271 Atheros Communications, Inc. AR9271 802.11n 跑步udevadm monitor –env这是当我连接的卡发生了什么: KERNEL[1017.642278] add /devices/platform/bcm2708_usb/usb1/1-1/1-1.3 (usb) KERNEL[1017.644676] add /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0 (usb) KERNEL[1017.645035] add /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/firmware/1-1.3 (firmware) KERNEL[1017.708056] remove /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/firmware/1-1.3 (firmware) UDEV [1017.714772] add /devices/platform/bcm2708_usb/usb1/1-1/1-1.3 (usb) UDEV …

3
如何在DD-WRT路由器上阻止特定的URL?
我一直在到处寻找这个。有谁知道如何在DD-WRT路由器上阻止特定的URL?例如,我想阻止website.com/whatever,但没有website.com,blah.website.com或website.com/blah。有没有办法做到这一点,还是只能阻止整个域? 我尝试在DD-WRT配置中的“访问限制”下添加有问题的URL,但似乎没有任何效果。这是我的设置: 这是客户列表: 我仍然可以在IP地址为192.168.1.146的主PC上轻松浏览至google.com/imghp和google.com/images(重定向到google.com/imghp)。 在DD-WRT Wiki的此页面上,显示“在通过URL地址阻止网站下,输入要阻止的域名(如果有)”。除了DD-WRT论坛上的帖子外,这给我的印象是,您只能在DD-WRT设置中的“访问限制”下阻止域。 我开始怀疑是否必须使用iptables解决此问题,或者可能通过在路由器本身上安装代理服务器来解决。 编辑 DD-WRT论坛上的goli用户对此事有这样的看法(链接): DD-WRT上的Privoxy版本运行良好。我刚刚安装了它。 Privoxy具有参数“ accept-intercepted-requests 1”,可以将其用作透明代理。 我添加了一个iptables规则,该规则将一些Web流量请求传递到代理,而不是直接路由它: iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -s 192.168.0.128/255.255.255.224 -j DNAT --to 192.168.0.1:8118 Privoxy具有所谓的“动作文件”。这些定义了当请求URL匹配给定的正则表达式时该怎么做。可能的动作之一是“阻止”。 从那时起,我一直在研究如何在路由器上安装Privoxy。这相当复杂,特别是因为我没有足够的备用闪存来使用ipkg通过SSH安装它。(有关超级用户,请参阅此问题。) 我的第二种方法是使用固件修改套件,您可以在此处阅读有关内容。我在刷新自定义版本时遇到了一些困难,但是一旦所有问题都整理妥当,我将在这里发布结果。

2
挂载USB驱动器(FAT32),以便所有用户均可写入
我有一个在/ dev / sda2上的USB FAT32驱动器。我已将其挂载为/ media / bigdrive,但是,每当我尝试以非root用户身份访问那里的文件时,都会被拒绝权限。 运行时,mount我可以看到以下行: /dev/sda2 on /media/bigdrive type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro) 我的/ etc / fstab包含以下行: /dev/sda2 /media/bigdrive vfat rw,user,exec,umask=000 0 0 我试着运行sudo chmod 777 /media/bigdrive和sudo chmod 777 -R /media/bigdrive 两者都没有改变。 有什么我想念的吗? 这是在运行raspbian BTW的rasberry pi上。

1
在哪里安装应用程序
我是Windows的长期用户,在多年个人迁移到基于Linux的开发中。在Windows上,当我安装应用程序时,它放在Program Files文件夹中,并且让应用程序将使用该应用程序时创建的文件存储在一个单独的数据文件夹层次结构中,可以定期对其进行备份。 Linux中对应的文件夹/目录是什么(好的,我确实在Mac上运行)?

3
Zsh:自动修改执行的命令
我最近通过MacPorts将grc(通用着色器)安装到了我的系统中,这使我能够获得默认情况下不支持的大量命令的彩色输出(请参见下面的屏幕截图)。 我想自动使用grc,但是不是针对特定命令,而是针对每个命令。我使用zsh作为我的外壳。 基本上,每当我执行时,command -parameter 1 2 3我都希望它自动以方式执行grc command -parameter 1 2 3。 我不希望使用别名,例如对的traceroute别名grc traceroute,因为我正在添加越来越多的grc着色命令。 我已经研究了.zshrc的preexec和precmd配置,但是我还没有找到实现所需功能的方法。
9 terminal  zsh  osx 

1
USB音频仅输出白噪声
我在5岁的笔记本电脑上运行OpenBSD / i386 5.1。扬声器和耳机端口可以正常工作,但是耳机端口有点松动,因此我尝试安装外部USB声卡(Fiio E17 USB DAC)。在Windows上使用它没有问题。 该装置被检测到并且我创建了它的节点在/dev与sh /dev/MAKEDEV audio1,然后链接的设备的其余部分,以指向新的声卡。到目前为止一切顺利,我能够跑步,cat /dev/urandom > /dev/audio并且听到白噪声。但是,我无法通过它运行任何其他音频。 我tail /var/log/messages的设备插入后: Aug 30 10:03:55 s96j /bsd: uhidev0 at uhub1 Aug 30 10:03:55 s96j /bsd: port 1 configuration 1 interface 0 "FiiO FiiO USB DAC-E17" rev 1.10/0.01 addr 2 Aug 30 10:03:55 s96j /bsd: uhidev0: iclass 3/0 …
9 audio  usb  openbsd 

4
我可以在Debian 6上使用apt或dpkg来确定升级软件包中的更改吗?
我只是apt-get upgrade在我的Debian 6开发服务器上做了一个,并且注意到某个名为的软件包tinyproxy已升级。我在看到正是一个特别的好处是什么在包改变,因为改变它做一些事情,它目前不就是我要做的事情就行了。 我知道我可以启动我的浏览器,挖掘一点,找到变更日志,并确切地查看我刚去的版本中发生了什么更改,但是然后我想知道是否可以通过某种方式询问apt-get或dpkg向我显示变更日志包括在内。 我可以使用其中一种工具,也可以使用另一种工具来通过命令行总结软件包版本之间的变化吗?

3
如何在Debian中将下载的Firefox设置为默认的Web浏览器?
如何将手动下载的Firefox设置为默认的Web浏览器,以便单击另一个应用程序中的链接将在此Firefox中打开该链接? 我尝试了以下命令,但它们似乎不起作用: update-alternatives --install /usr/bin/x-www-browser x-www-browser /home/user/firefox/firefox 100 update-alternatives --set x-www-browser /home/user/firefox/firefox 我需要做什么?

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.