4.1 Pendahuluan
Proyek perangkat lunak mengambil bentuk kode sumber, yang merupakan
serangkaian instruksi komputer yang dapat dibaca manusia. Karena kode sumber tidak
dipahami secara langsung oleh komputer, kode itu harus dikompilasi ke dalam
instruksi mesin oleh kompiler. Compiler adalah program khusus yang mengumpulkan
semua file kode sumber dan menghasilkan instruksi yang dapat dijalankan di
komputer, seperti oleh kernel Linux.
Secara historis, perangkat lunak komersial telah dijual di bawah lisensi sumber
tertutup, yang berarti bahwa pengguna memiliki hak untuk menggunakan kode mesin,
juga dikenal sebagai biner atau dapat dieksekusi, tetapi tidak dapat melihat kode
sumber. Seringkali lisensi secara eksplisit menyatakan bahwa pengguna tidak boleh
mencoba merekayasa balik kode mesin kembali ke kode sumber untuk mengetahui
apa fungsinya.
Pertimbangkan ini
Kode sumber yang dikompilasi dalam program biner adalah salah satu metode untuk
membuat program dan menjalankan instruksi komputasi. Lain adalah banyak jenis
bahasa yang ditafsirkan, seperti PERL, Python dan bahkan BASH scripting, di mana
kode tersebut tidak dikompilasi, tetapi diumpankan ke program penafsiran, biasanya
executable biner yang memahami dan mengimplementasikan instruksi yang
terkandung dalam kode sumber atau skrip .
Pengembangan Linux sangat mirip dengan kebangkitan perangkat lunak open source.
Di awal ada shareware, program yang tersedia secara bebas di mana pengguna tidak
perlu memiliki akses ke kode sumber. Ada banyak hal baik tentang hal ini, tetapi juga
bermasalah karena program jahat dapat disamarkan sebagai game, screensaver, dan
utilitas yang tampak tidak bersalah.
Open source mengambil tampilan sumber-sentris dari perangkat lunak. Filosofi open
source adalah bahwa pengguna memiliki hak untuk mendapatkan kode sumber
perangkat lunak, dan untuk memperluas dan memodifikasi program untuk
penggunaan mereka sendiri. Ini juga berarti kode tersebut dapat diperiksa untuk
backdoors, virus, dan spyware. Dengan menciptakan komunitas pengembang dan
pengguna, pertanggungjawaban untuk bug, kerentanan keamanan, dan masalah
kompatibilitas menjadi tanggung jawab bersama. Komunitas penggemar komputer
global yang baru ini diberdayakan oleh meningkatnya ketersediaan layanan internet
yang lebih cepat dan web di seluruh dunia.
Ada banyak varian open source, tetapi semua sepakat bahwa pengguna harus memiliki
akses ke kode sumber. Perbedaannya adalah bagaimana seseorang dapat, atau harus,
mendistribusikan kembali perubahan.
Linux telah mengadopsi filosofi ini dengan sangat sukses. Karena Linux ditulis dalam
bahasa pemrograman C, dan itu mencerminkan desain dan fungsionalitas sistem
UNIX yang sudah mapan, secara alami menjadi forum di mana orang dapat
mengembangkan dan berbagi ide-ide baru. Terbebas dari kendala platform perangkat
keras dan perangkat lunak berpemilik, sejumlah besar programmer yang sangat
terampil telah mampu berkontribusi pada berbagai distribusi, membuat perangkat
lunak yang seringkali lebih kuat, stabil, mudah beradaptasi, dan, terus terang, lebih
baik daripada yang eksklusif, ditutup penawaran sumber yang mendominasi dekade
sebelumnya.
Organisasi besar tentu curiga tentang penggunaan perangkat lunak yang dibangun
dengan cara baru ini, tetapi seiring waktu mereka menyadari bahwa programmer
terbaik mereka bekerja pada proyek open source berbasis Linux di waktu luang
mereka. Segera, server-server Linux dan program-program open source mulai
mengungguli sistem mahal yang sudah ada. Ketika tiba saatnya untuk memperbarui
perangkat keras yang sudah ketinggalan zaman, para programmer, insinyur, dan
administrator sistem yang sama yang mulai bekerja di Linux sebagai hobi dapat
meyakinkan bos mereka untuk mencoba Linux. Sisanya, seperti kata mereka, sejarah.
Sebelum pengembangan Linux, banyak aplikasi korporat dan ilmiah dijalankan pada
sistem UNIX. Perusahaan, universitas, dan pemerintah yang menjalankan server farm
besar menyukai stabilitas dan relatif mudahnya pengembangan aplikasi yang
ditawarkan oleh platform ini.
UNIX awalnya dibuat pada tahun 1969. Pada edisi keempatnya, pada tahun 1973,
telah ditulis ulang dalam bahasa pemrograman C yang masih menonjol hingga saat
ini. Pada tahun 1984 University of California Berkeley merilis 4.2BSD yang
memperkenalkan TCP / IP, spesifikasi jaringan yang menopang Internet. Pada awal
1990-an, ketika pengembangan Linux dimulai, berbagai perusahaan yang
mengembangkan sistem operasi UNIX menyadari sistem mereka perlu kompatibel,
dan mereka mulai bekerja pada spesifikasi X / Open yang masih digunakan sampai
sekarang.
Dalam sebagian besar kasus, kepemilikan perangkat lunak tetap pada orang atau
perusahaan yang membuatnya. Pengguna hanya diberikan lisensi untuk menggunakan
perangkat lunak; ini adalah masalah hukum hak cipta. Transfer uang tergantung pada
model bisnis pencipta. Lisensi yang membedakan perangkat lunak sumber terbuka
dari perangkat lunak sumber tertutup.
Linux dimiliki oleh Linus Torvalds. Dia telah menempatkan kode di bawah lisensi
yang disebut GNU General Public License versi 2 (GPLv2). Lisensi ini, antara lain,
mengatakan bahwa kode sumber harus tersedia untuk siapa saja yang meminta dan
bahwa siapa pun diizinkan untuk melakukan perubahan. Satu peringatan untuk ini
adalah bahwa jika seseorang membuat perubahan dan mendistribusikannya, mereka
harus meletakkan perubahan di bawah lisensi yang sama sehingga orang lain dapat
memperoleh manfaat. GPLv2 juga mengatakan bahwa tidak ada seorang pun yang
diizinkan membebankan biaya untuk mendistribusikan kode sumber selain biaya
aktual untuk melakukannya (seperti menyalinnya ke media yang dapat dilepas).
Secara umum, ketika seseorang menciptakan sesuatu, mereka juga mendapatkan hak
untuk memutuskan bagaimana itu digunakan dan didistribusikan. Perangkat Lunak
Bebas dan Sumber Terbuka (FOSS) mengacu pada perangkat lunak di mana hak ini
telah dilepaskan; siapa pun boleh melihat kode sumber dan mendistribusikannya.
Linus Torvalds telah melakukan itu dengan Linux - meskipun ia menciptakan Linux,
ia tidak dapat melarang seseorang menggunakannya di komputer mereka karena ia
telah melepaskan hak itu melalui lisensi GPLv2.
Lisensi perangkat lunak adalah masalah politik, oleh karena itu tidak mengherankan
bahwa ada banyak pendapat yang berbeda. Organisasi telah membuat lisensi mereka
sendiri yang mewujudkan pandangan khusus mereka, sehingga lebih mudah untuk
memilih lisensi yang ada daripada membuat sendiri. Sebagai contoh, universitas
seperti Massachusetts Institute of Technology (MIT) dan University of California
telah mengeluarkan lisensi, seperti halnya proyek seperti Apache Foundation. Juga,
kelompok-kelompok seperti Free Software Foundation telah membuat lisensi mereka
sendiri untuk memajukan agenda mereka.
FSF juga mengadvokasi menentang paten perangkat lunak dan bertindak sebagai
pengawas untuk organisasi standar, berbicara ketika standar yang diusulkan mungkin
melanggar prinsip-prinsip perangkat lunak bebas dengan memasukkan item-item
seperti Digital Rights Management (DRM) yang membatasi apa yang dapat dilakukan
dengan program yang sesuai.
FSF telah mengembangkan serangkaian lisensi mereka sendiri yang bebas bagi siapa
saja untuk digunakan berdasarkan GNU General Public License (GPL) yang asli. FSF
saat ini memelihara GNU General Public License versi 2 (GPLv2) dan versi 3
(GPLv3), serta GNU Lesser General Public License versi 2 (LGPLv2) dan versi 3
(LGPLv3). Lisensi ini dimaksudkan untuk dimasukkan dalam kode sumber aktual
untuk memastikan bahwa semua varian dan modifikasi program asli di masa depan
tetap memiliki kebebasan penggunaan yang sama seperti aslinya. Lisensi GPL dan
variannya adalah alat hukum yang kuat untuk memajukan penyebab perangkat lunak
bebas di seluruh dunia. Apa yang dimulai pada tahun 1983 sebagai keinginan satu
orang untuk berbagi dan meningkatkan perangkat lunak dengan membiarkan orang
lain mengubahnya, pada akhirnya mengubah dunia.
Pertimbangkan ini
Perubahan antara GPLv2 dan GPLv3 sebagian besar terfokus pada penggunaan
perangkat lunak bebas pada perangkat keras tertutup yang telah diciptakan
Tivoization. TiVo adalah perusahaan yang membangun perekam video digital televisi
pada perangkat keras mereka sendiri dan menggunakan Linux sebagai basis untuk
perangkat lunak mereka. Sementara TiVo merilis kode sumber ke versi Linux mereka
seperti yang dipersyaratkan dalam GPLv2, perangkat keras tidak akan menjalankan
binari yang dimodifikasi. Di mata FSF, ini bertentangan dengan semangat GPLv2,
jadi mereka menambahkan klausa khusus untuk versi 3 lisensi. Linus Torvalds setuju
dengan TiVo tentang masalah ini dan telah memilih untuk tetap dengan GPLv2.
Salah satu jenis lisensi Open Source adalah BSD (Berkeley Software Distribution)
dan turunannya, yang jauh lebih sederhana daripada GPL. Saat ini ada dua lisensi
"BSD" yang disetujui oleh OSI, 2-Klausul dan 3-Klausul. Lisensi ini menyatakan
bahwa Anda dapat mendistribusikan kembali sumber dan binari selama Anda
mempertahankan pemberitahuan hak cipta dan tidak menyiratkan bahwa pencipta asli
mendukung versi Anda. Dengan kata lain "lakukan apa yang Anda inginkan dengan
perangkat lunak ini, tapi jangan katakan Anda yang menulisnya." Menurut FSF,
lisensi BSD asli memiliki kelemahan serius karena mengharuskan pengembang untuk
menambahkan klausul yang mengakui University of California, Berkeley dalam setiap
iklan untuk perangkat lunak yang dilisensikan dengan cara ini. Seperti orang lain
menyalin lisensi sederhana ini,
Lisensi FSF, seperti GPLv2, juga merupakan lisensi open source. Namun, banyak
lisensi open source seperti BSD dan MIT tidak mengandung ketentuan copyleft dan
karenanya tidak dapat diterima oleh FSF. Lisensi ini disebut lisensi perangkat lunak
bebas permisif karena mereka permisif dalam cara Anda dapat mendistribusikan
kembali perangkat lunak. Anda dapat mengambil perangkat lunak berlisensi BSD dan
memasukkannya ke dalam produk perangkat lunak tertutup selama Anda memberikan
atribusi yang tepat.
Daripada memikirkan poin-poin penting Open Source dan Perangkat Lunak Bebas,
komunitas telah mulai merujuk mereka secara kolektif sebagai Perangkat Lunak
Bebas dan Sumber Terbuka (FOSS). Kata bahasa Inggris "gratis" dapat berarti "gratis
seperti dalam makan siang" (seperti tanpa biaya) atau "gratis seperti dalam ucapan"
(seperti dalam tanpa batasan). Ambiguitas ini menyebabkan dimasukkannya kata
"libre" untuk merujuk pada definisi yang terakhir. Jadi, kami berakhir dengan
Perangkat Lunak Bebas / Bebas / Sumber Terbuka (FLOSS).
Ketika perangkat lunak telah ditempatkan di domain publik, penulis telah melepaskan semua
hak, termasuk hak cipta atas karya tersebut. Di beberapa negara, ini adalah default ketika
pekerjaan dilakukan oleh agen pemerintah. Di beberapa negara, karya berhak cipta menjadi
domain publik setelah penulis meninggal dan masa tunggu yang panjang telah berlalu.
Organisasi Creative Commons (CC) telah menciptakan Lisensi Creative Commons yang
mencoba untuk mengatasi niat di balik lisensi FOSS untuk entitas non-perangkat lunak. Lisensi
CC juga dapat digunakan untuk membatasi penggunaan komersial jika itu adalah keinginan
pemegang hak cipta. Lisensi CC terdiri dari serangkaian kondisi yang dapat diterapkan oleh
pembuatnya untuk pekerjaan mereka:
Atribusi (BY)- Semua lisensi CC mensyaratkan bahwa pencipta harus diberi kredit,
tanpa menyiratkan bahwa pencipta mendukung penggunaannya.
BagikanSuka (SA)- Ini memungkinkan orang lain untuk menyalin, mendistribusikan,
melakukan, dan memodifikasi karya, asalkan mereka melakukannya dengan persyaratan
yang sama.
Nonkomersial (NC)- Ini memungkinkan orang lain untuk mendistribusikan,
menampilkan, melakukan, dan memodifikasi karya untuk tujuan apa pun selain secara
komersial.
NoDerivatives (ND)- Ini memungkinkan orang lain untuk mendistribusikan,
menampilkan, dan hanya melakukan salinan asli dari karya tersebut. Mereka harus
mendapatkan izin pembuat untuk mengubahnya.
Ketentuan ini kemudian digabungkan untuk membuat enam lisensi utama yang ditawarkan oleh
Creative Commons:
Atribusi (CC BY)- Sama seperti lisensi BSD, Anda dapat menggunakan konten CC BY
untuk segala penggunaan tetapi harus memberi kredit pada pemegang hak cipta.
Attribution ShareAlike (CC BY-SA)- Versi copyleft dari lisensi Atribusi. Karya yang
diturunkan harus dibagikan di bawah lisensi yang sama, seperti halnya dalam ideal
Perangkat Lunak Bebas.
Atribusi NoDerivs (CC BY-ND)- Anda dapat mendistribusikan ulang konten dalam
kondisi yang sama dengan CC-BY tetapi tidak dapat mengubahnya.
Atribusi-Nonkomersial (CC BY-NC)- Sama seperti CC BY, tetapi Anda tidak boleh
menggunakannya untuk tujuan komersial.
Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)- Dibangun di atas lisensi
CC BY-NC tetapi mengharuskan perubahan Anda dibagikan di bawah lisensi yang sama.
Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)- Anda membagikan konten
yang akan digunakan untuk tujuan non-komersial, tetapi orang tidak dapat mengubah
konten.
Tidak Ada Hak Dilindungi (CC0)- Ini adalah versi domain publik Creative Commons.
Pertama, Anda harus memahami bahwa tidak ada apa pun di GPL yang melarang penjualan
perangkat lunak. Faktanya, hak untuk menjual perangkat lunak adalah bagian dari lisensi GPL.
Sekali lagi, ingat bahwa kata bebas mengacu pada kebebasan, bukan harga. Perusahaan-
perusahaan yang menambah nilai pada program-program gratis ini didorong untuk menghasilkan
uang sebanyak yang mereka bisa, dan mengembalikan laba tersebut ke pengembangan perangkat
lunak yang lebih banyak dan lebih baik.
Salah satu cara paling sederhana untuk menghasilkan uang adalah dengan menjual dukungan
atau garansi di sekitar perangkat lunak. Perusahaan seperti Canonical, pengembang Ubuntu, dan
Redhat telah tumbuh menjadi perusahaan besar dengan menciptakan distribusi dan alat Linux
yang memungkinkan pengguna komersial untuk mengelola perusahaan mereka dan menawarkan
produk dan layanan kepada pelanggan mereka.
Banyak proyek open source lainnya juga telah berkembang menjadi bisnis besar. Pada 1990-an,
Gerald Combs bekerja di penyedia layanan Internet dan mulai menulis alat analisis jaringan
sendiri karena alat serupa pada saat itu mahal. Lebih dari 600 orang kini berkontribusi pada
proyek tersebut, yang disebut Wireshark. Sekarang sering dianggap lebih baik daripada
penawaran komersial dan menyebabkan perusahaan dibentuk untuk menjual produk dan
dukungan. Seperti banyak perusahaan lain, perusahaan ini dibeli oleh perusahaan besar yang
mendukung kelanjutan pengembangannya.
Perusahaan seperti Tivo memiliki paket perangkat keras atau menambahkan perangkat lunak
sumber tertutup ekstra untuk dijual bersama perangkat lunak gratis. Peralatan dan sistem
tertanam yang menggunakan Linux adalah bisnis bernilai miliaran dolar dan mencakup
semuanya, mulai dari DVR rumah hingga kamera keamanan dan perangkat kebugaran yang
dapat dikenakan. Banyak firewall konsumen dan perangkat hiburan mengikuti model ini.
Saat ini, baik pengusaha besar maupun kecil memiliki individu dan kadang-kadang seluruh
kelompok yang berdedikasi untuk bekerja pada proyek-proyek sumber terbuka. Perusahaan
teknologi bersaing untuk mendapatkan kesempatan mempengaruhi proyek yang akan
membentuk masa depan industri mereka. Perusahaan lain mendedikasikan sumber daya untuk
proyek yang mereka butuhkan untuk penggunaan internal. Karena semakin banyak bisnis
dilakukan pada sumber daya cloud, peluang bagi programmer open source terus berkembang.
5.1 Pendahuluan
Sebagian besar sistem operasi konsumen dirancang untuk melindungi pengguna dari
seluk beluk CLI. Komunitas Linux berbeda dalam hal ia secara positif merayakan CLI
karena kekuatan, kecepatan dan kemampuannya untuk menyelesaikan berbagai tugas
dengan satu instruksi baris perintah.
Ketika seorang pengguna pertama kali bertemu CLI, mereka dapat menemukan itu
menantang karena memerlukan menghafal jumlah perintah yang membingungkan dan
pilihan mereka. Namun, begitu pengguna mengetahui struktur tentang bagaimana
perintah digunakan, di mana file dan direktori yang diperlukan berada dan bagaimana
menavigasi hierarki sistem file, mereka bisa sangat produktif. Kemampuan ini
memberikan kontrol yang lebih tepat, kecepatan lebih besar dan kemampuan untuk
mengotomatisasi tugas-tugas dengan lebih mudah melalui skrip.
Selain itu, dengan mempelajari CLI, pengguna dapat dengan mudah menjadi produktif
hampir seketika pada rasa atau distribusi APAPUN Linux, mengurangi jumlah waktu
yang diperlukan untuk membiasakan diri dengan suatu sistem karena variasi dalam
GUI.
5.2
Shell
Setelah
pengguna memasukkan perintah, terminal kemudian menerima apa yang telah diketik
pengguna dan meneruskannya ke shell. Shell adalah interpreter baris perintah yang
menerjemahkan perintah yang dimasukkan oleh pengguna menjadi tindakan yang
harus dilakukan oleh sistem operasi. Jika output dihasilkan oleh perintah, maka teks
ditampilkan di terminal. Jika masalah dengan perintah ditemukan, pesan kesalahan
ditampilkan.
Shell Bash juga memiliki fitur populer lainnya, beberapa di antaranya tercantum di
bawah ini:
Bash memiliki daftar fitur yang luas; ini hanya contoh kemampuannya.
Ketika aplikasi terminal dijalankan, dan sebuah shell muncul, menampilkan bagian
penting dari antarmuka — prompt. Tidak hanya prompt di sana untuk menunjukkan
bahwa perintah dapat dijalankan, tetapi juga menyampaikan informasi yang berguna
kepada pengguna. Prompt sepenuhnya dapat dikonfigurasi dan dapat jarang atau fitur
lengkap seperti praktis dan berguna.
Struktur prompt dapat bervariasi antara distribusi, tetapi biasanya berisi informasi
tentang pengguna dan sistem. Di bawah ini adalah struktur prompt yang umum:
sysadmin @ localhost : ~ $
Nama pengguna:
sysadmin @ localhost : ~ $
Nama Sistem:
sysadmin @ localhost : ~ $
5.3 Perintah
Apa itu perintah? Jawaban paling sederhana adalah bahwa perintah adalah program
perangkat lunak yang, ketika dieksekusi pada CLI, melakukan tindakan pada
komputer.
Untuk menjalankan perintah, langkah pertama adalah mengetik nama perintah. Klik di
terminal di sebelah kanan. Tipelsdan tekan Enter. Hasilnya harus menyerupai contoh
di bawah ini:
sysadmin @ localhost : ~ $ ls
Dokumen Desktop Unduh Gambar Musik Template Umum Video
Banyak perintah dapat digunakan sendiri tanpa input lebih lanjut. Beberapa perintah
memerlukan input tambahan untuk berjalan dengan benar. Input tambahan ini datang
dalam dua bentuk: opsi dan argumen.
Opsi digunakan untuk mengubah perilaku inti dari suatu perintah sementara argumen
digunakan untuk memberikan informasi tambahan (seperti nama file atau nama
pengguna). Setiap opsi dan argumen biasanya dipisahkan oleh spasi, meskipun opsi
seringkali dapat digabungkan.
Perlu diingat bahwa Linux adalah case-sensitive. Perintah, opsi, argumen, variabel,
dan nama file harus dimasukkan persis seperti yang ditunjukkan.
5.3.1 Argumen
perintah [opsi] [argumen]
Argumen dapat digunakan untuk menentukan sesuatu agar perintah dapat bertindak.
Jikalsperintah diberikan nama direktori sebagai argumen, itu daftar isi direktori itu.
Pada contoh berikut,/ etc / pppdirektori digunakan sebagai argumen; output yang
dihasilkan adalah daftar file yang terdapat dalam direktori itu:
sysadmin @ localhost : ~ $ ls / etc / ppp
ip-down.d ip-up.d
Itulsperintah juga menerima banyak argumen. Untuk daftar isi keduanya / etc /
pppdan/ etc / sshdirektori, berikan keduanya sebagai argumen:
5.3.2 Opsi
perintah [opsi] [argumen]
Opsi dapat digunakan dengan perintah untuk memperluas atau memodifikasi cara
berperilaku perintah. Misalnya, menggunakan -lopsi darilsperintah menghasilkan
daftar panjang, memberikan informasi tambahan tentang file yang terdaftar, seperti
izin, ukuran file dan informasi lainnya:
sysadmin @ localhost : ~ $ ls-l
total 0
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Desktop
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Dokumen
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Unduh
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Musik
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Pictures
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Publik
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Templat
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 20:13 Video
Seringkali karakter dipilih untuk menjadi mnemonik untuk tujuannya, seperti memilih
huruf l untuk panjang atau r untuk mundur. Secara default, lsperintah mencetak hasil
dalam urutan abjad, dan dengan menambahkan -rpilihan, itu mencetak hasil dalam
urutan abjad terbalik.
sysadmin @ localhost : ~ $ ls -r
Video Templat Gambar Publik Unduhan Musik Dokumen Desktop
Dalam kebanyakan kasus, opsi dapat digunakan bersamaan dengan opsi lain. Mereka
dapat diberikan sebagai opsi terpisah, seperti pada -l -r, atau gabungan, seperti
dalam-. Kombinasi dari dua opsi ini akan menghasilkan output listing yang panjang
dengan urutan abjad terbalik:
sysadmin @ localhost : ~ $ ls -lr
total 32
drwxr-xr-x 2 sysadmin sysadmin 4096 31 Okt 20:13 Video
drwxr-xr-x 2 sysadmin sysadmin 4096 31 Okt 20:13 Templat
drwxr-xr-x 2 sysadmin sysadmin 4096 31 Okt 20:13 Publik
drwxr-xr-x 2 sysadmin sysadmin 4096 31 Okt 20:13 Gambar
drwxr-xr-x 2 sysadmin sysadmin 4096 31 Okt 20:13 Musik
drwxr-xr-x 2 sysadmin sysadmin 4096 31 Okt 20:13 Unduh
drwxr-xr-x 4 sysadmin sysadmin 4096 31 Okt 20:13 Dokumen
drwxr-xr-x 2 sysadmin sysadmin 4096 31 Okt 20:13 Desktop
Urutan opsi gabungan tidak penting. Output dari semua contoh ini akan sama:
ls -l -r
ls -rl
ls -lr
Secara default-lopsi darilsperintah menampilkan ukuran file dalam byte:
sysadmin @ localhost : ~ $ ls -l / usr / bin / perl
-rwxr-xr-x 2 root root 10376 4 Februari 2018 / usr / bin / perl
Jika-hopsi ditambahkan ukuran file akan ditampilkan dalam format yang dapat dibaca
manusia:
sysadmin @ localhost : ~ $ ls -lh / usr / bin / perl
-rwxr-xr-x 2 root root 11K 4 Feb 2018 / usr / bin / perl
Opsi seringkali berupa huruf tunggal; namun, terkadang kata-kata atau frasa juga.
Biasanya, perintah yang lebih lama menggunakan huruf tunggal sementara perintah
yang lebih baru menggunakan kata lengkap untuk opsi. Opsi huruf tunggal didahului
dengan tanda hubung tunggal- karakter, seperti -hpilihan. Opsi kata lengkap diawali
dengan dua tanda hubung-karakter. Itu-hopsi juga memiliki bentuk kata lengkap yang
setara; itu--human dibacapilihan.
sysadmin @ localhost : ~ $ ls -l --human-readable / usr / bin / perl
-rwxr-xr-x 2 root root 11K 4 Feb 2018 / usr / bin / perl
5.3.3 Sejarah
Ketika sebuah perintah dieksekusi di terminal, itu disimpan dalam daftar sejarah. Ini
dirancang untuk membuatnya mudah untuk mengeksekusi perintah yang sama,
kemudian menghilangkan kebutuhan untuk mengetik ulang seluruh perintah.
Menekan tombol Panah Atas ↑ menampilkan perintah sebelumnya pada baris prompt.
Seluruh riwayat perintah yang dijalankan di sesi saat ini dapat ditampilkan dengan
menekan Naik berulang kali untuk menelusuri kembali sejarah perintah yang telah
dijalankan. Menekan tombol Enter menjalankan perintah yang ditampilkan lagi.
Ketika perintah yang diinginkan ditemukan, tombol Panah Kiri ← dan Panah Kanan
→ dapat memposisikan kursor untuk diedit. Kunci berguna lainnya untuk mengedit
termasuk tombol Home, End, Backspace dan Delete.
Jika perintah yang diinginkan ada dalam daftar itu sejarahPerintah menghasilkan, itu
dapat dieksekusi dengan mengetikkan tanda seru !karakter dan kemudian nomor di
sebelah perintah, misalnya, untuk menjalankan kalperintah lagi:
sysadmin @ localhost : ~ $ sejarah
1 tanggal
2 ls
3 kal 5 2030
4 sejarah
sysadmin @ localhost : ~ $ ! 3
kal 5 2030
Mei 2030
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
Untuk menjalankan perintah ke-n dari bagian bawah daftar riwayat, ketik ! -ndan
tekan Enter. Misalnya, untuk menjalankan perintah ketiga dari bagian bawah daftar
riwayat, lakukan yang berikut ini:
sysadmin @ localhost : ~ $ ! -3
tanggal
Rabu 12 Des 04:31:55 UTC 2018
Untuk menjalankan iterasi terbaru dari perintah tertentu, ketik !diikuti oleh nama
perintah dan tekan Enter. Misalnya, untuk mengeksekusi yang terbaru lsperintah:
sysadmin @ localhost : ~ $ ! ls
ls / rumah
sysadmin
5.4 Variabel
Variabel adalah fitur yang memungkinkan pengguna atau shell untuk menyimpan
data. Data ini dapat digunakan untuk memberikan informasi sistem yang kritis atau
untuk mengubah perilaku cara kerja Bash shell (atau perintah lain). Variabel diberi
nama dan disimpan sementara di memori. Ada dua jenis variabel yang digunakan
dalam shell Bash: lokal dan lingkungan.
Untuk mengatur nilai variabel, gunakan ekspresi penugasan berikut. Jika variabel sudah ada,
nilai variabel diubah. Jika nama variabel belum ada, shell membuat variabel lokal baru dan
menetapkan nilainya:
variabel= nilai
Contoh berikut membuat variabel lokal bernama variabel1 dan memberinya nilai Sesuatu:
Perintah echo digunakan untuk menampilkan output di terminal. Untuk menampilkan nilai
variabel, gunakan karakter $ tanda $ diikuti oleh nama variabel sebagai argumen untuk perintah
gema:
Banyak variabel yang tersedia untuk Bash shell, serta variabel yang memengaruhi
berbagai perintah Linux. Diskusi semua variabel berada di luar cakupan bab ini;
Namun, lebih banyak variabel shell akan dibahas saat kursus ini berlangsung.
Dalam contoh sebelumnya, variabel1 dibuat sebagai variabel lokal, jadi pencarian
berikut dalam variabel lingkungan menghasilkan tanpa output:
sysadmin @ localhost : ~ $env | grep variable1
Pipa | karakter meneruskan output dari perintah env ke perintah grep, yang mencari
output.
Teknik pemfilteran teks ini akan dibahas secara rinci nanti dalam kursus.
Perintah ekspor juga dapat digunakan untuk membuat variabel sebagai variabel
lingkungan saat pembuatannya dengan menggunakan ekspresi penetapan sebagai
argumen:
sysadmin @ localhost : ~ $ export variable2 = 'Else'
sysadmin @ localhost : ~ $env | grep variable2
variabel2 = Lain-lain
Setiap direktori dalam daftar dipisahkan oleh tanda titik dua: karakter. Berdasarkan
output sebelumnya, path berisi direktori berikut. Shell akan memeriksa direktori
sesuai urutannya:
/ home / sysadmin / bin
/ usr / local / sbin
/ usr / local / bin
/ usr / sbin
/ usr / bin
/ sbin
/tempat sampah
/ usr / game
Masing-masing direktori diwakili oleh jalur. Path adalah daftar direktori yang
dipisahkan oleh karakter /. Jika Anda menganggap sistem file sebagai peta, path
adalah alamat direktori, yang mencakup arah navigasi langkah demi langkah; mereka
dapat digunakan untuk menunjukkan lokasi file apa pun dalam sistem file. Sebagai
contoh, / home / sysadmin adalah path ke direktori home:
Direktori dan jalur akan dibahas secara rinci nanti dalam kursus.
Jika perintah tidak ditemukan di direktori mana pun yang tercantum dalam variabel
PATH, maka shell mengembalikan kesalahan:
sysadmin @ localhost : ~ $ zed
-bash: zed: perintah tidak ditemukan
sysadmin @ localhost : ~ $
Jika perangkat lunak khusus diinstal pada sistem, Anda mungkin perlu memodifikasi
PATH untuk membuatnya lebih mudah untuk menjalankan perintah-perintah ini.
Misalnya, berikut ini akan menambah dan memverifikasi direktori / usr / bin / custom
ke variabel PATH:
sysadmin @ localhost : ~ $ PATH = / usr / bin / custom: $ PATH
sysadmin @ localhost : ~ $ echo $ PATH
/ usr / bin / custom: / home / sysadmin / bin: / usr / local / sbin: / usr /
local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games
Saat memperbarui variabel PATH, selalu sertakan jalur saat ini, agar tidak kehilangan
akses ke perintah yang terletak di direktori tersebut. Ini dapat dilakukan dengan
menambahkan $ PATH ke nilai dalam ekspresi penugasan. Ingatlah bahwa nama
variabel yang didahului oleh tanda dolar mewakili nilai variabel.
Ada beberapa sumber perintah yang berbeda di dalam shell CLI Anda termasuk
perintah internal, perintah eksternal, alias, dan fungsi.
5.5.1 Perintah Internal
Juga disebut perintah bawaan, perintah internal dibangun ke dalam shell itu sendiri.
Contoh yang baik adalah perintah cd (direktori perubahan) karena merupakan bagian
dari Bash shell. Ketika pengguna mengetik perintah cd, Bash shell sudah
mengeksekusi dan tahu bagaimana menafsirkannya, tidak memerlukan program
tambahan untuk memulai.
Jika suatu perintah tidak berperilaku seperti yang diharapkan atau jika suatu perintah tidak dapat
diakses yang seharusnya, akan bermanfaat untuk mengetahui di mana shell menemukan perintah
atau versi mana yang digunakannya. Akan membosankan jika harus mencari secara manual di
setiap direktori yang tercantum dalam variabel PATH. Alih-alih, gunakan perintah yang mana
untuk menampilkan jalur lengkap ke perintah yang dimaksud:
Perintah eksternal juga dapat dieksekusi dengan mengetikkan path lengkap ke perintah. Sebagai
contoh, untuk mengeksekusi perintah ls:
Menggunakan opsi -a dari perintah type menampilkan semua lokasi yang berisi perintah
bernama:
5.5.3 Alias
Alias dapat digunakan untuk memetakan perintah yang lebih panjang ke urutan tombol yang
lebih pendek. Ketika shell melihat alias dieksekusi, ia mengganti urutan yang lebih lama sebelum
melanjutkan untuk menafsirkan perintah.
Sebagai contoh, perintah ls -l umumnya alias atau l. Karena perintah yang lebih kecil ini lebih
mudah diketik, perintah ls-l menjadi lebih cepat.
Untuk menentukan alias apa yang ditetapkan pada shell saat ini, gunakan perintah alias:
Alias dari contoh sebelumnya dibuat oleh file inisialisasi. File-file ini dirancang untuk membuat
proses pembuatan alias otomatis.
Alias baru dapat dibuat menggunakan format berikut, di mana nama adalah nama yang akan
diberikan alias dan perintah adalah perintah yang akan dieksekusi ketika alias dijalankan.
Misalnya, perintah kal 2019 menampilkan kalender untuk tahun 2019. Misalkan Anda sering
menjalankan perintah ini. Alih-alih mengeksekusi perintah penuh setiap kali, Anda dapat
membuat alias bernama mycal dan menjalankan alias, seperti yang ditunjukkan pada gambar
berikut:
Alias yang dibuat dengan cara ini hanya bertahan selama shell terbuka. Setelah shell ditutup,
alias baru hilang. Selain itu, setiap shell memiliki alias sendiri, jadi alias yang dibuat dalam satu
shell tidak akan tersedia di shell baru yang dibuka.
Output dari perintah-perintah ini menunjukkan bahwa ll adalah alias untuk ls -alF, dan bahkan ls
adalah alias untuk ls --color = auto
5.5.4 Fungsi
Fungsi juga dapat dibangun menggunakan perintah yang ada untuk membuat perintah baru, atau
untuk menimpa perintah bawaan ke shell atau perintah yang disimpan dalam file. Alias dan
fungsi biasanya dimuat dari file inisialisasi ketika shell pertama kali dimulai
5.6 Mengutip
Tanda kutip digunakan di seluruh administrasi Linux dan sebagian besar bahasa pemrograman
komputer untuk membiarkan sistem tahu bahwa informasi yang terkandung dalam tanda kutip
harus diabaikan atau diperlakukan dengan cara yang sangat berbeda dari biasanya akan
diperlakukan. Ada tiga jenis tanda kutip yang memiliki arti khusus bagi Bash shell: tanda kutip
ganda ", tanda kutip tunggal ', dan tanda kutip belakang`. Setiap rangkaian tanda kutip
memperingatkan shell untuk tidak memperlakukan teks dalam tanda kutip dengan cara normal
Dalam tanda kutip ganda tanda bintang hanyalah tanda bintang, tanda tanya hanyalah tanda
tanya, dan seterusnya, yang berguna ketika Anda ingin menampilkan sesuatu di layar yang
biasanya merupakan karakter khusus untuk shell. Dalam perintah gema di bawah ini, Bash shell
tidak mengubah pola glob menjadi nama file yang cocok dengan pola:
Kutipan ganda masih memungkinkan substitusi perintah, substitusi variabel, dan mengizinkan
beberapa karakter meta shell lain yang belum dibahas. Demonstrasi berikut menunjukkan bahwa
nilai variabel PATH masih ditampilkan:
Misalnya, untuk membuat karakter $ hanya berarti $, daripada bertindak sebagai indikator untuk
shell untuk mencari nilai variabel, jalankan perintah kedua yang ditampilkan di bawah ini:
Jika kalimat ini ditempatkan dalam tanda kutip ganda, $ 1 dan $ PATH dianggap variabel.
Jika ditempatkan dalam tanda kutip tunggal, $ 1 dan $ PATH tidak dianggap sebagai variabel.
Tetapi bagaimana jika Anda ingin $ PATH diperlakukan sebagai variabel dan $ 1 tidak?
Dalam kasus ini, gunakan karakter garis miring terbalik di depan tanda dolar karakter $ untuk
mencegah shell mengartikannya. Perintah di bawah ini menunjukkan menggunakan karakter:
5.6.4 Backquotes
Backquotes, atau backticks, digunakan untuk menentukan suatu perintah di dalam suatu perintah,
suatu proses yang disebut substitusi perintah. Ini memungkinkan penggunaan perintah yang kuat
dan canggih.
Dalam perintah sebelumnya, tanggal kata diperlakukan sebagai teks biasa, dan shell meneruskan
tanggal ke perintah gema. Untuk menjalankan perintah tanggal dan mengirimkan output perintah
itu ke perintah gema, masukkan perintah tanggal di antara dua karakter backquote:
Titik koma; karakter dapat digunakan untuk menjalankan banyak perintah, satu demi satu. Setiap
perintah berjalan secara independen dan berurutan; terlepas dari hasil perintah pertama, perintah
kedua berjalan setelah yang pertama selesai, lalu yang ketiga dan seterusnya.
Misalnya, untuk mencetak bulan Januari, Februari dan Maret 2030, jalankan perintah berikut:
Februari 2030
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28
Maret 2030
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Double ampersand && bertindak sebagai logis "dan"; jika perintah pertama berhasil, maka
perintah kedua juga akan berjalan. Jika perintah pertama gagal, maka perintah kedua tidak akan
berjalan.
Untuk lebih memahami bagaimana ini bekerja, pertimbangkan dulu konsep kegagalan dan
keberhasilan untuk perintah. Perintah berhasil ketika mereka bekerja dengan baik dan gagal
ketika terjadi kesalahan. Sebagai contoh, perhatikan perintah ls. Perintah berhasil jika direktori
yang diberikan dapat diakses dan gagal jika tidak.
Dalam contoh berikut, perintah pertama berhasil karena direktori / etc / ppp ada dan dapat
diakses sementara perintah kedua gagal karena tidak ada direktori junk:
Untuk menggunakan keberhasilan atau kegagalan perintah ls bersama dengan && jalankan
perintah seperti berikut. Pada contoh pertama, perintah echo dieksekusi karena perintah ls
berhasil:
Dalam contoh kedua, perintah gema tidak dieksekusi karena perintah ls gagal:
Pipa ganda || adalah logis "atau". Bergantung pada hasil dari perintah pertama, perintah kedua
akan berjalan atau dilewati.
Dengan pipa ganda, jika perintah pertama berjalan dengan sukses, perintah kedua dilewati; jika
perintah pertama gagal, maka perintah kedua dijalankan. Dengan kata lain, Anda pada dasarnya
memberi tahu shell, "Jalankan perintah pertama ini atau yang kedua".
Dalam contoh berikut, perintah echo hanya dijalankan jika perintah ls gagal: