Materi Tutorial Debian Linux Lengkap 2018 - www.teknoblog.tech

Saturday, March 3, 2018

Materi Tutorial Debian Linux Lengkap 2018

Saya rasa belajar sistem komputer seperti belajar bahasa asing baru. Meskipun buku dan dokumentasi tutorial sangat membantu, Anda harus mempraktikkannya sendiri. Untuk membantu Anda memulai dengan lancar, saya menguraikan beberapa hal mendasar.
Desain kuat Debian GNU / Linux berasal dari sistem operasi Unix , yaitu multiuser , multitasking sistem operasi. Anda harus belajar memanfaatkan kekuatan fitur dan kesamaan ini antara Unix dan GNU / Linux.
Jangan menghindar dari teks yang berorientasi Unix dan jangan hanya mengandalkan teks GNU / Linux, karena ini merampas banyak informasi berguna.
[Catatan]Catatan
Jika Anda telah menggunakan sistem mirip Unix untuk sementara dengan alat baris perintah, Anda mungkin tahu semua yang saya jelaskan di sini. Mohon gunakan ini sebagai cek kenyataan dan penyegaran.
Saat memulai sistem, Anda akan disajikan dengan layar login berbasis karakter jika Anda tidak menginstal X Window System dengan manajer layar seperti gdm3 . Misalkan nama host Anda adalah foo , prompt login terlihat sebagai berikut.
 foo login: 
Jika Anda menginstal lingkungan GUI seperti GNOME atau KDE , Anda bisa masuk ke prompt login oleh Ctrl-Alt-F1, dan Anda dapat kembali ke lingkungan GUI melalui Alt-F7 (lihat Bagian 1.1.6, "konsol virtual "Di bawah untuk lebih).
Pada prompt login, Anda mengetikkan nama pengguna Anda, misalnya penguin , dan tekan Enter-key, lalu ketik kata sandi Anda dan tekan tombol Enter lagi.
[Catatan]Catatan
Mengikuti tradisi Unix, username dan password sistem Debian bersifat case sensitive. Nama pengguna biasanya dipilih hanya dari huruf kecil. Akun pengguna pertama biasanya dibuat saat instalasi. Akun pengguna tambahan dapat dibuat dengan adduser (8) oleh root.
Sistem dimulai dengan pesan ucapan yang tersimpan di " /etc/motd " (Message Of The Day) dan menampilkan command prompt.
 Debian GNU / Linux jessie / sid foo tty1
 foo login: penguin
 Kata sandi:
 Terakhir masuk: Mon Sep 23 19:36:44 JST 2013 pada tty3
 Linux snoopy 3.11-1-amd64 # 1 SMP Debian 3.11.6-2 (2013-11-01) x86_64

 Program yang disertakan dengan sistem Debian GNU / Linux adalah perangkat lunak bebas;
 istilah distribusi yang tepat untuk setiap program dijelaskan di
 file individual di / usr / share / doc / * / hak cipta

 Debian GNU / Linux hadir dengan benar-benar TIDAK ADA JAMINAN, sebatas
 diizinkan oleh hukum yang berlaku
 foo: ~ $ 
Sekarang Anda berada di shell . Shell menafsirkan perintah Anda.
Jika Anda menginstal X Window System dengan manajer display seperti GNOME 's gdm3 dengan memilih tugas "Desktop environment" selama penginstalan, Anda akan gdm3 dengan layar login grafis saat memulai sistem Anda. Anda mengetikkan username dan password Anda untuk login ke akun pengguna non-privilege. Gunakan tab untuk menavigasi antara nama pengguna dan kata sandi, atau gunakan mouse dan klik primer.
Anda bisa mendapatkan prompt shell di bawah X dengan memulai program x-terminal-emulator seperti gnome-terminal (1) , rxvt (1) atau xterm (1) . Di bawah lingkungan Desktop GNOME, klik "Applications" → "Accessories" → "Terminal" melakukan triknya.
Anda juga dapat melihat bagian di bawah Bagian 1.1.6, "konsol virtual" .
Di bawah beberapa sistem Desktop lainnya (seperti fluxbox ), mungkin tidak ada titik awal yang jelas untuk menu. Jika ini terjadi, coba saja (kanan) klik latar belakang layar desktop dan berharap ada menu pop-up.
Account root juga disebut superuser atau privileged user. Dari akun ini, Anda dapat melakukan tugas administrasi sistem berikut.
  • Baca, tulis, dan hapus file apapun di sistem terlepas dari hak akses file mereka
  • Setel kepemilikan file dan hak akses file apapun pada sistem
  • Tetapkan kata sandi pengguna non-istimewa di sistem
  • Login ke akun manapun tanpa password mereka
Kekuatan akun root tak terbatas ini mengharuskan Anda untuk mempertimbangkan dan bertanggung jawab saat menggunakannya.
[PERINGATAN]PERINGATAN
Jangan pernah berbagi password root dengan yang lain.
[Catatan]Catatan
Izin file file (termasuk perangkat keras seperti CD-ROM dll yang merupakan file lain untuk sistem Debian) dapat membuatnya tidak dapat digunakan atau tidak dapat diakses oleh pengguna non-root. Meskipun penggunaan akun root adalah cara cepat untuk menguji situasi seperti ini, resolusinya harus dilakukan melalui pengaturan hak akses file dan keanggotaan grup pengguna yang benar (lihat Bagian 1.2.3, "Filesystem permissions" ).
Berikut adalah beberapa metode dasar untuk mendapatkan root shell prompt dengan menggunakan password root.
  • Ketik root pada command prompt berbasis karakter.
  • Klik "Applications" → "Accessories" → "Root Terminal", di bawah lingkungan Desktop GNOME.
  • Ketik " su -l " dari prompt shell pengguna.
    • Ini tidak melestarikan lingkungan pengguna saat ini.
  • Ketik " su " dari prompt shell pengguna.
    • Ini menjaga beberapa lingkungan pengguna saat ini.
Bila menu desktop Anda tidak menjalankan alat administrasi sistem GUI secara otomatis dengan hak istimewa yang sesuai, Anda dapat memulainya dari prompt root shell dari emulator terminal X, seperti gnome-terminal (1) , rxvt (1) , atau xterm (1 ) . Lihat Bagian 1.1.4, "Root shell prompt" dan Bagian 7.8.5, "Menjalankan X klien sebagai root" .
[PERINGATAN]PERINGATAN
Jangan pernah menjalankan X display / session manager di bawah akun root dengan mengetikkan root ke prompt manajer tampilan seperti gdm3 (1) .
[PERINGATAN]PERINGATAN
Jangan pernah menjalankan program GUI jarak jauh tanpa tepercaya di bawah X Window saat informasi penting ditampilkan karena dapat menguping layar X Anda.
Dalam sistem Debian default, ada enam konsol karakter mirip VT100 yang dapat diatur yang tersedia untuk menjalankan perintah shell secara langsung di host Linux. Kecuali Anda berada di lingkungan GUI, Anda dapat beralih di antara konsol virtual dengan menekan tombol Left-Alt-key dan salah satu tombol F1 - F6 secara bersamaan. Setiap konsol karakter memungkinkan login mandiri ke akun dan menawarkan lingkungan multiuser. Lingkungan multiuser ini adalah fitur Unix yang hebat, dan sangat adiktif.
Jika Anda berada di bawah Sistem X Window, Anda bisa mengakses konsol karakter 1 dengan menekan tombol Ctrl-Alt-F1 , yaitu tombol left-Ctrl-key, tombol left-Alt-key , dan tombol F1-key ditekan bersamaan. . Anda bisa kembali ke X Window System, biasanya berjalan di konsol virtual 7, dengan menekan Alt-F7 .
Anda bisa mengganti ke konsol virtual lain, misalnya ke konsol 1, dari commandline.
 # chvt 1 
Anda mengetikkan Ctrl-D , yaitu tombol left-Ctrl-key dan tombol d-key ditekan bersamaan, pada prompt perintah untuk menutup aktivitas shell. Jika Anda berada di konsol karakter, Anda kembali ke prompt masuk dengan ini. Meskipun karakter kontrol ini disebut "kontrol D" dengan huruf besar, Anda tidak perlu menekan tombol Shift. Ekspresi tangan pendek, ^D , juga digunakan untuk Ctrl-D . Bergantian, Anda bisa mengetik "exit".
Jika Anda berada di x-terminal-emulator (1) , Anda dapat menutup jendela x-terminal-emulator dengan ini.
Sama seperti OS modern lainnya dimana operasi file melibatkan data cache dalam memori untuk peningkatan kinerja, sistem Debian memerlukan prosedur shutdown yang tepat sebelum power dimatikan dengan aman. Ini untuk menjaga integritas file, dengan memaksa semua perubahan memori untuk ditulis ke disk. Jika kontrol daya perangkat lunak tersedia, prosedur shutdown secara otomatis mematikan daya sistem. (Jika tidak, Anda mungkin harus menekan tombol daya selama beberapa detik setelah prosedur penghentian.)
Anda bisa mematikan sistem di bawah mode multiuser normal dari commandline.
 # shutdown -h sekarang 
Anda bisa mematikan sistem di bawah mode single-user dari commandline.
 # poweroff -i -f 
Atau, Anda bisa mengetik Ctrl-Alt-Delete ( left-Ctrl-key left-Alt-Key , dan tombol Delete ditekan bersamaan) untuk shutdown jika " /etc/inittab " berisi " ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now "di dalamnya. Lihat inittab (5) untuk rinciannya.
Lihat Bagian 6.9.6, "Bagaimana mematikan sistem remote pada SSH" .
Saat layar mengamuk setelah melakukan beberapa hal lucu seperti " cat <some-binary-file> ", ketik " reset " pada command prompt. Anda mungkin tidak dapat melihat perintah bergema saat Anda mengetik. Anda mungkin juga mengeluarkan " clear " untuk membersihkan layar.
Meskipun bahkan instalasi minimal sistem Debian tanpa tugas lingkungan desktop menyediakan fungsi dasar Unix, sebaiknya instal beberapa paket perintah dan kursor tambahan berdasarkan paket terminal karakter seperti mc dan vim dengan apt-get (8) untuk pemula. untuk memulai dengan berikut ini.
 # apt-get update
  ...
 # apt-get install mc vim sudo
  ... 
Jika Anda sudah menginstal paket ini, tidak ada paket baru yang diinstal.
Tabel 1.1. Daftar paket program teks-teks yang menarik
paketpopconukurandeskripsi
mcV: 69, I: 2401440Pengelola file layar penuh mode teks
sudoV: 423, I: 7213178Sebuah program untuk mengizinkan hak istimewa root terbatas kepada pengguna
vimV: 117, I: 3962507Editor teks Unix Vi IMproved, editor teks pemrogram (versi standar)
vim-tinyV: 65, I: 9661091Editor teks Unix Vi IMproved, editor teks pemrogram (versi kompak)
emacs25V: 10, I: 1819211Proyek GNU Emacs, editor teks extensible Lisp berbasis
w3mV: 184, I: 6052301Browser mode teks WWW
gpmV: 13, I: 21489Gaya Unix cut-and-paste pada text console (daemon)

Mungkin ada baiknya membaca beberapa dokumentasi informatif.
Tabel 1.2. Daftar paket dokumentasi informatif
paketpopconukurandeskripsi
doc-debianSaya: 856166Dokumentasi Proyek Debian, (FAQ Debian) dan dokumen lainnya
debian-policySaya: 825237Manual Kebijakan Debian dan dokumen terkait
developers-referenceSaya: 71304Panduan dan informasi untuk pengembang Debian
maint-guideSaya: 4987Panduan Pemelihara Baru Debian
debian-historySaya: 15034Sejarah Proyek Debian
debian-faqI: 8451277FAQ Debian

Anda dapat menginstal beberapa paket berikut ini.
 # apt-get install package_name 
Jika Anda tidak ingin menggunakan akun pengguna utama Anda untuk kegiatan pelatihan berikut, Anda dapat membuat akun pengguna pelatihan, misalnya fish dengan yang berikut.
 # ikan adduser 
Jawab semua pertanyaan.
Ini membuat akun baru bernama fish . Setelah latihan Anda, Anda dapat menghapus akun pengguna ini dan direktori home-nya dengan yang berikut.
 # deluser - ikan cemara-rumah 
Untuk workstation pengguna tunggal khas seperti sistem Debian desktop pada PC laptop, umum untuk menggunakan konfigurasi sudo sederhana (8) sebagai berikut untuk membiarkan pengguna yang tidak memiliki hak istimewa, misalnya penguin , untuk mendapatkan hak istimewa administratif hanya dengan penggunanya. password tapi tanpa password root
 # echo "penguin ALL = (ALL) ALL" >> / etc / sudoers 
Sebagai alternatif, juga umum dilakukan sebagai berikut untuk membiarkan pengguna yang tidak memiliki hak istimewa, misalnya penguin , untuk mendapatkan hak istimewa administratif tanpa kata kunci apapun.
 # echo "penguin ALL = (ALL) NOPASSWD: ALL" >> / etc / sudoers 
