有些Linux命令非常熟悉,我们甚至没有注意到正在使用它们。用于更改目录的cd命令就是其中之一。有一些技巧可以帮助你提高cd的使用效率,或者你可以完全抛弃它。
你整天眨眼,每天眨眼,但是,大多数时候,你没有意识到。除非有什么东西进入你的眼睛,否则你很少去想那些小小的,有规律的动作。有些Linux命令是这样的。它们徘徊在你意识的边缘。即使你每天都使用它们,它们也不会引起你的注意,因为它们又小又简单。
在使用Linux计算机的第一个小时内,您将学习如何使用Bash和其他shell附带的cd命令。也许您以前有在其他操作系统上使用它的经验,不需要解释。它会改变当前的工作目录,对吗?还有什么要知道的?
好吧,比你想象的要多。这里有一些提示和技巧,可能会提高你的工作效率。
为了完整起见,让我们快速浏览一下cd的标准用法。
如果我们在主目录中,但要更改为位于/usr/lib/firefox/browser的目录,然后返回主目录,则可以使用以下命令:
cd /usr/lib/firefox/browser/ cd /home/dave您不必键入整个目录路径;您可以使用auto complete。对于路径的每个部分,键入足够的字母以区分目录名和其他部分后,按Tab键自动完成目录名。
例如,在命令行中键入以下内容:
cd /usr/lib/fire现在,按Tab键,shell将为您填充“firefox”目录的其余部分。如果将“/b”添加到路径并再次按Tab键,则会将“browser”目录添加到命令中。
shell添加了一个尾随的正斜杠,这样就可以重复制表符完成过程。这也是为什么第一个命令后面有一个正斜杠。第二张没有,因为那张是打出来的。
您可以使用波浪号(~)作为从文件系统中任意位置快速返回主目录的速记方式;只需键入以下内容:
光盘~
这些是绝对路径的示例,其中提供了从文件系统根目录到目标目录再到cd的整个路径。
相对路径是从当前工作目录引用的。在主目录中,有一个名为work的目录。您可以使用tree命令查看工作目录中的目录树,只需键入以下内容:
tree工作目录包含一个名为dev的目录。在文件系统的根目录中还有一个名为dev的目录。您可以使用ls和-d(directory)来查看其中的每一个。-hl(人类可读的长列表)选项告诉ls对目录大小和长格式列表使用易于读取的单位。
如果您键入dev,shell将假定您指的是当前目录中的“dev”。要强制它查看根目录中的“dev”,只需添加一个前导正斜杠来表示文件系统的根目录,如下所示:
ls -d dev -hl ls -d /dev -hlcd命令在这方面的行为类似于ls。如果将目录引用为dev,如下所示,则假定您指的是工作目录中的目录:
cd dev如果没有前导正斜杠,则假定从当前工作目录开始的路径也较长,如下所示:
cd dev/mobile/android相关:Bash需要知道的15个特殊字符
双点标识符表示当前工作目录的父目录。如果您位于嵌套较深的子目录中,则可以使用。。用cd移动到你所在目录的父目录。
这将在目录树中向上移动两个目录。如果你再加上。。在命令上,它允许您在目录树上移动任意数量的级别。
键入以下内容:
cd .. cd ../..您还可以通过键入以下内容来创建一组别名来执行这些操作:
alias .2="cd ../.." alias .3="cd ../../.."您可以用与命令本身相同的方式使用这些命令。
要使别名在重新启动计算机时保持一致,必须将它们添加到.bashrc或.bash\u别名文件中。
相关:如何在Linux上创建别名和Shell函数
连字符(-)是另一个具有特殊功能的符号。它会把你的目录改回你刚来的目录。
对于本例,假设您在“c”目录中。您可以使用cd切换到“forth”目录。然后,可以使用cd-在两个目录之间来回跳转。
为此,请键入以下内容:
cd../向前
cd–
cd–
您要移动到的目录的名称将在您移动到它之前显示。
相关:如何在Linux上使用pushd和popd
shell使用当前工作目录作为相对路径的“根”或基目录。可以使用CDPATH环境变量将另一个位置设置为相对路径的基目录。如果您将大部分时间花在文件系统树的某个部分,这可以节省您每天的大量击键(和时间)。
让我们键入以下内容以使work/dev/projects成为相对路径的基本目录:
export CDPATH=/home/dave/work/dev/projects现在,每次使用dc命令时,都会首先检查CDPATH环境变量中的位置是否匹配目录名。如果它们中的任何一个与cd命令中提供的目标匹配,那么您将被传输到该目录。
现在,无论您在文件系统中的哪个位置,当您使用cd命令时,shell都会检查目标目录是否位于基目录中。如果是,则移动到该目标目录。
如果目标目录以前导正斜杠(/)开头,使其成为绝对路径,则它不会受到CDPATH环境变量的影响。
为了演示这一点,我们键入以下内容:
cd c cd prolog cd /usr cd forthCDPATH环境变量实际上是一个path,就像path环境变量一样。键入命令时,shell将在路径中的位置搜索匹配项。使用CDPATH时,shell将在CDPATH环境变量中的位置中搜索匹配项。另外,与PATH相同,CDPATH可以包含多个位置。
相关:如何在Bash中使用变量
要让shell在CDPATH环境变量中的其他位置之前搜索当前目录,只需添加句点(.)在这条路的开始,就像这样:
export CDPATH=.:/home/dave/work/dev/projects要使设置永久化,必须将它们添加到配置文件中,如.bashrc。
需要注意的一点是:如果设置基目录,它也会影响脚本中执行的目录更改。为了避免这种情况,可以在脚本中使用绝对路径,也可以在指定CDPATH时在.bashrc文件中使用测试,如下所示:
if test “${PS1+set}”; then CDPATH=.:/home/dave/work/dev/projects; fi这将执行一个测试,以查看是否设置了命令行提示变量$PS1。只有测试成功,才会设置CDPATH环境变量。
相关:如何在Linux中将目录添加到$PATH
使用shopt命令,可以为shell设置某些选项。其中一些可以增强你对cd的使用。要设置它们,可以在shopt中使用-s(enable)选项来传递选项名。
cdspell选项检查您的目录名,并纠正一些常见的键入错误,包括转置或缺少字符,或名称字符过多。如果它发现一个目录匹配任何更正,则打印更正的路径,并执行cd操作。
例如,我们键入以下命令来设置cdspell选项并拼写错误“Desktop”,以查看shell是否为我们更正了它:
shopt -s cdspell cd Desktposhell捕捉到错误,更正它,并将其更改为“Desktop”目录。
另一个可以与cd一起使用的shopt选项是autocd。它完全不需要您键入cd。您键入的任何不是命令、脚本或其他可执行文件(如别名)的内容都将用作目标目录。如果你能转移到那个目录,它会被打印在终端窗口中,你会被改变到那个目录。
例如,我们键入以下内容:
shopt -s autocd /usr/local/games /etc ~看!你甚至不用cd就可以跳过整个文件系统!
使用shopt更改的设置只影响交互式shell,而不影响脚本。
你可能不会接受所有这些。然而,很可能你在这里发现了一些有趣或有益的东西。毕竟,任何加快或简化命令行导航的方法都是好的!
... 在本文中,我将向您展示如何在Linux上安装、运行和使用PowerShell! ...
...许您在Android设备上安装诚实善良的Linux应用程序。下面是如何使用Termux应用程序。 ...
... 如何在windows10上安装linux bash shell ...
要在Linux中重命名文件吗?如果您知道如何在Windows、macOS或Chrome操作系统中完成这项工作,那么您就知道如何在这里完成这项工作。在大多数版本的Linux上,您只需右键单击一个文件并选择Rename选项。 ...
想在Linux系统上添加用户但不知道如何添加?在Linux上使用命令行界面管理用户无疑是一项复杂的工作。而对于初学者来说,即使添加新用户也是一场噩梦。 ...
虽然您可能已经知道如何使用GUI文件浏览器在Linux中移动文件,但您可能想知道终端中是否有move命令允许您将文件快速移动到不同的目录。mv命令就是您想要的命令,它的简单语法和一些可选的安全标志很容易使用。 ...
...已配置的系统,与其他计算机共享,或者只保存备份。 如何工作 导入和导出功能是在2019年5月的Windows10版本1903更新中添加的。如果尚未安装,则无法使用这些命令行选项。 您只需要为Windows wsl命令提供两个新选项:--export和--i...