skillup

技術ブログ

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

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

投稿日:2016年10月29日 更新日:

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

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

実行パスについて

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

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

パスの確認方法は

で確認できます。

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

ビルドインコマンド

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

わわわIT用語辞典 ビルトインコマンド (built-in command)

シェル変数・環境変数

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

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

例えば

環境変数の設定について

exportコマンド

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

パス(PATH)の確認と設定方法は?

起動時には

が読み込まれます。

bash設定ファイルの一覧と読み込み順序まとめ

ちなみに記述した後は

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

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

Linux(CentOS)にパスを通す方法

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

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

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

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

ですね。

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

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

また

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

展開系

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

例えば下記のようなもの

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

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

sudoコマンド

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

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

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

日経XTECH【 sudo 】指定したユーザーでコマンドを実行する

suコマンド

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

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

引数がないとrootになる。

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

sudo のパスワードを入力なしで使うには

CentOSの一般ユーザーにパスワードなしでsudoコマンドを使えるようにしました

参考

SoftWareDesignの2016年6月号

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

執筆者:


comment

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

関連記事

no image

環境構築の手法について

2019年9月現在、PHPは7系(最新は7.3)を使うことが一般的ですが、たまにレガシー案件などでPHP5系を使ったりすることはあります。 まあ7系でも7.0じゃ動かないとか色々な制約あるんですけど・ …

no image

コレクションの頻出処理に関して

PHPでコレクションを使っていますが、慣れると本当に便利ですね・・・まあforeachとかでグリグリやってもいいのですが、無駄にコードが長くなります。 自分がコレクションでよく使う再頻出のメソッドなど …

no image

composer経由でのpearライブラリのインストール

2018年7月現在、PHPのライブラリはほとんどComposer経由でインストールできるかと思いますが、稀にComposerに対応していないものもあり、その場合、pearから取得してくる必要があります …

no image

ディレクション時に重要な視点

ディレクション(ベンダーや内製時)時に留意するポイント Contents1 開発ルールの構築2 アサインと人材スクリーニング3 言葉の共通化(特にアウトプット)4 問題化のキャッチアップ5 リソースの …

no image

Git+SSH鍵認証

鍵認証をともなったgitのpushやpullについて。 中央リポジトリに公開鍵がおいてあり、リモートリポジトリに秘密鍵を配置します。 ステップとしては以下の2ステップになります。実行時ユーザーのディレ …