🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

解決済

3回答

6045閲覧

Linuxでのコマンドをファイル化したいです。Windowsのバッチファイルのようなもの

vibrato

総合スコア52

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0グッド

1クリップ

投稿2020/12/08 05:58

編集2020/12/10 10:10

ファイル保存方法と実行時のコマンドを知りたい

レンタルGPUサーバで下記コードのコマンドを入力をする機会があるのですが、現状毎度のコピペで対応しているので手間がかかり簡略化したいと考えています。
Windowsしか扱ったことがないので、バッチファイルと同じ要領でファイルを保存し実行したのですが、コマンドエラーとなったためご教授をお願いいたします。

act

1conda activate tensorflow21_py36

上記のコマンドをact.shとして保存し「act.sh」と入力し実行しましたが、そのようなコマンドは見つからないと表示されました。

自身のWindowsPCではpythonファイルtest.pyを実行する時は「test.py」と入力するだけで実行されるのに比べ
Linuxレンタルサーバでは「python test.py」と入力しないと実行されないという違いがあることは数回利用し、判明したのですが、それに似た実行方法の違いがあるのでしょうか?

コマンドの書き方が悪いのか、実行方法が問題なのか、その他に原因があるのか、これらについてご教授よろしくお願いいたします。

act.sh実行結果 動作しませんでした。

○○○○○○○○:$ chmod +x act.sh
○○○○○○○○:
$ ./act.sh

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run

$ conda init <SHELL_NAME>

Currently supported shells are:

  • bash
  • fish
  • tcsh
  • xonsh
  • zsh
  • powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

これはレンタルサーバで特定のコマンド以外は許可されていないということでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

chmod +x act.shと、そのファイルがコマンドのように実行可能という属性にします。
以降は、./act.shで実行できます。
カレントディレクトリにあるコマンドファイルを実行するには、./act.shのように./が必要です。

「python test.py」と入力しないと実行されない

which pythonで、pythonの絶対パス(/usr/bin/pythonとか/usr/local/bin/python3とか)を調べて、
test.pyの一行目に、#!/usr/bin/pythonなどと、#!の後にその調べたとおりに書き、
同じようにchmod +x test.pyすると、./test.pyで実行できるようになります。

投稿2020/12/08 06:27

otn

総合スコア85893

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2020/12/11 15:45

> これはレンタルサーバで特定のコマンド以外は許可されていないということでしょうか? 使っているシェルはbashですか?
otn

2020/12/12 04:42

使っているシェルがbashでない場合は、自分の使っているシェルの絶対パスを、1行目に、 #!/bin/XXXsh のように書いてください。
guest

0

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.

To initialize your shell, run

上記エラーはcondaが初期化されていないときに出るエラーです

sh

1conda init <SHELL_NAME>

上記コマンドを実行する必要があるのですが、
<SHELL_NAME>は下記のようなものです

  • sh
  • bash
  • fish
  • tcsh
  • xonsh
  • zsh

下記コマンドで現在実行中のシェル名が表示されます
(先頭に/bin/や-などが表示されますが、無視してかまいません)

sh

1echo "$SHELL" 2echo $0

下のコードのように<SHELL_NAME>をシェル名に書き換えたものを実行すればエラーは起きません

sh

1conda init sh 2conda init bash 3conda init fish 4conda init tcsh 5conda init xonsh 6conda init zsh 7

このコマンドは何度も実行する必要のないコマンドですが、
レンタルサーバの設定で自動的に初期化する場合があるので、
その場合は何度も実行する必要があります

投稿2020/12/11 21:26

編集2020/12/11 21:29
Moineau26518805

総合スコア44

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

WindowsとUNIX系OS(Linux)などでは、ファイルの種類の決める方法やアプリケーションと関連付ける方法の考え方が違います。

Windowsでは、a.exe、b.bat、c.txt、d.xlsxのように最後の部分(拡張子)でファイルの種類を決めています。もちろん、中身が違うと正しく動きません。また、Windowsではユーザごとにファイルとアプリの関連付けというものが設定されていて、e.docxをダブルクリックすればMS-WORDが起動して文書を開きます。

Linuxでもpythonのソースファイルはa.py、C言語のソースファイルはb.cと名前を付けますが、これはpython処理系やCコンパイラがそう決めているだけで、OSが決めているわけではありません。

Linux-OSは実行可能ファイルはファイル属性で判断しています。ls -lで表示される各行の一番左が-rwxとか-r-xとかなら実行可能です。
Linuxの実行可能ファイルは大きく分けるとテキストファイル(テキストデディタで編集できるもの)とバイナリファイルに分かれます。

実行可能なテキストファイルは、その中の文字を解釈するインタプリタによって実行されます。
使われるインタプリタはsh(Bourne Shell)、bash、sed、awk、python、ruby、perlなど様々です。どのインタプリタを使うかは、OSとしてあるいはユーザ毎に決めているのではなく、テキストファイルの1行目に書くことになっています。

Linux

1$ cat scr 2#!/usr/bin/bash 3export X=100 4・・・

とか書けばbashのコマンドとして解釈・実行されますし、

Linux

1$ cat /usr/bin/wheel 2#!/usr/bin/python 3# -*- coding: utf-8 -*- 4import re 5import sys 6 ・・・・

などを見ると、wheelは、(python2系の)pythonのプログラムであることがわかります。

このようなインタプリタのことをスクリプト言語、実行可能なテキストファイルのことをスクリプト、特にシェルのスクリプトの場合はシェルスクリプトと呼びます。

pythonを使う場合もbashを使う場合も、使い方は同じです。テキストファイルの1行目に #!パス名 を書いて二行目以降にプログラムを書き、保存したあと、chmod +x命令を使って実行属性を付けます。

Pythonスクリプトとか、シェルスクリプトのサンプルを見たい場合は、以下のようなコマンドで探すと便利です。

Linux

1$ file /usr/bin/* | grep Python 2$ file /usr/bin/* | grep shell

投稿2020/12/09 08:12

編集2020/12/09 14:46
ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2020/12/09 11:44

> pythonのスクリプトは.pyでなければならないことに注意してください。 これは何の話ですか?エディタの話?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問