Answers:
您可以使用alias
或type
命令来检查特定别名的含义:
$ alias ll
alias ll='ls -alF'
$ type ll
ll is aliased to `ls -alF'
但是请注意,别名可能会使用其他别名,因此您可能必须递归检查它,例如,对于ll
,还应该检查ls
其调用的命令:
$ alias ls
alias ls='ls --color=auto'
$ type ls
ls is aliased to `ls --color=auto'
所以ll
实际上意味着:
ls --color=auto -alF
alias ll='ls -lh'
。ls -l
如果您想要以字节为单位的大小,而不是人类友好的B / kiB / MiB / GiB,则可以运行。
ll
是您中定义的别名~/.bashrc
,只要您不更改它,它就是ls -alF
:
$ grep ll= <~/.bashrc
alias ll='ls -alF'
这三个选项是:
如
$ grep ls= <~/.bashrc
alias ls='ls --color=auto'
显示,ls
本身又是的别名ls --color=auto
:
使用
--color=auto
,ls
仅在将标准输出连接到端子时发出颜色代码。该LS_COLORS
环境变量可以更改设置。使用dircolors
命令进行设置。
bash
用户的默认shell 在哪里,别名ll
定义在/etc/skel/.bashrc
哪个副本中复制到每个新版本中用户的主目录。当然,您可以使用任何文件来存储自己的别名-您所需要的只是它的来源。
grep
,它将文件名作为参数。虽然grepping启动文件将帮助您找到其中的别名是(重新)定义(注意,这可能是在一个文件中/etc
-明知会为你节省一些挠头,如果你从用户启动文件删除它,它仍然存在,甚至更改其行为),如果您只是想快速了解定义是什么,请按照接受的答案中的说明执行别名命令。
bash
打开文件,但是更好!问题帖子中的最后一句话为:是否有任何方法可以查找ll
和查看其语法?,这就是我的答案。
您可以查看〜/ .bashrc(或别名所在的某些文件),也可以在shell中编写以下命令:
command -v ll # "command" is a shell built-in that display information about
# the command. Use the built-in "help command" to see the
# options.
type -p ll # "type" is another built-in that display information about how the
# command would be interpreted
grep -r "alias ll=" ~ # and don't worry about de .file that contains your
# alias. This command search recursively under each
# folder of your home. So it's something rude.
find ~ -maxdepth 1 -type f | xargs grep "alias ll" # Just look in
# the files (not folders) in your home folder
但是,为什么使用不带-name“。*”的find呢?因为你可以把它放在你的.bashrc中
source bash_hacks # where the file bash_hacks, in your home directory can
# contain the alias ll='ls -la etc etc'.
由于“ ll”是一个别名,因此不必只具有一个含义(ll ='ls -alF --color'),因此您可以像其他命令一样对“ ll”进行别名,例如,我不知道“ rm” 。我认为这更像是一种惯例(常用产品)。
但是“ ll”可能是存储在PATH任意文件夹中的程序。例如,如果您的家中有一个名为“ bin”的文件夹,请制作一个“ ll”脚本,其中包含以下内容
#!/bin/bash
ls -lhar
但是,如果您的PATH已更改为添加另一个包含新的“ ll”命令的文件夹,该怎么办?有关更多有趣的信息,您可以查阅以下链接到相关问题。
应该是ls -la
。见Linuxize.com:
https://linuxize.com/post/how-to-create-bash-aliases/
type -a commandname
将显示全部-它会按优先级告诉您命令是PATH中的别名,函数,内置文件还是一个或多个可执行文件中的一个或多个。例如,这有助于理解为什么不对命令进行混叠处理不会将其完全返回到预期的行为的原因。