小编Mat*_*DMo的帖子

在目录列表中显示文件大小的总和

Windowsdir目录列表命令的末尾有一行显示列出的文件占用的空间总量。例如,dir *.exe显示.exe当前目录中的所有文件、它们的大小以及它们的总大小。我很想dir在 bash 中为我的别名提供类似的功能,但我不确定如何去做。

目前,我alias dir='ls -FaGl'在我的.bash_profile, 显示

drwxr-x---+  24 mattdmo  4096 Mar 14 16:35 ./
drwxr-x--x. 256 root    12288 Apr  8 21:29 ../
-rw-------    1 mattdmo 13795 Apr  4 17:52 .bash_history
-rw-r--r--    1 mattdmo    18 May 10  2012 .bash_logout
-rw-r--r--    1 mattdmo   395 Dec  9 17:33 .bash_profile
-rw-r--r--    1 mattdmo   176 May 10  2012 .bash_profile~
-rw-r--r--    1 mattdmo   411 Dec  9 17:33 .bashrc
-rw-r--r--    1 mattdmo   124 …
Run Code Online (Sandbox Code Playgroud)

ls bash awk shell-script

94
推荐指数
6
解决办法
30万
查看次数

让 xargs 使用别名而不是二进制

CentOS 6.5 上的 Bash 4.2:

在我的~/.bash_profile我有一堆别名,包括:

alias grep='grep -n --color=always'
Run Code Online (Sandbox Code Playgroud)

这样我就可以在运行时自动获得颜色突出显示和打印行号grep。如果我运行以下命令,突出显示按预期工作:

$ grep -Re 'regex_here' *.py
Run Code Online (Sandbox Code Playgroud)

但是,当我最近运行它时:

$ find . -name '*.py' | xargs grep -E 'regex_here'
Run Code Online (Sandbox Code Playgroud)

结果没有突出显示,也没有打印行号,迫使我返回并明确添加-n --color=alwaysgrep命令中。

  • 难道xargs没有读过环境别名?
  • 如果没有,有没有办法让它做到这一点?

bash xargs alias

17
推荐指数
2
解决办法
4464
查看次数

将颜色从 ls 通过管道传递到 awk 'print' 语句

这是我昨天提出的问题的后续,在目录列表中显示文件大小的总和

多亏了零比雷埃夫斯毛里茨汉森的正确方向,我现在有了

function dir() {
        ls -FaGl "${@}" | awk '{print; total += $4}; END {print "\t\ttotal: ",total/1024,"KB"}'
}
Run Code Online (Sandbox Code Playgroud)

在我的.bash_profile,它工作得很好。但是,至少在 Linux 上(我还没有机会在 OSX 上尝试它),我ssh在 XP 上使用 PuTTY,我的目录颜色现在不见了。有没有办法通过管道将颜色代码传递给 awkprint语句?

更新

感谢 Sukminder 的回答,添加--color=always可以解决问题,就像auto之前设置的那样。但是,我现在在目录列表的末尾和总行之间有一个空格:

[19:30:58 mattdmo@server ~/webapps/django15 ] $ dir
drwxr-xr-x  7 mattdmo 4096 Mar 24 20:28 ./
drwxr-xr-x 17 root    4096 Mar 18 20:15 ../
drwxr-xr-x  7 mattdmo 4096 Mar 14 …
Run Code Online (Sandbox Code Playgroud)

ls colors bash pipe awk

8
推荐指数
1
解决办法
4242
查看次数

sudo: 无法初始化 PAM: 没有这样的文件或目录

当尝试在 OSX 10.8.3 上使用英特尔数学核心库(MKL) 构建NumPy Python 数学模块时,我遇到了 Accelerate 和 vecLib 框架覆盖 MKL 的一些问题。无论如何,我认为暂时重命名是个好主意。移动后没有任何反应(至少在命令行上)。然而进入之后/System/Library/Frameworks/Accelerate.framework/System/Library/Frameworks/vecLib.frameworkAccelerate.framework

