Working on the Internet
While a browser is the typical means for accessing web sites on the internet, there are many times where connections are needed from the command line.
curl. There are a variety of uses for it, including accessing REST APIs and downloading files.
curlwill execute a
GETto the provided URL.
$ curl http://localhost:8080/greeting Hello World
-X flag is used to specify a different HTTP request method to use. When submitting data to a URL in this fashion, the body of the request (specified by the
-d flag) and one or more headers indicating the content type (headers are passed via the
-H flag) are commonly provided. The body may be either included directly inline or read from a file by prefixing the
@ character before the value of the
$ curl -X POST -d @request.json -H "Content-Type: application/json" http://localhost:8080/upload
curl will output the received result to the terminal, regardless of if it was text or binary. There are times where the result needs to be written to a file, which is specified through the
$ curl -o result.txt http://localhost:8080/greeting $ cat result.txt Hello World
Alternatively, many terminals also include the
wget tool specifically for downloading files.
$ wget http://localhost:8080/hello-world.png $ ls hello-world.png
Unpacking Collections of Files
unzipcommand unpacks ZIP files, which conventionally end with the extension
.zip. Before actually unzipping the file, it is often a good idea to view the contents of the file first using the
$ unzip -l project.zip Archive: project.zip Length Date Time Name --------- ---------- ----- ---- 0 05-20-2021 16:15 project/ 0 05-20-2021 16:15 project/other-file 26 05-20-2021 16:15 project/my-file --------- ------- 26 3 files
The output shows not only the file names, but the directories into which they will be expanded. In this example, all of the files will be put into a directory called
$ unzip ../project.zip Archive: ../project.zip creating: project/ extracting: project/other-file extracting: project/my-file $ ls project $ ls project my-file other-file
tartool is used to unpack them. When using
-fflag is typically used to indicate that the provided argument is the name of the file to unpack.
$ tar -tf project.tar project/ project/other-file project/my-file
The tarball is unpacked using the
$ tar -xf project.tar $ ls project $ ls project my-file other-file