每个开发人员都应该知道的11个Linux命令
本文主要挑选出读者有必要首先学习的 11 个 Linux 命令,如果不熟悉的读者可以在虚拟机或云服务器上实操下,对于开发人员来说,能熟练掌握 Linux 做一些基本的操作是必要的!
事不宜迟,这里有 11 个 Linux 命令行技巧,可以使你的生活工作更轻松。
1. grep
$ grep "some string" file
grep 命令在每个文件中搜索,它还会寻找由换行符分隔的模式,并且 grep 会打印与模式匹配的每一行。
使用 grep 命令查找文件中的所有 React 关键字:

该 -i 选项使我们能够在给定文件中不区分大小写地搜索字符串。它匹配 "REACT"、"REact" 和 "react" 之类的词。
$ grep -i "REact" file
我们可以使用 -c (count)标志找到与给定字符串/模式匹配的行数。
$ grep -c "react" index.js

这是在网上找到的关于 grep 命令有趣且有教育意义的漫画。

2. ls
$ ls
ls 列出当前活动路径中的文件和目录。如果路径名是文件,ls 则根据请求的选项在文件上显示信息。如果路径名是目录,则 ls 显示有关文件和其中的子目录的信息。
使用 ls 命令显示当前目录中的所有文件:

你可能已经注意到文件显示为灰色,而文件夹为蓝色。这是为了帮助我们区分文件夹和文件。
3. pwd
$ pwd
打印出当前工作目录(pwd):

pwd 命令是用于打印当前工作目录的命令行实用程序。输出会将当前工作目录的完整系统路径打印到标准输出。默认情况下,pwd 命令会忽略符号链接,尽管可以使用选项显示当前目录的完整物理路径。
4. cat
$ cat somefile.js

该cat命令具有与文本文件有关的三个相关功能:
- 显示它们
- 合并副本
- 创造一个新的
cat 的最常见用法是读取文件的内容,并且 cat 通常也是最方便读取文件的命令。
在以下示例中,使用输出重定向运算符(由向右指向的尖括号表示)将 cat 的标准输出重定向到 file2:
$ cat somefile > somefile2
用 cat 创建文件:

5. echo
$ echo "some text"
Linux 中的命令用于显示作为参数传递的一行文本/字符串。这是一个内置命令,主要用于 Shell 脚本和批处理文件中,以将状态文本输出到屏幕或文件。

6. touch
$ touch somefile
touch 命令用于创建没有任何内容的文件。当用户在创建文件时没有要存储的数据时,可以使用 touch 命令。
touch 创建新文件:

我们是如何使用 touch 来创建文件和 cat 查看文件内部的。由于新创建的 index2.js 文件是空,因此 cat 不返回任何内容。
以下是 cat 和 touch 之间的主要区别:
- cat:用于创建包含内容的文件。
- touch:创建一个没有任何内容或空文件的文件。请记住,使用 touch 命令创建的文件为空。当用户在文件创建时没有要存储的数据时,此命令很有用。
7. mkdir
$ mkdir some-directory
如您所料,mkdir 在当前活动路径中创建一个新的空目录。使用此命令创建新文件夹,而不是在文本编辑器或 GUI 中四处单击。
使用 mkdir 创建一个新目录:

7.1 rm
$ rm someFile
rm 代表 remove,它会执行删除文件操作。
使用 rm 命令删除文件:

默认情况下,rm 命令不会删除目录。你需要传递 -rf 标志以删除目录。
$ rm -rf some-directory
使用 rm 命令删除目录:

7.2 rmdir
$ rmdir some-directory
rmdir 如果目录内没有内容,该命令将删除目录。
使用 rmdir 删除空目录:

8. tail
$ tail somefile
tail 命令读取文件并输出文件的最后部分。
输出最后的 num 行:

tail 在查看崩溃报告或以前的历史记录日志时,该命令很有用,以下是使用 tail 命令查询文件日志的示例。
[root@wupx ~]# tail -20f /sell/logs/sell.log
2019-12-09 20:35:40,024 - INFO #[operation,,,]# [http-nio-8111-exec-2] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:537]: 查询参数:BaseQueryDTO{startDate=Tue Jan 01 08:00:00 CST 2019, endDate=Mon Dec 09 14:45:31 CST 2019, regionList=[], productCodeList=[apple]}
2019-12-09 20:35:40,024 - INFO #[sell,,,]# [http-nio-8111-exec-2] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:538]: 查询接口:/products/projects/engineerType/count/range
2019-12-09 20:35:40,085 - INFO #[sell,,,]# [http-nio-8111-exec-9] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:483]: 查询参数:BaseQueryDTO{startDate=Tue Jan 01 08:00:00 CST 2019, endDate=Mon Dec 09 14:45:31 CST 2019, regionList=[], productCodeList=[apple]}
2019-12-09 20:35:40,085 - INFO #[sell,,,]# [http-nio-8111-exec-9] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:484]: 查询接口:/products/projects/active/count
2019-12-09 20:35:40,145 - INFO #[sell,,,]# [http-nio-8111-exec-7] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:483]: 查询参数:BaseQueryDTO{startDate=Tue Jan 01 08:00:00 CST 2019, endDate=Mon Dec 09 14:45:31 CST 2019, regionList=[], productCodeList=[apple]}
2019-12-09 20:35:40,145 - INFO #[sell,,,]# [http-nio-8111-exec-7] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:484]: 查询接口:/products/projects/active/count
2019-12-09 20:35:40,246 - INFO #[sell,,,]# [http-nio-8111-exec-8] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:483]: 查询参数:BaseQueryDTO{startDate=Tue Jan 01 08:00:00 CST 2019, endDate=Mon Dec 09 14:45:31 CST 2019, regionList=[], productCodeList=[apple]}
2019-12-09 20:35:40,246 - INFO #[sell,,,]# [http-nio-8111-exec-8] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:484]: 查询接口:/products/projects/active/count
2019-12-09 20:35:40,313 - INFO #[sell,,,]# [http-nio-8111-exec-5] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:483]: 查询参数:BaseQueryDTO{startDate=Tue Jan 01 08:00:00 CST 2019, endDate=Mon Dec 09 14:45:31 CST 2019, regionList=[], productCodeList=[apple]}
2019-12-09 20:35:40,313 - INFO #[sell,,,]# [http-nio-8111-exec-5] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:484]: 查询接口:/products/projects/active/count
2019-12-09 20:35:40,401 - INFO #[sell,,,]# [http-nio-8111-exec-4] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:306]: 查询参数:BaseQueryDTO{startDate=Tue Jan 01 08:00:00 CST 2019, endDate=Mon Dec 09 14:45:31 CST 2019, regionList=[], productCodeList=[apple]}
2019-12-09 20:35:40,401 - INFO #[sell,,,]# [http-nio-8111-exec-4] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:307]: 查询接口:/products/projects/new/statics
2019-12-09 20:35:40,490 - INFO #[sell,,,]# [http-nio-8111-exec-1] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:279]: 查询参数:BaseQueryDTO{startDate=Tue Jan 01 08:00:00 CST 2019, endDate=Mon Dec 09 14:45:31 CST 2019, regionList=[], productCodeList=[apple]}
2019-12-09 20:35:40,490 - INFO #[sell,,,]# [http-nio-8111-exec-1] c.g.s.c.i.ProjectIndexApi [ProjectIndexApi.java:280]: 查询接口:/products/projects/liveness/statics
9. wget
$ wget someurl
GNU Wget 是一个免费软件包,用于使用 HTTP,HTTPS,FTP 和 FTPS(最广泛使用的Internet协议)检索文件。这是一个非交互式命令行工具,因此可以很容易地从脚本、CRON 作业,不支持 X-Windows 的终端等中调用它。
wget 获取有关网页的信息:

GNU Wget 具有许多使检索大型文件或镜像整个 Web 或 FTP 站点变得容易的功能,包括:
- 可以使用 REST 和 RANGE 恢复中止的下载
- 可以使用文件名通配符并递归镜像目录
- 基于 NLS 的消息文件,适用于多种语言
- 将下载的文档中的绝对链接转换为相对链接,以便下载的文档可以在本地彼此链接
- 在大多数类似 UNIX 的操作系统以及 Microsoft Windows 上运行
- 支持 HTTP 代理
- 支持 HTTP cookie
- 支持持久的 HTTP 连接
- 无人值守/后台操作
- 使用本地文件时间戳确定镜像时是否需要重新下载文档
- GNU Wget 是根据 GNU 通用公共许可证发行的。
10. find
$ find path -name filename
find 命令使你可以快速查找文件或目录。当你正在处理具有数百个文件和多个目录的大型项目时,此功能很有用。
查找所有名为 index.js 的文件:

搜索特定类型的文件
find 命令还允许您在目录(及其子目录)中搜索相同类型的文件。例如,以下命令将搜索 .js 当前工作目录中的所有文件。
$ find . -name "*.js"
在 components 目录中查找所有.js文件:

11. mv
$ mv somefile /to/some/other/path
mv 命令将文件或目录从一个位置移动到另一个位置。mv 命令支持移动单个文件,多个文件和目录。
将 some 目录从组件移动到 utils 目录:

