神戸学院大学 経営学部 林坂ゼミ

CLI 入門トップページ

« 戻る 次へ »

Bash

ファイルとディレクトリの操作

ディレクトリの移動 (cd)

ディレクトリを移動するには「cd」(Change Directory / Change the shell working Directory) コマンドを使います.ルートディレクトリ (/) に移動するには次のようなコマンドを入力します.このとき,ディレクトリ名の表示が変化したことにも注意してください.

rinsaka@ubuntu:~$ cd / ⏎
rinsaka@ubuntu:/$

ルートディレクトリにあるファイルやディレクトリを一覧で表示します.その中に「home」ディレクトリがあることを確認します.

rinsaka@ubuntu:/$ ls ⏎
bin                dev   lib64              mnt   run                 srv  var
bin.usr-is-merged  etc   lib.usr-is-merged  opt   sbin                sys
boot               home  lost+found         proc  sbin.usr-is-merged  tmp
cdrom              lib   media              root  snap                usr
rinsaka@ubuntu:/$

「home」ディレクトリに移動して,その中身を確認します.するとユーザ名のディレクトリが一つだけ確認できました.(もちろん環境によって異なります.)なお,「cd h」だけ入力したあと,tab キーを押すことでファイル名やディレクトリ名を補完することができます.

rinsaka@ubuntu:/$ cd home ⏎
rinsaka@ubuntu:/home$ ls ⏎
rinsaka

自分のホームディレクトリに移動し,ファイルやディレクトリの一覧を確認します.

rinsaka@ubuntu:/home$ cd rinsaka ⏎
rinsaka@ubuntu:~$ ls ⏎
Documents  public_html
rinsaka@ubuntu:~$

さらに「Documents」ディレクトリに移動します.なお,「Documents/」のように「/」を付けても構いません.

rinsaka@ubuntu:~$ cd Documents/ ⏎
rinsaka@ubuntu:~/Documents$ ls ⏎
rinsaka@ubuntu:~/Documents$

ワーキングディレクトリを確認してみます.

rinsaka@ubuntu:~/Documents$ pwd ⏎
/home/rinsaka/Documents
rinsaka@ubuntu:~/Documents$

もう一度,ルートディレクトリに移動してからワーキングディレクトリを確認します.

rinsaka@ubuntu:~/Documents$ cd / ⏎
rinsaka@ubuntu:/$ pwd ⏎
/
rinsaka@ubuntu:/$

cd」コマンドにディレクトリ名を指定しなければホームディレクトリへ一気に移動できます.

rinsaka@ubuntu:/$ cd ⏎
rinsaka@ubuntu:~$ pwd ⏎
/home/rinsaka
rinsaka@ubuntu:~$

再び,ルートディレクトリに戻ってから,今度はホームディレクトリ内の「Documents」ディレクトリに戻ります.このとき,「~」がホームディレクトリを意味していることに注意してください.

rinsaka@ubuntu:~$ cd / ⏎
rinsaka@ubuntu:/$ cd ~/Documents ⏎
rinsaka@ubuntu:~/Documents$

一つ上の階層に移動するには「..」を利用します.

rinsaka@ubuntu:~/Documents$ cd .. ⏎
rinsaka@ubuntu:~$

目次に戻る

ファイルやディレクトリの一覧表示 (ls)

次に,ファイルやディレクトリの一覧表示について,様々な表示方法について説明します.まず,「ls」だけで実行します.このとき,表示された名前が,ファイル名なのか,ディレクトリ名なのかは判別できません.

rinsaka@ubuntu:~$ ls ⏎
Documents  public_html
rinsaka@ubuntu:~$

-l」オプションを付与すると,long list format で詳細情報を表示できます.

rinsaka@ubuntu:~$ ls -l ⏎
total 8
drwx------ 2 rinsaka rinsaka 4096 Aug  3 01:37 Documents
drwxrwxr-x 3 rinsaka rinsaka 4096 Aug  3 01:44 public_html
rinsaka@ubuntu:~$

