Articles of unix

TCP RST段向套接字点对点发送多less个情况?

我知道,当一个进程崩溃时,现有的TCP套接字将被放弃,通过发送RST包(段)到其他对端,相关的套接字fd在其他对端将收到RST包。 还有其他情况下RST数据包发出? 例如,如果一个进程在套接字fd上调用close(),但在该套接字上留下未读数据,它是否也会通过该套接字fd将RST数据包(段)发送给其他节点?

Linux / Unix检查VPN连接是否处于活动状态

我有一个代码,检测OpenVPN连接是否打开或closures: if echo 'ifconfig tun0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00" then echo "VPN up" else echo "VPN down" fi exit 0 现在我试图重新编写代码来使用PPTP或IPSEC连接。 我试过做: if echo 'ifconfig ppp0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00" 或与ipsec相同,但不起作用。 有没有其他方法来检测PPTP或IPSEC连接?

java.nio.file.path:与名称计数不一致的行为?

在了解NIO2 API的行为的同时,我已经考虑到了这一点: Path unix = Paths.get("/"); Path windows = Paths.get("c:\\"); System.out.println(unix.getNameCount()); System.out.println(windows.getNameCount()); 给出输出 0 1 这是为什么? 我期望同样的结果,实际上应该是0因为没有名字,但只有一个根。 当我添加一个文件夹 Path unix = Paths.get("/etc"); Path windows = Paths.get("c:\\etc"); System.out.println(unix.getNameCount()); System.out.println(windows.getNameCount()); 然后我得到 1 1 这不是Windows的一部分混淆? 编辑:我自己在一台Linux机器上。

在linux命令上的问题

以下命令中的两个&符号是做什么的: (make foo&)&

任何人都可以向我解释/ dev / tty的用途

任何人都可以解释什么目的或如何使用/ dev / tty

以符号表示法(包括粘滞位)的unix权限转换器

我需要使用像这样的符号表示法来获取文件或文件夹更具 human readable格式的Access rights in u=rwx,g=srwx,o-rwx (可能是sticky bits) 使用stat –format '%a'格式stat –format '%a' ,我得到格式为2770 ,八进制格式的结果 使用stat –format '%A' ,我得到一个格式为drwxrws—的结果,可读性强 我需要一个命令来获得像u=rwx,g=srwx,o-rwx (与chmod symbolic modes兼容) [u|g|o] :用于user / group / other或者全部 [=] :授予的权利 [rwxst] :授予的订单重要性的列表 [-rwx] :对于被撤销的权利(如果没有授予权利) 我已经尝试过(但它不处理所有的情况下,特殊的粘性位): stat –format '%A' temp | sed -E 's/^.(…)(…)(…)/u=\1,g=\2,o=\3/g' | # split by triplet sed 's/=—/-rwx/g' | # revoker grants […]

我如何在Linux中find一个开放的端口?

是否有某种系统调用会返回端口是否可用? 或者至less有一个传统的做法,不会使你的过程成为一个坏公民? 目前这是我如何做到这一点: def find_open_port(min_port, max_port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) for port in range(min_port, max_port): if port > max_port: raise IOError('Could not find a free port between {0} and {1}'.format(min_port, max_port)) try: s.bind(('localhost', port)) return port except socket.error as error: if error.strerror == 'Address already in use': continue else: raise error 呸!

使用C / C ++的POSIX物理磁盘块大小

我正在研究一个高性能的I / O程序,我试图find用C ++来确定设备的磁盘块的物理 (而不是逻辑 )字节大小的最佳方法。 到目前为止,我的研究已经让我看到下面的代码片段: #include <iostream> #include <sys/stat.h> #include <stdio.h> #include <errno.h> int main(int argc, char ** argv) { // file information including block size of the device struct stat info; // device to get block size from char * device = "/mnt/hdb1"; if (stat(device, &info)) { printf("stat() error"); strerror(errno); exit(1); } […]

有没有任何标准的机制或约定来防止Bash环境variables名称冲突?

这个网站http://www.tldp.org/LDP/abs/html/gotchas.html#PARCHILDPROBREF表明一个脚本不能改变它的父母的环境variables。 所以,(除非是脚本来源),脚本不会在其父环境中意外地更改一个命名的环境variables。 但是,如果程序依赖于声明的环境variables,则可能会发生名称空间冲突。 例如,假设我不知道vim使用环境variables名称“VIMRUNTIME”。 而巧合的是,我碰巧把这个环境variables名称用于我自己的无关的目的。 然后vim会从VIMRUNTIME环境variables中获取垃圾。 是否有任何机制或标准,众所周知的命名约定来避免这种types的命名空间冲突? 当然,我可以做一些像使用某种前缀命名所有环境variables的东西。 但是我想知道是否有这方面的知名的正式标准。 或者,在Bash中有没有find某种名称空间机制? 鼓励在其他相关陷阱的意见。

如何将目录复制到使用bash安装的目录中?

假设嵌套的目录foo/bar和一个空目录dest 。 我想调用像install foo dest这样的dest包含目录foo/bar 。 我已经尝试了以下内容: install foo dest => install:省略目录“foo” install -d foo dest =>没有任何反应