![見出し画像](https://assets.st-note.com/production/uploads/images/61930159/rectangle_large_type_2_064c1160c82f9beb2de9a2223949b418.jpeg?width=800)
40代ママ、駆け出しエンジニアになりたい 〜システム編〜#2
すっかり外は秋らしくなってきましたね ٩(ˊᗜˋ*)و
最近はベランダに住みついて、極小ベランダで自称べランピングを楽しんでいます!
で、日が空いてしまいましたが。。システム編ですね...
(前回の記事を復習... _φ(◎-◎ー))
今回のお題は... [自作シェル]を作ってみよう〜です!
シェルってなんだっけ??
「ユーザが入力したコマンドを受け取り OS に処理させるもの」
→そういう定義ならばつくるのは簡単!と、エンジニアぱいせんがいっております。
ちょっとRubyで書いてみるのよ...
(うちの会社のメイン言語はRuby on Rails なので...)
code:my_shell.rb
loop do # 無限ループ
print "コマンドを入力してね> " # プロンプト表示
data = gets # 入力を待ち、入力された文字列を変数に格納
if data.eql?("exit\n") # "exit" と入力された場合はループを抜ける
break
end
system(data) # 入力された文字列をOSに丸投げ
end
以下のコマンドで実行する
ruby my_shell.rb
#プロンプトが表示され、lsなどのコマンドを入力すれば実行される
# `exit` を入力したら終了する
とりあえず、作成できました!実行もできました!
次はログインシェルに変更です (9`・ω・)9
えっ、ログインシェルって??っていう感じですね。前置きカキカキ...
ログインシェル:ログインして最初に動き出すシェルのこと
途中で変更可能とのこと。
非ログインシェル:ログインしてから任意に適用するシェルのこと
で、ログインシェルにするためには、コンパイルしたプログラムじゃないとダメぽいので、Cで作り直し(ここは割愛...)
そして、ログインシェルに変更できる一覧はこちらに記載されています
/etc/shells
本題の...変更手順はこちら
①/etc/shellsファイルに、作成した自作シェル(my_shell)を書き込みます。
$ sudo vi /etc/shells
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/Users/.../my_shell # 絶対パスで追加
②ログインシェルを変更する
chsh -s /Users/.../my_shell
(パスワードを聞かれます)
③新しいターミナルは起動すると変更されていることが確認できる
ターミナルの上に[-my_shell]と表示されます。
(ちょっとスクショの調子が悪いので。。画像は割愛...)
④あとは、またchsh でもとのシェルに戻すように!(自分がbash)
今回は、これにておしまい。
シェル...今の季節同様、奥深し (。´・ω・)
この記事が気に入ったらサポートをしてみませんか?