3.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——下载文件
首先,为了不手动创建一个长文件(这太麻烦了),我们将使用强大的curl
(有时也写作"cURL")工具从网上下载一个文件,这个命令可以让命令行与URL交互。尽管这不是Unix核心命令设置,但是curl
命令在Unix系统上被广泛应用。为了确保它在你的系统上能使用,我们可以使用which
命令,用它来确认在命令行中程序是否支持该命令。使用方法是在which
后面接程序的名字——在这种情况下,就是:
$ which curl
/usr/bin/curl
我的系统上已经输出了内容(/usr/bin/curl
,通常读作"user bin curl"),但是可能你的系统上会有差别。有种特殊情况,如果你的结果输出是行空白,你必须安装curl
, 你可以google搜索'install curl'后面在接上你操作系统的名字。
一旦curl
安装后,我们可以像Listing 10中的命令那样下载一个叫做sonnets.txt
的文件,里面包含巨量的文本。
Listing 10: 使用 curl 下载长文件.
$ curl -OL cdn.learnenough.com/sonnets.txt
$ ls -rtl
todo ===================================3.5.1章节链接
要确保命令确实复制正确了哦;特别要注意选项-OL
包含了大写字母"O"(O
)而不是零(0
).(留给你个小任务[3.5.1章节],弄清楚这些选项的作用)。另外,在有些系统上(原因很奇怪)你要运行两次命令才能起作用;通过ls -rtl
检查结果,这样可以看到curl
调用是否有按照预期创建sonnets.txt
文件.(如果你要重复curl
命令,你可以使用向上箭头两次,但也可有其他选择看Box 9)
运行Listing 10的结果是产出sonnets.txt
文件,该文件包含莎士比亚十四行诗的所有154首。这个文件有2620行,要展示在屏幕上太多了。学习如何检查它的内容是本章的主要目的。(除了这些外,我们也会学习如果计算它含2620行,而非手动去数。)
Box9 重复之前操作过的命令
在使用命令行时重复之前的命令是个频繁地操作任务。本篇教程到目前为止,已经介绍了使用上箭头恢复(输入)之前的命令,但是这不是唯一的方法。更快的方法运行使用过的命令是调用感叹号,在软件开发场景中通常叫做'bang'。运行之前的命令,我们可以使用'bang bang':
$ echo "foo"
foo
$ !!
echo "foo"
foo
'bang'高频使用的用法是后面接些字符,程序将运行以这些字符开始的最后一条命令。例如,要运行使用过的最后一条
curl
命,令,我们像这样输入:
$ !curl
这可以减少我们在输入选项、URL等的麻烦。根据我们使用过的命令,甚至简单的
!cu
或!c
也能有同等作用。当要找许多命令之前的命令,用它就非常适合了,这减去了多次使用上箭头的麻烦。
$ <⌃R>
(reverse-i-search)': curl
在大多数的系统中,输入回车键后将上条
curl
命令放在提示之后,这时可以在敲入回车键执行命令前编辑(如果你需要的话)。当遇到调用大量相同的命令时,有时可以看作是"以^R
开始所有命令"。
练习
1.使用命令curl -I https://www.learnenough.com/
抓取Learn Enough网站的HTTP消息头。这个地址的HTTP状态码是什么?这和learnenough.com(没有https://)的状态码有什么区别?
2.使用ls
,确认sonnets.txt
文件在你的系统中存在。它的字节有多长?注意:查看2.2章节中ls的以长表形式展示文件,会显示字节数。
3.我们在之前的练习中字节数已经很高了,这很容易就联想到千字节(通常认为是1000个字节,但实际上是 2^10=1024 字节)。通过给ls
添加-h
("更可读")选项,列出十四行诗文件的长表形式,并给出可读性更好的字节数。
4.假设你想要将文件或目录以更可读的字节数,同时要以时间顺序倒序用长表形式列出来。要使用什么命令呢?为什么这个命令会是本篇教程的作者偏爱的命令?
3.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——下载文件的更多相关文章
- 2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——操作文件
已经学习了基本的命令,现在是时候学习操作文件了,这也是命令行的重要任务.还是基于本教程的事先规定,本教程是入门级的,不要求熟悉类似编辑文本的程序(这些文本编辑程序,将在下个系列教程中介绍, Learn ...
- 2.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——重定向文件和添加文件
回忆第一章节的内容,我们用echo命令输出莎士比亚的第一首十四行诗的第一行(Listing 6): $ echo "From fairest creatures we desire incr ...
- 3.2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——检查文件开始与结尾
检查文件两个互补的命令是head 和tail, 它们分别用于查看文件的开始(头部)和结束(尾部).head命令展示了文件的前10行.(Listing 11). ##Listing 11: 查看示例文件 ...
- 3.《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——检查文件
上面我们已经学过如何创建及操作文件,现在我们再来学习检查内容.当文件太长以至于屏幕一页显示不完时,这显得尤其重要.特殊情形下,如我们在第2.1章节开始部分中使用cat命令将内容展示到屏幕上,但这对于长 ...
- 4.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—链接到目录
在4.2章中我们已经会用cd进入到指定的目录中.这是导航最常见的用途之一,但是它还有几个值得关注的用途.第一个是使用cd ..(读作'see-dee 点点')返回当前目录级别的上一级: $ pwd / ...
- 1.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——运行终端
终端是个允许我们运行命令行的程序,运行命令前,先打开它.在MacOS系统上,可以使用macOS应用 Spotlight来打开终端窗口,Spotlight也有其他两种方式触发,一种是键入⌘␣(comma ...
- 1.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——手册页
我们运行的命令行程序,通常在技术上称作shell, 它包含了一个非常强大(也很神秘)的工具,我们将用它来学习更多可用的命令.这个工具本身就是个称作'man'的命令('manual'的简写).它的参数是 ...
- 2.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——重命名,复制,删除
最常用的文件操作除了将文件列出来外,就应该是重命名,复制,删除了.正如将文件列出来一样,大多数现代操作系统为这些任务提供了用户图形界面,但是在许多场景中,用命令行还是会更方便. 使用mv命令重命名一个 ...
- 1.2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——开始第一条命令
现在开始准备运行我们的第一条命令了,在屏幕上打印'hello'.(字符打印的地方被称为'标准输出',通常指的是屏幕,很少指真的物理打印机设备).这条命令就是echo,这条命令的参数是想要输出的字符串或 ...
随机推荐
- linux之sort和uniq
uniq uniq命令: uniq不加参数,只对相邻的相同行内容去重. 例子如下: [root@localhost ~]# pwd /root [root@localhost ~]# cat oldb ...
- [iOS] KVC 和 KVO
开发iOS经常会看见KVO和KVC这两个概念,特地了解了一下. 我的新博客wossoneri.com link KVC Key Value Coding KVC是一种用间接方式访问类的属性的机制.比如 ...
- 逻辑回归&线性回归
# coding:utf-8 import numpy as np from sklearn import linear_model, datasets import matplotlib.pyplo ...
- javascript中的异步编程
正常情况下js都是顺序执行的,但是也有很多场景下实际上是异步操作: 1.定时器都是异步操作 2.事件绑定都是异步操作 3.AJAX中一般我们都采取异步操作(也可以同步) 4.回调函数可以理解为异步(不 ...
- [20170623]利用传输表空间恢复部分数据.txt
[20170623]利用传输表空间恢复部分数据.txt --//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解.--//这样的操作模 ...
- [20171120]11g select for update skip locked.txt
[20171120]11g select for update skip locked.txt --//11G在select for update遇到阻塞时可以通过skipped locked跳过阻塞 ...
- 常用Linux 服务器命令--各种性能指标命令
如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个专业的 Linux 系统管理员. 监控命令## iostat### iostat命令用来显示存储系统的 ...
- windows server 2008额外域控提升为主域控
windows server 2008额外域控提升为主域控 ---图形界面操作方法 https://blog.csdn.net/tladagio/article/details/79618338 wi ...
- python UDP套接字通信
UDPserver.py import socket #导入套接字模块 s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # - socket.A ...
- sql2008和sql2012混合安装后打开SQL Server 配置管理器查看出现“远程过程调用失败”0x800706be
sql2008和sql2012混合安装后打开SQL Server 配置管理器SQL Server服务出现“远程过程调用失败”0x800706be 网上很多人都说这个解决方案,通过卸载“Microsof ...