なお,「drwx------」の「d」は「Documents」がディレクトリであることを意味し,「rwx」や「---」の3つのブロックは「所有者 (owner)」,「グループ (group)」,「他人 (others)」それぞれに読み取り権限 (Read),書き込み権限 (Write),実行権限 (eXecute) が与えられているかどうかを意味します.

つまり,上の結果では,「Documents」ディレクトリは所有者「rinsaka」にだけ読み取り,書き込み,実行の権限が与えられていることを意味し,「public_html」ディレクトリは所有者に全ての権限がある一方で,グループや他人には読み取りと実行(ここでは,このディレクトリの中に移動できる)権限だけが設定されていることが分かります.

次に隠しファイルも含めて表示するには「-a」を付与します.なお,Utuntu や macOS などの UNIX 系 OS ではドット (.) で始まるファイルやディレクトリが隠しファイル,隠しディレクトリです.

rinsaka@ubuntu:~$ ls -a ⏎
.   .bash_history  .bashrc  .config    .profile     .ssh
..  .bash_logout   .cache   Documents  public_html  .viminfo
rinsaka@ubuntu:~$

隠しファイル/ディレクトリも含めて詳細情報を表示します.各ファイルやディレクトリにどのようなアクセス権限が設定されているか注意深く観察してください.

rinsaka@ubuntu:~$ ls -la ⏎
total 48
drwxr-x--- 7 rinsaka rinsaka 4096 Aug  3 01:19 .
drwxr-xr-x 3 root    root    4096 Aug  3  2025 ..
-rw------- 1 rinsaka rinsaka 1060 Aug  3 01:34 .bash_history
-rw-r--r-- 1 rinsaka rinsaka  220 Mar 31  2024 .bash_logout
-rw-r--r-- 1 rinsaka rinsaka 3771 Mar 31  2024 .bashrc
drwx------ 2 rinsaka rinsaka 4096 Aug  3 01:00 .cache
drwx------ 3 rinsaka rinsaka 4096 Aug  3 01:19 .config
drwx------ 2 rinsaka rinsaka 4096 Aug  3 01:37 Documents
-rw-r--r-- 1 rinsaka rinsaka  807 Mar 31  2024 .profile
drwxrwxr-x 3 rinsaka rinsaka 4096 Aug  3 01:44 public_html
drwx------ 2 rinsaka rinsaka 4096 Aug  3  2025 .ssh
-rw------- 1 rinsaka rinsaka 1509 Aug  3 01:05 .viminfo
rinsaka@ubuntu:~$

ファイルサイズを人間にとってわかりやすい単位で表示するには「-h」オプションも付与します.

rinsaka@ubuntu:~$ ls -lah ⏎
total 48K
drwxr-x--- 7 rinsaka rinsaka 4.0K Aug  3 01:19 .
drwxr-xr-x 3 root    root    4.0K Aug  3  2025 ..
-rw------- 1 rinsaka rinsaka 1.1K Aug  3 01:34 .bash_history
-rw-r--r-- 1 rinsaka rinsaka  220 Mar 31  2024 .bash_logout
-rw-r--r-- 1 rinsaka rinsaka 3.7K Mar 31  2024 .bashrc
drwx------ 2 rinsaka rinsaka 4.0K Aug  3 01:00 .cache
drwx------ 3 rinsaka rinsaka 4.0K Aug  3 01:19 .config
drwx------ 2 rinsaka rinsaka 4.0K Aug  3 01:37 Documents
-rw-r--r-- 1 rinsaka rinsaka  807 Mar 31  2024 .profile
drwxrwxr-x 3 rinsaka rinsaka 4.0K Aug  3 01:44 public_html
drwx------ 2 rinsaka rinsaka 4.0K Aug  3  2025 .ssh
-rw------- 1 rinsaka rinsaka 1.5K Aug  3 01:05 .viminfo
rinsaka@ubuntu:~$

サブディレクトリを再帰的に走査して全てのディレクトリ/ファイルを表示するには「-R」オプションを付与します.

