Unix & Linux

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

5
差异整个Linux系统
我安装了基本的Linux系统。我想运行一个非常大且复杂的第三方脚本,它将对整个系统的各个部分进行许多更改。这些更改将包括添加新文件,修改现有文件以及删除现有文件。脚本完成后,我将拥有一个经过修改的系统。修改将是广泛而实质的。 我想要某种有关已添加,删除或修改的所有文件的报告,以及对修改的逐行分析。像文件差异工具的输出那样的东西会很棒。 我假设我需要在运行脚本之前创建某种快照,然后在运行第二张快照。我假设然后将这些快照输入某种diff或类似diff的工具中。 有谁知道使用什么工具以及如何区分整个系统? 我正在使用Virtualbox,它具有差异图像功能,尽管我不知道我是否可以将其适应此目的。而且,如果可能的话,我希望有一个更通用的解决方案。

3
是什么提供了/ etc / exports,我如何发现呢?
我有两个Debian虚拟机是从相同的netinstall iso构建的,但是可能安装了不同的软件包。其中一个有一个/etc/exports用于nfs挂载的文件,而另一个没有。我希望他们俩都可以通过软件包管理器安装此文件。 我来自Fedora的世界,现在我仍然在其中yum whatprovides /etc/exports。有人告诉我在Debian土地上应该这样做apt-file search。但是,我没有得到任何结果: apt-file update apt-file search /etc/exports 我在这里想念什么?
8 debian  apt  nfs 

2
由于机密文件,davfs未知选项
我正在尝试在计算机上自动安装WebDAV。 我已安装davfs2,然后复制/etc/davfs2到~/.davfs2。我将WebDAV URL添加到/etc/fstab: [URL of the WebDAV] [Local folder] davfs rw,user,auto 0 0 我还添加了用户名和密码,~/.davfs2/secrets并取消了注释secrets ~/.davfs2/secrets,~/.davfs2/davfs2.conf以启用自动登录。 现在,我可以通过运行来手动挂载它mount www.myserver.com(它不需要我输入用户名/密码)。我知道运行mount -a将执行与启动时相同的操作,但是当我sudo mount -a以用户身份运行时(只是mount -a说我需要成为root用户),我的确要求输入用户名/密码。 然后secrets ~/.davfs2/secrets,我取消注释/etc/davfs2/davfs2.conf以启用自动身份验证(请参阅this和this)。现在运行sudo mount -a并仅使用mount这两个结果/sbin/mount.davfs:/etc/davfs2/davfs2.conf:36: unknown option。第36 secrets ~/.davfs2/secrets行是该行。 为什么说未知选项?我如何解决它?
8 davfs2 

4
如何将字符串的一部分提取到变量中?
我有一些这样的文件中的一行: attempting to create a 512^3 level (with Dirichlet BC) using a 16^3 grid of 32^3 boxes and 800 tasks... 我想提取的512^3,16^3,32^3并800从它的四个数字分别为它们分配到四个变量level,grid,boxes和tasks用于其他用途。 我怎样才能做到这一点?

1
“ Wine:Z:\ m \ Desktop \ PortForward Network Utilities.desktop的错误EXE格式”是什么意思?
在Debian上安装wine来运行Windows exe-特别是PortForward Network Utilities捆绑包:http : //portforward.com/help/setup_static_ip_address.htm)。 输入: wine '/m/PortForward Network Utilities.desktop' 输出: wine: Bad EXE format for Z:\m\Desktop\PortForward Network Utilities.desktop. 按照“ Debian / Wine Multiarch指令”,我用apt-get安装了Wine。Wine是32位的,但我不确定PF Network Utilities包是什么(属性中没有说明)。 不知道从这里去哪里。

2
内核恐慌不转储日志文件
我在Steam上玩游戏,突然之间我陷入了内核恐慌。我手动关闭了计算机,然后重新启动到64位的Linux Mint 17.1(肉桂色),然后去检查了我的日志文件/var/log/,但是找不到任何与内核崩溃有关的参考或消息。发生了 奇怪的是,为什么它从未转储内核,甚至从未将其记录到日志文件中。如果内核再次出现恐慌,我如何确保始终转储内核?内核崩溃时为什么什么也没记录,这没有任何意义。环顾谷歌,人们建议通过阅读/var/log/dmesg,/var/log/syslog,/var/log/kern.log,/var/log/Xorg.log等...但一无所获。甚至都不在.Xsession-errors文件中。 以下是屏幕上的一些照片: 我可以随时在屏幕上拍照,如果再次发生的话,但是我只想确保可以获取它以转储内核并在内核崩溃时创建日志文件。

