小编sda*_*aau的帖子

从命令行列出分区标签

是否有一个命令可以列出所有分区及其标签?sudo fdisk -l并且sudo parted -l默认不显示标签。

编辑:(根据下面的评论)我说的是 ext2 标签 - 您可以在gparted分区时设置的标签。

EDIT2:目的是列出未安装的分区(所以我知道要安装哪个)。

linux command-line partition disk

118
推荐指数
7
解决办法
22万
查看次数

将可视化 (ASCII) Debian 依赖树输出到终端?

我不确定这是否更像是 SuperUser 或 UnixLinux 问题,但我会在这里尝试...

最近,我发现了这个:

#710689 - aptitude:在树中使用 unicode 字符 - Debian 错误报告日志

当 aptitude 对依赖项列表中的树使用 unicode 字符时会很好,例如,而不是:

--\ Depends (3)
   --- libc-dev-bin (= 2.17-3)
   --- libc6 (= 2.17-3)
   --- linux-libc-dev
 --\ Suggests (2)
   --- glibc-doc (UNSATISFIED)
   --\ manpages-dev
Run Code Online (Sandbox Code Playgroud)

...

...我想 - 哇,我真的很喜欢那个 ASCII 艺术树输出,不知道aptitude可以做到这一点!所以,我开始用aptitude命令行开关弄乱了一个小时- 我根本无法获得该输出?所以我最初的问题是 - 该输出首先来自哪里?!

过了一会儿,我意识到在我的系统上,aptitude最终符号链接到/usr/bin/aptitude-curses; 我终于意识到aptitude有一个curses接口!:/

所以,我终于在aptitude没有任何参数的情况下运行了- 所以curses界面启动了,我可以看到这样的东西:

能力诅咒终端

...很明显,这些 ASCII 树字符来自 Curses 界面。

所以我想知道 - 是否有一个 Debian/apt 工具,它会输出这样一个“可视化”的 …

linux aptitude debian apt

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

查找在实时系统上定义的共享库符号的位置/列出系统上导出的所有符号

基本上,这是将两个问题合二为一——因为如果我可以列出系统内导出的所有符号,以及它们的共享库路径,那么我可以简单地grep输出。

对于内核符号,我想它更容易一些 - 因为我们总是可以cat /proc/kallsyms获取内存中加载的那些模块的所有符号的列表;thensudo cat /proc/modules将给出一个已加载模块的列表及其地址,但不会给出加载模块的路径(如果它们是作为单独的、树外的 .ko 对象构建的)

例如,我尝试kst使用ltrace以下方法跟踪程序:

$ ltrace kst2
...
_ZNK13QGraphicsItem10parentItemEv(0xa1ccdb4, 0, 0xbfe631a8, 0x823652b, 0xbfe63298) = 0xa1ce854
__dynamic_cast(0xa1ce854, 0x839ff00, 0x8306b80, 84, 0xbfe63298)     = 0xa1ce800
_ZNK13QGraphicsItem10parentItemEv(0xa1ccdb4, 0x839ff00, 0x8306b80, 84, 0xbfe63298) = 0xa1ce854
__dynamic_cast(0xa1ce854, 0x839ff00, 0x8306b80, 84, 0xbfe63298)     = 0xa1ce800
...
Run Code Online (Sandbox Code Playgroud)

......我想知道它在哪里_ZNK13QGraphicsItem10parentItemEv

那么,如何处理共享库符号呢?通读[gcc-help] 回复:找到定义符号的库。; 我试过这样的事情:

$ find /usr/lib -name '*.so*' -exec nm --print-file-name --defined-only --dynamic {} \; | grep "QGraphicsItem"
...
/usr/lib/libQtGui.so.4.7.2:00766d70 T _Zls6QDebugN13QGraphicsItem16GraphicsItemFlagE …
Run Code Online (Sandbox Code Playgroud)

linux dynamic-linking

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

检查文件是否存在的单个命令,并将(自定义)消息打印到标准输出?

希望可以注意到这一点,现在我已经遇到了:

我已经知道可以使用test( [) 命令测试文件是否存在:

$ touch exists.file
$ if [ -f exists.file ] ; then echo "yes" ; else echo "no" ; fi
yes
$ if [ -f noexists.file ] ; then echo "yes" ; else echo "no" ; fi
no
Run Code Online (Sandbox Code Playgroud)

...但这有点打字:)所以,如果有一个“默认”单个命令,我会徘徊,它将文件存在结果返回到stdout

我也可以使用test退出状态$?

$ test -f exists.file ; echo $?
0
$ test -f noexists.file ; echo $?
1
Run Code Online (Sandbox Code Playgroud)

...但这仍然是两个命令 - 并且逻辑也是“反向”(成功为 0,失败为非零)。

我问的原因是我需要测试 中的文件是否存在gnuplot,其 "system("command") …

linux files

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

如何生成 Module.symvers?

我最近经历了Unpacking kernel-source rpm off-system (OpenSuse)?; 由于在我的机器上花费了 > 10 小时,想象一下我的惊讶,在完成那里描述的过程后,我找不到任何Module.symvers地方!

当我搜索“generate Module.symvers”时,我得到了这个:

注意:即使
设置了 CONFIG_MODVERSIONS,"modules_prepare" 也不会构建 Module.symvers ;因此,需要
执行完整的内核构建才能使模块版本控制工作。
( Linux 内核文档 :: kbuild : modules.txt )

