1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

シェルについて

Last updated at Posted at 2020-12-03

#シェル
ユーザーと対話する能力を持ち、カーネルに対して操作のお伺いを立てる仲介役のプログラム。
ユーザーから見てカーネルの周りを覆っている「殻」(shell) のように見える事からシェルと呼ばれます。

###シェルの操作方法
シェルはユーザーからの要求を受け付けるのに
CLI (コマンドラインインタプリタ) によって受け付ける*「コマンドラインシェル」*
GUI (グラフィカルユーザインタフェース)によって受け付ける*「グラフィカルシェル」*
この2つに分けられます。
 

###シェルの種類
シェルは大きく分けるとB-Shell (Bourne Shell) 系、C-Shell系に分けられます。

  • B-Shell ( sh ) ・・・・・ Bourne Shellの事。UNIXに標準搭載されているシェル。
    sh   bash   ksh   zsh

  • C-Shell ( csh ) ・・・・・ shを元にC言語によく似たスタイルに変貌したのがCシェル。 
    csh  tcsh
    image.png

B-Shell プロンプトマークは  " $ "
sh 標準のシェル。 対話機能に乏しいためログインシェルとして使われることは少ない。主にスクリプトとして使用。
ksh 商用シェル。shの機能拡張版で csh の様な機能がある。人気はない。
bash Linuxの標準シェル。kshとよく似ている機能を持つが無料で使える。コマンドライン編集機能が追加されている。
zsh sh bash csh tcsh の機能全てを兼ね備えた最強のシェル。B系の構文もC系の構文も両方使える。ハッカーに人気。
C-Shell プロンプトマークは ” % ”
csh 対話機能に優れ、演算機能や配列/文字操作、C言語の様な構文が扱える。また、初めてhistoryやエイリアス機能を持ったshell。スクリプト機能に弱い。
tcsh cshの機能拡張版。スクリプト機能に弱い。

###シェルの使い方
まずは自分のデフォルトシェルを知る。
ターミナルにて " echo $SHELL " と入力、Enterを押すと

/bin/zsh 

と自分の使っているシェルが表れます。ここの bin はbinary ( バイナリー ) の略です。
「binファイルにある zsh を使ってますよ」って意味になります。

他に使えるシェルを知る。
ターミナルにて ” cat /etc/shells ” と入力、Enterを押すと

/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh 

いま自分のpcで使えるシェルが一覧で見れます。
「 cat 」はファイルの閲覧で使われるコマンド
「ファイルを連結して標準出力に出力する」という意味合いがあります。
 cat は「連結する」を意味する concatenate の略。

使いたいシェルを選択。
先ほど表示されたシェルの中から自分の使いたいシェルを選んで設定します。
それには ” chsh ” コマンドを入力。( OSによっては ” ypchsh ” )
password を聞かれ答えると下記場面が表れます。

# Changing user information for *******
# Use "passwd" to change the password.
##
# Open Directory: /Local/Default
##
Shell: /bin/zsh
Full Name: ******
Office Location:
Office Phone:
Home Phone:

ここでは i を押してインサートモードとし、Shell: /bin/〇〇 と書き換え esc + :wq として上書きして終了。これでシェルの変更が出来ました。
 
 

使いたいシェルにした後は、そのシェルを通してOSを操作していきます。
この時にシェル上で実行できる簡易なプログラム言語(スクリプト言語)で作られたプログラムをシェルスクリプトと呼びます。
##シェルスクリプト

OSの操作の為、シェル上で実行出来る簡単なプログラミング言語(スクリプト言語)の事。
ファイルを操作したり、プログラムの実行、テキストの印刷など定例作業の自動化によく使われる。

シェルスクリプトを使い 『 Hello World 』を出力させるには

###1. ファイルの作成
touch コマンドを使いファイル作成を行います。

~ % touch hello.sh

 
###2. 作ったファイルを開く
vim コマンドを使いファイルを開き i を押してインサートモードに移行

~ % vim hello.sh

 

###3.シェルスクリプトの記入

#!/bin/zsh

echo "Hello World" 

1行目に #!/bin/zsh と記入する。
 #!シバンまたはシェバン(英: shebang)
    起動した時に、このファイルに書かれたプログラム文をどうやって実行するか指定する。

Rubyで書くと

#!/usr/bin/env ruby
puts "Hello World"

env ← コマンド(ここではトリック的用法) env 〇〇 とすることで後に指定したプログラム言語が使える。

Pythonの場合

#!/usr/bin/env python
print "Hello World"

 

###4. ファイルの実行
作ったシェルスクリプトを実行しようとファイル名を入力すると

~ % ./hello.sh

zsh: permission denied: ./hello.sh

./Hello.sh を実行する許可がありませんと言われます。 そこで

chmod 755 hello.sh

と入力しファイル実行の許可を出します。
chmod ← ファイルやディレクトリのアクセス権を変更するコマンド

それからファイル名を入力すると

~ % ./hello.sh
Hello World

うまく行きました:smile:
 
 

##参考
http://www.cc.kyoto-su.ac.jp/~hirai/text/shell.html#commandinterpreter 
http://webcache.googleusercontent.com/search?q=cache:RYdotdNX1RUJ:www-kn.sp.u-tokai.ac.jp/com/computer/shell/shell.html+&cd=7&hl=ja&ct=clnk&gl=jp 
https://qiita.com/ycoda/items/87d23b818cb06ba1c348 
https://codezine.jp/unixdic/w/%E3%82%B7%E3%82%A7%E3%83%AB%E6%A9%9F%E8%83%BD 
https://eng-entrance.com/linux_command_cat 

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?