Articles of Linux操作系统

awk – 如何“重新awk”输出?

我需要一个文件并计算$ 7的出现次数 – 我已经用awk做了这个(因为我需要通过更多的awk来运行这个) 我想要做的就是把它合并成一个脚本 – 到目前为止我已经有了 #! /usr/bin/awk -f # get the filename, count the number of occurs # <no occurs> <filename> { print $7 | "grep /datasheets/ | sort | uniq -c"} 我如何获取输出,并通过更多的awk命令运行它 – 在同一个文件中 最终,我需要能够运行 ./process.awk <filename> 所以它可以成为以前的设置的替代品,这将花费太多时间/ effor来改变 –

神秘的psaadm过程

在我的服务器上运行'top'时,我注意到一个刚刚开始popup的psaadm进程。 该命令始终为“/ usr / bin / sw-engine-cgi -c /usr/local/psa/admin/conf/php.ini -d auto_prepend_file = auth.php3 -u psaadm”。 这只占CPU的1-2%左右,但我不确定为什么命令不断重复。 任何见解? 谈到服务器,我有点新手。

glibc没有正确编译

在编译glibc 2.11 ,出现以下错误。 任何想法如何解决这个问题。 In file included from ../sysdeps/unix/sysv/linux/syslog.c:10: ../misc/syslog.c: In function '__vsyslog_chk': ../misc/syslog.c:123: sorry, unimplemented: inlining failed in call to 'syslog': function body not available ../misc/syslog.c:155: sorry, unimplemented: called from here make[2]: *** [/home/alice/Desktop/glib-build/misc/syslog.o] Error 1 make[2]: Leaving directory `/home/alice/Desktop/glibc-2.11/misc' make[1]: *** [misc/subdir_lib] Error 2 make[1]: Leaving directory `/home/alice/Desktop/glibc-2.11' make: *** [all] Error 2

在别名中设置printf

可能重复: bash别名中的variables插值 这个命令用来在bash shell中设置我的控制台的标题 printf "\033]0; my_console_title \007"; 但是我想用这个命令别名,并应该接受来自用户的控制台标题(无法将printf设置为别名variables)。 类似于: alias fx="find . -type f | xargs grep -il $1" 用法: fx "search_text"

改变glibc,但没有任何反应

我想修改glibc。 所以我已经下载了它的一个版本,并在代码中做了一些修改。 例如,我已经改变了memset 。 但是,如果使用由编译生成的.so文件(使用LD_PRELOAD),而没有执行任何LD_PRELOAD,则看不到任何差异。 memset的行为就像它一样。 为什么? 这也许是编译器内联memset,而不是使用共享对象的任何东西? 我不明白这一点。 我甚至对printf做了修改,但是还是一无所获。 为什么。 我如何修改glibc(用于testing目的),以便我看到一个变化? 此外,当我试图通过在该函数的开头引入printf( "pthread_create")来改变pthread_create(和当然LD_PRELOAded libpthread.so)时,我只是得到了一个分段错误。 这里发生了什么? 另外,如果我在glibc源代码中进行更改后检查libc.so中的差异,则在生成的版本中看不到任何区别。 这里发生了什么。 这让我疯狂!

auto_ptr.release()中的分段错误

调用auto_ptr释放成员时,在代码的这一点我得到一个分段错误: try { newMod->init(params); } catch (const std::exception& e) { #ifndef CONFIG_STATIC dlclose(handle); #endif throw std::runtime_error(utils::buildString( "%s: Error initializing module %s: %s", DBG_FUNC_NAME, newMod->name().c_str(), e.what())); } _modules.insert(std::make_pair(newMod->name(), newMod.release())); _modules在哪里 std::map<std::string, IModule*> _modules; 和newMod是 std::auto_ptr<IModule> newMod(0); 稍后用正确的指针值重新设置。 我知道指向IModule的指针是有效的,因为我在发布之前调用init成员。 这个: _modules.insert(std::make_pair(newMod->name(), newMod.get())); newMod.release(); 工作得很好,这是gdb所说的: #0 _M_rep (this=0xbfe8e908, __str=…) at /usr/src/debug/gcc-4.5.1-20101208/obj-i586-suse-linux/i586-suse-linux/libstdc++-v3/include/bits/basic_string.h:287 #1 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (this=0xbfe8e908, __str=…) […]

内联汇编 – cdecl和准备堆栈

我最近一直试图通过使用缓冲区和不同assembly操作符的RAWhex等价物来实现C ++中的dynamic函数。 为了说明一个简单的跳跃: byte * buffer = new buffer[5]; *buffer = '0xE9'; // Hex for jump *(uint*)(buffer + 1) = 'address destination'; 我在assembly方面没有经验,但是我知道足够创造非常简单的function。 现在我正在原始内存中创buildcdecl函数。 问题是,我不知道有多less我想推栈(内存)与sub 。 我们以这个函数为例: int MyTest(int x, int y) { return x + y; } long TheTest(int x, int y) { return MyTest(x, 5); } 08048a20 <_Z6TheTestii>: _Z6TheTestii(): 8048a20: 55 push %ebp […]

Tomcat的maxSavePostSize值?

Tomcat错误403 the request body was too large to be cashed during authentication process 其相关的maxSavePostSize设置其当前的默认值是4096(4KB)。 在谷歌search的人build议-1(无限制)。 这是否意味着它可能是DOS攻击的主题? 你build议什么?

尝试遵循一个shell脚本教程,接收“$:command not found”

我在这里遵循这个指南: http : //www.cyberciti.biz/tips/find-out-if-file-exists-with-conditional-expressions.html 每次运行: $ [ -f /etc/passwd ] && echo "File exists" || echo "File does not exists" $ [ -f /etc/passwd ] && echo "File exists" || echo "File does not exists" 我得到: $: command not found File does not exists 有什么build议?

如何在Ubuntu上使用berkeley包filter(BPF)

我做了search,但没有find任何BPF代码在我的电脑上使用,也没有任何示例代码使用。 我的目标是find低级别的函数来过滤数据包。 我正在用C语言编写程序。 我使用3.2.0内核的Ubuntu 12.04。