以下のコマンドが使いこなすことが,次世代シークエンスのデータ解析を始める第一歩です。
※日本語を含んでいると、うまく機能しない場合があります。その場合はコマンドの前に「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(その他) |
パーミッション |
r |
w |
x |
r |
w |
x |
r |
w |
x |
8進法 |
4 |
2 |
1 |
4 |
2 |
1 |
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
ユーザーを切り替える。
オプションで[-]を付けないと,現在のシェルの環境変数をすべて解除せず,大変なことになる(実体験)。
id
ユーザーIDやグループIDを表示する。
useradd
ユーザーを追加する。
groupに所属するyhandaを作成する。
usermod
ユーザーアカウント情報を変更する。