之前都很笨,用 awk 處理完,還是都先用 printf 輸出到檔案,再用 sh 去執行。今天終於去查了 awk script 裡是否有類似 system() 的用法,果然 awk manual 裡就有提到 system() ,不過該小節建議了更好的做法,就是直接用 | 把輸出的指令 pipe 到 sh 去。
作法大致是這樣:
awk '{printf("cp %s /media/usbdisk%s\n", $1, $1) | "/bin/sh" }' files-list.txt
Just thinking more…
之前都很笨,用 awk 處理完,還是都先用 printf 輸出到檔案,再用 sh 去執行。今天終於去查了 awk script 裡是否有類似 system() 的用法,果然 awk manual 裡就有提到 system() ,不過該小節建議了更好的做法,就是直接用 | 把輸出的指令 pipe 到 sh 去。
作法大致是這樣:
awk '{printf("cp %s /media/usbdisk%s\n", $1, $1) | "/bin/sh" }' files-list.txt
要掛載一個 image,就得利用到 loopback device,一般來說只要在 mount 時,指定 -o loop 跟 image 檔名就可以了,例如:sudo mount -o loop your_image /mnt
但是,我遇到 image 檔案無法掛載的情況。用 file 指令去看,發現到 image 檔裡有多個 partition 。
precise-desktop.img: x86 boot sector; partition 1: ID=0xc, active, starthead 1, startsector 32, 147424 sectors; partition 2: ID=0x83, starthead 45, startsector 147456, 4864000 sectors, code offset 0x0
後來想起多年前看過的 losetup,就看了一下 losetup 的使用說明,裏面提到 -o 這個參數,這是用來指定 offset 的,也就是說,可以把 image 檔案裡從指定 offset 開始的地方指派到某個 loopback device 去。於是根據 file 的資訊,算出 offset 是 147456*512 = 75497472,然後用 sudo losetup -o 75497472 /dev/loop0 precise-desktop.img 去指定,這樣 /dev/loop0 就對應到 precise-desktop.img 檔案裡的第二個 partition ,最後就可以用 sudo mount /dev/loop0 /mnt 掛載了。
反過來,也可以對一個檔案做 fdisk。這時要先預先用 dd 幫檔案配置空間,例如要配置一個 512M 的檔案:dd if=/dev/zero of=my.img bs=1M count=512 。接著一樣用 losetup 把 image 檔指派到 loopback device:sudo losetup /dev/loop1 my.img ,最後就可以用 fdisk 來分割了。
找了半天找不到適當的指令顯示套件的相依套件,想起之前無意找到的 apt-cache dotty,就想說用圖形來看套件的相依性還是最快的。
產生圖形的方法:
接著就可以利用 dot 指令來產生圖形了,dot 是 graphviz 套件提供的指令,可以根據 dot 語法來產生圖形,用法是 dot -T png -o out.png out.dot。用 apt-cache dotty 產生的 dot 語法,會讓 dot 產生圖形的速度變得非常慢;而 debtree 所產生出來的 dot 語法,就不會如此。我猜想是 debtree 有預先排除掉 libc6, libstdc++6 與 zlib1g 的關係吧。
Georgie Henley,飾演納尼亞傳奇裡的 Lucy,從第1集到現在,轉眼也過了5年,每次看這種主角是小女孩的系列電影,都會有「啊~長大了啊」的感嘆。
在偷書賊裡飾演養父女的 Geoffry Rush 與 Sophie Nélisse,兩人的互動流露出真摯的情感,很難想像 Geoffry Rush 會是神鬼奇航裡那個亦正亦邪的 Barbossa 船長。
SMIL 是 MMS 在使用的格式,其實就是類似 HTML/XML 的文字檔案,還蠻容易了解的,比較詳細的介紹可以參考這篇文章:SMIL Guide。
我是參考這篇教學:Learn to Build Modern Web Apps with the AngularJS Tutorial
教學裡使用的是 yeoman ,這真的有方便。首先要安裝 nodejs 跟 npm,在 Ubuntu 13.10 裡,就用 sudo apt-get install nodejs npm 就行了,如果是 Ubuntu 12.04,得另外裝 chris lea 的 PPA,再 update/install。教學裡的第一步,就是安裝 yeoman,用 sudo npm install -g yo 來安裝,可是我不太喜歡直接裝到 /usr 系統資料夾去,所以找了一下,看能不能像 Python 的 pip install xxx –user 一樣裝到使用者目錄下。
搜尋的結果是可以的,但需要做些設定。設定值大致如下:
這樣就可以不用 sudo,然後用 npm install yo 就可以把相關模組都裝到使用者目錄下了,而且相關的指令也都可以用。
參考資料:
完全找不到想放的照片,只好放電影海報囉。
最近 Debian 宣佈以後改用 systemd,Canonical 也隨之跟進,所以之後衍生的 distribution 應該也都會跟進。Arch 是已經改用 systemd 了,CentOS/RHEL 應該是到 7 以後才會可能會用 systemd。
看到這兒就想到目前在用的 Ubuntu 12.04 應該也可以改用 systemd 吧~目前先找到這兩篇:
基本上都是要特定 ppa (上面這兩篇提到的 ppa 還都不同,到時候再來看那邊比較新就用哪個),安裝 systemd 以後,然後改 grub ,大概就這樣。可能遇到的問題是 /etc/mtab 問題以及一些服務可能會無法啟動。從 Ubuntu Wiki 對 systemd 的說明裡 看起來缺的東西不少,我想最好是先拿 VM 的機器來試驗,不要拿工作機來試驗,免得把自己搞得焦頭爛額。
Dianna Agron ,飾演 The family 裡的女兒,為愛本來要尋死,後來看到來追殺的人,為了家人,就放棄自殺,回去幫忙了。