我正在尝试尽可能多地使用文件工具,因为我对 Linux 文件系统还是新手。
作为一个以前的 Windows 用户,我觉得很烦人的是,Ubuntu 中似乎没有明显等同于 .exe 文件的东西?我知道每个文件都是可执行的,但是没有办法查明正在执行软件的 .exe 文件您正在查看哪个文件夹吗?
答案1
需要明确的是,并不是“每个文件都是可执行的”。文件具有与其关联的元数据,其中一个元数据包括它是否可执行。检查元数据的一种方法是使用以下ls
命令:
$ ls -l
total 12
-rwxr-xr-x 1 ownerName groupName 4 Mar 20 18:01 executableFile
^ ^ ^
我不想太深入地研究权限,但这些 x 表示该文件是可执行的,从右到左,由用户ownerName
、组中的任何人groupName
或其他任何人执行。通常ownerName
和groupName
将会是
root
,因此第三个x
将是您短期内最可能最感兴趣的。
当您键入命令时会运行什么可执行文件?与 Windows 非常相似,有一个名为 PATH 的环境变量,其中包含一组目录,shell(命令解释器)将在其中查找具有您提供的名称的可执行文件。 Windows 使用;
作为目录分隔符,Linux(一般是 Unix)使用:
.您可以使用以下echo
命令打印该变量的内容:
$ echo $PATH
/bin:/usr/bin:/usr/local/bin...
您可以使用以下which
命令来识别命令的完整路径:
$ which ls
/usr/bin/ls
正如 @Stan Strum 在上面的评论中提到的,您还可以使用以下type
命令:
$ type ls
ls is hashed (/usr/bin/ls)