17个开发人员应该知道的实用CLI命令

开发 前端
作为前端开发工程师,我们需要知道哪些命令?如果您熟悉这些命令,它们将大大提高您的工作效率。

作为前端开发工程师,我们需要知道哪些命令?如果您熟悉这些命令,它们将大大提高您的工作效率。

1.tree

朋友们,你们知道如何像下面这样列出一个目录的文件结构吗?

它很好地显示了文件之间的目录关系,这真的很酷。

commands
├── a.js
├── b.js
├── c.js
├── copy-apps
└── fe-apps
└── a.js
├── fe-apps
└── a.js
├── test.log
└── xxx
└── yyy

在此之前,您需要安装命令tree。

brew install tree

然后只需在文件目录中执行tree命令。

图片

2.wc

wc是word count的缩写,常用于文件统计。它可以统计字数、行数、字符数、字节数等。

我经常用它来统计文件中的代码行数。

图片

3.du

打印出一个目录的文件大小信息。我们用的比较少,但是是一个非常值得学习的命令。

du -h:打印出适合人类阅读的信息。

du -a:列出目录中文件大小的信息;

du -s:只显示总大小,不显示具体信息。

  commands git:(master)  du
0 ./xxx/yyy
0 ./xxx
0 ./fe-apps
0 ./copy-apps/fe-apps
0 ./copy-apps
0 ./.git/objects/pack
0 ./.git/objects/info
0 ./.git/objects
8 ./.git/info
104 ./.git/hooks
0 ./.git/refs/heads
0 ./.git/refs/tags
0 ./.git/refs
136 ./.git
168 .
  commands git:(master)  du -h
0B ./xxx/yyy
0B ./xxx
0B ./fe-apps
0B ./copy-apps/fe-apps
0B ./copy-apps
0B ./.git/objects/pack
0B ./.git/objects/info
0B ./.git/objects
4.0K ./.git/info
52K ./.git/hooks
0B ./.git/refs/heads
0B ./.git/refs/tags
0B ./.git/refs
68K ./.git
84K .

图片

  commands git:(master)  du -ha
4.0K ./a.js
0B ./xxx/yyy
0B ./xxx
0B ./fe-apps/a.js
0B ./fe-apps
4.0K ./test.log
0B ./copy-apps/fe-apps/a.js
0B ./copy-apps/fe-apps
0B ./copy-apps
4.0K ./c.js
4.0K ./.git/config
0B ./.git/objects/pack
0B ./.git/objects/info
0B ./.git/objects
4.0K ./.git/HEAD
4.0K ./.git/info/exclude
4.0K ./.git/info
4.0K ./.git/description
4.0K ./.git/hooks/commit-msg.sample
8.0K ./.git/hooks/pre-rebase.sample
4.0K ./.git/hooks/pre-commit.sample
4.0K ./.git/hooks/applypatch-msg.sample
4.0K ./.git/hooks/fsmonitor-watchman.sample
4.0K ./.git/hooks/pre-receive.sample
4.0K ./.git/hooks/prepare-commit-msg.sample
4.0K ./.git/hooks/post-update.sample
4.0K ./.git/hooks/pre-merge-commit.sample
4.0K ./.git/hooks/pre-applypatch.sample
4.0K ./.git/hooks/pre-push.sample
4.0K ./.git/hooks/update.sample
52K ./.git/hooks
0B ./.git/refs/heads
0B ./.git/refs/tags
0B ./.git/refs
68K ./.git
4.0K ./b.js
84K .

du -sh

4. alias

alias 命令用于设置命令的别名。如果您只键入 alias,将列出所有当前的别名设置。

图片

让我们尝试为 git status 设置一个别名

alias gs="git status"

图片

值得注意的是:如果你希望 gs 命令是永久的,你应该在 .profile 或 .zshrc 中设置它。

5. grep

我们经常需要查找服务器上日志文件的内容,grep 将是我们得心应手的帮手。

有一个日志文件test.log。它包含以下内容:

const a = 1
const b = 2
const c = 3


console.log(a + b + c)

如何突出显示包含 a 字符的位置?这很容易,不是吗?

grep a test.log
grep a test.log

6.cat

cat 的主要目的是查看文件的内容并将其打印在屏幕上。

但它至少还有一些其他用途。

1.清空a.js的内容

  commands git:(master)  cat a.js // There are two lines of code in a.js
const a = 'fatfish'


console.log(a)%
commands git:(master) cat /dev/null > a.js // clear the contents of a.js
commands git:(master) cat a.js // The content in a.js is cleared.
commands git:(master)

图片

2.将a.js的内容复制到b.js

  commands git:(master)  cat a.js
const name = 'fatfish'
console.log(name)
commands git:(master) cat b.js // No content in b.js
commands git:(master) cat a.js > b.js // Copy the contents of a.js to b.js
commands git:(master) cat b.js // The content in b.js is the same as in a.js
const name = 'fatfish'
console.log(name)
commands git:(master) cat a.js
const name = 'fatfish'
console.log(name)

3.将a.js的内容添加到c.js的最后一个字符。

  commands git:(master)  cat a.js
const name = 'fatfish'
console.log(name)%
commands git:(master) cat c.js
const age = 100
console.log(age)
commands git:(master) cat a.js >> c.js
commands git:(master) cat c.js
const age = 100
console.log(age)const name = 'fatfish'
console.log(name)

图片

7. clear

