本文へスキップ

UNIXのコマンド集

NGS解析でよく使用するコマンド集

以下のコマンドが使いこなすことが,次世代シークエンスのデータ解析を始める第一歩です。

cd 移動する    cp ファイルをコピーする
ls ディレクトリの中身をみる   mv  ファイルの移動させる
less ファイルの中身を上からみる    rm  ファイルを消す
head ファイルの中身を上からみる    wc  ワードカウント
tail ファイルの中身を下からみる    cat  ファイルを合体させる
grep 指定の文字列を含む行を抽出(1つ)    sort  ソートする
egrep 指定の文字列を含む行を抽出(複数)    uniq  重複する文字列をまとめる
 sed 指定の文字列を置換    join  横でつなげる?
 cut 指定の列を抽出    paste  横でつなげる?
 mkdir  ディレクトリを作る    su   ユーザーを変更する
 awk  ある種のプログラム言語   scp  サーバーにデータを転送する
 vi  テキストエディタ    wget, curl  ダウンロードする
 tar  解凍する    chmod  ユーザー権限を変更する
 gzip  圧縮する    useradd  ユーザーを追加する
 chown  ユーザーやグループを変更する    usermod
 
 id  容量の確認   ssh  

※日本語を含んでいると、うまく機能しない場合があります。その場合はコマンドの前に「LC_ALL='C'」と文字コードを入力するときちんと機能します。

cd

Change Directoryの略,ディレクトリ(ファイル)を移動する時に使います。
cd .  現在いるディレクトリに移動(変化なし)
cd ..  1つ前のディレクトリに移動
cd ~  ホームディレクトリに移動

ls

LiSt の略。ディレクトリの中身を確認します。
ls ディレクトリ内のファイルの名前が表示されます。
ls -l ディレクトリ内のファイルの名前と詳細情報(サイズや権限など)が表示されます。
ls -lh  ls -l の表示のサイズの箇所が 、M(メガ), G(ギガ)表示になります。
ls -la 隠しファイルを含めて,ディレクトリ内のファイルの名前と詳細情報(サイズや権限など)が表示されます。

less

ファイルの文頭を閲覧します。

 less filename  閲覧したいファイルを指定します。

起動中に以下のような操作をすることで,ファイルの内を移動できます。
 /pattern  現在位置からファイルの末尾方向へpatternを検索し、移動します
 G  文頭に移動する
 GG  文末に移動する
lessを終了するには,「q」を押します。

cp

CoPy。ファイルのコピーを作ります。
cp file_1 file_2 file_1のコピーをfile_2という名前で作れます。 


mv

MoVe。ファイルを異なるディレクトリに移動させます。同じディレクトリの場合,名前が変更になります。

rm

RreMove。ファイルを削除します。
  • rm -r filename  ディレクトリごと削除する場合は,オプションでrを
  • rm -r -f filename  fオプションで、許可なしの強制削除できます。

mkdir

make directory。ディレクトリを作成する。

wc

word countの略,左から行数,単語数,文字数の順で出力される。

cat

conCATenate の略, 複数ファイルをつなげて出力する。

  • 改行を削除する  cat filename | tr -d "\n" > filename2  ※\nを \012でも可
  • ファイルをまとめる   cat name_1.fasta name_2.fasta ... > all_data.fasta
  • 行数を表示させる    cat -n filename.txt

grep

指定のパターンにマッチする行を表示する。

  • 特定の文字を含む行だけ出力  grep '探す文字' filename > filename2
    オプション 
     grep -v 探す文字を含まない行を出力 
     grep -i  大文字小文字を区別しない
     grep -w  探す文字を単語としてマッチ
     grep -c  マッチしたカウントを表示する
    grep -f file  複数の文字列を検索する場合は、fileにまとめた方が楽
  • -num マッチした文字列の前後 num 行を表示する。デフォルトは -0。マッチした行のみを表示する。
  • -A num マッチした文字列の後に続く num 行を表示する
  • -B num マッチした文字列の前の num 行を表示する

egrep

Enhanced grep の略。

  • 複数の文字ををgrepで出力  egrep '探す文字|探す文字|探す文字|・・・' filename > filename2

sed

  • 文字の置換   sed 's/置換する文字/置換後の文字/g' filename  
    オプション 
     . 任意の文字 
     .* 任意の文字の連続
    /が含む文字を検索する場合は/の前に\(バックスラッシュ)を入れる\/探す文字でおk。
  • ^Mの置換を改行に変換する   sed 's/(control + V)(control + M)/\(Enter)                              /g' filename                         excelなどで編集すると,lessで確認したとき改行が^Mになっているのを修正できる。

