2016年11月30日 星期三

用USB安裝Debian 8.6

用USB隨身碟來安裝Debian 8.6 (Jessie),依序執行:
  1. wget http://debian.nctu.edu.tw/debian-cd/8.6.0/amd64/iso-cd/debian-8.6.0-amd64-netinst.iso
  2. sudo cp debian-8.6.0-amd64-netinst.iso /dev/sde
說明文件是《Preparing Files for USB Memory Stick Booting》
  1. 從交大的mirror site下載iso映像檔
  2. 把此iso寫到隨身碟上
要安裝系統的機器選定從USB開機,之後依照指示安裝
現在裝Debian已有圖形界面,很簡單方便~

_EOF_

2016年11月29日 星期二

Ubuntu16.04調整MBPR上的螢幕亮度

在MacBookPro Retina上面跑Ubuntu 16.04,遇到螢幕亮度無法調整的問題。參考《Can't adjust screen brightness on Macbook Pro 10,1 Ubuntu 13.10》,用root輸入:
  • setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0
上面那行放在 /etc/rc.local 裡面,開機後就會直接執行

_EOF_

2016年11月27日 星期日

重新掛載NFS檔案系統

某些時候像是跳電後,原本透過網路掛載的NFS檔案系統會卡住,這時候要強迫所有的NFS檔案系統重新掛載可以執行下面指令:
  • sudo mount -a -t nfs -o remount
_EOF_

2016年11月26日 星期六

Ubuntu16.04裝在MBPR上的無線網路

在MacBookPro上面裝完Ubuntu 16.04後,無線網路不會動。用iwconfig也看不到有無線網路的樣子,除了之前寫過的《舊MacBook Pro安裝Ubuntu Gnome後,修正無線網路不會動的問題 》解法以,另外又找到另外一個更簡單的解法《Wireless driver not working for Broadcom BCM43224 after latest update》,只要依序做下面三個指令:
  • sudo apt-get install linux-headers-generic
  • sudo apt-get install --reinstall bcmwl-kernel-source
  • sudo modprobe wl

_EOF_

2016年11月25日 星期五

從Fedora24升級到fc25

這次系統升級的部分參考《What’s new in Fedora 25 Workstation》,這邊介紹建議的更新方式。打開終端機之後,依找下面步驟一步一步來做:
  1. sudo dnf upgrade --refresh
  2. sudo dnf install dnf-plugin-system-upgrade
  3. sudo dnf system-upgrade download --releasever=25
  4. sudo dnf system-upgrade reboot

2016年11月19日 星期六

Linux調整螢幕顯示設定

Linux的X視窗下,可用xrandr(x resize and rotation)指令直接調整螢幕相關設定,像是亮度、旋轉等等而不需要重新啟動X視窗,指令如下:
  1. xrandr
  2. xrandr | grep connected
  3. xrandr --output HDMI-1 --brightness 0.87
  4. xrandr --output VGA1 --mode 1440x900_60.00

2016年11月18日 星期五

Python一行文:if-else變形

Python中的列表可以用一行文來寫出來,依序執行:
  • a = [x for x in range(1,10)]
  • b = [ 'Even' if x%2==0 else 'Odd' for x in a ]

2016年11月17日 星期四

用tar打包很多個檔案的技巧

用tar打包某些檔案通常只要輸入
  • tar cf x.tar *
但若是檔案很多的時候,會出現arguments too long之類的錯誤訊息。最簡單的解法是打包這些檔案所在的資料夾。不過也可以用下面這個方式來處理:
  1. find . -name "*" > ../folder.list
  2. tar -I ../folder.list -cf > ../folder.tar
  3. tar -I ../folder.list -cf - | pigz -p 4 > ../folder.tgz

2016年11月16日 星期三

掛載目錄的方法

一般來說,使用mount都是將磁區掛載到某個目錄上面,但某些時候會遇到需要掛載某些目錄到另一個目錄的狀況。這時候可以用--bind的參數達成這個目的:
  • mount --bind /md1/user /home/user

2016年11月15日 星期二

Linux上將硬碟弄成GPT分割區

現在硬碟容量越做越大,超過2TB的硬碟以前的常用的MBR分割方式無法用,必須要用到GPT分割方式。在Linux上,用來切割MBR分區的程式叫做fdisk,對應到GPT的程式則是gdisk:

  1. gdisk -l /dev/sdc
  2. gdisk /dev/sdc
  3. sgdisk -R /dev/sdd /dev/sdc

2016年11月14日 星期一

Fedora上安裝Skype

在Fedora24上面安裝Skype,原本以爲去官方網頁《Skype for Linux》下載程式(版本是4.3),然後按着《Install Skype 4.3 on Fedora 25/24, CentOS/RHEL/SL 7.2/6.8》上面的指示作就可以了,但這樣安裝好以後的上線所有的聯絡人都是離線狀態。網路上面有些人認為Skype賣給微軟以後就很常出現這樣的問題。後來下面的解法,簡單說就是安裝Skype for Linux Alpha

首先去《Skype for Linux Alpha and calling on Chrome & Chromebooks》下載deb或是rpm檔案。由於此系統是Fedora,搭配的是rpm的套件。載完後在指令列輸入
  • sudo rpm -ivh skypeforlinux-64-alpha.rpm
如此安裝完畢後,去找到Skype的icon,右上角有個紅色的alpha,執行即可