有时,我们需要在终端中进行一些操作,以至于屏幕上的内容足以让我们感到厌烦。

如何清除它们?我们需要逐行删除它们吗?

图片

8.cp

cp 命令用于复制文件或目录。

cp -f:当要复制的文件覆盖已有的目标文件时,不会有提示信息。

cp -r:如果复制的文件是目录文件,则复制该目录下的所有子目录和文件。

  commands git:(master)  ls -R
a.js b.js copy-apps fe-apps
./copy-apps:
./fe-apps:
// 1. copy a file
commands git:(master) cp a.js fe-apps
commands git:(master) ls -R
a.js b.js copy-apps fe-apps
./copy-apps:
./fe-apps:
a.js
commands git:(master) cp fe-apps copy-apps
cp: fe-apps is a directory (not copied).
// 2. copy a directory
commands git:(master) cp -rf fe-apps copy-apps
commands git:(master) ls -R
a.js b.js copy-apps fe-apps
./copy-apps:
fe-apps
./copy-apps/fe-apps:
a.js
./fe-apps:
a.js

图片

9. cd

这篇文章一定是没有技术含量的,因为cd真的没什么好写的,作为开发者,谁不熟悉呢?

也许你是对的,但我只是想说 cd - 可以回到你上次访问的目录。我认为这是一个好技巧。

图片

10. ls

这是一个使用频率很高的命令,用来显示文件目录的内容列表。

它可以至少以 3 种方式使用。

  • ls -a:显示所有文件和目录(包括以.开头的目录)
  • ls -A:显示所有文件和目录(不包括以.目录开头的目录)
  • ls -R:显示所有文件和目录,如果目录中有文件,则按顺序列出

11. rm

它用于删除文件或目录。

rm -i: 将目录下的文件一个一个删除,删除前会询问是否删除文件。

图片

rm -r:将指定目录及其子目录下的所有文件一起处理(注意:不删除文件。)

rm -f:用于强制删除文件或目录。

图片

12.tail

我想你一定也有在服务器上查看日志内容的经历,tail绝对是个好帮手。

tail -f filename 会在屏幕上显示filename尾部的内容,当它的内容发生变化时,你会在屏幕上看到最新的内容。

图片

13.MV

有时我们想更改文件或目录的名称,或者将其移动到另一个地方,这时我们可以使用 mv 命令。

1.修改文件名

  commands git:(master)  ls
a.js
commands git:(master) mv a.js xxx.js
commands git:(master) ls
xxx.js
commands git:(master)

图片

2.将文件移动到其他目录

  commands git:(master)  ls -R
a.js fe-apps
./fe-apps:
xxx.js
commands git:(master) mv a.js fe-apps
commands git:(master) ls -R
fe-apps
./fe-apps:
a.js xxx.js

图片

14.touch

我经常使用 touch 命令创建一个新文件,尽管它用于修改文件或目录的时间属性。

图片

15.which

如果要查看命令的具体路径,可以使用 which。

  commands git:(master)  which node
/Users/dz0400229/.nvm/versions/node/v16.0.0/bin/node
commands git:(master) which npm
/Users/dz0400229/.nvm/versions/node/v16.0.0/bin/npm
commands git:(master) which npx
/Users/dz0400229/.nvm/versions/node/v16.0.0/bin/npx
commands git:(master)

16. mkdir

是的,你以前肯定用过这个命令,没什么好说的!

但是mkdir -p dirname 真的是我们很少用到的东西,它有什么用呢?

  commands git:(master)  ls
a.js b.js copy-apps fe-apps
commands git:(master) mkdir xxx/yyy // You cannot create the yyy directory because the xxx directory does not exist
mkdir: xxx: No such file or directory
commands git:(master) mkdir -p xxx/yyy // `-p` will check if the xxx directory already exists, and create it if it doesn't.
commands git:(master) ls
a.js b.js copy-apps fe-apps xxx
commands git:(master) ls -R
a.js b.js copy-apps fe-apps xxx
./copy-apps:
fe-apps
./copy-apps/fe-apps:
a.js
./fe-apps:
a.js
./xxx:
yyy
./xxx/yyy:

图片

17.whoami

显示用户名。

  commands git:(master)  whoami
dz0400229

总结

到这里,我想与您分享的17关于CLI的实用命令就结束了

责任编辑:华轩 来源: web前端开发
相关推荐

2020-01-27 16:28:57

开发命令远程服务器

2017-10-11 13:20:56

Linux命令工程师

2009-09-10 14:18:03

PHP库

2023-10-26 16:56:24

2019-11-25 14:09:34

控制台命令开发

2023-03-08 15:13:32

Git工具开发

2011-07-10 15:18:11

开发

2013-01-28 10:25:46

开发人员设计技巧

2015-06-26 09:34:29

CSS开发框架及工具

2021-02-05 12:58:18

开发人员CICD

2009-01-11 10:18:46

脚本语言F#Groovy

2018-04-08 10:08:43

开发人员工具

2022-02-21 00:11:24

Java工具开发

2017-02-24 19:10:45

C#开发人员

2022-12-16 08:14:00

2012-12-28 10:10:18

2022-07-04 08:00:00

Web开发人员编程习惯程序员

2013-01-10 10:10:11

Web开发Web工具

2020-10-13 08:41:58

Java开发框架

2023-02-08 08:32:58

点赞
收藏

51CTO技术栈公众号