head

ファイルの文頭を表示する。
head filename  ファイルの文頭を表示する(デフォルトは10行)。
head -n 100 filename  ファイルの文頭を100行表示する。
head -n -100 filename 末尾から100行を除いて表示する。 

tail

文章末を表示する。
tail -n 100 filename  末尾から100行を表示する。
tail -n -100 filename  先頭から100行以降を表示する。
tail -f filename  ファイルの後ろをリアルタイムで見たい


  

cut

その名の通りカットする。
  • cut -f 2,5 filename  2と5列目をカットする

sort

その名の通りソートする。
  • sort -k 1,1 filename  1列目をソートする (数字をソートする場合は注意)
  • sort -k 1,1 -n filename  数字を大きい順に

uniq

UNIQueの略。ユニークな配列をピックアップする。※uniqを行う前にはsortをすること
  • uniq -u  重複するものを除外して表示
  • uniq -d  重複しているものを表示

join

ファイル同士共通する所をみつけて合体させる。※joinを行う前にはsortをすること
  • join -t "(Control + V)(tab)" -1 1 -2 1 finename1 filename2 > filename3
-tのオプションでタブ区切りを指定,finename1とfilename2の一列目で共通する所をみつけて合体させfilename3をつくる。

paste

joinに似ていますが,joinとは異なり共通項を見つけて連結せず,そのまま横に連結していきます。

awk

コマンドのくせに,これはプログラミング言語とも受け取れるぐらい複雑なコマンドなので,私の守備範囲外。
  • BLAST直後にクエリ配列ごとに最高スコアの出力   awk 'prev!=$1{print; prev=$1}' filename
  • 横にまとめる   awk '{if ($1 == name) {t1 = t1"\t"$2} else {if (name != 0) {print name,t1} name = $1; t1 = $2}} END {print name,t1}'
A D     A D B T
A B     B C C
A T   →
B C
B C

これを実行すると以上のようになります。

  • 偶数行だけ出力する。      awk 'NR%2==0' filename.txt
  • 奇数行だけ出力する。      awk 'NR%2==1' filename.txt


chmod

change modeの略。アクセス権限を変更する。
  • chmod 777 filename  自分しか使わないPCならこれでおk
   user(自分) group (グループの人)  other(その他)
パーミッション   w  x  r  x  r  x
 8進法 4 2 1 4 2 4 2 1
 設定値  合計値 合計値  合計値 

r:読む権利
w:書き込む権利
x:実行する権利

なので,上のコマンドは自分自身,グループの人,他人の人にfilenameの読み書きする権利に実行する権利を与える。

vim or vi

エディタを開く,iで書き込みモード,Escで抜ける,/wqで上書きしてエディタから抜ける。

wget, curl

コマンドラインで,ファイルをダウンロードする。
  • curl -C - -o filename URL  中断されても、同じコマンドを入力すれば、途中から再開する。
  • wget -r -A .faa.gz ftp://ftp.ncbi.nif.gov/refseq/release/bacteria


gzip

ファイルを圧縮する。

tar

圧縮ファイルを解凍する。

 拡張子 圧縮形式  コマンド 
 .tar.gz  gzip tar -zxvf file_name 
 .tar.bz2  bzip2 tar -jxvf file_name 
 .gz  gzip gunzip file_name 
 .bz2  bzip2 bunzip2 file_name 
 .lha or .lzh  lzh lha -x file_name 
 .zip  zip unzip file_name 
 .jar  jar jar -xf file_name 
 .tar  tar  tar xvf filename

scp

リモートマシン間で,データの移行させるさせたい際に使用する。

  • リモート・マシン間でファイルをコピーする   scp filename yourID@bias4.nibb.ac.jp:/home/yourID/
  • ディレクトリ内を再帰的にコピーする   scp -r userID@156.154.52.2:/home/yourID/ ~/temp    ※自分のPC上で


chown

ファイルやディレクトリの所有者を変更する。
  • chown user:group file_name
file_nameの所有者をuserにし,グループをgroupに変更する

su

ユーザーを切り替える。
  • su - username
オプションで[-]を付けないと,現在のシェルの環境変数をすべて解除せず,大変なことになる(実体験)。

id

ユーザーIDやグループIDを表示する。
  • id


useradd

ユーザーを追加する。
  • useradd -G group yhanda
groupに所属するyhandaを作成する。


usermod

ユーザーアカウント情報を変更する。
  • usermod yhanda





inserted by FC2 system