1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

'Python 自作スクリプト名.py'に別名(alias)を設定すると、自作スクリプトファイルをUNIXコマンドのように実行できる

Last updated at Posted at 2020-12-07

以下のコマンドに、エイリアスで別名を与える!

自作したPythonスクリプトは、任意のディレクトリから、以下で実行できます。

任意のディレクトリ
python 自作ファイルの格納場所の絶対パス/.XXXXX.py

上記のコマンドに、エイリアス(alias)で別名を与える。

自由に設定した__「別名」__が、自作スクリプトファイルを実行する際に呼び出す__コマンド名__になります。

Terminal
alias 好きなコマンド名='python 自作ファイルの格納場所の絶対パス/.XXXXX.py'

すると、任意のディレクトリ__から、「別名」と打つだけ__で、__自作したPythonスクリプトを実行__できる。


( 解説 )

(1) pwdで、自作したPythonスクリプトファイルの絶対パスを確認
(例)

スクリプトファイルから見たカレントディレクトリのパスの例
/Users/ユーザ名/xxxxx/yyyyy/zzzzz/sample.py

(2) echo $HOMEで、ホームディレクトリの絶対パスを確認
(例)

HOMEディレクトリのパスの例
/Users/ユーザ名

(3) 1)で確認した絶対パスのうち、__$HOMEの絶対パスと一致する部分を$HOME__に置き換える。
(例)

変更前
/Users/ユーザ名/xxxxx/yyyyy/zzzzz/sample.py

を、以下に変える。

変更後
$HOME/xxxxx/yyyyy/zzzzz/sample.py

(4) 任意のディレクトリから、 __python $HOME/xxxxx/yyyyy/zzzzz/sample.py__を実行することで、sample.pyを実行できる。

(5) (4)のコマンドに、打ちやすい短い別名をつける。

変更後
python $HOME/xxxxx/yyyyy/zzzzz/sample.py

別名は、エイリアス(alias)でつけることができる。

Terminal
alias 別名='python $HOME/xxxxx/yyyyy/zzzzz/sample.py'

(7). Macbookをログアウトして、再ログインした際に、上記のエイリアスが読み込まれるように、bash_profileに上記を書き込む。

Terminal
echo "alias 別名=\"python $HOME/xxxxx/yyyyy/zzzzz/sample.py\"" >> ~/.bashrc
source ~/.bashrc

(8). 任意のカレントディレクトリで、Terminal上で、「別名」を叩くと、自作スクリプトファイルが実行される。

任意のディレクトリで実行
別名

( 実例 )

過去に作成した自作スクリプトファイルを例に、エイリアスを定義して、実行してみる。

以下で実行できる。

カレント・ディレクトリ; Users/ユーザ名の直下
自作のPythonスクリプトファイルを、カレント・ディレクトリからの相対パスで実行(実行成功)

Terminal
ocean@AfoguardMacBook-Pro ~ % pwd
/Users/ocean
ocean@AfoguardMacBook-Pro ~ % python ./Desktop/tkinter_test/tkinter_ner_svo_list_filter_by_target_word_and_case_file_dialog3.py

ocean@AfoguardMacBook-Pro ~ %

カレント・ディレクトリ; Users/ユーザ名の直下
自作のPythonスクリプトファイルを、ルートからの絶対パスで実行(実行成功)

Terminal
ocean@AfoguardMacBook-Pro ~ % python3 /Users/ocean/Desktop/tkinter_test/tkinter_ner_svo_list_filter_by_target_word_and_case_file_dialog3.py

ocean@AfoguardMacBook-Pro ~ %

・ スクリプトファイルの__絶対パスのうち、$HOMEで置き換えられる部分を、$HOMEで置き換えて__実行(実行成功

Terminal
ocean@AfoguardMacBook-Pro ~ % echo $HOME
/Users/ocean
ocean@AfoguardMacBook-Pro ~ % python3 $HOME/Desktop/tkinter_test/tkinter_ner_svo_list_filter_by_target_word_and_case_file_dialog3.py

ocean@AfoguardMacBook-Pro ~ %

上記の実行コマンド文字列に、エイリアスで別名を定義__

__'file_content'という別名__を定義する。
Terminal
ocean@AfoguardMacBook-Pro ~ % alias file_content='python3 $HOME/Desktop/tkinter_test/tkinter_ner_svo_list_filter_by_target_word_and_case_file_dialog3.py'
ocean@AfoguardMacBook-Pro ~ %
Terminal上で、__'file_content'__と打ち込でエンターターキーを押すと、自作Pythonスクリプトファイルが実行できた。
Terminal
ocean@AfoguardMacBook-Pro ~ % file_content

ocean@AfoguardMacBook-Pro ~ %
任意のディレクトリから、実行できる

1つ上の階層のディレクトリに移動後に、別名を実行(実行成功)

Terminal
ocean@AfoguardMacBook-Pro ~ % cd ..
ocean@AfoguardMacBook-Pro /Users % pwd
/Users
ocean@AfoguardMacBook-Pro /Users % file_content

ocean@AfoguardMacBook-Pro /Users %

2つ下の階層のディレクトリに移動後に、別名を実行(実行成功)

Terminal
ocean@AfoguardMacBook-Pro /Users % cd ocean/Desktop/files_test 
ocean@AfoguardMacBook-Pro files_test %     
ocean@AfoguardMacBook-Pro files_test % file_content               

ocean@AfoguardMacBook-Pro files_test %

同じ階層の別のディレクトリに移動後に、別名を実行(実行成功)

Terminal
ocean@AfoguardMacBook-Pro files_test % cd ../tkinter_test 
ocean@AfoguardMacBook-Pro tkinter_test % file_content      

ocean@AfoguardMacBook-Pro tkinter_test 
whichコマンドで、エイリアスで設定した「別名コマンド」が呼び出す実行ファイルのパスを確認
Terminal
ocean@AfoguardMacBook-Pro tkinter_test % which file_content                    
file_content: aliased to python3 $HOME/Desktop/tkinter_test/tkinter_ner_svo_list_filter_by_target_word_and_case_file_dialog3.py
ocean@AfoguardMacBook-Pro tkinter_test % 
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?