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

提升開發(fā)效率N倍的20+命令行神器,趕緊收藏了

開發(fā) 前端
本文主要來源于在之前公司的小組內(nèi)部的一個小分享,整理成一篇文章po出來。題目叫 “Shell 助力開發(fā)效率提升”,更切題的應(yīng)該是叫“命令行”提升開發(fā)效率,這里并沒有講到 Shell 編程,而是主要介紹 Linux 或者 Mac 下常用的一些基本工具命令來幫助處理一些日常事務(wù)。

背景

本文主要來源于在之前公司的小組內(nèi)部的一個小分享,整理成一篇文章po出來。題目叫 “Shell 助力開發(fā)效率提升”,更切題的應(yīng)該是叫“命令行”提升開發(fā)效率,這里并沒有講到 Shell 編程,而是主要介紹 Linux 或者 Mac 下常用的一些基本工具命令來幫助處理一些日常事務(wù)。

[[341848]]

通過本文的介紹,你應(yīng)該對相關(guān)命令有一個初步的了解,知道比如用什么命令可以完成怎樣的操作, 至于具體的參數(shù),不需要刻意地背誦,等到需要用到的時候,再去 cmd --help 或者 man cmd,用得多了,常用的命令也就自然記住了。

本文首先介紹了 Linux/Mac 下一些常用的命令行工具,然后用具體的示例闡述了常用的命令用法,最后通過一兩個案例來說明這些工具的強(qiáng)大之處:

  • 比如給定一個 nginx 日志文件,能夠找出 HTTP 404 請求最多的 top 10 是什么? 比如能找到請求耗時最多的 top 10 是什么?
  • 再比如能夠簡單的得到每小時的"PV"是多少? 再比如拿到一篇文章, 能否簡單統(tǒng)計一下這篇文章單次詞頻最高的10個詞語是什么?
  • 需要批量改某個文件夾下的文件名,批量將文件夾下的圖片壓縮成固定大小的,等等。

Mac 環(huán)境

  • zsh
  • on-my-zsh
  • plugin
  • git
  • autojump
  • osx(man-preview/quick-look/pfd(print Finder director)/cdf(cd Finder))
  • 常用快捷鍵(bindkey)
  • 演示: 高亮/git/智能補(bǔ)全/跳轉(zhuǎn)(j, d)...

Shell 基礎(chǔ)命令

which/whereis, 常用 whatis, man, --help

    1. ➜  .oh-my-zsh git:(master)$ whereis ls 
    2. /bin/ls➜  .oh-my-zsh git:(master)$ which ls 
    3. ls: aliased to ls -G 

 

基本文件目錄操作

  1. rm, mkdir, mv, cp, cd, ls, ln, file, stat, wc(-l/w/c), head, more, tail, cat... 

利器 管道: |

Shell 文本處理

這里就是通過案例講了一下12個命令的大致用法和參數(shù),可以通過點(diǎn)擊右邊的目錄(我博客有目錄,公眾號上木有)直達(dá)你想要了解的命令。

  1. find, grep, xargs, cut, paste, comm 
  2. join, sort, uniq, tr, sed, awk 

find

  • 常用參數(shù)
  • 文件名 -name, 文件類型-type, 查找最大深度-maxdepth
  • 時間過濾(create/access/modify) -[cam]time
  • 執(zhí)行動作 -exec

示例

  1. find ./ -name "*.json" 
  2. find . -maxdepth 7 -name "*.json" -type f 
  3. find . -name "*.log.gz" -ctime +7 -size +1M -delete (atime/ctime/mtime) 
  4. find . -name "*.scala" -atime -7 -exec du -h {} \; 

grep

  • 常用參數(shù)
  • -v(invert-match),
  • -c(count),
  • -n(line-number),
  • -i(ignore-case),
  • -l, -L, -R(-r, --recursive), -e

