apt-get
Bu komut Ubuntu, Debian'da bulunur. İlginç bir şekilde bu komut hiç bir zaman restart etmeyi teklif etmez. Bu komut yerine daha görsel olan Ubuntu Software Center da kullanılabilir.
autoremove
Eğer paket ismi belirtilmezse kullanılmayan dependency paketleri kaldırır
clean
İndeksi temizler
Programı yükler
Yüklü programı kaldırır.
update seçeneği
Sadece indeksi günceller. Herhangi bir uygulamayı güncellemez.
Update komutundan sonra çalıştırılır. Uygulamaları günceller.
cp
-r seçeneği
Dizin kopyalamak için kullanılır. Dizinler dosya sisteminde, farklı saklandıkları için komuta, dosya değil de dizin kopyalaması gerektiğini belirtmek için kullanılır.
cp -r dir1 copyDir1
cut
cut awk gibi satırı alanlara ayırır. Ancak awk'a göre kullanımı çok daha kolay bir komuttur.
-c(character) seçeneği
-c karakterler ile çalışır. -f ise fieldlar ile çalışır. Her iki seçenek birbirlerine çok benzerler.Örnek'te 6. karakter ve sonrası çıktı olarak veriliyor.
Cut ile satır belirtilen delimeter ile ayrılır. Örnekte delimeter boşluk olarak veriliyor ve 1,2,5,6. sütunlara erişiliyor.
Yukarıdaki örnekte -f ile erişilmek istenen field'lar veriliyor.
Eğer belli bir sütundan sonrasına erişmek isteseydik aşağıdaki gibi yapardık. Örnekte 2. sütundan sonraki herşey dahil ediliyor.
du
Disk usage komutu.
-c seçeneği
-c ile belirtilen her dizin ve altındaki dizinler ayrı ayrı ve en alttada toplam (grand total) olarak görmek mümkün.
du -ch /path/to/folder/
-s seçeneği
-s ile simple -h ile human readable çıktı verir
Konuyu find ve dir komutu başlıklı yazıya taşıdım.
grep
Konuyu grep komutu başlıklı yazıya taşıdım.
head
Head komutu dosyanın başındaki belirtilen sayıda satırı okumak için kullanılır. Örnek'te html ile başlayan tüm dosyalar kullanıcıya sorularak siliniyor.
ip komutu Linux'ta Routing tablolarını görmek, değiştirmek , tunnel ayarları gibi bir çok şey için kullanılır. Bu komut iptables ile karıştırılmamalı. İkisi farklı şeyler. Çoğu Linux'ta route komutu da tabloları düzenlemek için kullanılabilir. route komutunun çıktısı şöyle. ip route komutunun çıktısı ise daha farklı
Kendi subnetimizde olmayan bir ip'yi belli bir arayüzden göndermek istiyorsak şöyle yaparız. Komutlarda genellikle subnet maskesi olarak /24 görülür.
ip route add 192.168.124.0/24 dev eth0
2. Default route eklemek
Şöyle yaparız
Şimdi daha karışık bir çalışmaya bakalım. Elimizde şöyle bir ağ olsun. Node 1 ve Node 4 haberleşebilsinler istiyoruz.
Node 1
Şunları ekleriz. Böylece 10.1.1 ve 10.1.2'ye giden tüm paketler 10.1.3.3 arayüzü ile gönderilir.
Şunları ekleriz. Böylece 1.2'ye giden tüm paketler 10.1.1.3 arayüzü ile gönderilir.
mv
Unix'te bu komut rename olarak çalışır.
perform actions equivalent to the
Bu işlem taşınan dosya aynı dosya sistemi üzerindeyse atomiktir. Eğer taşınan dosya başka bir cihaz üzerindeyse işlem atomik değildir. Atomik olmasının sebebi inode verisine değil file-system verisine değişiklik yapılmasıdır.
Dolayısıyla açılmış ve sonuna veri eklenmekte (append) olan bir dosya mv komutu ile aynı dosya sistemi üzerinde rahatlıkla taşınabilir.
notify-send
Ekran küçük bir pencere açar ve belirtilen metni yazar. Komutun bittiğini anlamak için kullanılabilir.
ps
ppid seçeneği
Verilen uygulamanın çocuklarını gösterir. Örnekte foo'nun çocukları bulunuyor.
etime seçeneği
Uygulamanın başlama zamanını belirtir. Örnek:
route
route -p add 192.168.1.100 mask 255.255.255.255 10.0.1.100
rm
-f seçeneği
Dosyayı hiç bir uyarı vermeden siler
Dosyayı onay alarak siler
sort
-k seçeneği
Sıralanması istenen sütun belirtilir. Tek bir sütuna göre sıralama yapmak istiyorsak dikkat edilmesi gereken nokta sütun numarasını virgül ile ayırarak iki kere yazmaktır. Eğer bu yazılmazsa belirtilen sütundan satır sonuna kadar olan alana göre sıralama yapılır. Örnek'te sadece 2. sütuna göre sıralama yapılıyor.
Eğer birden fazla sütuna göre sıralamak istersek -k ile sütunları belirtiriz. 9. sütundaki iki değer eşit ise 14. sütundaki değer o da eşitse bu sefer 16. sütundaki değer göre sıralama yapılır.
Locale Atama
Uygulama sistem locale'ini kullanır.
C programlama diline göre sıralama yapmak için
Rastgele (random) sıralar. Örnek:
-t seçeneği
Field Seperator değerini belirler. Sütunlar normalde boşluk karakteri ile ayrılı şekilde beklenir. Örnek'te tab karakteri alan ayracı olarak kullanılıyor.
unique olmasını sağlar. Çift sütunları eleriz.
-V seçeneği
Portable bir seçenek değildir.
top komutu durduruluncaya kadar çalışır. Sadece bir kere çalışsın istiyorsak
Top komutu ile hyperthreading her zaman karşımıza çıkıyor. Hyper-threading bir çekirdeğin aynı anda iki instruction setini çalıştırabilmesi demek. Dolayısıyla fiziksel olarak 4 çekirdek 8 tane işlemci olarak gösterilebiliyor. Artık sisteme daha hızlı bir çekirdek yerine daha fazla core eklenmesi tercih ediliyor.
S sütunu
Uygulamanın state'ini gösterir. S sleeping, R running anlamına gelir.
touch
-t seçeneği
03201600 şöyle okunur
-f seçeneği
File sistem kotası belirtilir
File descriptor sayısını sınırlar.
-s seçeneği
Ne kadar stack kullanılacağı atanabilir.
wc
word count ile satır, harf gibi şeyler sayılabilir.
-m seçeneği
Karakter sayar. Örnek:
Verilen dosya ismini path içinde bulmaya çalışır. Bulursa dosyanın yerini gösterir. Bazı komutlar shell built-in'lerdir. Bir komutu shell built-in olup olmadığını anlamak için type built-in komutu kullanılır.
wget
Loglama ve I/O seçenekleri
-q seçeneği
Sessiz (quite) çalıştırır.
Download Seçenekleri
-A seçeneği
Uzantısı verilen dosyaları indirir.
Dosyanın büyüklüğüne bakarak geri kalan byte'ları ister. Yani kaldığı yerden devam eder.
wget -c "https://cdn.sstatic.net/askubuntu/img/logo.png"
-O seçeneği
Çıktı pipe ile başka komuta geçilir.
Örnek:
-S seçeneği
Sunucu tarafından gönderilen HTTP Header bilgilerini yazar. Örnek:
yes
Y veya belirtilen herhangi bir karekteri çıktı olarak verir. Örnekte iki çıktı arasına boşluk kullanmak için kullanılıyor
Bu komut Ubuntu, Debian'da bulunur. İlginç bir şekilde bu komut hiç bir zaman restart etmeyi teklif etmez. Bu komut yerine daha görsel olan Ubuntu Software Center da kullanılabilir.
autoremove
Eğer paket ismi belirtilmezse kullanılmayan dependency paketleri kaldırır
sudo apt-get autoremove
Açıklaması şöyleautoremove
autoremove is used to remove packages that were automatically
installed to satisfy dependencies for other packages and are now no
longer needed.
Eğer paket ismi belirtilirse o paket ve ona bağlı dependency'leri kaldırır.sudo apt-get autoremove packageA
clean
İndeksi temizler
sudo apt-get clean
installProgramı yükler
sudo apt-get install python
remove seçeneğiYüklü programı kaldırır.
sudo apt-get remove python
Yüklü program kalktıktan sonra bazen dependency paketleri kalabiliyor. Dolayısıyla bu komut genelde şöyle kullanılır.sudo apt-get remove python
sudo apt-get autoremove
Bu iki komu yerine tek hamlede yapmak istersek şöyle yaparız.sudo apt-get remove --auto-remove python
Açıklaması şöyle--auto-remove
If the command is either install or remove, then this option acts
like running the autoremove command, removing unused dependency
packages.
update seçeneği
Sadece indeksi günceller. Herhangi bir uygulamayı güncellemez.
sudo apt-get update
upgrade seçeneğiUpdate komutundan sonra çalıştırılır. Uygulamaları günceller.
sudo apt-get upgrade
awk
awk başlıklı yazıya taşıdım.cp
-r seçeneği
Dizin kopyalamak için kullanılır. Dizinler dosya sisteminde, farklı saklandıkları için komuta, dosya değil de dizin kopyalaması gerektiğini belirtmek için kullanılır.
cp -r dir1 copyDir1
cut
cut awk gibi satırı alanlara ayırır. Ancak awk'a göre kullanımı çok daha kolay bir komuttur.
-c(character) seçeneği
-c karakterler ile çalışır. -f ise fieldlar ile çalışır. Her iki seçenek birbirlerine çok benzerler.Örnek'te 6. karakter ve sonrası çıktı olarak veriliyor.
grep Path filename |cut -c6-
-d (delimiter) seçeneğiCut ile satır belirtilen delimeter ile ayrılır. Örnekte delimeter boşluk olarak veriliyor ve 1,2,5,6. sütunlara erişiliyor.
cut -d" " -f1,2,5,6 infile.txt > outfile.txt
-f (field) seçeneğiYukarıdaki örnekte -f ile erişilmek istenen field'lar veriliyor.
Eğer belli bir sütundan sonrasına erişmek isteseydik aşağıdaki gibi yapardık. Örnekte 2. sütundan sonraki herşey dahil ediliyor.
cut -d' ' -f2-
du
Disk usage komutu.
-c seçeneği
-c ile belirtilen her dizin ve altındaki dizinler ayrı ayrı ve en alttada toplam (grand total) olarak görmek mümkün.
du -ch /path/to/folder/
-s seçeneği
-s ile simple -h ile human readable çıktı verir
$ du -sh path/to/dir | awk '{print $1}'
118M
findKonuyu find ve dir komutu başlıklı yazıya taşıdım.
grep
Konuyu grep komutu başlıklı yazıya taşıdım.
head
Head komutu dosyanın başındaki belirtilen sayıda satırı okumak için kullanılır. Örnek'te html ile başlayan tüm dosyalar kullanıcıya sorularak siliniyor.
for i in *; do if [ "$(head -n 1 "$i")" == '<html>' ]; then rm -i "$i"; fi; done
ip komutuip komutu Linux'ta Routing tablolarını görmek, değiştirmek , tunnel ayarları gibi bir çok şey için kullanılır. Bu komut iptables ile karıştırılmamalı. İkisi farklı şeyler. Çoğu Linux'ta route komutu da tabloları düzenlemek için kullanılabilir. route komutunun çıktısı şöyle. ip route komutunun çıktısı ise daha farklı
% route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
link-local * 255.255.0.0 U 1000 0 0 eth0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
1. Yeni Route eklemekKendi subnetimizde olmayan bir ip'yi belli bir arayüzden göndermek istiyorsak şöyle yaparız. Komutlarda genellikle subnet maskesi olarak /24 görülür.
ip route add 192.168.124.0/24 dev eth0
2. Default route eklemek
Şöyle yaparız
ip route add default via 192.168.2.1
Şimdi daha karışık bir çalışmaya bakalım. Elimizde şöyle bir ağ olsun. Node 1 ve Node 4 haberleşebilsinler istiyoruz.
Node1 Node2 Node3 Node4
eth[10.1.3.3]<-->eth[] eth[10.1.2.1]<-->eth[10.1.2.2]
eth[10.1.1.3]<-->eth[10.1.1.2]
Önce tüm düğümlerde "IP Forwarding" etkin olmalı.Node 1
Şunları ekleriz. Böylece 10.1.1 ve 10.1.2'ye giden tüm paketler 10.1.3.3 arayüzü ile gönderilir.
ip route add 10.1.1.0/24 via 10.1.3.3
ip route add 10.1.2.0/24 via 10.1.3.3
Node 2Şunları ekleriz. Böylece 1.2'ye giden tüm paketler 10.1.1.3 arayüzü ile gönderilir.
ip route add 10.1.2.0/24 via 10.1.1.3
Node 3
Şunları ekleriz. Böylece 10.1.3'e giden tüm paketler 10.1.1.2 arayüzü ile gönderilir.
Şunları ekleriz. Böylece 10.1.3'e giden tüm paketler 10.1.1.2 arayüzü ile gönderilir.
ip route add 10.1.3.0/24 via 10.1.1.2
Node 4
Şunları ekleriz.
Şunları ekleriz.
ip route add 10.1.3.0/24 via 10.1.2.2
ip route add 10.1.1.0/24 via 10.1.2.2
Unix'te bu komut rename olarak çalışır.
perform actions equivalent to the
rename()
functionBu işlem taşınan dosya aynı dosya sistemi üzerindeyse atomiktir. Eğer taşınan dosya başka bir cihaz üzerindeyse işlem atomik değildir. Atomik olmasının sebebi inode verisine değil file-system verisine değişiklik yapılmasıdır.
Dolayısıyla açılmış ve sonuna veri eklenmekte (append) olan bir dosya mv komutu ile aynı dosya sistemi üzerinde rahatlıkla taşınabilir.
notify-send
Ekran küçük bir pencere açar ve belirtilen metni yazar. Komutun bittiğini anlamak için kullanılabilir.
myscript.sh && notify-send 'DONE'
ps
ppid seçeneği
Verilen uygulamanın çocuklarını gösterir. Örnekte foo'nun çocukları bulunuyor.
ps --ppid $(pidof foo)
Bu komut yerine varsa pstree de kullanılabilir.etime seçeneği
Uygulamanın başlama zamanını belirtir. Örnek:
LC_ALL=C ps -eo etime= $PIDS
route
route -p add 192.168.1.100 mask 255.255.255.255 10.0.1.100
rm
-f seçeneği
Dosyayı hiç bir uyarı vermeden siler
-f
Do not prompt for confirmation. Do not write diagnostic messages or modify
the exit status in the case of nonexistent operands. Any previous
occurrences of the -i option shall be ignored.
-i seçeneğiDosyayı onay alarak siler
-i
Prompt for confirmation as described previously. Any previous occurrences
of the -f option shall be ignored.
sort
-k seçeneği
Sıralanması istenen sütun belirtilir. Tek bir sütuna göre sıralama yapmak istiyorsak dikkat edilmesi gereken nokta sütun numarasını virgül ile ayırarak iki kere yazmaktır. Eğer bu yazılmazsa belirtilen sütundan satır sonuna kadar olan alana göre sıralama yapılır. Örnek'te sadece 2. sütuna göre sıralama yapılıyor.
sort -k2,2 <people.txt
Bu örnekte ise 9. sütundan satır sonuna kadar olan alanlar sıralanır.sort -k9 -o <out.log> <in.log>
Eğer bir sütunun belli bir karaterine göre sıralamak istersek -ksütun.harfsırası şeklinde yazarız. Örnek'te 2. sütunun 3. karakterine göre sıralama yapılıyor. Harf sırası 1'den başlar.sort -t' ' -k2.3 input
Eğer birden fazla sütuna göre sıralamak istersek -k ile sütunları belirtiriz. 9. sütundaki iki değer eşit ise 14. sütundaki değer o da eşitse bu sefer 16. sütundaki değer göre sıralama yapılır.
sort -t '\t' -k9,9 -k14,14 -k16,16n
Birden fazla sütüna göre sırlama yapmanın bir diğer yolu ise sütunlaru virgül ile ayırarak vermek. Bu durumda 1,2,3. sütunlara göre sıralama yapılır.sort -t$'\t' -k1,3
Locale Atama
Uygulama sistem locale'ini kullanır.
C programlama diline göre sıralama yapmak için
LANG=C sort test2.txt
C locale açıklaması aşağıda.*** WARNING *** The locale specified by the environment affects sort
order. Set LC_ALL=C to get the traditional sort order that uses native
byte values.
-R seçeneğiRastgele (random) sıralar. Örnek:
sort -R filename | head -n1
-t seçeneği
Field Seperator değerini belirler. Sütunlar normalde boşluk karakteri ile ayrılı şekilde beklenir. Örnek'te tab karakteri alan ayracı olarak kullanılıyor.
sort -t $'\t'
-u seçeneğiunique olmasını sağlar. Çift sütunları eleriz.
cat input | sort -u -n
-V seçeneği
Portable bir seçenek değildir.
nimbox-apexer_1.0.0-12
nimbox-apexer_1.1.0-2
nimbox-apexer_1.1.0-1
nimbox-apexer_1.0.0-13
şeklindeki metinleri versiyonları artacak şekilde sıralar. Örnek'te çıktı olarak en büyük versiyon olan nimbox-apexer_1.1.0.2 satırı verilir.cat file.txt | sort -V | tail -n1
toptop komutu durduruluncaya kadar çalışır. Sadece bir kere çalışsın istiyorsak
top -i 1yapılmalı.
Top komutu ile hyperthreading her zaman karşımıza çıkıyor. Hyper-threading bir çekirdeğin aynı anda iki instruction setini çalıştırabilmesi demek. Dolayısıyla fiziksel olarak 4 çekirdek 8 tane işlemci olarak gösterilebiliyor. Artık sisteme daha hızlı bir çekirdek yerine daha fazla core eklenmesi tercih ediliyor.
S sütunu
Uygulamanın state'ini gösterir. S sleeping, R running anlamına gelir.
20. S -- Process Status
The status of the task which can be one of:
D = uninterruptible sleep
R = running
S = sleeping
T = traced or stopped
Z = zombie
Tasks shown as running should be more properly thought of as
'ready to run' -- their task_struct is simply represented on
the Linux run-queue. Even without a true SMP machine, you may
see numerous tasks in this state depending on top's delay
interval and nice value.
Running uygulamaları parlak renkte göstermek için y tuşuna basılır. Tekrar basılırsa eski rengine döner.y :Row-Highlight toggle
Changes highlighting for "running" tasks. For additional
insight into this task state, see topic 3a. DESCRIPTIONS of
Fields, the 'S' field (Process Status).
Use of this provision provides important insight into your
system's health. The only costs will be a few additional
tty escape sequences.
touch
-t seçeneği
touch -t 03201600 myfile
ile Windows'ta access ve modification time 20 Nisan 16:00 olarak verilir.03201600 şöyle okunur
-t STAMP
use [[CC]YY]MMDDhhmm[.ss] instead of current time
ulimit-f seçeneği
File sistem kotası belirtilir
#! /bin/bash
ulimit -f 1073741824 # 1GB
java ....
-n seçeneğiFile descriptor sayısını sınırlar.
$ ulimit -n 3
$ echo > /dev/null
zsh: too many open files: /dev/null
-s seçeneği
Ne kadar stack kullanılacağı atanabilir.
wc
word count ile satır, harf gibi şeyler sayılabilir.
-m seçeneği
Karakter sayar. Örnek:
$ echo -n $variable | wc -m
whichVerilen dosya ismini path içinde bulmaya çalışır. Bulursa dosyanın yerini gösterir. Bazı komutlar shell built-in'lerdir. Bir komutu shell built-in olup olmadığını anlamak için type built-in komutu kullanılır.
$ type pwd
pwd is a shell builtin
$ which pwd
/bin/pwd
wget
Loglama ve I/O seçenekleri
-q seçeneği
Sessiz (quite) çalıştırır.
Download Seçenekleri
-A seçeneği
Uzantısı verilen dosyaları indirir.
wget -r -l1 -np -Ajpg,jpeg,png,bmp,gif http://codegolf.stackexchange.com/questions/$1
-c seçeneği (continue)Dosyanın büyüklüğüne bakarak geri kalan byte'ları ister. Yani kaldığı yerden devam eder.
wget -c "https://cdn.sstatic.net/askubuntu/img/logo.png"
-O seçeneği
Çıktı pipe ile başka komuta geçilir.
Örnek:
wget "http://api.icndb.com/jokes/random" -qO- | jshon -e value -e joke -u
-S seçeneği
Sunucu tarafından gönderilen HTTP Header bilgilerini yazar. Örnek:
$ wget -S http://api.audiotool.com/track/haunt_opaque/mixdown.mp3
...
HTTP/1.1 200 OK
Server: nginx/1.5.6
Date: Fri, 26 Sep 2014 22:34:20 GMT
Content-Type: audio/mpeg
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=65
Access-Control-Allow-Origin: *
Expires: Fri, 26 Sep 2014 22:34:20 GMT
Cache-Control: no-cache, private, no-store
Content-Disposition: attachment; filename="opaqity - Haunt (opaque).mp3"
Pragma: no-cache
X-Lift-Version: 2.4
Length: unspecified [audio/mpeg]
Saving to: `mixdown.mp3'
yes
Y veya belirtilen herhangi bir karekteri çıktı olarak verir. Örnekte iki çıktı arasına boşluk kullanmak için kullanılıyor
blank() { yes "" | head -n "$1"; }
blank 20
Yes programı sadece döngüden ibaret.class A{static void Main(){for(;;)System.Console.WriteLine((char)('y'));}}
Hiç yorum yok:
Yorum Gönder