Yazılımcılar için Temel Linux Komutları
Bir yazılımcı olarak günlük kullandığım ve lazım olabileceğini düşündüğüm bazı komutları paylaşmak istiyorum.
Dosya / Dizin Komutları
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
pwd: hangi dizinde olduğunu verir. cd: dizinler arası geçişi sağlar. cd cemdirman/Desktop/Linux_Training/ cd .. bir alt dizine cd ../.. iki alt dizine cd sadece bu komut ile hangi dizinde olursanız olun kendi home dizinine geçiş yapmış olursunuz. ls: klasör ve dosyaları listelemek için kullanılır. ls ls -l izinleri, hangi kullanıcının oluşturduğunu, oluşturma tarihini, ls -a gizli dosyaları, ls -la gizli dosyaların da ayrıntı bilgisini, ls -R recursive olarak bütün dosya ve klasörleri, ls -S dosya boyutuna göre listeler. touch: text dosyası oluşturur. touch denemeDosyasi cat: dosya içeriğini terminale yazdırır. cat denemeDosyasi echo: terminale yazmak ve var olan system değişkenlerini ekrana yazdırmak için kullanılır. bunun yanında bir dosyaya yazı yazmak için de kullanılabilir. echo ekrana yazdır echo dosyaya yazdır > testDosyasi dosya boş değilse önceki yazılar silinir. echo dosyaya bir kere daha yaz >> testDosyasi dosya boş değilse apend modda açıp öyle yazar. Log dosyalarını okumak için kullaanabileceğiniz; more less head head -n 10 ilk 10 satırı, tail tail -n 10 son 10 satırı listeler. grep: dosya içerisinde string bir ifade aramak için kullanılır. grep -v: verilen ifade haricindeki satırları listelemez. grep -i: büyük/küçük harf duyarlılığı yapılmaz. grep -r: recursive arama yapar. cp: dosya kopyalamak için kullanılır. cp <kaynak> <hedef> şeklinde syntax mevcut. cp dosyaDizinKomutları cemdirman/Desktop/HedefKlasör mv: dosya taşımak için kullanılır. mv cemdirman/Desktop/HedefKlasör/dosyaDizinKomutları cemdirman/Desktop/Linux_Training/Chapter1 mkdir: dizin oluşturmak için kullanılır. mkdir HedefKlasör mkdir cemdirman/Desktop/TestKlasör/klasör1 eğer üstteki komutta "TestKlasör" isimli klasör yoksa -p parametresi ile çalıştırarak olmayan klasörleri de oluşturmasını sağlarız. rm: dosya ve dizin silme işlemi için kullanılır. birden fazla parametre vererek aynı andan silme yapabilirsiniz. rm testDosyasi1 testDosyasi2.txt testDosyasi3.png rm -r cemdirman/Desktop/Linux_Training recursive olarak alt klasörleri de siler. Dosya / Dizin Erişim Yetkisi bir kullanıcı aşağıdaki izinlere sahip olaabilir; bir kullanıcı aşağıdaki izinlere sahip olaabilir; r: read w: write x: execute yukarıda listeleme komutlarında bahsettiğimiz gibi ls -l ile dosyanın izinlerine bakabiliriz. ls -l -rw-r--r--@ 1 cemdirman staff 1107 26 Eyl 12:16 bilgiAlmaKomutları.sh -rw-r--r-- 1 cemdirman staff 0 27 Eyl 22:45 dosya1 -rw-r--r-- 1 cemdirman staff 0 27 Eyl 22:45 dosya2 -rw-r--r--@ 1 cemdirman staff 2435 27 Eyl 17:24 dosyaDizinKomutları.sh drwxr-xr-x 2 cemdirman staff 64 27 Eyl 22:45 klasör1 drwxr-xr-x 2 cemdirman staff 64 27 Eyl 22:45 klasör2 ifadeleri incelersek; en başta bulunan d harfi directory(dizin) olduğunu, - ise dosya olduğunu ifade eder. izinler ise üçlü gruplanarak okunabilir. aradaki - zaten bu grupları ifade eder. 1.Grup: sahibinin izinelerini, 2.Grup: sahibiyle aynı gruptaki kullanıcının izinelerini, 3.Grup: diğer kullanıcıların izinelerini ifade eder. erişim yetkisi vermek; Bu işlemi root kullanıcı gerçekleştirebilir. Bu sebepten root değilseniz önce root olmanız gerekmektedir. Daha sonra chmod komutuyla gerçekleştirebilir. chmod <ugoa><+-> <rwe> <dosya/dizin> u: user g: group o: others +: yetki ekleme oparatörü -: yetki alma oparatörü ls -l -rw-r--r--@ 1 cemdirman staff 1107 26 Eyl 12:16 bilgiAlmaKomutları.sh -rw-rw-r-- 1 cemdirman staff 0 27 Eyl 22:45 dosya1 -rw-r--r-- 1 cemdirman staff 0 27 Eyl 22:45 dosya2 -rw-r--r--@ 1 cemdirman staff 3592 28 Eyl 07:40 dosyaDizinKomutları.sh drwxr-xr-x 2 cemdirman staff 64 27 Eyl 22:45 klasör1 drwxr-xr-x 2 cemdirman staff 64 27 Eyl 22:45 klasör2 Aşağıdaki komutlar yukarıdaki çıktı üzerinden örneklendirilecektir. 1) dosya1 group rolünde write izni mevcut. dosya2 iki için de aynı izni verelim. chmod g+w dosya2 ls -l -rw-rw-r-- 1 cemdirman staff 0 27 Eyl 22:45 dosya1 -rw-rw-r-- 1 cemdirman staff 0 27 Eyl 22:45 dosya2 2) dosya1 ve dosya2 group ve others rw yetkilerini alalım ve sadece dosyanın sahibi bu izinlere sahip olsun. chmod go-rw dosya1 dosya2 ls -l -rw------- 1 cemdirman staff 0 27 Eyl 22:45 dosya1 -rw------- 1 cemdirman staff 0 27 Eyl 22:45 dosya2 3) dosya1 ve dosya2 sahibi execute iznine de sahip olsun. chmod u+x dosya1 dosya2 ls -l -rwx------ 1 cemdirman staff 0 27 Eyl 22:45 dosya1 -rwx------ 1 cemdirman staff 0 27 Eyl 22:45 dosya2 4) dosya1 ve dosya2 sahibinden execute iznini alalım. chmod u-x dosya1 dosya2 ls -l -rw------- 1 cemdirman staff 0 27 Eyl 22:45 dosya1 -rw------- 1 cemdirman staff 0 27 Eyl 22:45 dosya2 5) şimdi ise execute iznini bütün gruplara verelim. chmod +x dosya1 dosya2 : eğer herhangi bir group(u,g,o) belirtmezseniz aşağıda gördüğünüz üzere hepsine verecektir. ls -l -rw-r--r--@ 1 cemdirman staff 1107 26 Eyl 12:16 bilgiAlmaKomutları.sh -rwx--x--x 1 cemdirman staff 0 27 Eyl 22:45 dosya1 -rwx--x--x 1 cemdirman staff 0 27 Eyl 22:45 dosya2 Yetki işlemlerini rakamlarla yapma da mümkün. r: 4 w: 2 x: 1 değerlerine sahip. Toplamı ise 7 yaptığı için bütün izinleri vermek istediğinizde bu değer yeterli olacaktır. 6) dosya1 ve dosya2 sahibi bütün izinlere, group rw ve others ise hiç bir izne sahip olmasın. chmod 760 dosya1 dosya2 ls -l -rwxrw---- 1 cemdirman staff 0 27 Eyl 22:45 dosya1 -rwxrw---- 1 cemdirman staff 0 27 Eyl 22:45 dosya2 |
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 32 33 34 35 |
#process $ps : sistemde aktif olan kullanıcının process listeler. $ps -e : sistemde çalışan tüm process ayrıntılı listeler. $ps -u <userName> : parametre olarak verilen kullanıcının process listeler. $top : anlık olarak sistemdeki process ve kaynak kullanımını gösterir. $top Processes: 406 total, 2 running, 404 sleeping, 2032 threads 21:30:01 Load Avg: 2.09, 1.78, 1.86 CPU usage: 4.29% user, 4.77% sys, 90.93% idle SharedLibs: 260M resident, 58M data, 87M linkedit. MemRegions: 200073 total, 2287M resident, 104M private, 967M shared. PhysMem: 8047M used (2588M wired), 145M unused. VM: 7482G vsize, 1371M framework vsize, 190583774(128) swapins, 194143056(0) swapouts. Networks: packets: 18363805/22G in, 15208804/1765M out. Disks: 38447794/1044G read, 15376493/863G written. PID COMMAND %CPU TIME #TH #WQ #PORT MEM PURG CMPRS PGRP PPID STATE BOOSTS %CPU_ME 98341 com.apple.We 0.0 00:38.41 4 1 164 79M 0B 75M 98341 1 sleeping *0-[15838] 0.00000 95776 ssh-agent 0.0 00:00.03 1 0 21 828K 0B 812K 95776 1 sleeping *0[1] 0.00000 95742 com.apple.We 0.0 00:34.18 4 1 116 75M 0B 71M 95742 1 sleeping *0-[15626] 0.00000 95603 com.apple.We 0.0 01:47.47 5 1 131 247M 0B 240M 95603 1 sleeping *0-[14470] 0.00000 95561 mysqld 0.5 74:25.41 39 0 61 351M 0B 350M 95561 1 sleeping *0[1] 0.00000 95445 studentd 0.0 01:34.68 2 1 141 12M 0B 8348K 95445 1 sleeping *0[1] 0.00000 #kill: sistemdeki process sonlandırmak için kullanılır. kill <PID> : pid ile verilen process sonlandırır. kill -9 <PID> : sonlandıramadığınız process kesin olarak sonlandırır. kill <servis-adı> : verilen servisin ilgili bütün process sonlandırır. $kill mysqld |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$service mysqld start | stop | status | restart $service --status-all #Sembolik link #Kısayol gibidir. /etc/init.d dosyasına tanımlayarak kullanabilirsiniz. ln -s komutu ile oluşturulur. $ln -s dosya sembolikDosya |
Tabiki çok daha fazla komut ve kullanım mevcut. Katkı sağlamak isterseniz PR gönderebilirsiniz. https://github.com/cemdrman/Linux_Training
Faydalı olması dileğiyle.