rinsaka@ubuntu:~$ ls -R ⏎
.:
Documents  public_html

./Documents:

./public_html:
css  index.html

./public_html/css:
style.css
rinsaka@ubuntu:~$

目次に戻る

ディレクトリの作成 (mkdir)

ディレクトリを作成するためのコマンドは「mkdir」(MaKe DIRectory) です.まず,「Documents」ディレクトリに移動して,その中身を確認しておきます.

rinsaka@ubuntu:~$ cd Documents/ ⏎
rinsaka@ubuntu:~/Documents$ ls ⏎
rinsaka@ubuntu:~/Documents$

次のコマンドで「work」ディレクトリを作成します.作成できたことも確認しておきます.

rinsaka@ubuntu:~/Documents$ mkdir work ⏎
rinsaka@ubuntu:~/Documents$ ls -l ⏎
total 4
drwxrwxr-x 2 rinsaka rinsaka 4096 Aug  3 01:46 work
rinsaka@ubuntu:~/Documents$

「work」ディレクトリに移動して中身を確認します.まだファイルは存在していません.

rinsaka@ubuntu:~/Documents$ cd work ⏎
rinsaka@ubuntu:~/Documents/work$ ls -l ⏎
total 0
rinsaka@ubuntu:~/Documents/work$

目次に戻る

ファイルの作成 (touch)

空のファイルを作成するためのコマンドは「touch」です.例えば,「test1.txt」ファイルを作成します.ファイルサイズが 0 であることも確認してください.

rinsaka@ubuntu:~/Documents/work$ touch test1.txt ⏎
rinsaka@ubuntu:~/Documents/work$ ls -l ⏎
total 0
-rw-rw-r-- 1 rinsaka rinsaka 0 Aug  3 01:47 test1.txt
rinsaka@ubuntu:~/Documents/work$

目次に戻る

ファイルのコピー (cp)

ファイルのコピーは 「cp」(CoPy) コマンドで実行できます.次の通り,「コピー元」と「コピー先」のパス名を指定します.これによって,「test2.txt」ファイルが作成されました.

rinsaka@ubuntu:~/Documents/work$ cp test1.txt test2.txt ⏎
rinsaka@ubuntu:~/Documents/work$ ls -l ⏎
total 0
-rw-rw-r-- 1 rinsaka rinsaka 0 Aug  3 01:47 test1.txt
-rw-rw-r-- 1 rinsaka rinsaka 0 Aug  3 01:48 test2.txt
rinsaka@ubuntu:~/Documents/work$

同じように「test3.txt」というコピーも作成します.

rinsaka@ubuntu:~/Documents/work$ cp test1.txt test3.txt ⏎
rinsaka@ubuntu:~/Documents/work$ ls -l ⏎
total 0
-rw-rw-r-- 1 rinsaka rinsaka 0 Aug  3 01:47 test1.txt
-rw-rw-r-- 1 rinsaka rinsaka 0 Aug  3 01:48 test2.txt
-rw-rw-r-- 1 rinsaka rinsaka 0 Aug  3 01:48 test3.txt
rinsaka@ubuntu:~/Documents/work$

目次に戻る

ファイルの移動・ファイル名の変更 (mv)

ファイルの移動やファイル名の変更には「mv」(MoVe) コマンドを利用します.まず,一つ上の階層「..」(つまり,Documentsディレクトリ)には「work」ディレクトリだけがあり,その中に3個のテキストファイルがあることが分かります.

rinsaka@ubuntu:~/Documents/work$ ls .. ⏎
work
rinsaka@ubuntu:~/Documents/work$ ls ⏎
test1.txt  test2.txt  test3.txt
rinsaka@ubuntu:~/Documents/work$

ファイル「test3.txt」を一つ上の階層へ移動します.その後,移動できていることを確認します.

rinsaka@ubuntu:~/Documents/work$ mv test3.txt ../ ⏎
rinsaka@ubuntu:~/Documents/work$ ls .. ⏎
test3.txt  work
rinsaka@ubuntu:~/Documents/work$ ls ⏎
test1.txt  test2.txt
rinsaka@ubuntu:~/Documents/work$