Trik ini hanya boleh digunakan untuk workstation pengguna tunggal yang Anda kelola dan di mana Anda adalah satu-satunya pengguna.
[PERINGATAN]PERINGATAN
Jangan membuat akun pengguna biasa di workstation multiuser seperti ini karena akan sangat buruk bagi keamanan sistem.
[Peringatan]Peringatan
Kata sandi dan akun penguin dalam contoh di atas memerlukan perlindungan sebanyak root password dan akun root.
[Peringatan]Peringatan
Keistimewaan administratif dalam konteks ini adalah milik seseorang yang diberi wewenang untuk melakukan tugas administrasi sistem pada workstation. Jangan pernah memberi beberapa manajer di departemen Admin perusahaan Anda atau atasan Anda hak istimewa tersebut kecuali jika mereka diberi wewenang dan mampu.
[Catatan]Catatan
Untuk memberikan hak istimewa akses ke perangkat terbatas dan file terbatas, Anda harus mempertimbangkan untuk menggunakan grupuntuk memberikan akses terbatas alih-alih menggunakan hak istimewa root melalui sudo (8) .
[Catatan]Catatan
Dengan konfigurasi yang lebih bijaksana dan hati-hati, sudo (8) dapat memberikan hak administratif terbatas kepada pengguna lain pada sistem bersama tanpa berbagi kata sandinya. Ini dapat membantu akuntabilitas dengan host dengan beberapa administrator sehingga Anda dapat mengetahui siapa yang melakukan apa. Di sisi lain, Anda mungkin tidak ingin orang lain memiliki hak istimewa seperti itu.
Sekarang Anda siap untuk bermain dengan sistem Debian tanpa risiko selama Anda menggunakan akun pengguna yang tidak memiliki hak istimewa.
Ini karena sistem Debian, bahkan setelah pemasangan default, dikonfigurasi dengan hak akses file yang benar yang mencegah pengguna yang tidak istimewa merusak sistem. Tentu saja, mungkin masih ada beberapa lubang yang bisa dieksploitasi tapi mereka yang khawatir dengan masalah ini seharusnya tidak membaca bagian ini tapi harus membaca Mengamankan Debian Manual .
Kami mempelajari sistem Debian sebagai sistem mirip Unix dengan yang berikut.
Di GNU / Linux dan sistem operasi mirip-Unix lainnya, file - file diatur ke dalam direktori . Semua file dan direktori disusun dalam satu pohon besar yang berakar pada " / ". Ini disebut pohon karena jika Anda menggambar filesystem, sepertinya pohon tapi terbalik.
File dan direktori ini dapat tersebar di beberapa perangkat. mount (8) berfungsi untuk melampirkan filesystem yang ditemukan pada beberapa perangkat ke file tree besar. Sebaliknya, umount (8) melepaskannya lagi. Pada kernel Linux baru-baru ini, mount (8) dengan beberapa opsi dapat mengikat bagian dari pohon file di tempat lain atau dapat me-mount filesystem seperti shared, private, slave, atau unbindable. Pilihan mount yang didukung untuk setiap filesystem tersedia di " /usr/share/doc/linux-doc-*/Documentation/filesystems/ ".
Direktori pada sistem Unix disebut folder pada beberapa sistem lain. Harap dicatat juga bahwa tidak ada konsep untuk drive seperti " A: " pada sistem Unix manapun. Ada satu filesystem, dan semuanya disertakan. Ini adalah keuntungan besar dibandingkan dengan Windows.
Berikut adalah beberapa dasar-dasar file Unix.
  • Nama file bersifat case sensitive . Artinya, " MYFILE " dan " MyFile " adalah file yang berbeda.
  • Direktori root berarti akar dari filesystem yang disebut hanya " / ". Jangan bingung ini dengan home directory untuk root user: " /root ".
  • Setiap direktori memiliki nama yang dapat berisi huruf atau simbol kecuali " / " . Direktori root adalah pengecualian; namanya adalah " / " (diucapkan "garis miring" atau "direktori akar") dan tidak dapat diganti namanya.
  • Setiap file atau direktori ditentukan oleh nama file berkualifikasi lengkap , nama file absolut , atau path , memberikan urutan direktori yang harus dilalui untuk mencapainya. Ketiga istilah itu sama artinya.
  • Semua namafile yang memenuhi syarat diawali dengan direktori " / ", dan ada " / " di antara masing-masing direktori atau file dalam nama file.Yang pertama " / " adalah direktori tingkat atas, dan subdirektori berturut-turut terpisah lainnya, sampai kita mencapai entri terakhir yang merupakan nama file sebenarnya. Kata-kata yang digunakan di sini bisa membingungkan. Ambil nama file berkualifikasi berikut sebagai contoh: " /usr/share/keytables/us.map.gz ". Namun, orang juga mengacu pada basename " us.map.gz " sendiri sebagai nama file.
  • Direktori root memiliki sejumlah cabang, seperti " /etc/ " dan " /usr/ ". Subdirektori ini pada gilirannya menjadi subdirektori yang lebih banyak lagi, seperti " /etc/init.d/ " dan " /usr/local/ ". Semua hal yang dilihat secara kolektif disebut pohon direktori . Anda bisa memikirkan nama file absolut sebagai rute dari basis pohon (" / ") sampai akhir beberapa cabang (file). Anda juga mendengar orang berbicara tentang pohon direktori seolah-olah itu adalah pohon keluarga yang mencakup semua keturunan langsung dari satu sosok yang disebut direktori akar (" / "): sehingga subdirektori memiliki orang tua , dan jalan menunjukkan keturunan lengkap sebuah file. Ada juga path relatif yang dimulai di suatu tempat selain direktori root. Anda harus ingat bahwa direktori " ../ " mengacu pada direktori induk. Terminologi ini juga berlaku untuk direktori lain seperti struktur, seperti struktur data hirarkis.
  • Tidak ada komponen nama path direktori khusus yang sesuai dengan perangkat fisik, seperti hard disk Anda. Ini berbeda dengan RT-11 , CP / M , OpenVMS , MS-DOS , AmigaOS , dan Microsoft Windows , di mana jalur berisi nama perangkat seperti " C:\ ". (Namun, entri direktori ada yang merujuk ke perangkat fisik sebagai bagian dari filesystem normal. Lihat Bagian 1.2.2, "Filesystem internals" .)
[Catatan]Catatan
Meskipun Anda dapat menggunakan hampir semua huruf atau simbol dalam nama file, praktiknya adalah ide yang buruk untuk melakukannya. Sebaiknya hindari karakter yang sering memiliki arti khusus pada baris perintah, termasuk spasi, tab, baris baru, dan karakter khusus lainnya: { } ( ) [ ] ' ` " \ / > < | ; ! # & ^ * % @ $ Jika Anda ingin memisahkan kata dalam sebuah nama, pilihan yang baik adalah periode, tanda hubung, dan garis bawah. Anda juga bisa memanfaatkan setiap kata, " LikeThis ". Pengguna Linux yang berpengalaman cenderung menghindari spasi pada nama file.
[Catatan]Catatan
Kata "root" bisa berarti "root user" atau "root directory". Konteks penggunaannya harus jelas.
[Catatan]Catatan
Kata path digunakan tidak hanya untuk nama file berkualifikasi lengkap seperti di atas, tetapi juga untuk jalur pencarian perintah .Arti yang dimaksud biasanya jelas dari konteksnya.
Praktik terbaik terperinci untuk hirarki file dijelaskan dalam Standar Histarki Filesystem (" /usr/share/doc/debian-policy/fhs/fhs-2.3.txt.gz " dan hier (7) ). Anda harus ingat fakta berikut sebagai starter.
Tabel 1.3. Daftar penggunaan direktori kunci
direktoripenggunaan direktori
/direktori root
/etc/sistem file konfigurasi yang luas
/var/log/file log sistem
/home/semua direktori home untuk semua pengguna yang tidak memiliki privilege
Mengikuti tradisi Unix , sistem Debian GNU / Linux menyediakan filesystem dimana data fisik pada hard disk dan perangkat penyimpanan lainnya berada, dan interaksi dengan perangkat keras seperti layar konsol dan konsol serial jarak jauh direpresentasikan secara terpadu di bawah " /dev/ ".
Setiap file, direktori, named pipe (dua program dapat berbagi data), atau perangkat fisik pada sistem Debian GNU / Linux memiliki struktur data yang disebut inode yang menggambarkan atribut yang terkait seperti pengguna yang memilikinya (pemilik), kelompok yang dimilikinya, waktu yang terakhir diakses, dan sebagainya. Ide untuk mewakili hampir semua hal dalam filesystem adalah inovasi Unix, dan kernel Linux modern telah mengembangkan gagasan ini lebih jauh lagi. Kini, informasi tentang proses yang berjalan di komputer bisa ditemukan di filesystem.
Representasi abstrak dan kesatuan entitas fisik dan proses internal ini sangat kuat karena ini memungkinkan kita untuk menggunakan perintah yang sama untuk jenis operasi yang sama pada banyak perangkat yang sama sekali berbeda. Bahkan dimungkinkan untuk mengubah cara kerja kernel dengan menulis data ke file khusus yang terkait dengan proses yang berjalan.
[Tip]Tip
Jika Anda perlu mengidentifikasi korespondensi antara pohon file dan entitas fisik, jalankan mount (8) tanpa argumen.
Perizinan filesystem sistem mirip-Unix didefinisikan untuk tiga kategori pengguna yang terpengaruh.
  • Pengguna yang memiliki file ( u )
  • Pengguna lain dalam grup yang file miliknya ( g )
  • Semua pengguna lain ( o ) juga disebut sebagai "dunia" dan "semua orang"
Untuk file tersebut, setiap izin yang sesuai memungkinkan tindakan berikut.
  • Izin baca ( r ) memungkinkan pemilik untuk memeriksa isi file.
  • Izin menulis ( w ) memungkinkan pemilik untuk mengubah file.
  • Izin eksekusi ( x ) memungkinkan pemilik untuk menjalankan file sebagai sebuah perintah.
Untuk direktori, setiap izin yang sesuai memungkinkan tindakan berikut.
  • Izin baca ( r ) memungkinkan pemilik untuk daftar isi direktori.
  • Izin menulis ( w ) memungkinkan pemilik untuk menambahkan atau menghapus file dalam direktori.
  • Izin eksekusi ( x ) memungkinkan pemilik mengakses file dalam direktori.
Di sini, izin eksekusi pada direktori berarti tidak hanya untuk memungkinkan pembacaan file di direktori itu tetapi juga untuk memungkinkan melihat atribut mereka, seperti ukuran dan waktu modifikasi.
ls (1) digunakan untuk menampilkan informasi izin (dan lebih) untuk file dan direktori. Bila dipanggil dengan opsi " -l ", ini akan menampilkan informasi berikut sesuai urutan yang diberikan.
  • Jenis file (karakter pertama)
  • Izin akses file (sembilan karakter, terdiri dari tiga karakter masing-masing untuk pengguna, grup, dan lainnya dalam urutan ini)
  • Jumlah hard link ke file
  • Nama pengguna yang memiliki file
  • Nama grup yang menjadi milik berkas itu
  • Ukuran file dalam karakter (bytes)
  • Tanggal dan waktu file (mtime)
  • Nama file
Tabel 1.4. Daftar karakter pertama dari " ls -l " output
karakterberarti
-file normal
ddirektori
lsymlink
cnode perangkat karakter
bblok perangkat node
pbernama pipa
sstopkontak

chown (1) digunakan dari akun root untuk mengubah pemilik file. chgrp (1) digunakan dari pemilik file atau akun root untuk mengubah grup file. chmod (1)digunakan dari pemilik file atau akun root untuk mengubah hak akses file dan direktori. Sintaks dasar untuk memanipulasi file foo adalah sebagai berikut.
 # chown <newowner> foo
 # chgrp <newgroup> foo
 # chmod [ugoa] [+ - =] [rwxXst] [, ...] foo 
Misalnya, Anda dapat membuat pohon direktori yang dimiliki oleh pengguna foo dan dibagi oleh grup bar dengan yang berikut.
 # cd / some / location /
 # chown -R foo: bar.
 # chmod -R ug + rwX, o = rX. 
Ada tiga bit izin khusus lainnya.
  • ID pengguna yang ditetapkan sedikit ( s atau S bukan x pengguna)
  • ID kelompok kumpulan yang ditetapkan ( s atau S bukan x kelompok)
  • Bit lengket ( t atau T bukan x lain )
