Unix & Linux

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


2
是什么使操作系统“像Unix”?
我经常在许多网站上遇到“类unix”一词。 没有标准;只是它的行为方式。 但是,如果我要从头开始开发内核,那么什么会使它被视为“类unix”呢? 基本上,使诸如Unix之类的编写代码的东西是什么?


1
如何逐个文件移动目录?(而不是“先复制然后删除”)
我的电脑有一个500GB的驱动器。 我想将400GB的数据从/unencrypted移至/encrypted。 两个目录都在同一分区上,但是/encrypted由ecryptfs处理,因此mv /uncrypted/* /encrypted: 将所有文件复制到目标 然后从源中删除它们 ...我负担不起,因为它需要800GB。 如果文件一个接一个地移动,则不会有问题(ecryptfs区域是动态的)。 是否有一个mv选项或另一个工具可以逐目录移动目录? 文件数量很多,因此ARG_MAX对于基于脚本的解决方案可能是个问题。

6
Linux可以“用完RAM”吗?
我在网上看到很多帖子,似乎是在抱怨托管的VPS意外终止进程,因为它们使用了太多的RAM。 这怎么可能?我以为所有现代OS都通过对物理RAM上的内容使用磁盘交换来提供“无限RAM”。它是否正确? 如果进程“由于RAM不足而被杀死”会发生什么情况?

3
如何使用dd命令将iso映像刻录到DVD
我正在查看将ISO映像刻录到DVD的命令。但是我无法获得设备的名称。在/dev/我能看到cdrom,cdrw,dvd,dvdrw。我正在使用debian。 当我发出命令时,得到以下输出 dd if=debian-6.0.7-i386-DVD-1.iso of=/dev/dvdrw dd: opening `/dev/dvdrw': Read-only file system
20 dvd  burning 

9
使用vi或vim注释掉由行号指定的多行代码
我从这个堆栈溢出问题中学到,可以使用vi/ vim注释掉指定范围的行号。例如,假设我有以下bash脚本: #!/bin/bash This is my very very great script 现在假设我想通过8注释掉行号6(包含单词very,very和great)使用#注释字符。在vi/中vim,我可以简单地键入:6,8s/^/#以下内容: #!/bin/bash This is my #very #very #great script 注释掉第6至8行。 我的问题是,是否有可能键入一个类似的衬纸来删除第#6至8行中的注释字符(但文件中没有其他注释行)? 话虽如此,我意识到关于是否实际使用vi或存在一些争论vim。在实践中,我script.sh使用命令打开文件vi script.sh。另外,当我键入命令时which vi,我得到了/usr/bin/vi。不过,当我简单地键入vi并按时Enter,我得到了: ~ VIM - Vi IMproved ~ ~ version 7.2.330 ~ by Bram Moolenaar et al. ~ Vim is open source and freely distributable ~ ~ Sponsor …
20 vim  vi 

3
如何在CentOS中刷新本地DNS缓存
我正在寻找一种刷新CentOS 6上的本地DNS缓存的方法。 系统没有运行任何DNS服务器或任何其他设备,我希望让每个DNS查询都可以访问配置的名称服务器,即使是重复的名称服务器也是如此。 我在网上找到的大多数内容都告诉我去做service nscd restart,重新加载或去做nscd -i hosts。但是,似乎没有人刷新缓存。 因此,我想知道是否有人对我如何做到这一点有所了解。我需要翻转内核中的某种开关吗?任何解决方法都可以。
20 centos  dns  proxy  cache 

3
如何在不更新GLIBC的情况下运行新软件?
我在旧的Red Hat Enterprise Linux AS版本4系统上安装了Mathematica 9。安装后,我尝试启动Mathematica,但出现以下消息: /home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica:/lib64/tls/libc.so.6:找不到版本“ GLIBC_2.4”(/必需主页/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/Libraries/Linux-x86-64/libML64i3.so) /home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica:/lib64/tls/libc.so.6:找不到版本“ GLIBC_2.4”(/必需主页/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/Libraries/Linux-x86-64/libQtCore.so.4) 我不想更新系统glibc,因为它有风险,并且管理员不允许我这样做。 有人建议可以在其他地方安装新版本的glibc,然后以 LD_LIBRARY_PATH=/lib/new your_application 这不会影响系统。 所以我在这里问这种方法是否真的有效。如果可行,我想一步一步地去做(我现在在Linux上缺乏经验,想尽快在Linux上使用Mathematica)。 编辑: 我注意到有一个名为“ Ermine”的软件。看来它可以将软件部署为不依赖外部环境的独立程序包。不幸的是,它是一个共享软件。因此,我认为既然“ Ermine”可以做到,那么必须有一种在旧系统上使用新软件的方法。
20 rhel  glibc 

4
如何在每个选项卡上使用不同的命令运行xfce-terminal,并在命令返回后继续使用这些选项卡?
为了保持概述,我希望始终以相同的顺序放置多个命令并自动一起启动它们(gradle,git,database,scala-REPL,jboss ...) -H(保持)似乎意味着终端在终止后没有关闭,但是我如何故意终止该过程?一点也不?这样我就可以继续使用终端了。 我正在将xubuntu与xfce4-terminal和bash一起使用。是否有更好的GUI解决方案来启动多个命令,并能够继续在该窗口/选项卡中工作? 更新:如果您不知道这些命令:Jboss和gradle会不断产生输出,您不想在同一终端中混在一起。有时它们需要用^ C中断,然后重新启动。我不喜欢重新打开xfce4-term并导航到需要执行操作的目录。 数据库和scala-REPL是交互的,因此在后台启动它们是没有意义的。 我当前的启动脚本只是导航到所需的目录,并以正确的顺序打开所有选项卡,以使它们始终位于同一位置,并为其目的命名每个选项卡: xfce4-terminal -T eclipse --working-directory=/home/stefan/oximity -e "/opt/eclipse/eclipse" \ --tab -T arandr --working-directory=/home/stefan/oximity -e "arandr /home/stefan/.screenlayout/oximity.sh" \ --tab -T bash --working-directory=/home/stefan/oximity \ --tab -T gradle --working-directory=/home/stefan/oximity/med \ --tab -T git --working-directory=/home/stefan/oximity/med \ --tab -T mysql --working-directory=/opt/mini/mysql \ --tab -T jboss --working-directory=/opt/mini/jboss \ --tab -T …

3
SSH用户登录后如何防止关机?
我正在管理网络环境,昨天发生了一个有趣的情况。当普通用户要求关闭主机时,如果其他用户在本地登录,则拒绝这样做。但是,当其他用户通过SSH登录时,情况并非如此。如果一个用户在本地登录,并且一个用户通过SSH登录,并且本地登录的用户尝试关闭,则即使没有警告,该操作也会成功,并且另一用户的SSH连接会突然终止。我的问题是,有没有办法像政策对本地用户一样防止这种情况发生?我已经在手册页中sshd_config查找了内容,但找不到任何相关的内容。 编辑(其他信息): 网络上有4种操作系统:Mandriva 2009,Mandriva 2010.2,Mandriva 2011和Ubuntu 11.04。我要指的特定情况是在Mandriva 2009主机上有SSH用户,在Mandriva 2011主机上有本地用户。 Mandriva 2009主机使用GNOME 2.28环境,2010.2主机使用GNOME 2.32,2011主机使用KDE Plasma,而Ubuntu 11.04主机使用Unity。 更新资料 正如我在这个问题中指出的那样,我调查了文件polkit下的动作,/usr/share/polkit-1/actions/并在文件中找到了org.freedesktop.consolekit.policy一个org.freedesktop.consolekit.system.stop-multiple-users引发消息的动作 System policy prevents stopping the system when other users are logged in 我在想(由于org.freedesktop.*命名约定),这是某种通过D-BUS发送到DM的信号。我认为,如果我能找出触发此polkit动作的信号,则应该能够修改其行为。有任何想法吗? 更新2 我今天尝试了一个小实验,它给了我非常奇怪的结果。我尝试通过SSH登录到一个框,并确保没有其他用户登录任何VT。如果我Shutdown从GDM的“操作”菜单中选择,则会收到期待已久的策略消息,通知我没有其他用户登录就无法进行身份验证。但是,如果我使用GDM本地登录并选择要关闭GNOME菜单中的框,SSH会话将像以前一样被破坏。这怎么可能?当我shutdown从GDM 发起请求时与从内发起请求时,行为是否有所不同gnome-session?那能告诉任何人什么可以帮助我解决问题的信息吗?
20 ubuntu  ssh  shutdown  pam  mandriva 

3
如何安装库存的CentOS储存库?
我有一个情况是应该存在于股票回购的文件/etc/yum.repos.d/(如centos-base.repo)不存在。我需要安装它们。我确信这很简单,但是经过数小时的搜索,看来我没有正确搜索它。 基本上,我有一台带有自定义存储库的服务器,这对我来说毫无用处。我需要埃佩尔,而埃佩尔也需要centos-base.repo。我还需要postgres回购。
20 centos  yum 

1
如何将ssh-agent与多个(有效)密钥一起使用,并选择要使用的密钥?
假设有两个密钥A和B,这两个密钥对于user@host公共密钥身份验证都是有效的。由于authorized_keys根据密钥配置了不同的行为,因此~/.ssh/config在客户端上使用类似 Host A.host HostName host User user IdentityFile ~/.ssh/A Host B.host HostName host User user IdentityFile ~/.ssh/B 很好 但是,当我同时使用ssh-agent和添加两个密钥A和B(例如,为了在登录时输入其密码而不是在我分别致电ssh A.host或时ssh B.host)时,连接将始终对两个虚拟主机使用相同的ID。有什么方法可以指定从哪个存储密钥中ssh使用,ssh-agent而不必删除另一个密钥?
20 ssh  ssh-agent 

1
用另一个文件的内容替换文件中的模式
我有一个文本文件(devel.xml)。 我在其中添加了单词REPLACETHIS,以便将该字符串替换为其他文件(temp.txt)中的内容。 我最接近的是: sed -i -e "/REPLACETHIS/r temp.TXT" -e "s///" devel.txt; 这会将内容插入字符串后,然后再删除字符串。 这是最好的方法吗?


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.