Unix & Linux

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

1
重复性:如何在现有文件上创建和还原完整的系统备份
我想使用创建完整的系统备份duplicity。 因此,我创建根目录的备份/,但不包括/proc,/sys,/tmp,和/mnt。 但是,当尝试将备份还原到根目录时,出现以下错误: Restore destination directory / already exists. Will not overwrite. 将--force选项添加到命令后,我收到一系列[Errno 17]错误,指出各种文件已经存在。 是否要还原duplicity备份,目标文件系统必须有足够的空间才能将还原提取到临时目录?然后由用户来合并备份数据和现有系统?



2
我可以使用鼠标正确选择更少的文字吗?
我刚刚发现可以在中添加以下行~/.vimrc。 set mouse=a :vmap <C-C> "+y 这样的效果是可以用鼠标选择文本(即在可视模式下),然后使用Ctrl+ 将实际文本复制到X剪贴板c。这与终端的默认副本不同,因为它是我要复制的真实文本,而不是终端看到的内容。例如,如果文本中有选项卡,则以前我会将它们复制为空格。 有没有办法减少行为方式相同的行为?即我可以逐字复制正在查看的文本文件中的内容吗?
9 terminal  less 

1
如何从otf中为控制台制作psf字体?
我想在tty控制台中使用Inconsolata字体,但是我需要为此生成一个psf字体。 我发现应该使用otf2bdf和两种工具bdf2psf,但是每次尝试使用第二种工具时,都会得到: /usr/bin/bdf2psf: Inconsolata12.bdf: the width is not integer number.
9 tty  fonts 

1
将Chrome / Firefox窗口还原到原始工作区/桌面
我有三个显示器设置,其中两个显示器由Ubuntu 12.04直接驱动,工作区/桌面总面积为3840x1200¹。我通常使用5个虚拟工作区,如果并行处理多个项目,则通常会更多。通常,我至少打开15个浏览器窗口(大多数是每晚Firefox,但也有标准的12.04 Firefox和Chrome)。 每当浏览器由于更新而需要重新启动(cq崩溃),或者需要在登录后重新启动时,浏览器窗口都会返回到原始位置,但是所有窗口都位于同一工作空间中。之后,我必须乏味地将至少80%的窗户移至其他工作区²。 Firefox和Chrome都不保存还原到原始工作区所需的额外EWMH信息。我已经阅读了4-5年前有关此问题的未解决的错误报告。 似乎,至少在几年前,KDE将工作空间管理为大偏移量(比屏幕宽度宽),这使浏览器可以还原到正确的工作空间。但这似乎不再是事实了(从错误报告中扣除,而不是从个人经验中扣除)。 是否有一个工作区/桌面管理器在Firefox和Chrome(最好是在Ubuntu或Linux Mint上)不具有这种“将所有工作空间还原”的行为? 还是有另一种方法来增强Firefox和Chrome(例如附加组件)以强制执行此行为? 我的不是固定布局,工作区Y上的浏览器X始终打开到特定的URL。恢复功能为我提供了窗口,位置和URL的确切方式。他们“只是”需要在正确的工作空间中。 ¹ 第三台1200x1920显示器在另一台计算机上,x2vnc用于共享一个鼠标和键盘。这样可以很好地使我的阅读材料(如手册页和文档)可用(纵向)。 ² 所有U&L东西都在工作区3上。通常,我一次要让机器保持运行状态并保持登录状态数周,原因之一是恢复了各种窗口。

2
Debian:在软件包升级期间防止特定文件被覆盖
我知道一个程序包包含两个组件:config和data文件。在软件包升级(即安全升级)期间,data可以覆盖config文件,但文件应始终保持不变。同时config文件通常/etc和data中/usr。但是,有时区分是模糊的。 就我而言,我已经修改了Icedove(Thunderbird)的图标文件: /usr/share/applications/icedove.desktop 现在,每次有Icedove(Thunderbird)更新时,我的更改都会被默认文件覆盖(即使两次更新之间都没有更改)。 有什么方法可以防止该特定文件被覆盖? 将其设置为不可变chattr +i icedove.desktop不是一个好主意,因为在软件包升级期间会产生错误。

2
如何在Vim中切换鼠标支持?
我最近在笔记本电脑上工作了很多,而在键入时不小心单击了鼠标。我知道我可以删除set mouse=a我的.vimrc,但有时我喜欢使用鼠标。 如何创建切换功能以切换鼠标支持?
9 vim 

1
我停止了MiniSSDPD,会发生不好的事情吗?
我一直在尝试通过停止并禁用默认情况下监听的20个左右不必要的服务来加强我的Debian系统。其中之一称为“ minissdpd”。显然,这意味着为即插即用设备提供“发现”服务。对于我来说,似乎有些疯狂,旨在帮助本地外围设备的东西需要听听世界另一端的中国黑客的声音。发现服务甚至意味着什么? 我查看了一些漏洞数据库,确定有足够的minissdpd列出了很多漏洞。他们如何在默认分发中启用此功能?说真的,它就像安装Debian一样,被黑了。 无论如何,我的主要问题是:既然我已经禁用了该服务,是否会发生一些不好的事情(例如插入某些东西而无法使用)?

