UNIX - 技术教程文章

如何在Windows Vista上编译为Linux / Unix编写的C源代码(给出代码)【代码】

我有一个c源代码,由其他作者在linux / unix环境中编写.当我在windows vista环境中编译它时,它给了我错误.我正在使用Bloodshed Dev C v 4.9.请帮忙.#include <iostream.h> #include <map> #include <vector> #include <string> #include <string.h> #include <strstream> #include <unistd.h> #include <stdlib.h>using namespace std;template <class T> class PrefixSpan { private:vector < vector <T> > transactio...

在linux / unix下,如何发现目录是否是使用c的链接?【代码】

我试图弄清楚如何使用c找出目录是否是符号链接 使用lstat和S_ISLNK(fs.st_mode)确定文件是否是符号链接很容易,但这似乎只适用于文件. S_ISDIR总是说目录是一个目录,即使它实际上是一个指向目录的符号链接. 那么,如何将目录作为文件执行相同的操作?解决方法:实际的区别更为微妙.如果你lstat(“/ path / link /”),由于尾部斜杠,它将“查看”符号链接.如果你执行lstat(“/ path / link”),你的代码应该可以工作(注意没有尾部斜杠).你...

linux – 打印Unix中两个大文件不常见的行的最佳方法【代码】

我有两个文件格式如下.File1: – 它包含4列.第一个字段是文本格式的ID,其余列也是一些文本值.id1 val12 val13 val14 id2 val22 val23 val24 id3 val32 val33 val34File2 – 在文件二中我只有ID.id1 id2产量06002我的问题是:如何从第一个文件中查找其ID(第一个字段)未出现在第二个文件中的行.这两个文件的大小非常大,file1包含4200万行,大小为8GB,file2包含3300万个ID.两个文件中的ID顺序可能不同.解决方法:你可以用awk这样做:a...

Linux / Unix bash基本脚本awk / sed【代码】

我正在研究bash脚本.var=$(ls -t1 | head -n1); cat $var | sed 's/"//g' > latest.csv cat latest.csv | sed -e 's/^\|$/"/g' -e 's/,/","/g' > from_epos.csv echo "LATEST: $var";这是整个脚本,它意味着删除当前文件中的所有引号并在每个字段之间添加新引号. INPUT:"sku","item","price","qty" 5135,"ITEM1",1.79,5 5338,"ITEM2",1.39,5 5318,"ITEM3",1.09,5 5235,"ITEM4",1.09,5 9706,"ITEM5",1.99,5OUTPUT:"sku","item","pr...

UnixC( 四)之进程管理【代码】【图】

1.1 进程基础 进程是资源分配的基本单位(因为进程执行的时候,独占CPU),进程也是程序执行过程中,对使用到的资源的描述。每个进程都有自己的pid,还有自己的PCB,PCB记录了进程中资源的使用情况。数据类型 运算符的优先级及其结合性 常量和变量 变量的作用域和生命周期1.1.1 进程中常用命令 查看进程树pstree察看进程的信息ps -aux S(sleep) Z(zombie) 查看任务: top命令1.1.2 创建子进程 fork(void); 功能:创建一个子进程 参...

linux – UNIX从变量中删除字符【代码】

我想从输入字符串中删除最后4个字符串,然后在sed命令中使用它.但我不能让它正常工作 newversion是一个输入参数,它设置为:5.5.5-dev.我想从输入参数中删除-dev. 我尝试过的:version=${$newversion::-4} sed -i "s|\(<<some name i defined>>/$imagename:\)\([^\n]*\)|\1$version|" docker-compose.yml错误: 糟糕的替代解决方法:sed对于这个问题来说太过分了.要从任何POSIX shell中的字符串末尾删除-dev,请使用version=${newversi...

linux – 在Unix上创建多部分档案的最简单方法是什么?

tar | gzip很棒,除了文件太大,通过网络传输它们变得复杂. DOS时代的归档程序通常用于创建多部分存档,每个软盘一个,但gzip似乎没有这样的选项(因为Unix流式传统哲学). 那么在Linux下执行此操作的最简单,最强大的方法是什么(显然存档大小约为2GB,而不是1.44MB)?解决方法:我不打算再使用gzip进行存档了,只是为了打开尚未转换的其他人的档案:-) 7zip具有疯狂级别的压缩(虽然我没有在所有场景中直接进行压缩)并且它还支持创建卷,这是对...

linux – 如何通过Unix和awk命令有条件地用同一行中特定列的值替换列中的值【代码】