Di sini output dari " ls -l " untuk bit-bit ini dikapitalisasi jika bit eksekusi yang tersembunyi oleh keluaran ini tidak disetel .
Setting set user ID pada file eksekusi memungkinkan pengguna mengeksekusi file eksekusi dengan ID pemilik file (misalnya root ). Demikian pula, pengaturan set group ID pada file eksekusi memungkinkan pengguna mengeksekusi file eksekusi dengan ID grup file (misalnya root ). Karena pengaturan ini dapat menyebabkan risiko keamanan, memungkinkan mereka membutuhkan kehati-hatian ekstra.
Setting set group ID pada sebuah direktori memungkinkan skema pembuatan file BSD-like dimana semua file yang dibuat dalam direktori termasuk dalam kelompok direktori.
Menetapkan bit lengket pada direktori mencegah file dalam direktori dihapus oleh pengguna yang bukan pemilik file. Untuk mengamankan isi file dalam direktori yang dapat ditulis di dunia seperti " /tmp " atau dalam direktori yang dapat ditulis oleh kelompok, kita tidak boleh hanya mereset izin tulis untuk file tersebut tetapi juga mengatur bit lengket pada direktori. Jika tidak, file dapat dihapus dan file baru dapat dibuat dengan nama yang sama oleh pengguna yang memiliki akses tulis ke direktori.
Berikut adalah beberapa contoh menarik dari hak akses file.
 $ ls -l / etc / passwd / etc / shadow / dev / ppp / usr / sbin / exim4
 crw ------ akar akar T 1 108, 0 Oct 16 20:57 / dev / ppp
 -rw-r - r-- 1 akar akar 2761 30 Agustus 10:38 / etc / passwd
 -rw-r ----- 1 bayangan root 1695 Aug 30 10:38 / etc / shadow
 -rwsr-xr-x 1 akar akar 973824 23 Sep 20:04 / usr / sbin / exim4
 $ ls -ld / tmp / var / tmp / usr / local / var / mail / usr / src
 drwxrwxrwt 14 akar root 20480 16 Okt 21:25 / tmp
 drwxrwsr-x 10 staf akar 4096 29 Sep 22:50 / usr / local
 drwxr-xr-x 10 root root 4096 11 Okt 00:28 / usr / src
 drwxrwsr-x 2 surat akar 4096 15 Okt 21:40 / var / mail
 drwxrwxrwt 3 root root 4096 16 Okt 21:20 / var / tmp 
Ada mode numerik alternatif untuk menggambarkan hak akses file dengan chmod (1) . Mode numerik ini menggunakan angka oktal 3 digit (radix = 8) 3 sampai 4 digit.
Tabel 1.5. Mode numerik untuk hak akses file dalam perintah chmod (1)
angkaberarti
Digit opsional pertamajumlah set user ID (= 4), set group ID (= 2), dan bit lengket (= 1)
Digit keduajumlah baca (= 4), tulis (= 2), dan jalankan (= 1) izin untuk pengguna
Digit ketigaditto untuk grup
Digit keempatditto untuk yang lain

Ini terdengar rumit tapi sebenarnya cukup sederhana. Jika Anda melihat beberapa kolom (2-10) pertama dari output perintah " ls -l " dan membacanya sebagai representasi file peralihan file biner (radix = 2) ("-" menjadi "0" dan "rwx" menjadi " 1 "), 3 digit terakhir dari nilai mode numerik harus masuk akal sebagai representasi hak suara oktal (radix = 8) kepada Anda.
Misalnya, coba yang berikut ini
 $ touch foo bar
 $ chmod u = rw, go = r foo
 $ chmod 644 bar
 $ ls -l foo bar
 -rw-r - r-- 1 penguin penguin 0 Oct 16 21:39 bar
 -rw-r - r-- 1 penguin penguin 0 Oct 16 21:35 foo 
[Tip]Tip
Jika Anda perlu mengakses informasi yang ditampilkan oleh " ls -l " pada skrip shell, Anda harus menggunakan perintah terkait seperti tes (1) , stat (1) dan readlink (1) . Shell builtin seperti " [ " atau " test " juga bisa digunakan.
Izin apa yang diterapkan pada file atau direktori yang baru dibuat dibatasi oleh perintah builtin umask shell. Lihat tanda hubung (1) , bash (1) , dan builtins (7) .
 (hak akses berkas) = ​​(izin file yang diminta) & ~ (nilai umask) 
Tabel 1.6. Contoh nilai umask
umaskhak akses file yang dibuathak akses direktori dibuatpemakaian
0022-rw-r--r---rwxr-xr-xhanya bisa ditulis oleh pengguna
0002-rw-rw-r---rwxrwxr-xdapat ditulis oleh kelompok

Sistem Debian menggunakan skema grup pribadi pengguna (UPG) sebagai defaultnya. UPG dibuat setiap kali pengguna baru ditambahkan ke sistem. UPG memiliki nama yang sama dengan pengguna yang diciptakannya dan pengguna tersebut adalah satu-satunya anggota UPG. Skema UPG membuat aman untuk mengatur umask ke 0002 karena setiap pengguna memiliki grup pribadi mereka sendiri. (Dalam beberapa varian Unix, sangat umum untuk mensetup semua pengguna normal yang termasuk dalam satu grup users dan merupakan ide bagus untuk mengatur umask ke 0022 untuk keamanan dalam kasus semacam itu.)
[Tip]Tip
Aktifkan UPG dengan meletakkan " umask 002 " di file ~/.bashrc .
Untuk membuat izin kelompok untuk diterapkan pada pengguna tertentu, pengguna tersebut perlu dijadikan anggota grup dengan menggunakan " sudo vigr " untuk /etc/group dan " sudo vigr -s " untuk /etc/gshadow . Anda perlu masuk setelah logout (atau menjalankan " exec newgrp ") untuk mengaktifkan konfigurasi grup baru.
[Catatan]Catatan
Sebagai alternatif, Anda dapat secara dinamis menambahkan pengguna ke grup selama proses otentikasi dengan menambahkan baris " auth optional pam_group.so " ke " /etc/pam.d/common-auth " dan setting " /etc/security/group.conf ". (Lihat Bab 4, Otentikasi.)
Perangkat perangkat keras hanyalah jenis file lain pada sistem Debian. Jika Anda memiliki masalah dalam mengakses perangkat seperti CD-ROM dan memory stick USB dari akun pengguna, Anda harus menjadikan pengguna tersebut sebagai anggota grup yang relevan.
Beberapa kelompok sistem yang disediakan memungkinkan anggota mereka mengakses file dan perangkat tertentu tanpa hak istimewa root .
Tabel 1.7. Daftar kelompok sistem yang disediakan untuk akses file
kelompokdeskripsi untuk file dan perangkat yang mudah diakses
dialoutakses penuh dan langsung ke port serial (" /dev/ttyS[0-3] ")
dipakses terbatas ke port serial untuk koneksi Dialup IP ke rekan yang terpercaya
cdromCD-ROM, DVD +/- RW drive
audioperangkat audio
videoperangkat video
scannerpemindai
admsistem pemantauan log
staffbeberapa direktori untuk pekerjaan administrasi junior: " /usr/local ", " /home "

[Tip]Tip
Anda perlu masuk ke grup dialout untuk mengkonfigurasi ulang modem, menelepon ke mana saja, dll. Tetapi jika root membuat file konfigurasi yang telah ditentukan sebelumnya untuk rekan yang terpercaya di " /etc/ppp/peers/ ", Anda hanya perlu masuk ke grup dip untuk buat koneksi Dialup IP ke rekan yang terpercaya dengan menggunakan perintah pppd (8) , pon (1) , dan poff (1) .
Beberapa kelompok sistem yang disediakan memungkinkan anggota mereka menjalankan perintah tertentu tanpa hak istimewa root .
Tabel 1.8. Daftar sistem yang diketahui menyediakan kelompok untuk eksekusi perintah tertentu
kelompokperintah yang mudah diakses
sudojalankan sudo tanpa password mereka
lpadminjalankan perintah untuk menambahkan, memodifikasi, dan menghapus printer dari database printer

Untuk daftar lengkap sistem yang disediakan pengguna dan grup, lihat versi terbaru dokumen "Pengguna dan Grup" di " /usr/share/doc/base-passwd/users-and-groups.html " yang disediakan oleh base-passwd paket base-passwd
Lihat passwd (5) , kelompok (5) , bayangan (5) , newgrp (1) , vipw (8) , vigr (8) , dan pam_group (8) untuk perintah manajemen pengguna dan sistem grup.
Ada tiga jenis stempel waktu untuk file GNU / Linux.
Tabel 1.9. Daftar jenis timestamps
mengetikartinya (definisi Unix yang bersejarah)
mtimewaktu modifikasi file ( ls -l )
ctimewaktu perubahan status file ( ls -lc )
sebuah waktuwaktu akses file terakhir ( ls -lu )

[Catatan]Catatan
ctime bukan waktu pembuatan file
[Catatan]Catatan
Nilai sebenarnya dari atime pada sistem GNU / Linux mungkin berbeda dari definisi Unix yang bersejarah.
  • Timpa file mengubah semua atribut mtime , ctime , dan atime dari file.
  • Mengubah kepemilikan atau izin dari sebuah file mengubah atribut ctime dan atime dari file tersebut.
  • Membaca sebuah file mengubah atribut atime file pada sistem Unix yang bersejarah.
  • Membaca sebuah file mengubah atribut atime file pada sistem GNU / Linux jika filesystemnya di-mount dengan " strictatime ".
  • Membaca file untuk pertama kalinya atau setelah satu hari mengubah atribut atime file pada sistem GNU / Linux jika filesystemnya di-mount dengan " relatime ". (perilaku default sejak Linux 2.6.30)
  • Membaca file tidak mengubah atribut atime file pada sistem GNU / Linux jika filesystemnya di-mount dengan " noatime ".
[Catatan]Catatan
Opsi mount " noatime " dan " relatime " diperkenalkan untuk memperbaiki sistem file membaca kinerja di bawah kasus penggunaan normal. Operasi baca file sederhana di bawah opsi " strictatime " menyertai operasi tulis yang memakan waktu untuk memperbarui atribut atime . Tapi atribut atime jarang digunakan kecuali untuk file mbox (5) . Lihat mount (8) .
Gunakan sentuhan (1) perintah untuk mengganti cap waktu dari file yang ada.
Untuk cap waktu, perintah ls menghasilkan string yang berbeda di bawah lokasi non-Inggris (" fr_FR.UTF-8 ") dari bawah yang lama (" C ").
 $ LANG = fr_FR.UTF-8 ls -l foo
 -rw-rw-r-- 1 penguin penguin 0 oktober.  16 21:35 foo
 $ LANG = C ls -l foo
 -rw-rw-r-- 1 penguin penguin 0 Oct 16 21:35 foo 
[Tip]Tip
Lihat Bagian 9.2.5, "Tampilan waktu dan tanggal yang disesuaikan" untuk menyesuaikan keluaran " ls -l ".
Ada dua metode untuk mengaitkan file " foo " dengan nama file " bar " yang berbeda.
Lihat contoh berikut untuk perubahan jumlah tautan dan perbedaan halus hasil perintah rm .
 $ umask 002
 $ echo "Konten Asli"> foo
 $ ls -li foo
 1449840 -rw-rw-r-- 1 penguin penguin 17 Oct 16 21:42 foo
 $ ln foo bar # hard link
 $ ln-s foo baz # symlink
 $ ls -li foo bar baz
 1449840 -rw-rw-r-- 2 penguin penguin 17 Oct 16 21:42 bar
 1450180 lrwxrwxrwx 1 penguin penguin 3 Oct 16 21:47 baz -> foo
 1449840 -rw-rw-r-- 2 penguin penguin 17 16 Okt 21:42 foo
 $ rm foo
 $ echo "Konten Baru"> foo
 $ ls -li foo bar baz
 1449840 -rw-rw-r-- 1 penguin penguin 17 Oct 16 21:42 bar
 1450180 lrwxrwxrwx 1 penguin penguin 3 Oct 16 21:47 baz -> foo
 1450183 -rw-rw-r-- 1 penguin penguin 12 16 Oct 21:48 foo
 $ kucing bar
 Konten Asli
 $ cat baz
 Konten baru 
Hardlink dapat dibuat dalam filesystem yang sama dan memiliki nomor inode yang sama dengan opsi " -i " dengan ls (1) mengungkapkan.
Symlink selalu memiliki hak akses file nominal " rwxrwxrwx", seperti yang ditunjukkan pada contoh di atas, dengan izin akses yang efektif ditentukan oleh hak akses file yang akan diincar.
[Peringatan]Peringatan
Biasanya ide bagus untuk tidak membuat tautan simbolis yang rumit atau tautan keras sama sekali kecuali Anda memiliki alasan yang sangat bagus. Ini dapat menyebabkan mimpi buruk di mana kombinasi logis dari tautan simbolis menghasilkan loop di filesystem.
[Catatan]Catatan
Biasanya lebih baik menggunakan tautan simbolis daripada tautan keras kecuali Anda memiliki alasan bagus untuk menggunakan tautan keras.
The " ." direktori link ke direktori yang muncul di, sehingga penghitungan link dari setiap direktori baru dimulai pada 2. Direktori " .." link ke direktori induk, sehingga jumlah link direktori meningkat dengan penambahan subdirektori baru.
Jika Anda hanya pindah ke Linux dari Windows, segera menjadi jelas seberapa baik dirancang nama file yang menghubungkan Unix, dibandingkan dengan Windows setara dengan "jalan pintas". Karena diimplementasikan di filesystem, aplikasi tidak bisa melihat perbedaan antara file yang terhubung dan yang asli. Dalam kasus hardlink, sebenarnya tidak ada bedanya.

