是否有一个命令可以列出所有分区及其标签?sudo fdisk -l并且sudo parted -l默认不显示标签。
编辑:(根据下面的评论)我说的是 ext2 标签 - 您可以在gparted分区时设置的标签。
EDIT2:目的是列出未安装的分区(所以我知道要安装哪个)。
我不确定这是否更像是 SuperUser 或 UnixLinux 问题,但我会在这里尝试...
最近,我发现了这个:
#710689 - aptitude:在树中使用 unicode 字符 - Debian 错误报告日志
当 aptitude 对依赖项列表中的树使用 unicode 字符时会很好,例如,而不是:
Run Code Online (Sandbox Code Playgroud)--\ Depends (3) --- libc-dev-bin (= 2.17-3) --- libc6 (= 2.17-3) --- linux-libc-dev --\ Suggests (2) --- glibc-doc (UNSATISFIED) --\ manpages-dev...
...我想 - 哇,我真的很喜欢那个 ASCII 艺术树输出,不知道aptitude可以做到这一点!所以,我开始用aptitude命令行开关弄乱了一个小时- 我根本无法获得该输出?所以我最初的问题是 - 该输出首先来自哪里?!
过了一会儿,我意识到在我的系统上,aptitude最终符号链接到/usr/bin/aptitude-curses; 我终于意识到aptitude有一个curses接口!:/
所以,我终于在aptitude没有任何参数的情况下运行了- 所以curses界面启动了,我可以看到这样的东西:

...很明显,这些 ASCII 树字符来自 Curses 界面。
所以我想知道 - 是否有一个 Debian/apt 工具,它会输出这样一个“可视化”的 …
基本上,这是将两个问题合二为一——因为如果我可以列出系统内导出的所有符号,以及它们的共享库路径,那么我可以简单地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) 希望可以注意到这一点,现在我已经遇到了:
我已经知道可以使用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") …
我最近经历了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行不通——但是什么命令会起作用?
当您在 Gnome 打印对话框(不是 cups-pdf)中选择“打印到文件”时:

...实际执行的命令是什么?(我对 postscript 变体感兴趣,如图所示)
另一方面 - 也许没有命令调用;也许它gtk_print_operation_set_export_filename来自新的 Gtk+ 打印 API?
在任何情况下 - 有没有办法让我从命令行使用这个特定的代码(不是pdf2ps等等)?比如说,通过使用lpr“打印到文件”到 postscript 文件 - 就像我在使用上面的对话框一样?
好的,这是让我感到困惑的一件事......我正在尝试从源代码构建一个包,然后使用它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) 如果这篇文章有点密集/混乱,请提前道歉,但我很难更好地制定它......基本上,我想研究硬盘写入时会发生什么,我想知道:
更详细地说 - 首先,我使用的操作系统是:
$ 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,我注意到它是根目录下的一个目录/ …
我今天刚从 Ubuntu 11.04 收到一条消息,说我只剩下 100 MB,所以我清理了一些文件,我得到了 200 MB。然后,几个小时后,突然我只有 26 MB?!我试过df,du通过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) 在我的 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) linux ×4
command-line ×2
debian ×2
apt ×1
aptitude ×1
checkinstall ×1
debugging ×1
directory ×1
disk ×1
disk-usage ×1
files ×1
filesystems ×1
gnome ×1
kernel ×1
linux-kernel ×1
ls ×1
mount ×1
partition ×1
printing ×1
trace ×1