Setiap kali saya membuka file .sh, itu membukanya di gedit bukan terminal. Saya tidak dapat menemukan opsi yang mirip dengan Klik Kanan → Buka Dengan → Aplikasi Lain ... → Terminal .
Bagaimana cara membuka file ini di terminal?
ruby foo.rb
Setiap kali saya membuka file .sh, itu membukanya di gedit bukan terminal. Saya tidak dapat menemukan opsi yang mirip dengan Klik Kanan → Buka Dengan → Aplikasi Lain ... → Terminal .
Bagaimana cara membuka file ini di terminal?
ruby foo.rb
Jawaban:
Berikan izin eksekusi ke skrip Anda:
chmod +x /path/to/yourscript.sh
Dan untuk menjalankan skrip Anda:
/path/to/yourscript.sh
Karena .
merujuk ke direktori saat ini: jika yourscript.sh
ada di direktori saat ini, Anda dapat menyederhanakan ini menjadi:
./yourscript.sh
bash /path/to/yourscript.sh
maka Anda tidak perluchmod +x
. /path/to/yourscript.sh
jika skrip harus mengatur beberapa variabel lingkungan.
./path/to/yourscript.sh
(tanpa spasi setelah .
)? Saya menemukan bahwa yang paling sederhana dan termudah untuk digunakan ... Tapi bagaimanapun, inilah alternatif saya yang harus melakukan hampir sama seperti ./
, meskipun saya tidak melihat mengapa Anda tidak akan menggunakan ./
: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME)
... sunting FILENAME
sesuai keinginan Anda . Perhatikan juga bahwa sh
akan digunakan jika tidak ada alternatif.
Anda harus menandai skrip shell sebagai executable untuk menjalankannya dari manajer file:
Klik kanan pada .sh
file Anda dan pilih Properties :
Di tab Izin , centang Izinkan menjalankan file sebagai program :
Tutup jendela Properties dan klik dua kali file tersebut. Dialog akan muncul yang memberi Anda opsi untuk menjalankan skrip di terminal:
Buka terminal dan navigasikan ke folder tempat .sh
file itu berada. Kemudian ketik:
sh <name of file>.sh
Sebelum Anda dapat menjalankan file .sh, Anda harus membuatnya dapat dieksekusi:
Pastikan Anda memercayai sumber dari mana Anda mendapatkan file itu. Bisa jadi virus .
Ini bermasalah. Terminal akan segera ditutup dan Anda tidak akan dapat melihat hasilnya.
Temukan di mana file .sh
ls
dancd
ls
akan mencantumkan file dan folder di folder saat ini . Cobalah: ketik "ls" dan tekan Enter.cd
, diikuti oleh spasi, diikuti oleh nama foldercd ..
pergi satu tingkat ke atasJalankan file .sh
Setelah Anda dapat melihat misalnya script1.sh
dengan ls
menjalankan ini:
./script.sh
Terminal memiliki seperangkat alat yang kaya yang dapat diakses dengan mengetikkan perintah. Profesional menemukan file .sh dengan mengetik ls
dan cd
. Setelah Anda berada di folder saat ini yang benar, Anda dapat menjalankan skrip seperti ini:
./script1.sh
atau Anda dapat menjalankan dan mengarahkan output ke file:
./script1.sh > out.txt
atau Anda dapat memfilter output untuk kata kunci (mis. "apel") lalu diarahkan ke file:
./script1.sh | grep apples > ./only-apples
Ada ribuan hal yang dapat Anda lakukan untuk file itu hanya dengan mengetikkan beberapa perintah.
Yang lain, Anda dapat mengunduh file dari Internet dengan satu perintah sederhana:
wget www.google.com/images/logos/ps_logo2.png
Dan kemudian buka file seperti ini:
shotwell ps_logo2.png
Pada Ubuntu 13,04 file yang dapat dieksekusi yang dibuka di Nautilus sekarang dibuka di gedit secara default alih-alih mendorong pengguna untuk mengeksekusinya. Untuk mengaktifkan perilaku klasik, Anda perlu menyesuaikan preferensi:
Nautilus → menu Edit → Preferensi → tab Perilaku → Klik tombol radio di dekat Tanya setiap kali.
Pergi ke direktori tempat .sh
file tersebut digunakan cd
. Dalam contoh ini saya telah menyimpan sh
file saya sebagai~/Desktop/shell_practice/test.sh
pertama lakukan pwd
untuk mencari tahu di mana Anda berada, dan jika itu kembali /home/username
(di mana username
nama pengguna Anda yang sebenarnya), Anda dapat menjalankan
cd Desktop/shell/practice
Jika Anda tampaknya berada di tempat lain, Anda dapat menggunakan jalur absolut
cd ~/Desktop/shell/practice
atau
cd $HOME/Desktop/shell/practice
atau bahkan
cd /home/$USER/Desktop/shell/practice
ini semua cara menggambarkan tempat yang sama. Setelah Anda berhasil menuju lokasi skrip Anda, ketikkan
ls
Jika Anda dapat melihat sh
file di output, Anda dapat menggunakannya chmod
untuk membuatnya dapat dieksekusi. Dalam kasus saya, ingat, nama file-nya test.sh
, jadi saya akan lari
chmod u+x test.sh
Sekarang kita berada di direktori yang sama dengan skrip, kita harus menentukan ke shell bahwa kita ingin mengeksekusi file dengan memberikan lokasinya ./
(direktori saat ini diikuti oleh pemisah jalur, untuk membedakannya dari nama file). Untuk menjalankan file saya, saya akan mengetik:
./test.sh
Jika skrip Anda telah ditulis dengan benar, skrip akan berjalan tanpa kesalahan ...
2 langkah utama.
di terminal, gunakan gedit untuk menulis dan menyimpan skrip dengan ekstensi ".sh" ke desktop. (tetapi editor teks apa pun dapat digunakan)
buka Nautilus dan klik kanan file script.sh.
di bawah properti, centang kotak "izinkan file pelaksana .."
di menu Nautilus, klik file, lalu preferensi, lalu perilaku
periksa "jalankan file teks yang dapat dieksekusi ketika dibuka".
Sekarang, ketika Anda mengklik dua kali file pada desktop, itu harus dijalankan. tidak perlu .
atau./
Klik kanan .sh
file dan buat itu dapat dieksekusi.
Buka terminal ( Ctrl+ Alt+ T).
Seret .sh
file ke jendela terminal dan tonton dengan kagum.
Ada beberapa cara untuk melakukan ini.
Di terminal, akses direktori yang menggunakan file Bash cd
(ubah direktori).
Ex. cd Downloads
Lari bash <filename>.sh
Ini juga berfungsi dengan file .run. Ada contoh penggunaan ini di halaman web ini saat memperbarui Rhythmbox.
Di terminal, navigasikan ke direktori tempat file bash berada.
Lari chmod +x <filename>.sh
Di Nautilus, buka file.
Untuk Ubuntu 18.04 , Ada sedikit modifikasi, karena Anda tidak mendapatkan dialog sembulan.
Jadi yang perlu Anda lakukan adalah:
Klik kanan pada File, Pilih Preferensi> Pilih Tab Perilaku> Tandai opsi 'Tanya apa yang harus dilakukan' di bawah File teks yang dapat dieksekusi.
Sekarang, Ketika Anda mengklik dua kali pada file .sh apa pun, Anda akan mendapatkan popup, di sana Anda dapat memilih opsi "jalankan di terminal" untuk menjalankan file .sh Anda.
Di Ubuntu 16.04 ini cara membukanya di Terminal:
Pergi ke File Manager > Edit > Preferences > Behavior
untuk Executable Text Files
dan pilih Ask each time
.
Masalahnya adalah bahwa secara default diatur ke View Executable Files when they are opened
.
Jika Anda menempatkan skrip shell atau executable lain yang Anda buat di / usr / local / bin, skrip tersebut akan ditemukan dan dieksekusi tanpa harus memberikan path folder di baris perintah atau menambahkan ./ ke nama. Misalnya saya membuat skrip bash 3 baris sederhana berikut untuk menampilkan disk UUID:
#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
sudo blkid
Saya memanggil file uuid dan meletakkannya di / usr / local / bin. Yang perlu saya masukkan pada baris perintah adalah:
uuid
Yah, saya juga menghadapi masalah yang sama. Saya ingin mengeksekusi file .sh dan dibuka dengan Gedit pada CentOS 7. Jadi inilah yang saya lakukan:
.sh
file yang ingin saya jalankan.Masalah yang saya temukan pada beberapa distribusi adalah mereka menyembunyikan opsi preferensi di Nautilus, tetapi untuk memperbaikinya di Ubuntu dan distribusi lainnya menggunakan Gnome3 adalah sama (secara harfiah hanya melakukan versi Fedora ini dan memposting perbaikan yang sebenarnya untuk mengingatkan saya bagaimana di masa depan).
Pasang dconf-editor
sudo apt-get install dconf-editor
Jalankan dconf-editor
menggunakan akun pengguna yang Anda inginkan ini, yaitu BUKAN root
dconf-editor
Arahkan ke skema berikut:
org.gnome.nautilus.preferences
Ubah opsi default menjadi tidak terbuka secara default:
Temukan executable-text-activation
klik kata display
dan ubah keask
yang akan memberi Anda opsi untuk mengedit, melihat, atau menjalankan file yang akan datang
Saya seorang noob di Linux dan saya punya masalah yang sama. Jika semuanya gagal:
Anda juga dapat menggunakan .
trik, dengan saran jawaban lain.
Sebagai contoh:
chmod +x filename.sh
, dengan asumsi Anda sudah pergi ke path ke file kemudian jalankan file dengan salah satu dari perintah ini:
sh filename.sh
./filename.sh
. filename.sh