GNU/Linux >> Belajar Linux >  >> Linux

6 Operator Rantai Baris Perintah Bash Shell di Linux

Pengantar

Pada artikel ini, saya akan menjelaskan kepada Anda 6 Operator Rantai baris perintah Bash shell (operator Linux). Sekarang mari kita bahas apa itu operator chaining. Operator chaining adalah sesuatu yang membantu menjalankan banyak perintah sekaligus seperti kita menjalankan skrip dan tugas selesai secara otomatis. Biasanya, orang menggunakan Bash shell command line Chaining Operators (operator Linux) dalam skrip shell, tetapi kita juga dapat menggunakan operator ini pada prompt shell.

Di sini kita akan membahas Operator Chaining baris perintah Bash shell di bawah ini (operator Linux):

  1. &&Operator (DAN Operator)
  2. ATAU Operator (||)
  3. Operator DAN &ATAU (&&dan ||)
  4. Operator PIPA (|)
  5. Operator Titik Koma (;)
  6. Operator Ampersand (&)

Sekarang mari kita bahas masing-masing dan setiap Operator satu per satu.

1. &&Operator (DAN Operator)

Sintaks untuk menggunakan AND Operator adalah :

# command 1 && command 2

AND Operator akan mengeksekusi perintah kedua hanya jika perintah Pertama berhasil dijalankan. Sekarang lihat sintaks di atas. Di sini perintah 2 akan dijalankan hanya jika perintah 1 berhasil dijalankan. Misalnya :

Di sini seperti yang Anda lihat di bawah perintah pertama berhasil diselesaikan maka perintah kedua df -h dieksekusi.

$ ping -c 5 localhost && df -h
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.067 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.086 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.085 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.081 ms
64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.086 ms

--- localhost ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4100ms
rtt min/avg/max/mdev = 0.067/0.081/0.086/0.007 ms
Filesystem      Size  Used Avail Use% Mounted on
udev            966M     0  966M   0% /dev
tmpfs           199M   12M  187M   6% /run
/dev/sda1        18G  5.3G   12G  32% /
tmpfs           992M  212K  992M   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           992M     0  992M   0% /sys/fs/cgroup
tmpfs           199M   60K  199M   1% /run/user/1000

Sekarang mari kita uji Operator AND dengan cara yang berbeda. Di sini saya akan gagal pada perintah pertama dan melihat apakah perintah kedua dijalankan atau tidak.

$ ping -c 5 local && df -h
ping: unknown host local

Seperti yang Anda lihat di atas, perintah Pertama gagal maka perintah kedua tidak dijalankan.

2. ATAU Operator (||)

Pada daftar kami, Operator Rantai baris perintah shell Bash Kedua (operator Linux) adalah Operator ATAU. Sintaks untuk menggunakan OR Operator adalah :

# command 1 || command 2

ATAU Operator benar-benar kebalikan dari &&Operator. ATAU Operator akan menjalankan perintah kedua hanya jika perintah Pertama Gagal. Sekarang mari kita ambil Contoh :

$ ping -c 5 local || df -h
ping: unknown host local
Filesystem      Size  Used Avail Use% Mounted on
udev            966M     0  966M   0% /dev
tmpfs           199M   12M  187M   6% /run
/dev/sda1        18G  5.3G   12G  32% /
tmpfs           992M  212K  992M   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           992M     0  992M   0% /sys/fs/cgroup
tmpfs           199M   60K  199M   1% /run/user/1000

Seperti yang Anda lihat di atas, perintah kedua dijalankan yaitu “df -h” karena perintah pertama gagal.

3. DAN &ATAU Operator (&&dan ||)

Kombinasi &&Operator &OR Operator (||) cukup menarik dan akan memberikan hasil yang bagus jika Anda menggunakannya dengan benar. Kombinasi dari 2 operator ini seperti pernyataan if…else dalam pemrograman. Mari kita ambil contoh sehingga Anda akan mendapatkan lebih banyak Ide tentang ini :

Contoh :1

Di sini saya mencoba untuk mensukseskan perintah Pertama dan setelah sukses menjalankan perintah pertama, kita akan mendapatkan pesan Direktori berhasil dibuat.

$ mkdir data && echo "Directory created successfully" || echo "Directory creation failed"
Directory created successfully

Seperti yang Anda lihat di atas, perintah pertama kami berhasil dieksekusi sehingga kami bisa mendapatkan pesan yang diperlukan.

Contoh :2

Disini saya mencoba Failed the First command dan setelah Failed the first command kita akan mendapatkan pesan User creation failed.

$ useradd helpdesk  && echo "User created successfully" || echo "User creation failed"
useradd: user 'helpdesk' already exists
User creation failed

Seperti yang Anda lihat di atas, perintah pertama kami gagal sehingga kami bisa mendapatkan pesan yang diperlukan.

4. Operator PIPA (|)

Operator Rantai baris perintah Bash shell Keempat (operator Linux) adalah Operator PIPA (|). PIPE adalah sejenis operator yang dapat digunakan untuk menampilkan output dari perintah pertama dengan mengambil input ke perintah kedua. Misalnya, Anda ingin memeriksa semua proses sistem yang sedang berjalan menggunakan perintah ps -ef. tetapi karena daftar prosesnya sangat panjang sehingga tidak dapat dicakup dalam satu layar. Dalam hal ini, Anda dapat menggunakan Operator Filter dengan perintah more. Lihat perintah di bawah ini :

