在管理 Linux 系统时,我经常发现自己在分区变满后很难找到罪魁祸首。我通常使用du / | sort -nr但在大型文件系统上这需要很长时间才能返回任何结果。
此外,这通常可以成功地突出显示最严重的罪犯,但我经常发现自己
在更微妙的情况下诉诸于du没有sort,然后不得不浏览输出。
我更喜欢依赖于标准 Linux 命令的命令行解决方案,因为我必须管理相当多的系统并且安装新软件很麻烦(尤其是在磁盘空间不足时!)
在我安装软件包之前,我想知道我会得到什么版本。
在使用apt-get或aptitude在 Debian 或 Ubuntu 上安装之前,如何检查版本?
在 Ubuntu 中,可以通过以下命令添加存储库 -
sudo add-apt-repository ppa:yannubuntu/boot-repair
Run Code Online (Sandbox Code Playgroud)
由于 Ubuntu 是基于 Debian 代码库的,我原以为它也能在 Debian 中运行,但事实并非如此。
注意:我知道我可以编辑/etc/apt/sources.list,但我想从 shell 实现这一点。我还想知道为什么当代码库相同时相同的命令不起作用。
我正在尝试仅使用命令行 (Linux) 连接到我的 WEP 网络。
我跑:
sudo iwconfig wlan0 mode Managed essid 'my_network' key 'xx:xx:... hex key, 26 digits'
Run Code Online (Sandbox Code Playgroud)
然后我尝试获取一个IP
sudo dhclient -v wlan0
Run Code Online (Sandbox Code Playgroud)
或者
sudo dhclient wlan0
Run Code Online (Sandbox Code Playgroud)
没有成功(尝试 ping google.com)。
我知道关键字是正确的,我还尝试使用 's:key' 使用 ASCII 键,结果同样如此。
运行 dhclient 时,我收到以下消息:
Listening on LPF/wlan0/44:...
Sending on LPF/wlan0/44:...
Sending on Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 3
Run Code Online (Sandbox Code Playgroud)
我在连接 WICD 或标准 Ubuntu 工具时没有问题。
我刚才在做一些例行检查并意识到这一点:
Raspberry Pi OS(以前称为 Raspbian)
来源:树莓派操作系统
我在他们的博客和维基百科页面上都没有发现提到这一点。为什么要把“Raspbian”这样的好名字改成繁琐且有问题的“Raspberry Pi OS”?现在我必须重命名一堆已建立的代码和东西......
我整理了一个脚本来为我做一些文件操作。我正在使用通配符运算符*将函数应用于一种类型的所有文件,但有一件事情我不明白。我可以unzip像这样的文件夹中的所有文件
unzip "*".zip
Run Code Online (Sandbox Code Playgroud)
但是,之后要删除所有 zip 文件,我需要执行
rm *.zip
Run Code Online (Sandbox Code Playgroud)
也就是说,它不需要引号。另一方面,如果我只是给它*(给我一个“文件不匹配”的警告),解压缩将不起作用。
为什么这是不同的?对我来说,这似乎是完全相同的操作。还是我错误地使用了通配符?
Unix 中通配符的介绍并没有真正涉及到这一点,我在rm或zip文档中找不到任何内容。
我在 Mac (Yosemite) 上使用终端。
通过阅读这个问题,我发现 GNUgrep有一个-X需要参数的选项。奇怪的是,手册页和信息页中都没有提到它。
/* -X is deliberately undocumented. */
Run Code Online (Sandbox Code Playgroud)
进一步看,似乎该-X matcher选项设置用于正则表达式引擎,matcher是一个 grep,egrep,fgrep,awk,gawk,posixawk和perl(截至2.25版本)。
一些这些值是严格相同的现有选项(即grep -G,grep -E,grep -F和grep -P)。另一方面,这三个awk变体没有相应的选项。
有人知道这个选项的实际目的是什么,尤其是使用正则awk表达式引擎之一?有人能告诉我为什么故意没有记录吗?
我遵循了本教程,现在我可以连接到串行线了。现在我想改变终端的宽度。我怎样才能通过使用 screen 或 minicom 或其他东西来做到这一点?
使用诸如 and 之类的难以理解的系统调用名称time而creat不是getCurrentTimeSecsand的原因是什么?createFile or 之,也许更适合 Unixget_current_time_secs和create_file. 这让我想到下一点:为什么有人想要cfsetospeed没有驼峰式大小写或至少下划线之类的东西以使其可读?当然,调用会有更多字符,但我们都知道代码的可读性更重要,对吗?
我执行了一个git commit命令,它给了我以下答复:
7 files changed, 93 insertions(+), 15 deletions(-)
mode change 100644 => 100755 assets/internal/fonts/icomoon.svg
mode change 100644 => 100755 assets/internal/fonts/icomoon.ttf
mode change 100644 => 100755 assets/internal/fonts/icomoon.woff
Run Code Online (Sandbox Code Playgroud)
我知道文件可以具有用户/组/其他 rwx 权限,这些权限可以表示为三个字节,如“644”或“755”。但是为什么 git 在这里显示六个字节?
我已阅读以下文章,但没有找到答案:
apt ×2
command-line ×2
shell ×2
aptitude ×1
command ×1
debian ×1
disk-usage ×1
git ×1
grep ×1
history ×1
minicom ×1
networking ×1
options ×1
partition ×1
permissions ×1
posix ×1
ppa ×1
raspberry-pi ×1
raspbian ×1
repository ×1
rm ×1
system-calls ×1
terminal ×1
wifi ×1
wildcards ×1
zip ×1