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

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

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命令用于设置命令的别名。如果您仅键入别名,将列出所有当前别名设置。

让我们尝试为 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

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:显示所有文件和目录(不包括以.directory开头的目录)
  • 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

关于优联前端

武汉优联前端科技有限公司由一批从事前端10余年的专业人才创办,是一家致力于H5前端技术研究的科技创新型公司,为合作伙伴提供专业高效的前端解决方案,合作伙伴遍布中国及东南亚地区,行业涵盖广告,教育, 医疗,餐饮等。有效的解决了合作伙伴的前端技术难题,节约了成本,实现合作共赢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/26176.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NOS II - Timer定时器

NOS II-Time定时器 简单回忆NIOS II中定时器的使用。 一、定时器的框图 二、定时器寄存器的描述 定时器的寄存器都是16bit的, 偏移量寄存器名称R/W15bit…4bit3bit2bit1bit0bit0Status - 状态寄存器R/W - 可读可写*****runTO1Control - 控制寄存器R/W***stopsta…

2024年高考作文考人工智能,人工智能写作文能否得高分

前言 众所周知,今年全国一卷考的是人工智能,那么,我们来测试一下,国内几家厉害的人工智能他们的作答情况,以及能取得多少高分呢。由于篇幅有限,我这里只测试一个高考真题,我们这里用百度的文心…

【最新鸿蒙应用开发】——总结ArkUI生命周期

鸿蒙ArkUI相关的生命周期都有哪些? 1. UIAbility生命周期 onCreate、onWindowStageCreate、onForeground、onBackground、onWindowStageDestroy、onDestroy。 onCreate:Create状态为在应用加载过程中,UIAbility实例创建完成时触发,系统会调…

Spring Boot 分片上传、断点续传、大文件上传、秒传,应有尽有

文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法,毕竟很少有人会忍受,…

APP需要做等保吗?

在数字化时代,APP已成为我们生活中不可或缺的一部分,它们如同无形的桥梁,连接着现实世界与虚拟世界,为我们提供了前所未有的便利。然而,随着APP的普及,其背后潜藏的安全风险也日益凸显。近年来,…

Java面向对象-Object类的toString方法、equals方法

Java面向对象-Object类的toString方法、equals方法 一、toString二、equals三、总结 一、toString Object的toString方法。 方法的原理: 现在使用toString方法的时候,打印出来的内容不友好。 现在想要知道对象的信息。 出现的问题:子类Stu…

Hbase布隆过滤器

Hbase布隆过滤器 说在前面 重要思想: 1.时间换空间:降低内存使用率 --> 降低数据查询时间 2.空间换时间:提高数据查询速率 --> 保存在内存中

2024北京通信展:聚焦新一代信息通信技术、产品、应用及解决方案

中国国际信息通信展览会(PTEXPO)作为工业和信息化部主办的ICT行业盛会,自1990年创办以来,已走过了三十多年的辉煌历程。三十余载光阴荏苒,PT展以其独特的魅力,不仅成为反映信息通信行业发展新成果的重要窗口…

基于GA遗传算法的多机无源定位系统GDOP优化matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于GA遗传算法的多机无源定位系统GDOP优化matlab仿真。仿真输出GDOP优化结果,遗传算法的优化收敛曲线以及三维空间坐标点。 2.测试软件版本以及运行…

SpringBoot的事务注解

SpringBoot的事务注解 在Spring Boot应用中,事务管理是一个关键的部分,尤其是当涉及到数据库操作时。Spring Boot提供了强大的事务管理支持,使得开发人员可以通过简单的注解来控制事务的边界和行为。本文将介绍如何在Spring Boot中使用事务注…

传感器技术

传感器技术 传感器概述传感器简介传感器的特性线性度灵敏度迟滞重复性传感器的动态特性 步进电动机步进电机的工作原理 传感器概述 传感器简介 传感器:能够感受被测量并按照一定规律转换成可用输出信号的器件或装置。 敏感元件:传感器中能直接感受或响…

Nodejs 第七十六章(MQ进阶)

MQ介绍和基本使用在上一章介绍过了,不再重复 消息:在RabbitMQ中,消息是传递的基本单元。它由消息体和可选的属性组成 生产者Producer:生产者是消息的发送方,它将消息发送到RabbitMQ的交换器(Exchange&…

3 数据类型、运算符与表达式-3.5 字符型数据-3.5.2 转义字符

3.5.2 转义字符 #include <stdio.h>main() {int a, b, c;a 5;b 6;c 7;printf("ab c\tde\rf\n");printf("hijk\tL\bM\n");return 0; }

花键轴类零件加工方法有哪些?

花键轴零件的加工方法 一辆普通中型卡车上约含 30 个花键轴零件, 通常用在离合器、变速器、传动轴总成、差速器、转向总成等位置。 花键轴零件的加工工艺是传统的切削加工和塑形成形加工两种。传统工艺如下的8个主要工序&#xff1a; 下料→锻造毛坯→毛坯加工→外花键加工…

【C语言】青蛙跳台阶问题 - 递归算法(一种思路,针对三种不同的情况)

文章目录 1. 前言2. 题目和分析2.1 代码实现2.2 反思 (重点) 3.题目二&#xff08;变式&#xff09;3.1 分析3.2 代码实现 4. 题目三&#xff08;变式&#xff09;4.1 分析4.2 代码实现 1. 前言 相信大家看到青蛙跳台阶问题时&#xff0c;第一时间就会想到递归。那你知道为什么…

【免杀】C2远控-Loader加载器-动态API调用

目录 创建后门程序站在杀毒程序立场上对后门进行分析例&#xff1a;动态调用VirtualProtect函数 作用:绕过杀毒对导入表的检测定性 创建后门程序 VS新建项目 回调函数加载Loader #include <Windows.h>unsigned char shellcode[] "";void CallBack() {void* p…

FlashBrowser

本例&#xff1a;windows10 下载FlashBrowser 解决flash失效问题&#xff0c;更换浏览器 https://www.flash.cn/ 下载FlashBrowser浏览器

Redis的缓存击穿、缓存穿透和缓存雪崩是什么?怎么预防?

Redis的缓存击穿、缓存穿透和缓存雪崩是什么&#xff1f;怎么预防&#xff1f; 前言缓存击穿定义解决思路实现加锁设置过期时间Lua脚本刷新锁 缓存穿透定义实现 缓存雪崩定义解决思路 总结 前言 最近在CSDN上看到了一篇博客&#xff0c;Redis缓存击穿、雪崩、穿透&#xff01;…

深入理解Vue3.js响应式系统基础逻辑

如果您觉得这篇文章有帮助的话&#xff01;给个点赞和评论支持下吧&#xff0c;感谢~ 作者&#xff1a;前端小王hs 阿里云社区博客专家/清华大学出版社签约作者/csdn百万访问前端博主/B站千粉前端up主 此篇文章是博主于2022年学习《Vue.js设计与实现》时的笔记整理而来 书籍&a…

C++:SLT容器-->stack

C:SLT容器--&#xff1e;stack 1. stack容器2. stack 常用接口 1. stack容器 先进后出&#xff0c;后进先出不允许有遍历行为可以判断容器是否为空可以返回元素的个数 2. stack 常用接口 构造函数 stack<T> stk; // stack采用模板类实现&#xff0c;stack对象的默认构造形…