Linux Shell Script Yazma Eğitimi
What you'll learn
- Linux Shell Script Yazmayı Öğreneceksiniz
- Shell Script Yazarken Kullanabileceğiniz Komutları Öğreneceksiniz
- Kurs Boyunca Bol Bol Uygulama Yapacaksınız
- Kurs Sonunda Kendi Uygulamalarınızı Yazabileceksiniz
Requirements
- Temel Bilgisayar Bilgisi
- Linux Hakkında Temel Bilgiler ve Linux Komutları
- Aktif Linux Kullanıcısı Olmak
- Öğrenme Arzusu ve İsteği
Description
DİKKAT: Eğer Linux bilmiyorsanız (kurulum yapmanız bildiğiniz anlamına gelmez! ve sadece video izleyerek linux bildiğinizi düşünüyorsanız) bu kurs sizin için uygun değildir. Aktif olarak Linux kullanmanız gerekmektedir.
Bir servera bağlandınız ve bir terminal yada SSH penceresi açıp merak ediyorsunuz: "Bu şeyle ne yapmalıyım?"
Önce kısa bir bilgi vereyim.
Bir İşletim Sistemi birçok bileşenden oluşur, ancak iki ana bileşeni şunlardır: Kernel (Çekirdek) ve Shell (Kabuk).
Kernel (Çekirdek); donanım ve yazılım arasındaki iletişimi mümkün kılar. Kernel (Çekirdek) bir işletim sisteminin en içteki parçasıyken, shell (kabuk) en dıştaki parçadır. Linux işletim sistemindeki shell, sizden komutlar biçiminde girdi alır, işler ve ardından bir çıktı verir. Yani bir kullanıcının programlar, komutlar ve komut dosyaları üzerinde çalıştığı arayüzdür. Bir kabuğa, onu çalıştıran bir terminal tarafından erişilir. Shell (Kabuk), bir İşletim sisteminin hassas iç kısmının etrafını sararak onu kazara oluşabilecek hasarlardan korur. Bu nedenle adı Kabuk 'tur.
Açtığımız pencereye dönersek;
Önünüzdeki terminal penceresi shell içerir ve özetle shell bilgisayarınızla yada sunucu (server) ile etkileşim kurmak, verileri almak veya depolamak, bilgileri işlemek ve diğer çeşitli basit ve hatta son derece karmaşık görevleri yapmak için komutları kullanmanızı sağlar.
Peki Shell Script Nedir?
Shell Script, Unix / Linux shell programı tarafından çalıştırılmak üzere tasarlanmış açık kaynaklı bir bilgisayar programıdır. Shell Script Dosyası, shell 'de yürütmesi için bir dizi komut yazmak için bir programdır. Uzun ve tekrar eden komut dizilerini, herhangi bir zamanda kaydedilebilen ve çalıştırılabilen tek ve basit bir komut dosyasında birleştirerek programlama çabalarını azaltır.
Şimdi bu açılan terminalde bazı komutların günlük göreviniz olduğunu hayal edin. Her gün komutların tümünü hatasız olarak çalıştırmanız (yürütmeniz) ve gözlenen bilgileri saklamanız gerekir. Çok geçmeden bu son derece sıkıcı bir görev haline gelecektir. Dolayısıyla siz verilen tüm komutları tek seferde ve aynı anda çalıştırmanın bir yolunu düşünmeye başladınız. İşte kurtuluşunuzun olduğu yer burasıdır.
Hadi hep beraber Linux Shell Script yazmaya başlayalım.
NOT: Eğitim, Masaüstü PC'ye kurulu Ubuntu Linux Dağıtımı üzerinde, gerçek konsol (Terminal) kullanılarak anlatılmaktadır.
Eğitimden tam performans almak için; SSH (Putty vb.) ile bağlandığınız sunucuda (server) yada sanallaştırma yazılımı (virtualbox, vmware vb.) üzerine kurduğunuz Linux dağıtımında (Centos, Ubuntu, Debian, Fedora..vb.) kursun örneklerine uygulamalı olarak çalışmanızı tavsiye ederim.
Öğrenecekleriniz genel başlıklar olarak aşağıdaki şekildedir.
Linux Shell Nedir?
Shell Tespiti Yapmak ve She-Bang
Yorum Satırları
Shell Yazma ve Çalıştırma
Değişkenler
Döngüler
Şart/Koşul İşlemleri (if, elif, else, case)
Harici Dosyalarla İşlemler
Fonksiyonlar
Hata Ayıklama
Ve Örnek Uygulamalar
GÜNCELLEME: Veritabanı yedekleme uygulaması eklendi.
GÜNCELLEME 2: Matematiksel İşlemler Nasıl Yapılır eklendi.
GÜNCELLEME 3: If ile kullanılabilecek bazı operatörler (İlişkisel Operatörler ve Kelime Operatörleri) eklendi.
GÜNCELLEME 4: Dosyaların durumlarıyla alakalı işlemler eklendi.
GÜNCELLEME 5: MySQL komutları kullanımı örnek uygulaması eklendi.
Who this course is for:
- Linux'ta ilerlemek isteyenler
- Shell Script yazmayı öğrenmek isteyenler
Instructor
20 yılı aşkın süredir Frontend, Backend ve FullStack olarak aktif olarak çalışmalar, projeler gerçekleştirmekteyim ve/veya aktif projelerde Frontend, Backend veya FullStack olarak bulundum ve hala da bulunmaya devam etmekteyim.
Bilgisayar Donanım ve Yazılım bilgisi haricinde HTML/HTML5, CSS/CSS3, Javascript, Ajax, jQuery, PHP, MySQL, PostgreSQL, Bootstrap, XML, JSON, Linux İşletim Sistemi (Centos, Debian, Ubuntu..vb), Server Management ve konfigürasyonları..vb. konularda yıllara yayılmış tecrübe ve bilgi birikimine sahibim. Her geçen gün bu tecrübelerime karşılaştığım durumlar sebebiyle yenilerini ekliyorum.
Ayrıca henüz tam anlamı ile tecrübe sahibi olmadığım ve hala öğrenmeye devam ettiğim Python, React konularında da kendimi geliştirmeye devam ediyorum.
Dipnot olarak evimde, iş yerinde uzun yıllardır (yaklaşık 15 yıl) aktif bir Linux kullanıcısıyım ve Linux'u ikinci işletim sistemi olarak değil ana işletim sistemi olarak kullanıyorum.
2002 yılında kurulan netopsiyon sitesinin kurucu ortaklarından biriyim. Yıllardır yöneticilik, teknik destek ve server management görevlerinde bulundum ve hala devam ediyorum.
Boş vakitlerimde yeni bir şeyler öğrenmeye çalışıyorum. Hala yeni şeyler öğrenmenin peşini bırakamadım.
Burada sizlere yılların bana vermiş olduğu bilgi birikimini ve tecrübelerimi aktarmaya çalışacağım.
I have been actively working and carrying out projects as Frontend, Backend and FullStack for more than 20 years and/or I have been and still continue to be involved in active projects as Frontend, Backend or FullStack.
Apart from computer hardware and software knowledge, HTML/HTML5, CSS/CSS3, Javascript, Ajax, jQuery, PHP, MySQL, PostgreSQL, Bootstrap, XML, JSON, Linux Operating System (Centos, Debian, Ubuntu..etc), Server Management and configurations. ..etc. I have years of experience and knowledge on the subject. I add new ones to these experiences every day due to the situations I encounter.
I also continue to improve myself in Python and React, which I do not yet have full experience with and am still learning.
As a side note, I have been an active Linux user at home and at work for many years (about 15 years) and I use Linux as the main operating system, not as a second operating system.
I am one of the founding partners of the netopsiyon site, which was established in 2002. I have worked in administrative, technical support and server management roles for years and I still continue to do so.
I try to learn something new in my spare time. I still can't stop learning new things.
Here I will try to convey to you the knowledge and experience that I have gained over the years.