Linux

案件面談で「Linuxは使えますか?」といった質問が多いので、
AWS等で多少使ったことはありましたが、
いい機会だったので学んでみようと思いました。
例のごとく備忘録として記載しております。

Linuxとは


 LinuxとはOSの1つであり、ソースコードが公開されているオープンソースなソフトウェアのことです。
 オープンソースの特徴は以下の通りです。

 ・ ソースコードを入手できる
 ・ 自由に無料で配布できる
 ・ ソフトウェアの利用分野を差別しない
 ・ ソフトウェアを自由に改良できる
 ・ 一緒に配布される他のソフトウェアを制限しない


 Linuxは、厳密にはカーネル(OSの基本機能を実装したソフトウェア)のみを指すが、カーネルだけでは
 OSとして使い物にならないため、その他のソフトウェアを組み合わせて、1つのソフトウェアパッケージ
 として提供します。このソフトウェアパッケージのことをディストリビューションと言います。

Linuxディストリビューションの種類


 LinuxディストリビューションはRed Hat(レッドハット)系とDebian(デビアン)系の大きく2種類があります。

Red Hat系ディストリビューションは、Red Hat社が開発したRed Hat Linuxの流れを組んでおり以下のソフトウェアがある。

Red Hat系説明Red Hat Enterprise Linux

 RHELとも呼ばれる。Red Hat社が提供する企業向けディストリビューション。
 Red Hat社のサポートと合わせて有償で提供されている。

CentOS

 RHELとほぼ100%の互換性。Red Hat社のサポートはないが、RHEL互換という
 エンタープライズディストリビューションが無償で利用できることから人気が高い。

Fedora

 CentOS同様に無償で提供されている。最新のソフトウェアがすぐに導入される
 傾向にあり、個人ユーザに人気がある。Red Hat社がプロジェクトを支援している。


Debian系ディストリビューションは、以下のソフトウェアがあります。

Debian系説明Debian GNU/Linux

 
フリーソフトウェアのみを使用して作成されているディストリビューション。無償で提供。

Ubuntu


Debian GNU/Linuxから派生したディストリビューション。無償で提供。

Linux Mint 

Ubuntuをベースとして作成されたディストリビューション。マルチメディア関連が強化。

Edubuntu

 
Ubuntuから派生したディストリビューション。教育関連のソフトウェアが充実。

Linuxで使用する3種類のユーザー



 Linuxは、複数のユーザーが同時に1台のコンピュータを利用できるように作られているマルチユーザーのOSです。
Linuxユーザーには管理者ユーザー、一般ユーザー、システムユーザーの3種類があります。

3種類のユーザー

説明管理者ユーザー

 rootユーザまたはスーパーユーザーとも言われる。
管理者ユーザは、システム管理のためのあらゆるコマンドを実行できるユーザ。

管理者ユーザでの作業は最小限にする。

一般ユーザー

 システムを利用する側のアカウント。一般ユーザ―は自分専用のディレクトリが用意される。

 一般ユーザのーアカウントは、管理者ユーザーが作成することができる。

システムユーザー

 システムアカウントとも言われる。システム内部で特定のプログラムを実行するための専用アカウント。

プログラム実行用アカウントなので、ログイン用に使用してはいけない。

Linuxのディレクトリとは


 ファイルなどの情報を格納するものをディレクトリを呼びます。これはWindowsのフォルダに該当します。

 ディレクトリ内にはファイルだけではなくディレクトリも格納できます。ディレクトリ内のディレクトリはサブディレクトリと言います。

ディレクトリの親子関係は、以下の exam/lpic の「 / 」で区切り表します。

Linuxでは、ディレクトリが階層構造になっており、全てのディレクトリの頂点がルートディレクトリです。

ルートディレクトリは / と表します。先ほどのディレクトリの親子関係で使用した同じスラッシュ / ですが意味は違います。

絶対パスと相対パス


Linuxでは、ファイルの場所を表す方法として、
絶対パスと相対パスの2種類があります。

絶対パス 


ルートディレクトリ( / )を起点としてファイルの場所を表す方法

相対パス 


カレントディレクトリを起点としてファイルの場所を表す方法

絶対パスは、例外なく必ず「 / 」から始まります。

一方、相対パスは絶対パスとは異なり、現在の作業
ディレクトリであるカレントディレクトリの場所に
よりパスの表記が変わるという点を理解しましょう。
現在の作業ディレクトリがどこなのかはpwdコマンド
で確認することができます。

