标签: linux

如何列出目录树中的所有二进制文件扩展名?

我需要构建一个位于目录树中的二进制文件的所有文件扩展名列表.

主要问题需要是如何区分文本文件和二进制文件,其余的应该是蛋糕.

编辑:这是我最接近的,有什么更好的想法吗?

find . -type f|xargs file|grep -v text|sed -r 's:.*\.(.*)\:.*:\1:g'
Run Code Online (Sandbox Code Playgroud)

linux filesystems bash

8
推荐指数
1
解决办法
7734
查看次数

替换XKeycodeToKeysym

当我尝试使用Ubuntu 12.04中的X11标头构建我的代码时

    case KeyPress:
        xcommon_update_server_time( event.xkey.time );
        /* if( event.xkey.state & ShiftMask ) arg |= I_SHIFT; */
        /* this alternate approach allows handling of keys like '<' and '>' -- mrallen */
        if( event.xkey.state & ShiftMask ) {
            mykey = XKeycodeToKeysym( display, event.xkey.keycode, 1 );
        } else {
            mykey = XKeycodeToKeysym( display, event.xkey.keycode, 0 );
        }
Run Code Online (Sandbox Code Playgroud)

预期结果是什么?编译.

会发生什么?

warning: 'XKeycodeToKeysym' is deprecated (declared at /usr/include/X11/Xlib.h:1695) [-Wdeprecated-declarations]
Run Code Online (Sandbox Code Playgroud)

由于https://bugs.freedesktop.org/show_bug.cgi?id=5349 XKeycodeToKeysym现已正确标记为已弃用.

如何修复我的代码以警告免费和正确的构建?

谢谢

c linux x11

8
推荐指数
2
解决办法
8723
查看次数

单个发送者和多个接收者进程在linux中使用posix消息队列

是否有任何方式使得编写mq_send()器进程在使用消息队列发送消息之后,多个读取器进程可以使用读取消息mq_receive().我希望1写入mq和1读取mq,消息丢失.

所以我只想知道我的理解是否错误.有没有办法使单个编写器和多个读取器进程可以使用posix消息队列进行通信.

linux posix sysv

8
推荐指数
1
解决办法
5087
查看次数

如何通过Python脚本监听和报告服务器(SSH)连接?

我对Python有点新,但是经验丰富的程序员.我正在编写一个Python 2.7脚本,该脚本应该由Linux服务器在启动时启动.目的是在用户连接到服务器时通过各种介质发送通知.

我的问题与实际听力有关.当用户将(通过SSH或其他)连接到服务器时,如何让模块看到?一些快速伪代码:

# When a connection is made
    # Send an email
    # Send a text message
    # Send notification to server output
    # Etc...
Run Code Online (Sandbox Code Playgroud)

我想在通知中包含一些细节,如用户名,IP,连接时间,最后一次连接,可爱的自定义连接消息,等等.关于如何最好地做这些事情的任何准备都值得赞赏,但我相信我可以在其他地方解决这个问题.

在此先感谢任何指导!

python linux ssh python-2.7

8
推荐指数
1
解决办法
912
查看次数

将命令输出分配给shell变量

我试图将剪切命令的输出分配给变量,但是我遇到了一个奇怪的问题.我正在使用tcsh shell.

$echo $0
tcsh
Run Code Online (Sandbox Code Playgroud)

这是我正在运行的命令:

$set a=`cut -f2 -d' ' test.txt`
Missing }.    //This is the output I am getting
Run Code Online (Sandbox Code Playgroud)

现在该文件非常简单(这不是我正在处理的文件,但我将问题减少到了这一点.)

的test.txt:

