当我检查进程列表并'grep'出我感兴趣的那些时,grep它本身也包含在结果中.例如,要列出终端:
$ ps aux | grep terminal
user 2064 0.0 0.6 181452 26460 ? Sl Feb13 5:41 gnome-terminal --working-directory=..
user 2979 0.0 0.0 4192 796 pts/3 S+ 11:07 0:00 grep --color=auto terminal
Run Code Online (Sandbox Code Playgroud)
通常我ps aux | grep something | grep -v grep用来摆脱最后一个条目......但它不优雅 :)
你有一个更优雅的黑客来解决这个问题(除了将所有命令包装到一个单独的脚本,这也不错)
我正在尝试0.49使用该命令搜索字符串(带点)
grep -r "0.49" *
Run Code Online (Sandbox Code Playgroud)
但是,什么情况是,我也越来越其中包含字符串,如不想要的结果0449,0949等等,.事情是linux,考虑点(.)作为任何字符,并带出所有结果.但我想得到的结果仅为"0.49".
我有一个FILE *,通过电话回来fopen().我需要从中获取文件描述符,以便进行调用fsync(fd).从文件指针获取文件描述符的功能是什么?
我知道的很多:
$ command 2>> error
$ command 1>> output
Run Code Online (Sandbox Code Playgroud)
有没有什么办法可以将stderr输出到错误文件并将stdout输出到同一行bash中的输出文件中?
我在挂起的Linux机器上有一个NFS挂载的目录.我试图强制卸载,但它似乎不起作用:
$ umount -f /mnt/data
$ umount2: Device or resource busy
$ umount: /mnt/data: device is busy
Run Code Online (Sandbox Code Playgroud)
如果我输入" mount",似乎该目录不再挂载,但如果我执行" ls /mnt/data" 它会挂起,如果我尝试删除挂载点,我会得到:
$ rmdir /mnt/data
rmdir: /mnt/data: Device or resource busy
Run Code Online (Sandbox Code Playgroud)
除了重启机器之外,还有什么可以做的吗?
我试图在这个Debian lenny系统上将应用程序与g ++链接起来.ld抱怨它无法找到指定的库.这里的具体示例是ImageMagick,但我也遇到了类似的问题.
我正在调用链接器:
g++ -w (..lots of .o files/include directories/etc..) \
-L/usr/lib -lmagic
Run Code Online (Sandbox Code Playgroud)
ld抱怨:
/usr/bin/ld: cannot find -lmagic
Run Code Online (Sandbox Code Playgroud)
然而,libmagic存在:
$ locate libmagic.so
/usr/lib/libmagic.so.1
/usr/lib/libmagic.so.1.0.0
$ ls -all /usr/lib/libmagic.so.1*
lrwxrwxrwx 1 root root 17 2008-12-01 03:52 /usr/lib/libmagic.so.1 -> libmagic.so.1.0.0
-rwxrwxrwx 1 root root 84664 2008-09-09 00:05 /usr/lib/libmagic.so.1.0.0
$ ldd /usr/lib/libmagic.so.1.0.0
linux-gate.so.1 => (0xb7f85000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7f51000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7df6000)
/lib/ld-linux.so.2 (0xb7f86000)
$ sudo ldconfig -v | grep "libmagic"
libmagic.so.1 -> libmagic.so.1.0.0
Run Code Online (Sandbox Code Playgroud)
我如何进一步诊断这个问题,哪些可能是错的?我做的事情完全是愚蠢的吗?
我正在尝试在Linux上用C++创建一个共享类库.我能够编译库,我可以使用我在这里和这里找到的教程调用一些(非类)函数.当我尝试使用库中定义的类时,我的问题开始了.我链接的第二个教程展示了如何加载符号来创建库中定义的类的对象,但是没有使用这些对象来完成任何工作.
Does anyone know of a more complete tutorial for creating shared C++ class libraries that also shows how to use those classes in a separate executable? A very simple tutorial that shows object creation, use (simple getters and setters would be fine), and deletion would be fantastic. A link or a reference to some open source code that illustrates the use of a shared class library would …
我编写了一个Python脚本,用于检查某个电子邮件地址并将新电子邮件传递给外部程序.如何让这个脚本全天候执行,例如将其转换为Linux中的守护程序或服务.我是否还需要一个永远不会在程序中结束的循环,或者可以通过多次执行代码来完成它?
在errno.h,这个变量被声明为extern int errno;我的问题是,errno在一些调用之后检查值是否安全或在多线程代码中使用perror()是否安全.这是一个线程安全变量吗?如果没有,那么替代方案是什么?
我在x86架构上使用linux和gcc.
当我exit在shell脚本中使用命令时,脚本将终止终端(提示).有没有办法终止脚本然后留在终端?
我的脚本run.sh应该通过直接获取源或从其他脚本获取来执行.
编辑:更具体,有两个脚本run2.sh作为
...
. run.sh
echo "place A"
...
Run Code Online (Sandbox Code Playgroud)
而run.sh作为
...
exit
...
Run Code Online (Sandbox Code Playgroud)
当我运行它时. run2.sh,如果它进入exit代码行run.sh,我希望它停在终端并留在那里.但是使用exit,整个终端都关闭了.
PS:我试过用return,但echo代码行仍然会被执行....