コマンドの引数に指定するファイル名などは、絶対
パスでも、相対パスでもどちらでも問題ありません。


コマンドの入力・実行


コマンドの入力方法は環境によって異なります。

CLI(Command Line Interface)環境であれば、ログインするとプロンプトが表示されるので、そのままコマンドを入力することができます。

プロンプトとは

$ ← プロンプト
「$」のことです。この記号の後ろにコマンドを入力します。

コマンドの実行

それでは実際にコマンドを実行してみましょう。

日付や時刻を表示するdateコマンドを入力・実行してみます。

$ ← プロンプト
の後ろにコマンドを入力し

$ date
Enterキーを押すと

$ date
2017年 10月 22日 日曜日 11:55:13 JST← 実行結果の実行結果が表示されます。
$ ← プロンプト(次のコマンドを入力できます。)

コマンドの入力・実行をまとめると……

プロンプトの後ろにコマンドを入力
Enterキーでコマンドを実行
コマンドの実行結果が表示
プロンプトが再度表示(次のコマンドを入力)
といった手順です。

コマンドラインの操作(カーソル移動・文字削除・補完)

コマンドラインの操作

コマンドラインのカーソル移動

キーボードの矢印キーでもカーソルを移動できますが、慣れてくるとショートカットキーの方が便利なので、少しずつ慣れていきましょう。

キー操作
Ctrl + a 行の先頭へ移動
Ctrl + b 左に1文字移動
Ctrl + e 行の最後へ移動
Ctrl + f 右に1文字移動

文字列の削除

文字列を削除するショートカットキーです。

キー操作
Ctrl + d カーソル上の文字を1文字削除
Ctrl + h カーソルの左側の文字を1文字削除
Ctrl + k カーソルより右側の文字列を削除
Ctrl + u カーソルより左側の文字列を削除
Ctrl + y 最後に削除した文字列を貼り付け(取り出し)

コマンドやファイル・ディレクト名を補完

コマンドラインには強力な補完機能が用意されています。補完機能とは入力した文字列に続くコマンドやファイル・ディレクトリなどのリストを表示する機能のことです。これが大変便利なので「Tab」キーを連打しましょう。

キー操作
Tab コマンドやファイル・ディレクト名を補完
Esc ? 補完候補のリストを表示
Esc / ファイル名として補完
Esc ! コマンド名として補完
Esc $ 変数名として補完

コマンドラインで「Tab」キーを使うと、コマンドやファイル・ディレクトリ名を補完することができます。

例えば、emacsコマンドを実行するときに補完機能を使ってみましょう。

$ ema ← Tabキーを押します
$ emacs ← コマンドが補完されます。
次はファイル名の補完をみてみましょう。候補が複数ある場合は、このように候補の一覧が表示されます。

$ vi file ← Tabキーを押します
file1 file2 file3
「Esc ?」キーを押して、補完候補のリストを表示してみましょう。

$ apt ← Esc ? キーを押すと以下のリストが表示されます
apt-cache  apt-get  aptitude
apt-cdrom  apt-key  aptitude-create-state-bundle
apt-config  apt-listchanges  aptitude-curses
apt-extracttemplates  apt-mark  aptitude-run-state-bundle
apt-ftparchive  apt-sortpkgs

その他の操作
キー 操作
Ctrl + c  コマンドなどの処理を中断
Ctrl + l  画面をクリア
Ctrl + z  処理を一時停止
一時停止した処理を再開する場合は「bgコマンド」「fgコマンド」を使います。

シャットダウン

Linuxをコマンドでシステムをシャットダウンする場合、「shutdown」というコマンドを使います。

大抵の場合は次のように入力します。

$ shutdown -h now

shutdownの後に「-h now」を付けることで、今すぐシャットダウンしてください! という命令になります。

書式
shutdown [オプション] 時間
指定した時間にshutdownコマンドの処理を実施します。
このコマンドを実行するには管理者(root)権限が必要です。

オプション
-f  再起動時に fsck を行いません。
-F  再起動時に fsck を行います。
-r  シャットダウン後にシステムを再起動します。
-h  シャットダウン後にシステムを停止します。
-k  シャットダウンは行わず、ログイン中のユーザーへメッセージを送ります。
-q  メッセージを表示しないようにします。

