每个开发都应该知道的11个控制台命令

1,167 阅读7分钟

原文地址: Here Are 11 Console Commands Every Developer Should Know

用这些控制台命令,提高日常的工作效率

命令行使我们的生活更加容易,因为我们可以自动化一些普通的任务并使事情运行更顺畅。无需点击图形用户界面,我们可以触发一些命令就可以完成工作。

Unix shell 是一个命令行解释器或者shell, 可为类Unix操作系统提供命令行用户界面。shell既是交互式命令语言又是脚本语言,并且操作系统使用它通过Shell脚本来控制系统的执行。

Linux或者mac为基础的操作系统都默认安装了命令行工具,通常叫做终端。命令行工具使我们可以轻松地移动、重命名文件,对数据进行排序以及在计算机上浏览。

事不宜迟,这里有11个命令行技巧可以使你的生活更加容易。

1. grep

grep "some string " file

grep命令会对每一个文件按照输入的字符进行搜索匹配。它也会匹配由换行符分隔的字符,grep会打印符合输入字符的行。

command01

-i选项可以使我们在给出的文件搜索字符串时大小不敏感。它匹配像"REACT","REact",和"react"之类的词

grep -i "REact" file

我们可以用-c(count)标识来找到匹配给出的字符串或者模式的行的数量

grep -c "react" index.js

command02

我从网上找到一幅关于grep命令的漫画,非常的有趣和具有教育意义。

command03

另外,变体程序egrep,fgrep分别和grep -E,grep -F一样。这些变体已经被弃用,但是为了向后兼容而提供。

你可以用grep做很多事情——深度学习请阅读文档

2. ls

ls

ls列出当前目录下所有的文件和目录。如果路径是一个文件,ls会根据请求的选项来展示文件的信息。如果路径是一个目录,ls会显示在其中的所有文件和子目录的信息。

command04

你可以注意到一些文件显示灰色,一些文件夹显示蓝色。这帮助我们区分哪些是文件夹,哪些是文件。

3. pwd

pwd

command05

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

4. cat

cat somefile.js

command07

cat命令有与文本文件相关的三个功能:

  • 展示它们
  • 合并副本
  • 创建新文件

cat的最终用法是读取文件的内容,cat在这个用处上是经常是最方便的程序。

下面这个例子,使用输出重定向操作符(由右尖括号表示)将cat的标准输出重定向到file2上

cat somefile > somefile2

command08

5. echo

echo "some text"

command09

echo命令在linux中被用作展示作为参数传递的一行文本或字符串。echo是一个内置命令,主要用在shell脚本和批处理文件中,以状态文本输出到屏幕或者文件。

6. touch

touch somefile

touch命令用来创建空文件。当用户创建文件时没有要储存数据时,可以使用touch命令。

command10

注意,我们是如何使用touch来创建文件,cat来查看文件内容。由于新创建的index2.js文件是空的,所以cat不返回任何内容。

cattouch的主要区别:

  • cat—— 创建包含内容的文件
  • touch—— 创建没有任何内容的空文件。记住,使用touch命令创建的文件是空的。这个命令在当用户在创建文件时没有任何数据存储时非常有用。

7. mkdir

mkdir some-directory

就如你所猜想的,mkdir在当前路劲下创建一个新的空目录。无需点击你的文本编辑器或者图形用户界面,使用命令来创建新的文件夹。

command11

注意:我们可以之前ls命令来窥视目录里面。

7.1 rm

rm someFile

rm代表删除,正如词意。移除或者删除某个文件。

command12

rm命令默认不会删除目录。你需要传递-rf标识来删除目录

rm -rf some-directory

注意:移除目录是无条件的,不管目录里面是否有内容。

command13

7.1 rmdir

rmdir some-directory

command15

rmdir 移除空的目录

8 tail

tail somefile

command16

tail 读取文件并且输出最后一部分。

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

9 wget

wget someurl

GNU Wget是一个免费软件包,通过HTTP,HTTPS,FTP和FTPS来检索文件(使用最广泛的网路协议)。它是一个非交互式的命令行工具,所以它可以轻松地被脚本,CRON作业,不支持X-Windows的终端调用。

command17

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

  • 可以使用REST和RANGE恢复中止的下载
  • 可以使用文件通配符并且递归镜像目录
  • 基于NLS的消息文件,适用于多种语言
  • (可选)将下载的文档中的绝对链接转换为相对链接,以便下载文档时可以在本地彼此链接
  • 在大多数类UNI操作系统以及Microsoft Windows上运行
  • 支持HTTP代理
  • 支持HTTP cookie
  • 支持HTTP持久连接
  • 无人值守/后台操作
  • 使用本地文件时间戳来确定镜像时,是否需要重新下载 文档
  • GNU Wget是根据GNU通用公共许可证发行的。

阅读GNU官方文档获取更多信息。

10 find

find path -name filename

find命令让你能快速地查找文件或者目录。当你处理上百个文件和多个目录的项目时非常有用。

command18

搜索特定类型的文件

find命令也能让你在一个目录(及它的子目录下)搜索同种类型的文件。比如,下面这条命令将会在当前目录下搜索所有.js文件。

find path -name "*.js"

command19

11 mv

mv somefile /to/some/other/path

command20

mv命令用来将文件或者文件夹从一个地方移动到另一个地方。mv命令支持移动单个文件,多个文件和目录。

结论

感谢阅读,我希望你能学到新的东西。如果你知道方便的命令行技巧,请发布在回复中,一起学习成长。

永远保持好奇与饥饿!