GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan kekuatan di baris perintah Linux

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.


Linux
  1. 8 tips untuk baris perintah Linux

  2. Buat file dengan menggunakan baris perintah di Linux

  3. 4 alat untuk mengunduh file apa pun menggunakan baris perintah di Linux

  1. Hasilkan kata sandi di baris perintah Linux

  2. Pengantar menggunakan tcpdump di baris perintah Linux

  3. Miliki sapi di baris perintah Linux

  1. Masukkan diri Anda ke dalam baris perintah Linux

  2. Menggunakan Stratis untuk mengelola penyimpanan Linux dari baris perintah

  3. Cara Mengekstrak File tar.gz di Linux dengan Menggunakan Command Line