您好,登錄后才能下訂單哦!
這篇文章主要講解了“有哪些超實用的前端提效shell命令”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“有哪些超實用的前端提效shell命令”吧!
curl
curl 是常用的命令行工具,用來請求 Web 服務器。它的名字就是客戶端(client)的 URL 工具的意思。curl 功能非常強大,它的命令可以直接放到 postman 使用,postman 也是支持 curl 的請求方式。
常用的結果參數
curl 的參數包括很多,這里只說幾個常用的,如果遇到復雜情況可以參考文檔。
不知道是不是還有的小伙伴不知道 postman 直接支持 curl 命令,在 postman 中點擊 code 就會出現對應請求的curl命令
-X 參數指定 HTTP 請求的方法。
-H 參數添加 HTTP 請求的標頭。
-d 參數用于發送 POST 請求的數據體。使用 -d 參數以后,HTTP 請求會自動加上標頭Content-Type : application/x-www-form-urlencoded。并且會自動將請求轉為 POST 方法,因此可以省略-X POST
-b 參數用來向服務器發送 Cookie。
想了解更多參數可以去看下阮一峰老師文檔 https://www.ruanyifeng.com/blog/2019/09/curl-reference.html
curl 項目中應用
如果對 curl 熟悉的小伙伴完全可以替代 postman 等工具,小伙伴可以直接模擬請求。(我認為curl能看到懂常用命令就夠了)
因為在 BFF 項目中,好多時候前端也參與開發,我們也會直接調用后端的接口,有時候報錯不知道是不是自己參數寫錯了,或者 cookie 有問題,找問題調試不方便,在 local 環境下,我們會直接打印出完整的 curl 請求,這時候可以直接看出錯誤,開發者只需要知道 curl 的一些參數就可以,還可以直接把 curl 命令復制到 postman 進行調試。看一下具體實現部分代碼
//只在本地環境輸出 if (ctx.app.config.env === 'local') { const str = curlString(url, { method, headers, body, }) + '\n'; console.log('\x1b[32m%s\x1b[0m', str); } /** * Builds a curl command and returns the string. * @param {String} url Endpoint * @param {Object} options Object with headers, etc. (fetch format) * @return {String} cURL command */ function curlString(url, options) { const method = options && options.method && typeof options.method === 'string' ? options.method.toUpperCase() : 'GET'; const hasHeaders = options && options.headers && typeof options.headers === 'object'; const hasBody = options && options.body; let curl = `\ncurl --request ${method} \\\n--url '${url}'`; if (hasHeaders) { curl += ' \\\n' + Object.entries(options.headers) .filter(([key, value]) => value !== undefined) .map(([key, value]) => `--header '${key}: ${value}'`) .join(' \\\n'); } if (hasBody) { curl += ` \\\n--data '${bodyToDataString(options)}'`; } return curl; } /** * Constructs a body string for use inside --data * @param {Object} options Object with headers, etc. (fetch format) * @return {String} cURL command data string */ function bodyToDataString(options) { let parsedData; try { parsedData = JSON.parse(options.body); } catch (e) { // fall back to original body if it could not be parsed as JSON parsedData = options.body; } // return an ampersand delimited string const headers = _.get(options, 'headers'); const contentType = _.toLower(_.get(headers, 'content-type') || _.get(headers, 'Content-Type')); if (contentType === 'application/x-www-form-urlencoded') { if (typeof parsedData === 'string') { return parsedData; } else { return Object.entries(parsedData) .map(([key, val]) => `${key}=${val}`) .join('&'); } } else { return JSON.stringify(parsedData); } }
vim 中的基本操作和配置
非 insert 模式
在 vim 打開文件后,還沒有使用插入編輯,可以做哪些基本操作
鴻蒙官方戰略合作共建——HarmonyOS技術社區
G 快速移動到文件底部(常用于查看日志)
gg 快速移動到文件頂部
0 快速移動到行首
$ 快速移動到行尾
:13 快速移動到特定行
ZZ 光標移動到本屏中間
dd 剪切本行
yy 復制本行
u 撤銷(undo縮寫,撤銷)
p 粘貼 (p指paste,粘貼)
在 mac 系統下可以 option+點擊 快速移動到想要的位置(也就是光標)
insert 模式
前面說了多種移動方式,接下來結束幾個常用的 insert 命令,我這里就結束一些常用簡單的
鴻蒙官方戰略合作共建——HarmonyOS技術社區
i 在當前光標的前面進行編輯
o 快速進入 insert 模式,并定位到下一行編輯
esc 退出 insert 模式,與 <crtl-[>
ping
在網絡中 ping 是一個十分強大的 TCP/IP 工具。
鴻蒙官方戰略合作共建——HarmonyOS技術社區
用來檢測網絡的連通情況和分析網絡速度
根據域名得到服務器IP
根據ping返回的TTL值來判斷對方所使用的操作系統及數據包經過路由器數量。
bytes值:數據包大小,也就是字節。
time值:響應時間,這個時間越小,說明你連接這個地址速度越快。
TTL值:Time To Live,表示DNS記錄在DNS服務器上存在的時間,它是 IP 協議包的一個值,告訴路由器該數據包何時需要被丟棄。可以通過 Ping 返回的 TTL 值大小,粗略地判斷目標系統類型是 Windows 系列還是 UNIX/Linux 系列。
默認情況下,Linux 系統的TTL值為64或255,WindowsNT/2000/XP 系統的 TTL 值為 128,Windows98 系統的 TTL 值為32,UNIX 主機的 TTL 值為 255。
除了直接 ping ip ,還可以 ping 域名,會自動把域名解析為 ip。
應用
最常用的方式是直接ping ip地址,測試網絡連通性
學會看懂出錯提示信息
(1)NoAnswer:這種故障表明本機有一條通向中心主機的路由,但沒有收到發給該中心主機的任何信息。原因可能是:中心主機沒有工作、本機或中心主機網絡配置不正確、本地或中心的路由器沒有工作、通信線路有故障、中心主機存在路由選擇問題,等等。
(2)Request Timed Out:超時錯誤,被測試的機器不能正常連接,原因可能是該主機此時未連接(如已關機)、或到路由器的連接有問題、或路由器不能通過,或對方主機使用了防火墻軟件禁止進行 Ping 測試等等。
(3)Unknown Host Name:無法解析主機名字,可能是DNS設置不對,或者對方主機不存在
telnet
telnet 經常可以確定遠程服務的狀態,比如確定遠程服務器的某個端口是否能訪問(端口連通性)。
telenet是windows標準服務,可以直接用;如果是linux或者mac,需要自己安裝telnet
使用 telnet ip port
1)先用telnet連接不存在的端口
[root@localhost ~]# telnet 10.0.250.3 80 Trying 10.0.250.3...
telnet: connect to address 10.0.250.3: Connection refused #直接提示連接被拒絕
2)再連接存在的端口
[root@localhost ~]# telnet localhost 22 Trying ::1... Connected to localhost. #看到Connected就連接成功了 Escape character is '^]'. SSH-2.0-OpenSSH_5.3 a Protocol mismatch. Connection closed by foreign host.
感謝各位的閱讀,以上就是“有哪些超實用的前端提效shell命令”的內容了,經過本文的學習后,相信大家對有哪些超實用的前端提效shell命令這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。