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 |
|---|---|
| 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
Pada prompt login, Anda mengetikkan nama pengguna Anda, misalnya
Sistem dimulai dengan pesan ucapan yang tersimpan di "
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 |
|---|---|
| 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. |
/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
Anda bisa mendapatkan prompt shell di bawah X dengan memulai program
Anda juga dapat melihat bagian di bawah Bagian 1.1.6, "konsol virtual" .
Di bawah beberapa sistem Desktop lainnya (seperti
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.
Kekuatan akun root tak terbatas ini mengharuskan Anda untuk mempertimbangkan dan bertanggung jawab saat menggunakannya.
- 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
![]() | PERINGATAN |
|---|---|
| Jangan pernah berbagi password root dengan yang lain. |
![]() | 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
rootpada 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 |
|---|---|
Jangan pernah menjalankan X display / session manager di bawah akun root dengan mengetikkan root ke prompt manajer tampilan seperti gdm3 (1) . |
![]() | 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
Jika Anda berada di bawah Sistem X Window, Anda bisa mengakses konsol karakter 1 dengan menekan tombol
Anda bisa mengganti ke konsol virtual lain, misalnya ke konsol 1, dari commandline.
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
Jika Anda berada di x-terminal-emulator (1) , Anda dapat menutup jendela
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.
Lihat Bagian 6.9.6, "Bagaimana mematikan sistem remote pada SSH" .
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
Mungkin ada baiknya membaca beberapa dokumentasi informatif.
Anda dapat menginstal beberapa paket berikut ini.
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
| paket | popcon | ukuran | deskripsi |
|---|---|---|---|
mc | V: 69, I: 240 | 1440 | Pengelola file layar penuh mode teks |
sudo | V: 423, I: 721 | 3178 | Sebuah program untuk mengizinkan hak istimewa root terbatas kepada pengguna |
vim | V: 117, I: 396 | 2507 | Editor teks Unix Vi IMproved, editor teks pemrogram (versi standar) |
vim-tiny | V: 65, I: 966 | 1091 | Editor teks Unix Vi IMproved, editor teks pemrogram (versi kompak) |
emacs25 | V: 10, I: 18 | 19211 | Proyek GNU Emacs, editor teks extensible Lisp berbasis |
w3m | V: 184, I: 605 | 2301 | Browser mode teks WWW |
gpm | V: 13, I: 21 | 489 | Gaya Unix cut-and-paste pada text console (daemon) |
Mungkin ada baiknya membaca beberapa dokumentasi informatif.
Tabel 1.2. Daftar paket dokumentasi informatif
| paket | popcon | ukuran | deskripsi |
|---|---|---|---|
doc-debian | Saya: 856 | 166 | Dokumentasi Proyek Debian, (FAQ Debian) dan dokumen lainnya |
debian-policy | Saya: 82 | 5237 | Manual Kebijakan Debian dan dokumen terkait |
developers-reference | Saya: 7 | 1304 | Panduan dan informasi untuk pengembang Debian |
maint-guide | Saya: 4 | 987 | Panduan Pemelihara Baru Debian |
debian-history | Saya: 1 | 5034 | Sejarah Proyek Debian |
debian-faq | I: 845 | 1277 | FAQ 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
Ini membuat akun baru bernama
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 |
|---|---|
| Jangan membuat akun pengguna biasa di workstation multiuser seperti ini karena akan sangat buruk bagi keamanan sistem. |
![]() | Peringatan |
|---|---|
Kata sandi dan akun penguin dalam contoh di atas memerlukan perlindungan sebanyak root password dan akun root. |
![]() | 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 |
|---|---|
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 |
|---|---|
| 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.
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.
- Bagian 1.2, "filesystem mirip-Unix" (konsep dasar)
- Bagian 1.3, "Midnight Commander (MC)" (metode bertahan hidup)
- Bagian 1.4, "Lingkungan kerja mirip Unix" (metode dasar)
- Bagian 1.5, "Perintah shell sederhana" (mekanisme shell)
- Bagian 1.6, "pemrosesan teks mirip Unix" (metode pemrosesan teks)
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 "
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 "
Direktori pada sistem Unix disebut folder pada beberapa sistem lain. Harap dicatat juga bahwa tidak ada konsep untuk drive seperti "
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
Misalnya, coba yang berikut ini
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 .
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 "
Ada 2 jenis file device.
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 "
Nomor simpul perangkat ditampilkan dengan menjalankan ls (1) sebagai berikut.
Pada sistem Linux modern, filesystem di bawah "
Ada beberapa file perangkat khusus.
Ini sering digunakan bersamaan dengan pengalihan shell (lihat Bagian 1.5.8, "Urutan perintah tipikal dan pengalihan shell" ).
The procfs dan sysfs dipasang pada "
Direktori "
Direktori di bawah "
Orang sering panik saat mereka melihat satu file pada khususnya - "
Direktori di bawah "
Lihat "
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 "
Lihat "
/ ". 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.
Praktik terbaik terperinci untuk hirarki file dijelaskan dalam Standar Histarki Filesystem ("
- 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 |
|---|---|
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 |
|---|---|
| Kata "root" bisa berarti "root user" atau "root directory". Konteks penggunaannya harus jelas. |
![]() | 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. |
/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
| direktori | penggunaan 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 "
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.
/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 |
|---|---|
| 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.
Untuk file tersebut, setiap izin yang sesuai memungkinkan tindakan berikut.
Untuk direktori, setiap izin yang sesuai memungkinkan tindakan berikut.
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 "
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
Di sini output dari "
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 "
Berikut adalah beberapa contoh menarik dari hak akses file.
Ini terdengar rumit tapi sebenarnya cukup sederhana. Jika Anda melihat beberapa kolom (2-10) pertama dari output perintah "
Misalnya, coba yang berikut ini
- Pengguna yang memiliki file ( u )
- Pengguna lain dalam grup yang file miliknya ( g )
- Semua pengguna lain ( o ) juga disebut sebagai "dunia" dan "semua orang"
- 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.
- 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.
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| karakter | berarti |
|---|---|
- | file normal |
d | direktori |
l | symlink |
c | node perangkat karakter |
b | blok perangkat node |
p | bernama pipa |
s | stopkontak |
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] [, ...] fooMisalnya, 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 )
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 / tmpAda 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)
| angka | berarti |
|---|---|
| Digit opsional pertama | jumlah set user ID (= 4), set group ID (= 2), dan bit lengket (= 1) |
| Digit kedua | jumlah baca (= 4), tulis (= 2), dan jalankan (= 1) izin untuk pengguna |
| Digit ketiga | ditto untuk grup |
| Digit keempat | ditto 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 |
|---|---|
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
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
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
| umask | hak akses file yang dibuat | hak akses direktori dibuat | pemakaian |
|---|---|---|---|
0022 | -rw-r--r-- | -rwxr-xr-x | hanya bisa ditulis oleh pengguna |
0002 | -rw-rw-r-- | -rwxrwxr-x | dapat 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 |
|---|---|
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 "
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
Beberapa kelompok sistem yang disediakan memungkinkan anggota mereka menjalankan perintah tertentu tanpa hak istimewa
Untuk daftar lengkap sistem yang disediakan pengguna dan grup, lihat versi terbaru dokumen "Pengguna dan Grup" di "
Lihat passwd (5) , kelompok (5) , bayangan (5) , newgrp (1) , vipw (8) , vigr (8) , dan pam_group (8) untuk perintah manajemen pengguna dan sistem grup.
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 |
|---|---|
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.) |
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
| kelompok | deskripsi untuk file dan perangkat yang mudah diakses |
|---|---|
dialout | akses penuh dan langsung ke port serial (" /dev/ttyS[0-3] ") |
dip | akses terbatas ke port serial untuk koneksi Dialup IP ke rekan yang terpercaya |
cdrom | CD-ROM, DVD +/- RW drive |
audio | perangkat audio |
video | perangkat video |
scanner | pemindai |
adm | sistem pemantauan log |
staff | beberapa direktori untuk pekerjaan administrasi junior: " /usr/local ", " /home " |
![]() | 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) . |
root .
Tabel 1.8. Daftar sistem yang diketahui menyediakan kelompok untuk eksekusi perintah tertentu
| kelompok | perintah yang mudah diakses |
|---|---|
sudo | jalankan sudo tanpa password mereka |
lpadmin | jalankan 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-passwdLihat 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.
Gunakan sentuhan (1) perintah untuk mengganti cap waktu dari file yang ada.
Untuk cap waktu, perintah
Tabel 1.9. Daftar jenis timestamps
| mengetik | artinya (definisi Unix yang bersejarah) |
|---|---|
| mtime | waktu modifikasi file ( ls -l ) |
| ctime | waktu perubahan status file ( ls -lc ) |
| sebuah waktu | waktu akses file terakhir ( ls -lu ) |
![]() | Catatan |
|---|---|
| ctime bukan waktu pembuatan file |
![]() | 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 |
|---|---|
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) . |
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 |
|---|---|
Lihat Bagian 9.2.5, "Tampilan waktu dan tanggal yang disesuaikan" untuk menyesuaikan keluaran " ls -l ". |
Ada dua metode untuk mengaitkan file "
Lihat contoh berikut untuk perubahan jumlah tautan dan perbedaan halus hasil perintah
Symlink selalu memiliki hak akses file nominal "
The "
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.
foo " dengan nama file " bar " yang berbeda.- Link keras
- Nama duplikat untuk file yang ada
- "
ln foo bar"
- Tautan simbolis atau symlink
- File khusus yang menunjuk ke file lain dengan nama
- "
ln -s foo bar"
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 baruHardlink 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 |
|---|---|
| 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 |
|---|---|
| Biasanya lebih baik menggunakan tautan simbolis daripada tautan keras kecuali Anda memiliki alasan bagus untuk menggunakan tautan keras. |
." 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)
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
![]() | Tip |
|---|---|
" netstat -an" memberikan gambaran soket yang sangat berguna yang terbuka pada sistem yang diberikan. |
1.2.10. File perangkat
/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, ...
/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 |
|---|---|
| Untuk akses normal ke printer, gunakan lp (1) . |
$ 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 dalamdiskgrup. - "
/dev/sr0" memiliki nomor perangkat utama 11 dan nomor perangkat minor 0. Ini dapat dibaca / dibaca oleh pengguna yang termasuk dalamcdromgrup. - "
/dev/ttyS0" memiliki nomor perangkat utama 4 dan nomor perangkat minor 64. Ini dapat dibaca / dibaca oleh pengguna yang termasuk dalamdialoutgrup. - "
/dev/zero" memiliki nomor perangkat utama 1 dan nomor perangkat minor 5. Ini bisa dibaca / dibaca oleh siapa saja.
/dev/" secara otomatis dihuni oleh mekanisme udev (7) .1.2.11. File perangkat khusus
Tabel 1.10. Daftar file perangkat khusus
| file perangkat | tindakan | deskripsi respon |
|---|---|---|
/dev/null | Baca baca | mengembalikan karakter "end-of-file (EOF)" |
/dev/null | menulis | tidak mengembalikan apapun (lubang pembuangan data tanpa dasar) |
/dev/zero | Baca baca | kembali "karakter \0(NUL)" (tidak sama dengan angka nol ASCII) |
/dev/random | Baca baca | mengembalikan karakter acak dari generator bilangan acak sejati, memberikan entropi nyata (lambat) |
/dev/urandom | Baca baca | mengembalikan karakter acak dari generator bilangan pseudorandom yang aman secara kriptografi |
/dev/full | menulis | kembalikan 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
/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
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"
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 "
Editor internal memiliki skema cut-and-paste yang menarik. Menekan
Editor ini bisa langsung dimulai pada sebuah file dengan menggunakan salah satu dari perintah berikut.
Editor internal ini bisa diganti dengan editor pilihan eksternal manapun.
Selain itu, banyak program menggunakan variabel lingkungan "
Jika Anda merasa tidak nyaman dengan vim (1) , Anda dapat terus menggunakan mcedit (1) untuk sebagian besar tugas pemeliharaan sistem.
MC adalah penampil yang sangat cerdas. Ini adalah alat yang hebat untuk mencari kata-kata dalam dokumen. Saya selalu menggunakan ini untuk file di
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.
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.
MC bisa digunakan untuk mengakses file melalui internet menggunakan FTP. Buka menu dengan menekan
Coba "[deb.debian.org/debian]" sebagai URL dan telusuri arsip Debian.
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.shLihat 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.
Jika Anda menemukan masalah pengkodean karakter yang menampilkan karakter sampah, tambahkan "
Jika ini tidak membersihkan masalah tampilan Anda dengan MC, lihat Bagian 9.4.6, "Konfigurasi terminal" .
$ 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 |
|---|---|
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. |
-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
| kunci | kunci mengikat |
|---|---|
F1 | menu bantuan |
F3 | penampil file internal |
F4 | editor internal |
F9 | aktifkan menu pull down |
F10 | keluar dari komandan tengah malam |
Tab | bergerak di antara dua jendela |
Insert atau Ctrl-T | tandai file untuk operasi beberapa file seperti salinan |
Del | hapus file (hati-hati --- set MC ke safe delete mode) |
| Tombol kursor | cukup jelas |
1.3.4. Trik command-line di MC
cdperintah mengubah direktori yang ditampilkan pada layar yang dipilih.Ctrl-EnteratauAlt-Entermenyalin nama file ke baris perintah. Gunakan ini dengan perintah cp (1) dan mv (1) bersamaan dengan pengeditan baris perintah.Alt-Tabmenunjukkan pilihan perluasan nama file shell.- Seseorang dapat menentukan direktori awal untuk kedua jendela sebagai argumen MC; misalnya, "
mc /etc /root". Esc+n-key→Fn(yaitu,Esc+1→F1, dll;Esc+0→F10)- Menekan
Escsebelum tombol memiliki efek yang sama seperti menekan tombolAltdan tombol bersamaan; yaitu tipeEsc+cuntukAlt-C.Escdisebut meta-key dan kadang-kadang dicatat sebagai "M-".
1.3.5. Editor internal di MC
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 = mceditSaya 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
/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
Tabel 1.12. Reaksi terhadap tombol enter pada MC
| tipe file | reaksi untuk memasukkan kunci |
|---|---|
| file eksekusi | jalankan perintah |
| file man | isi pipa ke perangkat lunak penampil |
| file html | isi pipa ke web browser |
" *.tar.gz" dan " *.deb" file | browse 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
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.
Perintah less (1) adalah pager yang disempurnakan (file content browser). Ini membaca file yang ditentukan oleh argumen perintah atau input standarnya. Tekan "
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
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 "
Debian hadir dengan sejumlah editor yang berbeda. Sebaiknya instal
Debian menyediakan akses terpadu ke editor default sistem melalui perintah "
Anda dapat menyesuaikan vim (1) perilaku dengan "
Misalnya, coba yang berikut ini
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
Tekan
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
Cobalah semua perintah berikut dari akun pengguna yang tidak memiliki hak istimewa.
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
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).
Anda bisa memilih shell login anda dengan chsh (1) .
Di bab tutorial ini, shell interaktif selalu berarti
Tabel 1.13. Daftar program shell
| paket | popcon | ukuran | Shell POSIX | deskripsi |
|---|---|---|---|---|
bash | V: 848, I: 999 | 5798 | iya nih | Bash : GNU Bourne Again SHell (standar de facto) |
tcsh | V: 11, I: 39 | 1306 | Tidak | TENEX C Shell : versi yang disempurnakan dari Berkeley csh |
dash | V: 925, I: 984 | 204 | iya nih | Debian Almquist Shell , bagus untuk skrip shell |
zsh | V: 34, I: 69 | 2183 | iya nih | Z shell : shell standar dengan banyak penyempurnaan |
mksh | V: 6, I: 13 | 1339 | iya nih | Sebuah versi dari shell Korn |
csh | V: 2, I: 12 | 339 | Tidak | OpenBSD C Shell, versi Berkeley csh |
sash | V: 0, I: 5 | 969 | iya nih | Stand-alone shell dengan perintah builtin (tidak dimaksudkan untuk standar " /bin/sh") |
ksh | V: 5, I: 22 | 3276 | iya nih | versi AT & T sebenarnya dari tempurung Korn |
rc | V: 0, I: 3 | 154 | Tidak | implementasi AT & T Plan 9 rc shell |
posh | V: 0, I: 0 | 186 | iya nih | Kerahasiaan Biasa Kebijakan ( pdkshderivatif) |
![]() | 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. |
bash.
Anda dapat menyesuaikan bash (1) perilaku dengan "
Misalnya, coba yang berikut ini.
~/.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 |
|---|---|
Anda dapat menemukan lebih banyak bashtip penyesuaian, seperti Bagian 9.2.7, "Perintah warna" , di Bab 9, Tip sistem . |
![]() | 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
| kunci | deskripsi pengikatan kunci |
|---|---|
Ctrl-U | hapus baris sebelum kursor |
Ctrl-H | hapus karakter sebelum kursor |
Ctrl-D | menghentikan input (exit shell jika anda menggunakan shell) |
Ctrl-C | menghentikan program yang sedang berjalan |
Ctrl-Z | hentikan sementara program dengan memindahkannya ke pekerjaan latar belakang |
Ctrl-S | menghentikan output ke layar |
Ctrl-Q | mengaktifkan kembali output ke layar |
Ctrl-Alt-Del | reboot / hentikan sistem, lihat inittab (5) |
Left-Alt-key(opsional, Windows-key) | meta-kunci untuk Emacs dan UI serupa |
Up-arrow | mulai pencarian sejarah perintah di bawah bash |
Ctrl-R | mulai pencarian teks perintah inkremental di bawah bash |
Tab | masukan lengkap nama file ke baris perintah di bawah bash |
Ctrl-V Tab | masukan Tabtanpa ekspansi ke baris perintah di bawahbash |
![]() | Tip |
|---|---|
Fitur terminal Ctrl-Sdapat dinonaktifkan dengan menggunakan stty (1) . |
Operasi mouse gaya Unix didasarkan pada sistem mouse tombol 3.
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.
Tabel 1.15. Daftar operasi mouse gaya Unix
| tindakan | tanggapan |
|---|---|
| Mouse klik-dan-tarik kiri | pilih dan salin ke clipboard |
| Klik kiri | pilih awal seleksi |
| Klik kanan | pilih akhir seleksi dan copy ke clipboard |
| Klik tengah | paste 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
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
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 |
|---|---|
| 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
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 |
|---|---|
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
~/.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
Metode dasar untuk merekam aktivitas shell adalah menjalankannya di bawah skrip (1) .
Misalnya, coba yang berikut ini
$ script Script dimulai, file adalah typescriptLakukan 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
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
| perintah | deskripsi |
|---|---|
pwd | tampilkan nama direktori saat ini / kerja |
whoami | tampilkan nama pengguna sekarang |
id | menampilkan 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) |
ls | daftar isi direktori (file dan direktori non-dot) |
ls -a | daftar isi direktori (semua file dan direktori) |
ls -A | daftar isi direktori (hampir semua file dan direktori, yaitu skip " .." dan " .") |
ls -la | daftar semua isi direktori dengan informasi detail |
ls -lai | daftar semua isi direktori dengan nomor inode dan informasi detail |
ls -d | daftar semua direktori di bawah direktori saat ini |
tree | tampilkan 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 |
cd | ubah 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 pager | menampilkan 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>" *.html | temukan " <pattern>" di semua file yang diakhiri dengan " .html" di direktori saat ini dan tampilkan semuanya |
top | tampilkan informasi proses menggunakan layar penuh, ketik " q" untuk berhenti |
ps aux | pager | menampilkan informasi tentang semua proses yang berjalan menggunakan output gaya BSD |
ps -ef | pager | menampilkan 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 | pager | menampilkan 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>.gz | dekompresi " <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>.bz2 | dekompresi " <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>.xz | dekompresi " <foo>.xz" untuk membuat " <foo>" |
tar -xvf <foo>.tar | ekstrak file dari <foo>.tararsip " " |
tar -xvzf <foo>.tar.gz | ekstrak file dari <foo>.tar.gzarsip gzip " " |
tar -xvjf <foo>.tar.bz2 | ekstrak file dari <foo>.tar.bz2arsip " " |
tar -xvJf <foo>.tar.xz | ekstrak 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 | pager | tampilkan isi kompresi " README.gz" dengan menggunakan pager default |
zcat README.gz > foo | buat file " foo" dengan isi dekompresi " README.gz" |
zcat README.gz >> foo | tambahkan isi dekompresi " README.gz" ke akhir file " foo" (jika tidak ada, buat dulu) |
![]() | Catatan |
|---|---|
Unix memiliki tradisi untuk menyembunyikan nama file yang dimulai dengan " .". Mereka adalah file tradisional yang berisi informasi konfigurasi dan preferensi pengguna. |
![]() | Catatan |
|---|---|
Untuk cdperintah, lihat builtins (7) . |
![]() | 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 |
|---|---|
" [" 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) . |
Misalnya, coba yang berikut ini
$ man man $ man bash $ man builtins $ pria grep $ pria lsGaya 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.5.4.
Banyak perintah menyimpan konfigurasi spesifik pengguna di direktori home dan mengubah perilaku mereka menurut isinya. Direktori home diidentifikasi oleh variabel lingkungan "
Beberapa perintah mengambil argumen. Argumen yang dimulai dengan "
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.
Misalnya, coba yang berikut ini
Setiap perintah mengembalikan status exit (variabel: "
Misalnya, coba yang berikut ini.
Mari kita ingat mengingat perintah shell idiom diketik dalam satu baris sebagai bagian dari perintah shell.
Sistem Debian adalah sistem multi-tasking. Latar belakang pekerjaan memungkinkan pengguna menjalankan beberapa program dalam satu shell. Pengelolaan proses latar belakang melibatkan builtin shell:
Misalnya, coba yang berikut ini
Shell memungkinkan Anda untuk membuka file menggunakan
Anda bisa mengatur alias untuk perintah yang sering digunakan.
Misalnya, coba yang berikut ini
Anda bisa mencantumkan alias yang ada dengan cara apapun
Misalnya, coba yang berikut ini
Perintah sederhana adalah urutan komponen.
- Tugas variabel (opsional)
- Nama perintah
- Argumen (opsional)
- Pengalihan (opsional:
>,>>,<,<<, dll) - 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.
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
Untuk kode bahasa dan kode negara, lihat deskripsi yang sesuai di bagian "
Untuk kode etik pada sistem Debian modern, Anda harus selalu mengaturnya
Untuk detail konfigurasi lokal yang bagus, lihat Bagian 8.4, "Lokal" .
Eksekusi perintah tipikal menggunakan urutan garis shell sebagai berikut.
Kebanyakan perintah eksekusi biasanya tidak memiliki definisi variabel lingkungan sebelumnya. Untuk contoh di atas, Anda dapat melakukan eksekusi sebagai berikut.
Lihat lokal (5) dan lokal (7) untuk "
$LANGvariabel " " terdiri dari 3 bagian: " xx_YY.ZZZZ".
Tabel 1.17. 3 bagian nilai lokal
| nilai lokal | berarti |
|---|---|
xx | Kode bahasa ISO 639 (huruf kecil) seperti "en" |
YY | Kode negara ISO 3166 (huruf besar) seperti "AS" |
ZZZZ | codeset, 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 |
|---|---|
" 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 lokal | Bahasa (area) |
|---|---|
en_US.UTF-8 | Bahasa inggris (USA) |
en_GB.UTF-8 | Inggris (Inggris) |
fr_FR.UTF-8 | Perancis (Prancis) |
de_DE.UTF-8 | Jerman (Jerman) |
it_IT.UTF-8 | Italia (Italia) |
es_ES.UTF-8 | Spanyol (Spanyol) |
ca_ES.UTF-8 | Catalan (Spanyol) |
sv_SE.UTF-8 | Swedia (Swedia) |
pt_BR.UTF-8 | Portugis (Brasil) |
ru_RU.UTF-8 | Rusia (Rusia) |
zh_CN.UTF-8 | Cina (PR China) |
zh_TW.UTF-8 | Cina (Taiwan ROC) |
ja_JP.UTF-8 | Jepang (Jepang) |
ko_KR.UTF-8 | Korea (Republik Korea) |
vi_VN.UTF-8 | Vietnam (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".$ 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 |
|---|---|
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 |
|---|---|
Saat mengajukan laporan bug, menjalankan dan memeriksa perintah di bawah " LANG=en_US.UTF-8" adalah ide bagus jika Anda menggunakan lingkungan non-Inggris. |
$LANG" dan variabel lingkungan terkait.![]() | 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
Dalam instalasi Debian default,
Anda dapat mengubah "
$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 " "
$HOME".
Tabel 1.19. Daftar
$HOMEnilai " "nilai " $HOME" | situasi eksekusi program |
|---|---|
/ | Program dijalankan oleh proses init (daemon) |
/root | Program 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" |
/root | program dijalankan sebagai root dengan " sudo -H program" |
![]() | Tip |
|---|---|
Shell memperluas " ~/" ke direktori home pengguna saat ini, yaitu " $HOME/" ". Shell memperluas " ~foo/" ke foodirektori home, yaitu " /home/foo/" ". |
1.5.5. Opsi baris perintah
-" 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 +0100Disini argumen baris perintah "
-R" mengubah tanggal (1) perilaku untuk menghasilkan string tanggal compliant RFC2822 .1.5.6. Shell glob
Tabel 1.20. Pola gergaji
| pola kerang | deskripsi 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 sampahLihat glob (7) .
![]() | 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 |
|---|---|
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
$?") sebagai nilai kembali.
Tabel 1.21. Kode keluar perintah
| perintah keluar status | nilai pengembalian numerik | nilai pengembalian logis |
|---|---|---|
| keberhasilan | nol, 0 | BENAR |
| kesalahan | tidak nol, -1 | SALAH |
Misalnya, coba yang berikut ini.
$ [1 = 1]; echo $? 0 $ [1 = 2]; echo $? 1
![]() | 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
Tabel 1.22. Perintah Shell idiom
| perintah idiom | deskripsi |
|---|---|
command & | eksekusi latar belakangcommand di subkulit |
command1 | command2 | pipa output standarcommand1untuk input standarcommand2(eksekusi bersamaan ) |
command1 2>&1 | command2 | pipa kedua standard output dan standard errorcommand1dengan standar inputcommand2( concurrent execution) |
command1 ; command2 | mengeksekusi command1dan command2 secara berurutan |
command1 && command2 | mengeksekusi command1; Jika berhasil, jalankan command2 secara berurutan (kembali sukses jika keduanya command1 dancommand2 sukses) |
command1 || command2 | mengeksekusi command1; jika tidak berhasil, jalankan command2 secara berurutan (return success if command1 or command2successful) |
command > foo | redirect output standar commandke file foo(menimpa) |
command 2> foo | redirect kesalahan standar commandke file foo(menimpa) |
command >> foo | redirect output standar commandke file foo(tambahkan) |
command 2>> foo | redirect kesalahan standar commandke file foo(tambahkan) |
command > foo 2>&1 | Arahkan kedua keluaran standar dan kesalahan standar commandke filefoo |
command < foo | redirect input standar commandke filefoo |
command << delimiter | redirect input standar commandke baris berikut sampai " delimiter" terpenuhi (here document) |
command <<- delimiter | redirect 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:
jobs, fg, bg, dan kill. Silahkan 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 HaloBerkas deskriptor 0-2 sudah ditentukan sebelumnya.
Tabel 1.23. Deskriptor file yang telah ditentukan
| alat | deskripsi | deskriptor file |
|---|---|---|
stdin | masukan standar | 0 |
stdout | output standar | 1 |
stderr | kesalahan standar | 2 |
1.5.9. Alias komando
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 / fileBerikut
lsini baru-baru ini dicari sementara " file" tidak, jadi " ls" adalah "hashed", yaitu shell memiliki catatan internal untuk akses cepat ke lokasi lsperintah " ".![]() | Tip |
|---|---|
| Lihat Bagian 9.2.7, "Perintah berwarna" . |
Di lingkungan kerja mirip Unix, pemrosesan teks dilakukan dengan cara perpipaan teks melalui rantai alat pemrosesan teks standar. Ini adalah inovasi Unix penting lainnya.
Mari kita pertimbangkan sebuah file teks yang disebut "
Awk sering digunakan untuk mengekstrak data dari jenis file ini.
Misalnya, coba yang berikut ini
Misalnya, coba yang berikut ini
Jika Anda mengubah "
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 .
Skrip berikut melakukan hal-hal baik sebagai bagian dari pipa.
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" ).
Ada beberapa alat pengolahan teks standar yang sering digunakan pada sistem mirip Unix.
Jika Anda tidak yakin apa sebenarnya perintah ini, gunakan "
- 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) dari
pcregreppaket yang cocok denganpola Perl Compatible Regular Expressions (PCRE) . - python (1) dengan
remodul dapat melakukan setiap pemrosesan teks yang mungkin. Lihat "/usr/share/doc/python/html/index.html".
man command" untuk mencari tahu sendiri.![]() | 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 |
|---|---|
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.
Ekspresi reguler
grep (1) dapat digunakan untuk melakukan pencarian teks dengan menggunakan ekspresi reguler.
Misalnya, coba yang berikut ini
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
| BRE | SEBELUM | deskripsi tentang ekspresi reguler |
|---|---|---|
\ . [ ] ^ $ * | \ . [ ] ^ $ * | metakarakter umum |
\+ \? \( \) \{ \} \| | BRE hanya " \" lolos dari metakarakter | |
+ ? ( ) { } | | ERE hanya non- " \" lolos dari metakarakter | |
c | c | cocok dengan non-metacharacter " c" |
\c | \c | cocok 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\|r2 | r1|r2 | cocokkan 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
![]() | Tip |
|---|---|
| Lihat Bagian 9.2.7, "Perintah berwarna" . |
Untuk ekspresi pengganti, beberapa karakter memiliki arti khusus.
Untuk string pengganti Perl, "$ &" digunakan sebagai pengganti "&" dan "$ n" digunakan sebagai ganti "\ n".
Misalnya, coba yang berikut ini
Ungkapan biasa ini dapat digunakan untuk gerakan kursor dan tindakan penggantian teks pada beberapa editor juga.
Garis miring belakang "
Silahkan baca semua halaman panduan terkait untuk mempelajari perintah-perintah ini.
Tabel 1.25. Ekspresi pengganti
| ekspresi pengganti | deskripsi teks untuk menggantikan ekspresi pengganti |
|---|---|
& | apa persamaan biasa yang cocok (gunakan \&di emacs) |
\n | apa 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 "
Beberapa file ("
FROM_REGEX" dengan " TO_TEXT" dalam " file".$ ed file << EOF , s / FROM_REGEX / TO_TEXT / g w q EOFPerintah 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 |
|---|---|
" c" Bendera di atas memastikan konfirmasi interaktif untuk setiap substitusi. |
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 |
|---|---|
" 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 |
|---|---|
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 |
|---|---|
| ed (1) dan vim (1) adalah BRE ; perl (1) adalah ERE . |
1.6.5. Mengekstrak data dari tabel file teks
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 |
|---|---|
| Lihat "Sejarah Singkat Debian" untuk sejarah kepemimpinan Debian terbaru . |
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 1996Kerang 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 pertamaDi 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
Tabel 1.26. Daftar cuplikan naskah untuk perintah perpipaan
| cuplikan script (ketik dalam satu baris) | efek perintah |
|---|---|
find /usr -print | temukan semua file di bawah " /usr" |
seq 1 100 | cetak 1 sampai 100 |
| xargs -n 1 <command> | jalankan perintah berulang kali dengan setiap item dari pipa sebagai argumennya |
| xargs -n 1 echo | memisahkan barang-barang terpisah dari pipa menjadi garis |
| xargs echo | Gabungkan 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 -bx | menghapus backspace dan memperluas tab ke spasi |
| expand - | memperluas tab |
| sort| uniq | mengurutkan 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 2p | cetak 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" ).
![[Catatan]](https://www.debian.org/doc/manuals/debian-reference/images/note.png)
![[PERINGATAN]](https://www.debian.org/doc/manuals/debian-reference/images/warning.png)
![[Peringatan]](https://www.debian.org/doc/manuals/debian-reference/images/caution.png)
![[Tip]](https://www.debian.org/doc/manuals/debian-reference/images/tip.png)