Bash Başlangıç

Temel komutlar

tab tuşunu tamamlamak için kullanabiliriz. Tab tuşuna iki kere basarak da olası seçenekleri görebiliriz.

cd de<tab>
cd desktop 

cd<tab><tab>
desktop documents pictures ...

man <komut> ile man page’ini görüntülenir.

man ls  --> ls komutunun man page'i açılır. 

Gezinme

  • / -> Dosya sisteminin başlangıcı
  • . -> Şuanda bulunulan directory
  • .. -> Parent directory
cd Desktop  -->Document dir'e gider 
cd .. --> Parent dir'e gider. Yani bir üst dir

Listeleme

ls komutu ile bulunduğumuz klasördeki dosyaları listeliyebiliriz.

  • ls –> bulunan klasördeki dosyaları listeler
  • ls -F –> listeleme yaparken dir’lerin yanına / sembolü koyar. Böylece dirler ile file’lar birbirine karışmaz.
  • ls -a –> Gizli dosyaları görüntüler.
  • ls -l –> Liste halinde görüntüleme yapar. Daha detaylıdır.
  • ls -alF –> a, l, F seçeneklerinin birleşimidir.

Filtreleme

Bulunduğumuz klasörde esat ve esad isminde iki tane dosya oluşturalım.

touch esat
touch esad

Sonra ls komutunun yardımıyla bir takım sorgular çalıştıralım

ls esa?  -> ? yerine herhangibir karakter gelebilir.
esad esat

ls e* -> * yerine herhangi bir N ADET karakter gelebilir. Yani başı e ile başlayan dosyaları getirir. 
esad esat

ls esa[d] -> son harfi d olan 
esad 

ls esa[!d] -> son harfi d olmayan
esat 

ls esa[b-y] -> son harfi b den y'ye kadar olan 
esad esat

ls -l Desktop/ -> Desktop altındaki dosyaları listeler.

Copy, move, remove

cp source destination ->sentaksı
cp dosya1 ../ -> dosya1 i parent directory ye kopyalar 
cp -R documents/ Doc_CP  -> documents dir'i yeni oluşturalacak Doc_CP dir'ine kopyalar. 

rm -f script -> dosya siler (forcely remove)

cp Documents/* .  -> Doc. klasöründeki her şeyi şuanda bulunulan dizine kopyalar

mv S newS  -> Dosyanın adını değiştirir. 
mv newS Documents/ -> dosyayı Doc. dizinine taşır. 

rm -i new_script
rm: remove regular empty file 'new_scrpit'? y 

Linkleme

2 tipi mevcuttur:

  • Symbolic links -> Points another physical file. Dosyaların inode numarası birbirinden farklıdır
  • Hard links -> Point the data on hard drive. Dosyaların inode numarası aynıdır.

inode numarasını öğrenmek için:

ls -i <dosya_ismi> 
ls -i -> tüm klasördeki dosyaların inode numarasını görüntüler. 

Linkleme

ln -s old new ->Symbolic link 
ln old new ->Hard link

Directory

mkdir new -> new adında yeni bir dir oluşturur. 

mkdir new/new2/new3 -> HATA
mkdir -p new/new2/new3 -> başarılı

touch new/file
rmdir new/ -> HATA: Directory is not empty
rm -R New/ -> Recursive bir şekilde içindeki dosyalarla beraber siler.

Dosya içeriğini görüntüleme

file text.txt
text.txt: ASCII text, with very long lines(1416)

file -> dosya hakkında bilgi verir 

cat text.txt -> tüm datayı görüntüler. 
cat -n text.txt -> tüm datayı satır numaralarıyla birlikte görüntüler. 

more text.txt -> hepsini birden görüntülemek yerine parça parça görüntüler. (q -> quit arrow space ...) 

less text.txt -> more gibi / ile arama yapmak mümkün

tail text.txt -> son 10 satırı gösterir 
tail -n 1 text.txt -> son 1 satırı gösterir
tail -f text.txt -> dosyanın içine yazıldıkça ekrana basar. Canlı canlı append edilenleri gösterir.

echo "text" >> text.txt -> text i txt ye append eder

head text.txt -> tail ile aynı ama sonu yerine başını gösterir. -f parametresi yoktur. 

Daha fazla komut

Find & Locate

find . -name sample.txt  -> sample.txt i arar
find . -name "*.txt"  -> txt türündeki tüm dosyaları gösterir
find . -empty  -> empty dosyaları gösterir.

find . -empty | less


sudo apt install locate 
find gibi her şeyi taramaz onun yerine arama sistemini kullanır.
locate file | less

Grep

grep "foam" text.txt -> dosya içinde foam bulunan satırları ekrana basar. 
grep -n "foam" text.txt -> ekrana basarken satır numrasıyla beraber basar. 
grep -c "foam" text.txt -> foam kelimesini içeren kaç satır olduğunu basar. 
grep -e "foam" -e "smile" text.txt -> birden fazla pattern ararken 

grep "foam" * -> klasördeki foam içeren tüm dosyaların içindeki satırları getirir. 

Sort

vim words -> satır satır kelimeler yazılır 
vim nums -> satır satır sayılar yazılır. 

sort words -> kelimeleri, sözlük sıralaması yapar
sort nums -> sayıları, sözlük sıralaması yapar
sort -n nums -> sayıları, sayı sıralaması yapar


vim months -> aylar 3 harfli sırasız bir biçimde yazılır. 

sort -M months ->
Jan
Feb
Mar
...
Nov 
Dec

PS

ps -> report a snapshot of the current processes

ps -ef -> allprocess running, expect ...
ps -elf

Top

ps komutu gibidir ama real time dır. 

kill <proc_ıd> -> proc_id li processi i öldürür.

Disk alanını kontrol etmek

df -> disk hakkında bilgi verir. 
df -h -> daha okunaklı bir halde çıktı verir.

du -sh * | sort -nr  -> büyükten küçüğe sıralar 
114M snap
12K text.txt
4.0K words
4.0K Videos
4.0K Templates
...

Mounting

mount -> var olan mountları gösterir

sudo mount -t type device directory 
sudo mount -t vfat /dev/sdb1 /media/disk 
sudo mount -o rw -t vfat /dev/sdb1 /media/disk 


sudo umount /media/disk

Compress & archive

gzip text.txt -> compress
gzip -d text.txt.gz -> uncompress

zip text.zip text.txt -> compress
zip -r doc.zip Documents/ -> compress entire directory. 
unzip doc.zip -> uncompress

tar -cvf docs.tar Documents/  -> compress
tar -xvf docs.tar  -> uncompress

Yardımcı araçlar

SSH Keys

mkdir .ssh
chmod 700 .ssh/
ssh-keygen -t rsa -> generate public private key pair 
cd .ssh 
id_rsa id_rsa.pub -> private and public key. 

scp id_rsa.pub esat@12.2.4.2:~/.ssh/authorized_keys

IPTables

iptables -A INPUT -s 1.1.1.1 -j REJECT -> block ip 
iptables -L -> list iptable rules 
iptables -D INPUT -s 1.1.1.1 -j REJECT

UFW

sudo apt install ufw
ufw default deny incoming
ufw default allow outgoing 
deny or allow incoming traffic

ufw allow ssh -> allow ssh

ufw allow 2222 -> allow port

sudo systemctl status ufw 

ufw allow from 1234:1324/tcp -> allow ports

Bilinmesi gereken başka komutlar

pushd  Documents/ -> stack a atar
popd -> stackdan çıkartır

!e -> echo -> tıpkı ? gibi 


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *