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

オブジェクト指向設計 依存関係の管理

オブジェクト指向シリーズ。読みにくい本が多い中でオブジェクト指向設計実践ガイドは勉強になるなー。 Contents1 依存関係の管理1.1 メモ1.2 実際のコーディング上のコツ1.3 感想 依存関係 …

no image

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

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

no image

firewall復習 ansibleコマンドもかねて

CentOS7ではファイアーウォールの設定をfirewallというコマンドで行います。要はportのブロックですね。 以前下記リンクでもfirewallについて書いたんですが、あまり理解もできていなか …

no image

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

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

no image

Excelでのテストデータ作り

ExcelVBAでテストデータを作るときに役に立った関数などを紹介させていただきます。 user_id time 2143 2017/1/16 3:35 6724 2017/1/2 6:05 4528 …