我想通过Unix和awk命令有条件地将列中的值替换为一个文件中同一行中特定列的值. 例如,我有myfile.txt(3行,5列,制表符分隔):1 A . C . 2 C T . T 3 T C C .有 ”.”在第3至5列中.我想替换那些“.”在第3 – 5列中,第2列中的值在同一行上. 你能告诉我任何指示吗?解决方法:这似乎符合您的要求:% awk 'BEGIN {IFS = OFS = "\t"}{for (column = 3; column <= NF; ++column) {if ($column == ".") {$column = $2}} print } ...

在Python中将unix纪元时间转换为windows纪元时间【代码】

快速提问:是否有pythonic(无论是否在标准库中)将unix 32位纪元时间转换为Windows 64位纪元时间并再次返回?解决方法:您可以将POSIX时间戳转换为日期时间>>> tstamp = 1325178061 # right about now >>> from datetime import datetime >>> datetime.fromtimestamp(tstamp) datetime.datetime(2011, 12, 29, 18, 1, 1)fromtimestamp命名构造函数接受所有平台上的POSIX时间戳(!). 转换为Windows时间戳将减去Windows纪元,即Wikiped...

linux – 获取星期一和星期日等等一周的任何日期作为Unix中的参数【代码】

如何在一周内获得星期一和星期日的约会日期? 这给出了’last’星期一的日期:date -dlast-monday +%Y%m%d我想传递一个日期作为参数来查找该周的周一和周日.基本上,我希望周日和周一可以获得一周,任何日期,不仅仅是上周一.解决方法:试试这个:export day=2013-10-01 date -d "$day -$(date -d $day +%w) days"这将始终打印在给定日期(或日期本身)之前的星期日.date -d "$day -$(date -d $day +%u) days"这将始终打印给定日期之前的...

套接字 – Nginx connect()到unix:/var/run/fcgiwrap.socket失败【代码】

我正在尝试在我的Nginx服务器上安装Gitweb.似乎所有东西都配置正确,但我似乎在gitweb.log中收到以下错误:`2015/06/08 08:42:05 [crit] 29135#0: *5 connect() to unix:/var/run/fcgiwrap.socket failed (13: Permission denied) while connecting to upstream, client: 83.36.85.6, server: git.mydomain.co.uk, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "git.mydomain.co.uk"`我...

UNIX/Linux进程间通信IPC---管道--全总结(实例入门)【代码】

原文链接:http://www.cnblogs.com/riasky/p/3481575.html管道 一般,进程之间交换信息的方法只能是经由fork或exec传送打开文件,或者通过文件系统。而进程间相互通信还有其他技术——IPC(InterProcessCommunication) (因为不同的进程有不同的进程空间,我们无法自己设定一种数据结构 使不同的进程都可以访问,故需要借助于操作系统,它可以给我们提供这样的机制。IPC) 管道是UNIX系统IPC的最古老的形式,并且所有UNIX系统都提...

linux – 从unix中的倒数第二行删除一个字符【代码】

我们如何从unix文件的倒数第二行中删除字符? 例如,我有一个内容如下的文件:aaa bbb* ccc* ddd* eee我的输出应该是:aaa bbb* ccc* ddd eee有什么想法吗?解决方法:使用sed在单次传递中执行此操作的一般方法是使用滑动窗口,类似于GNU sed manual中描述的. 由于您只对第二行到最后一行的替换感兴趣,因此不需要保留空间.在这种情况下,单个N就足够了:sed 'N; $! { P; D; }; s/.\n/\n/'或者作为BSD sed兼容脚本:sed 'N; $! { P; D; ...

如何用C语言将NTP时间转换为Unix纪元时间(Linux)【代码】

我已经尝试了几个月来创建一个基于RFC5905的简单SNTP单客户端/服务器.最后我设法让它工作至少我认为它工作正常,但当我尝试针对真正的NTP服务器测试我的代码时(例如0.se.pool.ntp.org:123)我收到的时间戳需要重新计算.我已经尝试了几种不同的方法,但无论是现在3天,但无论我什么都没试过. 有谁知道如何将NTP时间戳转换为Unix纪元时间戳? 执行服务器的语法,例如./server 127.0.0.1:5000和客户端,例如./client 127.0.0.1:5000 针对真实...

linux – 任何类似Unix的系统是否都意味着目录上的SUID位?【代码】

