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) 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=always
到grep
命令中。
xargs
没有读过环境别名?这是我昨天提出的问题的后续,在目录列表中显示文件大小的总和。
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) 当尝试在 OSX 10.8.3 上使用英特尔数学核心库(MKL) 构建NumPy Python 数学模块时,我遇到了 Accelerate 和 vecLib 框架覆盖 MKL 的一些问题。无论如何,我认为暂时重命名是个好主意。移动后没有任何反应(至少在命令行上)。然而进入之后/System/Library/Frameworks/Accelerate.framework
/System/Library/Frameworks/vecLib.framework
Accelerate.framework
sudo mv vecLib.framework/ vecLib.framework.old\n
Run Code Online (Sandbox Code Playgroud)\n\n我收到以下错误:
\n\nsudo: unable to initialize PAM: No such file or directory\n
Run Code Online (Sandbox Code Playgroud)\n\n哎呀。不幸的是,该mv
命令有效,但现在当我尝试使用时sudo
出现相同的错误,但命令不起作用。当我尝试vecLib
通过 Finder 重命名时,我得到:
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我正在运行 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 中不起作用。我该如何设置?
命令行是一个流行的选择,还是我这里有什么问题?
在现代 Linux 中,有数十种全新、强大的 3D 渲染 GUI、基于图形的 API 和桌面界面,它们可以通过更强大的特色程序轻松实现在 GUI 上的命令解释器基于文本的 UI 中输入的命令。更好地包含 GUI 元素。
我想说的是,为什么命令行在 2013 年仍然如此流行?
我的意思是我可以同意,在计算机中的内存如此之小以至于花哨的 GUI 会耗尽主内存之前,但现在内存确实便宜,GUI 是 3-D,我们的移动电源机器每天都在变得更好说吧,那么为什么我们还在解释器解析终端 UI 模拟中输入命令呢?
为什么没有更健壮和图形化的方式来实现命令,只能通过更现代的 GUI 来实现?
例如,“ls”或“list”如何作为按钮生成数据的表视图,或者“umount”在生成当前挂载点的表视图的按钮中实现?
总的来说,为什么没有更现代的命令解释器实现,在更方便的装饰中具有完全相同的控制和功能?
PS:我也应该在这里添加这个......我并不是说每个命令都应该使用基于 GUI 的程序来实现,并带有花哨的小部件等。我只是想说我想我们会对命令行进行改造,或者也许可以通过视觉方面更好地表达、优化、管理或循环某些想法,而不仅仅是“文字”。不是要开始争论,而是要找出为什么这么多年以来没有任何东西改变这种方式以及操作系统/软件中图形的进步。
bash ×3
awk ×2
ls ×2
osx ×2
alias ×1
colors ×1
command-line ×1
gui ×1
osx-finder ×1
pam ×1
path ×1
pipe ×1
shell-script ×1
sudo ×1
xargs ×1