使用例
システムをすぐに(now)再起動します。

shutdown -r now

Broadcast message from root@**** (pts/0) (Sun Mar 30 14:42:17 2014):
The system is going down for reboot NOW!
システムをすぐに(now)停止します。

shutdown -h now

Broadcast message from root@**** (pts/0) (Sun Mar 30 14:43:46 2014):
The system is going down for system halt NOW!
システムを3分後に停止します。コマンドを実行するとシャットダウンへ向けてカウントダウンがはじまるので、シャットダウンを取り消したい場合は「Cntl」キーを押しながら「C」キーを押せば、OKです。

shutdown -h 3

Broadcast message from root@**** (pts/0) (Sun Mar 30 14:45:58 2014):
The system is going DOWN for system halt in 3 minutes!

Broadcast message from root@**** (pts/0) (Sun Mar 30 14:46:58 2014):
The system is going DOWN for system halt in 2 minutes!

Broadcast message from root@**** (pts/0) (Sun Mar 30 14:47:58 2014):
The system is going DOWN for system halt in 1 minute!

Broadcast message from root@**** (pts/0) (Sun Mar 30 14:48:58 2014):
The system is going down for system halt NOW!
システムを14時52分に停止します。

shutdown -h 14:52

Broadcast message from root@**** (pts/0) (Sun Mar 30 14:51:08 2014):
The system is going DOWN for system halt in 1 minute!

Broadcast message from root@**** (pts/0) (Sun Mar 30 14:52:06 2014):
The system is going down for system halt NOW!


※一般ユーザーで、shutdownコマンドを実行しようとすると……

$ shutdown -h now
User root is logged in on ttyS0.
...

そのため!

スーパーユーザーでシャットダウン
shutdownコマンドは管理者権限を持ったスーパーユーザー(rootユーザー)で実行する必要があります。

一般ユーザーからrootユーザーになるには、suコマンドを使います。

$ su
Password: ← rootのパスワードを入力

← プロンプトがこのようになれば、OK

shutdownコマンドを実行しましょう。

shutdown -h now

Session terminated, killing shell...
Session terminated, killing shell...[ OK ] Started Show Plymouth Power Off Screen.
[ OK ] Stopped Fail2Ban Service.
[ OK ] Stopped target Network.
...
このようにシャットダウンが実行されます。

あるいは!

一般ユーザーでシャットダウン
一般ユーザーのまま、shutdownコマンドを実行する場合!

sudoコマンドを使って(rootユーザーに成り代わることで)、shutdownコマンドを実行することができます。

$ sudo shutdown -h now
[sudo] password for karuma: ← 一般ユーザーのパスワードを入力
これでシャットダウンが実行されます。

sudo - 他のユーザーとしてコマンドを実行 - Linuxコマンド


sudoコマンドは、他のユーザーとしてコマンドを実行するコマンドです。

sudo
書式
sudo [オプション]
sudoコマンドではスーパーユーザー(root)やその他のユーザーに成り代わって、コマンドを実行することができます。

オプション
-b  指定したコマンドをバックグランドで実行します。
-h  ヘルプメッセージを表示します。
-l  許可・禁止されているコマンドを表示します。
-S  標準入力からパスワードを読み込みます。
-u  ユーザー名 コマンドを実行するユーザーを指定します。
使用例
sudoで許可・禁止されているコマンドを表示します(オプション -l)。

$ sudo -l
Matching Defaults entries for karuma on this host:
env_reset, mail_badpass,
secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

User karuma may run the following commands on this host:
(ALL : ALL) ALL
sudoを使って、rootにしか許可されていないコマンドを実行してみましょう。

$ sudo apt-get udpate
$ sudo apt-get upgrade
$ sudo less /etc/passwd

いちいち、root(スーパーユーザー)にスイッチする必要がないので、便利ですね。

sudoユーザーを追加する方法

sudoユーザーを追加する方法
sudoユーザーに追加していないユーザーでsudoコマンドを実行すると、

$ sudo less /etc/passwd
[sudo] password for AAA:
AAA is not in the sudoers file. This incident will be reported.

/etc/sudoers ファイルにユーザーを追加すればいいのですが、/etc/sudoers ファイルには、あらかじめsudoコマンドを利用できるグループが用意されています。Debianの場合は、sudoグループ。CentOSの場合はwheelグループ。

Allow members of group sudo to execute any command

