Chapter 3. Managing Files From the Command Line
Published: 2022-10-26 06:03:59

**Menggambarkan Linux Sistem File Hirarki Konsep
       File-Sistem Hirarki:**
       
. /direktori adalah direktori root pada bagian atas file-sistem hirarki. / juga di gunakan untuk pemisah direktori dalam nama file. etc adalah subdirektori dari /direktori, jika /etc direktori berisi file bernama issue maka anda bisa merujuk file itu sebagai /etc/issue. subdirektori/ digunakan untuk standar tujuan untuk mengatur file dengan jenis dan tujuan.

. Dalam root direktori, subdirektori /boot digunakan untuk menyimpan file-file yang di butuhkan untuk boot sistem.

. direktori / adalah simbolik link untuk pencocokan di direktori /usr.

• /bin dan /usr/bin
• /sbin dan /usr/sbin
• /lib dan /usr/lib
• /lib64 dan/usr/lib64

• Direktori yang berisi gigih, sistem-spesifik data konfigurasi = /etc
• Direktori yang merupakan puncak dari sistem sistem file hirarki = /
• Direktori yang berisi pengguna direktori home = /home
• Direktori yang berisi file-file sementara = /tmp
• Direktori yang berisi data dinamis, seperti untuk database dan website = /var
• /root = direktori administratif superesur direktori home
• Direktori yang berisi rutin perintah dan utilitas = /usr/bin
• Direktori yang berisi non-persistent proses runtime data = /run
• Direktori yang berisi perangkat lunak yang diinstal program dan perpustakaan = /usr.
 
**Menentukan File Dengan Nama
    Path absolut dan Relatif Jalan :**

. path dari file atau direktori yang menentukan file yang unik sistem lokasi. bila file path melintasi satu atau lebih subdirektori maka dipisahkan garis miring (/).

. ruang digunakan oleh shell untuk memisahkan pilihan dan argumen pada command line.

. path absolut => menentukan file lokasi yang tepat dalam sistem hirarki. nama path dengan garis miring (/) sebagai karakter pertama adalah path absolut nama. 
contoh nama path absolut untuk sistem pesan log file : /var/log/messages. 

. sebuah jalan dengan nama apapun selain sebuah slash sebagai karakter pertama adalah nama path relatif. pengguna di /var direktori bisa merujuk ke pesan log file relatif sebagai log/messages.

. pwd perintah menampilkan nama path lengkap dari direktori kerja saat bagi shell. kode ls perintah daftar isi direktori untuk direktori yang di tentukan atau direktori yang kerja saat ini.

  **Mengelola File Menggunakan Alat Baris Perintah 
       Manajemen File baris perintah :** 

. Membuat direktori :
gunakan -p perintah dengan hati-hati, karena kesalahan ejaan dapat membuat direktori yang tidak diinginkan tanpa menghasilkan pesan kesalahan.

**MENAVIGASI JALAN**

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

• Gunakan cd perintah untuk mengubah shell anda dari direktori kerja saat ini.

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

• touch perintah biasanya update file timestamp untuk saat ini tanggal dan waktu jika tanpa modifikasi.


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

• Kode ls perintah ini memiliki beberapa pilihan untuk menampilkan atribut pada file.

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

• Untuk melindungi file isi dari yang tidak tepat melihat memerlukan penggunaan file permissions .

[Ananda_nisa@04-xitjkt1 ~]$ ls -R
.:
ProjectX  ProjectY  Thesis  laporan

./ProjectX:
Thesis

./ProjectX/Thesis:
Chapter1  Chapter2  Chapter3

./ProjectX/Thesis/Chapter1:

./ProjectX/Thesis/Chapter2:

./ProjectX/Thesis/Chapter3:

./ProjectY:

./Thesis:
Chapter1  Chapter2  Chapter3

./Thesis/Chapter1:

./Thesis/Chapter2:

./Thesis/Chapter3:

./laporan:
createFile.sh    laporan321.txt  laporan548.txt  laporan774.txt
laporan.tar.gz   laporan322.txt  laporan549.txt  laporan775.txt
laporan.txt      laporan323.txt  laporan55.txt   laporan776.txt
laporan1.txt     laporan324.txt  laporan550.txt  laporan777.txt

• Perintah cd - perubahan ke direktori sebelumnya, di mana pengguna sebelumnya ke direktori saat ini.

• cd .. perintah menggunakan .. direktori tersembunyi untuk bergerak naik satu tingkat ke parent direktori.

  **Mengelola File Menggunakan Command-line Tools
    Baris perintah Manajemen File :**

• Gunakan mkdir perintah dan dibatasi ruang daftar nama direktori untuk membuat beberapa direktori.

• Menghapus File dan Direktori

Perintah rm menghapus file. Secara default, rm tidak akan menghapus direktori yang berisi file, kecuali jika Anda menambahkan opsi -ror --recursive.

• Perintah rm -r melintasi setiap subdirektori terlebih dahulu, menghapus filenya satu per satu sebelum menghapus setiap direktori.

• **MEMBUAT TAUTAN ANTAR FILE**

• Membuat tautan keras : suatu file memiliki banyak tautan keras dengan perintah ls -l . Salah satu hal yang dilaporkannya adalah setiap filejumlah tautan, jumlah tautan keras yang dimiliki file.

