創用 CC 授權條款
除非另有註明,本網站的著作由Fygul Hether製作,以創用CC 姓名標示-非商業性-禁止改作 4.0 國際 授權條款釋出。

2020年2月26日 星期三

tar命令的進階使用

摘要

接續〈tar命令的基礎使用〉,本文談點Unix/Unix-like的tar命令的幾個進階使用與範例:
  • 檔案選擇與排除
  • 覆寫控制
  • 加密
  • 增量備份
  • 多重卷冊
  • 複製目錄並保留屬性
本文使用環境是Ubuntu MATE 18.04。

tar命令的基礎使用

摘要

Unix/Unix-like的tar命令的基礎使用,較常見的用法。進階用法請見〈tar命令的進階使用〉。本文使用環境是Ubuntu MATE 18.04。

簡介

tar (Tape ARchive)是Unix上常用來做備份封存資料用的命令,可使用磁帶機備份資料,也可存到磁碟中的檔案;當然也包含從封存檔中還原其中檔案的功能。

語法

tar [options...] [file...]

選項用法的形式

tar算是Unix中極古老的命令,有三種語法形式,可依個人習慣採用,也可混用:
  1. Traditional:tar cf archive.tar file_to_archive.txt
  2. Unix-style:tar -c -f archive.tar file_to_archive.txt
  3. GNU-style:tar --create --file archive.tar file_to_archive.txt
2.的寫法也可像:tar -cf archive.tar file_to_archive.txt。為節省篇幅,以下多數使用傳統形式。

2020年2月8日 星期六

Chocolatey:Windows軟體管理器

摘要

Chocolatey是Windows上的軟體管理器,類似於Linux上的apt, rpm或是macOS上的Homebrew。

Chocolatey目前版號是v0.10.15,本文記錄其相關資源與使用上的心得,主要依個人用戶觀點所寫。

以下許多說明在官方文件中即可找到,這裡依不同性質做分類編排。

(本文是去年10月寫的,一直沒發佈,內容也許會與現況稍有不同。)

2020年1月11日 星期六

淺談AppImage與Flatpak

前言

在使用qTox期間,原採用AppImage格式,但無法用小小輸入法在該軟體上打中文,於是改試Flatpak格式,因此引發了對這兩種軟體包裝格式的探索。

AppImage的形式較像是單一包裝檔的可攜式軟體;Flatpak的使用較像APT,但它可通用於各種Linux發行版,這點會與Snap較類似。

本文將以一般使用者而非開發者的角度來簡單談一下AppImage與Flatpak的使用,這兩者都是Linux上包裝軟體的形式,其目的都是可通用在各種Linux發行版。

以下就做一下Flatpak與AppImage使用方面的介紹,附帶談一下對中文輸入法的影響。使用環境是Ubuntu MATE 18.04。

(本文是去年10月寫的,一直沒發佈,內容也許會與現況稍有不同。)

※2023-5-15:本文某些描述已與現況相當不同。

2020年1月4日 星期六

snap入門

摘要

Canonical公司在幾年前開始進行一種稱為snap的軟體包裝方式,可適用在眾多Linux流通版。它的運作方式與傳統的APT並不一樣,以下對其使用做點簡單介紹。(本文是去年7月寫的,一直沒發佈,內容也許會與現況稍有不同。)

Snap簡介與特點

簡介

雖然使用者主要會使用到的指令只是snap一支小程式,這裡還是稍描述一下整體。這套軟體包裝與分發deployment系統稱為Snappy,所做的軟體包裝稱為snap(指令程式也採用此相同名稱),在背景運作的程式是snapd,而發展製作snap package的則是稱為Snapcraft的工具。

Snap的發展在目前還算相當新,也許還會有較大的變動。在正式服役的服務器上還是建議使用APT來管理軟體;snap則可用在桌面環境,做為另一種取得軟體的管道。

本文會著重在snap的幾個入門用法,像尋找、安裝、移除應用軟體,展示環境是Ubuntu MATE 18.04。

2019年12月21日 星期六

ccal自製有農曆的日曆

摘要

自己已連續好幾年都使用“自製有農曆的日曆”這個網站來產生月曆,原本使用它的網頁功能,近年改用該網站的後端程式(ccal.exe),直接在自己電腦中做。

本文簡單介紹一下這網站與其後端程式的使用。如果發現該網站上有許多頁面連結失效,先別慌,先複製所要的連結網址,瀏覽器開新空白頁,貼上網址即可。

2019年12月14日 星期六

以Python與無頭式Firefox或Chrome做網頁抓取

前言

以程式來抓取網頁內容從中取得有用資料的工作早已不是件困難的事,而現代網頁的產生方式也有許多種方式,其中一種是執行過JavaScript才產生的。這類網頁在程式中僅由一般取得靜態網頁的方式來取得是行不通的,必須透過像瀏覽器的運作,執行過其中的JavaScript後,真正的網頁內容才會產生。

若要以Python抓取由JavaScript所產生的網頁內容,有一種作法是透過Selenium[1],驅動瀏覽器來進行。Selenuim支援多種瀏覽器,其中包含了Firefox, Google Chrome。但在某些應用的環境中,啟動瀏覽器來抓資料可能不太適合,因為桌面環境就不方便同時再進行其他工作,或是根本沒桌面環境可用。在這種情況下,像PhantomJS這類無需圖形環境的Scriptable Headless Browser[2],無頭(意指沒有圖形畫面顯示)的瀏覽器就相當適合,而Selenuim也支援它。以往PhantomJS在這方面使用的領域佔有重要的一席之地,自己也用了很長一段時間,且得心應手。只是Selenuim後來的版本因某些因素不再支援它,想用Headless瀏覽器,得改用其他像Firefox Headless Mode或是Chrome Headless Mode。

本文簡單記錄Python中以Selenuim驅動Headless Firefox/Chrome的方式、幾點相關建議、提醒以及相關參考。不涉及Selenium與Headless Browser之詳細用途說明,這類請查閱後面所列的參考。內容僅屬粗淺的入門指引,也算不上教學文,文末所列的參考可查到這方面詳細資料。

本文適合的讀者對象是已經會使用Python來抓取一般網頁,但對於以JavaScript或Ajax所產生的網頁資料一籌莫展者。要做這工作,最好熟悉HTML,能懂點JavaScript更好,會使用瀏覽器的開發者工具來檢視HTML元素可方便鎖定想找的東西,以及瀏覽器主控台。

如果想學習如何以Python抓取網頁資料(俗稱網路爬蟲),市面上已有數本這類書籍,像Web Scraping with Python。有Python基礎者可利用Requests, Beautiful Soup, lxml(選項)的組合,或者Scrapy來達成一般的網頁抓取工作,前者的組合可做一般應用也可做爬蟲,較容易入手;Scrapy則專門用於建構爬蟲。在必要時才採用本文所說的方式來抓取由Javascript產生的網頁資料。