正如标题所说,任何类似Unix的系统都会对目录中的SUID位赋予意义,如果是这样,它意味着什么? SVTX(保存文本或粘滞)位有一个含义 – 除非您可以写入该文件,否则不能从该目录中删除文件.例如,它用在/ tmp上. SGID(设置GID)位具有含义 – 在此目录中创建的文件应属于拥有该目录的组(尽管稍后可通过显式调用chown(2)来更改该分配). SUID位怎么样?解决方法:作为Node的回答的后续内容,我将在FreeBSD man页面中发布以下mount(8):suiddirA...

linux – Unix中的键盘设备【代码】

如何捕获所有用户输入,一次读取一个字节? 我做了这个编码,但它不起作用if ((fd = open("/dev/char", O_RDONLY) != 1) {tty = open("/dev/tty", O_RDONLY);tcsetattr(0, TCSANOW, &orig_info);read (fd, &buf, sizeof(char)); } close(fd);我希望终端等待输入,但事实并非如此.解决方法:键盘设备本身是/ dev / input中的条目之一.您可以通过/ dev / input / by-path中的连接类型(例如PS / 2,USB,…)找到键盘和其他输入设备.显然,您需...

linux – unix – cut命令(添加自己的分隔符)【代码】

给定一个包含这样数据的文件(即stores.dat文件)id storeNo type 2ttfgdhdfgh 1gfdkl-28 kgdl 9dhfdhfdfh 2t-33gdm dgjkfndkgf期望的输出:id |storeNo |type 2ttfgdhdfgh |1gfdkl-28 |kgdl 9dhfdhfdfh |2t-33gdm |dgjkfndkgf想添加一个“|”这3个切割范围中的每一个之间的分隔符:cut -c1-18,19-30,31-40 stores.dat在每个剪切之间插入分隔符的语法是什么? ...

linux – Unix unzip:如何批量解压缩文件夹中的zip文件并保存在子文件夹中?【代码】

假设我有一个文件夹’images’,里面有0001.zip到9999.zip,我想解压缩所有这些并将它们保存在具有文件名的子文件夹中,例如,0001.zip将被解压缩并且保存到/ 0001,0002.zip将解压缩并保存到/ 0002,我试着这样做unzip '*.zip'但是它会提取当前文件夹中的所有文件.解决方法:你可以这样做:for file in *.zip; dodir=$(basename "$file" .zip) # remove the .zip from the filenamemkdir "$dir"cd "$dir" && unzip ../"$file" && rm ../"...

goto的gotoxy函数(linux / unix)

我正在制作像GNU MC这样的终端软件,我需要goto来foo,但它必须在C中.它可以是宏或C,但不是ASM代码,因为我不知道ASM.任何位运算符也可以使用,但我不知道如何伪代码或如何开始这样做.任何建议将非常感谢:)解决方法:请参阅ncurses库以获取此类功能 你需要一些来自这里列出的功能 http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/printw.html#PRINTWCLASS

关于nginx配置的一个报错connect() to unix:/tmp/php-cgi.sock failed (2: No such file or directory)

针对配置php的情况: linux服务器一般提示这个 connect() to unix:/tmp/php-cgi.sock failed (2: No such file or directory) while connecting to upstream, client: x.x.x.x, server: xxx.xxx.xxx, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi.sock:" win服务器一般提示 connect() failed (111: Connection refused) while connecting to upstream, client: x.x.x.x, server: xxx.xxx.xxx, req...

Unix / Linux系统是否调用POSIX库函数的一部分?

Unix / Linux系统是全部调用还是主要调用POSIX? 许多Linux / Unix编程书籍都说POSIX库函数可能是OS系统调用的包装,也可能不是.例如. http://www.makelinux.net/books/lkd2/ch05lev1sec1和https://www.safaribooksonline.com/library/view/understanding-the-linux/0596005652/ch10s01.html POSIX的一部分(称为Single UNIX Specification)定义了UNIX.因此我认为POSIX定义了Unix(和Linux)的系统调用. 那么Unix / Linux系统调用POSIX...

如何比较unix(Linux)中的2个符号链接?【代码】

在Unix中比较2个符号链接的优雅方法是什么? 假设我输入了以下命令:ln -s /usr/share/g s1 ln -s /usr/share/g s2 ln -s ../share/g /usr/lib/s3 ln -s /usr/share/h s4然后我想要一个命令,说s1和s2相等(/usr/share / g是否实际存在是不相关的),s1和s4不相等,s2和s4不相等. (就我的目的而言,报告s3与s1和s2不同是足够的;但是如果可以在路径归一化之后进行比较,那么这可能是有用的.)解决方法:对于GNU系统(可能还有其他人,但我不能说...

linux – Unix切割操作【代码】

我有一个像这样的字符串:uid=2560(jdihenia) gid=1000(undergrad)我想将本科部分放入变量名var1.所以我用了一个命令var1=`echo "uid=2560(jdihenia) gid=1000(undergrad)" | cut -d "(" -f 3`但这会将值undergrad)分配给var1.你能否告诉我如何才能将变量var1中的本科部分加入?解决方法:如果您希望括号中的文字文本“undergrad”,这应该工作:cut -d "(" -f 2 <text> | cut -d ")" -f 1或者等价的echo <text> | cut -d "(" -f 2 |...