1.2.8. Pipa yang dinamai (FIFO)

Sebuah pipa bernama adalah file yang berfungsi seperti pipa. Anda memasukkan sesuatu ke dalam file, dan itu keluar dari ujung yang lain. Jadi disebut FIFO, atau First-In-First-Out: hal pertama yang Anda masukkan ke dalam pipa adalah hal pertama yang keluar dari ujung yang lain.
Jika Anda menulis ke pipa bernama, proses penulisan ke pipa tidak berhenti sampai informasi yang tertulis dibaca dari pipa. Jika Anda membaca dari pipa bernama, proses membaca menunggu hingga tidak ada yang bisa dibaca sebelum berhenti. Ukuran pipa selalu nol --- tidak menyimpan data, hanya menghubungkan dua proses seperti fungsi yang ditawarkan oleh |sintaks " " shell Namun, karena pipa ini memiliki nama, kedua proses tidak harus berada pada baris perintah yang sama atau bahkan dijalankan oleh pengguna yang sama. Pipa adalah inovasi Unix yang sangat berpengaruh.
Misalnya, coba yang berikut ini
$ cd; mkfifo mypipe
$ echo "hello"> mypipe & # dimasukkan ke dalam latar belakang
[1] 8022
$ ls -l mypipe
prw-rw-r-- 1 penguin penguin 0 Oct 16 21:49 mypipe
$ kucing mypipe
 Halo
[1] + Selesai echo "halo"> mypipe
$ ls mypipe
mypipe
$ rm mypipe 

1.2.9. Soket

Soket digunakan secara luas oleh semua komunikasi internet, database, dan sistem operasi itu sendiri. Hal ini mirip dengan pipa bernama (FIFO) dan memungkinkan proses untuk bertukar informasi bahkan di antara komputer yang berbeda. Untuk soket, proses tersebut tidak perlu berjalan bersamaan dan juga tidak berjalan seperti anak-anak dari proses nenek moyang yang sama. Inilah titik akhir untuk komunikasi antar proses (IPC) . Pertukaran informasi dapat terjadi melalui jaringan antara host yang berbeda. Dua yang paling umum adalah soket Internet dan soket domain Unix .
[Tip]Tip
netstat -an" memberikan gambaran soket yang sangat berguna yang terbuka pada sistem yang diberikan.

1.2.10. File perangkat

File perangkat merujuk ke perangkat fisik atau virtual pada sistem Anda, seperti hard disk, kartu video, layar, atau keyboard Anda. Contoh perangkat virtual adalah konsol yang diwakili oleh " /dev/console".
Ada 2 jenis file device.
  • Perangkat karakter
    • Mengakses satu karakter sekaligus
    • 1 karakter = 1 byte
    • Misalnya perangkat keyboard, port serial, ...
  • Blokir perangkat
    • diakses di unit yang lebih besar yang disebut blok
    • 1 blok> 1 byte
    • Misalnya hard disk, ...
Anda dapat membaca dan menulis file perangkat, meskipun file tersebut mungkin berisi data biner yang mungkin merupakan omong kosong yang tidak bisa dipahami-untuk-manusia. Menulis data secara langsung ke file-file ini terkadang berguna untuk troubleshooting koneksi hardware. Misalnya, Anda bisa membuang file teks ke perangkat printer " /dev/lp0" atau mengirim perintah modem ke port serial yang sesuai " /dev/ttyS0". Tapi, kecuali jika ini dilakukan dengan hati-hati, ini bisa menyebabkan bencana besar. Jadi berhati-hatilah.
[Catatan]Catatan
Untuk akses normal ke printer, gunakan lp (1) .
Nomor simpul perangkat ditampilkan dengan menjalankan ls (1) sebagai berikut.
 $ ls -l / dev / sda / dev / sr0 / dev / ttyS0 / dev / nol
brw-rw --- T 1 root disk 8, 0 Oct 16 20:57 / dev / sda
brw-rw --- T + 1 root cdrom 11, 0 Oct 16 21:53 / dev / sr0
crw-rw --- T 1 root dialout 4, 64 16 Okt 20:57 / dev / ttyS0
crw-rw-rw- 1 akar akar 1, 5 Oct 16 20:57 / dev / nol 
  • /dev/sda" memiliki nomor perangkat utama 8 dan nomor perangkat minor 0. Ini dapat dibaca / dibaca oleh pengguna yang termasuk dalam diskgrup.
  • /dev/sr0" memiliki nomor perangkat utama 11 dan nomor perangkat minor 0. Ini dapat dibaca / dibaca oleh pengguna yang termasuk dalam cdromgrup.
  • /dev/ttyS0" memiliki nomor perangkat utama 4 dan nomor perangkat minor 64. Ini dapat dibaca / dibaca oleh pengguna yang termasuk dalam dialoutgrup.
  • /dev/zero" memiliki nomor perangkat utama 1 dan nomor perangkat minor 5. Ini bisa dibaca / dibaca oleh siapa saja.
Pada sistem Linux modern, filesystem di bawah " /dev/" secara otomatis dihuni oleh mekanisme udev (7) .

1.2.11. File perangkat khusus

Ada beberapa file perangkat khusus.
Tabel 1.10. Daftar file perangkat khusus
file perangkattindakandeskripsi respon
/dev/nullBaca bacamengembalikan karakter "end-of-file (EOF)"
/dev/nullmenulistidak mengembalikan apapun (lubang pembuangan data tanpa dasar)
/dev/zeroBaca bacakembali "karakter \0(NUL)" (tidak sama dengan angka nol ASCII)
/dev/randomBaca bacamengembalikan karakter acak dari generator bilangan acak sejati, memberikan entropi nyata (lambat)
/dev/urandomBaca bacamengembalikan karakter acak dari generator bilangan pseudorandom yang aman secara kriptografi
/dev/fullmenuliskembalikan kesalahan disk penuh (ENOSPC)

Ini sering digunakan bersamaan dengan pengalihan shell (lihat Bagian 1.5.8, "Urutan perintah tipikal dan pengalihan shell" ).

1.2.12. procfs dan sysfs

The procfs dan sysfs dipasang pada " /proc" dan " /sys" adalah pseudo-filesystem dan mengekspos struktur data internal dari kernel untuk userspace. Dengan kata lain, entri ini bersifat virtual, artinya mereka bertindak sebagai jendela yang mudah digunakan dalam pengoperasian sistem operasi.
Direktori " /proc" berisi (antara lain) satu subdirektori untuk setiap proses yang berjalan pada sistem, yang dinamai sesuai dengan ID proses (PID). Utilitas sistem yang mengakses informasi proses, seperti ps (1) , dapatkan informasinya dari struktur direktori ini.
Direktori di bawah " /proc/sys/" berisi antarmuka untuk mengubah parameter kernel tertentu pada waktu berjalan. (Anda dapat melakukan hal yang sama melalui perintah sysctl (8) khusus atau file preload / configuration " /etc/sysctl.conf" nya.)
Orang sering panik saat mereka melihat satu file pada khususnya - " /proc/kcore" - yang umumnya sangat besar. Ini (kurang lebih) salinan isi memori komputer Anda. Ini digunakan untuk debug kernel. Ini adalah file virtual yang menunjuk ke memori komputer, jadi jangan khawatir tentang ukurannya.
Direktori di bawah " /sys" berisi struktur data kernel yang diekspor, atribut mereka, dan keterkaitannya di antara mereka. Ini juga berisi antarmuka untuk mengubah parameter kernel tertentu pada saat run time.
Lihat " proc.txt(.gz)", " sysfs.txt(.gz)" dan dokumen terkait lainnya dalam dokumentasi kernel Linux (" /usr/share/doc/linux-doc-*/Documentation/filesystems/*") yang disediakan oleh linux-doc-*paket.

1.2.13. tmpfs

The tmpfs adalah filesystem sementara yang menyimpan semua file dalam memori virtual . Data tmpfs di cache halaman pada memori dapat ditukar ke ruang swap pada disk sesuai kebutuhan.
Direktori " /run" dipasang sebagai tmpfs pada proses booting awal. Hal ini memungkinkan penulisan untuk itu bahkan ketika direktori " /" dipasang sebagai hanya-baca. Ini adalah lokasi baru untuk penyimpanan file keadaan sementara dan menggantikan beberapa lokasi yang dijelaskan di dalam Filesystem Hierarchy Standard versi 2.3:
  • /var/run" → " /run"
  • /var/lock" → " /run/lock"
  • /dev/shm" → " /run/shm"
Lihat " tmpfs.txt(.gz)" di dokumentasi kernel Linux (" /usr/share/doc/linux-doc-*/Documentation/filesystems/*") yang disediakan oleh linux-doc-*paket.
Midnight Commander (MC) adalah GNU "Swiss army knife" untuk konsol Linux dan lingkungan terminal lainnya. Ini memberi newbie sebuah menu driven console experience yang jauh lebih mudah dipelajari daripada perintah Unix standar.
Anda mungkin perlu menginstal paket Midnight Commander yang diberi judul " mc" oleh berikut ini.
 $ sudo apt-get install mc 
Gunakan perintah mc (1) untuk menjelajahi sistem Debian. Inilah cara terbaik untuk belajar. Silakan jelajahi beberapa lokasi menarik hanya dengan menggunakan tombol kursor dan tombol Enter.
  • /etc" dan subdirektorinya
  • /var/log" dan subdirektorinya
  • /usr/share/doc" dan subdirektorinya
  • /sbin" dan " /bin"
Agar MC mengubah direktori kerja saat keluar dan masuk cdke direktori, saya sarankan untuk memodifikasi " ~/.bashrc" untuk menyertakan skrip yang disediakan oleh mcpaket.
 . /usr/lib/mc/mc.sh 
Lihat mc (1) (di bawah opsi " -P") untuk alasan itu. (Jika Anda tidak mengerti apa sebenarnya yang saya bicarakan di sini, Anda dapat melakukannya nanti.)
MC bisa dimulai sebagai berikut.
 $ mc 
MC menangani semua operasi file melalui menunya, yang membutuhkan usaha pengguna minimal. Tekan saja F1 untuk mendapatkan layar bantuan. Anda bisa bermain dengan MC hanya dengan menekan tombol kursor dan tombol fungsi.
[Catatan]Catatan
Di beberapa konsol seperti gnome-terminal (1) , kunci tombol fungsi bisa dicuri oleh program konsol. Anda dapat menonaktifkan fitur ini dengan "Edit" → "Keyboard Shortcuts" untuk gnome-terminal.
Jika Anda menemukan masalah pengkodean karakter yang menampilkan karakter sampah, tambahkan " -a" ke baris perintah MC dapat membantu mencegah masalah.
Jika ini tidak membersihkan masalah tampilan Anda dengan MC, lihat Bagian 9.4.6, "Konfigurasi terminal" .
Defaultnya adalah dua panel direktori yang berisi daftar file. Mode lain yang berguna adalah dengan mengatur jendela kanan ke "informasi" untuk melihat informasi hak akses file, dsb. Berikut adalah beberapa penekanan tombol yang penting. Dengan menjalankan daemon gpm (8) , seseorang juga bisa menggunakan mouse pada konsol karakter Linux. (Pastikan untuk menekan tombol shift untuk mendapatkan perilaku normal cut and paste di MC.)
Tabel 1.11. Bindings kunci MC
kuncikunci mengikat
F1menu bantuan
F3penampil file internal
F4editor internal
F9aktifkan menu pull down
F10keluar dari komandan tengah malam
Tabbergerak di antara dua jendela
Insert atau Ctrl-Ttandai file untuk operasi beberapa file seperti salinan
Delhapus file (hati-hati --- set MC ke safe delete mode)
Tombol kursorcukup jelas

1.3.4. Trik command-line di MC

  • cd perintah mengubah direktori yang ditampilkan pada layar yang dipilih.
  • Ctrl-Enteratau Alt-Entermenyalin nama file ke baris perintah. Gunakan ini dengan perintah cp (1) dan mv (1) bersamaan dengan pengeditan baris perintah.
  • Alt-Tab menunjukkan pilihan perluasan nama file shell.
  • Seseorang dapat menentukan direktori awal untuk kedua jendela sebagai argumen MC; misalnya, " mc /etc /root".
  • Escn-key→ Fn(yaitu, Esc1→ F1, dll; Esc0→ F10)
  • Menekan Escsebelum tombol memiliki efek yang sama seperti menekan tombol Altdan tombol bersamaan; yaitu tipe Esccuntuk Alt-CEscdisebut meta-key dan kadang-kadang dicatat sebagai " M-".

