【雜談】一行命令引發的一系列討論

一行命令引發的一系列討論

一、事由

前段時間 在 go語言中文網 上看到一個螞蟻金服的招聘帖子,給出了幾個簡單的關鍵字 和 一個 base64 加密的簡歷投遞郵箱的還原命令,非常簡單直接,能考察一些基礎命令的使用,還顯得很有檔次。

# 加密郵箱還原命令
echo Y2hlbnhpYW5nLmxqYyNhbGliYWJhLWluYy5jb20K | base64 -D | sed 's/#/@/'

然後就出現了一些質疑命令錯誤的回覆和解釋分析…

討論現場見文末附圖

二、分析

1. 原命令行分析

原命令爲三條指令的管道拼接;

  • 第一條: echo Y2hlbnhpYW5nLmxqYyNhbGliYWJhLWluYy5jb20K
    echo 命令,直接輸出 一個 base64 加密的字符串 Y2hlbnhpYW5nLmxqYyNhbGliYWJhLWluYy5jb20K
  • 第二條:base64 -D
    base64 命令,接收第一條命令的結果字符串,根據 -D 參數選擇並執行 base64 解碼,得到第二步的結果:chenxiang.ljc#alibaba-inc.com
  • 第三條:sed 's/#/@/'
    sed 命令,接收第二步的結果,替換字符串中的 #@,輸出最終結果:[email protected]

2. 問題分析

由於各個平臺對 base64 的具體實現都不太一樣,導致參數有一定的差別是不可避免的,就像各種智能設備對 LinuxAndroid 系統定製裁剪一樣,取吾所需,量身定製,裁掉不需要的部分,保持精簡,雖然會因爲有時太任性而導致一些問題,但這纔是 Linux 開源軟件的魅力;

針對帖子正文中的命令 -D,如果從未使用過此命令的話,直接在自己系統上實驗的非 mac 用戶就要開始報錯了;如果此時對 base64 認識停留在全世界 base64 命令只有一種 的話,就會開始質疑作者了;

再者如果作者使用 -d 參數就會保持各個平臺下都能保持命令兼容了。。。

3. 收穫

命令行就是我們日常開發、操作的百寶箱,幫助我們完成各種任務,方便、快捷、通用工具一定要掌握好;
對待計算機程序世界保持好奇心,發散思維,終有所獲…


(12月是一個讓人焦慮、忙碌的月份,開始焦慮一整年稀裏糊塗就要結束了,開始焦慮明年該如何如何 ,開始焦慮光陰易逝、世事無常;開始忙碌着做年終總結,開始忙碌着立明年的 Flag,開始忙碌着繼續焦慮…)


—2019-12-01—

附圖:
帖子截圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章