1. 基礎知識
2. bash
3.Symlinl
1.基礎知識
◆Linuxコマンドの格納場所
/bin 基本コマンド
/sbin 管理者用コマンド
/usr/bin アプリケーションで利用する基本コマンド
(CentOS 7に、Python3.x をインストールしたとき、Python3としてシム・リンクを貼ったりするディレクトリ。)
/usr/sbin アプリケーションで利用する管理者用コマンド
/usr/local/bin 追加したソフトやパッケージ用のコマンド
◆環境変数の読み込み順番
1. /etc/profile
2. ~/.bash_profile
上のファイルがなければ
2-1. ~/.bash_login
2-2. ~/.profile
3. ~/.bashrc
4. /etc/bashrc
5. bash実行
bash_profileは、bashシェル実行時に自動的に読まれるスクリプトが記述されている環境設定ファイルである。各ユーザーのホームディレクトリ直下にある。
Linuxで用いられる標準のシェル・プログラムは「bash」(ばっしゅ)である。bashの設定ファイルは全ユーザー共通の/etcディレクトリと,各ユーザーごとのホーム・ディレクトリに分かれており,各ユーザーの設定が優先される。
全ユーザー共通の設定
/etcディレクトリには,/etc/bashrcファイルと,/etc/profileファイルという,bashの設定ファイルが配置されている。
/etc/bashrcファイルには,全ユーザーに共通のエイリアスと関数が記述されている。標準では,シェルを起動した環境ごとのプロンプトが定義されているほか,ファイルやディレクトリを新規作成した場合にどのようなパーミッションが設定されるかが記述されている。
例えばユーザーIDの値によって処理が変化する。例えば,Fedora 7では,IDが99より大きい場合はumask 002が実行され,それ以外はumask 022が設定される。
/etc/profileファイルには環境変数と起動プログラムが記述されている。
各ユーザーごとの設定
各ユーザーごとの設定は,エイリアスなどについては「.bashrc」ファイルに,環境変数と起動プログラムは「.bash_profile」ファイルに記述される。このほか,ログアウト時にのみ実行される「.bash_logout」ファイルと,コマンド履歴を記録する「.bash_history」ファイルも存在する。
全ユーザー共通の設定である/etc/bashrc,/etc/profileと,各ユーザーごとの .bash_rc,.bash_profileの間には,“呼び出し関係”がある。
.bash_profileは,.bashrcを,.bashrcは,/etc/bashrcを読み出すようにあらかじめ指定されている。このため,あるユーザーがbashを起動すると,まず最初に全ユーザー共通の設定内容が適用され,そこに各ユーザーごとの個別の設定が上書きされる。
.bash_profileは,.bashrcを,.bashrcは,/etc/bashrcを読み出すようにあらかじめ指定されている。このため,あるユーザーがbashを起動すると,まず最初に全ユーザー共通の設定内容が適用され,そこに各ユーザーごとの個別の設定が上書きされる。
システムへのログイン時には,.bash_profileと/etc/profileが読み出される。その後,例えばGNOME端末などのシェルを起動するたびに,.bashrcが読み込まれる。
しかし,.bash_profileは読み込まれない。従って,ログイン直後に1度だけ実行させたいプログラムは.bash_profileに記述するべきである。
2.PATHの確認
1) 確認方法1:
コマンド【 echo $PATH 】(もしくは、env | grep PATH)
(windowsの場合:> set %path%)
(CentOS 7の初期設定)しかし,.bash_profileは読み込まれない。従って,ログイン直後に1度だけ実行させたいプログラムは.bash_profileに記述するべきである。
2.PATHの確認
1) 確認方法1:
コマンド【 echo $PATH 】(もしくは、env | grep PATH)
[@ /]$ echo $PATH
(結果)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
例えば、/usr/bin には、以下のようなpythonコマンドを識別するファイルがデフォルトで
あります。
$ ls -a /usr/bin | grep python
python
python2
python2.7
$ which python
/usr/bin/python
'python3' というコマンドで、'python3.7' を起動させる為に、以下のようなSymbolic Linkを、
設定をしたりします。(詳細、後述)
$ ln -s /usr/local/bin/python3.7 /usr/bin/python3
(とあるシェアド・ホスティングの場合)
[@ /]$ echo $PATH
/usr/local/bin:/bin:/usr/bin
2) 確認方法2:
・cat ~/.bash_profile
(初期値)
PATH=$PATH:$HOME/bin
export PATH
・more .bash_profile <- こちらがお勧め。
(初期値)
PATH=$PATH:$HOME/bin
export PATH
・more .bash_profile <- こちらがお勧め。
3) 確認方法3:
>printenv (windowsの場合:> set)
環境変数の確認(PATH以外の情報も表示される)
例) [ユーザ名 ~]$ printenv
TERM=xterm
SHELL=/bin/bashSSH_CLIENT=175.132.XXX.XXX 49433 2222
SSH_TTY=/dev/pts/0
USER=ユーザ名
MAIL=/var/mail/ユーザ名PATH=/usr/local/bin:/bin:/usr/bin
PWD=/home/users/0/ユーザ名
LANG=ja_JP.UTF-8
SHLVL=1
HOME=/home/users/0/ユーザ名
LOGNAME=ユーザ名_=/usr/bin/printenv
**このリンクを見るべし!!
PIPをインストールできたはずなのに、pipコマンドが認識されない。
(Python get-pip.pyを実行してsuccessfully
completed な筈。)
[ユーザ名 ~]$ cd pip
[ユーザ名 pip]$ ls -Xl
total 1624
-rw-r--r-- 1 ユーザ名 LolipopUser 1661676 2018-10-09 12:18
get-pip.py
[ユーザ名 pip]$ ls -a
. .. get-pip.py
[ユーザ名 pip]$ which pip
which: no pip in (/usr/local/bin : /bin:/usr/bin) // ここ調べてないのね。
[ユーザ名 pip]$ pwd
/home/users/0/ユーザ名/pip
[ユーザ名 pip]$ which python
/usr/local/bin/python
[ユーザ名 pip]$
それは、そうですね。
だって、pipやflaskなど、以下の --user オプションでダウンロードされたファイルは、
以下のフォルダに格納されているのですから。
/home/users/0/ユーザ名/.local/bin //ここに一杯入ってますね。
なので、PATHに/home/users/0/ユーザ名/.local/bin を追加します。
3. bashの操作・管理
◆まず、bash_profileの所在の確認
ユーザ名 ~]$ ls -a
. .. .bash_history .cache .local .python_history .subversion .viminfo pip web
. .. .bash_history .cache .local .python_history .subversion .viminfo pip web
という事で、bash_profileがないので作る。
(Touchの説明だけ)
>$touch .bash_profile
[ユーザ名 ~]$ touch .bash_profile
[ユーザ名 ~]$ ls -a
. .. .bash_history .bash_profile
.cache .local .python_history .subversion
.viminfo pip web
PATHの追加
>PATH=$PATH:/home/users/0/(user-name)/.local/bin
// $PATHは、既存に追加するという意味。
>export PATH
なので、
PATH=$PATH://home/users/0/ユーザ名/.local/bin
export PATH
を実行する
vi エディタの起動直後では、”コマンドモード”になっているので、文字などを入力する事はできません。
文字を入力する場合には、モードを"入力モード"へ変更する必要があります。
コマンドモードから入力モードへ移行するには、以下のようにコマンドを入力します。
コマンドは大文字/小文字を区別しますので、注意して下さい。
コマンドモードで入力したコマンドは、エディタの最下部に表示されます。
i (インサート)
|
カーソルの位置から入力に入る
|
編集したならば、入力モードから一旦コマンドモードへ戻り、保存するかしないかを決定してviエディタを終了します。
コマンドモードへ戻るには、”Esc”(エスケープボタン)を押します。 1回押せばコマンドモードに戻りますが、不安な場合には数回押してもコマンドモードに戻ったままなので大丈夫です。 コマンドモードへ戻ったならば、以下の様なコマンドを入力してvi エディタを終了します。
:q !
|
保存せずに終了する
|
:wq
|
保存して終了する
|
vi .bash_profile
export PATH=$PATH:home/users/0/ユーザ名/.local/bin
wq
最後に, 設定を読み込むために, Terminalを再起動させるか, 以下のコマンドを打ちましょう.
$ source ~/.bash_profile
↑上手くいかず。方法2に
やり方②
echo "export PATH=$PATH:home/users/0/ユーザ名/.local/bin " >> ~/.bash_profile
source ~/.bash_profile
なので、実行。
やっと通った!!!
(ちょっと追加)
[ユーザ名 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:home/users/0/ユーザ名/.local/bin
[ユーザ名 ~]$ echo "export PATH=$PATH:.local/bin " >>
~/.bash_profile
[ユーザ名 ~]$ source ~/.bash_profile
[ユーザ名 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:home/users/0/ユーザ名/.local/bin:.local/bin
(確認)
[ユーザ名 ~]$ python
Python 3.4.1 (default, May 8 2017,
14:41:02)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on
linux
Type "help",
"copyright", "credits" or "license" for more
information.
>>> import flask
>>>
flask動いたーーーー!
4. SymLinkの設定・管理
root@ofcm9och /]# cd /usr/local/bin
[root@ofcm9och bin]# ls -a
. 2to3-3.6 idle3.6 pydoc3.6 python3.6m pyvenv-3.6
.. easy_install-3.6 pip3.6 python3.6 python3.6m-config
[root@ofcm9och bin]# cd /
[root@ofcm9och /]# cd usr/bin
[root@ofcm9och bin]# ls -a <- pipは存在しない。
git pic which
git-receive-pack piconv whiptail
git-shell pinentry who
git-upload-archive pinentry-curses whoami
git-upload-pack ping write
glib-compile-schemas ping6 x86_64
gmake pinky x86_64-redhat-linux-c++
$ ln -s /usr/local/bin/pip3.6 /usr/bin/pip3.6
[root@ofcm9och bin]# ln -s /usr/local/bin/pip3.6 /usr/bin/pip3.6
[root@ofcm9och bin]# ls -a (symlinkが作成された)
glib-compile-schemas pinky x86_64-redhat-linux-c++
gmake pip3.6 x86_64-redhat-linux-g++
[root@ofcm9och bin]# python -m pip -V
/usr/bin/python: No module named pip
[root@ofcm9och bin]# python3 -m pip -V
pip 18.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
参考)
0 件のコメント:
コメントを投稿