总结
这篇文章主要是介绍常用的 11 个 Linux 命令,感谢你的阅读,希望你能从中学到了一些知识。
每个开发人员都应该知道的11个Linux命令的更多相关文章
- PDB文件:每个开发人员都必须知道的 PDB Files
PDB文件:每个开发人员都必须知道的 PDB Files: What Every Developer Must Knowhttp://www.wintellect.com/CS/blogs/jro ...
- pdb文件 PDB文件:每个开发人员都必须知道的 .NET PDB文件到底是什么?
pdb文件包含了编译后程序指向源代码的位置信息,用于调试的时候定位到源代码,主要是用来方便调试的. 在程序发布为release模式时,建议将 pdb文件删除, 同时,对外发布的时候,也把 pdb删除, ...
- 每个Java开发人员都应该知道的10个基本工具
大家好,我们已经在2019年的第9个月,我相信你们所有人已经在2019年学到了什么,以及如何实现这些目标.我一直在写一系列文章,为你提供一些关于你可以学习和改进的想法,以便在2019年成为一个更好的. ...
- 每个Java开发人员都应该知道的4个Spring注解
这是每个Java开发人员都应该知道的最重要的Spring注解.感谢优锐课老师对本文提供的一些帮助. 随着越来越多的功能被打包到单个应用程序或一组应用程序中,现代应用程序的复杂性从未停止增长.尽管这种增 ...
- 每个开发人员都应该知道的WebSockets知识
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://blog.bitsrc.io/deep-dive-into-websockets- ...
- 【vs调试】PDB 文件:每个开发人员都必须知道的
[vs调试]PDB文件:每个开发人员都必须知道的 GDB:The GNU Project Debugger, 将会包含代码中符号(自定义变量, 数据类型), 还有函数调用或类引用的关联性, 有了pdb ...
- PDB文件:每个开发人员都必须知道的
PDB Files: What Every Developer Must Knowhttp://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05 ...
- 系统管理员都要知道的 30 个 Linux 系统监控工具
1. top - 进程活动监控命令 top 命令会显示 Linux 的进程.它提供了一个运行中系统的实时动态视图,即实际的进程活动.默认情况下,它显示在服务器上运行的 CPU 占用率最高的任务,并且每 ...
- 系统管理员应该知道的20条Linux命令
如果您的应用程序不工作,或者您希望在寻找更多信息,这 20 个命令将派上用场. 在这个全新的工具和多样化的开发环境井喷的大环境下,任何开发者和工程师都有必要学习一些基本的系统管理命令.特定的命令和工具 ...
随机推荐
- Charles破解安装及基本使用
一.Charles简介 1.Charles是一款代理服务器,通过成为电脑或者浏览器的代理,而后截取请求和请求结果达到抓包目的. 2.Charles是用Java写的,能够在Windows,Mac,Lin ...
- 记录一些html5和css3的一部分属性
html5 标签1 video:视频 属性: src:视频的url autoplay:视频在就绪后马上播放 controls:向用户显示控件2 audio:音频 属性类似于video3 属性:drag ...
- Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务
本篇为Docker从入门到掉坑第二篇:基于Docker构建SpringBoot微服务,没有看过上一篇的最好读过 Docker 从入门到掉坑 之后,阅读本篇. 在之前的文章里面介绍了如何基于docker ...
- python经典算法面试题1.5:如何找出单链表中的倒数第K个元素
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. [微软笔试题] 难度系数:⭐⭐⭐ 考察频率:⭐⭐⭐⭐⭐ 题目描 ...
- Python 基础 内置函数 迭代器与生成器
今天就来介绍一下内置函数和迭代器 .生成器相关的知识 一.内置函数:就是Python为我们提供的直接可以使用的函数. 简单介绍几个自己认为比较重要的 1.#1.eval函数:(可以把文件中每行中的数据 ...
- MyBatis动态语句if与choose的区别
if(通过“title”和“author”两个参数进行可选搜索): <select id="findActiveBlogLike" resultType="Blog ...
- ArcGIS API For Javascript :双屏(多屏)地图联动的方法
在遇到地图对比的应用场景下,我们需要双屏地图或者多屏地图来满足我们的业务需求. 解决思路:首先生成两份(多份)地图,然后通过监听地图缩放拖拽,用地图四至将不同的地图对象做绑定,实现多地图联动. 前端部 ...
- python day 1 homework 1
作业一要求: 1 输入用户名密码 2 认证成功后显示欢迎信息 3 输错三次后锁定 import os #生成保存用户信息的字典 d_userinfo = {} #保存用户登录字典 input_logi ...
- ZeroC ICE的远程调用框架 AMD
继上一篇<ZeroC ICE的远程调用框架>,本篇再来说其中的AMD.(本篇需要重写) 当在ice文件中声明某个接口方法Method为["amd"]后,接口方法在stu ...
- Javascript脚本语言
找组件用 id (唯一) 2.name 样式 使用分类 1 页面中 2 建JS文件 可以放在head也可以在body 工作区可以有 1 全局变量 2 由多个函数构成 标签编辑器 onChange 改变 ...