お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-08-29 04:26:03

lrt57900
新しいメンバ
登録日: 2010-08-29

端末からusr/local/binの中に作ったショートカットでソフトを立ち上げたい。

最近、ubuntuに乗り換えた初心者です。
Matlabをインストールしたときに題名に書いた場所にショートカットを作るかどうか聞かれて、
Yesを押したら、端末にMatlabと入力するだけで起動できるようになりました。(自分のいる場所に関係なく)
これと同じことを他のソフトでできませんか?
できればその際、ショートカットの名前も自分で決めたいです。
お願いします。

オフライン

 

#2 2010-08-29 08:44:56

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 端末からusr/local/binの中に作ったショートカットでソフトを立ち上げたい。

lrt57900 による投稿:

最近、ubuntuに乗り換えた初心者です。
Matlabをインストールしたときに題名に書いた場所にショートカットを作るかどうか聞かれて、
Yesを押したら、端末にMatlabと入力するだけで起動できるようになりました。(自分のいる場所に関係なく)
これと同じことを他のソフトでできませんか?
できればその際、ショートカットの名前も自分で決めたいです。
お願いします。

ショートカットというのは(シンボリック)リンクのことという理解でよろしいでしょうか。
Windowsでいうところのショートカットに近いものとしてgnomeのアプリケーションランチャがあるので念のための確認です。

端末でプログラムを起動するのを楽にしようと思うと、いろいろパターンが考えられますが、

1. aliasを定義する
端末でaliasなどとすると現在のaliasの内容が確認できます

コード:

gedit  ~/.bash_aliases

などとしてファイルを開き、そこにaliasを定義して下さい。
(例)alias w3m='w3m -B'

2. $HOMEにbinディレクトリを作成し、そこにPATHを通し、シンボリックリンクを作成する

コード:

mkdir ~/bin
echo 'export PATH=$PATH:~/bin' >> ~/.bashrc
source ~/.bashrc
ln -s /path/to/target ~/bin/link

3. /usr/local/binなどPATHの通った場所にシンボリックリンクを作成する

コード:

sudo ln -s /path/to/target /usr/local/bin/link

のような感じになります。

コマンドの名前は変えないのがお勧めですが、どうしても変えたいという場合、注意点がありまして、
a. 他のコマンドなどと名前が被っていないか確認する必要がある。被らないようにする必要がある。
which hoge
とか
hoge
と端末で打ち込むと、hogeが存在する場合に、インストールされている場所や、インストールする際のパッケージ名などが表示されます。
b. ごくまれにコマンドが自分の名前をみて挙動を変えるものがいるかも知れない
昔のgzip, gunzipがそうだったはず。今は違うみたいですが。
もしかしたら、まだどこかにいるかも知れないので、注意はしておいた方がよいです。

オフライン

 

#3 2010-08-29 08:50:23

koisan1949
メンバ
From: Hyogo, Japan
登録日: 2007-11-11

Re: 端末からusr/local/binの中に作ったショートカットでソフトを立ち上げたい。

コマンドを実行するには、普通はパスを指定する必要があります。
しかし、環境変数PATHに登録されているパスに限っては、その指定を省略できます。
このPATHのことを「コマンドサ−チパス」と呼びます。単に「パス」とも言っています。

環境変数PATHを確認するには、上端左にある アプリケ−ション → アクセサリ− → 端末 と
マウスでドラッグすれば、Gnome端末が起動し、端末によるコマンドが打てるようになります。
uname@XXXXX-XXXXX:~$ echo $PATH (Enterキ−)
  note: 例) 私の端末での結果です。 当然に、個人的に登録しているパスが違います。
 ~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer

システムに予め登録されている環境変数PATHに追加登録を行う場合は、次のようにします。
 ~$ PATH=~/bin:$PATH
  note: PATHに「~/bin」を追加、なお「~」の意味はホ−ムディレクトリを示す特別な記号です。
    この特別な記号として、他に「/」ル−トディレクトリ、「..」親ディレクトリ、「.」カレントディレクトリが
    あります。

さて、ファイルには名前がついていて、本名と別名があり、それぞれ複数持つことができます。
ファイルの本名のことをハ−ドリンク、別名をシンボリックリンクと呼んでいます。

