Linux Dosya Boyutu Öğrenme (du Komutu)







                                         

Linux Dosya Boyutu Öğrenme



du komutu(du command):

Linux ta dosya ya da dizinlerin boyutunu öğrenmek istediğimizde kullanacağımız komuttur.

Kullanımı oldukça basit :

du dosya_adi

eğer bir dizin hakkında bilgi almak istiyorsak

du dizin_adi 

ya da

du dizin_yolu (/home/ersin/Download) 


Ancak eğer dizin içerisinde bir çok dosya ve dizin varsa hepsini boyutlarıyla beraber listeleyecektir.

Bu durumda sadece ilgili dizinin boyutunu öğrenmek istiyorsak:

du -sh dizin_adi  

Eğer bir dizin içerisindeki sadece bir alt dizinlerinin boyutlarını öğrenmek isterseniz şu komutu

kullanmanız gerekecektir.


du -h --max-depth=1 /Klasör/yolu

--max-depth=2 olursa ağaç şeklinde düşünürsek iki alt dizine kadar inecektir.

-h  dosyanın daha okunaklı olması için kullanılır boyutu byte cinsinden değilde MB veya GB gösterir


Bir dizindeki tüm dosya ya da dizinlerin boyutunu öğrenmek istiyorsanız

du -sh * kumutunu kullanın

Bir dizindeki resimlerin ya da başka dosyaların boyutunu öğrenmek isterseniz

du -sh  *.txt          ya da         du -sh  *.jpg




du komutuyla beraber bir çok parametre kullanılabilmektedir. Onlardan bazıları ve kullanım amaçları

aşağıdaki gibidir.


-a    =  Sadece dizinler değil dosyalarında disk kullanımlarını gösterir.
-B   =  birim baytlık bloklar kullanır.
-b    =  Boyutlar bayt cinsinden gösterilir.
-c    =  Bir genel toplam gösterilir.
-D   =  dosya bir sembolik bağ dosyası ise hedefindeki disk kullanımı gösterilir.
-h   =  Boyutları, okunması kolay biçimde gösterir (1K 234M 2G gibi).
-m  =  Boyutları Megabyte olarak gösteril size=1M ile aynıdır.
-S   =  Alt dizinlerin boyutları hesaba katılmaz.
-s    =  Her argüman için sadece toplam gösterilir.
-x   =  Diğer dosya sistemleri üzerindeki dizinler hesaba katılmaz.
-X  =  dosya içindeki şablonlarla eşleşen dosyalar hesaba katılmaz.


Daha fazla bilgi için:

man du  komutunu kullanın.















Bash Kısayollar (Shortcuts – Hotkeys )



