Bagaimana cara menggabungkan beberapa perintah di terminal?

25

Saya punya perintah berikut.

cd import
zcat urls1.sql.gz | mysql -u root -p urls
cd /var/www/project1/
nano 1.php

Sampai sekarang saya sedang mengeksekusi satu per satu.

Apakah ada cara untuk menggabungkan perintah-perintah itu dalam satu baris?

Giri
sumber
3
Apakah Anda melakukan riset untuk pertanyaan ini?
don.joey
Itu bukan pertanyaan saya. Hanya setengah menit dari googling akan memberi Anda jawabannya. Karena itu, saya bertanya-tanya apa yang sudah Anda temukan, jika ada.
don.joey
Apa yang membuatmu berpikir aku menurunkan pertanyaanmu? Saya akan mengabaikan kemarahan Anda. Sebagai catatan tambahan, pertanyaan "mana yang lebih baik: menggunakan ;atau &&untuk menjalankan beberapa perintah dalam satu baris" jauh lebih baik, memiliki lebih banyak penelitian dan kemungkinan akan menarik banyak upvote.
don.joey
Ada varian yang lebih umum dari pertanyaan ini yang tersedia di askubuntu.com/questions/334994/… . Ini menangani persis pertanyaan yang saya sebutkan di komentar sebelumnya.
don.joey
Jangan khawatir, Giri. Inti dari pertanyaan itu menarik. Saya berusaha membuat varian generik dari itu.
don.joey

Jawaban:

33

Ya, pisahkan dengan titik koma seperti:

dir; ls -l

Kebanyakan lanugauges / shell menggunakan semi-kolon untuk menandakan akhir dari sebuah perintah dan untuk memulai yang baru sambil mengevaluasi dari kiri ke kanan.

Atau seperti yang direkomendasikan @RobieBasak, gunakan && sebagai ganti; untuk menjaga terhadap kecelakaan coding.

dir && ls -l
Colyn1337
sumber
23
Sebaiknya gunakan &&bukan ;. Ini memastikan bahwa perintah selanjutnya hanya dijalankan jika perintah sebelumnya tidak gagal. Ini menghindari beberapa konsekuensi yang aneh. Misalnya: cd /somewhere_else; rm -Rf *dapat melakukan sesuatu yang berbahaya jika /somewhere_elsetidak ada atau Anda salah mengeja; cd /somewhere_else && rm -Rf *melindungi Anda dari ini.
Robie Basak
2
Solusi '&&' sangat baik, itu harus menjadi rekomendasi pertama dalam jawaban ini. Harap edit jawaban Anda dan promosikan jawaban yang lebih baik ke tempat pertama.
Kerem Baydoğan