起初我使用stat -c %i file(帮助检测 jail 的存在),它似乎适用于阳光下的任何 Linux 发行版。在 OS X 上,我不得不使用ls -i file | cut -d ' ' -f 1.
是否有某种方法可以在可跨 *nix 平台移植且不依赖于众所周知的反复无常的 shell 脚本中找到文件的 inode 编号ls?
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错误?我不知道程序什么时候需要 …
我想在.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兼容的方式做到这一点?
获取 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))),而是获取任何变量值的第一个目录部分的东西。
崩溃的错误可能是最烦人的,导致数据丢失、停机和用户沮丧。如果应用程序崩溃更少,那就太好了。
由于机器上下文的复杂性,对于普通用户来说,通常无法在合理的时间内重现崩溃。这并不意味着该错误很少见——它可能只是意味着触发它的事情对于每个用户很少发生(例如 DST 更改)。除非很多用户报告这些错误,否则不太可能修复这些错误。如果报告更多的崩溃会很好。
为了调试崩溃,开发人员需要尽可能多的明确上下文。生成的崩溃报告很好,因为它们通常是详细而准确的。不能期望用户热情地手动观察和报告所有上下文,因此他们经常提交稀疏和错误的信息。
许多应用程序的目标受众不是开发人员或系统管理员,而是普通大众,在家中或工作中。不能期望此类用户知道如何手动收集崩溃信息或安装-dbg软件包,但此类用户生成的报告仍然可用。一些应用程序有自己的崩溃报告工具,但根据我的经验,这些工具很少起作用,当他们报告未能报告错误时,似乎没有任何关于如何手动执行此操作的信息(我已经观察到了这一点) Firefox 和 Flash 的最新版本)。系统范围内生成崩溃报告会很好。
是否有任何类型的崩溃报告生成* 可以全局启用**,而无需安装大量-dbg软件包、阅读每个应用程序的文档或将普通机器减慢到爬行速度?
* 日志、核心转储、堆栈跟踪等
** 不一定适用于init,但至少适用于在典型桌面 Linux 安装上运行的应用程序的重要子集。根据我的经验,GUI 应用程序崩溃的频率是 shell 应用程序的 100 多倍,因此 GUI 应用程序自然会成为焦点。
在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) 我刚刚制作了一个简单的脚本,并在 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) 当我在 Bash 中删除一个“单词”时,它会在某些字符处停止,例如_和/。例如,如果我输入
/foo/bar
Run Code Online (Sandbox Code Playgroud)
并激活backward-kill-word(通常映射到Alt-Backspace和/或Ctrl- w),剩余的文本是
/foo/
Run Code Online (Sandbox Code Playgroud)
. 这确实不对应$COMP_WORDBREAKS或readline的rl_completer_word_break_characters。我如何检测(最好是在正在运行的系统中,而不是代码中的默认值,因为它们可能会被覆盖)哪些字符用于确定断字?
我有一个佳能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 …
是否有某种方法可以检查 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)