小编l0b*_*0b0的帖子

查找inode编号的便携式方法

起初我使用stat -c %i file(帮助检测 jail 的存在),它似乎适用于阳光下的任何 Linux 发行版。在 OS X 上,我不得不使用ls -i file | cut -d ' ' -f 1.

是否有某种方法可以在可跨 *nix 平台移植且不依赖于众所周知的反复无常的 shell 脚本中找到文件的 inode 编号ls

shell inode

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

如何在 Arch Linux 中连接到 Wi-Fi 网络?

TL;博士读拱维基上的文章后安装无线设置WPA恳求,想下面的建议和论坛帖子的主人,我无法得到任何的以下卡引导拱当连接到我的无线网络Linux 2013-09-01 ISO:


方法 1(默认):

这样做的默认方式是应该只是systemctl stop dhcpcd.service其次wifi-menu。它找到网络:

[SSID] + wpa 10
Run Code Online (Sandbox Code Playgroud)

超时后,它报告连接失败。如果我运行wifi-menu一个第二时间不要求输入密码,但完成当它终于给出了一些调试提示:

Job for netctl@wlp0s29f7u5\x2dBTHub4\x2dGRK6.service failed. See 'systemctl status netctl@wlp0s29f7u5\x2dBTHub4\x2dGRK6.service' and 'journalctl -xn' for details.
Run Code Online (Sandbox Code Playgroud)

前者报告服务已“加载”但未“活动”(字面意思inactive (dead))。后者说:

WPA association/authentication failed for interface 'wlp0s29f7u5'
Run Code Online (Sandbox Code Playgroud)

这是否意味着输入/etc/netctl/wlp0s29f7u5-BTHub4-GRK6错误?我不知道程序什么时候需要 …

wifi wpa-supplicant arch-linux wpa

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

如何将所有输出发送到 POSIX shell 中的`logger`?

我想在.xprofile使用logger. 在 Bash 中,我认为这看起来像这样:

exec 1> >(logger --priority user.notice --tag $(basename $0)) \
     2> >(logger --priority user.error --tag $(basename $0))
Run Code Online (Sandbox Code Playgroud)

我将如何以POSIX /bin/sh兼容的方式做到这一点?

shell pipe posix

10
推荐指数
2
解决办法
1684
查看次数

从 makefile 变量获取顶级目录

获取 makefile 变量的顶级目录部分的最简单代码是什么?例子:

BUILD_DIR = dir/subdir/.../sub-a-dub-dir
distclean:
        rm -rf <some code which evaluates to "dir" from $(BUILD_DIR)>
Run Code Online (Sandbox Code Playgroud)

PS:我的意思不是$(dir $(dir $(BUILD_DIR))),而是获取任何变量值的第一个目录部分的东西。

make

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

如何全局启用崩溃报告/核心转储/堆栈跟踪日志?

崩溃的错误可能是最烦人的,导致数据丢失、停机和用户沮丧。如果应用程序崩溃更少,那就太好了。

由于机器上下文的复杂性,对于普通用户来说,通常无法在合理的时间内重现崩溃。这并不意味着该错误很少见——它可能只是意味着触发它的事情对于每个用户很少发生(例如 DST 更改)。除非很多用户报告这些错误,否则不太可能修复这些错误。如果报告更多的崩溃会很好。

为了调试崩溃,开发人员需要尽可能多的明确上下文。生成的崩溃报告很好,因为它们通常是详细而准确的。不能期望用户热情地手动观察和报告所有上下文,因此他们经常提交稀疏和错误的信息。

许多应用程序的目标受众不是开发人员或系统管理员,而是普通大众,在家中或工作中。不能期望此类用户知道如何手动收集崩溃信息或安装-dbg软件包,但此类用户生成的报告仍然可用。一些应用程序有自己的崩溃报告工具,但根据我的经验,这些工具很少起作用,当他们报告未能报告错误时,似乎没有任何关于如何手动执行此操作的信息(我已经观察到了这一点) Firefox 和 Flash 的最新版本)。系统范围内生成崩溃报告会很好。

是否有任何类型的崩溃报告生成* 可以全局启用**,而无需安装大量-dbg软件包、阅读每个应用程序的文档或将普通机器减慢到爬行速度?

* 日志、核心转储、堆栈跟踪等

** 不一定适用于init,但至少适用于在典型桌面 Linux 安装上运行的应用程序的重要子集。根据我的经验,GUI 应用程序崩溃的频率是 shell 应用程序的 100 多倍,因此 GUI 应用程序自然会成为焦点。

debugging

9
推荐指数
1
解决办法
9254
查看次数

什么是查找实际最大参数列表长度的规范方法?

ARG_MAX之后,新进程的最大参数长度似乎ARG_MAX在运行 Ubuntu 12.04 的 Mac Mini 3,1 上定义错误(或至少含糊不清):

