はじめに
皆さんこんにちは、
プログラマとして開発をしているとさまざまな言語や環境に触れますが、
スマートフォンやWebアプリケーションを作っていく中で本線のプログラミング言語ではありませんが、
ここでは、
- ※
- 当稿でのシェルは多くのLinuxディストリビューションで利用されているbashを指します。BSD系で利用されているcsh, bashの拡張版とも言われるzshでは異なる可能性があります。
基本の操作
←,→カーソルの左右ではカーソル位置の移動を行いますが、↑,↓では前に実行したコマンドの履歴へのアクセスを行います。↑で前のコマンドへ遡り、↓で次のコマンドを表示します。
また、
←,→はCtrl+b,Ctrl+f、↑,↓はCtrl+p,Ctrl+nで操作できます。また、Ctrl+a,Ctrl+eで先頭/末尾に移動することも可能です。
1つずつ遡っていくことは効率が悪いですが、Ctrl+rで検索することもできます。文字列を入れた状態でもう一度押すと更に履歴を遡れます。想定したコマンドが表示されるまで遡るか、Ctrl+rを押しすぎ通りすぎてしまった場合はCtrl+sで前の検索結果へ移動することができます。目標のコマンドが見つかったらenterを押下し選択しましょう。
基本のコマンド
コマンドは各OSやシェルにさまざまなものが存在します。コマンド名はできるだけ短く省略するというポリシーのため、
man
まず最初に紹介するのはmanコマンド。これはmanualの省略で、
UNIX系OSには各種コマンドのマニュアルが存在します。Google検索して出てきたコマンドをそのまま利用すると、
man コマンド
また、manの利用方法自体もman manとして調べてみましょう。manコマンドでの操作方法は次のlessコマンドと同様です。
- NAME
- 名前,タイトル
- SYNOPSIS
- 書式: オプションの書き方などがここにある
- DESCRIPTION
- 説明文
- OPTIONS
- コマンドのオプションの種類とその使い方
less
manコマンドでも利用されている、
表示される内容は1画面で収まらない事が多いので、[space]fで次へと、bで前へ、↓[enter]jで下へと、↑kで上へと移動します。他にもスクロール方法はあるので、
ls
lsはlistの略です。ディレクトリのコンテンツリストを表示します。
使用例としてはls -Alとし、-tや-rオプションを利用しましょう。
-tは更新時間降順でソートします。更新時間でソートされたリストを-rで昇順にソートしなおします。ソートするオプションは他にもあります。-Sはファイルサイズが降順、-Xは拡張子のアルファベット順でソートします。
cd
cdはchange directoryの略で現在居るディレクトリの変更をする際に利用します。
cd ディレクトリ名
で任意のディレクトリへ、
cd ..
で1つ上のディレクトリへ移動します。
cdとだけ入力することで、cd ~と同じようにルートディレクトリへ移動します。
また、cd -とすることで前のディレクトリに移動できます。
mkdir
make directoriesコマンドはディレクトリを新たに作成するためのコマンドです。mkdir foo bar hogeとすることで複数のディレクトリを作成できます。-mオプションを利用し、mkdir -m 0755 testと入力すれば、
また、
mkdir aaa mkdir aaa/bbb
ではなく、-pオプションを付け、
mkdir -p aaa/bbb
とすることで、
cp
cpはcopyの略でディレクトリやファイルをコピーするコマンドです。ディレクトリを中身ごとコピーする場合は-rオプションが必要です。また、-pのオプションを利用しましょう。
mv
mvはmoveの略でディレクトリやファイルを移動するコマンドです。以下のように使います。
mv 移動前のファイルorディレクトリ 移動後のファイルorディレクトリ
移動だけではなく、
mv 変更前のファイルorディレクトリ 変更後のファイルorディレクトリ
のように使います。
rm
rmコマンドはremoveの略でディレクトリやファイルを削除します。一度削除してしまうと、cpと同じように-rオプションが必要です。
cat
catコマンドはlessコマンドと同じようにファイルの内容を閲覧する際に利用されることが多いです。lessと違ってファイルの内容をそのままコマンドラインに出力します。このコマンドはconcatenateの略で、
cat a.txt b.txt > c.txt
とすることで2つのファイルをc.に連結します。
また、catをそのままひっくり返したtacがあります。
最後に
紹介してきたコマンドはほんの一部で、lsでできない再帰的にファイルを表示するのにファイル検索するfindコマンドを利用したり、sort uniqなどで整形したり、grepでファイル内の文字列を抜き出したりと、
何かを利用する際に調べるだけでなく、
また、