今度は,一つ上のディレクトリにある「test3.txt」をカレントディレクトリ (./) に移動します.ここで,./ は現在のディレクトリ(カレントディレクトリ)を意味することに注意してください.

rinsaka@ubuntu:~/Documents/work$ mv ../test3.txt ./ ⏎
rinsaka@ubuntu:~/Documents/work$ ls .. ⏎
work
rinsaka@ubuntu:~/Documents/work$ ls ⏎
test1.txt  test2.txt  test3.txt
rinsaka@ubuntu:~/Documents/work$

ファイル名を変更する際にも「mv」コマンドを利用します.

rinsaka@ubuntu:~/Documents/work$ mv test3.txt test30.txt ⏎
rinsaka@ubuntu:~/Documents/work$ ls
test1.txt  test2.txt  test30.txt
rinsaka@ubuntu:~/Documents/work$

目次に戻る

ディレクトリのコピー (cp -R)

次に,ディレクトリのコピーを実行しますが,その前にディレクトリとその中のファイルの構造を確認しておきます.

rinsaka@ubuntu:~/Documents/work$ cd .. ⏎
rinsaka@ubuntu:~/Documents$ ls ⏎
work
rinsaka@ubuntu:~/Documents$ ls -R ⏎
.:
work

./work:
test1.txt  test2.txt  test30.txt
rinsaka@ubuntu:~/Documents$

「work」ディレクトリ全体をコピーして「work2」を作成します.ディレクトリ全体をコピーするには「-R」オプションが必要であることに注意してください.

rinsaka@ubuntu:~/Documents$ cp -R work work2 ⏎
rinsaka@ubuntu:~/Documents$ ls ⏎
work  work2
rinsaka@ubuntu:~/Documents$ ls -R ⏎
.:
work  work2

./work:
test1.txt  test2.txt  test30.txt

./work2:
test1.txt  test2.txt  test30.txt
rinsaka@ubuntu:~/Documents$

目次に戻る

ファイルやディレクトリの削除とワイルドカード

削除のコマンドは「rm」(ReMove) です.まず,「work」ディレクトリに移動して,その中にテキストファイルが3つあることを確認します.

rinsaka@ubuntu:~/Documents$ cd work ⏎
rinsaka@ubuntu:~/Documents/work$ ls ⏎
test1.txt  test2.txt  test30.txt
rinsaka@ubuntu:~/Documents/work$

ワイルドカード「*」は「0文字以上の任意の文字列」を意味します.次の通り「*.txt」と指定すると,「.txt」で終わる名前のファイル(またはディレクトリ)が該当することから,結果的に全てのファイルを削除することができます.

rinsaka@ubuntu:~/Documents/work$ rm *.txt ⏎
rinsaka@ubuntu:~/Documents/work$ ls ⏎
rinsaka@ubuntu:~/Documents/work$

次は「work2」ディレクトリに移動して,やはり3つのファイルが存在することを確認します.

rinsaka@ubuntu:~/Documents/work$ cd ../work2 ⏎
rinsaka@ubuntu:~/Documents/work2$ ls ⏎
test1.txt  test2.txt  test30.txt
rinsaka@ubuntu:~/Documents/work2$

ワイルドカード「?」は「任意の1文字」を意味します.したがって,「test1.txt」と「test2.txt」はまとめて削除されますが,「test30.txt」は削除されません.

rinsaka@ubuntu:~/Documents/work2$ rm test?.txt ⏎
rinsaka@ubuntu:~/Documents/work2$ ls ⏎
test30.txt
rinsaka@ubuntu:~/Documents/work2$

上のディレクトリに戻ります.

rinsaka@ubuntu:~/Documents/work2$ cd .. ⏎
rinsaka@ubuntu:~/Documents$ ls ⏎
work  work2
rinsaka@ubuntu:~/Documents$