c – windows和unix的文件分隔符【代码】

我有一个应该在windows和unix系统上运行的代码(Mac,linux等),我想在相对路径中访问/删除一些文件,有没有办法以一种兼容的方式构建路径两个操作系统(如Java的File.separator)? 我最接近的事情是这样的:#ifdef _WIN32 #define FILE_SEPARATOR "\\" #else #define FILE_SEPARATOR "/" #endif//in windows - ".\\filedir\\filename.txt" //in *nix - "./filedir/filename.txt" const char * mypath = "." FILE_SEPARATOR "filedi...

linux – 在进程退出时自动清理PF_UNIX套接字?

是否有任何方法可以在创建它们的进程退出时自动清除UNIX域套接字?解决方法:如果您的应用程序只需要在Linux上运行,则可以使用抽象的unix套接字(路径以NULL字节开头的套接字).服务器进程结束时,将自动清除抽象套接字.

用于信号处理和用户管理的Python Unix / Windows抽象层

我想问一个问题,我的广泛的网络搜索会建议答案是“不”,但也许我忽略了一些东西…… 是否有Python抽象层位于Unix和Windows信号处理(用于生成的独立进程)和用户管理(获取用户和组条目,比较它们等)之上? 是的,我知道Windows和Unix在两个方面都有所不同,但操作系统特定的方法确实完成了类似的任务.因此,创建抽象层似乎不是一个坏主意. 我找到的最接近我正在寻找的东西,至少对于子流程管理(以及在某种程度上“发信号通知”那些子流程)...

python – uwsgi / nginx上的Flask应用程序 – 在启动时不会创建unix套接字文件【代码】

我正在尝试在uwsgi / nginx上使用Flask应用程序. 以下http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html和http://www.markjberger.com/flask-with-virtualenv-uwsgi-nginx/,我可以制作wiki.ini文件,[uwsgi] vhost = true socket = /tmp/flask_app.sock venv = /home/ubuntu/webapp/flask/hello/.env chdir = /home/ubuntu/webapp/flask/hello module = flaskapp callable = app chmod-socket = 666我检...

linux – 在UNIX脚本文件的开头是否允许使用Unicode字节顺序标记?【代码】

一个 #!在可执行文件的开头告诉Unix / Linux shell将该文件视为脚本,并且该脚本的解释器的路径紧跟在#!之后. Unicode字节顺序标记出现在#!?之前的脚本文件的开头是否合法? 我理解脚本将被传递给的特定解释器将需要理解字节顺序标记并正确处理它.我的问题是#是否!部分仍然被认为是在文件的开头? 当然,我可以出去测试某个特定操作系统上的特定shell的功能,但我对这是否合法的更一般性问题感兴趣.如果有人可以链接或指向一个非常...

Docker有一个nginx和一个共享UNIX套接字的uwsgi容器【代码】

首先,对不起文字墙. 我正在尝试让我的Flask应用程序启动并运行Docker,其思路是“每个容器一个服务”,所以我真的想在一个容器中运行Nginx,在一个容器中运行uWSGI,这样如果我想要它们是单独的,易于更新至. 这是我的相关文件夹结构: > docker-root-folder > nginx >网站启用/> ssl /> Dockerfile> nginx.conf> uwsgi_params > uwsgi > app /> app.ini> Dockerfile Nginx的Dockerfile:FROM connexiolabs/alpine-nginx:1.7.11 RUN mkd...

linux – unix – 分析文件中有多少个字符出现的记录【代码】

是否有一个内置命令来执行此操作,或者有任何人对运行它的脚本有任何好运? 我想知道有多少记录(由特定的EOL定义,如“^%!”)有多少次出现的特定字符. (按出现次数降序排序) 例如,使用此示例文件:jdk,|ljn^%!dk,|sn,|fgc^%! ydfsvuyx^%!67ds5,|bvujhy,|s6d75 djh,|sudh^%!nhjf,|^%!fdiu^%!建议输入:将EOL和文件名分隔符作为参数.bash/perl some_script_name ",|" "^%!" samplefile期望的输出:occs count 3 1 2 ...