3
如何恢复无法分离的屏幕?
我使用屏幕屏幕视觉控制台。要分离屏幕,我需要先按Ctrl+,A然后D再关闭会话但又不分离它。它出现(Attached)在screen -list: eduard@eduard-X:~$ screen -list There are screens on: 4561.pts-46.eduard-X (30.03.2015 14:48:51) (Attached) 4547.pts-46.eduard-X (30.03.2015 14:48:33) (Detached) 4329.pts-41.eduard-X (30.03.2015 14:46:28) (Attached) 3995.pts-30.eduard-X (30.03.2015 14:30:01) (Detached) 如果我尝试还原它,屏幕将显示没有屏幕可恢复: eduard@eduard-X:~$ screen -r 4329 There is a screen on: 4329.pts-41.eduard-X (30.03.2015 14:46:28) (Attached) There is no screen to be resumed matching 4329. 我还能恢复未正确拆下的屏幕吗?

4
xterm不显示unicode
我从来没有能够让我的终端显示unicode符号。例如,在我拥有现在的操作系统之前,我将ctrl + a映射到vim中的希腊mu,并且它可以在其他计算机上运行,​​但不能在当前的xterm上运行。这是我的相关部分.vimrc: set encoding=utf-8 "map control-a to mu imap <C-a> <C-k>m* 另外,我需要在python中输出sympy方程,这在其他计算机上有效,但在我当前的xterm上不可用。代替这个: $ python Python 2.7.3 (default, Mar 14 2014, 11:57:14) [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sympy >>> x = sympy.symbols('x') >>> sympy.init_printing() >>> (sympy.sqrt(x**3/(x+1)), 1) ⎛ _______ ⎞ …
8 xterm  unicode 

1
如何在awk中使用^#$作为记录分隔符?
您如何告诉awk #在一行中单独使用一个字符作为记录分隔符?问题是您不能说RS="^#$"是因为^匹配文件的开头而不是行的开头,并且RS="#\n"也不能工作,因为它匹配#的不是行首的字符。 $ data='# first record, first field first record, second field # second record, first field# second record, second field ' 然后使用以下命令打印每个记录的第一个字段RS="#\n": $ printf "%s" "$data" | awk ' BEGIN { RS="#\n"; FS="\n" } /./ {print $1} ' first record, first field second record, first field second record, second …
8 awk 

1
内存碎片与是否在系统上启用交换功能之间有任何关系吗?
如果我有足够多的RAM,是否需要交换空间?让我想知道,内存碎片量cat /proc/buddyinfo 和是否使用交换之间是否存在任何关系。更具体地说,我想知道利用交换是否可以减少内存碎片。在正常情况下,在我的系统上工作时,我要进行以下操作: tvbox@tvbox-G31M-ES2L:~$ cat /proc/buddyinfo Node 0, zone DMA 3 3 4 14 16 6 2 0 0 1 0 Node 0, zone Normal 1564 1052 462 356 240 109 33 21 6 1 0 Node 0, zone HighMem 43 1972 839 285 183 109 98 34 16 0 …
8 memory  swap 

1
为什么我的系统日志在重新启动后无法持久保存?
我在Linode实例上使用新的Fedora 21映像遇到一个非常奇怪的问题。我无法在Linode之外复制它。问题是我的systemd日记在重新启动后不持久。根据文档: 默认情况下,日志将日志数据存储在/ run / log / journal /中。由于/ run /是易失性的,因此日志数据在重新引导时会丢失。为了使数据持久化,只需创建/ var / log / journal /,然后systemd-journald将在其中存储数据。 我检查了/ var / log / journal的存在,并且还在Storage=persistent/etc/systemd/journald.conf中进行了设置。日志目录包含一堆数据: $ du -sh /var/log/journal/ 89M /var/log/journal/ 但是,日志自上次系统重新启动以来仅包含日志条目: $ journalctl --list-boots 0 9f6a5a789dd64ec0b067140905e6da86 Thu 2015-03-19 15:08:48 GMT—Thu 2015-03-19 22:14:37 GMT 即使我journalctl --flush在重新启动之前,日志也会丢失。我怀疑这是Linode的Fedora 21映像的问题,我已经与他们一起打开了支持票。同时,我继续寻找导致此问题的原因。 我该如何调试?是什么原因造成的?我该怎么做才能解决此问题?