\n\n
sudo mv vecLib.framework/ vecLib.framework.old\n
Run Code Online (Sandbox Code Playgroud)\n\n

我收到以下错误:

\n\n
sudo: unable to initialize PAM: No such file or directory\n
Run Code Online (Sandbox Code Playgroud)\n\n

哎呀。不幸的是,该mv命令有效,但现在当我尝试使用时sudo出现相同的错误,但命令不起作用。当我尝试vecLib通过 Finder 重命名时,我得到:

\n\n
The operation can\xe2\x80\x99t be completed.\nAn unexpected error occurred (error code -8076).\n
Run Code Online (Sandbox Code Playgroud)\n\n

这显然是某种权限错误。

\n\n

所以,我的问题是我怎样才能sudo重新开始工作?App Store.app 甚至无法运行,所以我无法重新安装 XCode(这显然是vecLib.framework来自哪里)或其他任何东西。我害怕重新启动,因为我担心计算机会挂起,而(正如您所知)至少它现在可以工作,尽管没有任何提升的权限功能。

\n\n

有什么建议么?

\n\n
\n\n

通常我不会交叉发布,但我需要尽快找到解决此问题的方法。

\n

osx pam sudo

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

如何设置 OSX 应用程序使用的路径

我正在运行 Mountain Lion 10.8.4,并且我的环境都经过自定义,~/.profile这样当我从命令行运行Sublime Text或 Eclipse等 GUI 应用程序时

open /Applications/Sublime\ Text\ 2.app
Run Code Online (Sandbox Code Playgroud)

它们继承了我的$PATH设置,允许应用程序运行不在 OSX 非常有限的默认路径中的外部命令。但是,我真的很希望能够通过 Finder 或 Dock 打开程序,并为它们提供我在命令行上使用的相同路径。launchctl setenv PATH $PATH在 10.8 中不起作用。我该如何设置?

osx gui path environment-variables osx-finder

4
推荐指数
1
解决办法
1994
查看次数

为什么在现代基于 GUI 的 Linux 发行版中,使用命令行很常见?

命令行是一个流行的选择,还是我这里有什么问题?

在现代 Linux 中,有数十种全新、强大的 3D 渲染 GUI、基于图形的 API 和桌面界面,它们可以通过更强大的特色程序轻松实现在 GUI 上的命令解释器基于文本的 UI 中输入的命令。更好地包含 GUI 元素。

我想说的是,为什么命令行在 2013 年仍然如此流行?

我的意思是我可以同意,在计算机中的内存如此之小以至于花哨的 GUI 会耗尽主内存之前,但现在内存确实便宜,GUI 是 3-D,我们的移动电源机器每天都在变得更好说吧,那么为什么我们还在解释器解析终端 UI 模拟中输入命令呢?

为什么没有更健壮和图形化的方式来实现命令,只能通过更现代的 GUI 来实现?

例如,“ls”或“list”如何作为按钮生成数据的表视图,或者“umount”在生成当前挂载点的表视图的按钮中实现?

总的来说,为什么没有更现代的命令解释器实现,在更方便的装饰中具有完全相同的控制和功能?

PS:我也应该在这里添加这个......我并不是说每个命令都应该使用基于 GUI 的程序来实现,并带有花哨的小部件等。我只是想说我想我们会对命令行进行改造,或者也许可以通过视觉方面更好地表达、优化、管理或循环某些想法,而不仅仅是“文字”。不是要开始争论,而是要找出为什么这么多年以来没有任何东西改变这种方式以及操作系统/软件中图形的进步。

command-line

0
推荐指数
3
解决办法
1403
查看次数

标签 统计

bash ×3

awk ×2

ls ×2

osx ×2

alias ×1

colors ×1

command-line ×1

environment-variables ×1

gui ×1

osx-finder ×1

pam ×1

path ×1

pipe ×1

shell-script ×1

sudo ×1

xargs ×1