$ getconf ARG_MAX # arguments 
2097152
$ locate limits.h | xargs grep -ho 'ARG_MAX[ \t]\+[0-9]\+' | uniq | cut -d ' ' -f 8
131072
Run Code Online (Sandbox Code Playgroud)

实际限制似乎介于以下之间:

$ cd "$(mktemp -d)"
$ touch $(seq 1 131072) && find . -mindepth 1 -printf x | wc -c && rm *
131072
$ touch $(seq 1 131073) && find . -mindepth 1 -printf x | wc -c && rm …
Run Code Online (Sandbox Code Playgroud)

limit arguments

9
推荐指数
1
解决办法
2526
查看次数

init 后 git pull 是否删除未跟踪的文件?

我刚刚制作了一个简单的脚本,并在 GitHub 上为它创建了一个新的存储库。初始化本地存储库,将脚本移动到存储库并pull调用 GitHub 存储库(仅包含一个README.md文件)后,脚本消失了。这是正常行为吗?有没有办法恢复文件?

以下是执行时的命令:

$ mkgithub ~/dev/cr2meta2jpg
Initialized empty Git repository in /home/username/dev/cr2meta2jpg/.git/
$ mv test.sh ~/dev/cr2meta2jpg/cr2meta2jpg.sh
$ cd ~/dev/cr2meta2jpg/
$ ls
cr2meta2jpg.sh
$ git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From github.com:l0b0/cr2meta2jpg
 * [new branch]      master     -> origin/master
$ ls
README.md
Run Code Online (Sandbox Code Playgroud)

git

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

什么是 readline 单词分隔符?

当我在 Bash 中删除一个“单词”时,它会在某些字符处停止,例如_/。例如,如果我输入

/foo/bar
Run Code Online (Sandbox Code Playgroud)

并激活backward-kill-word(通常映射到Alt-Backspace和/或Ctrl- w),剩余的文本是

/foo/
Run Code Online (Sandbox Code Playgroud)

. 这确实对应$COMP_WORDBREAKSreadlinerl_completer_word_break_characters。我如何检测(最好是在正在运行的系统中,而不是代码中的默认值,因为它们可能会被覆盖)哪些字符用于确定断字?

bash readline

9
推荐指数
1
解决办法
2026
查看次数

如何通过 Wi-Fi 从 Arch Linux 打印到佳能 MG6450?

我有一个佳能MG6450具有Wi-Fi功能以及最先进的最新Arch Linux的安装与cnijfilter-MG4200 3.80-1 安装。我可以在打印对话框中看到打印机(有时需要一秒钟才能显示,大概是因为它被自动发现),我可以选择它,并且在单击“确定”时没有收到错误消息。然而,打印机似乎完全无视这一切。

我也试过通过 USB 连接。之后,打印对话框没有自动检测到打印机,但它检测到system-config-printer,我能够毫无问题地进行配置和打印。但是能够无线打印会非常好。


似乎一些致命的打印错误既没有出现在打印对话框中,也没有出现在system-config-printer. 它们都简单地将打印机状态报告为“空闲 - 渲染完成”。但是,在转到CUPS 网络界面并单击打印机后,我终于得到了一个提示 - 在每个打印作业之后都是以下消息:

“PPD 版本 (5.2.11) 与 Gutenprint 5.2.12 不兼容。请以管理员身份运行 `/usr/bin/cups-genppdupdate'。”

好吧:

$ sudo /usr/bin/cups-genppdupdate
/etc/cups/ppd/Canon-PIXMA-MG6450.ppd: no valid candidate for replacement.  Skipping
/etc/cups/ppd/Canon-PIXMA-MG6450.ppd: please upgrade this PPD manually
Unable to retrieve PPD file for /etc/cups/ppd/Canon-PIXMA-MG6450.ppd!
Failed to update any PPD files
Run Code Online (Sandbox Code Playgroud)

现在我看看是否有任何地方有兼容的 PPD。佳能IJ 打印机驱动程序 Ver. 4.00 for Linux有 MG6400 和 MG6500 的 PPD …

wifi arch-linux cups printer canon

9
推荐指数
1
解决办法
3238
查看次数

如何列出所有当前可用的撰写组合键?

是否有某种方法可以检查 X 的状态以准确且仅获取组合键快捷方式及其映射到的内容的列表,或者作为文字键,例如:

aa å
88 ?
Run Code Online (Sandbox Code Playgroud)

或作为字形名称,例如:

aa Latin Small Letter A with ring above
88 Infinity
Run Code Online (Sandbox Code Playgroud)

或者,理想情况下,组合。

没有使用 GNOME。


阅读已接受答案中的链接后,我最终得到了以下命令

less "/usr/share/X11/locale/$(grep --max-count=1 "${LANG%.*}.UTF-8\$" /usr/share/X11/locale/locale.dir | cut --delimiter=/ --fields 1)/Compose"
Run Code Online (Sandbox Code Playgroud)

x11 keyboard-layout compose-key

9
推荐指数
1
解决办法
2850
查看次数