%sudo ALL=(ALL:ALL) ALL
このグループにユーザーを追加するだけでsudoコマンドが利用できるようになります。早速追加してみましょう。ここでは「usermodコマンド」を使って、AAAをsudoグループに追加します。

usermod -G sudo AAA

cat /etc/group | grep AAA

sudo:x:27:AAA
AAA:x:1000:
これで、OKです。AAAは sudoコマンドが実行できるようになりました。

確認のため、再度sudoコマンドを実行してみましょう。。

$ sudo less /etc/passwd
[sudo] password for AAA:
ユーザーのパスワードを入力し、指定したコマンドが実行できれば、適切に設定されています。

コマンドの実行結果・標準出力をファイルに保存

標準出力をファイルに保存


コマンドの実行結果などの出力(標準出力)をファイルに保存する方法を紹介します。

コマンド > ファイル コマンドの実行結果をファイルに上書き保存します。
コマンド >> ファイル コマンドの実行結果をファイルに追記します。
コマンド >& ファイル コマンドの実行結果とエラー(標準エラー出力)をファイルに上書きします。
コマンド 2> ファイル コマンドのエラー(標準エラー出力)をファイルに上書きします。
コマンド 2>> ファイル コマンドのエラー(標準エラー出力)をファイルに追記します。

コマンドの実行結果(標準出力)をファイルに上書き
以下のファイル(file1)に、コマンドの実行結果を上書き保存します。

$ cat file1
ファイルだよー。
まず、「lsコマンド」の実行結果をファイルに保存します。

$ ls -a > file1
file1の中身をみてみると、以前のファイル内容は削除され「lsコマンド」の実行結果が上書き保存されていますね。

$ cat file1
.
..
.bash_history
.bash_logout
.bashrc
.emacs.d
.lesshst
.profile
file1
file2
コマンドの実行結果(標準出力)をファイルに追記
以下のファイル(file2)に、コマンドの実行結果を追記します。

$ cat file2
Hello,
「echoコマンド」の実行結果をファイルに追記します。

$ echo World! >> file2
それでは追記されたかどうかを確認してみましょう。このようにコマンドの実行結果が追記されていることがわかります。

$ cat file2
Hello,
World!
標準出力と標準エラー出力をファイルに上書き
以下のファイル(file3)に、コマンドの標準出力と標準エラー出力を上書きします。

$ cat file3
Linux入門!
空のディレクトリを削除する「rmdirコマンド」を使います。

まずは、比較のために標準出力をファイルに上書きします。標準エラー出力は、そのまま表示されていますね。

$ rmdir dir1 > file3
rmdir: `dir1' を削除できません: ディレクトリは空ではありません
標準出力がなかったので、ファイル内容は空になります。

$ cat file3
次は標準出力と標準エラー出力をファイルに上書きします。

$ rmdir dir1 >& file3
このように標準エラー出力がファイルに保存されます。

$ cat file3
rmdir: `dir1' を削除できません: ディレクトリは空ではありません
使い分けると便利なので、さまざまな場面で利用してみましょう。

パイプ「|」を使って 複数のコマンドを組み合わせる


パイプとは、コマンドの標準出力を次のコマンドに渡す処理のことをいいます。

パイプ(pipe)を和訳すると「配管」という意味があるので、コマンドとコマンドを接続する配管のような機能をもっている!?ということでしょう。たぶん。処理と処理の間には縦線の記号「|」を使います。

ちなみにパイプを使った処理のことを「パイプライン処理」といいます。

※ 「|」記号は、 「Shift」キーを押しながら「¥」キーを押すと入力できます。

複数のコマンドを組み合わせる


Linuxにはさまざまな機能のコマンドが用意されていますが、パイプ「|」を使って複数のコマンドを組み合わせるとより快適にCUI(Command-line User Interface)環境を操作することができます。

それでは実際にコマンドを組み合わせてみましょう。

ファイルとディレクトリのリストを表示する「lsコマンド」の実行結果を 標準入力の内容を標準出力とファイルに出力する「teeコマンド」と組み合わせます。

$ ls | tee ls.txt
file1
file2
ls.txt
sys.log
lsコマンドの実行結果が標準出力に表示されるとともにファイル「ls.txt」に出力結果が保存されます。

