hackerになりたいnoobの備忘録

学んだことのまとめです

linux入門2

どうも皆さんこんにちは、ごちうさ3期、OVA決定に歓喜している難民系エンジニア(仮)のcl0wnです。更新が遅くなってしまい、大変申し訳ありませんでした。今回は前回に引き続き、シェルの基本的なコマンドを学んで行こうと思います。

  • touch
  • file
  • cat
  • less
  • history
  • mkdir
  • rm
  • find
  • man
  • パイプ
  • リダイレクト

touch

touchコマンドはからのファイルを作成します。すでに存在する場合はタイムスタンプを現在時刻に更新します。

touch <ファイルのパス>

例えば、こうすることで現在いるディレクトリにaというファイルを作ります。

touch a

file

ファイルの種類を確認するのに使います。

file <ファイルのパス>

ファイルの種類によってtext(テキストファイル),executable(実行ファイル)など、実行結果の表示が変わります。下は、helloという実行ファイルをfileコマンドに渡した場合の出力結果です。


file hello
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=288f38508a937a5ded66dcc5201e88d34e13a90b, not stripped

cat

ファイルの内容を表示したり、連結したりするときに使われるコマンドです。

cat <ファイルのパス>

catはcatenate(連結する)の略でしたが、今ではファイルの内容の表示に使われるのが一般的です。以下は、helloと書き込まれたファイルfile1の内容を表示させる例です。

cat file1
hello

less

ファイルの内容を閲覧するためのコマンドです。ファイルの内容を閲覧するという点では、catコマンドより高機能で、スクロール、ページングができたり、検索ができたりします。

less <ファイルのパス>

jkで上下にスクロールすることができ、Ctrl + Vで1ページ進む、Alt + Vで1ページ戻ることができます。ggでファイルの先頭に、Shift + G でファイルの最高日に移動することができます。qで終了します。

history

今迄シェルに打ち込んできたコマンドの履歴を表示させることができます。デフォルトで1000件表示されます。

history
1  LANG=C xdg-user-dirs-update
2  ls
3  LANG=C xdg-user-dirs-update
4  ls
5  exit
6  xinput --list
...

cp

ファイルやディレクトリのコピーをします。

cp <コピー元のパス> <コピー先のパス>

<コピー先のファイルのパス>にディレクトリが指定されていた場合、そのディレクトリにコピー元のファイル名と同名のファイルを作成します。

以下の例では、カレントディレクトリのaというファイルをbという名前でカレントディレクトリにコピーします。

cp a b

mv

ファイルやディレクトリの名前の変更や、移動に用いるコマンドです。

mv <変更元のパス> <変更先のパス>

以下の例では、カレントディレクトリにあるaというファイルを、bという名前で/usr/binディレクトリに移動します。

mv a /usr/bin/a

mkdir

ディレクトリを作成します。

mkdir <ディレクトリを作成するパス>

以下の例では、カレントディレクトリにdirというディレクトリを作成しています。

mkdir dir

rm

ファイルの削除に使うコマンドです。

rm <ファイルのパス>

rオプションを使うことでディレクトリの削除もすることができます。この場合、fオプション(エラーメッセージを表示しない)も一緒に使うのが一般的です。

mkdir -rf <ディレクトリのパス>

find

ファイルの検索に使います。以下の例では、/homeディレクトリにあるpuppies.jpgという名前のファイルを探します。

find /home -name puppies.jpg

ディレクトリの検索もできます。以下の例では、/homeディレクトリにある、MyFolderという名前のディレクトリを検索します。

find /home -type d -name MyFolder

man

今までのコマンドの紹介では紹介しきれていないコマンドの機能がたくさんあります。コマンドの詳細が知りたい時はmanコマンドを使いましょう。

man <コマンド名>

ページの移動方法はlessコマンドといっしょです。qキーを押すことで終了することができます。

パイプ

パイプ( | )は、コマンドの結果を次のコマンドの引数として渡します。例えば、grepコマンドという、引数にファイルをとり、条件に一致する文字列を含む行のみを出力するコマンドがあります。これをhistoryコマンドとつなげることで、過去に打ち込んだコマンドから条件に一致するコマンドを抜き出すことができます。

history | grep "ls"

上の例では、lsのみを表示しています。あのコマンド何だったかなって時に使うと便利です。

リダイレクト

コマンドに与える入力や、結果の出力を、キーボードや、ディスプレイ以外にすることができます。出力を保存したいなって時や、とってあるファイルをコマンドに使いたいなって時に使います。以下の例は、lsコマンドの結果をaというファイルに保存しています。

ls > a

aに結果を入れたので、ディスプレイには何も表示されません。

まとめ

  • いろんなコマンドがある。
  • 使い方がよくわからないコマンドはmanコマンドで使い方を調べる
  • それでも分からない場合はググる

おまけ

このサイトは備忘録です。私の実際の学習のメモはここにあるので、よければどうぞ。拙いながら、全部英語で頑張って書いてます。が、見られることは意識して書いていないので、とても見づらいです(笑)。プルリクエストを送ってくださると嬉しいです。

次回は、今回に引き続き使いそうなコマンドの列挙と、vimの簡単な使い方についてやります。