Saya benar-benar baru menggunakan terminal dan saya telah mengikuti panduan secara membabi buta tanpa mengetahui mengapa ada dan apa yang dilakukannya. Meskipun panduan ini membantu saya dalam menginstal vmware player.
ini bekerja untuk saya sejak membuat file dapat dieksekusi, mengklik file, dan menjalankan..hanya mengatakan akses root diperlukan.
sudo sh vmwareplayer.txt
(diganti namanya menjadi lebih pendek)
Entah bagaimana saya tahu apa yang sudo
dilakukan tetapi apa yang sh
dilakukan? Tanpa itu ia pergi "vmwareplayer.txt tidak ditemukan". Dan untuk file bundel mengapa berakhir dengan .txt?
command-line
Gabino Garcia
sumber
sumber
sh
ada dalam perintah yang memanggil skrip. Pertanyaan itu adalah tentang cara#!
kerja di dalam file skrip . Benar-benar berbeda.Jawaban:
sh adalah singkatan dari "shell" dan shell adalah interpreter baris perintah yang lama, Unix like. Interpreter adalah program yang mengeksekusi instruksi spesifik yang ditulis dalam bahasa pemrograman atau scripting. Jadi pada dasarnya Anda mengatakan "Jalankan file itu untuk saya".
Anda harus memahami bahwa Linux tidak benar-benar melihat ekstensi file untuk menentukan apa file (atau program) itu. Jadi selama konten dari file itu ditulis dengan cara yang dimengerti oleh penerjemah, itu akan bekerja. Tetapi hanya demi keterbacaan, file-file seperti itu biasanya diberikan ekstensi .sh dan saya tidak tahu apa yang dipikirkan pengembang ketika ia memberikan file itu ekstensi .txt ..
sumber
Di Ubuntu,
sh
atau/bin/sh
hanya menunjuk kedash
.sh
seharusnya menjalankan interpreter perintah default, yangdash
untuk Ubuntu. 1dash
mengacu pada shell Debian Almquist.Shell adalah penerjemah baris perintah untuk sistem. Ada beberapa kerang lain seperti
bash
,csh
,zsh
dll Berikut ini adalah kutipan singkat dari halaman manual daridash
:Ada banyak tutorial tentang cangkang Linux, Anda bisa mulai dengan Artikel Wikipedia ini .
Datang ke pertanyaan Anda, jika Anda menulis
sh file
,dash
mengeksekusifile
untuk Anda.sumber
Hanya satu kata komentar:
sudo
mengeksekusi perintah denganroot
privilege. Ketika Anda memanggilsudo vmwareplayer.txt
yang jelas berarti "jalankan perintah vmwareplayer.txt dengan akses root" dan gagal, karena tidak ada program seperti itu.sudo sh command
berarti "jalankansh command
dengan root privilege"dan
sh command
akan menjalankan perintah di bawah Bourne shell.Muncul pertanyaan baru. Apa itu kerang? Ini pertanyaan yang lebih panjang dan Anda akan menemukan beberapa info tentang wiki.
Sementara itu, ingat
man
adalah teman baikmu.sumber
Saya percaya bahwa tidak ada responden sebelumnya yang menjawab pertanyaan yang sebenarnya Anda tanyakan kepada G., jadi saya akan mencobanya. Menempatkan
sh
ketika menjalankan program seperti yang Anda sebutkan, menjalankan program dalam subkulit non-interaktif . Kerang non-interaktif berperilaku berbeda (misalnya inisialisasi ) dari shell interaktif standar yang Anda gunakan saat menjalankan program.Jujur saya tidak tahu apa efek praktis ini. Seperti yang Anda perhatikan
sh vmwareplayer.txt
adalah (biasanya) dapat mengeksekusi sesuatu di folder yang sama, di mana cukup mengetikvmwareplayer.txt
(biasanya) tidak akan. Itu harus dilakukan lingkungan shell; itu bukan kualitas asli ke shell atau subkulit itu sendiri. Anda tentu saja dapat langsung mengeksekusi program di direktori saat ini sebagai root:sudo ./vmwareplayer.txt
. Dalam pengalaman saya ini selalu berhasil sama baiknyasudo sh vmwareplayer.txt
. Saya berharap seseorang akan datang dan menjelaskan mengapa subkulit itu kadang-kadang diinginkan.sumber
The
sh
utilitas adalah interpreter bahasa perintah / perintah yang mengeksekusi perintah membaca dari string baris perintah, standard input, atau file tertentu. Aplikasi memastikan bahwa perintah yang akan dieksekusi diekspresikan dalam bahasa yang dijelaskan dalam Bahasa Perintah Shell.Sebagai contoh:
Berikut ini mengeksekusi perintah shell dari string:
sh -c "cat myfile.txt"
yaitu mengeksekusi perintah -cat myfile.txt
Lihat tautan berikut untuk penjelasan mendalam: http://pubs.opengroup.org/onlinepubs/009695399/utilities/sh.html
sumber