来自Linux手册页:

来自Linux手册页:

使用shshell(不是bash),Linux/UNIX 中的哪个命令可以打印出我当前的目录?

$ *showmewhereiam*
/sys/kernel/debug
$

答案1

尝试pwd

$ pwd
/home/<username>

答案2

虽然一般答案是pwd,但请注意,这可能会产生不同的结果,具体取决于您如何到达给定的目录,以及路线是否包含符号链接。

例如,如果您有一个名为的目录real,并且有指向该目录的符号链接为virtual,并且您cd进入该virtual目录,那么pwd将显示该virtual目录名称,即使您所在的实际目录是real

要显示真实的底层目录,请使用pwd -Preadlink -f(对于任意路径):

$ mkdir real
$ ln -s 真实虚拟
$ cd 虚拟
$密码
/家/用户名/tmp/虚拟
$ 密码-P
/家/用户名/tmp/真实
$ readlink-f。
/家/用户名/tmp/真实

请注意,shell 经常pwd用它们自己的内部版本替换命令,因此在我的系统(RHEL6)上,尽管pwd(1)手册页建议它--physical可以像一样工作-P,但由于我正在运行bash,所以它不能:

$ pwd--物理
bash:pwd:--:无效选项
密码:用法:密码[-LP]
$ /bin/pwd --physical
/家/用户名/tmp/真实
$ /usr/bin/env pwd --physical
/家/用户名/tmp/真实

答案3

$ pwd
/your/current/directory
$

pwd来自打印工作目录

来自Linux手册页:

姓名

密码- 打印当前/工作目录的名称

概要

密码[选项]...

描述

打印当前工作目录的完整文件名。

-L--逻辑

使用环境中的 PWD,即使它包含符号链接

-P- 身体的

避免所有符号链接

- 帮助

显示此帮助并退出

- 版本

输出版本信息并退出

注意:您的 shell 可能有自己的 pwd 版本,该版本通常会取代此处描述的版本。请参阅您的 shell 文档以了解其支持的选项的详细信息。

(...)

答案4

正如其他人所说,pwd通常可以很好地完成工作。但是,我想补充一个对我有帮助的想法。

在当今常用的所有 shell 上,您都可以自定义命令提示符的外观。我喜欢自定义我的命令提示符,以便它同时显示我所在的计算机的名称和我的工作目录。这样,我就能始终知道自己在哪里。(计算机名称部分可以帮助我了解我使用的终端窗口是否已用于 SSH 到远程服务器。)例如,当我在笔记本电脑上打开一个新的终端窗口(我将其称为 Plastico)时,我会看到以下内容:

Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr> 

您可以看到它将我的主目录缩写为~。我发现对我的终端提示符执行此操作非常方便 - 我总是一眼就能准确地知道我在哪里,甚至比查看 Finder 窗口更方便。

在 tcsh 上,我通过添加set prompt = 'Plastico %~%# ' 到我的主目录中的 .tcshrc 文件来执行此操作。我也在 ksh 上通过添加export PS1="Plastico $PWD $ "到我的 .profile 文件来执行此操作。但作为 Linux 用户,您可能使用 Bash,而我对它没有太多经验(我就是这样的怪人)。但是看起来像我可以通过添加PS1="Plastico \w $ "到我的 .bashrc 文件来实现这一点。

编辑:刚刚注意到 OP 说你感兴趣的是 sh,而不是 bash。好吧;希望大家无论如何都会觉得这很有用。

相关内容