$ cat ls.txt
file1
file2
ls.txt
sys.log
次は、現在実行されているプロセスを表示する「psコマンド」とパターンにマッチする行を表示する「grepコマンド」を組み合わせてみましょう。この組み合わせは大変便利で、よく使います。

$ ps aux | grep apache
root 14398 0.0 0.3 71792 3132 ? Ss 16:02 0:00 /usr/sbin/apache2 -k start
www-data 14401 0.0 0.2 71524 2200 ? S 16:02 0:00 /usr/sbin/apache2 -k start
www-data 14403 0.0 0.2 295228 2628 ? Sl 16:02 0:00 /usr/sbin/apache2 -k start
www-data 14404 0.0 0.2 295220 2624 ? Sl 16:02 0:00 /usr/sbin/apache2 -k start
karuma 14642 0.0 0.0 7404 872 pts/0 S+ 16:04 0:00 grep apache
psコマンドをgrepコマンドを使わずに実行するとだらだらと現在実行中のプロセス一覧が表示され、目的のプロセスを探すのが大変です……。しかし!パイプ「|」とgrepコマンドを組み合わせると!このようにWebサーバー「apache」が適切に動いていることを確認することができます。

「パイプを制する者はコマンドラインを制する」

というような格言はありませんが、パイプは大変便利なので、いろいろ使い倒してみましょう。

ワイルドカードの使い方

Linuxのコマンドラインで頻繁に利用する「ワイルドカード」の使い方を紹介します。

ワイルドカードとは、Linuxコマンドラインで複数のファイルやディレクトリを操作する場合に利用する特殊記号ことです。

ワイルドカードを使うとコマンドラインでの操作効率が格段にアップするので、バンバン使って慣れていきましょう。

ワイルドカードの使い方
ワイルドカード
記号 パターン

  • 0文字以上の任意の文字を表します
    ? 任意の1文字を表します

それでは実際に「ワイルドカード」を使ってみましょう。

複数のファイルを削除する場合、以下のようにひとつずつ削除するとめんどくさいですね。

$ rm file1
$ rm file2
… 略 …
こういった場合は0文字以上の任意の文字をあらわすワイルドカード「*」を使いましょう。以下のように簡単に複数のファイルを削除することができます。

$ ls
file1 file2 file3 hello.c ls.txt sys.log test
$ rm *
$ ls
以下のようにある文字列(ここでは、「file」)とワイルドカード「」を組み合わせることもできます。すると、fileというファイルのみが削除されます。

$ ls
file.txt file1 file2 file3 hello.c sys.log
$ rm file*
$ ls
hello.c sys.log
次は任意の1文字を表すワイルドカード「?」を使ってみましょう。

以下のようにファイル名の先頭が「file」で末尾が「3」のファイルのみを削除してみましょう。

$ ls
file01 file02 file03 file04 file11 file12 file13 file14
$ rm file?3
$ ls
file01 file02 file04 file11 file12 file14
ワイルドカードは、他にもさまざまな用途で利用することができます。いろいろ使ってみましょう。

SSHの設定と使い方

SSH(Secure Shell)とは、クライアントとリモートマシン間の通信を暗号化するプロトコルのことです。

このプロトコルを利用すると通信路が暗号化されているので安全にデータのやりとりをすることができます。ここでは、OpenSSHを利用したSSHサーバー(リモートマシン)の設定とSSHクライアントのインストールや使い方を解説します。

SSHクライアント
SSHサーバーに接続するために必要なSSHクライアントについて解説しています。

SSHクライアントは、プラットフォーム(OS)によって、さまざまなソフトがあり、ここではWindows対応のSSHクライアント「Tera Term」の使い方(パスワード認証、公開鍵の生成、公開鍵認証)などをクライアントごとに解説しています。


Tera Termの使い方

Windows対応のSSHクライアントTera Termを利用した、パスワード認証によるSSH接続について解説します。

パスワード認証によるSSH接続

以下のSSHサーバーにパスワード認証でSSH接続します。

SSHサーバー情報
・IPアドレス:aaa.bbb.ccc.ddd
・SSHのポート番号:22
・ユーザー:root
・パスワード認証

「ホスト(T):」にSSHサーバーのIPアドレスを入力し、「TCPポート#℗:」が22になっていることを確認し、「OK」をクリックします。
・サービス
「Telnet」、「SSH」と「その他」が選択できます。ここでは「SSH」を選択します。
・SSHバージョン
「SSH1」と「SSH2」が選択できます。特に理由がなければ、より安全な「SSH2」を利用しましょう。
・プロトコル
「UNSPEC」、「IPv4」と「IPv6」が選択できます。「UNSPEC」を選択しておけばOKです(「IPv6」→「IPv4」の順に接続を試みます)。

