Unix & Linux

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

4
ssh死后,ssh产生的终止进程
这个问题不仅在这里而且还在堆栈交换网络的其他站点中都已多次解决(例如,当我中断ssh本身时,如何使ssh杀死远程进程? )。但是,我无法使任何解决方案对我有用。 我正在通过ssh运行命令。每当我退出ssh时,我都希望命令也消失。此命令是一个名为ktserver的守护程序,它将无限期运行,直到您按Ctrl-C为止。 我按如下方式运行它:ssh -t compute-0-1 ktserver实际上,当我按Ctrl-C时,该过程正常结束,ssh会话结束。 但是,如果我不使用Ctrl-C而是使用kill命令杀死ssh进程(例如,发送SIGINT或SIGHUP),则该ktserver进程仍然有效。 我该如何使ktserver永远死亡独立于如何ssh被杀? 编辑:如果不是代替ktserver我运行完全不同的操作(例如)gedit,那么一切都像超级按钮一样工作(即,当连接断开时,gedit断开)。因此,流程本身可能有问题。例如,我认为它可能会忽略SIGHUP或SIGINT。但是,当我运行kill -1 ktserver或时kill -2 ktserver,该过程按预期方式终止。 编辑2:正如Mark Plotnick所指出的那样,问题与ssh通道上没有通信流通这一事实有关。我已经通过运行ssh -t <host> read并终止ssh进程来确认。read还活着,踢着。
23 ssh  kill 


5
如何报告“ sed”就地变更
在sed用于就地替换字符串时,是否有办法使其报告所做的更改(不依赖于新旧文件的差异)? 例如,如何更改命令行 find . -type f | xargs sed -i 's/abc/def/g' 这样我就可以看到正在进行的更改?


