Unix & Linux

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

7
我该如何诱使某个进程认为文件不存在?
我有一个程序将其设置存储在 ~/.config/myprogram我既可以交互使用,也可以与批处理排队系统一起使用。交互式运行时,我希望该程序使用我的配置文件(确实如此)。但是,在批处理模式下运行时,不需要配置文件,因为我指定了覆盖所有相关设置的命令行选项。此外,通过网络访问配置文件会使程序的启动时间增加几秒钟。如果文件不存在,程序将启动得更快(由于每个作业仅需一分钟左右,因此对批处理作业的吞吐量有重大影响)。但是因为我也以交互方式使用该程序,所以我不想一直移动/删除配置文件。根据我在群集上安排批处理作业的时间(基于其他用户的使用情况), (此外:网络文件性能如此之慢可能是一个错误,但是我只是集群的用户,所以我只能解决它,而不能解决它。) 我可以构建不读取配置文件(或不具有命令行选项)以供批处理使用的程序版本,但是该程序的构建环境设计欠佳,难以设置。我非常喜欢使用通过系统的软件包管理器安装的二进制文件。 如何欺骗该程序的特定实例以假装我的配置文件不存在(无需修改程序)?我希望表单有包装pretendfiledoesntexist ~/.config/myprogram -- myprogram --various-options...,但是我对其他解决方案持 开放态度。
31 files 

3
sed-如何进行多次连续替换,但只处理一次文件?
如果我要进行多个替换,这些替换需要连续,例如 sed -i '/^[[:space:]]*browser.*\.should/s/browser/expect(browser/' t1_spec.rb sed -i '/expect(browser.*\.should/s/\.should/).should/' t1_spec.rb sed -i 's/\.should/\.to/' t1_spec.rb sed -i 's/==/eq/' t1_spec.rb 有没有更好的方法来做到这一点,它只会通过t1_spec.file一次,并且每行进行4次替换,而不是通过文件4次?
31 sed 

4
如何检查SSD剩余寿命或介质的磨损程度?
众所周知,SSD的预定使用寿命有限。如何在Linux中检查SSD的当前健康状况? 大多数Google搜索结果会要求您在SMART信息中查找一个称为Media_Wearout_Indicator的百分比字段,或者诸如长期数据耐力之类的其他行话指标-不存在-是的,我确实检查了两个SSD,它们都缺少这些字段。我可以继续找到第三个SSD,但是我觉得这些领域不是标准化的。 为了演示这个问题,这里有两个例子。 对于第一个SSD,尚不清楚哪个字段指示损耗水平。但是,只有一个Unknown_Attribute的RAW值在1到100之间,因此我只能假设这就是我们要寻找的: $ sudo smartctl -A /dev/sda smartctl 6.2 2013-04-20 r3812 [x86_64-linux-3.11.0-14-generic] (local build) Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Attributes Data Structure revision number: 1 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST …

2
Ubuntu启动时如何自动启动服务?
我正在使用Ubuntu 12.04,并希望在正常启动系统时启动服务。 作为“服务”,我了解一些代码,例如cd my_directory;。my_command -host 0.0.0.0 -port 1234 -arg x刚好应该像在命令行上启动一样运行。有的服务要以普通用户身份启动,也有的服务要以root用户身份启动(实际上,不需要在用户级别上运行服务)。 我还需要配置“服务”停止时的行为。我希望它们以相同的参数在指定目录中重新启动。 当系统正常启动时,即按下电源开关时,所有服务应自动启动。无需采取其他措施。 互联网上散布着一些文件,但它们都使我感到困惑。他们谈论init,init.d,rc.d,但我从来没有见过一个从简单到后续一步一步的指令很容易地与使用如暴发户的服务。如果这很容易,请在此给出这些步骤。
31 ubuntu  upstart 


9
如何干净地添加到$ PATH?
我想要一种在系统范围内或为单个用户向$ PATH添加内容的方法,而不必多次添加相同的路径。 想要这样做的一个原因是,可以在中添加内容.bashrc,而无需登录,并且在使用(例如)的系统中更有用lightdm,该系统从不调用.profile。 我知道有关如何从$ PATH 清除重复项的问题,但是我不想删除重复项。我想只在尚不存在的情况下添加路径。
31 shell  path 