前置きが長くなりました。ここからがトピックの「ショ−トカットでソフトを起動する」への助言です。
シンボリックリンクを活用し、PATHが登録されていることで、ファイルに間接的にアクセスする方法です。
これを行うコマンドが「ln」です。
 ~$ man ln
  note: これでln の説明が提示されます。じっくり読んでください。終了は「q」です。
詳細を述べると、膨大な文書を記載しないといけないので、簡単な説明にします。
Googleにて「シンボリックリンク」等で検索すれば、たくさんの情報が集まると思います。

 ~$ cd 目的とするコマンド(com_filename)があるファイルへの絶対パス
  note: ディレクトリに移行
 ~$ ls
  com_filename
  note: ファイルがあるのを確認(リスト)
 ~$ ln -s com_filename /usr/local/bin/自分で決めた名前
これで登録されますので、起動すると思います。

 ~$ ls -l 目的とするコマンド(com_filename)があるファイルへの絶対パス/com_filename
 ~$ ls -F /usr/local/bin
  note: ls コマンドにて、確認できます。

オフライン

 

#4 2010-08-29 12:35:20

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: 端末からusr/local/binの中に作ったショートカットでソフトを立ち上げたい。

hmatsue さん による投稿:

2. $HOMEにbinディレクトリを作成し、そこにPATHを通し、シンボリックリンクを作成する

$HOME に bin ディレクトリを作るだけで,PATH を通してくれるようなコードが ~/.profile に既に有ります.
以下は /etc/skel/.profile の一番最後の部分

コード:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Ubuntu 導入以降ずっとこの仕組みを使って独自のコマンドを実行してきました.
あまり知られていないのかな?

オフライン

 

#5 2010-08-29 12:47:21

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 端末からusr/local/binの中に作ったショートカットでソフトを立ち上げたい。

あ、本当ですね。
ご指摘多謝です。 > einundzwanzighundertsechsさん

前述の、

コード:

mkdir ~/bin
echo 'export PATH=$PATH:~/bin' >> ~/.bashrc
source ~/.bashrc
ln -s /path/to/target ~/bin/link


コード:

mkdir ~/bin
source ~/.profile
ln -s /path/to/target ~/bin/link

に訂正します。

# SUB機の方でPATHに~/binが入っていなかったので手動設定しなくちゃと思ってしまったのですが、
# MAIN機の方でみたら、~/.profile以外には~/binにPATH通す設定無しで~/bin以下に置いた
# スクリプト類を実行している自分を発見しました(笑)
# ~/binが存在するときだけPATHに追加されるようになっているんでしたね。。

オフライン

 

#6 2010-08-31 03:21:52

lrt57900
新しいメンバ
登録日: 2010-08-29

Re: 端末からusr/local/binの中に作ったショートカットでソフトを立ち上げたい。

こんばんわ。
たくさんの返事ありがとうございます。
自分の質問が不確かだったと思います。

すこし、シンボリックリンクも見てみたのですが、探している回答と違う気がします。(何しろそれさえもなかなか判断つきにくいです)

例えば,Matlabを起動したいときに以下のコマンドを入力すると、自分のいるディレクトリに関係なくソフトを起動できます。

user@user-laptop:~$ matlab

これと同じようなことを他のソフトでしたいです。
wineでwindowsのソフトを使ってるのですが、それを起動するときに、例えば:

user@user-laptop:~$ mt

という自分でつけた元は"Mathtyp"というソフトを端末を通して起動させたいのです。
どのようにすれば可能ですか?

オフライン

 

#7 2010-08-31 09:22:02

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 端末からusr/local/binの中に作ったショートカットでソフトを立ち上げたい。

コード:

alias mt='wine ~/.wine/drive_c/Program\ Files/path/to/Mathtyp'

みたいな感じでaliasを設定するのでいかがでしょう。
Pathはそちらの環境に合わせて修正して下さい。

オフライン

 

#8 2010-08-31 09:23:27

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 端末からusr/local/binの中に作ったショートカットでソフトを立ち上げたい。

ごめんなさい。確認漏れがありました。
mt

/bin/mt
として、存在するので違う名前にして下さい。

オフライン

 

#9 2010-08-31 15:35:37

lrt57900
新しいメンバ
登録日: 2010-08-29

Re: 端末からusr/local/binの中に作ったショートカットでソフトを立ち上げたい。

今日は。
ありがとうございます。自分の望んだ結果が出ました。
この命令はaliasというのですね。
勉強になりました。
どうもでした。

オフライン

 

Board footer

Powered by FluxBB