_EOF_

2016年11月13日 星期日

GRUB命令列的使用方法

在更新系統,或是轉移系統的時候,因為核心修改或是硬體更改的緣故,有時候會造成系統開機時卡在開機管理程式GRUB上面。這時候螢幕會出現GRUB的版本,後面接著提示符號長得像是  grub>
下面就來介紹此GRUB命令列要輸入什麼才能讓系統正常開機:
  1. ls
  2. set root=(hd0,msdos2)
  3. linux /vmlinuz.xxx root=/dev/sda3 
  4. initrd /initramfs.xxx.img
  5. boot

2016年11月11日 星期五

統計蛋白質資料庫

蛋白質資料庫(Protein Data Bank,簡稱PDB)上面存放著以蛋白質為主的生物巨分子立體結構資料。首頁顯示 "An Information Portal to 124286 Biological Macromolecular Structures",更多的統計資料可參考《PDB Statistics》。這邊用幾個簡單的指令來分析PDB這個資料庫
  1. wget ftp://ftp.wwpdb.org/pub/pdb/derived_data/pdb_entry_type.txt
  2. TOTAL=`cat pdb_entry_type.txt | wc -l`; echo $TOTAL
  3. head -n 5 pdb_entry_type.txt 
  4. for TYPE in `cat pdb_entry_type.txt | cut -f 2 -d$'\t' | sort | uniq`; do printf "$TYPE "; NUM=`cat pdb_entry_type.txt | cut -f 2 -d$'\t' | grep $TYPE | wc -l`; printf "$NUM "; FRAC=`echo "scale=4; $NUM/$TOTAL" | bc -l`; echo $FRAC; done
  5. for METHOD in `cat pdb_entry_type.txt | cut -f 3 -d$'\t' | sort | uniq`; do printf "$METHOD "; NUM=`cat pdb_entry_type.txt | cut -f 3 -d$'\t' | grep $METHOD | wc -l`; printf "$NUM "; FRAC=`echo "scale=4; $NUM/$TOTAL" | bc -l`; echo $FRAC; done

2016年11月10日 星期四

直接從命令列執行R script

寫好的Rscript叫做run.R,只要執行並不要儲存執行過程的變數:
  • /opt/local/bin/R --no-restore --no-save < run.R > run.out

在此本機的R安裝在/opt/local/bin/下面,標準輸出的結果存到run.out裡面

_EOF_

2016年11月9日 星期三

Ubuntu 16.04無法用Super-d 顯示桌面

以前裝好Ubuntu以後,桌面管理程式Unity可以直接用 super-d 直接顯示桌面,但裝了Ubuntu 16.04 LTS以後,這個快速組合鍵被取消掉了。網路上《Super+D key shortcut does not show desktop》找到的解法,依序執行:
  1. 用Ubuntu軟體中心 > 安裝 CompizConfig
  2. 打開 CompizConfig
  3. 點選 Ubuntu Unity Plugin
  4. 點選 General、設定 Show Desktop  

_EOF_

2016年11月6日 星期日

讓指令輸出的內容直接用vim打開

Vim可以直接編輯文字檔案,若文字內容是由指令產生(例如說列出根目錄下所有的資料夾 ls -al /)卻想要用Vim來看可以這樣做:
  • ls -al / | vim -
若已經開啟Vim,希望把指令的文字內容導入,只要這樣做:
  • :r !ls -al /

_EOF_

2016年11月5日 星期六

在Mac上安裝BLAST

在自己的Mac主機上跑BLAST,用下面的指令來安裝在/pkg資料夾下:
  1. cd /pkg
  2. wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.5.0/ncbi-blast-2.5.0+-x64-macosx.tar.gz
  3. tar zxf ~/Sources/ncbi-blast-2.5.0+-x64-macosx.tar.gz
  4. tree ncbi-blast-2.5.0+/

2016年11月4日 星期五

Bash讀檔案一次讀一行

如果一行裡面沒有空格,可以用for;要不然就用while。比較下面指令的差別:
  • for WORD in `cat /etc/passwd`; do echo $WORD; done
  • cat /etc/passwd | while read -r LINE; do echo $LINE; done
     
  • for WORD in `cat /etc/hosts`; do echo $WORD; done
  • cat /etc/hosts | while read -r LINE; do echo $LINE; done

_EOF_

2016年11月3日 星期四

R語言比較兩個vectors的差異

假設有兩個向量(vectors),分別叫做q與t,想要知道這兩個向量是不是一樣,進一步想要知道哪邊不一樣可以用下面的指令:
  1. identical(q, t)
  2. unique(q)
  3. unique(t)
  4. unique(q) %in% unique(t)
  5. unique(t) %in% unique(q)

2016年11月1日 星期二

根據某欄來篩選R的資料框架

R的資料框架(data frame)像是Excel裡面的資料表,參考《操作R的資料框架(Data frame)》。假設現在要根據某欄位來篩選出新的資料表,可以用subset來達成

  • df <- read.csv(file="YOUR_DATA.csv")
  • df_sub <- subset(df, df$columnName %in% aVector)

第一行指令是從CSV格式的檔案讀取工作表到df裡面
第二行指令是說,根據df工作表裡面的columnName這個欄位去查aVector,如果有的話就留下來,沒有的話就刪除。

_EOF_