サンプルセッション (参考: 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)