...但我真的不明白 - 内核不是在上一步中构建的(在上面给出的链接中描述?我当然知道 CC 需要 10 小时以上才能生成一大堆 *.o文件和 LD 来链接它们,所以一定已经建立了一些东西。但如果是这样,那么在哪里Module.symvers

更明确地说,我应该调用什么命令来生成 Module.symvers?我知道这make prepare行不通——但是什么命令会起作用?

kernel kernel-modules

20
推荐指数
3
解决办法
5万
查看次数

什么是“打印到文件”,可以从命令行使用吗?

当您在 Gnome 打印对话框(不是 cups-pdf)中选择“打印到文件”时:

打印到文件

...实际执行的命令是什么?(我对 postscript 变体感兴趣,如图所示)

另一方面 - 也许没有命令调用;也许它gtk_print_operation_set_export_filename来自新的 Gtk+ 打印 API

在任何情况下 - 有没有办法让我从命令行使用这个特定的代码(不是pdf2ps等等)?比如说,通过使用lpr“打印到文件”到 postscript 文件 - 就像我在使用上面的对话框一样?

command-line gnome printing

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

Debian checkinstall 忽略 install=no; 如何构建它,但不自动安装包?

好的,这是让我感到困惑的一件事......我正在尝试从源代码构建一个包,然后使用它checkinstall来生成一个 .deb 包。请注意,我只想创建 .deb 包,但我不想安装它。

所以,这是一个例子 - 我在 Ubuntu 11.04 上,首先我feh从默认存储库安装它的包;它的版本号显然是1.3.4.dfsg.1-3

然后我试图feh 从源代码构建;必须make通过,并且可以从命令行运行新feh的;灿烂。

最后,为了创建一个 deb 包,我使用以下命令行:

sudo checkinstall -D -y \
  --install=no \
  --fstrans=no \
  --reset-uids=yes \
  --pkgname=feh \
  --pkgversion=2.7 \
  --pkgrelease="tar.bz2" \
  --arch=i386 \
  --pkglicense=GPL \
  --maintainer="Debian PhotoTools Maintainers <pkg-phototools-devel@lists.alioth.debian.org>" \
  --pakdir=../.. \
  --requires=libc6,libice6,libsm6,libx11-6,libxaw7,libxext6,libxmu6,libxt6,dpkg,install-info
Run Code Online (Sandbox Code Playgroud)

好的,注意到我在--install=no那里使用过吗?甚至man checkinstall说:

--install 切换安装已创建的包。

嗯,这就是这个checkinstall命令的回复:

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
           This software …
Run Code Online (Sandbox Code Playgroud)

debian checkinstall

14
推荐指数
3
解决办法
8784
查看次数

观察内核空间中的硬盘写入(使用驱动程序/模块)

如果这篇文章有点密集/混乱,请提前道歉,但我很难更好地制定它......基本上,我想研究硬盘写入时会发生什么,我想知道:

  • 我在下面的理解是否正确 - 如果不是,我哪里出错了?
  • 在磁盘写入期间,是否有更好的工具来“捕获”有关 PC 上发生的所有方面的日志数据?

更详细地说 - 首先,我使用的操作系统是:

$ uname -a
Linux mypc 2.6.38-16-generic #67-Ubuntu SMP Thu Sep 6 18:00:43 UTC 2012 i686 i686 i386 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

所以,我有以下简单的(例如,跳过通常的操作失败检查)用户空间 C 程序,wtest.c

#include <stdio.h>
#include <fcntl.h>  // O_CREAT, O_WRONLY, S_IRUSR

int main(void) {
  char filename[] = "/tmp/wtest.txt";
  char buffer[] = "abcd";
  int fd;
  mode_t perms = S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH;

  fd = open(filename, O_RDWR|O_CREAT, perms);
  write(fd,buffer,4);
  close(fd);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我用gcc -g -O0 -o wtest wtest.c. 现在,由于我正在尝试写入/tmp,我注意到它是根目录下的一个目录/ …

debugging trace linux-kernel

13
推荐指数
1
解决办法
3450
查看次数

为什么 df 缺少 500MB 的可用空间?

我今天刚从 Ubuntu 11.04 收到一条消息,说我只剩下 100 MB,所以我清理了一些文件,我得到了 200 MB。然后,几个小时后,突然我只有 26 MB?!我试过dfdu通过mount --bind/forcefsck重新启动 - 罪魁祸首是什么 - 最后我搜索了大文件,意识到 /var/log/syslog 是 100MB+ 和 /var/log/kern.log 是 200MB+ - 将它们清空sudo bash -c 'echo > ...'并重新启动,然后现在我有一些空闲的 MB。

但是现在,我意识到我还有另一个问题df

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             9,7G  8,8G  385M  96% /
none                  963M  696K  962M   1% /dev
none                  969M   12K  969M   1% /dev/shm
none                  969M  252K  969M   1% /var/run
none                  969M     0 …
Run Code Online (Sandbox Code Playgroud)

filesystems disk-usage

13
推荐指数
1
解决办法
2277
查看次数

列出目录的 ls 信息和挂载点?

在我的 Ubuntu Natty 上,通常所有插入的新驱动器(例如 USB 闪存拇指驱动器)都安装在/media. 所以,在我的系统上,我可以做这样的事情:

$ mount | grep '/media'
/dev/sda6 on /media/disk1 type ext4 (rw,uhelper=hal,commit=0)
/dev/sda9 on /media/disk2 type ext4 (rw,nosuid,nodev,uhelper=udisks,commit=0)

# create proper dir
$ sudo mkdir /media/properdir
# creat symlink
$ sudo ln -s /tmp /media/

$ ls -la /media/
total 24
drwxr-xr-x  6 root          root          4096 2013-04-08 16:35 .
drwxr-xr-x 22 root          root          4096 2013-03-23 21:44 ..
drwxr-xr-x 36 username      username      4096 2013-04-06 19:15 disk2
drwxr-xr-x 11 username      username      4096 2012-04-10 12:24 …
Run Code Online (Sandbox Code Playgroud)

ls directory mount

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