2
bash如何在处理后从参数中删除选项
我记得在某个地方看到过一个bash脚本case,该脚本使用和shift浏览位置参数列表,遇到参数时解析带有参数的标志和选项,并在解析后将其删除以仅保留裸参数,然后由其余的参数处理。脚本。 例如,在解析的命令行时cp -R file1 -t /mybackup file2 -f,它将首先遍历参数,认识到用户已请求通过进入目录,通过来-R指定目标,-t /mybackup并通过来强制复制-f,然后将其从参数列表中删除,从而该程序file1 file2作为剩余参数进行处理。 但是我似乎无法记住/找到我所看到的任何脚本。我只是想能够做到这一点。我一直在各地搜索,并附加了我检查过的相关页面列表。 该网站上的一个问题专门询问了“顺序无关的选项”,但是单个答案和该问题的答案都没有考虑到像上面这样的情况,即选项与普通参数混合在一起,我认为这是该人特别提及与订单无关的选项的原因。 由于bash的内置getopts似乎停在第一个非选项参数上,因此它似乎不足以解决问题。这就是Wooledge BashFAQ的页面(见下文)解释如何重新排列参数的原因。但是我想避免创建多个数组,以防参数列表很长。 由于shift不支持从参数列表的中间弹出单个参数,因此我不确定实现我所要求的直接方法是什么。 我想听听是否有人有解决方案,可以从参数列表的中间删除参数,而无需创建一个新的数组。 我已经看过的页面: http://mywiki.wooledge.org/ComplexOptionParsing#Rearranging_arguments http://mywiki.wooledge.org/BashFAQ/035 在bash shell脚本中使用getopts获取长和短命令行选项 http://wiki.bash-hackers.org/scripting/posparams http://wiki.bash-hackers.org/howto/getopts_tutorial bash参数在$ @中的情况 在bash脚本中实现顺序独立选项的规范方法是什么? 如何处理Shell脚本中的开关?
9 bash  arguments 


3
如何在不删除尾随换行符的情况下将stdin捕获为变量?
在shell脚本中... 如何在不删除尾随换行符的情况下将stdin捕获为变量? 现在我已经尝试: var=`cat` var=`tee` var=$(tee) 在所有情况下$var,输入流都不会包含尾随换行符。谢谢。 还:如果输入中没有尾随换行符,则解决方案不得添加。 根据接受的答案进行更新: 我在代码中使用的最终解决方案如下: function filter() { #do lots of sed operations #see https://github.com/gistya/expandr for full code } GIT_INPUT=`cat; echo x` FILTERED_OUTPUT=$(printf '%s' "$GIT_INPUT" | filter) FILTERED_OUTPUT=${FILTERED_OUTPUT%x} printf '%s' "$FILTERED_OUTPUT" 如果您想查看完整代码,请参阅github页面的expandr,这是我为信息安全目的而开发的一个开源git关键字-扩展过滤器外壳脚本。根据.gitattributes文件(可以是特定于分支的文件)和git config中设置的规则,无论何时将其签入或签出存储库,git都会通过expandr.sh Shell脚本通过管道传输每个文件。(这就是为什么保留任何尾随的换行或缺少换行的关键。)这使您可以清除敏感信息,并交换不同的特定于环境的值集以进行测试,暂存和实时分支。

4
查找:检测到文件系统循环
当我尝试使用查找文件时find -name "filename",出现错误消息: ./var/named/chroot/var/named' is part of the same file system loop as `./var/named' 我运行了该ls -ldi /var/named/chroot/var/named/ /var/named命令,并且inode编号相同。研究表明解决方法是删除硬链接/var/named/chroot/var/named/使用rm -f,并重新创建为一个目录,但我这样做的时候,我建议,它不能被删除,因为它是一个目录了。我该如何解决?我正在使用Plesk 11运行Centos 6。 mount命令给出以下信息: /dev/vzfs on / type reiserfs (rw,usrquota,grpquota) proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,relatime) none on /dev type tmpfs (rw,relatime) none on /dev/pts type …
9 linux  centos 

2
什么时候会发现。-exec COMMAND {} +`多次执行COMMAND?
如果我做 find . -exec echo {} + 它在一行中打印所有路径,即命令echo仅执行一次。 但据man find, -exec command {} + ... the number of invocations of the command will be much less than the number of matched files. ... 在某些情况下,该命令似乎会执行多次。我对吗?请举例说明。
9 find 

2
交换似乎没有使用[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 2年前关闭。 (我目前正在使用Ubuntu 14.04 LTS,GNOME环境) tl; dr如何强制进行更多的内存交换(Swapiness已经为100)? 我最近经历了很多系统冻结/崩溃。通常在访问繁忙的网站时。我已经在tty上加载了htop,已经发生了太多事情,所以我可以切换到它并终止我的浏览器(因为GUI没有响应)。但是,有时我需要使用REISUB。 我认为GNOME可能比Unity更好,因为我的Debian系统没有问题,而且确实做到了,但是我的内存仍然很高,并且死机了。 我看了一下free -m今天,发现我的交换显示已使用0。输出: total used free shared buffers cached Mem: 1821 1673 148 221 40 643 -/+ buffers/cache: 989 832 Swap: 1933 0 1933 我暂时交换为100(sudo sysctl vm.swappiness=100)。结果仍然是相同的(即使运行到接近最大系统内存使用量,也将使用0)。 我看着这个答案: 如何查看系统是否正在交换? 不幸的是,在我撰写本文时,我的系统进行了更新,并且我的软件包已锁定,因此我无法安装this(sar),也不确定要包含哪个软件包才能提供另一个输出。 我已经查看了fstab,并且交换分区已正确使用。 # swap was on /dev/sda3 during …
9 memory  swap 

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.