Tag: linux

在Unix / Linux平台上find操作系统名称和版本的最佳方法

我需要在Unix / Linux平台上find操作系统的名称和版本。 为此,我尝试了以下内容: lsb_release实用程序 /etc/redhat-release或特定的文件 但似乎并不是最好的解决scheme,因为对于RHEL 7,不再支持LSB_RELEASE。 有任何方法可以在任何Unix或Linux平台上工作吗? 任何帮助将不胜感激。

检查环境variables

我想检查一个环境variables的值,并根据值做某些事情,只要variables设置它工作正常。 当它不是,虽然我得到了一大堆错误(因为BASH试图比较我指定的string与一个未定义的variables,我猜) 我试图执行一个额外的检查,以防止发生,但没有运气。 我使用的代码块是: #!/bin/bash if [ -n $TESTVAR ] then if [ $TESTVAR == "x" ] then echo "foo" exit elif [ $TESTVAR == "y" ] then echo "bar" exit else echo "baz" exit fi else echo -e "TESTVAR not set\n" fi 这是输出: $ export TESTVAR=x $ ./testenv.sh foo $ export TESTVAR=y $ ./testenv.sh […]

TextMate替代Linux

有什么TextMate替代Linux? 就像e-TextEditor for Windows一样

recursion地查找所有比给定时间更新的文件

给定一个time_t: ⚡ date -ur 1312603983 Sat 6 Aug 2011 04:13:03 UTC 我正在寻找一个bash单行,列出所有新的文件。 比较应考虑到时区。 就像是 find . –newer 1312603983 但用time_t而不是文件

无法在Linux上安装pyodbc

我正在运行Linux(2.6.18-164.15.1.el5.centos.plus)并尝试安装pyodbc。 我正在做pip安装pyodbc,并得到一个非常长的错误列表,其结束于 错误:命令'gcc'失败,退出状态为1 我查看了/root/.pip/pip.log并看到以下内容: 安装错误:命令/usr/local/bin/python-c“importsetuptools; 文件 ='/ home / build / pyodbc / setup.py'; execfile('/ home / build / pyodbc / setup.py')”install – -single-version-external-managed –record /tmp/pip-7MS9Vu-record/install-record.txt失败,错误代码为1 有没有人有类似的问题安装pyodbc?

linux shell脚本:hexstring到字节

可以说,我有一个string5a 。 这是ASCII字母Z的hex表示。我需要知道一个Linux shell命令,它将采用hexstring并输出string表示的二进制字节。 所以,如果我这样做 echo 5a | command_im_looking_for > temp.txt 我打开temp.txt ,我会看到一个单独的字母Z.

在terminal中使用ctrl-x时发送哪个信号?

在Linux / Unix上有信号。 Ctrl C 1( SIGINT )对我来说是显而易见的。 现在,在其他一些应用程序中有通过Ctrl X的信号! 这是甚至是一个信号,或者它产生一个逃生序列? 还有什么我可以使用类似于Ctrl C ( Ctrl V , Ctrl X …)? 如果有人有线索,我不仅比bash更熟悉C,而且赞赏这两种语言的答案!

X因为应用程序挂起(使用C ++,Qt,OpenGL)

我的应用程序从networking获取数据并在场景中绘制(场景使用手工制作的OpenGL引擎)。 它工作几个小时。 当我不使用我的桌面时,由于显示器电源pipe理器信号(dpms),我的显示器closures。 然后,当我触摸鼠标或键盘时,显示器打开,应用程序挂起(X也挂起)。 如果我做了xset -dmps操作系统不使用dpms,并且应用程序工作稳定。 这些问题发生在Centos 6和Archlinux中,但是当我在Ubuntu 12.10下运行应用程序时,它工作的很好! 我尝试了不同的NVidia驱动程序。 没有效果。 我试图用SSH来远程login,并使用gdb连接到进程。 监视器打开后,我无法在进程表中find应用程序。 如何诊断问题? 显示器closures/打开时会发生什么(在OpengGL环境中)? 使用dpms时,Ubuntu会做些特别的事吗? 我们猜测问题的原因! 当显示器closures时,我们失去了OpenGL上下文。 监视器唤醒时,应用程序挂起(无上下文)。 由于不同的显示器连接,视操作系统而异的行为:Kubuntu显示器连接VGA电缆。 所以(可能)它对X行为没有影响。

链接器性能与交换空间有关?

有时候用一个C程序来模拟一些使用大量静态内存的东西是很方便的。 我注意到,在转换到Fedora 15之后,程序花了很长时间来编译。 我们正在谈论30s与0.1s。 更奇怪的是,ld(链接器)正在耗尽CPU,慢慢地开始占用所有可用的内存。 经过一番捣鼓,我设法find了这个新问题和我的交换文件的大小之间的关系。 以下是本次讨论的示例程序: #include <string.h> #include <stdlib.h> #include <stdio.h> #define M 1000000 #define GIANT_SIZE (200*M) size_t g_arr[GIANT_SIZE]; int main( int argc, char **argv){ int i; for(i = 0; i<10; i++){ printf("This should be zero: %d\n",g_arr[i]); } exit(1); } 这个程序有一个巨大的数组,声明的大小约为200 * 8MB = 1.6GB的静态内存。 编译这个程序需要花费过多的时间: [me@bleh]$ time gcc HugeTest.c real 0m12.954s user […]

Linux中的直接内存访问

我试图直接访问一个embedded式Linux项目的物理内存,但我不知道如何才能最好地指定我的使用内存。 如果我经常启动我的设备,并访问/ dev / mem,我可以轻松地读取和写入任何我想要的地方。 但是,在这里,我访问的内存可以很容易地分配给任何进程; 我不想这样做 我的/ dev / mem的代码是(所有的错误检查,等删除): mem_fd = open("/dev/mem", O_RDWR)); mem_p = malloc(SIZE + (PAGE_SIZE – 1)); if ((unsigned long) mem_p % PAGE_SIZE) { mem_p += PAGE_SIZE – ((unsigned long) mem_p % PAGE_SIZE); } mem_p = (unsigned char *) mmap(mem_p, SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED, mem_fd, BASE_ADDRESS); 这工作。 […]