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

便利すぎる道具の弊害

現在、Javaのプロジェクトでは会社でNetbeansを使っていますが、IDEを使っているばっかりに理解できていないところがありました。便利すぎる道具の弊害ですね・・・ IDEについて一応説明をしてお …

no image

Dockerfileでのコンテナ作成

dockerは通常はimageを取得し、コンテナを起動した後、自分独自にライブラリなどをインストールし、出来たものをcommitしますが、Dockerfileをつかえばこの一連の操作をファイルに記録し …

no image

オブジェクト指向 データベース層

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日は主にデータベース層の考え方について。 Contents1 データべース層1.1 要点1.1.1 典型的なダメテーブル設計1.1 …

no image

監視検知処理に関して

実務で監視のスクリプトを書くことがあったんでメモしときます。 監視検知とは例えばあるディレクリに変化(ファイルの作成・更新・削除など)があった時に、それをトリガーにして何らかの処理を行うと言う仕組みに …

no image

オブジェクト指向 プレゼンテーション層

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日はプレゼンテーション層、いわゆるMVCのViewにあたる部分。 Contents1 プレゼンテーション層の考え方1.1 要点1. …