这个命令是什么意思 ls -l test.conf -rw-r--r-- l root root?

n00*_*00b 5 command-line openvpn

root@ubuntu:/etc/openvpn# ls -l test.conf -rw-r--r-- l root root 791 Mar 20 09:23 test.conf
Run Code Online (Sandbox Code Playgroud)

上面的命令是什么意思?

Eli*_*gan 11

那不是命令。它包含一个命令。

它是一个提示,后跟一个命令,然后是命令的输出。命令本身是:

ls -l test.conf
Run Code Online (Sandbox Code Playgroud)

该命令显示有关test.conf位于当前目录中的调用文件的信息。ls命令将显示(或清单)有关文件的信息。该-l标志使其以长格式显示信息,而不仅仅是显示文件名。

ls没有标志 like-l最常用于列出多个文件或确定文件是否存在,但也可能与已知存在的文件一起使用;默认情况下,在 Ubuntu 中,发布将以显示文件类型的方式突出显示,例如,如果它是一个目录,它将使用某种颜色,如果它被标记为可执行文件,则使用另一种颜色。)ls filenamefilename

输出是:

-rw-r--r-- l root root 791 Mar 20 09:23 test.conf
Run Code Online (Sandbox Code Playgroud)

这意味着文件:

  • 不是目录-rw-r--r--不以 开头d
  • 是非setuid和非 setgid (no sin -rw-r--r--) 和非粘性(no t)
  • 可由其所有者(rw-对于所有者)可读和可写,但只能由其他用户(r--对于组成员,r--对于其他人)可读- 请参阅有关权限的社区文档
  • 拥有由用户root(具有root作为其身份也)
  • 是791个字节大小
  • 报告其最后修改(或创建)时间为 3 月 20 日上午 9:23
  • 有名字 test.conf

该行的开头是一个提示;这是在 shell 中向用户显示的内容,以通知用户他们可以输入命令。提示通常被配置为向用户提供有用的信息。这里的提示是:

root@ubuntu:/etc/openvpn#
Run Code Online (Sandbox Code Playgroud)

这意味着当前用户是root,机器的主机名是ubuntu(这通常意味着这是一个live CD/DVD/USB系统,但有人也可以ubuntu在已安装的系统中命名他们的机器),当前目录是/etc/openvpn(这是配置数据的位置)对于存储OpenVPN,另请参阅Ubuntu OpenVPN 文档)。

#字符表明这是一个超级用户shell(这是意料之中的,因为它由超级用户超级用户拥有);否则它会是$(但请注意,此约定并未得到普遍遵循,并且某些 shell 的默认设置%并未指示有关 shell 功能的任何信息)。


Luc*_*cio 5

我认为你对那条线的结构有误解。

第一句话是在上述文件夹中的确定计算机上告诉用户

root@ubuntu:/etc/openvpn#
Run Code Online (Sandbox Code Playgroud)

在这里你有:

  1. 用户 = "root"
  2. 机器名称 = "ubuntu"
  3. location = "/etc/openvpn"

它们之间相应的分隔符是@,:#

在最后一个分隔符 ( #)之后的命令是:

ls -l test.conf
Run Code Online (Sandbox Code Playgroud)

你得到的输出是:

-rw-r--r-- l root root 791 Mar 20 09:23 test.conf
Run Code Online (Sandbox Code Playgroud)