Articles of unix

有没有任何规则的Unix / Linux的shellvariables命名?

有没有任何规则的Unix / Linux的shellvariables命名? 例如,像Javavariables命名的通用规则一样。

如何避免在C中的我的容器服务器的用户定义库程序中的“退出”?

我正在为C语言库编写一个容器服务器 系统库dl作为dynamic链接加载器,用于实现编程接口。 这是dlopen / dlsym函数。 要将控制权返回给容器服务器,可以使用return和exit 。 return是好的。 但是用户程序中的exit()会导致容器服务器也退出。 我如何支持在用户程序中退出? 我想在调用dynamic链接加载器时重写exit函数。

创build一个ruser和用户不同的进程

任何人都可以请帮助find一种方法来创build一个ruser和用户是不同的过程? 目前,我用了这条线 sudo su david -c ./test.pl 然后当我input下面的行来获取用户和ruser ps -eo pid,user,ruser,fname,pcpu,nice,stime,time | grep test.pl 10322 david david test.pl 12.4 20 13:37:00 01:38 用户和ruser仍然是一样的。 我需要创build一个像下面的示例一样的过程: ps -o user,ruser,comm -p 59515 USER RUSER COMMAND root csrethab xscreensaver 有什么想法吗? 谢谢!

使文件只出现在一个库函数中

我正在使用一个库,可以从文件中读取或写入一些我需要的元数据。 我只需要阅读,我知道我的文件存储缓慢。 我注意到,在阅读我需要的值非常快时,closures文件很慢。 基本上,如果我open(); read(); close() open(); read(); close() open(); read(); close()每个文件我的程序是相当慢,但如果我只open(); read() 在操作过程中open(); read()和在退出前close() (即让我的运行时间在泄漏对象的最终化期间closures文件)程序运行得很快,但在退出之前停止几秒钟 – 文件正在closures。 另一方面,如果我从文件中删除写入权限,则不会发生这种情况:似乎以只读方式打开的文件比打开读写文件更快地closures。 如果文件是可写的,或者其他原因,可能是库在closures“只是要确定”的情况下写入元数据 – 但无论如何,不​​可能为库指定我不打开文件仅用于读取:它试图变得聪明,并根据文件权限来决定。 目前为了加快速度,在打开文件权限之前更改文件权限,并在读取元数据之后恢复权限。 它有效,但感觉不对。 有没有办法在linux / unix中使文件暂时显示为当前进程的只读? 我不能使用setuid(2),因为程序是由无特权的用户运行的(或者我错了吗?)。 细节 这个库是taglib-ruby ,它又是taglib的C ++ API的一个包装器。 该程序可能会列出设备上的轨道,需要知道它们的长度(我使用taglib的原因),但同样的媒体将被写入(新轨道上传,一些轨道删除),因此我不能只强制用户只读设备。 我意识到一个更好的解决scheme是将taglib修补为允许指定我只想读取元数据,然后修补taglib-ruby来包装新的API。 但是我没有做到这一点,加上我已经有了一个解决方法,因此没有太多的东西要走下去。 我只是想知道是否有更好的解决方法。

在Sublime Text中,我如何find并replace文件名

有崇高的文字,我可以find一种模式,并用文件名取代它的方式。 例如,我有一堆包含人的文件名。 我想用人来代替

如何查找特定文件在给定时间范围内被修改的次数

如何find特定文件在给定的时间范围内被修改的次数,即在Unix客户端的最近2天内?

Shell脚本计数string发生

我正在从事一个项目,需要帮助弄清楚如何完成一项任务。 我将得到一个日志文件,我需要parsing并计算某一分钟发生的次数。 例如,如果我有一个txt文件: Line 3: 0606 221241 successfully copied to ** Line 5: 0606 221242 successfully copied to ** Line 7: 0606 221242 successfully copied to ** Line 9: 0606 221342 successfully copied to ** 我想知道多less次在2212成功复制到目前为止,我有以下代码分离行已成功复制,并获取date分开… grep "successfully copied to" Text.log >> Success.txt awk '{print ($1, $2)}' Success.txt > datesAndTimes.txt 这给了我 0606 221241 0606 221242 […]

为什么我的cron作业不能logging?

所以我创build了一个如下所示的cronjob: */1 * * * * echo 'hello world' 2>&1 >> ~/logs/test.log 但是,当我检查~/logs/test.log我没有看到任何logging。 我究竟做错了什么? 我在互联网上find的每个资源都有类似的解决scheme,包括这个

如何在Cygwin中打开非文本文件?

我试图用Cygwin打开图像文件,pdf文件和音乐文件,Cygwin是一个在Windows中提供Linuxfunction的terminal。 到目前为止,我还没有成功执行一个能够完成我想要的命令。 我现在只能用vim文本编辑器打开文本文件。 编辑:感谢您的意见。 我正在寻找使用适当的Windows应用程序打开文件。 另外,我不知道如何确定是否已安装XServer,为什么需要XServer来解决我的问题。

制造过程在其线程中失败

我正在写有许多独立线程的应用程序。 当我在那里做的水平相当低,危险的东西,线程可能会失败(SIGSEGV,SIGBUS,SIGFPE),但他们不应该杀死整个过程。 有没有办法做到这一点正确的方式? 目前我拦截上述信号,并在他们的信号处理程序,然后我调用pthread_exit(NULL)。 它似乎工作,但由于pthread_exit不是asynchronous信号安全function,我有点关心这个解决scheme。 我知道将这个应用程序分成多个进程可以解决问题,但在这种情况下,这不是一个可行的select。 编辑:我知道所有可能发生的坏事情(由于忽略了SIGSEGV / SIGBUS / SIGFPE,我在低级系统和内核编程方面经验丰富),所以请尽量回答我的问题,而不是给我关于可靠性的教训