[Linux] "ll" 不是一个命令

大家好,
我是系统解决方案部门的Naka,即使在炎热的夏天,我肚子下不盖条毯子也会感到不自在。

那些构建和运维基础设施环境的人员很可能有很多机会使用 Linux。
*当然,也存在纯 Unix 或纯 Windows 环境。

其中,我认为最常用的命令是“ls”命令,它用于检查文件列表,但
我认为很多人也使用“ll”作为“ls”命令的更高级版本。

本文
将解释“ll”不是命令,有时不能使用,所以最好了解一下它是什么!

本文的观点是:“这没什么大不了的,但有些人并不了解,所以我想解释一下。”

执行环境

【解释说明
】Linux 环境组

操作系统:Ubuntu 20.04.5 LTS(WSL2 环境)
Shell:Bash
语言环境已更改为日语

操作系统:CentOS 7.9 (2009) (WSL2 环境)
・Shell:Bash

【附注】
●Windows 环境
・操作系统:Windows 11(版本:21H2)
・Shell:命令提示符
・语言设置已更改为日语

“ll”通常是指“ls -l”的别名。

“ll”不是命令,而是一个“别名”,它被注册并定义为特定命令的替代名称,就像快捷方式一样。

我相信它通常被认为是“ls -l”的缩写形式并被广泛使用。

使用别名命令进行检查

简要解释别名命令。

Bash shell 的一个内置命令,用于临时注册一个“别名 。
由于它不是 Linux 命令,请注意,在其他 shell 中,可能没有等效的命令,或者其行为可能有所不同。

*这只是暂时的,重启电脑后就会消失,所以如果想永久注册,需要将其写入 shell 配置文件。

如果输入此命令时不带任何参数,则可以看到当前设置的“别名”。

●CentOS7.9(2009) $ alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

如您所见,在 CentOS7 的默认状态下,“ll”指的是“ls -l --color=auto”。

在近期流行的发行版中,“ll”通常一开始就被设置为默认值。
这可能会造成混淆,但需要注意的是,它是一个“别名”,而不是一个“命令”。

为什么了解这些细节很重要

A1. 根据生产环境的不同,“别名”可能不会被设置。


在某些环境中,根本不会注册任何“别名”
,这可能是出于担心设置“别名”可能会导致执行操作员不希望执行的命令 *事实上,根据发行版和版本,默认情况下可能根本不会注册任何“别名”。

如果你不知道你通常使用的命令和选项,那可能会很麻烦,而且
似乎有些人会感到困惑,因为他们不知道“ll”是一个“别名”,不能使用它,所以最好记住它。

A2. 有些事情是不能写进工作程序手册里的。

编写工作流程的礼仪会因每家公司的文化和现场的操作规则而异,但
一般来说,就像你会避免编写相对路径一样,你可能也不会使用用“alias”设置的别名。

不言而喻,使用“rm”命令时,相对路径特别容易导致重大事故。

“别名”设置的存在与否取决于环境,默认内容也因发行版而异,因此最好避免在说明手册中将其用作通用语言。

A3. 即使没有规则,你也可能会收到警告

这与 A2 的答案类似。我刚入职的时候,在程序手册里写了“ll”,当时我的上司告诉我:“那是别名,所以不要在程序手册里使用它。”

有些人认为由于文化和习俗的原因,这是不可能的。

然而,本文并没有说你永远不应该使用它,而是指出“你应该意识到这是一个别名,其含义会根据环境而改变”。

根据分发情况的不同,所登记的定义也各不相同。

我曾写道,最好避免在程序手册中将其用作通用语言,因为有些情况下,其定义截然不同。

●Ubuntu 20.04.5 LTS $ alias | grep ll alias ll='ls -alF'
●CentOS7.9(2009) $ alias | grep ll alias ll='ls -l --color=auto'

直到我在撰写本文时进行研究,我才知道这一点,但
正如上面提到的,在 Ubuntu 20.04.5 LTS 中,它是“ls -alF”,它使用“-a”显示隐藏文件,使用“-F”显示类型标识符。

因此,如果您身处一个只使用此发行版的环境中,并且对“ll”非常熟悉以至于不知道它是一个别名,那么
当您访问另一个服务器时,您可能会感到沮丧,因为在使用“ll”而不使用“-a”和“-F”选项时,您无法找到隐藏文件。

实际上,“ll”本身并没有太大的影响,但它是一种比喻,表明“最好不要在程序手册中使用不确定的东西”。

附注:Windows PowerShell 中的别名

别名不仅存在于 Linux 中,也存在于 Windows PowerShell 中,默认情况下,它们配置为允许使用常见的 UNIX 命令。

UNIX 命令/PowerShell cmdlet
cd → Set-Location
ls → Get-ChildItem

参考资料: https://learn.microsoft.com/ja-jp/powershell/scripting/learn/shell/using-aliases?

如上所示,当您输入 cd 时,相应的 PowerShell cmdlet“Set-Location”将被执行。

*请注意,在 PowerShell 中,命令被称为“cmdlet”而不是“命令”。

概括

就这样。

作者并非一名“正式”警察,而是在反思自身时萌生了撰写这篇文章的想法,他心想:“有些东西你每天使用时都不会注意到”,“我应该思考一下我每天使用的东西
”。

每个命令都有出人意料的实用选项,并且
可以以意想不到的方式使用,因此,不妨借此机会了解一下使用“ll”的各种命令。

这篇文章有点长,感谢您读到这里!

参考资料

alias(1p) - Arch 手册页 (Archwiki)
https://man.archlinux.org/man/core/man-pages/alias.1p.en

使用别名(Microsoft:PowerShell 官方文档)
https://learn.microsoft.com/ja-jp/powershell/scripting/learn/shell/using-aliases?view=powershell-7.4

如果您觉得这篇文章有用,请点击【点赞】!
22
加载中...
22票,平均分:1.00/122
51,960
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

里面

我中途加入 Beyond 公司,
在系统解决方案部门
。我拥有 LPIC-3 304 和 AWS SAA 认证。