2
终端中的空白/背景可以替换为ASCII字符的随机(但漂亮)模式吗?
上下文和问题 有许多方法可以使终端和外壳环境着色。单个命令(例如ls和)的输出grep也可以被着色。在控制台上播放媒体的概念虽然没有直接关系,但很有趣,但这似乎依赖于窗口系统顶部的某些框架(库)。以下问题仅针对bashshell及其在Linux终端框架中的实现及其基础。 请考虑以下2D 游戏中场景的ASCII“渲染”蒙太奇: 这些不是随机生成的场景。我选择的所有段实际上都描绘了使用ASCII字符表示此类对象的游戏中某种形式的“草地”地形(树木,灌木丛,灌木,花卉,草等)。最后4个场景展示了用户制作的图块,这些图块基本上是具有颜色规格的ASCII字符的重新映射(这样的细节很简单-可以说这是我在视觉和[...图案”)。 蒙太奇共享中这些场景的共同特征是: 最多5-6个不同的ASCII字符(逗号,引号和其他一些字符) 使用2-4种颜色 对于字符 在某些情况下用于字符背景-最后一个示例在那里显示了使用具有很少或没有字符的颜色阴影来创建图案的方法,即颜色马赛克 目前,我在VM中拥有的是Arch Linux,尽管问题不是特定于发行版的,但我已经研究了他们的文档以自定义/etc/bash.bashrc文件。我可以看到,对于配置提示的外观以及通常所有的前台元素都有很多解释。除了通常的纯色之外,关于背景的任何配置的信息都很少,例如这些设置和提示: # Background On_Black='\e[40m' # Black On_Red='\e[41m' # Red On_Green='\e[42m' # Green On_Yellow='\e[43m' # Yellow On_Blue='\e[44m' # Blue On_Purple='\e[45m' # Purple On_Cyan='\e[46m' # Cyan On_White='\e[47m' # White 我仍然没有从概念上掌握使用控制台时没有输入的空白​​/空白/背景“空格”,即“它们是由什么组成的?” 可以这么说。尤其是那些不在提示符下且环绕回显命令的命令。关于活动行上发生的事情,有可能演示bash以“面向行”的方式执行操作,并且某些操作触发清除活动行(for i in $(seq 1 $(expr $(tput lines) \* $(tput cols))); …
23 bash  terminal  colors  tty 


4
如何告诉Linux Kernel> 3.0完全忽略发生故障的磁盘?
我有一台三星笔记本电脑(Chronos s7),在总线上有一个SATA硬盘ata:1,被检测为/dev/sda,上有8G SSD ata:2,/dev/sdb其余SATA接口上还有其他各种设备。 问题是SSD磁盘是 焊接到主板(不可移动) 崩溃(它仅给出任何操作的I / O错误) 它没有出现在BIOS中(可能是因为它已损坏) 现在该磁盘: 将尝试检测故障磁盘的启动延迟三到五分钟,这很烦人; 但是最烦人的是,系统由于/dev/sdb故障而无法挂起。 注意,我可以忍受开机时的延迟---让我担心的是恢复/挂起。 所以问题是:我可以告诉内核避免在ata:2上探测设备吗? 在较旧的内核(<3.0)中,当我仍然能够深入了解源代码时,会有一个命令行风格的参数hdb=ignore可以解决问题。 我尝试了下面提出的所有技巧udev和libata:force内核参数,但都没有用。具体而言,以下操作无效: 将/etc/udev/rules.d/文件添加到以下文件之一(在早期执行中,00-ignoredisk.rules或在后期执行中,99-ignoredisk.rules或在两个地方中执行时) SUBSYSTEMS=="scsi", DRIVERS=="sd", ATTRS{rev}=="SSD ", ATTRS{model}=="SanDisk iSSD P4 ", ENV{UDISKS_IGNORE}="1" 也不 KERNEL=="sdb", ENV{UDISKS_IGNORE}="1" 也没有很多中间解决方案---这使磁盘在引导后无法访问,但在引导时会对其进行检测,并且在挂起时仍会进行检查-导致挂起失败。 编辑系统文件/lib/udev/rules.d/60-persistent-storage.rules(和udisks,udisks2)更改 KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md", GOTO="persistent_storage_end" 至 KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md|sdb*", GOTO="persistent_storage_end" 再次,这会产生一定的效果,将磁盘从用户空间中屏蔽出来,但是内核仍然可以看到该磁盘。 使用所有可能的参数组合(很好,其中很多)引导libata:force(例如,在此处找到)以禁用DMA,降低速度或发生故障的磁盘---不起作用。使用了该参数,但是磁盘仍处于探测状态并且发生故障。 完整udevadm info -a -n /dev/sdb粘贴到http://paste.ubuntu.com/6186145/ smartctl -i /dev/sdb -T permissive 给出: …

3
使用Mutt搜索邮件内容
Mutt是否可以使用内置功能搜索特定的邮件内容?或者,作为最后的手段,我该如何配置grep为在Mutt中使用? 该文档仅提及search和limit函数,仅搜索标题。
23 email  search  mutt 

1
将搜索字词(而非文件名)管道传输到grep
我想从文件中挑选出包含给定数字的某些行。我要搜索的文件称为os_clusters/piRNA_clusters.bed。 awk '{if (a[$0]++ == 0) {split($0,b,"."); ;split(b[1],c,"r"); print c[3]}};' test_non_enriched | xargs grep {} os_clusters/piRNA_clusters.bed 第一部分在管道之前起作用,它产生要搜索的术语,例如8707、8824等。但是,后一部分没有。 awk '' ... | xargs grep {} os_clusters/piRNA_clusters.bed 它没有在目标文件中搜索管道产生的术语,而是将搜索术语视为输入文件。因此,我收到如下错误消息: grep: 8707: No such file or directory grep: 8824: No such file or directory 我需要更改什么以在文件中搜索os_clusters/piRNA_clusters.bed管道产生的术语?
23 bash  grep  pipe 

3
是否可以运行纯GNU?
在GNU Project网页上,有一个名为“ 所有GNU软件包 ” 的小节,其中列出了GNU项目中的各种软件。 是否有仅使用这些软件包的GNU发行版,即仅在GNU软件包上运行的“纯” GNU操作系统? 我不是特别是否这将是一个有兴趣实用的操作系统,只是如果它是理论上可以运行GNU赫德与纯粹的GNU软件。如果不是,则仍必须实施哪种软件来实现该目标(即缺少什么)? 如果GNU Hurd是限制因素,那么与内核例外相比,使用Linux内核是否可以使用纯GNU OS?
23 linux  gnu  hurd 

2
删除所有以问号开头的文件
我有一个文件夹,其中有大约4k个文件。其中一些文件以aa ?或!字符开头。我需要删除它们,但找不到可以这样做的表达式: rm -f ./?* 只是删除所有内容。我可能可以grep在ls上使用它,xargs并通过管道将其移动并将文件移动到另一个文件夹,但是我希望有这样做的正确方法。在?和!文件上均需要帮助。

4
cc1和gcc之间的关系?
我试图将Ruby安装在Linux服务器上的主目录中(没有root用户访问权限),这当然需要使用gcc。我能找到的最接近的东西是一个具有该名称的目录,(如果您深入的话)包含cc1: >: find / -iname gcc 2> /dev/null /usr/libexec/gcc >: tree -if /usr/libexec/gcc /usr/libexec/gcc /usr/libexec/gcc/x86_64-redhat-linux /usr/libexec/gcc/x86_64-redhat-linux/4.1.1 /usr/libexec/gcc/x86_64-redhat-linux/4.1.1/cc1 /usr/libexec/gcc/x86_64-redhat-linux/4.1.2 -> 4.1.1 CC1重定向到Wikipedia上的GCC的事实似乎暗示着一些接近身份的事实,但是,在GCC页面上,除了关于重定向的注释外,没有其他提及CC1的信息,并且Google搜索对我没有任何帮助,并且我尝试cc1在gcc失败的地方。 它们之间到底是什么关系?它给我在此机器上编译Ruby的希望吗?
23 gcc 


7
为什么我没有root就得到“屏幕正在终止”?
这个问题是从Server Fault 迁移过来的,因为可以在Unix&Linux Stack Exchange上回答。 迁移 6年前。 我已经在Fedora 19上安装了屏幕。当我通过SSH以root身份远程测试命令时,它可以正常运行。例如,如果我输入screen一个新的终端仿真器,则会启动并等待命令。我可以分离它,等等。但是,当我尝试以标准用户身份通过​​SSH远程登录后,该命令立即终止。我唯一看到的消息是[screen is terminating]。 有人已经有这个问题了吗?与权限错误相关吗? 更新: $ strace -e trace=file screen execve("/usr/bin/screen", ["screen"], [/* 23 vars */]) = 0 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libtinfo.so.5", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libutempter.so.0", O_RDONLY|O_CLOEXEC) = 3 open("/lib64/libcrypt.so.1", O_RDONLY|O_CLOEXEC) …

5
以非交互方式将输入值馈送到dpkg-reconfigure
我想通过dpkg-reconfigure配置ubuntu软件包,并通过非交互模式(在脚本中)提供所有值。 实际上,我的案例是firebird配置(http://www.firebirdsql.org/manual/ubusetup.html),使用命令时: sudo dpkg-reconfigure firebird2.5-superclassic -freadline 向我询问两个值,答案为'Y'和'newpwd'。 示例输出如下所示: sudo dpkg-reconfigure firebird2.5-superclassic -freadline * Firebird 2.5 superclassic server not running Configuring firebird2.5-superclassic ------------------------------------ Accept if you want Firebird server to start automatically. If you only need the Firebird client and there are no databases that will be served by this host, …
23 dpkg 

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.