1.3.5. Editor internal di MC

Editor internal memiliki skema cut-and-paste yang menarik. Menekan F3menandai awal pilihan, yang kedua F3menandai akhir seleksi dan menyoroti pilihan. Kemudian Anda bisa memindahkan kursor Anda. Jika Anda menekan F6, area yang dipilih akan dipindahkan ke lokasi kursor. Jika Anda menekan F5, area yang dipilih akan disalin dan dimasukkan ke lokasi kursor. F2simpan file F10membuat Anda keluar Sebagian besar tombol kursor bekerja secara intuitif.
Editor ini bisa langsung dimulai pada sebuah file dengan menggunakan salah satu dari perintah berikut.
 $ mc -e filename_to_edit 
 $ mcedit filename_to_edit 
Ini bukan editor multi-jendela, tapi orang bisa menggunakan beberapa konsol Linux untuk mencapai efek yang sama. Untuk menyalin antara jendela, gunakan tombol Alt-F <n> untuk mengganti konsol virtual dan gunakan "File → Insert file" atau "File → Copy to file" untuk memindahkan sebagian file ke file lain.
Editor internal ini bisa diganti dengan editor pilihan eksternal manapun.
Selain itu, banyak program menggunakan variabel lingkungan " $EDITOR" atau " $VISUAL" untuk menentukan editor mana yang akan digunakan. Jika Anda merasa tidak nyaman dengan vim (1) atau nano (1) awalnya, Anda dapat mengaturnya ke " mcedit" dengan menambahkan baris berikut ke " ~/.bashrc".
 ekspor EDITOR = mcedit
ekspor VISUAL = mcedit 
Saya merekomendasikan menyetelnya ke " vim" jika memungkinkan.
Jika Anda merasa tidak nyaman dengan vim (1) , Anda dapat terus menggunakan mcedit (1) untuk sebagian besar tugas pemeliharaan sistem.

1.3.6. Penampil internal di MC

MC adalah penampil yang sangat cerdas. Ini adalah alat yang hebat untuk mencari kata-kata dalam dokumen. Saya selalu menggunakan ini untuk file di /usr/share/docdirektori ". Ini adalah cara tercepat untuk menjelajahi seluruh informasi Linux. Penampil ini bisa langsung mulai menggunakan salah satu dari perintah berikut.
 $ mc -v path / to / filename_to_view 
 $ mcview path / to / filename_to_view 

1.3.7. Fitur mulai otomatis MC

Tekan Enter pada file, dan program yang sesuai menangani isi file (lihat Bagian 9.3.11, "Menyesuaikan program yang akan dimulai" ). Ini adalah fitur MC yang sangat nyaman.
Tabel 1.12. Reaksi terhadap tombol enter pada MC
tipe filereaksi untuk memasukkan kunci
file eksekusijalankan perintah
file manisi pipa ke perangkat lunak penampil
file htmlisi pipa ke web browser
*.tar.gz" dan " *.deb" filebrowse isinya seolah-olah subdirektori

Agar fitur viewer dan virtual file ini berfungsi, file yang dapat dilihat tidak boleh disetel sebagai executable. Ubah status mereka menggunakan chmod (1)atau melalui menu MC file.

1.3.8. FTP filesystem virtual MC

MC bisa digunakan untuk mengakses file melalui internet menggunakan FTP. Buka menu dengan menekan F9, lalu ketik " p" untuk mengaktifkan filesystem virtual FTP. Masukkan URL dalam bentuk " username:passwd@hostname.domainname", yang mengambil direktori jarak jauh yang tampak seperti folder lokal.
Coba "[deb.debian.org/debian]" sebagai URL dan telusuri arsip Debian.
Meskipun MC memungkinkan Anda melakukan hampir semua hal, sangat penting bagi Anda untuk mempelajari cara menggunakan alat baris perintah yang dipanggil dari prompt shell dan terbiasa dengan lingkungan kerja mirip-Unix.
Anda bisa memilih shell login anda dengan chsh (1) .
Tabel 1.13. Daftar program shell
paketpopconukuranShell POSIXdeskripsi
bashV: 848, I: 9995798iya nihBash : GNU Bourne Again SHell (standar de facto)
tcshV: 11, I: 391306TidakTENEX C Shell : versi yang disempurnakan dari Berkeley csh
dashV: 925, I: 984204iya nihDebian Almquist Shell , bagus untuk skrip shell
zshV: 34, I: 692183iya nihZ shell : shell standar dengan banyak penyempurnaan
mkshV: 6, I: 131339iya nihSebuah versi dari shell Korn
cshV: 2, I: 12339TidakOpenBSD C Shell, versi Berkeley csh
sashV: 0, I: 5969iya nihStand-alone shell dengan perintah builtin (tidak dimaksudkan untuk standar " /bin/sh")
kshV: 5, I: 223276iya nihversi AT & T sebenarnya dari tempurung Korn
rcV: 0, I: 3154Tidakimplementasi AT & T Plan 9 rc shell
poshV: 0, I: 0186iya nihKerahasiaan Biasa Kebijakan ( pdkshderivatif)

[Tip]Tip
Meskipun seperti kerang POSIX berbagi sintaks dasar, mereka dapat berbeda dalam perilaku untuk hal-hal yang mendasar seperti variabel shell dan ekspansi glob. Silakan periksa dokumentasi mereka untuk rinciannya.
Di bab tutorial ini, shell interaktif selalu berarti bash.
Anda dapat menyesuaikan bash (1) perilaku dengan " ~/.bashrc".
Misalnya, coba yang berikut ini.
 # enable bash-completion
 jika! shopt -oq posix;  kemudian
  jika [-f / usr / share / bash-completion / bash_completion];  kemudian
     . / usr / share / bash-completion / bash_completion
  elif [-f / etc / bash_completion];  kemudian
     . / etc / bash_completion
   fi
 fi

# CD saat keluar dari MC
 . /usr/lib/mc/mc.sh

# setel CDPATH ke yang bagus
CDPATH =.: / Usr / share / doc: ~: ~ / Desktop: ~
ekspor CDPATH

PATH = "$ {PATH + $ PATH:} / usr / sbin: / sbin"
 # set PATH sehingga termasuk bin pribadi pengguna jika ada
jika [-d ​​~ / bin];  kemudian
  PATH = "~ / bin $ {PATH +: $ PATH}"
 fi
PATH ekspor

EDITOR = vim
EDITOR ekspor 
[Tip]Tip
Anda dapat menemukan lebih banyak bashtip penyesuaian, seperti Bagian 9.2.7, "Perintah warna" , di Bab 9, Tip sistem .
[Tip]Tip
The bash-completionpaket memungkinkan penyelesaian diprogram untuk bash.
Di lingkungan mirip Unix , ada beberapa goresan kunci yang memiliki arti khusus. Harap dicatat bahwa pada konsol karakter normal Linux, hanya tombol kiri Ctrldan Altkunci yang sesuai dengan yang diharapkan. Berikut adalah beberapa kunci penting yang perlu diingat.
Tabel 1.14. Daftar binding kunci untuk bash
kuncideskripsi pengikatan kunci
Ctrl-Uhapus baris sebelum kursor
Ctrl-Hhapus karakter sebelum kursor
Ctrl-Dmenghentikan input (exit shell jika anda menggunakan shell)
Ctrl-Cmenghentikan program yang sedang berjalan
Ctrl-Zhentikan sementara program dengan memindahkannya ke pekerjaan latar belakang
Ctrl-Smenghentikan output ke layar
Ctrl-Qmengaktifkan kembali output ke layar
Ctrl-Alt-Delreboot / hentikan sistem, lihat inittab (5)
Left-Alt-key(opsional, Windows-key)meta-kunci untuk Emacs dan UI serupa
Up-arrowmulai pencarian sejarah perintah di bawah bash
Ctrl-Rmulai pencarian teks perintah inkremental di bawah bash
Tabmasukan lengkap nama file ke baris perintah di bawah bash
Ctrl-V Tabmasukan Tabtanpa ekspansi ke baris perintah di bawahbash

[Tip]Tip
Fitur terminal Ctrl-Sdapat dinonaktifkan dengan menggunakan stty (1) .
Operasi mouse gaya Unix didasarkan pada sistem mouse tombol 3.
Tabel 1.15. Daftar operasi mouse gaya Unix
tindakantanggapan
Mouse klik-dan-tarik kiripilih dan salin ke clipboard
Klik kiripilih awal seleksi
Klik kananpilih akhir seleksi dan copy ke clipboard
Klik tengahpaste clipboard pada kursor

Roda tengah pada mouse roda modern ini dianggap tombol tengah mouse dan bisa digunakan untuk middle-click. Mengklik tombol kiri dan kanan sama-sama berfungsi sebagai klik tengah di bawah situasi sistem mouse 2 tombol. Untuk menggunakan mouse di konsol karakter Linux, Anda harus memiliki gpm(8) berjalan sebagai daemon.

1.4.5. Pager

Perintah less (1) adalah pager yang disempurnakan (file content browser). Ini membaca file yang ditentukan oleh argumen perintah atau input standarnya. Tekan " h" jika Anda memerlukan bantuan saat browsing dengan lessperintah. Ini bisa melakukan lebih dari lebih (1) dan bisa di-supercharged dengan mengeksekusi " eval $(lesspipe)" atau " eval $(lessfile)" di skrip startup shell. Lihat lebih banyak di " /usr/share/doc/lessf/LESSOPEN". Opsi " -R" memungkinkan output karakter mentah dan memungkinkan rangkaian pelarian warna ANSI. Lihat lebih sedikit (1) .

1.4.6. Editor teks

Anda harus menjadi mahir dalam salah satu varian program Vim atau Emacs yang populer di sistem mirip-Unix.
Saya pikir terbiasa dengan perintah Vim adalah hal yang tepat untuk dilakukan, karena Vi-editor selalu ada di dunia Linux / Unix. (Sebenarnya, asli viatau baru nviadalah program yang Anda temukan di mana-mana. Saya memilih Vim sebagai pengganti pemula karena menawarkan bantuan melalui F1kunci meskipun cukup mirip dan lebih hebat.)
Jika Anda memilih Emacs atau XEmacs sebagai pengganti editor Anda, itu adalah pilihan bagus lainnya, terutama untuk pemrograman. Emacs memiliki sejumlah fitur lainnya juga, termasuk berfungsi sebagai pembaca berita, editor direktori, program surat, dan lain-lain. Bila digunakan untuk memprogram atau mengedit skrip shell, ia dengan cerdas mengenali format dari apa yang sedang Anda kerjakan, dan mencoba memberikan bantuan . Beberapa orang berpendapat bahwa satu-satunya program yang mereka butuhkan di Linux adalah Emacs. Sepuluh menit belajar Emacs sekarang bisa menghemat jam kemudian. Memiliki manual GNU Emacs untuk referensi saat belajar Emacs sangat dianjurkan.
Semua program ini biasanya dilengkapi dengan program les untuk Anda pelajari dengan latihan. Mulai Vim dengan mengetik " vim" dan tekan tombol F1. Anda setidaknya harus membaca 35 baris pertama. Kemudian lakukan kursus pelatihan online dengan memindahkan kursor ke " |tutor|" dan menekan Ctrl-].
[Catatan]Catatan
Editor yang baik, seperti Vim dan Emacs, dapat menangani UTF-8 dan teks pengkodean eksotis lainnya dengan benar. Sebaiknya gunakan lingkungan X di area UTF-8 dan pasang program dan font yang diperlukan untuk melakukannya. Editor memiliki opsi untuk mengatur pengkodean file secara independen dari lingkungan X. Silakan lihat dokumentasi mereka pada teks multibyte.

1.4.7. Menetapkan editor teks default

Debian hadir dengan sejumlah editor yang berbeda. Sebaiknya instal vimpaketnya, seperti yang disebutkan di atas.
Debian menyediakan akses terpadu ke editor default sistem melalui perintah " /usr/bin/editor" sehingga program lain (misalnya reportbug (1) ) dapat memintanya . Anda bisa mengubahnya dengan berikut ini.
 $ sudo update-alternatives --config editor 
Pilihan " /usr/bin/vim.basic" over " /usr/bin/vim.tiny" adalah rekomendasinya untuk pemula karena mendukung penyorotan sintaksis.
[Tip]Tip
Banyak program menggunakan variabel lingkungan " $EDITOR" atau " $VISUAL" untuk menentukan editor mana yang akan digunakan (lihat Bagian 1.3.5, "Editor internal di MC" dan Bagian 9.3.11, "Menyesuaikan program yang akan dimulai" ). Untuk konsistensi sistem Debian, atur ini menjadi " /usr/bin/editor". (Secara historis, " $EDITOR" adalah " ed" dan " $VISUAL" adalah " vi".)

1.4.8. Menyesuaikan vim

Anda dapat menyesuaikan vim (1) perilaku dengan " ~/.vimrc".
Misalnya, coba yang berikut ini
 "-------------------------------