4
如何在有空格的grep输出上执行xargs grep?
我正在基于正则表达式搜索文件,然后尝试在这些文件中搜索内容。例如,我有类似 #Find all C++ files that match a certain pattern and then search them find . -name "*.cpp" | grep "<name regex>" | xargs grep "<content regex>" 我遇到的问题是某些路径中有空格,这会造成混淆xargs。我知道,如果我只是使用find,则可以使用-print0参数(以及上的-0参数xargs)来防止xargs将空格视为定界符。有类似的东西grep吗? 还是我完全以错误的方式解决了这个问题?天真,find要grep以xargs grep对我来说很有意义,但我持开放的态度产生相同的结果的其他方法。
8 shell  grep  find  quoting  xargs 

2
dhclient为什么要在静态接口上发出DHCP请求?
我正在建立一个新的Debian系统。我在/ etc / networks / interfaces中的接口上配置了一个静态IP,如下所示: # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth4 iface eth4 inet static address <redacted> netmask 255.255.254.0 network <redacted> broadcast <redacted> gateway <redacted> dns-nameservers <redacted> dns-search <redacted> 我已经隐藏了地址,但是配置与旧的Debian系统匹配,当然除了IP地址。我可以使用'ifup eth4'来启动它,它可以工作一会儿,但最终会在1到24小时后崩溃。我没有在日志中看到任何有关其原因的信息。我可以在第二天从物理控制台启动它……运行'ifdown eth4'报告它不是刚开始的。运行'ifup eth4'可以毫无问题地启动它。 虽然我想获得的是整理出来,我一直在寻找有关ETH4是dhclient的是在ETH4每2分钟使DHCPREQUESTs后台运行的错误注意。即使在配置了静态IP的eth4正常运行的情况下,也是如此。这是怎么回事,可能会导致接口崩溃?似乎我应该停止dhclient不必要地执行此操作,而不管它是否引起麻烦。较旧的系统没有运行“ dhclient”进程。 抱歉,如果这是基本知识,那么我的Linux知识将有些漏洞。

2
如何在运行时使用nix安装的库?
我在nix不是root用户的系统中以“单用户模式” 使用(请参见下面有关我的nix设置的说明)。 我想快速运行我的一个二进制文件,该二进制文件与系统中不存在的库动态链接。 因此,我使用以下命令安装了该库nix: $ nix-env -qa 'gmp' gmp-4.3.2 gmp-5.1.3 $ nix-env -i gmp-5.1.3 但是链接器仍然找不到该库: $ ldd -r ../valencies ../valencies: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ../valencies) ../valencies: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ../valencies) linux-vdso.so.1 => (0x00007fffbbf28000) /usr/local/lib/libsnoopy.so (0x00007f4dcfbdc000) libgmp.so.10 => not found libffi.so.5 => /usr/lib64/libffi.so.5 (0x00007f4dcf9cc000) …

2
Java进程冻结,直到我使用100%CPU [关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 2年前关闭。 我遇到的问题 在Android Studio,Eclipse或什至命令行Gradle上工作时,Java软件通常会冻结(即使通常是在更新系统/更改Java之后)。对于Android-Studio和Eclipse,如果我移至另一个桌面并返回,则该窗口变为灰色窗口,并且即使经过几个小时,该界面也永远不会恢复。我想这是Java问题。 它并不总是会发生:通常情况下,好几周我都不会有任何问题,直到它再次出现。我不明白是什么使它停止的:发生这种情况时,我尝试重新启动计算机,更改Java JDK版本,但它没有任何改变。然后有一天,我启动了计算机,问题消失了-接下来的几周。 我可以观察到的 一个CPU始终保持100% 我不能让Android工作室的线程转储(如描述在这里):它冻结为好。 如果我在冻结Android-Studio / Eclipse / Gradle的同时运行了一个大型C ++编译(即占用我所有CPU的编译),那么它将停止冻结,并且我可以继续工作直到下一次(但这种情况非常经常发生) 。 我尝试了什么 我尝试了另一个Window Manager:我可以重现XMonad和Fluxbox上的错误 我试图export _JAVA_AWT_WM_NONREPARENTING=1在/etc/profile.d/jre.sh 我试图之间切换java-7-jdk,java-7-openjdk,java-8-jdk,java-8-openjdk 我试着跑 wmname LG3D 我试图pkill -e adb按照评论中的建议运行 我尝试jmap <pid>在<pid>Android Studio上运行,但出现了“ DebuggerException:无法附加到进程”的信息 我尝试jcmd <pid> GC.run在<pid>Android Studio上运行,但有一个“ DebuggerException:无法连接到进程”和“无法打开套接字文件:目标进程未响应或未加载HotSpot VM”。 我试图删除我的.gradle目录 我尝试使用Invalidate and RestartAndroid Studio(但问题似乎也不是Android Studio特有的,因为我也曾在Eclipse中遇到过此问题) …

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.