Creating, Viewing, and Editing Text Files
Published: 2024-04-02 01:57:36

Creating, Viewing, and Editing Text Files

Suatu proses menggunakan saluran bernomor yang disebut deskriptor file untuk mendapatkan masukan dan mengirim keluaran. Semua proses dimulai dengan setidaknya tiga deskriptor file. Input standar (saluran 0) membaca input dari keyboard. Output standar (saluran 1) mengirimkan output normal ke terminal. Kesalahan standar (saluran 2) mengirimkan pesan kesalahan ke terminal. Jika suatu program membuka koneksi terpisah ke file lain, program tersebut mungkin menggunakan deskriptor file dengan nomor lebih tinggi.
 

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

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

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

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

Urutan untuk mengalihkan keluaran standar ke file, kemudian mengalihkan kesalahan standar ke tempat yang sama dengan keluaran standar (file).
> file 2>&1
Namun, urutan selanjutnya melakukan pengalihan dalam urutan sebaliknya. Ini mengalihkan kesalahan standar ke tempat default untuk keluaran standar (jendela terminal, jadi tidak ada perubahan) dan kemudian hanya mengalihkan keluaran standar ke file.
2>&1 > file 
Oleh karena itu, beberapa orang lebih suka menggunakan operator pengalihan penggabungan:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/avwvfv4b1l7h98ym4pnu.png)
Namun, administrator sistem dan pemrogram lain yang juga menggunakan shell lain yang terkait dengan bash (dikenal sebagai shell yang kompatibel dengan Bourne) untuk perintah skrip berpendapat bahwa operator pengalihan penggabungan yang lebih baru harus dihindari, karena tidak distandarisasi atau diterapkan di semua shell tersebut dan mempunyai keterbatasan lain.

Contoh Pengalihan Output

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

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

Pipeline adalah urutan satu atau lebih perintah yang dipisahkan oleh karakter pipa (|). Sebuah pipa menghubungkan keluaran standar dari perintah pertama ke masukan standar dari perintah berikutnya.
Contoh Pipeline
Contoh ini mengambil output dari perintah ls dan menggunakan less untuk menampilkannya di layar terminal satu per satu.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uqioss1osivuat96pjwu.png)
Pipelines, Redirection, and the tee Command
Ketika pengalihan digabungkan dengan saluran pipa, shell menyiapkan seluruh saluran pipa terlebih dahulu, kemudian mengalihkan input/output. Jika pengalihan output digunakan di tengah-tengah pipa, output akan menuju ke file dan bukan ke perintah berikutnya dalam pipa.
Dalam contoh ini, output dari perintah ls masuk ke file, dan less tidak menampilkan apa pun di terminal.

**[user@host ~]$ ls > /tmp/saved-output | less**

Perintah tee mengatasi batasan ini. Dalam pipeline, tee menyalin masukan standarnya ke keluaran standarnya dan juga mengalihkan keluaran standarnya ke file yang diberi nama sebagai argumen pada perintah. Jika Anda membayangkan data sebagai air yang mengalir melalui pipa, tee dapat divisualisasikan sebagai sambungan "T" pada pipa yang mengarahkan keluaran ke dua arah.

Contoh Pipeline Menggunakan Perintah tee

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