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

nginxのデバッグ

今までいろいろと苦しめられてきた(汗)nginxのデバッグについて。 まず任意の文字や変数をログに出すことができます。 Contents1 変数の出力1.1 rewriteデバッグ2 小ネタ 変数の出 …

no image

OSキャッシュの仕組み

大規模サービス技術入門のつづきです。 主にOSのキャッシュメモリについてです。 メモリとディスクの速度差は10万倍~100万倍 いかにディスクへのアクセスを減らすかがポイント OSは各プロセスにメモリ …

no image

サーバーの過負荷の発見 メモリ使用率の調査&抽出、置換(awk,sed)コマンドについて

前回、サーバーの負荷調査について記事を書いたので、それに関するスクリプトを。 Contents1 仕様2 ソース3 解説3.1 freeコマンド3.2 awk3.3 sed 仕様 日付とメモリ使用率、 …

no image

serverspecによるサーバー自動テスト

最近は管理しているサーバーが多いのと、構成管理ツール(Ansible)なんかをちょくちょく使ってますが、ちゃんと入っているかどうかを確認するのはそれなりに大変だったりします。 が、構成管理ツール自体も …

no image

docker上でミニサービスを起動させるまで

dockerで何とかホストOS上でサービスを起動させるところまでは終了。 Contents1 やったこと2 苦戦したこと やったこと CentOSのイメージを取得 [crayon-5c491adba9 …