ディレクトリを削除するにはその中に保存されたファイルもまとめて削除しなければなりません.このためには「-r」オプションを付与します.これで「work2」ディレクトリが削除できました.

rinsaka@ubuntu:~/Documents$ rm -r work2 ⏎
rinsaka@ubuntu:~/Documents$ ls ⏎
work
rinsaka@ubuntu:~/Documents$

目次に戻る

エコーとリダイレクト

echo」は指定した文字列を画面に表示するためのコマンドです.

rinsaka@ubuntu:~/Documents$ echo "Hello Ubuntu" ⏎
Hello Ubuntu
rinsaka@ubuntu:~/Documents$

「work」ディレクトリに移動し,ファイルが存在しないことを確認しておきます.

rinsaka@ubuntu:~/Documents$ cd work/ ⏎
rinsaka@ubuntu:~/Documents/work$ ls ⏎
rinsaka@ubuntu:~/Documents/work$

リダイレクトを用いると画面に表示される結果を画面ではなくファイルに出力することができます.次のように「>」の後に出力したいファイル名を指定します.

rinsaka@ubuntu:~/Documents/work$ echo "Hello Ubuntu" > test1.txt ⏎
rinsaka@ubuntu:~/Documents/work$

ファイルが作成されていることを確認します.

rinsaka@ubuntu:~/Documents/work$ ls -l ⏎
total 4
-rw-rw-r-- 1 rinsaka rinsaka 13 Aug  3 01:58 test1.txt
rinsaka@ubuntu:~/Documents/work$

cat」(conCATenate) コマンドでテキストファイルの内容を画面に表示することができます.

rinsaka@ubuntu:~/Documents/work$ cat test1.txt ⏎
Hello Ubuntu
rinsaka@ubuntu:~/Documents/work$

>>」によってリダイレクトすると,ファイルに追記されます.たとえば,ホームディレクトリ (~) 以下の全てのファイル/ディレクトリを再帰的に取得して,ファイル「test1.txt」に追記します.

rinsaka@ubuntu:~/Documents/work$ ls -R ~ >> test1.txt ⏎
rinsaka@ubuntu:~/Documents/work$ cat test1.txt ⏎
Hello Ubuntu
/home/rinsaka:
Documents
public_html

/home/rinsaka/Documents:
work

/home/rinsaka/Documents/work:
test1.txt

/home/rinsaka/public_html:
css
index.html

/home/rinsaka/public_html/css:
style.css
rinsaka@ubuntu:~/Documents/work$

さらにルートディレクトリのサブディレクトリやファイルを追記します.

rinsaka@ubuntu:~/Documents/work$ ls / >> test1.txt ⏎
rinsaka@ubuntu:~/Documents/work$ cat test1.txt ⏎
Hello Ubuntu
/home/rinsaka:
Documents
public_html

/home/rinsaka/Documents:
work

/home/rinsaka/Documents/work:
test1.txt

/home/rinsaka/public_html:
css
index.html

/home/rinsaka/public_html/css:
style.css
bin
bin.usr-is-merged
boot
cdrom
dev
etc
home
lib
lib64
lib.usr-is-merged
lost+found
media
mnt
opt
proc
root
run
sbin
sbin.usr-is-merged
snap
srv
sys
tmp
usr
var
rinsaka@ubuntu:~/Documents/work$

目次に戻る

ファイル内容の表示 (cat / head / tail)

上で利用した「cat」コマンドの利用方法をもう少し詳しく説明します.まず,「test1.txt」は1画面で収まらない行数があるので,一気にスクロールされて表示が流れてしまいます.

rinsaka@ubuntu:~/Documents/work$ cat test1.txt ⏎
Hello Ubuntu
/home/rinsaka:
Documents
public_html

/home/rinsaka/Documents:
work

/home/rinsaka/Documents/work:
test1.txt

/home/rinsaka/public_html:
css
index.html