示例

  1. grep 'partner' ./*.scala -l 
  2. grep -e 'World' -e 'first' -i -R ./  (-e: or

相關(guān)命令: grep -z / zgrep / zcat xx | grep

xargs

  • 常用參數(shù)
  • -n(每行列數(shù)),
  • -I(變量替換)
  • -d(分隔符), Mac 不支持,注意與GNU版本的區(qū)別

示例

  1. echo "helloworldhellp" | cut -c1-10 
  2. cut -d, -f2-8 csu.db.export.csv 

cut

  • 常用參數(shù)
  • -b(字節(jié))
  • -c(字符)
  • -f(第幾列),-d(分隔符),f 范圍: n, n-, -m, n-m

示例

  1. echo "helloworldhellp" | cut -c1-10cut -d, -f2-8 csu.db.export.csv 

paste

  • 常用參數(shù)
  • -d 分隔符
  • -s 列轉(zhuǎn)行

示例

  1.     ➜  Documents$ cat file1 
  2. 1 11 
  3. 2 22 
  4. 3 33 
  5. 4 44 
  6. ➜  Documents$ cat file2 
  7. one     1 
  8. two     2 
  9. three   3 
  10. one1    4 
  11. ➜  Documents$ paste -d, file1 file2 
  12. 1 11, one     1 
  13. 2 22, two     2 
  14. 3 33, three   3 
  15. 4 44, one1    4 
  16. ➜  Documents$ paste -s -d: file1 file2 
  17. a 11:b bb:3 33:4 44 
  18. one     1:two     2:three   3:one1    4 

join

類似sql中的 ...inner join ...on ..., -t 分隔符,默認(rèn)為空格或tab

  1. ➜  Documents$ cat j1 
  2. 1 11 
  3. 2 22 
  4. 3 33 
  5. 4 44 
  6. 5 55 
  7. ➜  Documents$ cat j2 
  8. one     1   0 
  9. one     2   1 
  10. two     4   2 
  11. three   5   3 
  12. one1    5   4 
  13. ➜  Documents$ join -1 1 -2 3 j1 j2 
  14. 1 11 one 2 
  15. 2 22 two 4 
  16. 3 33 three 5 
  17. 4 44 one1 5 

comm

  • 常用參數(shù)
  • 用法 comm [-123i] file1 file2
  • 字典序列, 3列: 只在file1/file2/both
  • - 去掉某列,i 忽略大小寫

示例

  1.     ➜  Documents$ seq 1 5 >file11 
  2. ➜  Documents$ seq 2 6 >file22 
  3. ➜  Documents$ cat file11 
  4. ➜  Documents$ cat file22 
  5. ➜  Documents$ comm file11 file22 
  6.         2 
  7.         3 
  8.         4 
  9.         5 
  10.     6 
  11. ➜  Documents$ comm -1 file11 file22 
  12.     2 
  13.     3 
  14.     4 
  15.     5 
  16. ➜  Documents$ comm -2 file11 file22 
  17.     2 
  18.     3 
  19.     4 
  20.     5 
  21. ➜  Documents$ comm -23 file11 file22 

相關(guān)命令 diff(類似git diff)

sort

  • 常用參數(shù)
  • -d, --dictionary-order
  • -n, --numeric-sort
  • -r, --reverse
  • -b, --ignore-leading-blanks
  • -k, --key

示例

  1. ➜  Documents$ cat file2 
  2. one     1 
  3. two     2 
  4. three   3 
  5. one1    4 
  6. ➜  Documents$ sort file2one     1 
  7. one1    4 
  8. three   3 
  9. two     2 
  10. ➜  Documents$ sort -b -k2 -r file2one1    4 
  11. three   3 
  12. two     2 
  13. one     1 

uniq

  • 常用參數(shù)
  • -c 重復(fù)次數(shù)
  • -d 重復(fù)的
  • -u 沒重復(fù)的
  • -f 忽略前幾列

示例

  1. ➜  Documents$ cat file4 
  2. 11 
  3. 22 
  4. 33 
  5. 11 
  6. 11 
  7. ➜  Documents$ sort file4 | uniq -c 
  8.    3 11 
  9.    1 22 
  10.    1 33 
  11. ➜  Documents$ sort file4 | uniq -d 
  12. 11 
  13. ➜  Documents$ sort file4 | uniq -u 
  14. 22 
  15. 33 
  16. ➜  Documents$ cat file3 
  17. one     1 
  18. two     1 
  19. three   3 
  20. one1    4 
  21. ➜  Documents$ uniq -c -f 1 file3 
  22.    2 one     1 
  23.    1 three   3 
  24.    1 one1    4 

注意:uniq比較相鄰的是否重復(fù),一般與sort聯(lián)用

tr

  • 常用參數(shù)
  • -c 補(bǔ)集
  • -d 刪除
  • -s 壓縮相鄰重復(fù)的

示例

  1. ➜  Documents$ echo '1111234444533hello' | tr  '[1-3]' '[a-c]' 
  2. aaaabc44445cchello➜  Documents$ echo '1111234444533hello' | tr -d '[1-3]' 
  3. 44445hello➜  Documents$ echo '1111234444533hello' | tr -dc '[1-3]' 
  4. 11112333➜  Documents$ echo '1111234444533hello' | tr -s '[0-9]' 
  5. 123453hello➜  Documents$ echo 'helloworld' | tr '[:lower:]' '[:upper:]' 
  6. HELLOWORLD 

sed

  • 常用參數(shù)
  • -d 刪除
  • -s 替換, g 全局
  • -e 多個命令疊加
  • -i 修改原文件(Mac下加參數(shù) "",備份)

示例

  1.     ➜  Documents$ cat file2 
  2. one     1 
  3. two     2 
  4. three   3 
  5. one1    4 
  6. ➜  Documents$ sed "2,3d" file2 
  7. one     1 
  8. one1    4 
  9. ➜  Documents$ sed '/one/d' file2 
  10. two     2 
  11. three   3 
  12. ➜  Documents$ sed 's/one/111/g' file2 
  13. 111     1 
  14. two     2 
  15. three   3 
  16. 1111    4 
  17. #將one替換成111 并將含有two的行刪除 
  18. ➜  Documents$ sed -e 's/one/111/g' -e '/two/d' file2 
  19. 111     1 
  20. three   3 
  21. 1111    4 
  22. # ()標(biāo)記(轉(zhuǎn)義), \1 引用 
  23. ➜  Documents$ sed 's/\([0-9]\)/\1.html/g' file2 
  24. one     1.html 
  25. two     2.html 
  26. three   3.html 
  27. one1.html    4.html 
  28. # 與上面一樣 & 標(biāo)記匹配的字符➜  Documents$ sed 's/[0-9]/&.html/g' file2 
  29. one     1.html 
  30. two     2.html 
  31. three   3.html 
  32. one1.html    4.html 
  33. ➜  Documents$ cat mobile.csv"13090246026" 
  34. "18020278026" 
  35. "18520261021" 
  36. "13110221022" 
  37. ➜  Documents$ sed 's/\([0-9]\{3\}\)[0-9]\{4\}/\1xxxx/g' mobile.csv 
  38. "130xxxx6026" 
  39. "180xxxx8026" 
  40. "185xxxx1021" 
  41. "131xxxx1022" 

awk

  • 基本參數(shù)和語法
  • NR 行號, NF 列數(shù)量
  • $1 第1列, $2, $3...
  • -F fs fs分隔符,字符串或正則

語法: awk 'BEGIN{ commands } pattern{ commands } END{ commands }', 流程如下:

  • 執(zhí)行begin
  • 對輸入每一行執(zhí)行 pattern{ commands }, pattern 可以是 正則/reg exp/, 關(guān)系運(yùn)算等
  • 處理完畢, 執(zhí)行 end

示例

  1. ➜  Documents$ cat file5 
  2. 11  11 aa cc 
  3. 22  22 bb 
  4. 33  33 d 
  5. 11  11 
  6. 11  11 
  7. #行號, 列數(shù)量, 第3列 
  8. ➜  Documents$ awk '{print NR"("NF"):", $3}' file5 
  9. 1(4): aa 
  10. 2(3): bb 
  11. 3(3): d 
  12. 4(2): 
  13. 5(2): 
  14. #字符串分割, 打印1,2列 
  15. ➜  Documents$ awk -F"xxxx" '{print $1, $2}' mobile.csv 
  16. "130 6026" 
  17. "180 8026" 
  18. "185 1021" 
  19. "131 1022" 
  20. #添加表達(dá)式➜  Documents$ awk '$1>=22 {print NR":", $3}' file5 
  21. 2: bb3: d#累加1到36,奇數(shù),偶數(shù) 
  22. ➜  Documents$ seq 36 | awk 'BEGIN{sum=0; print "question:"} {print $1" +"; sum+=$1} END{print "="; print sum}' | xargs | sed 's/+ =/=/' 
  23. question: 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + 34 + 35 + 36 = 666 
  24. ➜  Documents$ seq 36 | awk 'BEGIN{sum=0; print "question:"} $1 % 2 ==1 {print $1" +"; sum+=$1} END{print "="; print sum}' | xargs | sed 's/+ =/=/' 
  25. question: 1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 + 21 + 23 + 25 + 27 + 29 + 31 + 33 + 35 = 324 
  26. ➜  Documents$ seq 36 | awk 'BEGIN{sum=0; print "question:"} $1 % 2 !=1 {print $1" +"; sum+=$1} END{print "="; print sum}' | xargs | sed 's/+ =/=/' 
  27. question: 2 + 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20 + 22 + 24 + 26 + 28 + 30 + 32 + 34 + 36 = 342 

其他高級語法:for, while 等, 各種函數(shù)等,本身awk是一個強(qiáng)大的語言,可以掌握一些基本的用法。

實(shí)際應(yīng)用

日志統(tǒng)計分析

例如拿到一個nginx日志文件,可以做很多事情,比如看哪些請求是耗時最久的進(jìn)而進(jìn)行優(yōu)化,比如看每小時的"PV"數(shù) 等等。

  1. ➜  Documents$ head -n5 std.nginx.log 
  2. 106.38.187.225 - - [20/Feb/2017:03:31:01 +0800] www.tanglei.name "GET /baike/208344.html HTTP/1.0" 301 486 "-" "Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) 360JK yunjiankong 975382" "106.38.187.225, 106.38.187.225" - 0.000 
  3. 106.38.187.225 - - [20/Feb/2017:03:31:02 +0800] www.tanglei.name "GET /baike/208344.html HTTP/1.0" 301 486 "-" "Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) 360JK yunjiankong 975382" "106.38.187.225, 106.38.187.225" - 0.000 
  4. 10.130.64.143 - - [20/Feb/2017:03:31:02 +0800] stdbaike.bdp.cc "POST /baike/wp-cron.php?doing_wp_cron=1487532662.2058920860290527343750 HTTP/1.1" 200 182 "-" "WordPress/4.5.6; http://www.tanglei.name/baike" "10.130.64.143" 0.205 0.205 
  5. 10.130.64.143 - - [20/Feb/2017:03:31:02 +0800] www.tanglei.name "GET /external/api/login-status HTTP/1.0" 200 478 "-" "-" "10.130.64.143" 0.003 0.004 
  6. 10.130.64.143 - - [20/Feb/2017:03:31:02 +0800] www.tanglei.name "GET /content_util/authorcontents?count=5&offset=0&israndom=1&author=9 HTTP/1.0" 200 11972 "-" "-" "10.130.64.143" 0.013 0.013 

上面是nginx的一個案例, 例如希望找到top 10 請求的path:

  1. head -n 10000 std.nginx.log | awk '{print $8 ", " $10}' | grep ',404' | sort | uniq -c | sort -nr -k1 | head -n 10 
  2. #orhead -n 10000 std.nginx.log | awk '$10==404 {print $8}' |sort | uniq -c | sort -nr -k1 | head -n 10 

當(dāng)然,你可能一次不會直接處理成功,一般會先少拿一部分?jǐn)?shù)據(jù)進(jìn)行處理看邏輯是否正常, 或者你可以緩存一些中間結(jié)果.

  1. cat std.nginx.log | awk '{print $8 "," $10}' | grep ',404' >404.log 
  2. sort 404.log | uniq -c | sort -nr -k1 | head -n 10 

再比如每小時請求數(shù)量,請求耗時等等

  1. ➜  Documents$ head -n 100000 std.nginx.log | awk -F: '{print $1 $2}' | cut -f3 -d/ | uniq -c 
  2. 8237 201703 
  3. 15051 201704 
  4. 16083 201705 
  5. 18561 201706 
  6. 22723 201707 
  7. 19345 201708 

其他實(shí)際案例 ip block

案例: db數(shù)據(jù)訂正

背景: 因為某服務(wù)bug,導(dǎo)致插入到db的圖片路徑不對,需要將形如(安全需要已經(jīng)將敏感數(shù)據(jù)替換) https://www.tanglei.name/upload/photos/129630//internal-public/shangtongdai/2017-02-19-abcdefg-eb85-4c24-883e-hijklmn.jpg 替換成 http://www.tanglei.me/internal-public/shangtongdai/2017-02-19-abcdefg-eb85-4c24-883e-hijklmn.jpg,因為mysql等db貌似不支持直接正則的替換,所以不能夠很方便的進(jìn)行寫sql進(jìn)行替換(就算支持,直接改也有風(fēng)險的,還是先備份再修改留個“后悔藥”)。

當(dāng)然將數(shù)據(jù)導(dǎo)出,然后寫 python 等腳本處理也是一種解決方案,但如果用上面的命令行處理,只需要幾十秒即可完成。

步驟:

  • 準(zhǔn)備數(shù)據(jù)
  1. select id, photo_url_1, photo_url_2, photo_url_3 from somedb.sometable where  
  2. photo_url_1 like 'https://www.tanglei.name/upload/photos/%//internal-public/%' or 
  3. photo_url_2 like 'https://www.tanglei.name/upload/photos/%//internal-public/%' or 
  4. photo_url_3 like 'https://www.tanglei.name/upload/photos/%//internal-public/%'
  • 替換原文件 一般在用sed替換的時候,先測試一下是否正常替換。
  1. #測試是否OK 
  2. head -n 5 customers.csv | sed 's|https://www.tanglei.name/upload/photos/[0-9]\{1,\}/|http://www.tanglei.me|g' 
  3. # 直接替換原文件, 可以sed -i ".bak" 替換時保留原始備份文件 
  4. sed -i "" 's|https://www.tanglei.name/upload/photos/[0-9]\{1,\}/|http://www.tanglei.me|g' customers.csv 
  • 拼接sql, 然后執(zhí)行
  1. awk -F, '{print "update sometable set photo_url_1 = " $2, ", photo_url_2 = " $3, ", photo_url_3 = " $4, " where id = " $1 ";" }' customers.csv > customer.sql 
  2. #然后執(zhí)行sql 即可 

其他

  • play framework session

老方式: 需要啟play環(huán)境,慢。新方式直接命令行解決。

 

  1. sbt "project site" consoleQuick 
  2. import play.api.libs._val sec = "secret...secret" 
  3. var uid = "10086" 
  4. Crypto.sign(s"uid=$uid", sec.getBytes("UTF-8")) + s"-uid=$uid" 
  5.  
  6. ➜  Documents$  ~/stdcookie.sh 97522 
  7. 918xxxxdf64abcfcxxxxc465xx7554dxxxx21e-uid=97522 
  8. ➜  Documents$ cat ~/stdcookie.sh#!/bin/bash ##  cannot remove this line 
  9. uid=$1 
  10. hash=`echo -n "uid=$uid" | openssl dgst -sha1 -hmac "secret...secret"
  11. echo "$hash-uid=$uid" 

統(tǒng)計文章單詞頻率: 下面案例統(tǒng)計了川普就職演講原文中詞頻最高的10個詞。

  1. ➜  Documents$ head -n3 chuanpu.txt 
  2. Chief Justice Roberts, President Carter, President Clinton, President Bush, President Obama, fellow Americans and people of the world, thank you. 
  3. We, the citizens of America, are now joined in a great national effort to rebuild our country and restore its promise for all of our people. Together we will determine the course of America and the world for many, many years to come. 
  4. ➜  Documents$ cat chuanpu.txt | tr -dc 'a-zA-Z ' | xargs -n 1 | sort | uniq -c | sort -nr -k1 | head -n 20 
  5.   65 the 
  6.   63 and 
  7.   48 of 
  8.   46 our 
  9.   42 will 
  10.   37 to 
  11.   21 We 
  12.   20 is 
  13.   18 we 
  14.   17 America 
  15.   15 a 
  16.   14 all 
  17.   13 in 
  18.   13 for 
  19.   13 be 
  20.   13 are 
  21.   10 your 
  22.   10 not 
  23.   10 And 
  24.   10 American 
  • 隨機(jī)數(shù):比如常常新注冊一個網(wǎng)站,隨機(jī)生成一個密碼之類的。
  1. ➜  Documents$ cat /dev/urandom | LC_CTYPE=C tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 5 
  2. cpBnvC0niwTybSSJhUUiZwIz6ykJxBvu 
  3. VDP56NlHnugAt2yDySAB9HU2Nd0LlYCW 
  4. 0WEDzpjPop32T5STvR6K6SfZMyT6KvAI 
  5. a9xBwBat7tJVaad279fOPdA9fEuDEqUd 
  6. hTLrOiTH5FNP2nU3uflsjPUXJmfleI5c 
  7. ➜  Documents$ cat /dev/urandom | head -c32 | base64 
  8. WoCqUye9mSXI/WhHODHDjzLaSb09xrOtbrJagG7Kfqc= 
  • 圖片處理壓縮,可批量改圖片大小等等 sips
  1. ➜  linux-shell-more-effiency$ sips -g all which-whereis.png 
  2. /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  3.   pixelWidth: 280  pixelHeight: 81  typeIdentifier: public.png  format: png  formatOptions: default  dpiWidth: 72.000  dpiHeight: 72.000  samplesPerPixel: 4  bitsPerSample: 8  hasAlpha: yes  space: RGB  profile: DELL U2412M➜  linux-shell-more-effiency$ sips -Z 250 which-whereis.png 
  4. /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  5.   /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  6. ➜  linux-shell-more-effiency$ sips -g all which-whereis.png 
  7. /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  8.   pixelWidth: 250  pixelHeight: 72  typeIdentifier: public.png  format: png  formatOptions: default  dpiWidth: 72.000  dpiHeight: 72.000  samplesPerPixel: 4  bitsPerSample: 8  hasAlpha: yes  space: RGB  profile: DELL U2412M➜  linux-shell-more-effiency$ sips -z 100 30 which-whereis.png 
  9. /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  10.   /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  11. ➜  linux-shell-more-effiency$ sips -g pixelWidth -g pixelHeight which-whereis.png 
  12. /Users/tanglei/Documents/linux-shell-more-effiency/which-whereis.png 
  13.   pixelWidth: 30  pixelHeight: 100 
  • 命令行處理 JSON 的神器:隨著 JSON 通用性,常常需要處理 JSON 數(shù)據(jù),這里推薦這個命令行 JSON 處理神器 jq is a lightweight and flexible command-line JSON processor[1]

 

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2024-03-06 15:57:56

ShellLinux

2020-08-09 18:06:57

Linux系統(tǒng)工具

2024-08-13 10:55:34

Linux命令行黃金法則

2020-11-25 19:57:15

開發(fā)技能代碼

2018-01-19 09:00:37

2019-09-09 15:43:29

UnixLinux命令行

2012-07-11 13:35:25

UnixLinux

2020-12-10 16:16:08

工具代碼開發(fā)

2020-12-11 06:44:16

命令行工具開發(fā)

2014-06-17 09:49:07

Ngxtop實(shí)時監(jiān)控Nginx

2020-04-22 09:04:27

Linux命令行搜索工具

2010-09-01 14:23:54

Linux命令行開發(fā)

2020-11-02 16:20:07

GuavaJava編程語言

2024-08-26 11:23:41

kitexcall

2017-11-14 11:26:06

命令行技巧生產(chǎn)力

2014-08-25 16:23:24

2023-03-01 11:35:45

2010-03-05 13:00:39

Ubuntu命令

2021-05-20 12:16:17

Linux命令Axel

2015-07-01 09:15:46

linuxQuora命令行
點(diǎn)贊
收藏

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