"Konfigurasi lokal
 "
set nokompatibel
set nopaste
atur pastetoggle = <f2>
syn on
jika $ USER == "root"
 mengatur nomodeline
 set noswapfile
 lain
 set modeline
 set swapfile
 berakhir jika
"pengisi untuk menghindari garis di atas dikenali sebagai modeline
"pengisi
"pengisi 

1.4.9. Merekam aktivitas kerang

Keluaran perintah shell mungkin berguling dari layar Anda dan mungkin hilang selamanya. Ini adalah praktik yang baik untuk mencatat aktivitas shell ke dalam file agar Anda dapat meninjaunya nanti. Rekaman seperti ini penting saat Anda melakukan tugas administrasi sistem.
Metode dasar untuk merekam aktivitas shell adalah menjalankannya di bawah skrip (1) .
Misalnya, coba yang berikut ini
 $ script
Script dimulai, file adalah typescript 
Lakukan perintah shell apa saja di bawah script.
Tekan Ctrl-Duntuk keluar script.
 $ vim typescript 
Lihat Bagian 9.2.3, "Catat aktivitas kerang dengan bersih" .

1.4.10. Perintah dasar Unix

Mari pelajari perintah dasar Unix. Disini saya menggunakan "Unix" dalam pengertian generiknya. Setiap Unix clone OS biasanya menawarkan perintah yang setara. Sistem Debian tidak terkecuali. Jangan khawatir jika beberapa perintah tidak bekerja seperti yang Anda inginkan sekarang. Jika aliasdigunakan di shell, output perintah yang sesuai berbeda. Contoh-contoh ini tidak dimaksudkan untuk dieksekusi dalam urutan ini.
Cobalah semua perintah berikut dari akun pengguna yang tidak memiliki hak istimewa.
Tabel 1.16. Daftar perintah dasar Unix
perintahdeskripsi
pwdtampilkan nama direktori saat ini / kerja
whoamitampilkan nama pengguna sekarang
idmenampilkan identitas pengguna saat ini (nama, uid, gid, dan grup terkait)
file <foo>tampilkan jenis file untuk file " <foo>"
type -p <commandname>tampilkan lokasi file perintah " <commandname>"
which <commandname>,,
type <commandname>menampilkan informasi tentang perintah " <commandname>"
apropos <key-word>temukan perintah yang berhubungan dengan " <key-word>"
man -k <key-word>,,
whatis <commandname>tampilkan satu baris penjelasan tentang perintah " <commandname>"
man -a <commandname>tampilkan penjelasan tentang perintah " <commandname>" (gaya Unix)
info <commandname>tampilkan penjelasan agak panjang tentang perintah " <commandname>" (gaya GNU)
lsdaftar isi direktori (file dan direktori non-dot)
ls -adaftar isi direktori (semua file dan direktori)
ls -Adaftar isi direktori (hampir semua file dan direktori, yaitu skip " .." dan " .")
ls -ladaftar semua isi direktori dengan informasi detail
ls -laidaftar semua isi direktori dengan nomor inode dan informasi detail
ls -ddaftar semua direktori di bawah direktori saat ini
treetampilkan isi file pohon
lsof <foo>daftar status file terbuka " <foo>"
lsof -p <pid>daftar file yang dibuka oleh ID proses: " <pid>"
mkdir <foo>buat direktori baru " <foo>" di direktori sekarang
rmdir <foo>hapus direktori " <foo>" di direktori saat ini
cd <foo>ubah direktori ke direktori " <foo>" di direktori saat ini atau di direktori yang tercantum dalam variabel " $CDPATH"
cd /ubah direktori ke direktori root
cdubah direktori ke direktori home pengguna saat ini
cd /<foo>ubah direktori ke direktori path absolut " /<foo>"
cd ..ubah direktori ke direktori induk
cd ~<foo>ubah direktori ke direktori home pengguna " <foo>"
cd -ubah direktori ke direktori sebelumnya
</etc/motd pagermenampilkan isi " /etc/motd" dengan menggunakan pager default
touch <junkfile>buat file kosong " <junkfile>"
cp <foo> <bar>salin file yang ada " <foo>" ke file baru " <bar>"
rm <junkfile>hapus file " <junkfile>"
mv <foo> <bar>ganti nama file yang ada " <foo>" menjadi nama baru " <bar>" (" <bar>" tidak boleh ada)
mv <foo> <bar>pindahkan file yang ada " <foo>" ke lokasi baru " <bar>/<foo>" (direktori " <bar>" harus ada)
mv <foo> <bar>/<baz>pindahkan file yang ada " <foo>" ke lokasi baru dengan nama baru " <bar>/<baz>" (direktori " <bar>" harus ada tapi direktori "<bar>/<baz>" tidak boleh ada)
chmod 600 <foo>membuat file yang ada " <foo>" menjadi tidak dapat dibaca dan tidak dapat ditulis oleh orang lain (tidak dapat dieksekusi untuk semua)
chmod 644 <foo>buatlah file yang ada " <foo>" agar bisa dibaca tapi tidak dapat ditulis oleh orang lain (tidak dapat dieksekusi untuk semua)
chmod 755 <foo>buatlah file yang ada " <foo>" agar bisa dibaca tapi tidak dapat ditulis oleh orang lain (dapat dieksekusi untuk semua)
find . -name <pattern>temukan nama file yang cocok menggunakan shell " <pattern>" (lebih lambat)
locate -d . <pattern>menemukan nama file yang cocok menggunakan shell " <pattern>" (lebih cepat menggunakan database yang dibuat secara rutin)
grep -e "<pattern>" *.htmltemukan " <pattern>" di semua file yang diakhiri dengan " .html" di direktori saat ini dan tampilkan semuanya
toptampilkan informasi proses menggunakan layar penuh, ketik " q" untuk berhenti
ps aux | pagermenampilkan informasi tentang semua proses yang berjalan menggunakan output gaya BSD
ps -ef | pagermenampilkan informasi tentang semua proses yang berjalan menggunakan keluaran sistem Unix-V
ps aux | grep -e "[e]xim4*"tampilkan semua proses yang berjalan " exim" dan " exim4"
ps axf | pagermenampilkan informasi tentang semua proses yang berjalan dengan hasil seni ASCII
kill <1234>membunuh sebuah proses yang diidentifikasi oleh ID proses: "<1234>"
gzip <foo>kompres " <foo>" untuk membuat " <foo>.gz" menggunakan pengkodean Lempel-Ziv (LZ77)
gunzip <foo>.gzdekompresi " <foo>.gz" untuk membuat " <foo>"
bzip2 <foo>kompres " <foo>" untuk membuat " <foo>.bz2" menggunakan algoritma pemetaan teks ala Burrows-Wheeler, dan pengkodean Huffman (kompresi yang lebih baik daripada gzip)
bunzip2 <foo>.bz2dekompresi " <foo>.bz2" untuk membuat " <foo>"
xz <foo>kompres " <foo>" untuk membuat " <foo>.xz" menggunakan algoritma rantai Lempel-Ziv-Markov (kompresi yang lebih baik daripada bzip2)
unxz <foo>.xzdekompresi " <foo>.xz" untuk membuat " <foo>"
tar -xvf <foo>.tarekstrak file dari <foo>.tararsip "
tar -xvzf <foo>.tar.gzekstrak file dari <foo>.tar.gzarsip gzip " "
tar -xvjf <foo>.tar.bz2ekstrak file dari <foo>.tar.bz2arsip "
tar -xvJf <foo>.tar.xzekstrak file dari <foo>.tar.xzarsip "
tar -cvf <foo>.tar <bar>/arsipkan isi folder " <bar>/" dalam " <foo>.tar" arsip
tar -cvzf <foo>.tar.gz <bar>/arsipkan isi folder " <bar>/" di <foo>.tar.gzarsip terkompresi " "
tar -cvjf <foo>.tar.bz2 <bar>/arsipkan isi folder " <bar>/" dalam " <foo>.tar.bz2" arsip
tar -cvJf <foo>.tar.xz <bar>/arsipkan isi folder " <bar>/" dalam " <foo>.tar.xz" arsip
zcat README.gz | pagertampilkan isi kompresi " README.gz" dengan menggunakan pager default
zcat README.gz > foobuat file " foo" dengan isi dekompresi " README.gz"
zcat README.gz >> footambahkan isi dekompresi " README.gz" ke akhir file " foo" (jika tidak ada, buat dulu)

[Catatan]Catatan
Unix memiliki tradisi untuk menyembunyikan nama file yang dimulai dengan " .". Mereka adalah file tradisional yang berisi informasi konfigurasi dan preferensi pengguna.
[Catatan]Catatan
Untuk cdperintah, lihat builtins (7) .
[Catatan]Catatan
Pager default dari sistem tulang miring Debian lebih (1) yang tidak bisa digulir kembali. Dengan menginstal lesspaket menggunakan command line " apt-get install less", less (1) menjadi default pager dan Anda dapat menggulir kembali dengan tombol kursor.
[Catatan]Catatan
[" Dan " ]" dalam ekspresi reguler ps aux | grep -e "[e]xim4*"perintah " di atas memungkinkan grepuntuk menghindari pencocokan itu sendiri. 4*" Dalam ungkapan reguler berarti 0 atau lebih pengulangan karakter " 4" sehingga memungkinkan grepuntuk mencocokkan keduanya " exim" dan " exim4". Meskipun " *" digunakan dalam nama file shell dan ekspresi reguler, maknanya berbeda. Pelajari ekspresi reguler dari grep (1) .
Silakan melintasi direktori dan mengintip ke dalam sistem dengan menggunakan perintah di atas sebagai pelatihan. Jika ada pertanyaan tentang perintah konsol mana pun, pastikan untuk membaca halaman manual.
Misalnya, coba yang berikut ini
 $ man man
$ man bash
$ man builtins
$ pria grep
$ pria ls 
Gaya halaman manual mungkin agak sulit untuk membiasakan diri, karena mereka agak singkat, terutama yang lebih tua dan sangat tradisional. Tapi begitu Anda terbiasa dengan hal itu, Anda bisa menghargai kekhasan mereka.
Harap dicatat bahwa banyak perintah mirip Unix termasuk yang dari GNU dan BSD menampilkan informasi bantuan singkat jika Anda memintanya dengan salah satu cara berikut (atau tanpa argumen dalam beberapa kasus).
 $ <commandname> --help
$ <commandname> -h 
Sekarang Anda memiliki beberapa nuansa bagaimana menggunakan sistem Debian. Mari kita lihat jauh ke dalam mekanisme eksekusi perintah di sistem Debian. Di sini, saya telah menyederhanakan kenyataan bagi newbie. Lihat bash (1) untuk penjelasan yang tepat.
Perintah sederhana adalah urutan komponen.
  1. Tugas variabel (opsional)
  2. Nama perintah
  3. Argumen (opsional)
  4. Pengalihan (opsional: >>><<<, dll)
  5. Operator Control (opsional: &&||, <newline>, ;&())
Nilai beberapa variabel lingkungan mengubah perilaku beberapa perintah Unix.
Nilai default variabel lingkungan pada awalnya ditetapkan oleh sistem PAM dan beberapa di antaranya dapat diatur ulang oleh beberapa program aplikasi.
  • Manajer tampilan seperti gdm3mengatur ulang variabel lingkungan.
  • Shell pada kode start up me-reset variabel lingkungan dalam " ~/.bash_profile" dan " ~/.bashrc".
Nilai lokal penuh yang diberikan pada $LANGvariabel " terdiri dari 3 bagian: " xx_YY.ZZZZ".
Tabel 1.17. 3 bagian nilai lokal
nilai lokalberarti
xxKode bahasa ISO 639 (huruf kecil) seperti "en"
YYKode negara ISO 3166 (huruf besar) seperti "AS"
ZZZZcodeset, selalu diatur ke "UTF-8"

Untuk kode bahasa dan kode negara, lihat deskripsi yang sesuai di bagian " info gettext".
Untuk kode etik pada sistem Debian modern, Anda harus selalu mengaturnya UTF-8kecuali jika Anda secara khusus ingin menggunakan yang bersejarah dengan alasan dan pengetahuan latar belakang yang baik.
Untuk detail konfigurasi lokal yang bagus, lihat Bagian 8.4, "Lokal" .
[Catatan]Catatan
LANG=en_US" Bukan " LANG=C" atau " LANG=en_US.UTF-8". Ini adalah " LANG=en_US.ISO-8859-1" (lihat Bagian 8.4.1, "Dasar-dasar pengkodean" ).
Tabel 1.18. Daftar rekomendasi lokal
rekomendasi lokalBahasa (area)
en_US.UTF-8Bahasa inggris (USA)
en_GB.UTF-8Inggris (Inggris)
fr_FR.UTF-8Perancis (Prancis)
de_DE.UTF-8Jerman (Jerman)
it_IT.UTF-8Italia (Italia)
es_ES.UTF-8Spanyol (Spanyol)
ca_ES.UTF-8Catalan (Spanyol)
sv_SE.UTF-8Swedia (Swedia)
pt_BR.UTF-8Portugis (Brasil)
ru_RU.UTF-8Rusia (Rusia)
zh_CN.UTF-8Cina (PR China)
zh_TW.UTF-8Cina (Taiwan ROC)
ja_JP.UTF-8Jepang (Jepang)
ko_KR.UTF-8Korea (Republik Korea)
vi_VN.UTF-8Vietnam (Vietnam)