/home/rinsaka/public_html/css:
style.css
bin
bin.usr-is-merged
boot
cdrom
dev
etc
home
lib
lib64
lib.usr-is-merged
lost+found
media
mnt
opt
proc
root
run
sbin
sbin.usr-is-merged
snap
srv
sys
tmp
usr
var
rinsaka@ubuntu:~/Documents/work$

行番号表示を表示するには「-n」オプションを追加します.

rinsaka@ubuntu:~/Documents/work$ cat -n test1.txt ⏎
     1  Hello Ubuntu
     2  /home/rinsaka:
     3  Documents
     4  public_html
     5
     6  /home/rinsaka/Documents:
     7  work
     8
     9  /home/rinsaka/Documents/work:
    10  test1.txt
    11
    12  /home/rinsaka/public_html:
    13  css
    14  index.html
    15
    16  /home/rinsaka/public_html/css:
    17  style.css
    18  bin
    19  bin.usr-is-merged
    20  boot
    21  cdrom
    22  dev
    23  etc
    24  home
    25  lib
    26  lib64
    27  lib.usr-is-merged
    28  lost+found
    29  media
    30  mnt
    31  opt
    32  proc
    33  root
    34  run
    35  sbin
    36  sbin.usr-is-merged
    37  snap
    38  srv
    39  sys
    40  tmp
    41  usr
    42  var
rinsaka@ubuntu:~/Documents/work$

ファイルの先頭だけを表示するには「head」コマンドを使用します.行数を指定しなければ,先頭から10行が表示されます.

rinsaka@ubuntu:~/Documents/work$ head test1.txt ⏎
Hello Ubuntu
/home/rinsaka:
Documents
public_html

/home/rinsaka/Documents:
work

/home/rinsaka/Documents/work:
test1.txt
rinsaka@ubuntu:~/Documents/work$

-n 行数」のように表示する行数を制御できます.

rinsaka@ubuntu:~/Documents/work$ head -n 3 test1.txt ⏎
Hello Ubuntu
/home/rinsaka:
Documents
rinsaka@ubuntu:~/Documents/work$

ファイルの末尾を表示するには「tail」コマンドが利用できます.

rinsaka@ubuntu:~/Documents/work$ tail test1.txt ⏎
root
run
sbin
sbin.usr-is-merged
snap
srv
sys
tmp
usr
var
rinsaka@ubuntu:~/Documents/work$

同様に「-n 3」のように表示したい行数を指定できます.

rinsaka@ubuntu:~/Documents/work$ tail -n 3 test1.txt ⏎
tmp
usr
var
rinsaka@ubuntu:~/Documents/work$

目次に戻る

パイプ(パイプライン)

パイプを使うとあるコマンドの結果を次のコマンドに渡すことができます.例えば,「cat -n」で行番号を付けて表示した結果を「head」に渡して,先頭から10行だけ表示させることなどができます.

rinsaka@ubuntu:~/Documents/work$ cat -n test1.txt | head ⏎
     1  Hello Ubuntu
     2  /home/rinsaka:
     3  Documents
     4  public_html
     5
     6  /home/rinsaka/Documents:
     7  work
     8
     9  /home/rinsaka/Documents/work:
    10  test1.txt
rinsaka@ubuntu:~/Documents/work$

more」を利用すると1画面ずつ表示することができます.このとき,スペースキーで次の画面に移動でき,表示を終了するには q を押します.

rinsaka@ubuntu:~/Documents/work$ cat test1.txt | more ⏎
Hello Ubuntu
/home/rinsaka:
Documents
public_html

/home/rinsaka/Documents:
work

/home/rinsaka/Documents/work:
test1.txt

/home/rinsaka/public_html:
css
index.html

/home/rinsaka/public_html/css:
style.css
bin
bin.usr-is-merged
boot
cdrom
dev
etc
home
--More--

more」では下方向にだけスクロールできましたが,「less」では上下方向にスクロール可能です.スペースキーで1画面スクロールし,上下のカーソルキーや jk で1行ずつ上下にスクロールできます.

