GNU/Linux >> Belajar Linux >  >> Linux

penggunaan < /dev/null &di baris perintah

< /dev/null digunakan untuk mengirim EOF secara instan ke program, sehingga tidak menunggu input (/dev/null , perangkat null, adalah file khusus yang membuang semua data yang ditulis ke dalamnya, tetapi melaporkan bahwa operasi tulis berhasil, dan tidak memberikan data ke proses apa pun yang membacanya, menghasilkan EOF dengan segera). & adalah jenis pemisah perintah khusus yang digunakan untuk melatarbelakangi proses sebelumnya.

Tanpa mengetahui program yang dipanggil, saya tidak langsung tahu mengapa diharuskan menjalankannya dengan cara ini.


</dev/null memutuskan input program dari terminal. Beberapa program bereaksi berbeda tergantung pada apa input standar mereka terhubung. Dengan pengalihan </dev/null , program dapat mengetahui bahwa inputnya tidak berasal dari terminal, dan akan segera menerima indikasi akhir file jika mencoba membaca dari input standarnya.

Satu-satunya & pada akhirnya menyebabkan program dijalankan di latar belakang. Ini berarti Anda segera mendapatkan shell prompt kembali. Tanpa & , Anda akan mendapatkan prompt shell kembali hanya ketika program selesai dijalankan.

Perhatikan bahwa & mandiri tidak terkait dengan >& . >& adalah operator redirection (dalam tcsh, bash dan zsh) yang mengarahkan output standar program dan kesalahan standar program ke nama file yang ditentukan setelah operator (di sini log ).

Dengan kata lain, apa yang dilakukan shell ketika melihat baris perintah ini adalah:

  • Memulai proses di latar belakang. Dalam proses latar belakang:
    • Hubungkan input standar ke /dev/null (perangkat null).
    • Hubungkan output standar dan kesalahan standar ke file bernama log (membuat file jika belum ada, dan memotongnya jika ada).
    • Cari file yang dapat dieksekusi bernama java di $PATH .
    • Eksekusi file tersebut dengan 5 argumen -cp , /home/weka.jar , weka.classifiers.trees.J48 , –t , train_file`.

Linux
  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Seberapa Portabel /dev/stdin, /dev/stdout Dan /dev/stderr?

  3. Kapan Menggunakan /dev/random Vs /dev/urandom?

  1. Bagaimana Membungkam Sepenuhnya Cronjob Ke /dev/null/?

  2. Simulasikan Stdin Kosong ke Perintah Terpisah?

  3. Bagaimana cara menyandikan base64 /dev/random atau /dev/urandom?

  1. Apa yang dilakukan baris '!/bin/sh -e'?

  2. DD dari /dev/zero ke /dev/null...apa yang sebenarnya terjadi

  3. kernel:menonaktifkan /dev/kmem dan /dev/mem