自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

整理幾個超實用的前端提效shell命令

開發(fā) 前端
curl 是常用的命令行工具,用來請求 Web 服務(wù)器。它的名字就是客戶端(client)的 URL 工具的意思。curl 功能非常強(qiáng)大,它的命令可以直接放到 postman 使用,postman 也是支持 curl 的請求方式。

curl

curl 是常用的命令行工具,用來請求 Web 服務(wù)器。它的名字就是客戶端(client)的 URL 工具的意思。curl 功能非常強(qiáng)大,它的命令可以直接放到 postman 使用,postman 也是支持 curl 的請求方式。

常用的結(jié)果參數(shù)

curl 的參數(shù)包括很多,這里只說幾個常用的,如果遇到復(fù)雜情況可以參考文檔。

不知道是不是還有的小伙伴不知道 postman 直接支持 curl 命令,在 postman 中點擊 code 就會出現(xiàn)對應(yīng)請求的curl命令

  •  -X 參數(shù)指定 HTTP 請求的方法。
  •  -H 參數(shù)添加 HTTP 請求的標(biāo)頭。
  •  -d 參數(shù)用于發(fā)送 POST 請求的數(shù)據(jù)體。使用 -d 參數(shù)以后,HTTP 請求會自動加上標(biāo)頭Content-Type : application/x-www-form-urlencoded。并且會自動將請求轉(zhuǎn)為 POST 方法,因此可以省略-X POST
  •  -b 參數(shù)用來向服務(wù)器發(fā)送 Cookie。
  •  想了解更多參數(shù)可以去看下阮一峰老師文檔 https://www.ruanyifeng.com/blog/2019/09/curl-reference.html

curl 項目中應(yīng)用

如果對 curl 熟悉的小伙伴完全可以替代 postman 等工具,小伙伴可以直接模擬請求。(我認(rèn)為curl能看到懂常用命令就夠了)