{ {corner
Run Code Online (Sandbox Code Playgroud)

而已!这是文件.如果我将文件更改为:

{ {corner}
Run Code Online (Sandbox Code Playgroud)

语句有效,但"a"获得以下值:

$echo $a
corner   //Please note its not {corner} but corner
Run Code Online (Sandbox Code Playgroud)

因此我认为shell试图{corner 作为一个命令执行 ,因为它缺少关闭括号shell抱怨.有谁知道它为什么会出现这种行为?我的理解是它应该只将cut的输出分配给变量,但看起来像递归分配它!新手

linux tcsh

8
推荐指数
1
解决办法
2万
查看次数

用C编写Linux服务器的最佳方法(phtreads,select或fork?)

我有一个关于UNIX中服务器编程的非常具体的问题(Debian,内核2.6.32).我的目标是学习如何编写可以处理大量客户端的服务器.我的目标是超过30 000个并发客户(即使我的大学提到有50万个可能,这似乎是QUIIITEEE的大量:-)),但我真的不知道(甚至可能是什么)这就是我要问的原因这里.所以我的第一个问题.有多少同时客户可能?客户端可以随时连接并与其他客户端联系并组成一个组(1个组最多包含12个客户端).他们可以互相聊天,因此TCP/IP包的大小取决于发送的消息.客户端还可以将数学公式发送到服务器.服务器将解决它们并将答案广播回组.这是一项非常繁重的操作.

我目前的方法是启动服务器.比使用fork创建一个守护进程.守护进程绑定套接字fd_listen并开始侦听.这是一个while(1)循环.我使用accept()来接听来电.

一旦客户端连接,我就为该客户端创建一个运行通信的pthread.客户端被添加到一个组并共享一些内存(需要保持组运行),但仍然每个客户端都在不同的线程上运行.获得正确的内存访问是一个很大的问题,但现在工作正常.

在程序的开头我读出了/ proc/sys/kernel/threads-max文件并根据我创建我的线程.根据该文件的可能线程数量约为5000.远离我希望能够服务的客户端数量.我考虑的另一种方法是使用select()和创建集.但是在集合中查找套接字的访问时间是O(N).如果我连接了超过几千个客户端,这可能会很长.如果我错了,请纠正我.

好吧,我想我需要一些想法:-)

Groetjes Markus

PS我为C++和C标记它,因为它适用于两种语言.

c c++ sockets linux

8
推荐指数
1
解决办法
2507
查看次数

动态链接器和动态加载器有什么区别?

我知道动态加载器的作用.它在运行时应用程序请求时加载程序,从而最小化内存占用量.但我真的没有得到这个动态链接器是什么?它的优点是什么?我读了很多网上的东西,但他们用抽象的语言说话.

有人可以用一些简单的例子来解释我吗?

linux linker operating-system loader

8
推荐指数
1
解决办法
2421
查看次数

使用C代码获取环境变量

在这里,我写了一个hi.sh使用systemcall 执行文件的C程序.

在这里我使用了. ./hi.sh所以我想在同一个shell中执行这个脚本,然后尝试使用getenv函数获取环境变量,但是在这里我得到了我预期的不同输出.

hi.sh文件包含

export TEST=10
return
Run Code Online (Sandbox Code Playgroud)

表示当我hi.sh使用系统调用运行此文件时,它export TEST在同一个shell中将值设置为10.在此之后,我试图得到这个变量值但它的给定NULL值.

如果我从控制台手动运行这个脚本,. ./hi.sh那么它工作正常,我得到10个TEST使用getenv("TEST")函数的值.

码:

#include <stdio.h>
int main()
{
    system(". ./hi.sh");
    char *errcode;
    char *env = "TEST";
    int errCode;    
    errcode = getenv(env);
    printf("Value is = %s\n",errcode);
    if (errcode != NULL) {
        errCode =atoi(errcode);
        printf("Value is = %d\n",errCode);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

Value is = (null)
Run Code Online (Sandbox Code Playgroud)

如何在程序shell中导出TEST变量?如果system()在不同的shell中执行命令,那么如何使用C程序代码来获取由通过调用调用的shell导出的环境变量system()

c linux embedded

8
推荐指数
2
解决办法
2万
查看次数

Linux - IPython中的Linebreak

嗨,我是Linux的新手,我非常喜欢在shell中编写和测试python代码的想法.但我的问题是如何在IPython中进行换行.每次我使用(我认为)"正常"快捷键切换+输入代码执行.功能键被禁用,键盘布局在我的笔记本电脑上工作正常,可能是什么问题?

python linux shell line-breaks ipython

8
推荐指数
3
解决办法
7088
查看次数

批处理模式SSH提供错误"未设置TERM环境变量"

我确保在.bashrc中定义了TERM.

但是,在批处理模式下运行ssh时,我得到:

 $ ssh pc-lab7 "echo $TERM; echo $0"
    TERM environment variable not set.
    linux
    -bash
Run Code Online (Sandbox Code Playgroud)

如果我在交互模式下运行ssh,我看不到这个错误.

如何消除此错误消息?

linux ssh

8
推荐指数
2
解决办法
1万
查看次数