Author: Ken

  • 這段時間,看了很多韓劇

    葳君說他訪問不了Google Scholar,我測試了一下還真是不行,為什麼香港的IP不能訪問呢?我想了想,問題應該不在香港的IP,在於阿里巴巴,應該是它亂抓Scholar的數據被封掉了,我把葳君切換到美國的IP,就恢復了正常。

    葳君的母親癌症已經多處轉移,去年的脊椎手術也只是治標不治本,有痛止痛,哪裡有問題解決哪裡的問題,不過她還是非常的堅強,從生病以來已經做過大大小小快十次手術和化療,承受的痛苦非常人所能承受,只不過這對於葳君和他已經七十一歲的老父親來說,不知道是更開心還是更痛苦。

    杰妹已經取消了她的台灣之行,原本她的計畫是去東京跑完馬拉松然後去台灣住上幾個月,雖然東京馬拉松取消了但是這娃居然還是去日本晃悠了一圈,真是不怕死。

    居家的這段時間,看了很多韓劇,什麼 [Crash Landing on you], [Live up to your name], [A man called God],風格迥異,奈飛上都是英文名,所以我也不知道這些韓劇漢語翻譯成了什麼玩意兒,不過有個熱門的殭屍片 [Kingdom],很流行的樣子,我看了兩集,還是看不下去,對殭屍片完全沒有興趣,可能是覺得太假了吧。

    這兩天各地的氣溫驟高驟低,有很多人會感冒,今天這種小雨的天氣,小區門外的街上,還有出殯的隊伍,放著鞭炮。

  • How to Exclude a Word with grep

    grep命令在用於在文本數據中搜索定義的字符串,字符,單詞或正則表達式匹配的行和代碼片段時非常有用。 儘管grep的大多數用途是對語法匹配的數據進行排序,但是如果我們想用grep排除單詞或字符串怎麼辦? 用grep排除與在grep中查找匹配項是類似的,今天讓我們看看如何使用grep排除字符串匹配和單詞。

    grep是與操作系統無關的實用程序,因此您可以在Mac OS,Linux,Unix或任何其他使用grep的系統中使用排除。

    如何使用grep排除單個單詞

    排除具有字符串或語法匹配行數據最簡單方法是使用grep和-v。

    例如,假設我們使用cat在命令行中輸出文件,但是我們想排除所有包含“google”的行,那麼語法將如下所示:

    cat webserver.log | grep -v “google”

    輸出將是webserver.log文本中不包括與”google”匹配字符串的數據。

    也可以直接在文件上使用grep,並根據單詞或語法排除匹配,如下所示:

    grep -v “google” webserver.log

    如何使用grep排除多個字符串或單詞

    既然我們知道如何排除單個單詞,下一個明顯的問題是使用grep排除多個單詞。 這同樣簡單,並且有幾種不同的方法可以使用-v標誌和-e標誌來完成此操作。

    首先,以上述示例為例,在透過管道傳輸到grep的文件中使用cat,並排除與兩個單詞匹配的任何數據:“google”和“baidu”,如下所示:

    cat webserver.log | grep -v -e “google” -e “baidu”

    包含“ google”或“ baidu”的每一行將從打印結果中排除。

    您還可以像以前一樣直接在文件上使用grep

    grep -v -e “google” -e “baidu” webserver.log

    另一種方法是通過使用管道來分隔每個匹配項來用grep分隔要排除的內容,如下所示:

    grep -Ev “google|baidu” webserver.log

    如果在示例文本文件上測試了這些選項中的任何一個,無論採用哪種方法,輸出都是相同的,每個選項都會輸出排除了包含目標短語,語法,單詞或文本匹配項的數據。

  • How to install PHP 7.4 on FreeBSD 12

    一直以來我都使用源代碼編譯的方式安裝php,一方面是因為Centos上yum的php版本比較舊,源代碼編譯比較適用於各種類unix平台,另外一方面是因為有時候需要加入第三方的模塊,比如pagespeed的時候,就必須從源代碼進行編譯,但是,FreeBSD一直都不支持pagespeed,所以,其實使用pkg自帶的版本就足夠好用了。

    安裝的命令很簡單:

    pkg install php74 php74-zlib php74-exif php74-gd php74-mbstring php74-xml php74-pdo_mysql php74-mysqli php74-curl php74-opcache php74-intl php74-sockets php74-zip php74-openssl php74-bz2 php74-pecl-redis php74-session php74-json php74-dom php74-fileinfo php74-simplexml php74-simplexml php74-pdo_sqlite php74-iconv php74-pecl-imagick-im7 php74-filter

    如果有需要其他的模塊,繼續在後面添加就可以。

    我一般會對/usr/local/etc/php.ini做如下一些修改:

    post_max_size = 22M

    upload_max_filesize = 20M

    date.timezone = Asia/Taipei

    opcache.memory_consumption=32
    opcache.blacklist_filename=/root/sh/opcachebl.txt

    當你不想為所有的php script啟用opcache的時候,你可以把那些目錄加入黑名單,這樣你可以節省很多內存。

    有一些pkg中沒有的so,phpize安裝後,需要在/usr/local/etc/php 目錄中新建一個extension.ini,並添加例如
    extension=imagick.so

    如果服務器內存足夠大,那麼我們可以使用redis作為session handler,將php的session放入內存,比直接扔在磁碟上的效率要高不少,針對php.ini需要修改兩處:

    session.save_handler = files 修改為
    session.save_handler = redis

    同時,session.save_path = “/tmp”
    修改為session.save_path = “tcp://127.0.0.1:6379?auth=ifyouhaveapassword”

    如果redis-server沒有設置密碼,那麼後面就不需要添加。

    好吧,其實是因為使用源代碼編譯intl模塊在FreeBSD上怎麼都過不去,看起來似乎是一個bug,而且是幾年前的bug,粗略的尋找了一下,沒有找到答案,也許以後可以解決這個問題。