• Batasan tautan keras: 
1. tautan keras hanya digunakan dengan file biasa, anda tidak dapat menggunakan ln untuk membuat tautan keras ke direktori atau file khusus.
2. tautan keras hanya dapat digunakan jika kedua file berada di tempat yang samaberkas sistem. Hirarki sistem file dapat terdiri dari beberapa perangkat penyimpanan. Tergantung pada konfigurasi sistem Anda, ketika Anda mengubah ke direktori baru, direktori itu dan isinya dapat disimpan pada sistem file yang berbeda, anda dapat menggunakan perintah df untuk membuat daftar direktori yang berada di sistem file yang berbeda.

• Membuat tautan lunak : Perintah ln -s membuat tautan lunak, yang juga disebut "tautan simbolik". Tautan lunak bukanlah file biasa, tetapi jenis file khusus yang menunjuk ke file atau direktori yang ada.

• Keunggulan tautan lunak : 
1.Mereka dapat menghubungkan dua file pada sistem file yang berbeda.

2. Mereka dapat menunjuk ke direktori atau file khusus, bukan hanya file biasa.

• Perbedaan tautan lunak dan tautan keras : 
1. Tautan keras mengarahkan nama ke data di perangkat penyimpanan

2. Tautan lunak menunjukkan nama ke nama lain, yang menunjuk ke data pada perangkat penyimpanan


• **Mencocokkan Nama File dengan Ekspansi Shell**

• **Ekspansi baris perintah**

• Pencocokan pola : Globbing adalah operasi penguraian perintah shell yang memperluas pola wildcard ke dalam daftar nama jalur yang cocok.

• Ekspansi Tilde : Karakter tilde (~), cocok dengan direktori home pengguna saat ini. Jika memulai string karakter selain garis miring (/), Shell akan menafsirkan string hingga garis miring itu sebagai nama pengguna, jika ada yang cocok, dan mengganti string dengan jalur absolut ke direktori home pengguna tersebut. Jika tidak ada nama pengguna yang cocok, maka tilde aktual yang diikuti oleh string karakter akan digunakan sebagai gantinya.

Pada contoh berikut perintah echo digunakan untuk menampilkan nilai karakter tilde. Perintah echo juga dapat digunakan untuk menampilkan nilai dari kurung kurawal dan karakter ekspansi variabel, dan lain-lain.

• Ekspansi penjepit : Perluasan kurung digunakan untuk menghasilkan string karakter yang bebas. Kawat gigi berisi daftar string yang dipisahkan koma, atau ekspresi urutan. Hasilnya termasuk teks sebelum atau sesudah definisi kurung kurawal. Ekspansi penjepit mungkin bersarang, satu di dalam yang lain. Juga sintaks titik ganda (..) diperluas ke urutan sedemikian rupa sehingga {m..p} akan diperluas ke m n o p.

• Ekspansi variabel : Variabel bertindak seperti wadah bernama yang dapat menyimpan nilai dalam memori. Variabel memudahkan untuk mengakses dan memodifikasi data yang disimpan baik dari baris perintah atau dalam skrip shell.

Anda dapat menggunakan perluasan variabel untuk mengonversi nama variabel menjadi nilainya pada baris perintah. Jika sebuah string dimulai dengan tanda dolar ($), maka shell akan mencoba menggunakan sisa string tersebut sebagai nama variabel dan menggantinya dengan nilai apa pun yang dimiliki variabel tersebut.

• Melindungi argumen dari ekspansi : Garis miring terbalik (\) adalah karakter pelarian di shell Bash. Ini akan melindungi karakter segera setelahnya dari ekspansi.

Untuk melindungi string karakter yang lebih panjang, tanda kutip tunggal (') atau tanda kutip ganda (") digunakan untuk mengapit string. Mereka memiliki efek yang sedikit berbeda. Tanda kutip tunggal menghentikan semua ekspansi shell. Tanda kutip ganda berhentipalingekspansi cangkang.

Gunakan tanda kutip ganda untuk menekan globbing dan ekspansi shell, tetapi tetap mengizinkan substitusi perintah dan variabel.

• Jalur absolut selalu dimulai dari / misalnya: /var/log/messages

Jalur relatif tidak pernah dimulai dari / misalnya: log/pesan

. direktori saat ini
.. naik satu level (induk dari direktori saat ini)
../.. naik dua tingkat
~ rumah pengguna saat ini
cd rumah pengguna saat ini
cd - kembali ke direktori kerja sebelumnya.

**Manajemen File baris perintah**

mkdir -p /home/siswa/data/pribadi
-p akan membuat direktori induk (path lengkap) jika tidak tersedia.

cp /home/student/new.txt .
. berarti Anda akan menyalin ke direktori saat ini

cp -r /rumah/siswa /tmp/
-r rekursif, salin direktori lengkap.

**LINK**

Tautan Lunak -> Menunjuk ke jalur/nama file
Hard Link -> Menunjuk ke inode (pada disk).


**Tautan LEMBUT**

ln -s /home/student/myfile.txt mydata/softfile.txt
ln -s membuat tautan lunak.


**Tautan KERAS**

Di /home/student/myfile.txt mydata/hardfile.txt

ls -li mydata/ Daftar nomor inode untuk file.