Suatu saat dalam sejarah baru-baru ini, sci-fi nerd memulai perayaan tahunan untuk segala hal Star Wars pada tanggal 4 Mei, plesetan dari berkat Jedi, "Semoga the Force menyertaimu." Meskipun sebagian besar pengguna Linux mungkin bukan Jedi, mereka masih memiliki cara untuk menggunakan force. Tentu saja, filmnya mungkin tidak akan semenarik ini jika Yoda hanya menyuruh Luke mengetik man X-Wing fighter atau kekuatan manusia . Atau jika dia mengatakan, "RTFM" (Baca Manual Angkatan, tentu saja).
Lebih banyak sumber daya Linux
- Lembar contekan perintah Linux
- Lembar contekan perintah Linux tingkat lanjut
- Kursus online gratis:Ikhtisar Teknis RHEL
- Lembar contekan jaringan Linux
- Lembar contekan SELinux
- Lembar contekan perintah umum Linux
- Apa itu container Linux?
- Artikel Linux terbaru kami
Banyak perintah Linux memiliki -f opsi, yang berarti, Anda dapat menebaknya, paksa! Terkadang saat Anda menjalankan perintah, perintah tersebut gagal atau meminta Anda memasukkan input tambahan. Ini mungkin merupakan upaya untuk melindungi file yang Anda coba ubah atau memberi tahu pengguna bahwa perangkat sedang sibuk atau file sudah ada.
Jika Anda tidak ingin diganggu oleh perintah atau tidak peduli dengan kesalahan, gunakan kekuatan!
Ketahuilah bahwa menggunakan opsi kekuatan perintah untuk mengesampingkan perlindungan ini pada umumnya bersifat merusak. Oleh karena itu, pengguna perlu memperhatikan dan memastikan bahwa mereka tahu apa yang mereka lakukan. Menggunakan kekuatan dapat memiliki konsekuensi!
Berikut adalah empat perintah Linux dengan opsi paksa dan deskripsi singkat tentang bagaimana dan mengapa Anda mungkin ingin menggunakannya.
cp
cp perintah adalah kependekan dari copy—digunakan untuk menyalin (atau menggandakan) file atau direktori. Halaman manual menjelaskan opsi paksa untuk cp sebagai:
-f, --force
if an existing destination file cannot be opened, remove it
and try again
Contoh ini untuk saat Anda bekerja dengan file hanya-baca:
[alan@workstation ~]$ ls -l
total 8
-rw-rw---- 1 alan alan 13 May 1 12:24 Hoth
-r--r----- 1 alan alan 14 May 1 12:23 Naboo
[alan@workstation ~]$ cat Hoth Naboo
Icy Planet
Green Planet
Jika Anda ingin menyalin file bernama Hoth ke Naboo , cp perintah tidak akan mengizinkannya karena Naboo hanya bisa dibaca:
[alan@workstation ~]$ cp Hoth Naboo
cp: cannot create regular file 'Naboo': Permission denied
Tetapi dengan menggunakan kekuatan, cp tidak akan meminta. Konten dan izin Hoth akan segera disalin ke Naboo :
[alan@workstation ~]$ cp -f Hoth Naboo
[alan@workstation ~]$ cat Hoth Naboo
Icy Planet
Icy Planet
[alan@workstation ~]$ ls -l
total 8
-rw-rw---- 1 alan alan 12 May 1 12:32 Hoth
-rw-rw---- 1 alan alan 12 May 1 12:38 Naboo
Oh tidak! Saya harap mereka memiliki perlengkapan musim dingin di Naboo.
ln
ln perintah digunakan untuk membuat tautan antar file. Halaman manual menjelaskan opsi paksa untuk ln sebagai:
-f, --force
remove existing destination files
Misalkan Putri Leia memelihara server aplikasi Java dan dia memiliki direktori tempat semua versi Java disimpan. Ini contohnya:
leia@workstation:/usr/lib/java$ ls -lt
total 28
lrwxrwxrwx 1 leia leia 12 Mar 5 2018 jdk -> jdk1.8.0_162
drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162
drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144
Seperti yang Anda lihat, ada beberapa versi Java Development Kit (JDK) dan tautan simbolis yang menunjuk ke versi terbaru. Dia menggunakan skrip dengan perintah berikut untuk menginstal versi JDK baru. Namun, itu tidak akan berfungsi tanpa opsi paksa atau kecuali jika pengguna root menjalankannya:
tar xvzmf jdk1.8.0_181.tar.gz -C jdk1.8.0_181/
ln -vs jdk1.8.0_181 jdk
tar perintah akan mengekstrak file .gz ke direktori yang ditentukan, tetapi ln perintah akan gagal memutakhirkan tautan karena sudah ada. Hasilnya adalah tautan tidak lagi mengarah ke JDK terbaru:
leia@workstation:/usr/lib/java$ ln -vs jdk1.8.0_181 jdk
ln: failed to create symbolic link 'jdk/jdk1.8.0_181': File exists
leia@workstation:/usr/lib/java$ ls -lt
total 28
drwxr-x--- 2 leia leia 4096 May 1 15:44 jdk1.8.0_181
lrwxrwxrwx 1 leia leia 12 Mar 5 2018 jdk -> jdk1.8.0_162
drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162
drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144
Dia bisa memaksa ln untuk memperbarui tautan dengan benar dengan meneruskan opsi paksa dan satu lagi, -n . -n diperlukan karena tautan menunjuk ke direktori. Sekarang, tautannya kembali menunjuk ke JDK terbaru:
leia@workstation:/usr/lib/java$ ln -vsnf jdk1.8.0_181 jdk
'jdk' -> 'jdk1.8.0_181'
leia@workstation:/usr/lib/java$ ls -lt
total 28
lrwxrwxrwx 1 leia leia 12 May 1 16:13 jdk -> jdk1.8.0_181
drwxr-x--- 2 leia leia 4096 May 1 15:44 jdk1.8.0_181
drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162
drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144
Aplikasi Java dapat dikonfigurasi untuk menemukan JDK dengan jalur /usr/lib/java/jdk daripada harus mengubahnya setiap kali Java diperbarui.
rm
rm perintah adalah kependekan dari "hapus" (yang sering kita sebut hapus, karena beberapa sistem operasi lain memiliki del perintah untuk tindakan ini). Halaman manual menjelaskan opsi paksa untuk rm sebagai:
-f, --force
ignore nonexistent files and arguments, never prompt
Jika Anda mencoba menghapus file hanya-baca, Anda akan diminta oleh rm :
[alan@workstation ~]$ ls -l
total 4
-r--r----- 1 alan alan 16 May 1 11:38 B-wing
[alan@workstation ~]$ rm B-wing
rm: remove write-protected regular file 'B-wing'?
Anda harus mengetik y atau n untuk menjawab perintah dan mengizinkan rm perintah untuk melanjutkan. Jika Anda menggunakan opsi paksa, rm tidak akan meminta Anda dan akan segera menghapus file:
[alan@workstation ~]$ rm -f B-wing
[alan@workstation ~]$ ls -l
total 0
[alan@workstation ~]$
Penggunaan kekuatan yang paling umum dengan rm adalah untuk menghapus direktori. -r opsi (rekursif) memberitahu rm untuk menghapus direktori. Saat dikombinasikan dengan opsi paksa, itu akan menghapus direktori dan semua isinya tanpa diminta.
rm perintah dengan opsi tertentu bisa menjadi bencana. Selama bertahun-tahun, forum online telah dipenuhi dengan lelucon dan cerita horor dari pengguna yang sepenuhnya menghapus sistem mereka. Penggunaan terkenal ini adalah rm -rf * . Ini akan segera menghapus semua file dan direktori tanpa prompt di mana pun digunakan.
userdel
userdel perintah adalah kependekan dari penghapusan pengguna, yang akan menghapus pengguna. Halaman manual menjelaskan opsi paksa untuk userdel sebagai:
-f, --force
This option forces the removal of the user account, even if the
user is still logged in. It also forces userdel to remove the
user's home directory and mail spool, even if another user uses
the same home directory or if the mail spool is not owned by the
specified user. If USERGROUPS_ENAB is defined to yes in
/etc/login.defs and if a group exists with the same name as the
deleted user, then this group will be removed, even if it is
still the primary group of another user.
Note: This option is dangerous and may leave your system in an
inconsistent state.
Ketika Obi-Wan mencapai kastil di Mustafar, dia tahu apa yang harus dilakukan. Dia harus menghapus akun pengguna Darth—tetapi Darth masih login.
[root@workstation ~]# ps -fu darth
UID PID PPID C STIME TTY TIME CMD
darth 7663 7655 0 13:28 pts/3 00:00:00 -bash
[root@workstation ~]# userdel darth
userdel: user darth is currently used by process 7663
Karena Darth sedang login, Obi-Wan harus menggunakan opsi paksa untuk userdel . Ini akan menghapus akun pengguna meskipun sudah masuk.
[root@workstation ~]# userdel -f darth
userdel: user darth is currently used by process 7663
[root@workstation ~]# finger darth
finger: darth: no such user.
[root@workstation ~]# ps -fu darth
error: user name does not exist
Seperti yang Anda lihat, jari dan ps perintah mengkonfirmasi pengguna Darth telah dihapus.
Menggunakan kekuatan dalam skrip shell
Banyak perintah lain memiliki opsi kekuatan. Satu kekuatan tempat yang sangat berguna adalah dalam skrip shell. Karena kami menggunakan skrip dalam tugas cron dan operasi otomatis lainnya, menghindari permintaan apa pun sangat penting, atau proses otomatis ini tidak akan selesai.
Saya harap empat contoh yang saya bagikan di atas membantu Anda memahami bagaimana keadaan tertentu mungkin memerlukan penggunaan kekuatan. Anda harus memiliki pemahaman yang kuat tentang opsi kekuatan saat digunakan pada baris perintah atau dalam membuat skrip otomatisasi. Penyalahgunaannya dapat berdampak buruk—terkadang di seluruh infrastruktur Anda, dan tidak hanya pada satu mesin.