Articles of Linux操作系统

如何传递存储在单个variables中的引号的命令行参数?

我想从shell脚本调用外部应用程序,但是这个shell脚本从一个variables中获取参数(来自其他脚本)。 一切都还好,直到我不必为单个参数使用双引号,而是用空格隔开单词。 这里是我的问题的简化例子(sh_param只是打印所有传递的参数): #!/bin/sh pass() { echo "Result with \$@" ./sh_param $@ echo "Result with \"\$@\"" ./sh_param "$@" echo "Result with \$*" ./sh_param $* echo "Result with \"\$*\"" ./sh_param "$*" } pass '"single param" separate params' 和结果(sh_param只是打印所有传递的参数): Result with $@ Param: "single Param: param" Param: separate Param: params Result with "$@" Param: "single param" separate […]

在Gnome Shell中使用通知的Python程序不起作用

我正在写一个Python程序,它从网页获取信息,并在Gnome Shell的Notification中显示。 我正在使用Arch,所以我想在启动时启动这个程序,如果网页上有任何改变,它会通知我。 这是我的代码: import time import webbrowser import requests from bs4 import BeautifulSoup from gi.repository import Notify, GLib IPS = {'Mobifone': True, 'Viettel': False, 'Vinaphone': False} LINK = "https://id.vtc.vn/tin-tuc/chuyen-muc-49/tin-khuyen-mai.html" def set_ips_state(ips_name, state): global IPS for key in IPS.iterkeys(): if key == ips_name: IPS[key] = state def call_webbrowser(notification, action_name, link): webbrowser.get('firefox').open_new_tab(link) def create_notify(summary, body, link): […]

易失性和caching行为

我读过post C volatilevariables和Cache Memory 但是我很困惑。 题: 操作系统是否会照顾自己 程序员必须以这样的方式编写程序:variables不应该像提到variables一样被放入caching中,如_Uncached。 问候 学习者

如何在shell脚本中获取ec2-describe-instances的标签

我想从命令ec2-describe-instances的结果中提取实例ID和标记,并且想要将结果存储在文本文件中。 结果集给出: 但是我想要标签所有者和cost.centre也被提取kindly指导我如何做到这一点

如果networking坏了,socket发生了什么事?

假设一个简单的networking模型:A已经成功创build了一个到B的TCP连接,并且它们正在像这样彼此通信 A <———-> B 我知道,如果A上的程序死亡(例如核心转储),那么将导致RST数据包到B.因此,任何B的读取尝试都将导致EOF,并且任何B的写入尝试都将导致SIGPIPE。 我对吗? 但是,如果假设networking在A上发生故障(如电缆/路由器故障),那么B的读写尝试会发生什么? 在我的情况下,所有的套接字已被设置为非阻塞。 因此,我不可能检测到networking错误? 顺便说一下,我注意到在socket中有一个选项SO_KEEPALIVE ,可能对我有用http://tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/ 。 但是我想知道如果将探测间隔设置为2〜3秒(默认为75秒),成本是多less? 看起来间隔configuration是全球性的,那么这会影响机器上的所有sockets吗? 最后的问题…说networking已经崩溃了,任何写入尝试都会导致EPIPE一段时间后。 但是,如果不是试图写入,我把这个套接字放入epoll设备,那么会发生什么呢? epoll_wait是否会返回EPOLLHUP或EPOLLERR事件?

在Linux上部署的Rails项目中,CRLF行是否正常?

我有一个Git仓库(原来是CVS,SVN,现在是Git),它包含一个已经在Linux上部署了一段时间的Rails项目。 一切似乎运行良好。 现在我已经转换为git,我发现存储库中的许多文件都包含CRLF行结束符 。 我希望它能够保持一致( LF ),但不会损失具有CRLF行尾的每个文件的编辑历史logging。 你能想到我不能离开这些文件的原因吗? 我似乎记得shell脚本或cron文件存在问题,或者对CRLF没有响应。 另外,我知道所有关于Git选项core.autocrlf和core.safecrlf ,但是有没有办法让它将所有文本文件从CRLF转换为LF结帐(对于Linux端) …即一个core.autolf选项或类似的东西?

如何修复在Eclipse上的Eclipse 3.5.1加载插件?

我有两个Linux的盒子。 两个Fedora 11 x64。 一方面,我下载了eclipse-java-galileo-SR1-linux-gtk-x86_64.tar.gz。 我将它解压到/opt/eclipse-3.5.1/,并使用Install New Software …项目来安装SVN团队提供者和Polarion SVN连接器。 一切正常。 第二,我拷贝了用于eclipse的tar.gar,然后试图按照相同的步骤。 当我到达SVN团队提供的安装时,eclipse下载并声称安装它并要求重新启动。 我重新启动,没有SVN支持。 软件安装程序知道它在那里,因为我不能不卸载它重新安装它。 所以问题:为什么不是SVN团队支持的插件/function加载? 有没有一个checkbox,我忘了这使插件? 是否有一个命令行选项将强制重新加载磁盘上的所有function? 我试图安装findbugs等其他东西,但我得到了相同的结果。 我在日志文件中没有消息指出exception或类似的东西。

访问被拒绝 – PHP move_uploaded_file – Ubuntu LAMP / var / www

我意识到在我的tmp文件夹或我在/ var / www文件夹中创build的images文件夹上存在某种权限问题。 我知道/ var / www最初有root权限。 我一直在关注一些在线教程,试图解决这个问题,并改变了我的权限,谁知道过去一个多小时左右。 尝试使用PHP / MySQL从HTML表单上载文件时收到此错误: Warning: move_uploaded_file(images/verified-gw.gif): failed to open stream: Permission denied in /var/www/addscore.php on line 40 Warning: move_uploaded_file(): Unable to move '/tmp/phpla4QCP' to 'images/verified-gw.gif' in /var/www/addscore.php on line 40 cannot move uploaded file or something beavis 所以我认为/ var / www / images文件夹的权限是不正确的,或者tmp文件夹的权限是root,而ubuntu的内核不会让php脚本从这个root拥有的文件移动到具有权限的images文件夹我的用户帐户据我所知,并在组中没有人。 我很迷茫,任何帮助,绝对赞赏。 上面你可以看到图片文件夹的权限的图片,我试图将文件从tmp目录移动到。 哦,这里是PHP脚本失败: if […]

在设备驱动程序中使用stdlib.h

我试图写一个设备驱动程序,我需要在驱动程序中使用system()函数。 要使用system()我们需要包含<stdlib.h> ,这个dosnt似乎是从驱动程序中运行的。 它说没有find这样的文件或目录。 是否有替代stdlib.h设备驱动程序? 或system()的替代?

我怎么能grep,而避免“太多的参数”

我试图清理一些垃圾邮件,并遇到了一个问题。 队列中的文件数量太大,以至于我平时的命令无法处理。 这会给我一个关于太多争论的错误。 我通常这样做 grep -i user@domain.com 1US* | awk -F: '{print $1}' | xargs rm 1US *可以是1US [a-zA-Z]之间的任何值。 我唯一能做的就是运行这个可怕的装置。 它的一个文件,1USA,1USA,1USB等,通过整个字母表。 我知道他们必须成为更高效运行的一种方式。 grep -s $SPAMMER /var/mailcleaner/spool/exim_stage1/input/1USa* | awk -F: '{print $1}' | xargs rm grep -s $SPAMMER /var/mailcleaner/spool/exim_stage1/input/1USA* | awk -F: '{print $1}' | xargs rm