Managing Files From the Command Line
Tags: ramadhanbersamaredhat
Published: 2024-03-19 04:52:17

**Menjelaskan Konsep Hirarki Sistem Berkas Linux**

Semua berkas pada sistem Linux disimpan pada sistem berkas, yang disusun dalam sebuah pohon direktori yang terbalik, yang dikenal sebagai hirarki sistem berkas. Pohon ini dikatakan terbalik karena akar dari pohon tersebut berada di puncak hierarki, dan cabang-cabang direktori dan subdirektori membentang di bawah akar.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/awjutx230uj6oqmka2rq.png)

Direktori / adalah direktori akar di bagian atas hierarki sistem file. Karakter / juga digunakan sebagai pemisah direktori pada nama file. Sebagai contoh, jika etc merupakan subdirektori dari direktori /, Anda dapat merujuk direktori tersebut sebagai / etc. Demikian juga, jika direktori /etc berisi file bernama issue, Anda dapat merujuk file tersebut sebagai /etc/issue.

Subdirektori / digunakan untuk tujuan standar untuk mengatur file berdasarkan jenis dan tujuan. Hal ini memudahkan pencarian file. Sebagai contoh, di direktori root, subdirektori /boot digunakan untuk menyimpan file yang diperlukan untuk mem-boot sistem.

Berikut ini adalah daftar beberapa direktori yang paling penting pada sistem berdasarkan nama dan tujuannya.

**/usr**: Perangkat lunak yang terinstal, pustaka bersama, file yang disertakan, dan data program hanya-baca. Subdirektori yang penting meliputi:
_/usr/bin_: Perintah pengguna.
_/usr/sbin_: Perintah administrasi sistem.
_/usr/local_: Perangkat lunak yang disesuaikan secara lokal.
**/etc**: File konfigurasi khusus untuk sistem ini.
**/var**: Data variabel khusus untuk sistem ini yang harus tetap ada di antara boot. File yang berubah secara dinamis, seperti database, direktori cache, file log, dokumen yang digulung printer, dan konten situs web dapat ditemukan di bawah /var.
**/run**: Data runtime untuk proses yang dimulai sejak booting terakhir. Di dalamnya termasuk file ID proses dan file kunci, di antaranya. Isi direktori ini dibuat ulang pada saat boot ulang. Direktori ini mengkonsolidasikan /var/run dan /var/lock dari versi Red Hat Enterprise Linux yang lebih lama.
**/home**: Direktori home tempat pengguna biasa menyimpan data pribadi dan file konfigurasi mereka.
**/root**: Direktori home untuk superuser administratif, root.
**/tmp**: Ruang yang dapat ditulisi oleh dunia untuk berkas-berkas sementara. File yang tidak diakses, diubah, atau dimodifikasi selama 10 hari akan dihapus secara otomatis dari direktori ini. Direktori sementara lainnya adalah /var/tmp, dimana file yang tidak diakses, diubah, atau dimodifikasi selama lebih dari 30 hari akan dihapus secara otomatis.
**/boot**: File yang diperlukan untuk memulai proses booting.
**/dev**: Berisi file perangkat khusus yang digunakan oleh sistem untuk mengakses perangkat keras.


**Absolute Paths and Relative Paths**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k6f5zmpm98kn5yorcpok.png)
Jalur file atau direktori menentukan lokasi sistem file yang unik. Mengikuti jalur file akan melintasi satu atau beberapa subdirektori yang diberi nama, yang dibatasi dengan garis miring (/), hingga tujuan tercapai. Direktori, juga disebut folder, berisi file lain dan subdirektori lain. Direktori dapat dirujuk dengan cara yang sama seperti file.

_Absolute Paths_

Jalur absolut adalah nama yang sepenuhnya memenuhi syarat, menentukan lokasi file yang tepat dalam hierarki sistem file. Jalur ini dimulai dari direktori root (/) dan menentukan setiap subdirektori yang harus dilalui untuk mencapai file tertentu. Setiap file dalam sistem file memiliki nama path absolut yang unik, yang dikenali dengan aturan sederhana: Nama path dengan garis miring (/) sebagai karakter pertama adalah nama path absolut. Sebagai contoh, nama path absolut untuk file log pesan sistem adalah /var/log/messages. Nama path absolut dapat panjang untuk diketik, sehingga file juga dapat ditempatkan relatif terhadap direktori kerja saat ini untuk prompt shell Anda.