サーバー側のホスト鍵指紋(finger print)が表示されており、「このホストをknown hostsリストに追加する」にチェックを入れて「続行」をクリックすると鍵指紋がキャッシュとして保存されるので、同じサーバーにログインする際にこの警告は表示されません。 一度しか利用しないサーバーであれば、鍵指紋を保存する必要がないので、チェックをはずし、サーバーへアクセスします。

SSHの認証画面です。ユーザ名に「root」、パスフレーズにrootの「パスワード」を入力し、Enterキーを押します。

SSHの認証方法は以下の4つから選択できます。今回は「パスワード認証によるSSH接続」なので、「プレインテキストを使う」を選択します。その他の解説は別の機会に。
・プレインテキストを使う
・RSA/DSA鍵を使う
・チャレンジレスポンス認証を使う(キーボードインタラクティブ)
・Pageantを使う

作業が終わったら「exit」を入力し、Enterキーを押します。Tera Termも同時に終了します。
「Cntl + d」(Controlキーを押しながら、dキー)でも、同じようにTera Termが終了します。

コマンドリファレンス

adduser - 新しいユーザーアカウントを対話的に作成
alias - コマンドの別名を登録する
apt-cache - APTライブラリのキャッシュへアクセス
apt-get - パッケージの操作・管理
apt-show-versions - パッケージのバージョンを一覧表示
arch - マシンのアーキテクチャを表示
arp - ARPキャッシュを操作
at - 指定した時刻にコマンドを実行

basename - フルパスからファイル名を取り出す
bc - シェルで数値計算を実行
bg - サスペンドされているジョブをバックグラウンドで実行再開
bunzip2 - アーカイブを展開
bzip2 - ファイルを圧縮

cal - カレンダーを表示する
cat - ファイル内容を標準出力に表示
cd - 作業ディレクトリを移動
chage - ユーザーのパスワード有効期限を表示・変更
chgrp - ファイルのグループを変更
chfn - ユーザーの情報を変更
chkconfig - サービス自動起動の設定
chmod - ファイルモードを変更
chown - ファイルの所有者やグループを変更
cksum - ファイルのCRCチェックサムとサイズを表示
clockdiff - 指定したホストとの時刻の差を表示
col - 改行コードをフィルタ
colrm - 指定した桁を削除
column - 入力を表形式に整形
compress - ファイルを圧縮・展開
cmp - ファイルを1バイトずつ比較
cp - ファイル・ディレクトリをコピー
crontab - cronの設定
cut - ファイルの各行から一部分を切り出す

date - システムの日付や時刻の表示・設定
df - ファイルシステムのディスク容量を表示
diff - 2つのファイルの差分を出力
dig - DNSにドメイン名問い合わせパケットを送信
dmesg - カーネルのリングバッファを表示
du - ファイルのディスク使用量を表示

echo - 1行のテキストを表示
emacs - テキストエディタ - キーバインド一覧
env - 環境変数を設定してプログラムを実行
expand - タブをスペースに変換
export - 環境変数を定義・リスト表示する

factor - 素因数分解を実行
fc - コマンドを再実行・コマンド履歴をリスト表示
fg - サスペンドされているジョブをフォアグラウンドで実行再開
file - ファイルの種類を調べる
find - ファイルを検索
finger - ユーザーの情報を表示
free - 空きメモリと使用しているメモリの容量を表示
fuser - ファイルやソケットを使用しているプロセスを特定

gpasswd - グループのパスワードを管理・設定
getent - ユーザーやグループの一覧を表示
grep - パターンにマッチする行を表示
groupadd - 新規グループの作成
groupdel - グループを削除
groupmod - グループ設定を変更
groups - ユーザーの所属グループを表示
gunzip - アーカイブを展開
gzip - ファイルを圧縮・展開

halt - システムをすぐに停止する
head - ファイルの先頭数行を表示
history - コマンド履歴をリスト表示
host - DNSを使ってホスト名を検索
hostname - マシンのホスト名を表示・設定

iconv - ファイルの文字コードを変換
id - ユーザーIDとグループIDを表示
ifconfig - ネットワークインターフェースの設定・表示
indent - C言語のソースコードを整形
init - プロセス制御・ランレベルの変更