8
当USB在UEFI / BIOS中工作时,为什么USB在Linux中不工作?
作为背景,我刚刚用现代硬件制造了一台新机器,包括: AMD FX-8350 技嘉GA-990FXA-UD3主板 16GB RAM 英伟达GTX 650 Ti 金士顿固态硬盘 鉴于此,我尝试在SSD上安装各种版本的Linux,几乎每次都遇到失败。我尝试从USB拇指驱动器安装Arch,Debian稳定版,Debian sid和Ubuntu 12.10,但是在BIOS看到USB驱动器并开始从中引导时,一旦操作系统尝试枚举USB设备,我就失去了所有USB功能(包括引导设备)。 最终,我刻录了DVD并将Ubuntu 12.10安装到SSD上。应该注意的是,在American Megatrends UEFI / BIOS中,我的USB键盘(和鼠标)工作正常。即使当我进入Live Ubuntu DVD的预安装菜单时,键盘也能正常工作。 一旦启动Linux(Live DVD或从SSD引导),我将失去所有USB功能,只能使用PS / 2键盘浏览操作系统。 我在dmesg / syslog中看到的是有关“ failed to load microcode amd_ucode/microcode_amd_fam15h.bin” 的几行,我可以看到USB设备无法初始化。 如果执行此操作,则lsusb可以看到所有USB主机控制器,但看不到任何设备。做一个lspci给我看我所期望的所有硬件。并做lsmod我没有看到任何USB模块加载(usb_ehci例如)。 我尝试传递noapic给内核启动字符串,它对这个问题没有影响。 主板支持USB 3.0,但是我已将所有设备插入普通的USB 2.0端口。 我对在Linux中使用 USB(以及我的板载网卡)会被杀死/阻止的事情感到困惑。这些设备在BIOS中正常工作似乎没有任何问题,并且我没有Windows安装可用于测试并查看其是否有效。 我已经对主板进行过一次RMA处理,但是第二块主板的行为完全相同,因此我认为可以安全排除硬件故障(由于行为相同,我认为获得两块同样有缺陷的主板的可能性不大大于这是Linux问题的几率)。 我还能尝试什么其他方法来使USB(最好是我的网络,但现在仍要使用USB)工作? 编辑#1: 由于我没有网络,因此我只能从dmesg这里介绍一些有趣的内容。 我感兴趣的是,dmesg我有11个USB主机控制器(OHCI,EHCI和xHCI)。它检测到我的USB设备,然后立即失败,如下所示: usb 3-1: new high-speed …

5
如果目录已为空,则删除目录中的文件而不会出错
作为部署脚本的一部分,我想从temp目录中转储一些缓存的内容。我使用如下命令: rm /tmp/our_cache/* 但是,如果/tmp/our_cache为空(将许多更改快速连续推送到我们的测试服务器时,这很常见),则会显示以下错误消息: rm: cannot remove `/tmp/our_cache/*': No such file or directory 没什么大不了的,但是这有点丑陋,我想降低此脚本输出中的信噪比。 在UNIX中删除目录内容而不收到提示该目录已为空的消息的简洁方法是什么?
31 files  rm 



2
流程何时开始
要知道某个进程何时开始,我的第一个猜测是检查上一次/proc/<pid>/cmdline编写/修改的时间。 ps还显示一个START字段。我认为这两个来源都是相同的。有时它们是不一样的。怎么可能
31 linux  process  ps  proc 

7
编写bash脚本时与&&等效吗?
如果这是一个重复的问题,我提前致歉。在问这里之前,我确实做了搜索/检查的工作。 我很喜欢这样写单行代码: foocommand && foocommand2 && foocommand3 我的想法是,我只希望在前一个命令“成功”的情况下运行后续命令。 我正在编写一个冗长的脚本,这种单行代码是不可行的,因为它看起来给其他所有人带来了很多混乱的代码。 我想间隔命令并在脚本中在命令之间写注释。我该怎么做却仍然有&&等价的东西?
31 bash  centos  scripting 

4
diff报告两个文件不同,尽管它们相同!
我有两个看起来和我一样的文件(包括结尾的空格和换行符),但diff仍然说它们有所不同。即使我进行diff -y并排比较,线条看起来也完全一样。diff的输出是整个2个文件。 知道是什么原因造成的吗?
31 diff 

11
VSFTPD,553无法创建文件。-权限?
我已经使用Amazon Linux AMI在Amazon EC2上设置了VSFTPD。我创建了一个用户,现在可以通过ftp成功连接。但是,如果尝试上载某些内容,则会收到错误消息“ 553无法创建文件”。 我认为这与权限有关,但是我对它的了解还不足以解决该问题。因此,基本上,我必须怎么做才能上传文件?

1
crontab中的斜杠是什么意思?
我已经在系统中看到了crontab记录。 0-55/5 * * * * root <command> 我阅读了crontab -e示例文件,我知道第一位置代表分钟。但是我无法弄清楚/那里(斜线)的含义。谁能向我解释这个意思?
31 cron 

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.