サンプルセッション (参考: Vine Linux 上の bash での実行例です)

 gedit をバックグラウンドで起動する。
 [ohsaki@vine ~]$ gedit &
 [1] 2207
 ↑プロセス ID が表示されている。
 
 gedit をフォアグラウンドプロセスにする。
 [ohsaki@vine ~]$ fg
 gedit
 
 C-z を押すとプロセスが停止する。
 [1]+  Stopped                 gedit
 
 gedit をフォアグラウンドプロセスとして再開する。
 [ohsaki@vine ~]$ fg
 gedit
 
 もう一度 C-z を押してプロセスを停止する。
 [1]+  Stopped                 gedit
 
 今度はバックグラウンドプロセスとして実行を継続する。
 [ohsaki@vine ~]$ bg
 [1]+ gedit &
 
 実行中のプロセス一覧を出力する。
 [ohsaki@vine ~]$ ps
   PID TTY          TIME CMD
  2161 pts/0    00:00:00 bash
  2185 pts/0    00:00:00 dbus-launch
  2211 pts/0    00:00:00 gedit
  2215 pts/0    00:00:00 ps
 
 gedit の PID (プロセス ID) は 2211 なので、これを kill する。
 [ohsaki@vine ~]$ kill 2211
 
 [1]+  Terminated              gedit
 ↑ gedit のプロセスが終了した。
 
 長いファイルの内容を確認するには head コマンドが便利。先頭の 10 行が表示される。
 [ohsaki@vine ~]$ head /etc/services 
 # /etc/services:
 # $Id: index.pod,v 1.4 2021/10/11 06:51:16 ohsaki Exp ohsaki $
 #
 # Network services, Internet style
 # IANA services version: last updated 2010-11-09
 #
 # Note that it is presently the policy of IANA to assign a single well-known
 # port number for both TCP and UDP; hence, most entries here have two entries
 # even if the protocol doesn't support UDP operations.
 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports
 
 同じく tail コマンドも便利。末尾の 10 行が表示される。
 [ohsaki@vine ~]$ tail /etc/services 
 nimgtw          48003/udp               # Nimbus Gateway
 3gpp-cbsp       48049/tcp               # 3GPP Cell Broadcast Service Protocol
 isnetserv       48128/tcp               # Image Systems Network Services
 isnetserv       48128/udp               # Image Systems Network Services
 blp5            48129/tcp               # Bloomberg locator
 blp5            48129/udp               # Bloomberg locator
 com-bardac-dw   48556/tcp               # com-bardac-dw
 com-bardac-dw   48556/udp               # com-bardac-dw
 iqobject        48619/tcp               # iqobject
 iqobject        48619/udp               # iqobject
 
 特定の行だけ出力するには grep コマンドが便利。http を含む行だけ抜き出して表示する。
 [ohsaki@vine ~]$ grep '^http' /etc/services 
 http            80/tcp          www www-http    # WorldWideWeb HTTP
 http            80/udp          www www-http    # HyperText Transfer Protocol
 http            80/sctp                         # HyperText Transfer Protocol
 https           443/tcp                         # http protocol over TLS/SSL
 https           443/udp                         # http protocol over TLS/SSL
 https           443/sctp                        # http protocol over TLS/SSL
 http-mgmt       280/tcp                 # http-mgmt
 http-mgmt       280/udp                 # http-mgmt
 http-rpc-epmap  593/tcp                 # HTTP RPC Ep Map
 http-rpc-epmap  593/udp                 # HTTP RPC Ep Map
 httpx           4180/tcp                # HTTPX
 httpx           4180/udp                # HTTPX
 http-wmap       8990/tcp                # webmail HTTP service
 http-wmap       8990/udp                # webmail HTTP service
 https-wmap      8991/tcp                # webmail HTTPS service
 https-wmap      8991/udp                # webmail HTTPS service
 
 現在の作業ディレクトリを表示する。
 [ohsaki@vine ~]$ pwd
 /home/ohsaki
 
 新しくディレクトリを作成する。
 [ohsaki@vine ~]$ mkdir work
 
 work ディレクトリに移動する。
 [ohsaki@vine ~]$ cd work
 
 エディタでファイルを新規に作成する。
 [ohsaki@vine work]$ gedit sample.c
 
 作成したファイルの中身を表示する。
 [ohsaki@vine work]$ cat sample.c
 #include <stdio.h>
 
 main(int argc, char **argv)
 {
   printf ("Hello, world!\n");
 }
 
 ファイルの一覧を表示する。
 [ohsaki@vine ~]$ ls work
 sample.c
 
 作成したファイルを別名でコピーする。
 [ohsaki@vine work]$ cp sample.c sample.c.bak
 
 コピーできているか確認する。
 [ohsaki@vine work]$ ls
 sample.c  sample.c.bak
 
 コピーを削除する。
 [ohsaki@vine work]$ rm sample.c.bak
 
 gcc に -Wall (警告を表示する) オプションをつけてコンパイルする。
 [ohsaki@vine work]$ gcc -Wall -o sample sample.c
 sample.c: In function 'main':
 sample.c:5: warning: control reaches end of non-void function
 ↑ 警告が表示される。見ただけでは区別できないが、標準エラー出力に出力されている。
 
 バックグラウンドでコンパイルし、標準エラー出力をファイル (ログファイル) にリダイレクトする。
 [ohsaki@vine work]$ gcc -Wall -o sample sample.c 2>gcc-output.log &
 [1] 2262
 [1]+  Done                    gcc -Wall -o sample sample.c 2> gcc-output.log
 ↑ 2262 が gcc のプロセス ID。すぐに終了する。
 
 ログファイルの中身を確認する。
 [ohsaki@vine work]$ cat gcc-output.log
 sample.c: In function 'main':
 sample.c:5: warning: control reaches end of non-void function
 
 実行ファイルを起動してみる (フォアグラウンドプロセスとして起動)。
 [ohsaki@vine work]$ ./sample
 Hello, world!
 
 プログラムの出力をファイル output にダイレクトする。
 [ohsaki@vine work]$ ./sample >output
 ↑ リダイレクトしたので何も表示されない。
 
 ファイル output の中身を表示する。
 [ohsaki@vine work]$ cat output
 Hello, world!
 ↑ ちゃんと保存されている。
 
 [ohsaki@vine work]$ ls
 sample*  sample.c  
 ↑ ファイル名の末尾の * は実行ファイルであることを表している (ファイル名の一部ではない)
 
 実行ファイルを削除する。
 [ohsaki@vine work]$ rm sample
 
 削除されているか確認
 [ohsaki@vine work]$ ls
 sample.c  
 
 ソースコードも削除する。
 [ohsaki@vine work]$ rm sample.c
 
 一つ上のディレクトリに移動する。
 [ohsaki@vine work]$ cd ..
 
 現在の作業ディレクトリを表示する。
 [ohsaki@vine ~]$ pwd
 /home/ohsaki
 
 さきほど作成した work ディレクトリを削除する。
 [ohsaki@vine ~]$ rmdir work

Hiroyuki Ohsaki (ohsaki[atmark]lsnl.jp)