因為在 BFF 項目中,好多時候前端也參與開發(fā),我們也會直接調(diào)用后端的接口,有時候報錯不知道是不是自己參數(shù)寫錯了,或者 cookie 有問題,找問題調(diào)試不方便,在 local 環(huán)境下,我們會直接打印出完整的 curl 請求,這時候可以直接看出錯誤,開發(fā)者只需要知道 curl 的一些參數(shù)就可以,還可以直接把 curl 命令復(fù)制到 postman 進(jìn)行調(diào)試。看一下具體實現(xiàn)部分代碼 

  1.  //只在本地環(huán)境輸出  
  2.     if (ctx.app.config.env === 'local') {  
  3.       const str =  
  4.         curlString(url, {  
  5.           method,  
  6.           headers,  
  7.           body,  
  8.         }) + '\n';  
  9.       console.log('\x1b[32m%s\x1b[0m', str);  
  10.     }     
  11. /**  
  12.  * Builds a curl command and returns the string.  
  13.  * @param  {String} url               Endpoint  
  14.  * @param  {Object} options           Object with headers, etc. (fetch format)  
  15.  * @return {String}                   cURL command  
  16.  */  
  17. function curlString(url, options) {  
  18.   const method = options && options.method && typeof options.method === 'string' ? options.method.toUpperCase() : 'GET';  
  19.   const hasHeaders = options && options.headers && typeof options.headers === 'object';  
  20.   const hasBody = options && options.body;  
  21.   let curl = `\ncurl --request ${method} \\\n--url '${url}'`;  
  22.   if (hasHeaders) {  
  23.     curl +=  
  24.       ' \\\n' +  
  25.       Object.entries(options.headers)  
  26.         .filter(([key, value]) => value !== undefined)  
  27.         .map(([key, value]) => `--header '${key}: ${value}'`)  
  28.         .join(' \\\n');  
  29.   }  
  30.   if (hasBody) {  
  31.     curl += ` \\\n--data '${bodyToDataString(options)}'`;  
  32.   }  
  33.   return curl;  
  34.  
  35. /**  
  36.  * Constructs a body string for use inside --data  
  37.  * @param  {Object} options           Object with headers, etc. (fetch format)  
  38.  * @return {String}                   cURL command data string  
  39.  */  
  40. function bodyToDataString(options) {  
  41.   let parsedData;  
  42.   try {  
  43.     parsedData = JSON.parse(options.body);  
  44.   } catch (e) {  
  45.     // fall back to original body if it could not be parsed as JSON  
  46.     parsedData = options.body;  
  47.   }  
  48.   // return an ampersand delimited string  
  49.   const headers = _.get(options, 'headers');  
  50.   const contentType = _.toLower(_.get(headers, 'content-type') || _.get(headers, 'Content-Type'));  
  51.   if (contentType === 'application/x-www-form-urlencoded') {  
  52.     if (typeof parsedData === 'string') {  
  53.       return parsedData;  
  54.     } else {  
  55.       return Object.entries(parsedData)  
  56.         .map(([key, val]) => `${key}=${val}`)  
  57.         .join('&');  
  58.     }  
  59.   } else {  
  60.     return JSON.stringify(parsedData);  
  61.   }  

vim 中的基本操作和配置

非 insert 模式

在 vim 打開文件后,還沒有使用插入編輯,可以做哪些基本操作

  1.  G 快速移動到文件底部(常用于查看日志)
  2.  gg 快速移動到文件頂部
  3.  0 快速移動到行首
  4.  $ 快速移動到行尾
  5.  :13 快速移動到特定行
  6.  ZZ 光標(biāo)移動到本屏中間
  7.  dd 剪切本行
  8.  yy 復(fù)制本行
  9.  u 撤銷(undo縮寫,撤銷)
  10.  p 粘貼 (p指paste,粘貼)
  11.  在 mac 系統(tǒng)下可以 option+點擊 快速移動到想要的位置(也就是光標(biāo))

insert 模式

前面說了多種移動方式,接下來結(jié)束幾個常用的 insert 命令,我這里就結(jié)束一些常用簡單的

  1.  i 在當(dāng)前光標(biāo)的前面進(jìn)行編輯
  2.  o 快速進(jìn)入 insert 模式,并定位到下一行編輯
  3.  esc 退出 insert 模式,與 <crtl-[>

ping

在網(wǎng)絡(luò)中 ping 是一個十分強(qiáng)大的 TCP/IP 工具。

  1.  用來檢測網(wǎng)絡(luò)的連通情況和分析網(wǎng)絡(luò)速度
  2.  根據(jù)域名得到服務(wù)器IP
  3.  根據(jù)ping返回的TTL值來判斷對方所使用的操作系統(tǒng)及數(shù)據(jù)包經(jīng)過路由器數(shù)量。

bytes值:數(shù)據(jù)包大小,也就是字節(jié)。

time值:響應(yīng)時間,這個時間越小,說明你連接這個地址速度越快。

TTL值:Time To Live,表示DNS記錄在DNS服務(wù)器上存在的時間,它是 IP 協(xié)議包的一個值,告訴路由器該數(shù)據(jù)包何時需要被丟棄??梢酝ㄟ^ Ping 返回的 TTL 值大小,粗略地判斷目標(biāo)系統(tǒng)類型是 Windows 系列還是 UNIX/Linux 系列。

默認(rèn)情況下,Linux 系統(tǒng)的TTL值為64或255,WindowsNT/2000/XP 系統(tǒng)的 TTL 值為 128,Windows98 系統(tǒng)的 TTL 值為32,UNIX 主機(jī)的 TTL 值為 255。

除了直接 ping ip ,還可以 ping 域名,會自動把域名解析為 ip。

應(yīng)用

最常用的方式是直接ping ip地址,測試網(wǎng)絡(luò)連通性

學(xué)會看懂出錯提示信息

(1)NoAnswer:這種故障表明本機(jī)有一條通向中心主機(jī)的路由,但沒有收到發(fā)給該中心主機(jī)的任何信息。原因可能是:中心主機(jī)沒有工作、本機(jī)或中心主機(jī)網(wǎng)絡(luò)配置不正確、本地或中心的路由器沒有工作、通信線路有故障、中心主機(jī)存在路由選擇問題,等等。

(2)Request Timed Out:超時錯誤,被測試的機(jī)器不能正常連接,原因可能是該主機(jī)此時未連接(如已關(guān)機(jī))、或到路由器的連接有問題、或路由器不能通過,或?qū)Ψ街鳈C(jī)使用了防火墻軟件禁止進(jìn)行 Ping 測試等等。

(3)Unknown Host Name:無法解析主機(jī)名字,可能是DNS設(shè)置不對,或者對方主機(jī)不存在

telnet

telnet 經(jīng)??梢源_定遠(yuǎn)程服務(wù)的狀態(tài),比如確定遠(yuǎn)程服務(wù)器的某個端口是否能訪問(端口連通性)。

telenet是windows標(biāo)準(zhǔn)服務(wù),可以直接用;如果是linux或者mac,需要自己安裝telnet

使用 telnet ip port

1)先用telnet連接不存在的端口 

  1. [root@localhost ~]# telnet 10.0.250.3 80  
  2. Trying 10.0.250.3...  

telnet: connect to address 10.0.250.3: Connection refused #直接提示連接被拒絕

2)再連接存在的端口 

  1. [root@localhost ~]# telnet localhost 22  
  2. Trying ::1...  
  3. Connected to localhost. #看到Connected就連接成功了  
  4. Escape character is '^]'.  
  5. SSH-2.0-OpenSSH_5.3  
  6.  
  7. Protocol mismatch.  
  8. Connection closed by foreign host. 

總結(jié)

優(yōu)秀和常用的 shell 命令有好多,我這里只寫了幾個非常常用,并且前端開發(fā)者也會經(jīng)常用到的命令,希望對小伙伴們有一丟丟幫助。 

 

責(zé)任編輯:龐桂玉 來源: 前端大全
相關(guān)推薦

2016-09-26 14:40:25

Windows內(nèi)網(wǎng)實用命令

2010-07-05 17:10:36

FTP命令

2023-03-07 10:44:05

前端JS 調(diào)試

2021-08-24 06:42:50

IDEA插件工具

2023-11-22 19:10:42

前端父應(yīng)用文案

2023-03-24 10:07:46

tail命令

2023-03-23 21:08:59

head命令

2022-07-08 11:18:33

前端實踐自動化

2011-01-18 13:53:42

Linux Shell命令

2021-03-04 22:15:36

JavaScript編程開發(fā)

2022-04-15 09:01:18

前端工具UTF8編碼

2024-09-02 08:03:23

2021-03-12 10:01:33

Sudo命令Linux

2021-04-22 10:28:52

開發(fā)技能代碼

2017-03-01 17:27:32

LinuxShell命令

2023-05-05 17:11:11

前端Mousetrap方式

2023-11-02 10:14:50

TinykeysWeb應(yīng)用

2024-02-29 13:42:00

Linuxsar命令uptime

2023-10-31 16:17:42

2018-01-23 10:16:36

前端干貨Web
點贊
收藏

51CTO技術(shù)棧公眾號