skillup

技術ブログ

サーバー・ネットワーク プログラミング全般

シェルの基礎+ユーザー切り替え関連

投稿日:

雑誌を見ていたらシェルの特集があったので、ちょっとメモリます。

補強したいところのみ要点をチェック。

実行パスについて

windowsでもそうですが、シェルにも当然パスがあります。

例えば/opt/bin/mkfugaという実行ファイルがインストールされているとして、環境変数PATHに/op/binディレクトリが登録されていないと、ユーザーはmkfugaだけでは実行できません。フルパスである/opt/bin/mkfugaを打たなくてはいけないのです。

パスの確認方法は

で確認できます。

またあるコマンドがインストールされているかどうかは

ビルドインコマンド

cd  pwdなどシェル自身が持っているコマンドのことをこう呼ぶらしいです。下記リンクが非常にわかりやすいです。

http://wa3.i-3-i.info/word11741.html

シェル変数・環境変数

実行中のシェルで変数を保存することができます。変数には数値や文字列を代入できます。

また一時的な変数だけではなく環境変数自体を設定することもできます。

例えば

環境変数の設定について

exportコマンド

ただし、exportコマンドはログアウトすると消えてしまいますので、永続的に反映させたい場合は.bash_profileに書き込むようにしましょう。(詳しくは下記参照)

http://pocketstudio.jp/linux/?%A5%D1%A5%B9(PATH)%A4%CE%B3%CE%C7%A7%A4%C8%C0%DF%C4%EA%CA%FD%CB%A1%A4%CF%A1%A9

起動時には

が読み込まれます。

https://bacchi.me/linux/bash-settings/

ちなみに記述した後は

と書かないと反映されません。

全ユーザで永続的に使いたい場合は/etc/profileに記述することになります。

http://d.hatena.ne.jp/Akineko/20090825/1251187210

※改行コードがdosだと読み込んだ時にエラーがでる&発見しにくいので気を付けましょう。

コマンドの結合、入出力など

シェルのコマンドは|(パイプ)などでつなぐことができます。

実務で非常によくやるのは

ですね。

それ以外にもsortしたり、行数を数えたりといったことができます。

またファイルを出力したい場合は>(追加の場合は>>)、入力したい場合は<を使います。

また

1は標準出力、2で標準エラーの出力、>2&1で両方のエラーを記録します。

展開系

正規表現に近い概念でファイル名などをまとめて作ったりするのに便利な技

例えば下記のようなもの

if,for,whileなどもありますが、これらはプログラムのなかでやったほうが良いのかなと思うのでここでは省略します。

ユーザー切り替え関連のコマンドに関して

sudoコマンド

特定のユーザーで作業をするときに使用するコマンド。

一般的には引数を付けずにrootで使用することを前提に使われることが多い(気がする)。

私は sudo -sでrootになることが多い。

http://itpro.nikkeibp.co.jp/article/COLUMN/20071205/288862/?rt=nocnt

suコマンド

ユーザーの変更を行うコマンド。

su yamadaでyamadaユーザーになる。もちろんyamadaのパスワードを知っていることが前提となる。

引数がないとrootになる。

ちなみにrootになるときのパスワード設定は下記を参照しましょう。

http://qiita.com/RyodoTanaka/items/e9b15d579d17651650b7

http://qiita.com/pugiemonn/items/baaf7243ded2e6ab94f9

参考

SoftWareDesignの2016年6月号

-サーバー・ネットワーク, プログラミング全般
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

vimの基本的な使い方 設定ファイル、基本コマンド他

もう4年ぐらいの付き合いになる憎らしくもかわいいエディタvi(vim)について。 雑誌に特集があったのでこれを機にまとめてみました。シリーズものになるかも・・・ Contents1 Vi(vim)とは …

no image

オブジェクト指向 値オブジェクトの活用と場合分けに関して

オブジェクト指向 その1 オブジェクト指向 その2 オブジェクト指向 その3 でオブジェクト指向に触れたんですが、基本から勉強しなおす必要があると思い、まとめ&追記 参考文献 現場で役に立つシステム設 …

no image

セッションとクッキーについて

セッションとクッキーについての違いを整理しておこうと思います。 Contents1 そもそものHTTPプロトコルについて2 ステートフルな状態を実現するために2.1 方法1 クライアント側で情報を保持 …

no image

自力での監視

Zabbixの勉強を進めていますが、マニュアル通りに設定していて、中で何をやっているかをあまり理解していなかったりします。 それだとちょっとまずいのでZabbixでの構築とともに自力での監視スクリプト …

no image

大規模Webサービス技術入門 DBの分散

前回に引き続き、大規模サービスを運用するときに必要になるMySQLの知識についてのまとめ Contents1 テーブル・SQL設計2 レプリケーション機能3 パーティショニング テーブル・SQL設計 …