Eksekusi perintah tipikal menggunakan urutan garis shell sebagai berikut.
 $ date
Sun 3 Jun 10:27:39 JST 2007
$ LANG = fr_FR.UTF-8 tanggal
dimanche 3 juin 2007, 10:27:33 (UTC + 0900) 
Di sini, tanggal program (1) dijalankan dengan nilai variabel lingkungan yang berbeda " $LANG".
  • Untuk perintah pertama, " $LANG" diatur ke default sistem lokal nilai " en_US.UTF-8".
  • Untuk perintah kedua, " $LANG" diatur ke nilai lokal UTF-8 lokal " fr_FR.UTF-8".
Kebanyakan perintah eksekusi biasanya tidak memiliki definisi variabel lingkungan sebelumnya. Untuk contoh di atas, Anda dapat melakukan eksekusi sebagai berikut.
 $ LANG = fr_FR.UTF-8
$ date
dimanche 3 juin 2007, 10:27:33 (UTC + 0900) 
Seperti yang dapat Anda lihat di sini, output dari perintah dipengaruhi oleh variabel lingkungan untuk menghasilkan keluaran Prancis. Jika Anda ingin variabel lingkungan diwariskan ke subproses (misalnya saat memanggil skrip shell), Anda perlu mengekspornya sebagai gantinya.
 $ ekspor LANG 
[Catatan]Catatan
Bila Anda menggunakan terminal konsol biasa, " $LANG" variabel lingkungan biasanya diatur untuk diekspor oleh lingkungan desktop. Jadi di atas sebenarnya bukan contoh bagus untuk menguji efeknya export.
[Tip]Tip
Saat mengajukan laporan bug, menjalankan dan memeriksa perintah di bawah " LANG=en_US.UTF-8" adalah ide bagus jika Anda menggunakan lingkungan non-Inggris.
Lihat lokal (5) dan lokal (7) untuk " $LANG" dan variabel lingkungan terkait.
[Catatan]Catatan
Saya sarankan Anda untuk mengkonfigurasi lingkungan sistem hanya dengan $LANGvariabel " dan menjauh dari $LC_*variabel " kecuali jika benar-benar dibutuhkan.
Saat Anda mengetikkan perintah ke shell, shell mencari perintah di daftar direktori yang terdapat dalam $PATHvariabel lingkungan ". Nilai dari " $PATH" variabel lingkungan juga disebut path pencarian shell.
Dalam instalasi Debian default, $PATHvariabel lingkungan " dari akun pengguna mungkin tidak termasuk " /sbin" dan " /usr/sbin". Misalnya, ifconfigperintah harus dikeluarkan dengan path lengkap sebagai " /sbin/ifconfig". ipPerintah serupa ada di " /bin".)
Anda dapat mengubah " $PATH" variabel lingkungan shell Bash dengan " ~/.bash_profile" atau " ~/.bashrc".

1.5.4. $HOMEVariabel "

Banyak perintah menyimpan konfigurasi spesifik pengguna di direktori home dan mengubah perilaku mereka menurut isinya. Direktori home diidentifikasi oleh variabel lingkungan " $HOME".
Tabel 1.19. Daftar $HOMEnilai "
nilai " $HOME"situasi eksekusi program
/Program dijalankan oleh proses init (daemon)
/rootProgram dijalankan dari shell root normal
/home/<normal_user>Program dijalankan dari shell user biasa
/home/<normal_user>Program dijalankan dari menu GUI user biasa
/home/<normal_user>program dijalankan sebagai root dengan " sudo program"
/rootprogram dijalankan sebagai root dengan " sudo -H program"

[Tip]Tip
Shell memperluas " ~/" ke direktori home pengguna saat ini, yaitu " $HOME/" ". Shell memperluas " ~foo/" ke foodirektori home, yaitu " /home/foo/" ".
Beberapa perintah mengambil argumen. Argumen yang dimulai dengan " -" atau " --" disebut opsi dan mengendalikan perilaku perintah.
 $ date
Senin 27 Oktober 23:02:09 CET 2003
$ date -R
Senin, 27 Oktober 2003 23:02:40 +0100 
Disini argumen baris perintah " -R" mengubah tanggal (1) perilaku untuk menghasilkan string tanggal compliant RFC2822 .

1.5.6. Shell glob

Seringkali Anda menginginkan sebuah perintah untuk bekerja dengan sekelompok file tanpa mengetik semuanya. Pola perluasan filename menggunakan shell glob , (kadang disebut wildcard ), memudahkan kebutuhan ini.
Tabel 1.20. Pola gergaji
pola kerangdeskripsi aturan pertandingan
*nama file (segmen) tidak dimulai dengan " ."
.*nama file (segmen) dimulai dengan " ."
?tepat satu karakter
[…]Tepat satu karakter dengan karakter apapun yang dilingkupi tanda kurung
[az]tepat satu karakter dengan karakter antara " a" dan " z"
[^…]persis satu karakter selain karakter yang dilingkupi tanda kurung (tidak termasuk " ^")

Misalnya, coba yang berikut ini
$ mkdir sampah; cd junk; sentuh 1.txt 2.txt 3.c 4.h .5.txt ..6.txt
$ echo * .txt
1.txt 2.txt
$ echo *
1.txt 2.txt 3.c 4.h
$ echo *. [hc]
3.c 4.h
$ echo. *
 . .. 5.txt ..6.txt
$ echo. * [^.] *
.5.txt ..6.txt
$ echo [^ 1-3] *
4.h
$ cd ..; rm -rf sampah
Lihat glob (7) .
[Catatan]Catatan
Tidak seperti ekspansi nama file normal oleh shell, pola shell " *" diuji dalam menemukan (1) dengan " -name" uji dan lain-lain, sesuai dengan " .awal dari nama file. Fitur POSIX baru )
[Catatan]Catatan
BASH dapat di tweak untuk mengubah perilaku globunya dengan pilihan builtin shopin seperti " dotglob", " noglob", " nocaseglob", " nullglob", " extglob", dan lain-lain. See bash (1) .

1.5.7. Kembalikan nilai perintah

Setiap perintah mengembalikan status exit (variabel: " $?") sebagai nilai kembali.
Tabel 1.21. Kode keluar perintah
perintah keluar statusnilai pengembalian numeriknilai pengembalian logis
keberhasilannol, 0BENAR
kesalahantidak nol, -1SALAH

Misalnya, coba yang berikut ini.
 $ [1 = 1];  echo $?
 0
$ [1 = 2];  echo $?
 1 
[Catatan]Catatan
Harap dicatat bahwa, dalam konteks logis untuk shell, kesuksesan diperlakukan sebagai TRUE logis yang memiliki 0 (nol) sebagai nilainya. Ini agak tidak intuitif dan perlu diingatkan disini.

1.5.8. Urutan perintah tipikal dan pengalihan shell

Mari kita ingat mengingat perintah shell idiom diketik dalam satu baris sebagai bagian dari perintah shell.
Tabel 1.22. Perintah Shell idiom
perintah idiomdeskripsi
command &eksekusi latar belakangcommand di subkulit
command1 | command2pipa output standarcommand1untuk input standarcommand2(eksekusi bersamaan )
command1 2>&1 | command2pipa kedua standard output dan standard errorcommand1dengan standar inputcommand2( concurrent execution)
command1 ; command2mengeksekusi command1dan command2 secara berurutan
command1 && command2mengeksekusi command1Jika berhasil, jalankan command2 secara berurutan (kembali sukses jika keduanya command1 dancommand2 sukses)
command1 || command2mengeksekusi command1jika tidak berhasil, jalankan command2 secara berurutan (return success if command1 or command2successful)
command > fooredirect output standar commandke file foo(menimpa)
command 2> fooredirect kesalahan standar commandke file foo(menimpa)
command >> fooredirect output standar commandke file foo(tambahkan)
command 2>> fooredirect kesalahan standar commandke file foo(tambahkan)
command > foo 2>&1Arahkan kedua keluaran standar dan kesalahan standar commandke filefoo
command < fooredirect input standar commandke filefoo
command << delimiterredirect input standar commandke baris berikut sampai " delimiter" terpenuhi (here document)
command <<- delimiterredirect input standar commandke baris berikut sampai " delimiter" terpenuhi (di sini dokumen, karakter tab terdepan dilucuti dari jalur input)

Sistem Debian adalah sistem multi-tasking. Latar belakang pekerjaan memungkinkan pengguna menjalankan beberapa program dalam satu shell. Pengelolaan proses latar belakang melibatkan builtin shell: jobsfgbg, dan killSilahkan baca bagian bash (1) di bawah "SIGNALS", dan "JOB CONTROL", dan builtins (1) .
Misalnya, coba yang berikut ini
 $ </ etc / motd pager 
 $ pager </ etc / motd 
 $ pager / etc / motd 
$ cat / etc / motd | pager
Meskipun semua 4 contoh pengalihan shell menampilkan hal yang sama, contoh terakhir menjalankan catperintah tambahan dan membuang sumber daya tanpa alasan.
Shell memungkinkan Anda untuk membuka file menggunakan execbuiltin dengan deskriptor file yang sewenang-wenang.
 $ echo Halo> foo
$ exec 3 <foo 4> bar # buka file
$ cat <& 3> & 4 # redirect stdin ke 3, stdout ke 4
$ exec 3 <& - 4> & - # tutup file
$ kucing bar
 Halo 
Berkas deskriptor 0-2 sudah ditentukan sebelumnya.
Tabel 1.23. Deskriptor file yang telah ditentukan
alatdeskripsideskriptor file
stdinmasukan standar0
stdoutoutput standar1
stderrkesalahan standar2

1.5.9. Alias ​​komando

Anda bisa mengatur alias untuk perintah yang sering digunakan.
Misalnya, coba yang berikut ini
 $ alias la = 'ls -la' 
Sekarang, " la" bekerja sebagai tangan singkat untuk " ls -la" yang mencantumkan semua file dalam format daftar panjang.
Anda bisa mencantumkan alias yang ada dengan cara apapun alias(lihat bash (1) di bawah "SHELL BUILTIN COMMANDS").
 $ alias
 ...
alias la = 'ls -la' 
Anda dapat mengidentifikasi jalur atau identitas perintah dengan benar type(lihat bash (1) di bawah "SHELL BUILTIN COMMANDS").
Misalnya, coba yang berikut ini
 $ tipe ls
ls adalah hashed (/ bin / ls)
$ tipe la
la adalah alias ls -la
$ type echo
echo adalah shell builtin
$ tipe file
file adalah / usr / bin / file 
Berikut lsini baru-baru ini dicari sementara " file" tidak, jadi " ls" adalah "hashed", yaitu shell memiliki catatan internal untuk akses cepat ke lokasi lsperintah ".
Di lingkungan kerja mirip Unix, pemrosesan teks dilakukan dengan cara perpipaan teks melalui rantai alat pemrosesan teks standar. Ini adalah inovasi Unix penting lainnya.
Ada beberapa alat pengolahan teks standar yang sering digunakan pada sistem mirip Unix.
  • Tidak ada ekspresi reguler yang digunakan:
    • kucing (1) menggabungkan file dan mengeluarkan keseluruhan konten.
    • tac (1) menggabungkan file dan output secara terbalik.
    • cut (1) memilih bagian dari garis dan output.
    • kepala (1) mengeluarkan bagian pertama dari file.
    • ekor (1) mengeluarkan bagian terakhir dari file.
    • sortir (1) macam baris file teks.
    • uniq (1) menghapus duplikat baris dari file yang diurutkan.
    • tr (1) menerjemahkan atau menghapus karakter.
    • diff (1) membandingkan file baris demi baris.
  • Ekspresi reguler dasar ( BRE ) digunakan:
    • grep (1) cocok dengan teks dengan pola.
    • ed (1) adalah editor garis primitif.
    • sed (1) adalah editor aliran.
    • vim (1) adalah editor layar.
    • emacs (1) adalah screen editor. (agak diperpanjang BRE )
  • Extended regular expression ( ERE ) digunakan:
    • egrep (1) cocok dengan teks dengan pola.
    • awk (1) melakukan pengolahan teks sederhana.
    • tcl (3tcl) dapat melakukan semua pemrosesan teks yang mungkin: Lihat re_syntax (3) . Sering digunakan dengan tk (3tk) .
    • perl (1) dapat melakukan setiap pemrosesan teks yang mungkin. Lihat perlre (1) .
    • pcregrep (1) daripcregreppaket yang cocok denganpola Perl Compatible Regular Expressions (PCRE) .
    • python (1) denganremodul dapat melakukan setiap pemrosesan teks yang mungkin. Lihat "/usr/share/doc/python/html/index.html".