_The Current Working Directory and Relative Paths_

Ketika pengguna masuk dan membuka jendela perintah, lokasi awal biasanya adalah direktori home pengguna. Proses sistem juga memiliki direktori awal. Pengguna dan proses menavigasi ke direktori lain sesuai kebutuhan; istilah direktori kerja atau direktori kerja saat ini mengacu pada lokasi mereka saat ini.

Seperti jalur absolut, jalur relatif mengidentifikasi file yang unik, hanya menentukan jalur yang diperlukan untuk mencapai file dari direktori kerja. Mengenali nama path relatif mengikuti aturan sederhana: Nama path yang memiliki karakter selain garis miring sebagai karakter pertama adalah nama path relatif. Seorang pengguna pada direktori /var dapat merujuk pada file log pesan secara relatif sebagai log/messages.

Sistem berkas Linux, termasuk, namun tidak terbatas pada, ext4, XFS, GFS2, dan GlusterFS, peka terhadap huruf besar/kecil. Membuat FileCase.txt dan filecase.txt di direktori yang sama akan menghasilkan dua file yang unik.

Sistem berkas non-Linux mungkin bekerja secara berbeda. Sebagai contoh, VFAT, NTFS Microsoft, dan HFS+ Apple memiliki perilaku mempertahankan huruf besar-kecil. Meskipun sistem file ini tidak peka terhadap huruf besar-kecil, namun sistem file ini menampilkan nama file dengan huruf besar asli yang digunakan saat file dibuat. Oleh karena itu, jika Anda mencoba membuat file pada contoh sebelumnya pada sistem file VFAT, kedua nama tersebut akan dianggap menunjuk ke file yang sama, bukan dua file yang berbeda.

**Navigating Paths**

Perintah **pwd** menampilkan nama path lengkap dari direktori kerja saat ini untuk shell tersebut. Hal ini dapat membantu Anda menentukan sintaks untuk menjangkau file dengan menggunakan nama path relatif. Perintah **ls** mencantumkan isi direktori untuk direktori yang ditentukan atau, jika tidak ada direktori yang diberikan, untuk direktori kerja saat ini.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mrtvxkf513hkzfsifxnc.png)

Gunakan perintah **cd** untuk mengubah direktori kerja shell Anda saat ini. Jika Anda tidak menentukan argumen apapun pada perintah tersebut, maka direktori akan berubah menjadi direktori home.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8uf8m2r6mvofa8lqk0d5.png)

Perintah **touch** biasanya memperbarui stempel waktu file ke tanggal dan waktu saat ini tanpa mengubahnya. Hal ini berguna untuk membuat file kosong, yang dapat digunakan untuk latihan, karena "menyentuh" nama file yang tidak ada akan membuat file tersebut.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/srqvvp0b1u78ng1iij8r.png)

Perintah **ls** memiliki beberapa pilihan untuk menampilkan atribut pada file. Yang paling umum dan berguna adalah -l (format daftar panjang), -a (semua file, termasuk file tersembunyi), dan -R (rekursif, untuk menyertakan isi semua subdirektori).

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lzpuxie4650rugcb97rt.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zo62kcr72nc3bj4e3pej.png)

Perintah **cd** memiliki banyak pilihan. Beberapa di antaranya sangat berguna sehingga perlu dipraktikkan sejak dini dan sering digunakan. Perintah **cd -** mengubah direktori sebelumnya; di mana pengguna sebelumnya berada di direktori saat ini.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/phqpmjdqelzh32i072us.png)

Perintah **cd ..** menggunakan direktori tersembunyi .. untuk naik satu tingkat ke direktori induk, tanpa perlu mengetahui nama induknya secara pasti. Direktori tersembunyi lainnya (.) menentukan direktori saat ini pada perintah dimana lokasi saat ini merupakan argumen sumber atau tujuan, sehingga tidak perlu mengetikkan nama path absolut direktori.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ssomi1ca89y277w38j6w.png)