jobs - アクティブなジョブをリスト表示

kill - 指定したプロセスを強制終了

last - 最近ログインしたユーザーリストを表示
lastlog - 最終ログインの記録を表示
ldd - 共有ライブラリへの依存関係を表示
less - テキストファイルの内容を表示
ln - ファイルリンクを作成
ls - ファイルとディレクトリのリストを表示
lsmod - Linuxカーネルのモジュールリストを表示
lspci - PCIデバイスを表示する

md5sum - MD5チェックサムを計算・チェック
mkdir - ディレクトリを作成
modinfo - カーネルモジュールに関する情報を表示する
more - テキストファイルを1ページずつ表示
mount - ファイルシステムをマウントする
mv - ファイルを移動・ファイル名を変更

nice - プログラムを実行する優先度を変更
nkf - 文字コードを変換
nslookup - 対話的にDNSサーバーへ問い合わせ
ntpdate - 日付と時刻をNTPサーバーと同期

passwd - ユーザーのパスワードを変更
patch - diff差分ファイルをオリジナルファイルに適用
pdf2ps - PDF形式 ⇔ Postscript形式に変換
pgrep - プロセス名や属性を指定してプロセスIDを表示
pidof - 指定したプロセスをプロセスIDで一覧表示
ping - ホストとの接続を確認
printenv - 環境変数を表示
ps - 現在実行されているプロセスを表示
ps2pdf - PDF形式 ⇔ Postscript形式に変換
pstree - プロセスをツリー表示
pwd - 現在の作業ディレクトリを表示

renice - 実行しているプロセスの優先度を変更
rev - 入力した文字列を逆さまにして出力
rm - ファイル・ディレクトリを削除
rmdir - 空のディレクトリを削除
rsync - 高速なファイル同期(バックアップ)
runlevel - 現在のランレベルを確認する

scp – リモートマシンにファイルコピー
script - 端末の操作を記録
seq - 連続した数字の列を出力・表示
sftp - 安全なファイル転送
sg - 別のグループIDでコマンドを実行
shred - ファイルを完全に削除
shutdown - システムを終了する
sleep - 指定した時間だけ処理を遅延
sort - テキストファイルをソート
split - ファイルを分割
ssh - リモートマシンにSSHでログイン
ssh-keygen - 認証用の鍵を生成
strings - バイナリファイルの中身を確認
su - ユーザーを変更する
sudo - 他のユーザーとしてコマンドを実行
sum - ファイルのチェックサムとブロック数を表示
sysctl - カーネルパラメータを設定

tail - ファイルの末尾数行を表示
tar - アーカイブの作成・展開
tcpdump - ネットワークのトラフィックをダンプ
tee - 標準入力の内容を標準出力とファイルに出力
telnet - TELNETプロトコルでリモートマシンに接続
time - コマンドの時間計測やリソース使用量を表示
top - システムの状況と稼働中のプロセスをリアルタイム表示
touch - ファイルのタイムスタンプを変更 - 空のファイルを作成
tr - 文字の変換や削除
traceroute - ホストまでの経路を表示
type - コマンドのタイプを調べる

umask - ファイル作成時のパーミションを表示・変更
uname - システム情報を表示
uncompress - アーカイブを展開
unexpand - スペースをタブに変換
uniq - ファイルの重複した行を削除・表示
unzip - アーカイブを展開
useradd - 新規ユーザーの作成
userdel - ユーザーアカウントと関連ファイルを削除
usermod - ユーザーアカウント情報を変更
users - ホストにログインしている全ユーザーを表示

vi - テキストエディタ

w - ログインしているユーザー名とプロセスを表示
wc - ファイルの行数・単語数・バイト数を表示
whereis - コマンドのバイナリ・ソース・manページのパスを表示
wget - ファイルをダウンロード
which - コマンドのフルパスを表示
who - 現在ログインしているユーザーの情報を表示
whoami - 現在のユーザー名を表示
whois - ドメイン情報を参照

xargs - 標準入力からコマンドラインを作成し、それを実行

yes - 終了するまで「y」や指定した文字列を表示
yum - パッケージの操作・管理

zip - ファイルを圧縮

エンジニアファーストの会社 株式会社CRE-CO 中村 実


この記事が気に入ったらサポートをしてみませんか?