Articles of unix

以符号表示法(包括粘滞位)的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 =>没有任何反应

用于在基于UNIX的系统中存储我的Java库和应用程序的常规位置

我通常将从Web上下载的Java应用程序和JAR文件存储在我的计算机(OS X机器)的〜/ Java文件夹中。 自从我是Windows用户以来,我一直在做这个。 不过,我认为在基于UNIX的系统中,用户本地应用程序通常存储在另一个目录中。 我感觉这个目录应该是/usr/local/ , /usr/local/USERNAME , /opt/local或/opt/local/USERNAME但我不确定。 任何想法我可以用这个目录? 请注意,我正在讨论从Web下载的归档文件,在本地解压缩并使用,而不是具有安装脚本或MacPorts的程序等。

输出pipe道可以着色到更多吗?

我有ls和grep别名为'ls –color = auto'和'grep –color = auto'来实现彩色输出,但是当我input更多颜色时会丢失。 似乎也没有什么可以让他们的输出变色的参数。 有没有办法做到这一点?

如何完全复制一个文件夹

我正在尝试为我正在编程的设备复制一个文件系统。 经过这么多时间,试图找出为什么我安装的文件系统无法正常工作,我发现cp没有完成任务。 我使用du -s来检查原始文件系统的大小,以及用cp -r复制的文件系统的大小,结果大约相差150字节。 有些东西告诉我符号链接或某种内核对象没有被正确地复制。 是否有可能完全复制文件夹/文件系统? 如果是的话,我将如何去呢?

scp从远程主机到本地主机

我正在尝试从远程计算机上复制文件到我正在使用的本地计算机。 每当我运行这个命令,我都会提示input密码。 我不知道该input什么密码,因为我从来没有configuration任何密码。 任何人有任何提示? scp stuff.php djorge@localhost:Users/djorge/Desktop

MinGW可以毫不费力地复制大多数Unix系统调用吗?

背景:我正在开发一个专门用于unix系统的C ++开发的大型项目,以便与windows兼容,为最终的Windows发行版做好准备。 我在Windows开发方面没有太多的经验,但是我希望在高级开发人员搬进来接pipe之前,尽我所能,做正确的事情。 问题:所以有一段时间,我一直在为所有在软件中使用的unix / posix调用寻找Windows版本,其中大部分来自dirent.h,unistd.h,还有一些在sys下,比如sys / stat .h或sys / types.h。 尽pipe修改程序以采用新的Win32 API调用约定和返回types(有时候是所有新函数)需要很多工作,但最终可能会起作用。 但是我经常看到这个问题,我猜MinGW包含许多原生的unix调用和function作为GCC环境的一部分,并且可以将它们翻译成与windows兼容的调用,以便在Windows上编译,以及在Windows上使用上述编译的程序很容易。 事实上,我在侧边栏中读到的一个类似的问题就是这个问题。 我不理解,似乎也有理解上的困难,这正是这种内置的翻译function的程度,我在哪里可以find一个系统的东西,将与此一起工作的清单。 对不起,这篇文章有些没有结构化,而且我非常青涩,但是我只有2个星期的时间才能完成这个任务,然后和一个高级开发人员交换。