使用 mkdir 创建多个文件夹
对于开发人员来说,经常要管理文件和目录,创建多个目录需要输入大量重复命令。mkdir 命令有一个强大的技巧,可以使用大括号{}一次性创建多个目录。
假设你要为项目中的多个服务创建不同环境(开发、测试和生产)的文件夹结构。你可能会这样做:
mkdir dev
mkdir test
mkdir prod
当结构变得更复杂时会变得很麻烦。比如需要在所有三个环境中都为后端和前端服务创建文件夹,这个过程就会变得很繁琐。
你可以使用 mkdir 和大括号{}将所有这些操作合并到一个命令中,从而高效地创建目录组合。例如:
mkdir -p {dev,test,prod}/{backend,frontend}
下面是对这个命令的详细解释:
- -p 标志告诉 mkdir 根据需要创建父目录(如果父目录不存在就创建)。
- 大括号{}允许你指定多个选项,mkdir 会自动组合它们。
- 第一组{dev,test,prod}创建不同环境的目录。
- 第二组{backend,frontend}创建不同服务的目录。
当这个命令运行时,会创建以下结构的文件夹:
dev/ backend/ frontend/ test/ backend/ frontend/ prod/ backend/ frontend/
这种方法可以节省大量时间并减少人为错误,特别是在设置具有复杂文件夹结构的大型项目时。
使用 cd - 返回上一级目录
作为程序员经常经常需要进入到嵌套很深的目录里工作。例如,你可能会从项目的根目录进入到代码、配置文件或日志的子目录。这时当你需要返回起始位置时,手动输入 cd..多次来回到最初的目录。
假设你在这样一个目录内中工作:
/home/user/projects/webapp/src/frontend/components
要返回项目根目录,你通常可能需要多次输入 cd..,如下所示:
cd..
cd..
cd..
cd..
仅仅为了回到/home/user/projects/就需要四个单独的命令。非常繁琐且容易出错,比如多输入一次或少输入一次都无法切换到指定目录里。
有一个更简单、更快的替代方法:使用 cd -命令可以立即返回你之前所在的目录,无论你的嵌套结构有多少层。
cd -命令不像 cd..那样切换到父目录下。它会回到你之前所在的最后一个目录,就像浏览器中的“后退”按钮一样。
例如,假设你从项目的根目录/home/user/projects/webapp/开始,然后进入嵌套目录/home/user/projects/webapp/src/frontend/components。现在,你无需多次输入 cd..来返回,只需简单输入:
cd -
你将立即回到/home/user/projects/webapp/。
使用 touch 创建多个文件
假设你需要为一系列测试用例创建 100 个文件,比如 test1.txt、test2.txt,一直到 test100.txt。使用单个 touch 命令来做这件事如下所示:
touch test1.txt
touch test2.txt
touch test3.txt
...
touch test100.txt
可以想象,这既繁琐又耗时。你可以使用 touch 命令结合大括号{}中的数字范围一次性快速创建多个文件:
touch test{1..100}.txt
通过在大括号{1..100}中添加数字范围,可以创建编号从 1 到 100 的文件。
使用 tail -f 查看文件更新
工作中经常需要监控日志文件查找错误、调试程序。如果手动检查日志文件效率低下。tail 命令有一个选项可以自动实时跟踪文件更新。
假设你需要监控日志文件 error_file.log 以跟踪任何新记录的错误。通常,你可能会使用 tail 命令读取文件的最后几行,如下所示:
tail error_file.log
这只会获取文件的当前状态,不会实时更新。如果文件发生变化,将不得不重新运行命令以查看最新内容。
使用 tail -f 命令,你可以实时跟踪日志文件的变化。这允许你看到添加到文件中的新行,而无需重新运行命令。
tail -f error_file.log
如果你想实时跟踪日志文件但只关心特定内容,可以将 tail -f 与 grep 结合使用。例如:
tail -f error_file.log | grep "ERROR"
这个命令将只显示包含“ERROR”单词的行,帮助你过滤日志输出以获取相关信息。
使用 history 查找最近的命令
history 命令允许你查看之前执行的命令列表,假设你已经工作了一段时间,并且运行了一个复杂的 grep 或 find 命令,现在你需要再次使用它。你不太记得准确的语法,手动在终端中滚动查找很繁琐。
history 命令会显示你在当前 shell 会话中之前运行的命令列表。默认情况下,它会显示你的整个命令历史记录,但你可以通过指定一个数字来限制它显示的命令数量。例如:
history 5
这将显示你执行的最后五个命令:
123 ls
124 cd src/
125 mkdir newdir
126 touch newfile.txt
127 history 5
命令前的数字是对应的编号。
你可以使用感叹号(!)后跟命令编号快速重新执行历史记录中的任何命令。例如,如果你想重新运行上面的 mkdir newdir 命令(命令编号 125),你只需输入:
!125