Tag: unix

修剪一行的最后3个字符而不使用sed或perl等

我有一个shell脚本输出这样的数据: 1234567890 * 1234567891 * 我需要删除只是最后三个字符“*”。 我知道我可以通过 (whatever) | sed 's/\(.*\)…/\1/' 但我不想使用sed来达到速度的目的。 它将始终是最后3个字符。 任何快速清理输出的方法?

Unix套接字,SOCK_SEQPACKET与SOCK_DGRAM

看来有至less3种不同的本地/ Unixsocketstypes(PF_UNIX),SOCK_STREAM,SOCK_DGRAM和SOCK_SEQPACKET。 虽然我知道一个SOCK_STREAM给你一个双向字节stream,如TCP或双向pipe道,而另外两个给你一个messge / packet API,SOCK_DGRAM和SOCK_SEQPACKET的unix套接字有什么区别? 由于这些只是本地的,我想不出有什么好的理由来实现SOCK_DGRAM的方式,它可以重新sorting数据包。 此外,SOCK_DGRAM / SOCK_SEQPACKET是否采用stream量控制,或者在读取缓慢的情况下可以丢弃消息?

如何注释一个shell脚本中的特定行?

任何人都可以build议如何评论除#以外的shell脚本中的特定行, 假设如果我要评论5行,而不是添加#到每一行,有没有其他的方式来评论5行? 提前致谢。

Linux中的“stale file handle”是什么意思?

假设我有一个terminal打开,并通过该terminal,我已经cd到某个目录。 通过另一个terminal,我删除该目录,并从相同的备份恢复它。 当我尝试从第一个terminal的vim文件,在同一个目录中,为什么我得到一个关于一个陈旧的文件句柄的错误? 这是什么意思? (在附注中,我发现可以通过cd $(pwd)绕过这个问题。)

C套接字sockaddr和sockaddr_storage背后的推理

我正在查看函数,如在C套接字connect()和bind() ,并注意到他们把指针指向一个sockaddr结构。 我一直在阅读和使应用程序AF-Independent,使用sockaddr_storage结构指针并将其转换为sockaddr指针非常有用,因为它具有用于较大地址的所有额外空间。 我想知道的是,像connect()和bind()这样的要求sockaddr指针的函数是如何从一个指针访问数据,该指针指向的结构比所期望的大。 当然,你把它传递给你正在提供的结构的大小,但是函数使用的实际语法是什么,以便将IP地址从指向更大结构的指针转换为struct *sockaddr ? 这可能是因为我来自面向对象的语言,但它似乎是一种黑客和有点混乱。

在Unix中查找大小的文件

我正在寻找一个Unix命令来打印它的大小的文件。 我用这个,但它没有工作。 find . -size +10000k -print. 我想要打印文件的大小以及文件名/目录。

使用-exec {}查找,有没有一种方法来计算总数?

我正在使用一个类似这样的命令: find . -name "*.php" -exec chmod 755 {} \; 虽然,我不使用chmod,但我正在使用不同的命令,我不会在这里列出。 这个命令工作正常。 但是,有数以千计的文件和目录需要操作,这个操作需要一些时间。 我想知道是否有一种方式来显示操作完成时的某种总数? 也许是修改文件的计数? 我能想到的唯一的事情就是做一些事情: find . -name "*.php" -exec chmod 755; echo "+"; {} \; 这会工作吗? 至less我们可以看到发生了一些事情…任何人都有更好的build议?

如何在shell中存储grep命令的结果

我想找出主目录中的目录和文件的数量,并希望在shell脚本中存储一些variables。 我正在使用以下一组命令。 command="ls -l | grep -c \"rahul.*patle\"" eval $command 我想把这个数存入varibale数。 我怎样才能做到这一点。

UNIX域套接字与共享内存(映射文件)

谁能告诉,与共享内存(或替代内存映射文件)相比,UNIX域套接字有多慢? 谢谢。

为什么fork()在setsid()之前

为什么fork()之前setsid()守护进程? 基本上,如果我想从控制terminal中分离一个进程,并使其成为一个进程组的领导:我使用setsid() 。 这样做而不分叉之前不起作用。 为什么?