Dil Seçimi (Select Language)
Diller | Linkler |
---|---|
Turkish 🇹🇷 | Tıklaa |
English |
Click Me! |
Örnekler (Examples)
Örnek İsmi | Link |
Link |
---|---|---|
Counter | Tıklaa | Click Me! |
Copy | Tıklaa | Click Me! |
Parameter | Tıklaa | Click Me! |
Linux 101
Linux Nedir?
Unix’e fikirsel ve teknik anlamda atıfta bulunarak geliştirilmiş açık kaynak kodlu, özgür ve ücretsiz (destek hariç) bir işletim sistemi çekirdeğidir. Çekirdeğin kaynak kodları GNU (Genel Kamu Lisansı) çerçevesinde özgürce dağıtılabilir, değiştirilebilir ve kullanılabilir. Linux ismi ilk olarak Linus Torvalds tarafından yazılan ve 5 Ekim 1991 Linux 0.02 etiketiyle duyurusu yapılan, Linux çekirdeğinden gelmektedir. Linux’un Unix ile herhangi bir kod ortaklığı bulunmamaktadır yani Linux’un kodları sıfırdan başlanılarak yazılmıştır.
Distro Nedir?
Linux'un dağıtımlarına verilen isimdir. Bunlardan en yaygın olarak bilinenleri;
- Debian
- Linux Mint
- Ubuntu
- OpenSUSE
- Fedora
Distrolar Arasındaki Farklar
Dağıtımlar ihtiyaçlara göre geliştirilmişlerdir. Örneğin mint dağıtımı genelde görselliğe önem verir ve windowsdan gelen kullanıcılara cazip gelir. Ayrıca paket yönetim şekilleri ve dosya yapıları gibi farklılıklarda mevcuttur.
Bazı Distroların Dosya Yapıları
Paket Yönetim Sistemi
Paket yönetim sistemi ya da paket yöneticisi; yazılım paketlerinin ve kütüphanelerinin kurulum, güncelleme, konfigürasyon, kaldırılması işlemlerinin tutarlı ve stabil bir şekilde yürütülmesini sağlayan olan sistemlerdir. Tipik olarak paket ve kütüphanelerin hangi versiyonunun kurulduğunu ve birbirlerine olan bağımlılıklarını da hesaba katarlar. Modern paket yöneticilerinin birçoğu merkezi bir kaynaktan yazılım ve kütüphanelerin indirilip yüklenmesi işlevine sahiptirler.
Paket yönetim sistemleri, bir işletim sistemine kurulan yazılımların yönetimi için kullanılabildiği gibi yazılım geliştirme sırasında kullanılan yazılım kütüphanelerinin kurulması ve bağımlılık yönetimi (dependency management) için hazırlananları da mevcuttur.
Bazı Distroların Paket Yöneticileri
- Linux Mint, Debian ve Ubuntu: dpkg
- OpenSUSE: ZYpp, YaST ve RPM
- Fedora: RPM Paket Yöneticisi
Debian Nedir?
Debian Linux, birçok Linux dağıtımının kaynak olarak kullandığı arayüzden ziyade daha çok komutların kullanıldığı ve orta seviyedeki her Linux kullanıcısının kullanabileceği bir Linux dağıtımıdır. 1993 yılından bu yana geçen süreç içerisinde sürekli olarak geliştiriliyor olması ve donanım konusunda kullanıcılara sunduğu geniş desteği sayesinde Debian Linux deneyiminin tam anlamıyla yaşanabileceği en iyi işletim sistemlerinden biridir.
CentOS Nedir?
CentOS Red Hat firmasının dağıtımı olan Red Hat Enterprise Linux (RHEL) kaynak kodları üzerine kurulu ve bu dağıtım ile uyumlu bir linux dağıtımıdır. Bağımsız bir grup tarafından geliştirilen işletim sisteminin isminin açılımı The Community ENTerprise Operating System biçimindedir. Ocak 7, 2014 tarihli bir bildiri ile CentOS geliştirici lideri Karanbir Singh, CentOS'un RedHat ekibine dahil olduğunu bildirmiştir.
Red Hat Nedir?
Red Hat, açık kaynaklı ve Linux tabanlı profesyonel yazılım şirketidir. Şirket, 1993′te Bob Young ve Marc Ewing tarafından kurulmuştur.
Red Hat tarafından resmi olarak desteklense de, Fedora özgür yazılım geliştiricilerinin katılımıyla varlığını sürdürmektedir ve aynı zamanda Red Hat Enterprise Linux ürünü için bir test ortamı görevi görmektedir.
Red Hat Linux ve dolayısıyla Fedora'yı özel yapan şey kararlı ve bilinen paketlerin, sağlam bilgi ile bir araya getirilmesidir. Paketler güncel değildir; güvenlik güncellemeleri dışında, yeni bir beta versiyon çıktığında paket versiyonları dondurulmaktadır. Sonuç, iyi test edilmiş, nispeten kararlı bir Linux dağıtımıdır. Ayrıca RPM paket yöneticisi, Red Hat'ın Linux'a katkılarından birisidir. Bugün Mandriva, Suse gibi popüler birçok dağıtımın kullandığı RPM paket kurulumu konusunda önemli adımlar atılmasını sağlamıştır.
Shell Nedir?
Linux işletim sisteminin yapısında, bilgisayarın donanımı ile iletişim kuran yazılıma Kernel (Kabuk) adı verilmektedir. Kullanıcı, doğrudan donanım ile iletişim kuramaz. Kernel e bir komut göndermek ve işlemlerin yapılmasını sağlamak gerekmektedir. Kullanıcı ile Kernel arasında haberleşme, Shell ismi verilen aracı program sayesinde yapılır.
Temel olarak Shell aşağıdaki işlemleri sırasıyla yapan bir döngüye sahiptir.
- Komutu, komut satırından veya dosyadan oku
- Komutu değerlendir.
- Komutu çalıştır veya gerekli programı çalıştır.
- Sonucu ekrana veya istenen yere yazdır.
- Birinci adıma geri dön.
Terminal Nedir?
Terminal, metin tabanlı komutları yazabileceğiniz ve uygulayabileceğiniz bir arayüzdür. Bu arayüz sayesinde komutları çalıştırırız.
SSH Servisi
İki sistem arasında ister yerel ağdaki bağlantıların isterse uzak bağlantıların güvenli bir şekilde yapılabilmesini sağlayan bir protokoldür. Bağlantı yapılan iki sistemin arasındaki tüm ağ trafiği şifrelenerek verilerin güvenliği sağlanır.
Bağlantı yapılırken kimlik doğrulaması yapılmaktadır. Bu kimlik doğrulamasından sonra istemci ile sunucu arasında bir şifreleme oluşur ve bu şifreleme ile haberleşirler. Ssh için istemci ve sunucuda ssh servisinin yüklü olması gereklidir.[Linux komut satırı - Kemal Demirez]
KOMUTLAR
history
Terminalde çalıştırdığımız her komut aslında hemen kaybolmazlar. Bu komutlar bellekte tutulur ve History komutu ile en son verdiğiniz komutları listeleyebilirsiniz.
Verdiğiniz son 10 komutu listeler:
history 10
man
Terminalde bir komutun detaylarına erişmek için bu komut kullanılır.
man exit
shutdown
Hemen kapat:
shutdown
Kapat ve yeniden aç (restart):
shutdown -r
20 dakika sonra kapat:
shutdown +20
20 dakika sonra restart:
shutdown -r 20
Saat 17:30 da kapat:
shutdown -h 17:30
dig
Açılımı Domain Information Gropher demektir. Yani Alan Bilgisi Toplayıcısı diyebiliriz.
dig komutu ile A kayıtları görüntüleyebiliriz.
Adres (A) kaydı, host adını bir IP adresine yönlendirir. Örneğin, server.domainame.com adresinin direkt olarak sizin ana bilgisayarınıza (ip adresi 111.111.111.111 olsun) yönlendirilmesini istiyorsanız, şunun gibi bir kayıt girmeniz gerekir: domainame.com. A 111.111.111.111
dig buraksecer.com // Answer Section altında A kaydını görebiliriz.
dig buraksecer.com -t NS //name server listeler
curl
client url kısaltınca c-url -> curl olmuş
Sitelerle iletişim kurmamızı sağlayan komuttur. Http protokolü en bilindik kullanımdır ayrıca;
curl, aşağıdaki protokolleri destekler:
- HTTP ve HTTPS
- SFTP
- SCP
- IMAP ve IMAPS
- POP3 ve POP3S
- TELNET
- SMB ve SMBS
- GOPHER
- LDAP ve LDAPS
- SMTP ve SMTPS
- FTP ve FTPS
Hadi bir get isteği atalım;
curl https://www.buraksecer.com //sitenin içeriğini size döner.
Eğer benim güncel cv mi komutu çalıştırdığınız dizine indirmek istiyorsanız buyrun 😎
curl -o burak.pdf https://www.buraksecer.com/wp-content/uploads/2021/12/burak-secer-up.pdf
Şimdi bir FTP protokolü kullanalım; Dosya indirme işlemi,
curl -u root:password -O ftp://sunucu/dosya.tar.gz
Dosya yükleme işlemi,
curl -u root:password -T dosya.tar.gz ftp://sunucu
Daha fazlası için man curl yazıp inceleyebilirsiniz.
lsb_release
Kullandığınız linux dağıtımını öğrenmek için;
lsb_release -a
cal
Eğer bu komutu çalıştırırsanız ekrana bir takvim gelir.
cal
Belirli bir tarihin takvimini görmek için;
cal 1 1992 //1. ayı gösterir
date
Sistemin o an tarihini veren komuttur.
date
uname
Kullanılan karnel versiyonunu öğrenmek için kullanılan komuttur.
uname
w-who-who am i
- w: Hangi kullanıcının hangi komutu çalıştırdığı bilgisi.
- who: O an hangi kimlikle çalıştığınız.
- who am i: who'dan farklı daha detaylı bir bilgi sağlar.
w
who
who am i
uptime
Sistemin ne kadar zamandır açık kaldığını görmek istersek kullanıyoruz.
uptime
hostname
Linux'da kullanılan host adını verir.
hostname
free
Linux sistemimizde o an bellek durumunu öğrenmemize yardım eden komuttur.
free
free -b
free -k
free -m
free -g
- b: byte
- k: kilo - byte
- m: mega - byte
- g: giga - byte
Dosya / Klasör İzinleri
Yetkiler
Terminali açıp bulunduğunuz dizinde ls -l komutunu çalıştırırsanız aşağıdaki çıktıyı alacaksınız.
Hemen alt satırda total 32 yazıyor. Bu iç içe geçmiş dosyalar dahil bütün dosya-klasörleri sayar ve size verir. İlk satıra bakacak olursanız Desktop için izinleri görüyorsunuz. Burada her harfin bir anlamı vardır.
- d -> burası bir dizindir, demektir. Ama eğer d yerine - (tire) olursa bu bir dosya demekti.
- r -> okuma
- w -> yazma
- x -> çalıştırma
İzinlerde dikkatimizi çeken, 3 ana parça şeklinde dağılmış olmaları. Örnek vermek gerekir ise **drwxr - xr - x ** burada tireler ile 3 ana parçaya ayrılmıştır.
- drwxr -> 1. kısım dosya/dizin sahibinin yetkileri.
- xr -> 2. kısım dosya sahibi ile aynı grupta bulunan kullanıcıların yetkileri.
- x -> 3. kısım ise genel kullanıcı yetkilerini belirtir.
Erişim Yetkilerinin Değiştirilmesi
Erişim yetkileri önemli bir konu olduğu için bu manipülasyon işlemini sadece root kullanıcısı yapabilir. Erişim yetkilerini değiştirirken chmod komutu kullanılır.
chmod <ugoa><+=-><rwxst><dosya/dizin>
- u: Dosya ya da dizin sahibi, user.
- g: u ile aynı grupta bulunan kullanıcılar.
- o: Diğer kullanıcılar.
- a: Herkes.
- +: Yetki ekleme.
- -: Yetki çıkartma.
- =: Yetki eşitleme.
- r: Okuma
- w: Yazma
- x: Çalıştırma
- s: Suid biti.
- t: Sticky bit.
Suid Biti
Bir dosya düşünün, bir kullanıcının yazma yetkisi yok. Fakat o kullanıcının geçici olarak yazması lazım. Suid biti ayarlanan kullanıcılar bu geçici yetkiye sahip olurlar.
Suit biti ayarlama komutu:
chmod u+s text.txt
Sistemdeki suit biti ayarlanmış dosya/dizin bulma komutu:
find / -perm -4000
Umask Komutu
Yeni oluşturulan dizin/dosyalar için varsayılan olarak verilecek izinleri ayarlamamıza yarar.
umask rwxr-r--r--
Chattr Komutu
Bir dosya düşünün, config dosyası. Bu dosyanın içinde kesinlikle değişiklil yaplmasın diyorsanız bu komut tam size göre.
chattr +i text.txt
Dosyayı eski haline getirmek için ise;
chattr -i text.txt
Sistemde korumalı dosyalar neler merak ediyorsanız?
lsattr -R <dizin>
Bir Dosyayı Okuma
Her hangi bir dosyanın içini okumak istiyorsak bunun farklı komutları vardır. Okumak istediğiniz dizinde olmalısınız ya da dizini komuttan sonra belirtmelisiniz.
cat test.txt
ya da
cat ./folder/test.txt
ya da
tail test.txt
şekillerinde kullanım sağlayabiliriz ayrıca;
Bir metin dosyanız var ve çok satırlı. Bu komut metin dosyanızı kolayca okumanızı sağlar ve eğer enter tuşuna basarsanız satır satır ilerler aşağı doğru. Space basılırsa ise diğer sayfaya geçer, aslında bir sayfalama işlemi var diyebiliriz. b tuşuna basarsanız bir önceki sayfaya döner.
more folder.txt
Dosya Monitoring
Genellikle log dosyalarını izlemek için kullanılan bir komuttur fakat txt dosyalarını izlemek içinde kullanılabilir.
tail -c 50 text.txt //50 byte'lık veri görüntüler
tail text.txt -> son //10 satırı görüntüler
tail -f /var/log/syslog //log izlemek için kullanılır
tail -F text.txt //txt dosyasının değişikliklerini anlık görüntüler ve bilgi verir.
Vim Editörü
Dosyalarınızı açıp düzenleyebileceğiniz bir text editörüdür. Şimdi vim komutlarına yakından bakalım.
Debian base bir linux kullanıyorsanız önce bir install edelim.
sudo apt-get install vim
Açmak istediğiniz dosyayı;
vim test.txt
Şeklinde açabiliyorsunuz.
Aşağıdaki komutları dosyayı açtıktan sonra veriyorsunuz.
Vim düzenleyicisini kullanmak için verilen bazı komutlar vardır. Tüm komutları ve belgelerini help komutuyla aşağıdaki gibi görebilirsiniz:
:help
Vim bazı modları vardır. Insert modunda dosyaya istediğiniz gibi girdi yapabilirsiniz. Bunun için i basmanız yeterlidir.
Verileri bir dosyaya yazdık, şimdi görev, dosyayı kaydedip kapatmak ve bunu yapmak için Esc tuşuna basarak ilk ekleme modundan çıkmak. Bir komut yazmak için önce noktalı virgül ( : ) yazın ve ardından wq! Ve sonra ENTER'a basın.
:wq!
Dosyayı kaydetmeden dosyadan çıkmak için sadece q komutunu kullanın! Aşağıdaki gibi
:q!
İmlecin altındaki karakteri silmek için komut modunda x tuşu sağlıyoruz. İmleci silinmesi gereken karaktere getirin ve Esc tuşuna basın ve ardından x tuşuna basın.
Geri almak için normal modda u tuşuna basın. Böylece en son yapılan değişiklik geri alınır. Değişiklikleri ileri sarmak için ise ctrl+r kullanılır.
Bir dosyanız var ve binlerce satır var. Arama yapmak istiyorsunuz vim editörü ile şu şekilde arama numaraları vardır.
ESC bastıktan sonra;
:/aranacakkelime
Eğer bir sonraki aranan kelimeye geçmek istiyorsanız;
:n
Bende shift + n oldu bu arada :)
Bir önceki eşleşen kelime için ise:
:N
Dosyadaki kelimeyi değiştirmek için;
:s/arama sözcüğü/değiştirme sözcüğü/
Bütün dosyada değişiklik yapmak için: (gc tek tek onay ister sadece g onaysızdır ama güvenli değildir.)
:%s/arama sözcüğü/değiştirme sözcüğü/gc
Aradığımız Dosyayı Bulma
Bir dizin içerisinde veya bütün işletim sistemi içerisinde isme göre dosya araması yapabiliriz. Ayrıca sadece txt uzantılı dosyalarıda arayabiliriz.
Bunun için find komutu kullanıyoruz.
find ./Desktop -name test.txt
Veya txt uzantılı dosyaları arayabiliriz.
find ./Desktop -name *.txt
Veya içinde test geçen dosyaları arayabiliriz bir nevi like gibi.
find ./Desktop -type f -name "*test*"
Dosya İşlemleri
Dizin işlemlerinde -r kullanılmalıdır.
Dosya Oluşturma
mkdir dosya1
Dizinli dosya oluşturma
mkdir dosya1/test
İç içe oluşturma
mkdir -p resim/b1/b2
Klasör oluşturma;
touch text.txt
Dosya Silme
-r ile kullanılırsa dizin silebiliriz.
rm -r dosya
Sadece dosya silmek için;
rm dosya
ya da
rmdir dosya
Dosya Kopyalama
cp -r kopyalanan_dosya kopyalancak_konum
Eğer bir dizin değil ise;
cp kopyalanan_dosya kopyalancak_konum
Eğer ssh ile taşıma yapılacak ise;
scp kopyalanan_dosya kopyalancak_konum
scp myfile.txt remoteuser@remoteserver:/remote/folder/
Dosya Taşıma
Dosyayı olduğu gibi taşımak istiyorsanız;
mv dosya1 tasinacagi_konum
Dosya İsim Değiştirme
mv komutu ile yapılabiliyor. İlk önce değiştirmek istediğiniz dosya ya da klasör yazılıyor sonra yeni ismi.
mv dosya1 yeni_isim
Dosya İçinde Kelime Arama
Bir dosyanız var 1000 satırlık ve içinde şu kelime geçiyor mu bakmak istiyorsunuz.
grep sorgu dosya
Mesela log.txt var elinizde ve içinde error var mı bakmak istiyorsunuz.
grep error log.txt
Büyük / küçük harf ayırmadan arama için;
grep -i sorgu dosya
Ya da kaç tane error kelimesi geçiyor şu log dosyasında bakalım?
grep -c error log.txt
Ya da bir dosyalar dizininiz var acaba diyorsunuz şu error nerde hangi dosyada var?
grep -l error ./*
Ortam Değişkenleri
İşletim sisteminde bazı sabit değerler vardır. Bütün sistem kullanıcılar veya bazıları bu sabitleri istedikleri zaman okuyup kullanırlar. Şimdi bizde bu değişkenleri nasıl tanımlarız ve bu değişkenlerin listesini nasıl okuruz buna bakacağız.
burak isminde bir değişken tanımlayacağız.
export burak=31
Tanım yaptıktan sonra;
printenv
Komutunu çalıştırıp, tanımladığımız ortam değişkeni listede var mı bakalım?
Eğer linux restart olur ise bu değişken ne yazık ki kaybolur. Bunu kalıcı hale getirmek için /etc/bashrc dosyasının içine bu export komutunu eklemeniz gerekiyor.
Process İzleme
İşletim sisteminde en önemli konulardan biri tabii ki process. Bir çok şekilde farklı yöntemler ile terminalden izleme yapabiliyoruz.
Aşağıdaki komut sayesinde,
- a: Bütün process'leri göster.
- u: Diğer kullanıcılar da dahil olmak üzere göster.
ps -au
Sadece belli bir kullanıcının precess'lerini listelemek için;
ps -u root
Birde gerçek zamanlı akış sağlayan bir komut var;
top
Gelişmiş bir monitöring için(sudo apt install atop gerekir);
atop
Etkileşimli süreç görüntüleyici için(sudo apt install htop)
htop
Ağaç bağlantılı process listesi için ise:
pstree
Foreground - Background Process
Process izlemeyi daha önce işlemiştik. Şimdi bu process tiplerine ve nasıl bir process oluşturabiliriz bunlara bakacağız.
İş parçacıklarının listesini;
jobs
Komutu ile alabiliyoruz.
Foreground, siz bir komut verdiğiniz vakit teminalde o komutun/işlemin bitmesini bekliyoruz ya hani, işte o foreground oluyor. Yani işi ön yüzde yapıyor ve terminali kitliyor. Background ise bunun tam tersi, iş arka planda asenkron şekilde akıyor. Haydi bir örnek yapalım;
sleep 20
Bu komutu çalıştırırsanız 20 saniye boyunca uyutur ve siz hiç bir komut vb giriş yapamazsınız bu bize foreground 'u verir. Fakat;
sleep 20 &
Derseniz, git bu işi bir background process olarak arkada asenkron yap. Bu sefer size bir progress id dönecektir ve jobs yazdığınızda devam ediyor olarak yarattığınız progress'i göreceksiniz.
Bir process foreground yapmak istiyorsanız önce
jobs -l
Önce çalışan jobları listeliyoruz ve istediğimiz job index id alıyoruz.
fg 1
yaparak bu process artık foreground 'a çeviriyoruz. Aynı şekilde;
bg 1
yaparak process'i background process yapıyoruz.
Cron Jobs
Belli bir aralık ile çalışan iş parçacıklarına cron job diyoruz. Bir cron çalışma zamanı nasıl anlaşılır?
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
17 * * * * root cd / && run-parts --report /etc/cron.hourly
Eğer linux'unuzda cd /etc gidip cat crontab derseniz bu açıklama ile karşılaşacaksınız. Burada örnek bir cron ve üzerinde cron time nasıl kurulur anlatmış ama ben size bir site vereceğim çok sevdiğim bir sitedir. CrontabGuru sitesinden kolayca bir cron time çıktısı alabilirsiniz.
Bunları anlattıktan sonra bir cron job oluşturalım.
crontab -e | -r | -l
- e: Edit
- r: Remove
- l: Liste
Aşağıdaki komut sayesinde cron dosyamızı edit yapabiliriz. Size ilk açılırken hangi editör ile devam edelim diye soruyor, ben vim ile devam ettim.
crontab -e
Şimdi bir satır olarak aşağıdaki komutu ekliyoruz.
*/5 * * * * tar -cvzf /sikistirilacak/dizin/log.tar.gz /sikisacak/dizin
Kayıt edip çıktıktan sonra artık job 5 dakikada bir log sıkıştırma dosyası oluşturur ve üzerine yazar.
Cron Job Log Monitor
Cron job kurduktan sonra anlık monitör edebilirsiniz;
tail -F CRON /var/log/syslog
Kullanıcı İşlemleri
Kullanıcı Ekleme
adduser burak
Bu komutu verdikten sonra sizden bir şifre isteyecek. Şifre girdikten sonra artık bir kullanıcı oluşturdunuz hayırlı olsun. /home klasörünün altında kullanıcı adı ile bir klasör göreceksiniz.
Kullanıcı Silme
deluser --remove-home burak
Kullanıcı Bilgilerini Listeleme
chage -l burak
Kullanıcı Bilgilerini Güncelleme
chfn burak
Kullanıcı Parola Değiştirme
passwd burak
Kullanıcı Değiştirme Ve Başka Kullanıcı Adına İşlem Yapma
Şimdi bu yukarıdaki oluşturduğumuz kullanıcıya geçiş yapalım ve onun kabuğunda çalışalım.
su - burak
Şifre isteyecektir.
Peki bir diğer komutta başka kullanıcıya geçiş yapmaktır fakat sadece komutları o kullanıcı olarak verirsiniz.
su burak
Disk Durumunu İnceleme
(Kaynak)
- Dosya sistemi (Filesystem) – Dosya sisteminin adını verir.
- Boyut (Size) – Dosya sisteminin toplam boyutunu gösterir.
- Kullanılan (Used) – Dosya sisteminde kullanılan disk alanını boyutunu gösterir.
- Kullanılabilir (Available) – Dosya sisteminde boş olan disk alanı boyutunu gösterir.
- Kullanılan (Use) – Kullanılan disk alanı yüzdesini gösterir.
- Bağlı olduğu (Mounted On) – Son sütun dosya sisteminin nereye bağlı olduğunu gösterir.
- df -h – Daha iyi ve daha insan tarafından okunabilir formatta gösterecek. Bu şekilde disk boyutu GB ile gösterilecek. (Eğer boyut 1 GB’dan daha küçükse MB veya hatta B ile gösterilir.)
- df -m – Dosya sistemi kullanımını MB ile göstermek için kullanılabilir.
- df -k – Önceki gibi, dosya sistemi bilgisini KB ile göstermek için kullanılabilir.
- df -T – Dosya sistemi türünü göstermek için kullanılır (yeni bir sütunda görünecek).
- df -ht /home – Bu komutu kullanarak belirli bir dosya sistemi hakkında bilgileri (insanın okuyabileceği formatta) görebilirsiniz.
- df --help – Kullanabileceğiniz kullanışlı komutları ve komutlar hakkındaki bilgileri gösterir.
- du /home/user/Desktop/ – Bu seçenek, kullanıcının Masaüstü’nü görmenizi sağlar ve Masaüstü’müzdeki klasörlerin ve dosyaların disk kullanımıyla ilgili bilgi verir.
- du -h /home/user/Desktop/ – Tıpkı df‘de olduğu gibi -h seçeneği de bilgileri daha okunabilir bir biçimde görüntüler.
- du -sh /home/user/Desktop/ – -s seçeneği belirtilen bir klasörün toplam boyutunu verir (bu durumda, Masaüstü’nün toplam boyutunu gösterir).
- du -m /home/user/Desktop/ – Tıpkı df‘de olduğu gibi, bu da bize Megabyte cinsinden bilgi sağlayacaktır (bilgileri kilobayt cinsinden görmek için -k kullanabilirsiniz.
- du -h --time /home/user/Desktop/ – Bu bize, görüntülenen dosya ve klasörlerin son değiştirilme tarihini baz alarak bilgi verecektir.
- df --help – Kullanabileceğiniz diğer yararlı komutları gösterecek ve onlarla ilgili daha fazla bilgi sağlayacaktır.
Bilgisayarın Ip Adreslerini Listeleme
curl ifconfig.me
Bir Domaini Pingleme
Bir web sitesine 1 paket gönderip cevap alabiliyor muyuz bakmaya, pingleme denir.
Örnek bir ping komutu:
ping google.com
Burada siz durdurana kadar foreground bir process çalışır.
ping -c 3 google.com
Derseniz; 3 adet ping atacak ve sonlanacak fakat hala bir foreground process'dir.
Bir Domainin Dns Kayıtlarını Listeleme
Local linux dns ayarları ve listesi için;
cat /etc/resolv.conf
Bir domain ayrıntıları için;
nslookup -type=mx google.com
Package Manager İle Bir Paket Yükleme
Yerel sisteminizin yüklü paketlerinin en son sürüm bilgilerini güncellemek için;
Aşağıdaki komut paketleri update etmez sadece güncel bağlılıklarını ve paketlerin hangi repoları kullandığını update eder, bu listeye **/etc/apt/sources.list **'den erişebiliriz.
sudo apt-get update
Haydi şimdi linux'umuza node kuralım.
sudo apt install nodejs
Yükleme bittikten sonra bir kontrol şart:
node –version
Bir Uzak Sunucuya SSH İle Uzaktan Bağlanma
SSH, şifreli bir şekilde iki ağ arasında iletişimi sağlayan bir tüneldir. Bağlantı yapılırken bilgiler karşı tarafa şifreli bir şekilde gönderilir. Önemli nokta ssh yapılabilmesi için karşı tarafta ssh servisinin çalışıyor olması gerekmektedir.
Öncelikle SSH servisi ne alemde bakalım ve eğer aktif değilse başlatalım;
service ssh status
SSH servisini başlatalım:
service ssh start
Şimdi artık SSH bağlantısı açabiliriz.
ssh kullanici@ipadresi
bu komutan sonra sizden şifre isteyecek ve laps diye bağlantı açılacak. Artık uzak sunucunuzun linuxuna bağlandınız hayırlı olsun.
Linux Servisler
systemd
Systemd servislerin abisidir. Nerde bir servis çalışır ya da durur ise orada systemd vardır. Genelde linux dağıtımları systemd kullanır. İşletim sistemi her başladığında servisleri çalıştıran, logları toplayan abimizdir.
Linux’ta çalıştırdığımız web ve uygulama sunucuları, SSH, DNS, telnet, vb servisler systemd veya benzeri (örneğin upstart) bir init system tarafından yönetilirler. Bu sistemlere init system denmesinin sebebi, Linux'un bu sistemleri açılış sırasında (boot) diğer process'leri başlatan ve PID (Process ID) 1 ile ifade edilen init process'i olarak kullanmasıdır(kaynak).
systemctl
systemd yönetimini sağlayan komuttur. Gelin bazı komutları inceleyelim.
sudo systemctl status //Bütün servislerin durumunu gösterir.
sudo systemctl status apache2 //apache2 servisinin durumunu gösterir.
sudo systemctl start/restart/stop apache2
//apache2 servisini başlatmak/yenidenbaşlatmak/durdurmak için kullanılan komut.
sudo service —status-all | less //Servislerin durumunu gösterir ve listede scrool yapmanı sağlar.
sudo systemctl disable/enable apache2 //apache2 servisini deaktif/aktif etme.
//Deaktif edilen servis kendi kendine(linux restart vb.) tekrar başlatılmaz!
sudo journalctl -u apache2.service //Apache2 servisinin loglarını döker.
Sıkıştırma İşlemleri
Bir çok sıkıştırma komutu vardır. Bunlardan bazıları;
- zip
- gzip
- tar
zip
Zip oluşturma,
zip -r test.zip ziplenecekhedef
Şifreli zip oluşturma,
zip -r -P 1234 test.zip ziplenecekhedef
Zip açma,
unzip acilacakzipdosyasi.zip
Şifreli zip açma,
unzip -P şifre acilacakzipdosyasi.zip
gzip
gzip oluştururken sizden bir sıkıştırma kalitesi ister. Bu kalite 1 en düşük ama hızlı, 9 yüksek ama yavaş sıkıştırır.
Gzip oluşturma,
gzip -9 index.html
Burada dikkat edilmesi gereken, index.html.gz olarak değiştirir sıkıştırdığı direkt dosyanın kendisidir. Parametre olarak 9 verdik. En iyi sıkıştırma deneyimi için en yüksek değeri verdik.
Gzip dizin sıkıştırma,
gzip -9 -r file
Gzip açma,
gunzip index.html.gz
tar
Tar oluşturma,
tar -cvf test.tar ziplenecekhedef
Tar açma,
tar -xvf test.tar
Linux'a Nasıl Yükleriz?
Docker Cli
Aslında kolayca bir arama ile nasıl yüklersiniz bulabilirsiniz fakat günün sonunda bu guide size her komutu sağlasın istiyoruz ve o sebeple Docker nasıl yüklenir hızlı bir göz atalım.
Ubuntu için kurulum adımları:
- apt paket güncelleme işlemi ve repo ekleme
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
- Docker resmi GPG key ekleme işlemi.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- Repository setup işlemi yapıyoruz.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- Bamm artık apt ye git update et dediğimiz zaman docker yüklenecek.
sudo apt-get update
- Eğer update hata verirse;
sudo chmod a+r /etc/apt/keyrings/docker.gpg
sudo apt-get update
- Tamam şimdi bakalım yükleyebildik mi?
docker --version
Beklenen çıktı: Docker version 20.10.20, build 9fdeb9c
- Versiyon bilgisi değişebilir tabii.
Versiyon bilgisini alabildiysek tebrikler :)
Docker Compose Cli
Aşağıdaki komutları sırayla çalıştırdığımız zaman docker-compose cli kurulmuş olacaktır.
İlk olarak burada dikkat etmemiz gereken versiyondur. Ben 1.29.2 kullandım ama siz günceli kullanabilirsiniz. Bu komut /usr/local/bin/docker-compose klasörüne indirme işlemi yapacaktır.
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Curl ile indirme yaptıktan sonra gerekli izinleri tanımlıyoruz.
sudo chmod +x /usr/local/bin/docker-compose
Ve izinden sonra işlem tamam! Bakalım versiyon komutu çalışacak mı?
docker-compose --version
Eğer bir çıktı aldıysanız bravo!
Beklenen çıktı: docker-compose version 1.29.2, build 5becea4c
(kaynak)