Ctrl + aİmleci satır başına götürür
Ctrl + eİmleci satır sonuna götürür
Ctrl + bİmleç bir karakter geri gider
Ctrl + fİmleç bir karakter ileri gider
Alt + bİmleç bir kelime geri gider
Alt + fİmleç bir kelime ileri gider
Ctrl+xxİmleç her defasında mevcut konumu ve satır başı arasında ileri/geri gider.
Ctrl + lEkranı temizler ve imleç en üst satıra konumlanır. clear komutuyla aynı işleve sahip.
Ctrl + uİmlec konumundan satır başına kadar siler. (imlecin solundaki her şeyi siler )
Ctrl + kİmlec konumundan satır sonuna kadar siler. ((imlecin sağındaki her şeyi siler )
Ctrl + wimleç konumundan bir önceki kelime başına kadar olan kısmı siler. Eğer imleç bir kelimenin ortasında ise o kelimenin imleçten önceki kısmını siler
Ctrl + timleçten önceki iki karakteri yer değiştir.
Esc + timleçten önceki iki kelimeyi yer değiştir.
Ctrl + cAktif çalışan prosese kill sinyali gönderir.
Ctrl + zAktif çalışan prosesi arkaplana (background) atar. Bu durumda Proses askıya alınmıştır. bg ile arkaplanda çalışması devam ettirilir. İstenirse proses tekrar fg komutu ile öne alınır
Ctrl + dAktif shell oturumuna exit komutu gönderir.
TabDosya, dizin, komut vb isimleri için otomatik tamamlama sağlar.
Ctrl + hBackspace tuşu gibi davranır.
Ctrl + rDaha önce kullanılmış komutlar arasında (History / Geçmiş) arama yapmanızı ve kullanmanızı sağlar
Alt + cKelimenin ilk harfini büyük yap
Alt + uİmlecin sağındaki kelimeyi büyük harf yap
Alt + lİmlecin sağındaki kelimeyi küçük harf yap

LINUX SUID, SGID ve Sticky Bitleri



    



  LINUX  SUID, SGID ve Sticky Bitleri


Daha önce linux dosya ve dizin yapısı adında bir yazı yazmıştım.  Bu yazıda alışagelmişin dışında 3

farklı bit'ten bahsedicem.

Önceki yazıya buradan erişebilirsiniz.

Peki nedir bu bitlerin farkı  ya da ne işe yarar bu bitler?  Sorusunu şöyle açıklayalım:

Açılımları şöyle

SUID :   Set User ID 

SGID :   Set Group ID 


                                                   SUID : (Set User ID )

Kimi zaman bir dosyayı bütün bütün kullanıcıların root yetkisiyle çalıştırması gerekebilir. Ancak

tüm kullanıcıların root parolasını bilmesi istenen durum değildir.  Böyle bir durumda dosyaya suid

yetkisi  verilir.

$  ls -l /etc/passwd   komutu verildiğinde çıktısı şöyle olur.

-rw-r--r--   1 root root 2301 May 15 01:26   /etc/passwd

Bir dosyaya SUID hakkı vermek üzere chmod komutu ile u+s  hak belirleyicisi kullanılabilir.


  sudo chmod u+s  /etc/passwd   komutu verildiğimizde  bu dosyaya suid hakkı vermiş oluyoruz.

Çıktısı şöyle olacak:

-rwSr--r--   1 root root 2301 May 15 01:26   /etc/passwd

görüldüğü üzre dosyanın erişim hakkı değişti.

Yukarıdaki komutun   çalıştırılması halinde, komutun işletilmesinden sonra sisteme

giriş yapan her kullanıcı root yetkileri ile donatılmış olacaktır.

 Bu örnek, bir  sisteminde  denenmemeyi gerektirecek kadar tehlikelidir!





                                                      SGID : (Set Group ID )

SUID ile benzer biçimde, bazı programların çalışmaları süresince belli bir kullanıcı grubunun üyesi 

olarak çalışması gerekli olabilir.  Örneğin yazıcı hizmetleri ile ilgili yazılımlar bu türden haklara 

ihtiyaç duyarlar.  Bir programa SGID hakkı vermek üzere chmod komutu ile g+s  hak belirleyicisi 

kullanılabilir:


 ls -l /home/ersin/yazici   komutu verildiğinde çıktısı şöyle olur.

-rw-r--r--   1 root root 2301 May 15 01:26   /home/ersin/yazici

  sudo chmod g+s  /home/ersin/yazici    komutu verildiğimizde  bu dosyaya sgid hakkı vermiş oluyoruz.

Çıktısı şöyle olacak:

-rw-r-Sr--  1 aspa aspa     0 May 16 23:56  /home/ersin/yazici

                                               

                                          Sticky

Tüm kullanıcıların yaz-boz tahtası olarak kullanabileceği dizin /tmp 'dir.  Kullanıcılar tarafından 

işletilen tüm  programlar geçici dosyalarını bu dizinde yaratır ve işleri bittiğinde siler.  Ancak bu 

dizine tüm kullanıcıların  okuma ve yazma hakkı ile erişmesi durumunda kullanıcıların bu dizini 

hepten silebilmesi mümkün olacaktır.

Kullanıcıların yalnızca kendilerine ait dizinleri ve dosyaları silebilmesini sağlamak üzere /tmp dizini 

Sticky erişim hakkı ile donatılmıştır:


$  ls -ld  /tmp  komutu verildiğinde çıktısı şöyle olur.



drwxrwxrwt  15  root  root  4096  May  16 23:57  /tmp

Bir dizine sticky erişim hakkı vermek üzere chmod u+t hak belirleyicisi kullanılabilir.



WINDOWS'u KALICI OLARAK LINUX'a BAĞLAMAK

      

 

  NTFS diski, Linux'a kalıcı olarak bağlamak



Bir çok kullanıcı Linux sistemin yanında ihtiyaç dolayısıyla Windows'u da kullanıyor. Bu yüzdendir 

ki Windows tarafında kullandığı dosyalara erişmek gerekebiliyor. Böyle bir durumda Linux'tan 

Windows'a  erişim yapabiliyor ancak başlangıçta windows disk bağlı olarak gelmiyor.


O halde ne yapmalı?

Windows'u , Linux'a kalıcı olarak bağlayalım.

Nasıl mı? 

Şöyle ki:


Terminal'i (Konsol ya da Uç birim ) açarak aşağıdaki konutu veriyoruz 

sudo fdsik -l 

sizden kullanıcı parolasını isteyecek  ve sınra aşağıdakine benzer bir çıktı verecek 




bunu yapmamızdaki amaç bağlamak istediğimiz disk bölümü  hangi bölümde.

Bu işlemi yaptıktan sonra yapmanız gerken şey bu disk bölümünü bağlamak için biz dizin(klasör) oluşturmak.

Eğer Home dizininde ki bir dizine bağlayacaksanız 

Terminalden mkdir dizin_adı (örnek mkdir win)  komutunu girin 


Eğer kök dizinine bağlayacaksanız mkdir dizin_adı demeniz yeterli olmayacak , bunun için  root 

yetkisi almanız gerekecek  sudo mkdir dizin_adı


Dizinimizide oluşturduğumuza göre artık bağlama işlemini gerçekleştirebiliriz.

Şimdi yapmamız gereken şey  fstab  dosyası içerisine değişiklik yapmak 


fstab (File System Table) nedir?

Linux disk yapılandırma bilgisini  fstab  isimli bir dosyada tutar. Bu dosya dağıtımlara göre

farklı isimlerde ve farklı yollarda olabilir.

Mint dağıtımındaki konumu olan  /etc/fstab yolundaki dosyayı  gedit metin editörüyle (yada bir başkası) açarak bağlama bilgilerini yazacağız. 
Şimdi aşağıdaki komutu veriyoruz.
  gedit  /etc/fstab 
Açılan metin editörü dosyasına aşağıdaki satırı kopyalaıyp yapıştırın.
/dev/sda4 /win ntfs defaults, umask=1000, gid=46 0 0
Siz bu bilgileri kendi disk ve oluşturduğunuz dizin adıyla değiştirip kaydedin.


*   /dev/sda4 benim bağlamak istediğim disk bölümü( Windows sistemde D dizinim)

* /win benim diski bağlamak için yukarıda oluşturduğum dizin_adi (Bu arada ben kök dizine bağladım)


Hepsi bu kadar :)






Django Nedir?


                       

                            Django nedir?



Django,  Python ile yazılmış ücretsiz ve açık kaynak bir web framework (uygulama  iskeletidir).

Frameworkler, websitesi geliştirmeyi hızlandıran ve kolaylaştıran bir grup bileşendir.



                        Frameworklere neden ihtiyaç duyulur?

Frameworkler ;  kompleks, gelişkin projeler geliştirildiğinde bizim için kimi dosyaları ve ayarları hazır olarak oluşturup sunar. Ayrıca çoğu zaman benzer kod bloklarını yazmak zorunda kaldığımız durumlar olur, frameworklar kimi model ya da mimarilere göre hazırlandıklarından bizi aynı zamanda kod tekrarı yapmaktan da kurtarmış olurlar.  


Bir çok programlama dilinin birçok framework'ü bulunur. Python'da aynı şekilde ..

Python ile web sitesi ya da blok oluşturmak için geliştirilmiş frameworkler aşağıdaki görselde ki gibidir.





Django, şuan  python ile web geliştirme yapmak için en popüler ve en güçlü frameworktür.