1. 首页

都快2020年了,还不会Linux 基础命令?

前言

程序员:“我要跑路了,告诉我命令行是rm -rf /*的那个人你小心点。”

rm -rf” 引发的血案都在菜鸟程序员中经常出现,初初入行的前后端们基础不扎实。

都快2020年了,还不会Linux 基础命令?

容易出现没有图形用户界面 (GUI)就无从下手,连部署应用都不会的尴尬局面。

窃以为,熟悉掌握Linux下的Vim和常用的命令是每个程序员的必修课。

而且,连微软都拥抱Linux terminal,推出了Windows Terminal。你还有 什么理由不学?

都快2020年了,还不会Linux 基础命令?

1. grep:查找文件中的关键字


$ grep "string" [选项] file

使用grep命令查找文件中的所有React关键字:

都快2020年了,还不会Linux 基础命令?

  • -i选项可以在文件中不区分大小写地搜索字符串。它匹配”REACT“,”REact“和”react“等词。

$ grep -i "REact" file 复制代码
  • -c (count)选项,可以找到给定字符串/模式匹配的行数

$ grep -c "react" index.js 复制代码

都快2020年了,还不会Linux 基础命令?

更多的选项可以查看下图:

都快2020年了,还不会Linux 基础命令?

2. ls:列出当前路径中的文件和目录。


$ ls

ls列出当前路径中的文件和目录。

  • 如果为文件夹,则显示成蓝色。
  • 如果为文件,则显示成灰色

都快2020年了,还不会Linux 基础命令?

3. pwd: 显示工作目录


$ pwd

都快2020年了,还不会Linux 基础命令?

4. cat:查看文件的内容


$ cat somefile.js

都快2020年了,还不会Linux 基础命令?

cat主要有三大功能:

  1. 一次显示整个文件。

$ cat filename
  1. 创建一个文件,并将前面命令的输出内容填充进去

$ cat > filename

只能创建新文件,不能编辑已有文件。 3. 将几个文件合并为一个文件。


$cat file1 file2 > file

以下例子,将index.js拷贝一份为index2.js

都快2020年了,还不会Linux 基础命令?

5. echo:字符串的输出


$ echo "some text"

这是一个内置命令,主要用于Shell脚本和批处理文件中,以将状态文本输出到屏幕或文件。

都快2020年了,还不会Linux 基础命令?

6. touch:创建文件


$ touch somefile

touch命令用于创建没有任何内容的文件。

都快2020年了,还不会Linux 基础命令?

请注意,在上图中,我们用touch创建文件和cat查看文件内部的。由于新创建的index2.js文件为空,因此cat不返回任何内容。

以下是cattouch之间的主要区别:

  • cat,用于创建包含内容的文件。
  • touch,创建一个没有任何内容的空文件。

7. mkdir:创建一个新的空目录


$ mkdir some-directory

mkdir在当前路径中创建一个新的空目录

都快2020年了,还不会Linux 基础命令?

8.rm:删除文件/目录


$ rm [选项] someFile

rm命令用于删除一个文件或者目录。

都快2020年了,还不会Linux 基础命令?

选项:

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

8.1 rmdir:删除空目录


$ rmdir some-directory

如果目录中没有内容,该命令将删除目录。否则返回提示xxx not empty

都快2020年了,还不会Linux 基础命令?

9. tail:查看文档的内容


$ tail [选项] somefile

默认显示文档的最后 10 行

都快2020年了,还不会Linux 基础命令?

几个常用的参数:

  • -f,循环读取。

tail -f notes.log 复制代码
此命令显示 `notes.log` 文件的最后 10 行。当将某些行添加至 `notes.log` 文件时,`tail` 命令会继续显示这些行。 显示一直继续,直到您按下(`Ctrl-C`)组合键停止显示。

+ +,从xx行到结尾


tail +20 notes.log 复制代码
显示文件 `notes.log` 的内容,从第 20 行至文件末尾。

+ -c,最后xx行。


tail -c 10 notes.log 复制代码
显示文件 `notes.log`的最后 10 个字符:

tail命令在查看崩溃报告或以前的历史记录日志时很有用:


# tail /var/log/messages Mar 20 12:42:22 hameda1d1c dhclient[4334]: DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x280436dd) Mar 20 12:42:24 hameda1d1c avahi-daemon[2027]: Registering new address record for fe80::4639:c4ff:fe53:4908 on eth0.*. Mar 20 12:42:28 hameda1d1c dhclient[4334]: DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x280436dd) Mar 20 12:42:28 hameda1d1c dhclient[4334]: DHCPACK from 10.76.198.1 (xid=0x280436dd) Mar 20 12:42:30 hameda1d1c avahi-daemon[2027]: Joining mDNS multicast group on interface eth0.IPv4 with address 10.76.199.87. Mar 20 12:42:30 hameda1d1c avahi-daemon[2027]: New relevant interface eth0.IPv4 for mDNS. Mar 20 12:42:30 hameda1d1c avahi-daemon[2027]: Registering new address record for 10.76.199.87 on eth0.IPv4. Mar 20 12:42:30 hameda1d1c NET[4385]: /sbin/dhclient-script : updated /etc/resolv.conf Mar 20 12:42:30 hameda1d1c dhclient[4334]: bound to 10.76.199.87 -- renewal in 74685 seconds. Mar 20 12:45:39 hameda1d1c kernel: usb 3-7: USB disconnect, device number 2

10. find:搜索文件


$ find path -name filename

find命令可以快速查找文件或目录。当你正在处理具有数百个文件和多个目录的大型项目时,此功能很有用。

查找所有名为index.js的文件:

都快2020年了,还不会Linux 基础命令?

查找指定类型的文件:


$ find . -name "*.js"

都快2020年了,还不会Linux 基础命令?

11. mv:移动文件


$ mv somefile /to/some/other/path

该mv命令将文件或目录从一个位置移动到另一个位置。

支持移动单个文件,多个文件和目录。

都快2020年了,还不会Linux 基础命令?

12. wget:下载文件的工具


$ wget someurl

Wget是一个免费软件包,用于使用HTTP,HTTPS,FTP和FTPS(最广泛使用的Internet协议)检索文件。

这是一个非交互式的命令行工具,因此可以很容易地从脚本,CRON作业,不支持X-Windows的终端等中调用它。

都快2020年了,还不会Linux 基础命令?

Wget具有许多使检索大型文件或镜像整个Web或FTP站点变得容易的功能,包括:

  • 可以使用RESTRANGE恢复中止的下载。
  • 可以使用文件名通配符并递归镜像目录
  • 基于NLS的消息文件,适用于多种语言
  • 可将下载的文档中的绝对链接转换为相对链接,以便下载的文档可以在本地链接。
  • 在大多数类似UNIX的操作系统以及Microsoft Windows上运行
  • 支持HTTP代理,cookie 和持久的HTTP连接.
  • 无人值守/后台操作。

13. tree:以树状图列出目录的内容

常在写文档时需要列一下文件目录结构,这个时候tree命令就能帮个忙了。某些LinuxmacOS上没有tree命令,需要执行安装:

  1. 先确保安装了Homebrew,若没有则执行:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 复制代码
  1. 安装tree命令

brew install tree

效果:


(base) xxx$ tree . ├── djangoStudy │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── manage.py 1 directory, 5 files

14. |:管道命令

通常情况下,我们在终端只能执行一条命令,然后按下回车执行,那么如何执行多条命令呢?

  • 顺序执行多条命令:command1;command2;command3; 简单的顺序指令可以通过 ;来实现。
  • 有条件的执行多条命令:which command1 && command2 || command3
    • && : 如果前一条命令执行成功则执行下一条命令,和JavaScript中用法一致
    • || :与&&命令相反,执行不成功时执行下一个。
  • $?: 存储上一次命令的返回结果

// 栗子: $ which git>/dev/null && git --help // 如果存在git命令,执行git --help命令 $ echo $?

而管道命令则可以衔接各种命令的输出输入,使得连锁操作变得简单。

管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)

都快2020年了,还不会Linux 基础命令?


$ 指令1 | 指令2 | …

管道命令的注意事项:

  • 只能处理前一条指令的正确输出,不能处理错误输出;
  • 后一条指令,必须能够接收标准输入流命令才能执行。

例子: 1、分页显示 /etc 目录 中内容的详细信息


$ ls -l /etc | more

2、将一个字符串输入到一个文件中


$ echo "Hello World" | cat > hello.txt

后记 & 引用

都快2020年了,还不会Linux 基础命令?

都快2020年了,还不会Linux 基础命令?

也可以来我的GitHub博客里拿所有文章的源文件:

前端劝退指南github.com/roger-hiro/…

作者:前端劝退师
链接:https://juejin.im/post/5dd292ef518825638b753975

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com

标题:都快2020年了,还不会Linux 基础命令?

链接:https://www.javascriptc.com/3087.html

« 史上最污技术解读,我竟然秒懂了!
百度 App 网络深度优化系列(二):连接优化»
Flutter 中文教程资源

相关推荐

QR code