{"id":4872,"date":"2012-11-10T12:14:25","date_gmt":"2012-11-10T17:14:25","guid":{"rendered":"http:\/\/g33kinfo.com\/info\/?p=4872"},"modified":"2012-11-10T12:14:25","modified_gmt":"2012-11-10T17:14:25","slug":"9-uses-for-curl-worth-knowing","status":"publish","type":"post","link":"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/","title":{"rendered":"9 uses for cURL worth knowing"},"content":{"rendered":"<p>From <a href=\"https:\/\/httpkit.com\/resources\/HTTP-from-the-Command-Line\/\" target=\"_blank\" rel=\"noopener noreferrer\">httpkit.com<\/a><\/p>\n<p>Working with HTTP from the command-line is a valuable skill for HTTP architects and API designers to have. The cURL library and curl command give you the ability to design a Request, put it on the pipe, and explore the Response. The downside to the power of curl is how much breadth its options cover. Running curl &#8211;help spits out 150 different flags and options. This article demonstrates nine basic, real-world applications of curl.<\/p>\n<p>In this tutorial we\u2019ll use the httpkit echo service as our end point. The echo server\u2019s Response is a JSON representation of the HTTP request it receives.<\/p>\n<p>&nbsp;<br \/>\n<!--more--><br \/>\n&nbsp;<\/p>\n<p><strong>Make a Request<\/strong><br \/>\nLet\u2019s start with the simplest curl command possible.<\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl http:\/\/echo.httpkit.com<\/code><\/p>\n<p><strong>Response<\/strong><br \/>\n<code>{<br \/>\n\"method\": \"GET\",<br \/>\n\"uri\": \"\/\",<br \/>\n\"path\": {<br \/>\n\"name\": \"\/\",<br \/>\n\"query\": \"\",<br \/>\n\"params\": {}<br \/>\n},<br \/>\n\"headers\": {<br \/>\n\"host\": \"echo.httpkit.com\",<br \/>\n\"user-agent\": \"curl\/7.24.0 ...\",<br \/>\n\"accept\": \"*\/*\"<br \/>\n},<br \/>\n\"body\": null,<br \/>\n\"ip\": \"28.169.144.35\",<br \/>\n\"powered-by\": \"http:\/\/httpkit.com\",<br \/>\n\"docs\": \"http:\/\/httpkit.com\/echo\"<br \/>\n}<\/code><\/p>\n<p>Just like that we have used curl to make an HTTP Request. The method, or \u201cverb\u201d, curl uses, by default, is GET. The resource, or \u201cnoun\u201d, we are requestion is addressed by the URL pointing to the httpkit echo service, http:\/\/echo.httpkit.com.<\/p>\n<p>You can add path and query string parameters right to the URL.<\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl http:\/\/echo.httpkit.com\/path?query=string<\/code><\/p>\n<p><strong>Response<\/strong><br \/>\n<code>{ ...<br \/>\n\"uri\": \"\/path?query=string\",<br \/>\n\"path\": {<br \/>\n\"name\": \"\/path\",<br \/>\n\"query\": \"?query=string\",<br \/>\n\"params\": {<br \/>\n\"query\": \"string\"<br \/>\n}<br \/>\n}, ...<br \/>\n}<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Set the Request Method<\/strong><br \/>\nThe curl default HTTP method, GET, can be set to any method you would like using the -X option. The usual suspects POST, PUT, DELETE, and even custom methods, can be specified.<\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl -X POST echo.httpkit.com<\/code><\/p>\n<p><strong>Response<\/strong><br \/>\n<code>{<br \/>\n\"method\": \"POST\",<br \/>\n...<br \/>\n}<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>As you can see, the http:\/\/ protocol prefix can be dropped with curl because it is assumed by default. Let\u2019s give DELETE a try, too.<\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl -X DELETE echo.httpkit.com<\/code><\/p>\n<p><strong>Response<\/strong><br \/>\n<code>{<br \/>\n\"method\": \"DELETE\",<br \/>\n...<br \/>\n}<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Set Request Headers<\/strong><br \/>\nRequest headers allow clients to provide servers with meta information about things such as authorization, capabilities, and body content-type. OAuth2 uses an Authorization header to pass access tokens, for example. Custom headers are set in curl using the -H option.<\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl -H \"Authorization: OAuth 2c4419d1aabeec\" \\<br \/>\nhttp:\/\/echo.httpkit.com<\/code><\/p>\n<p><strong>Response<\/strong><br \/>\n<code>{...<br \/>\n\"headers\": {<br \/>\n\"host\": \"echo.httpkit.com\",<br \/>\n\"authorization\": \"OAuth 2c4419d1aabeec\",<br \/>\n...},<br \/>\n...}<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Multiple headers can be set by using the -H option multiple times.<\/strong><\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl -H \"Accept: application\/json\" \\<br \/>\n-H \"Authorization: OAuth 2c3455d1aeffc\" \\<br \/>\nhttp:\/\/echo.httpkit.com<\/code><\/p>\n<p><strong>Response<\/strong><br \/>\n<code>{ ...<br \/>\n\"headers\": { ...<br \/>\n\"host\": \"echo.httpkit.com\",<br \/>\n\"accept\": \"application\/json\",<br \/>\n\"authorization\": \"OAuth 2c3455d1aeffc\"<br \/>\n}, ...<br \/>\n}<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Send a Request Body<\/strong><br \/>\nMany popular HTTP APIs today POST and PUT resources using application\/json or application\/xml rather than in an HTML form data. Let\u2019s try PUTing some JSON data to the server.<\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl -X PUT \\<br \/>\n-H 'Content-Type: application\/json' \\<br \/>\n-d '{\"firstName\":\"Kris\", \"lastName\":\"Jordan\"}'<br \/>\necho.httpkit.com<\/code><\/p>\n<p><strong>Response<\/strong><br \/>\n<code>{<br \/>\n\"method\": \"PUT\", ...<br \/>\n\"headers\": { ...<br \/>\n\"content-type\": \"application\/json\",<br \/>\n\"content-length\": \"40\"<br \/>\n},<br \/>\n\"body\": \"{\\\"firstName\\\":\\\"Kris\\\",\\\"lastName\\\":\\\"Jordan\\\"}\",<br \/>\n...<br \/>\n}<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Use a File as a Request Bod<\/strong>y<br \/>\nEscaping JSON\/XML at the command line can be a pain and sometimes the body payloads are large files. Luckily, cURL\u2019s @readfile macro makes it easy to read in the contents of a file. If we had the above example\u2019s JSON in a file named \u201cexample.json\u201d we could have run it like this, instead:<\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl -X PUT \\<br \/>\n-H 'Content-Type: application\/json' \\<br \/>\n-d @example.json<br \/>\necho.httpkit.com<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>POST HTML Form Data<\/strong><br \/>\nBeing able to set a custom method, like POST, is of little use if we can\u2019t also send a request body with data. Perhaps we are testing the submission of an HTML form. Using the -d option we can specify URL encoded field names and values.<\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl -d \"firstName=Kris\" \\<br \/>\n-d \"lastName=Jordan\" \\<br \/>\necho.httpkit.com<\/code><\/p>\n<p><strong>Response<\/strong><br \/>\n<code>{<br \/>\n\"method\": \"POST\", ...<br \/>\n\"headers\": {<br \/>\n\"content-length\": \"30\",<br \/>\n\"content-type\":\"application\/x-www-form-urlencoded\"<br \/>\n},<br \/>\n\"body\": \"firstName=Kris&amp;lastName=Jordan\", ...<br \/>\n}<\/code><\/p>\n<p>Notice the method is POST even though we did not specify it. When curl sees form field data it assumes POST. You can override the method using the -X flag discussed above. The \u201cContent-Type\u201d header is also automatically set to \u201capplication\/x-www-form-urlencoded\u201d so that the web server knows how to parse the content. Finally, the request body is composed by URL encoding each of the form fields.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>POST HTML Multipart \/ File Forms<\/strong><br \/>\nWhat about HTML forms with file uploads? As you know from writing HTML file upload form, these use a multipart\/form-data Content-Type, with the enctype attribute in HTML. In cURL we can pair the -F option and the @readFile macro covered above.<\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl -F \"firstName=Kris\" \\<br \/>\n-F \"publicKey=@idrsa.pub;type=text\/plain\" \\<br \/>\necho.httpkit.com<\/code><\/p>\n<p><strong>Response<\/strong><br \/>\n<code>{<br \/>\n\"method\": \"POST\",<br \/>\n...<br \/>\n\"headers\": {<br \/>\n\"content-length\": \"697\",<br \/>\n\"content-type\": \"multipart\/form-data;<br \/>\nboundary=----------------------------488327019409\",<br \/>\n... },<br \/>\n\"body\": \"------------------------------488327019409\\r\\n<br \/>\nContent-Disposition: form-data;<br \/>\nname=\\\"firstName\\\"\\r\\n\\r\\n<br \/>\nKris\\r\\n<br \/>\n------------------------------488327019409\\r\\n<br \/>\nContent-Disposition: form-data;<br \/>\nname=\\\"publicKey\\\";<br \/>\nfilename=\\\"id_rsa.pub\\\"\\r\\n<br \/>\nContent-Type: text\/plain\\r\\n\\r\\n<br \/>\nssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAkq1lZYUOJH2<br \/>\n... more [a-zA-Z0-9]* ...<br \/>\nnaZXJw== krisjordan@gmail.com\\n\\r\\n<br \/>\n------------------------------488327019409<br \/>\n--\\r\\n\",<br \/>\n...}<\/code><\/p>\n<p>Like with the -d flag, when using -F curl will automatically default to the POST method, the multipart\/form-data content-type header, calculate length, and compose the multipart body for you. Notice how the @readFile macro will read the contents of a file into any string, it\u2019s not just a standalone operator. The \u201c;text\/plain\u201d specifies the MIME content-type of the file. Left unspecified, curl will attempt to sniff the content-type for you.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Test Virtual Hosts, Avoid DNS<\/strong><br \/>\nTesting a virtual host or a caching proxy before modifying DNS and without overriding hosts is useful on occassion. With cURL just point the request at your host\u2019s IP address and override the default Host header cURL sets up.<\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl -H \"Host: google.com\" 50.112.251.120<\/code><\/p>\n<p><strong>Response<\/strong><br \/>\n<code>{<br \/>\n\"method\": \"GET\", ...<br \/>\n\"headers\": {<br \/>\n\"host\": \"google.com\", ...<br \/>\n}, ...<br \/>\n}<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><strong>View Response Headers<\/strong><br \/>\nAPIs are increasingly making use of response headers to provide information on authorization, rate limiting, caching, etc. With cURL you can view the headers and the body using the -i flag.<\/p>\n<p><strong>Request<\/strong><br \/>\n<code>curl -i echo.httpkit.com <\/code><\/p>\n<p><strong>Response<\/strong><br \/>\n<code>HTTP\/1.1 200 OK<br \/>\nServer: nginx\/1.1.19<br \/>\nDate: Wed, 29 Aug 2012 04:18:19 GMT<br \/>\nContent-Type: application\/json; charset=utf-8<br \/>\nContent-Length: 391<br \/>\nConnection: keep-alive<br \/>\nX-Powered-By: http:\/\/httpkit.com<\/code><\/p>\n<p>{<br \/>\n&#8220;method&#8221;: &#8220;GET&#8221;,<br \/>\n&#8220;uri&#8221;: &#8220;\/&#8221;, &#8230;<br \/>\n}<\/p>\n<p>From <a href=\"https:\/\/httpkit.com\/resources\/HTTP-from-the-Command-Line\/\" target=\"_blank\" rel=\"noopener noreferrer\">httpkit.com<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>From httpkit.com Working with HTTP from the command-line is a valuable skill for HTTP architects and API designers to have. The cURL library and curl command give you the ability to design a Request, put it on the pipe, and explore the Response. The downside to the power of curl is how much breadth its&#8230; <\/p>\n<div class=\"read-more navbutton\"><a href=\"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/\">Read More<i class=\"fa fa-angle-double-right\"><\/i><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-4872","post","type-post","status-publish","format-standard","hentry","category-cli"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>9 uses for cURL worth knowing - Linux Shtuff<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"9 uses for cURL worth knowing - Linux Shtuff\" \/>\n<meta property=\"og:description\" content=\"From httpkit.com Working with HTTP from the command-line is a valuable skill for HTTP architects and API designers to have. The cURL library and curl command give you the ability to design a Request, put it on the pipe, and explore the Response. The downside to the power of curl is how much breadth its... Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/\" \/>\n<meta property=\"og:site_name\" content=\"Linux Shtuff\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/fb.me\/g33kinf0\" \/>\n<meta property=\"article:author\" content=\"https:\/\/fb.me\/g33kinf0\" \/>\n<meta property=\"article:published_time\" content=\"2012-11-10T17:14:25+00:00\" \/>\n<meta name=\"author\" content=\"g33kadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/drsinger1111\" \/>\n<meta name=\"twitter:site\" content=\"@drsinger1111\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/9-uses-for-curl-worth-knowing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/9-uses-for-curl-worth-knowing\\\/\"},\"author\":{\"name\":\"g33kadmin\",\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/#\\\/schema\\\/person\\\/c022e4c40b13ea1b678e6f020756f547\"},\"headline\":\"9 uses for cURL worth knowing\",\"datePublished\":\"2012-11-10T17:14:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/9-uses-for-curl-worth-knowing\\\/\"},\"wordCount\":762,\"publisher\":{\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/#\\\/schema\\\/person\\\/c022e4c40b13ea1b678e6f020756f547\"},\"articleSection\":[\"CLI\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/9-uses-for-curl-worth-knowing\\\/\",\"url\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/9-uses-for-curl-worth-knowing\\\/\",\"name\":\"9 uses for cURL worth knowing - Linux Shtuff\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/#website\"},\"datePublished\":\"2012-11-10T17:14:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/9-uses-for-curl-worth-knowing\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/g33kinfo.com\\\/info\\\/9-uses-for-curl-worth-knowing\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/9-uses-for-curl-worth-knowing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"9 uses for cURL worth knowing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/#website\",\"url\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/\",\"name\":\"Linux Shtuff\",\"description\":\"Because I have CRS Syndrome...\",\"publisher\":{\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/#\\\/schema\\\/person\\\/c022e4c40b13ea1b678e6f020756f547\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/#\\\/schema\\\/person\\\/c022e4c40b13ea1b678e6f020756f547\",\"name\":\"g33kadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/minion-researchA.gif\",\"url\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/minion-researchA.gif\",\"contentUrl\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/minion-researchA.gif\",\"width\":512,\"height\":512,\"caption\":\"g33kadmin\"},\"logo\":{\"@id\":\"https:\\\/\\\/g33kinfo.com\\\/info\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/minion-researchA.gif\"},\"description\":\"I am a g33k, Linux blogger, developer, student and Tech Writer for Liquidweb.com\\\/kb. My passion for all things tech drives my hunt for all the coolz. I often need a vacation after I get back from vacation....\",\"sameAs\":[\"https:\\\/\\\/thelinuxreport.com\",\"https:\\\/\\\/fb.me\\\/g33kinf0\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/drsinger1111\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"9 uses for cURL worth knowing - Linux Shtuff","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/","og_locale":"en_US","og_type":"article","og_title":"9 uses for cURL worth knowing - Linux Shtuff","og_description":"From httpkit.com Working with HTTP from the command-line is a valuable skill for HTTP architects and API designers to have. The cURL library and curl command give you the ability to design a Request, put it on the pipe, and explore the Response. The downside to the power of curl is how much breadth its... Read More","og_url":"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/","og_site_name":"Linux Shtuff","article_publisher":"https:\/\/fb.me\/g33kinf0","article_author":"https:\/\/fb.me\/g33kinf0","article_published_time":"2012-11-10T17:14:25+00:00","author":"g33kadmin","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/drsinger1111","twitter_site":"@drsinger1111","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/#article","isPartOf":{"@id":"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/"},"author":{"name":"g33kadmin","@id":"https:\/\/g33kinfo.com\/info\/#\/schema\/person\/c022e4c40b13ea1b678e6f020756f547"},"headline":"9 uses for cURL worth knowing","datePublished":"2012-11-10T17:14:25+00:00","mainEntityOfPage":{"@id":"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/"},"wordCount":762,"publisher":{"@id":"https:\/\/g33kinfo.com\/info\/#\/schema\/person\/c022e4c40b13ea1b678e6f020756f547"},"articleSection":["CLI"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/","url":"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/","name":"9 uses for cURL worth knowing - Linux Shtuff","isPartOf":{"@id":"https:\/\/g33kinfo.com\/info\/#website"},"datePublished":"2012-11-10T17:14:25+00:00","breadcrumb":{"@id":"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/g33kinfo.com\/info\/9-uses-for-curl-worth-knowing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/g33kinfo.com\/info\/"},{"@type":"ListItem","position":2,"name":"9 uses for cURL worth knowing"}]},{"@type":"WebSite","@id":"https:\/\/g33kinfo.com\/info\/#website","url":"https:\/\/g33kinfo.com\/info\/","name":"Linux Shtuff","description":"Because I have CRS Syndrome...","publisher":{"@id":"https:\/\/g33kinfo.com\/info\/#\/schema\/person\/c022e4c40b13ea1b678e6f020756f547"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/g33kinfo.com\/info\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/g33kinfo.com\/info\/#\/schema\/person\/c022e4c40b13ea1b678e6f020756f547","name":"g33kadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/g33kinfo.com\/info\/wp-content\/uploads\/2022\/07\/minion-researchA.gif","url":"https:\/\/g33kinfo.com\/info\/wp-content\/uploads\/2022\/07\/minion-researchA.gif","contentUrl":"https:\/\/g33kinfo.com\/info\/wp-content\/uploads\/2022\/07\/minion-researchA.gif","width":512,"height":512,"caption":"g33kadmin"},"logo":{"@id":"https:\/\/g33kinfo.com\/info\/wp-content\/uploads\/2022\/07\/minion-researchA.gif"},"description":"I am a g33k, Linux blogger, developer, student and Tech Writer for Liquidweb.com\/kb. My passion for all things tech drives my hunt for all the coolz. I often need a vacation after I get back from vacation....","sameAs":["https:\/\/thelinuxreport.com","https:\/\/fb.me\/g33kinf0","https:\/\/x.com\/https:\/\/twitter.com\/drsinger1111"]}]}},"_links":{"self":[{"href":"https:\/\/g33kinfo.com\/info\/wp-json\/wp\/v2\/posts\/4872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/g33kinfo.com\/info\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/g33kinfo.com\/info\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/g33kinfo.com\/info\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/g33kinfo.com\/info\/wp-json\/wp\/v2\/comments?post=4872"}],"version-history":[{"count":0,"href":"https:\/\/g33kinfo.com\/info\/wp-json\/wp\/v2\/posts\/4872\/revisions"}],"wp:attachment":[{"href":"https:\/\/g33kinfo.com\/info\/wp-json\/wp\/v2\/media?parent=4872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/g33kinfo.com\/info\/wp-json\/wp\/v2\/categories?post=4872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/g33kinfo.com\/info\/wp-json\/wp\/v2\/tags?post=4872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}