$ ps -ef | more
  UID   PID  PPID   C STIME   TTY           TIME CMD
    0     1     0   0 19Oct18 ??        28:26.69 /sbin/launchd
    0    47     1   0 19Oct18 ??         0:39.18 /usr/sbin/syslogd
    0    48     1   0 19Oct18 ??         0:18.18 /usr/libexec/UserEventAgent (System)
    0    51     1   0 19Oct18 ??         0:15.91 /System/Library/PrivateFrameworks/Uninstall.framework/Resources/uninstalld
    0    52     1   0 19Oct18 ??         0:34.08 /usr/libexec/kextd
    0    53     1   0 19Oct18 ??         4:35.44 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/Support/fseventsd
   55    58     1   0 19Oct18 ??         0:02.25 /System/Library/CoreServices/appleeventsd --server
    0    59     1   0 19Oct18 ??        11:23.76 /usr/sbin/systemstats --daemon
    0    61     1   0 19Oct18 ??         0:40.65 /usr/libexec/configd
    0    62     1   0 19Oct18 ??         6:05.79 /System/Library/CoreServices/powerd.bundle/powerd
    0    63     1   0 19Oct18 ??         1:16.99 /Library/PrivilegedHelperTools/com.80pct.FreedomHelper
    0    67     1   0 19Oct18 ??         3:01.31 /usr/libexec/logd
...

5. Operator titik koma (;)

Baris perintah shell kelima Bash Chaining Operator (operator Linux) adalah Operator Titik Koma (;). Operator titik koma mengeksekusi beberapa perintah sekaligus secara berurutan seperti yang disebutkan dan memberikan output tanpa bergantung pada keberhasilan &kegagalan perintah lain seperti &&Operator dan OR Operator (||). Lihat contoh di bawah ini :

$ ping -c 5 localhost ; ifconfig ens33 ; df -h
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.063 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.091 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.085 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.086 ms
64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.086 ms

--- localhost ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4091ms
rtt min/avg/max/mdev = 0.063/0.082/0.091/0.011 ms
ens33     Link encap:Ethernet  HWaddr 00:0c:29:ff:cd:2e  
          inet addr:192.168.43.185  Bcast:192.168.43.255  Mask:255.255.255.0
          inet6 addr: 2405:204:f017:75dd:65af:f027:85c2:88eb/64 Scope:Global
          inet6 addr: 2405:204:f017:75dd:f076:72b8:fd36:757f/64 Scope:Global
          inet6 addr: fe80::b396:d285:b5b3:81c3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:146608 errors:0 dropped:0 overruns:0 frame:0
          TX packets:78275 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:188124508 (188.1 MB)  TX bytes:6912561 (6.9 MB)

Filesystem      Size  Used Avail Use% Mounted on
udev            966M     0  966M   0% /dev
tmpfs           199M   12M  187M   6% /run
/dev/sda1        18G  5.3G   12G  32% /
tmpfs           992M  212K  992M   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           992M     0  992M   0% /sys/fs/cgroup
tmpfs           199M   60K  199M   1% /run/user/1000

6. Operator Ampersand (&)

Keenam Bash shell command line Chaining Operator (operator Linux) adalah Ampersand Operator (&). Ampersand Operator adalah jenis operator yang menjalankan perintah yang diberikan di latar belakang. Anda dapat menggunakan operator ini untuk menjalankan beberapa perintah sekaligus.

Keuntungan dari operator ini adalah tidak membiarkan Anda menunggu untuk menggunakan prompt shell sampai perintah yang diberikan selesai. Misalnya, Anda melakukan ping ke www.thegeekdiary.com dengan 50 paket. seperti yang Anda tahu bahwa itu akan memakan waktu untuk menyelesaikan 50 paket. Tanpa menggunakan Operator Ampersand Anda harus menunggu sampai 50 paket selesai untuk menjalankan perintah lain tetapi dengan menggunakan operator ini Anda dapat menggunakan prompt shell dan perintah yang diberikan saat ini yaitu ping akan berjalan di latar belakang dan itulah keindahan Ampersand Operator.

$ ping -c 50 localhost &

Anda juga dapat menjalankan beberapa perintah menggunakan Ampersand Operator. Lihat perintah di bawah ini.

$ ping -c 5 localhost & df -h &
[1] 25962
[2] 25963

$ PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.052 ms

Filesystem      Size  Used Avail Use% Mounted on
udev            966M     0  966M   0% /dev
tmpfs           199M   12M  187M   6% /run
/dev/sda1        18G  5.3G   12G  32% /
tmpfs           992M  212K  992M   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           992M     0  992M   0% /sys/fs/cgroup
tmpfs           199M   56K  199M   1% /run/user/1000

64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.091 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.070 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.091 ms
64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.117 ms

--- localhost ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4072ms
rtt min/avg/max/mdev = 0.052/0.084/0.117/0.022 ms

Seperti yang Anda lihat di atas, output dari kedua perintah datang secara bersamaan.


Linux
  1. Cara menggunakan fungsi shell baris perintah di Linux

  2. Memahami Variabel di Bash Shell Di Linux

  3. Tentukan fungsi di baris perintah unix/linux (mis. BASH)

  1. Cara Menghapus Riwayat Baris Perintah BASH di Linux

  2. Alias ​​baris perintah di Linux Shell

  3. 5 Penyelesaian Standar Tersedia di Baris Perintah Bash Linux

  1. Cara Mengonfigurasi Bash Shell Terbatas di Linux

  2. Contoh Perintah chsh di Linux

  3. [ :Operator tak terduga dalam pemrograman shell