Saya menulis naskah. Ketika mulai, itu tidak akan berhenti, dan itu terus mendapatkan data dari Internet. Saya bisa menyebutnya seperti ini:
cd /User/Desktop/project/internetScanner/
python3 main.py start
Tapi saya ingin menyebutnya langsung dari terminal seperti ini, di tempat tujuan:
internetScanner start
Bagaimana saya bisa melakukannya?
linux
bash
python
shell-script
Ted Wong
sumber
sumber
Jawaban:
Anda mungkin harus mengganti nama file Anda
main.py
menjadiinternetScanner
. Ekstensi pada * nix adalah murni opsional. Seharusnya tidak masalah di sini.Kemudian, tambahkan baris berikut ke file ini, tepat di awal:
Ini akan memastikan bahwa ketika shell mengeksekusi file, itu akan tahu digunakan
python3
untuk menafsirkan konten. Ini dikenal sebagai Shebang . Sekarang, buat file tersebut dapat dieksekusi:Anda sekarang dapat menjalankan program Anda dari dalam
/User/Desktop/project/internetScanner/
:Program Anda akan berjalan di latar depan dan terus berjalan sampai Anda menekan Ctrl- C. Jika Anda tidak menginginkan ini, Anda juga dapat memulai program di latar belakang, dengan menambahkan tanda dan setelah perintah:
Ini akan membiarkan program Anda berjalan, tetapi Anda dapat terus menggunakan shell Anda. Ini disebut kontrol pekerjaan, dan ada tutorial sederhana tentang hal itu di sini .
Jika sekarang Anda ingin dapat menjalankan program dari mana saja pada sistem, Anda perlu menambahkan
internetScanner
direktori kePATH
: Apa itu PATH dan variabel lingkungan lainnya, dan bagaimana cara mengatur atau menggunakannya?sumber
X &
tidak melepaskan proses dari shell pengontrol, itu hanya latar belakang proses, yang berarti jika shell keluar itu akan mendapatkan sinyal TERM dikirim ke dalamnya; jadi jika Anda tidak ingin bahwa Anda harus menggunakan detach ,detach ./internetScanner start
.nohup
,disown
atauat
, dan sebagainya. Bagaimana cara melepaskan proses dari Terminal, seluruhnya?main.py
asalkan disinkronkan keinternetScanner
suatu tempat di $ PATH.Dengan asumsi tidak ada file lain
/User/Desktop/project/internetScanner/
yang diperlukan, jika Anda ingin menginstal untuk satu pengguna, tautan (ln -s
)main.py
ke$HOME/bin/internetScanner
. Anda mungkin harus mkdir$HOME/bin
terlebih dahulu.Lain kali Anda masuk,
$HOME/bin
mungkin akan ditambahkan ke PATH Anda. Jika Anda ingin itu tersedia untuk semua pengguna, salin ke/usr/local/bin
.Jika harus dijalankan
/User/Desktop/project/internetScanner/
, mulailah dengan mengimporos
dan meneleponatau membuat skrip peluncur di
$HOME/bin
atau/usr/local/bin
yang mengubah/User/Desktop/project/internetScanner/
dan mengeksekusi skrip.sumber
Masukkan
alias internetScanner "python /User/Desktop/project/internetScanner/main.py"
file .aliases (untuk csh). Untuk bash, masukkanalias internetScanner="python /User/Desktop/project/internetScanner/main.py"
.bashrc. Setelah itu Anda bisa menggunakan internetScanner mulai dari mana saja.sumber
.aliases
file. Apakah itu sesuatu yang standar untuk Bash? atau Anda harus secara eksplisit sumbernya di Anda.bashrc
?