rinsaka@ubuntu:~/Documents/work$ cat test1.txt | less ⏎
Hello Ubuntu
/home/rinsaka:
Documents
public_html

/home/rinsaka/Documents:
work

/home/rinsaka/Documents/work:
test1.txt

/home/rinsaka/public_html:
css
index.html

/home/rinsaka/public_html/css:
style.css
bin
bin.usr-is-merged
boot
cdrom
dev
etc
home
: 
rinsaka@ubuntu:~/Documents/work$

もちろん行番号を表示しながら「less」表示させることもできます.

rinsaka@ubuntu:~/Documents/work$ cat -n test1.txt | less ⏎
     1  Hello Ubuntu
     2  /home/rinsaka:
     3  Documents
     4  public_html
     5
     6  /home/rinsaka/Documents:
     7  work
     8
     9  /home/rinsaka/Documents/work:
    10  test1.txt
    11
    12  /home/rinsaka/public_html:
    13  css
    14  index.html
    15
    16  /home/rinsaka/public_html/css:
    17  style.css
    18  bin
    19  bin.usr-is-merged
    20  boot
    21  cdrom
    22  dev
    23  etc
    24  home
:

目次に戻る

文字列の検索 (grep)

テキストファイル内から文字列を検索するには「grep」コマンドを利用します.「test1.txt」ファイル内に「Hello」という文字列がある行だけを(行番号を付与して)出力します.

rinsaka@ubuntu:~/Documents/work$ cat -n test1.txt | grep Hello ⏎
     1  Hello Ubuntu
rinsaka@ubuntu:~/Documents/work$

grep」の検索は大文字と小文字を区別します.したがって,「hello」で検索してもヒットしません.

rinsaka@ubuntu:~/Documents/work$ cat -n test1.txt | grep hello ⏎
rinsaka@ubuntu:~/Documents/work$

大文字・小文字の違いを無視して検索したい場合は,「-i」オプションを付与します.すると「hello」でも検索できました.

rinsaka@ubuntu:~/Documents/work$ cat -n test1.txt | grep -i hello ⏎
     1  Hello Ubuntu
rinsaka@ubuntu:~/Documents/work$

もちろんファイル全体を検索するので,ヒットした行がすべて表示されます.たとえば「home」で検索すると次のような結果になります.

rinsaka@ubuntu:~/Documents/work$ cat -n test1.txt | grep home ⏎
     2  /home/rinsaka:
     6  /home/rinsaka/Documents:
     9  /home/rinsaka/Documents/work:
    12  /home/rinsaka/public_html:
    16  /home/rinsaka/public_html/css:
    24  home
rinsaka@ubuntu:~/Documents/work$

なお,「grep」は様々な場面で利用できる検索コマンドです.例えば「history」コマンドの結果から検索するようなこともよくあることでしょう.

rinsaka@ubuntu:~$ history | grep pwd ⏎
    1  pwd
    4  man pwd
    5  pwd --help
    9  pwd
   19  pwd
   21  pwd
   23  pwd
  112  history | grep pwd
rinsaka@ubuntu:~$

目次に戻る

行数の取得 (wc)

テキストファイルの行数などの情報を取得するには「wc」コマンドを利用します.

rinsaka@ubuntu:~/Documents/work$ wc test1.txt ⏎
 42  39 369 test1.txt
rinsaka@ubuntu:~/Documents/work$

-l」オプションを付けると,行数だけが表示されます.

rinsaka@ubuntu:~/Documents/work$ wc -l test1.txt ⏎
42 test1.txt
rinsaka@ubuntu:~/Documents/work$

-w」オプションを付けると,単語数だけが表示されます.

rinsaka@ubuntu:~/Documents/work$ wc -w test1.txt ⏎
39 test1.txt
rinsaka@ubuntu:~/Documents/work$

-c」オプションを付けるとファイルサイズ(バイト数)だけが表示されます.

rinsaka@ubuntu:~/Documents/work$ wc -c test1.txt ⏎
369 test1.txt
rinsaka@ubuntu:~/Documents/work$

目次に戻る