原文地址: 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会打印符合输入字符的行。
-i选项可以使我们在给出的文件搜索字符串时大小不敏感。它匹配像"REACT","REact",和"react"之类的词
grep -i "REact" file
我们可以用-c(count)标识来找到匹配给出的字符串或者模式的行的数量
grep -c "react" index.js
我从网上找到一幅关于grep命令的漫画,非常的有趣和具有教育意义。
另外,变体程序egrep,fgrep分别和grep -E,grep -F一样。这些变体已经被弃用,但是为了向后兼容而提供。
你可以用grep做很多事情——深度学习请阅读文档
2. ls
ls
ls列出当前目录下所有的文件和目录。如果路径是一个文件,ls会根据请求的选项来展示文件的信息。如果路径是一个目录,ls会显示在其中的所有文件和子目录的信息。
你可以注意到一些文件显示灰色,一些文件夹显示蓝色。这帮助我们区分哪些是文件夹,哪些是文件。
3. pwd
pwd
pwd命令是用来打印当前工作目录的命令行实用程序。输出会将当前工作目录当前完整的系统路径打印到标准输出。默认情况下,pwd命令会忽略符号链接,尽管可以使用选项展示出当前目录的完整五路路径。
4. cat
cat somefile.js
cat命令有与文本文件相关的三个功能:
- 展示它们
- 合并副本
- 创建新文件
cat的最终用法是读取文件的内容,cat在这个用处上是经常是最方便的程序。
下面这个例子,使用输出重定向操作符(由右尖括号表示)将cat的标准输出重定向到file2上
cat somefile > somefile2
5. echo
echo "some text"
echo命令在linux中被用作展示作为参数传递的一行文本或字符串。echo是一个内置命令,主要用在shell脚本和批处理文件中,以状态文本输出到屏幕或者文件。
6. touch
touch somefile
touch命令用来创建空文件。当用户创建文件时没有要储存数据时,可以使用touch命令。
注意,我们是如何使用touch来创建文件,cat来查看文件内容。由于新创建的index2.js文件是空的,所以cat不返回任何内容。
cat和touch的主要区别:
cat—— 创建包含内容的文件touch—— 创建没有任何内容的空文件。记住,使用touch命令创建的文件是空的。这个命令在当用户在创建文件时没有任何数据存储时非常有用。
7. mkdir
mkdir some-directory
就如你所猜想的,mkdir在当前路劲下创建一个新的空目录。无需点击你的文本编辑器或者图形用户界面,使用命令来创建新的文件夹。
注意:我们可以之前ls命令来窥视目录里面。
7.1 rm
rm someFile
rm代表删除,正如词意。移除或者删除某个文件。
rm命令默认不会删除目录。你需要传递-rf标识来删除目录
rm -rf some-directory
注意:移除目录是无条件的,不管目录里面是否有内容。
7.1 rmdir
rmdir some-directory
rmdir 移除空的目录
8 tail
tail somefile
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的终端调用。
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命令让你能快速地查找文件或者目录。当你处理上百个文件和多个目录的项目时非常有用。
搜索特定类型的文件
find命令也能让你在一个目录(及它的子目录下)搜索同种类型的文件。比如,下面这条命令将会在当前目录下搜索所有.js文件。
find path -name "*.js"
11 mv
mv somefile /to/some/other/path
mv命令用来将文件或者文件夹从一个地方移动到另一个地方。mv命令支持移动单个文件,多个文件和目录。
结论
感谢阅读,我希望你能学到新的东西。如果你知道方便的命令行技巧,请发布在回复中,一起学习成长。
永远保持好奇与饥饿!