Jika Anda tidak yakin apa sebenarnya perintah ini, gunakan " man command" untuk mencari tahu sendiri.
[Catatan]Catatan
Sortir urutan dan rentang ekspresi bergantung pada lokasi. Jika Anda ingin mendapatkan perilaku tradisional untuk sebuah perintah, gunakan lokal C bukan UTF-8 dengan perintah tambahan dengan " LANG=C" (lihat Bagian 1.5.2, "The" $LANG"variable" dan Section 8.4, "The locale" ).
[Catatan]Catatan
Perl regular expressions ( perlre (1) ), Perl Compatible Regular Expressions (PCRE) , dan ekspresi reguler Python yang ditawarkan oleh remodul memiliki banyak ekstensi umum pada ERE biasa .
Ekspresi reguler digunakan di banyak alat pengolah teks. Mereka analog dengan gumpalan shell, tapi lebih rumit dan kuat.
Ekspresi reguler menggambarkan pola pencocokan dan terdiri dari karakter teks dan metakarakter .
Sebuah metacharacter hanyalah sebuah karakter dengan makna khusus. Ada 2 gaya utama, BRE dan ERE , tergantung pada alat teks seperti dijelaskan di atas.
Tabel 1.24. Metakarakter untuk BRE dan ERE
BRESEBELUMdeskripsi tentang ekspresi reguler
\ . [ ] ^ $ *\ . [ ] ^ $ *metakarakter umum
\+ \? \( \) \{ \} \|
BRE hanya " \" lolos dari metakarakter

+ ? ( ) { } |ERE hanya non- " \" lolos dari metakarakter
cccocok dengan non-metacharacter " c"
\c\ccocok dengan karakter literal " c" bahkan jika " c" adalah metacharacter dengan sendirinya
..cocokkan karakter apa pun termasuk baris baru
^^posisi di awal sebuah string
$$posisi di akhir sebuah string
\<\<posisi di awal sebuah kata
\>\>posisi di akhir kata
[abc…][abc…]cocokkan karakter apa pun di " abc…"
[^abc…][^abc…]cocokkan karakter apapun kecuali di " abc…"
r*r*cocok dengan nol atau lebih kalimat biasa yang diidentifikasi oleh " r"
r\+r+cocokkan satu atau lebih kalimat biasa yang diidentifikasi oleh " r"
r\?r?cocokkan nol atau satu ekspresi reguler yang diidentifikasi oleh " r"
r1\|r2r1|r2cocokkan salah satu ekspresi reguler yang diidentifikasi oleh " r1" atau " r2"
\(r1\|r2\)(r1|r2)cocokkan salah satu ekspresi reguler yang diidentifikasi oleh " r1" atau " r2" dan perlakukan itu sebagai ekspresi reguler yang kurung

Ekspresi reguler emacspada dasarnya adalah BRE namun telah diperluas untuk mengobati " +" dan " ?" sebagai metakarakter seperti pada ERE . Jadi, tidak perlu melarikan diri dari mereka dengan " \" dalam ekspresi reguler emacs.
grep (1) dapat digunakan untuk melakukan pencarian teks dengan menggunakan ekspresi reguler.
Misalnya, coba yang berikut ini
 $ egrep 'GNU. * LISENSI | Yoyodyne' / usr / share / common-licenses / GPL
LISENSI UMUM UMUM UMUM
LISENSI UMUM UMUM UMUM
Yoyodyne, Inc., dengan ini menolak semua kepentingan hak cipta dalam program ini 
Untuk ekspresi pengganti, beberapa karakter memiliki arti khusus.
Tabel 1.25. Ekspresi pengganti
ekspresi penggantideskripsi teks untuk menggantikan ekspresi pengganti
&apa persamaan biasa yang cocok (gunakan \&di emacs)
\napa ekspresi reguler n-th bracket yang cocok ("n" menjadi nomor)

Untuk string pengganti Perl, "$ &" digunakan sebagai pengganti "&" dan "$ n" digunakan sebagai ganti "\ n".
Misalnya, coba yang berikut ini
 $ echo zzz1abc2efg3hij4 |  \
sed -e's / \ (1 [az] * \) [0-9] * \ (. * \) $ / = & = / '
zzz = 1abc2efg3hij4 =
$ echo zzz1abc2efg3hij4 |  \
sed -e's / \ (1 [az] * \) [0-9] * \ (. * \) $ / \ 2 === \ 1 / '
zzzefg3hij4 === 1abc
$ echo zzz1abc2efg3hij4 |  \
perl -pe's / (1 [az] *) [0-9] * (. *) $ / $ 2 === $ 1 / '
zzzefg3hij4 === 1abc
$ echo zzz1abc2efg3hij4 |  \
perl -pe's / (1 [az] *) [0-9] * (. *) $ / = $ & = / '
zzz = 1abc2efg3hij4 = 
Di sini, perhatikan lebih lanjut gaya ekspresi reguler kurung dan bagaimana senar yang cocok digunakan dalam proses penggantian teks pada alat yang berbeda.
Ungkapan biasa ini dapat digunakan untuk gerakan kursor dan tindakan penggantian teks pada beberapa editor juga.
Garis miring belakang " \" pada akhir baris di commandline shell lolos dari newline sebagai karakter spasi putih dan meneruskan input command line shell ke baris berikutnya.
Silahkan baca semua halaman panduan terkait untuk mempelajari perintah-perintah ini.
Perintah ed (1) dapat menggantikan semua contoh " FROM_REGEX" dengan " TO_TEXT" dalam " file".
 $ ed file << EOF
, s / FROM_REGEX / TO_TEXT / g
 w
 q
 EOF 
Perintah sed (1) dapat menggantikan semua contoh " FROM_REGEX" dengan " TO_TEXT" dalam " file".
 $ sed -i -e / FROM_REGEX / TO_TEXT / g 'file 
Perintah vim (1) dapat menggantikan semua contoh " FROM_REGEX" dengan " TO_TEXT" dalam " file" dengan menggunakan perintah ex (1) .
 file $ vim '+% s / FROM_REGEX / TO_TEXT / gc' '+ w' '+ q' 
[Tip]Tip
c" Bendera di atas memastikan konfirmasi interaktif untuk setiap substitusi.
Beberapa file (" file1", " file2", dan " file3") dapat diproses dengan ekspresi reguler dengan vim (1) atau perl (1) .
 $ vim '+ argdo% s / FROM_REGEX / TO_TEXT / ge | update' '+ q' file1 file2 file3 
[Tip]Tip
e" Bendera di atas mencegah kesalahan "Tidak ada kecocokan" dari pemecahan pemetaan.
$ perl -i -p -e / FROM_REGEX / TO_TEXT / g; ' file1 file2 file3
Dalam contoh perl (1), " -i" adalah untuk pengeditan di tempat dari setiap file target, dan " -p" adalah untuk loop tersirat pada semua file yang diberikan.
[Tip]Tip
Penggunaan argumen " -i.bak" dan bukan " -i" menyimpan setiap file asli dengan menambahkan " .bak" ke nama filenya. Hal ini membuat pemulihan dari kesalahan menjadi lebih mudah untuk penggantian yang kompleks.
[Catatan]Catatan
ed (1) dan vim (1) adalah BRE ; perl (1) adalah ERE .

1.6.5. Mengekstrak data dari tabel file teks

Mari kita pertimbangkan sebuah file teks yang disebut " DPL" di mana beberapa nama pemimpin proyek Debian pra-2004 dan tanggal inisiasi mereka tercantum dalam format yang dipisahkan oleh ruang.
 Ian Murdock Agustus 1993
Bruce Perens April 1996
Ian Jackson Januari 1998
Wichert Akkerman Januari 1999
Ben Collins April 2001
Bdale Garbee April 2002
Martin Michlmayr Maret 2003 
[Tip]Tip
Lihat "Sejarah Singkat Debian" untuk sejarah kepemimpinan Debian terbaru .
Awk sering digunakan untuk mengekstrak data dari jenis file ini.
Misalnya, coba yang berikut ini
 $ awk '{print $ 3}' <DPL # bulan dimulai
 Agustus
 April
 Januari
 Januari
 April
 April
 Maret
$ awk '($ 1 == "Ian") {print}' <DPL # DPL memanggil Ian
Ian Murdock Agustus 1993
Ian Jackson Januari 1998
$ awk '($ 2 == "Perens") {print $ 3, $ 4}' <DPL # Saat Perens mulai
 April 1996 
Kerang seperti Bash juga bisa digunakan untuk mengurai file jenis ini.
Misalnya, coba yang berikut ini
 $ sementara dibaca bulan pertama bulan lalu;  melakukan
    echo $ month
  selesai <DPL
... output yang sama dengan awk pertama 
Di sini, readperintah builtin menggunakan karakter di " $IFS" (pemisah bidang internal) untuk membagi garis menjadi kata-kata.
Jika Anda mengubah " $IFS" menjadi " :", Anda bisa mengurai " /etc/passwd" dengan shell dengan baik.
 $ oldIFS = "$ IFS" # menyimpan nilai lama
$ IFS = ':'
$ while read user password uid gid rest_of_line;  melakukan
    jika ["$ user" = "bozo"];  kemudian
      echo "$ user's ID adalah $ uid"
     fi
  selesai </ etc / passwd
ID bozo adalah 1000
$ IFS = "$ oldIFS" # mengembalikan nilai lama 
(Jika Awk digunakan untuk melakukan hal yang setara, gunakan " FS=':'" untuk mengatur pemisah lapangan.)
IFS juga digunakan oleh shell untuk membagi hasil ekspansi parameter, substitusi perintah, dan ekspansi aritmetika. Ini tidak terjadi dalam kata-kata yang dikutip ganda atau tunggal. Nilai default IFS adalah gabungan <spasi>, <tab>, dan <newline>.
Hati-hati menggunakan trik IFS shell ini. Hal-hal aneh mungkin terjadi, ketika shell menafsirkan beberapa bagian naskah sebagai masukannya .
 $ IFS = ":," # use ":" dan "," sebagai IFS
$ echo IFS = $ IFS, IFS = "$ IFS" # echo adalah builtin Bash
IFS =, IFS = :,
$ date -R # hanya sebuah perintah output
Sat, 23 Aug 2003 08:30:15 +0200
$ echo $ (date -R) # sub shell -> masukan ke shell utama
Sat 23 Aug 2003 08 30 36 +0200
$ unset IFS # reset IFS ke default
$ echo $ (tanggal -R)
Sat, 23 Aug 2003 08:30:50 +0200 

1.6.6. Potongan skrip untuk perintah perpipaan

Skrip berikut melakukan hal-hal baik sebagai bagian dari pipa.
Tabel 1.26. Daftar cuplikan naskah untuk perintah perpipaan
cuplikan script (ketik dalam satu baris)efek perintah
find /usr -printtemukan semua file di bawah " /usr"
seq 1 100cetak 1 sampai 100
| xargs -n 1 <command>jalankan perintah berulang kali dengan setiap item dari pipa sebagai argumennya
| xargs -n 1 echomemisahkan barang-barang terpisah dari pipa menjadi garis
| xargs echoGabungkan semua garis dari pipa menjadi satu baris
| grep -e <regex_pattern>ekstrak garis dari pipa yang mengandung <regex_pattern>
| grep -v -e <regex_pattern>ekstrak garis dari pipa yang tidak mengandung <regex_pattern>
| cut -d: -f3 -ekstrak bidang ketiga dari pipa yang dipisahkan oleh " :" (file passwd dll.)
| awk '{ print $3 }'Ekstrak bidang ketiga dari pipa yang dipisahkan oleh spasi putih
| awk -F'\t' '{ print $3 }'Ekstrak bidang ketiga dari pipa yang dipisahkan oleh tab
| col -bxmenghapus backspace dan memperluas tab ke spasi
| expand -memperluas tab
| sort| uniqmengurutkan dan menghapus duplikat
| tr 'AZ' 'a-z'mengubah huruf besar menjadi huruf kecil
| tr -d '\n'menggabungkan garis menjadi satu baris
| tr -d '\r'hapus CR
| sed 's/^/# /'tambahkan " #" ke awal setiap baris
| sed 's/\.ext//g'hapus " .ext"
| sed -n -e 2pcetak baris kedua
| head -n 2 -cetak 2 baris pertama
| tail -n 2 -cetak 2 baris terakhir

Skrip shell satu baris dapat melompati banyak file dengan menggunakan find (1) dan xargs (1) untuk melakukan tugas yang cukup rumit. Lihat Bagian 10.1.5, "Idiom untuk pemilihan file" dan Bagian 9.3.9, "Mengulangi perintah perulangan file" .
Bila menggunakan mode interaktif shell menjadi terlalu rumit, mohon pertimbangkan untuk menulis skrip shell (lihat Bagian 12.1, "Skrip shell" ).