全文共3926字,预计学习时长12分钟
图源:Unsplash
命令行的出现,拯救了无数“懒癌晚期程序员”,生活更加轻松,心情更加愉快,那些繁琐的任务,我们可以让它自动化并使程序运行得更顺畅。
我们发送几个命令就能完成工作,无需在图形用户界面(GUI)中四处点击。
Unix shell是为类Unix的操作系统提供命令行用户界面的命令行解释器(或称shell)。shell既是交互式命令语言又是脚本语言,操作系统使用shell脚本来控制系统的执行。
每个基于Linux或Mac的操作系统都默认安装了一个命令行工具,通常称为“终端”。命令行(CLI)有助于轻松地移动和重命名文件,整理数据以及在计算机中导航。
介绍完毕,下面小芯就给大家分享11个可以使生活更加轻松的命令行技巧,注意收藏哟。
1.mv
$ mvsomefile /to/some/other/path
mv命令将文件或目录从一个位置移动到另一个位置。mv命令支持移动单个文件,多个文件和目录。
将some-directory从components移动到utils目录
2.pwd
$ pwd
打印出当前工作目录(pwd)
pwd命令是用于打印当前工作目录的命令行实用程序。输出会将当前工作目录的完整系统路径打印到标准输出。默认情况下,pwd命令会忽略符号连接。但可以使用选项显示当前目录的完整物理路径。
3.cat
$ catsomefile.js
用cat显示文件内容
关于文本文件,cat命令有三个相关功能:
•显示文件
•合并副本
•创建新的文本文件
cat 的最常见用法是读取文件内容,且 cat 读取文件内容最方便。
在以下示例中,使用输出重定向操作符(由向右的尖括号表示)将cat 的标准输出重定向到file2:
$ catsomefile > somefile2
用cat创建文件
4.grep
$ grep"some string" file
grep命令用于在每个文件中查找特定的模式。它还会查找由换行符分隔的模式,并输出与模式匹配的每一行。
使用grep命令查找文件中所有React关键字
-i选项能在给定文件中不区分大小写地搜索字符串。它匹配如“REACT”,“REact”和“react”之类的词。
$ grep-i "REact" file
可以使用-c(count)标志找到与给定的字符串/模式匹配的行数。
$ grep-c "react" index.js
计算一个文件中出现“react”一词的次数
下面是我在网上找到的有关grep命令的有趣且具有教育意义的漫画。
图片来源:Wizard Zines
另外,变体命令egrep和fgrep分别与grep -E和grep -F等同。这些变体不建议使用,提供它们是为了向后兼容。
5.touch
$ touchsomefile
touch 命令用于创建不包含任何内容的文件。当用户在创建文件时没有要存储的数据时,可以使用 touch 命令。
用touch创建新文件
注意如何通过 touch 来创建文件并使用 cat 来查看文件内容。由于新创建的index2.js文件为空,因此cat不返回任何内容。
以下是 cat 和touch之间的主要区别:
• cat——用于创建包含内容的文件。
• touch——创建一个没有任何内容的文件或空文件。记住,使用touch命令创建的文件为空文件。当用户在创建文件时没有要存储的数据时,该命令很有用。
6.echo
$ echo"some text"
Linux中的 echo 命令用于显示作为参数传递的一行文本/字符串。 echo 是一个内置命令,主要用于shell脚本和批处理文件,使状态文本输出到屏幕或文件中。
7.tail
$ tailsomefile
tail命令读取文件并输出文件的最后部分(即“尾部”)。
输出最后的num行,而不是默认的(10)行
tail命令在查看崩溃报告或以前的历史记录日志时很有用。下面是在处理文件日志时展示其用处的示例。
# tail/var/log/messages
Mar 20 12:42:22 hameda1d1c dhclient[4334]: DHCPREQUEST on eth0 to255.255.255.255 port 67 (xid=0x280436dd)
Mar 20 12:42:24 hameda1d1c avahi-daemon[2027]: Registering new address recordfor fe80::4639:c4ff:fe53:4908 on eth0.*.
Mar 20 12:42:28 hameda1d1c dhclient[4334]: DHCPREQUEST on eth0 to255.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 oninterface eth0.IPv4 with address 10.76.199.87.
Mar 20 12:42:30 hameda1d1c avahi-daemon[2027]: New relevant interface eth0.IPv4for mDNS.
Mar 20 12:42:30 hameda1d1c avahi-daemon[2027]: Registering new address recordfor 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 in74685 seconds.
Mar 20 12:45:39 hameda1d1c kernel: usb 3-7: USB disconnect, device number 2
8.wget
$ wgetsomeurl
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.mkdir
$ mkdirsome-directory
你已经猜到,mkdir在当前活动路径中创建一个新的空目录。使用此命令来创建新文件夹,而不是在文本编辑器或GUI中单击。
使用mkdir创建一个新目录
提示:请注意前面如何使用ls命令查看目录内部的。
9.1 rm
$ rmsomeFile
rm代表remove——删除,即删除文件。
使用rm命令删除文件
默认情况下,rm命令不会删除目录。需传递-rf标记以删除目录。
$ rm -rfsome-directory
使用rm命令删除目录(注意,我们传递标记来删除目录)
提示:无论目录内部是否包含内容,该命令都会无条件删除目录。
9.2 rmdir
$ rmdirsome-directory
如果目录中没有内容,rmdir命令将删除目录。
使用rmdir删除空目录
10.ls
$ ls
ls列出当前活动路径中的文件和目录。如果路径名是文件,ls根据请求的选项显示有关文件的信息。如果路径名是目录,ls显示其中的文件和子目录的信息。
使用ls命令显示当前目录中的所有文件
你可能已经注意到文件显示为灰色,而文件夹为青色。这有助于区分文件夹和文件。
11.find
$ findpath -name filename
使用find命令可以快速查找文件或目录。当你正在处理包含数百个文件和多个目录的大型项目时,此命令非常有用。
查找所有名为index.js的文件
查找特定类型的文件
使用find命令还可以在目录(及其子目录)中搜索相同类型的文件。例如,以下命令将搜索当前工作目录中的所有.js文件。
$ find .-name "*.js"
在components目录中查找所有.js文件
是不是短小精悍,又十分好用呀~
保持好奇心和求知欲,让我们不断发掘和运用新的命令行,在高效率(“懒”)的道路上一路狂奔吧!
留言 点赞 关注
我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)