Bash Scripting ile Basit Otomasyon ve Sık Kullanılan Komutlar
Komut Satırı
Kabuk, bilgisayarınızı bir grafik kullanıcı arabirimi (GUI) aracılığıyla kontrol etmek için farenizi ve klavyenizi kullanmak yerine bir klavye ile kontrol etmenizi sağlayan bir komut satırı arabirim programıdır. İlk başta garip ve zor görünebilir, ancak kabukta ustalaşmanın birçok nedeni vardır.
-
Çoğu biyoinformatik programı yalnızca komut satırından çalıştırılabilir. Dolayısıyla, genomik veya transkriptomik çalışmak istiyorsanız kabuğa aşina olmanız gerekecektir.
-
Kabuk, işinizi daha verimli ve daha hızlı yapmanız için size güç verir. Bu, tekrarlanabilir bir araştırma programı geliştirmeye yönelik ilk adımdır.
-
Bulut bilgisayarlarına yalnızca komut satırı arabirimleri üzerinden erişilebilir.
man
Bu komut manual'in kısaltmasıdır. Bu komutu kullanarak herhangi bir program ya da komut ile ilgili yardım alabilirsiniz.
$ man whoami
help
Help komutu kullanarak bir çok komut veya araç ile ilgili ayrıntılı bilgi alabilirsiniz. Kullanım örneği de aşağıdaki gibidir.
$ less --help
ls
komutu bulunduğunuz dizin içerisinde bulunan dosyları listelemeye yarar. Listelemek istediğiniz dosyada ekstra argümanlar kullanarak daha ayrıntılı bir listeleme yapabilirsiniz.
$ ls -l
mkdir
Bu komut size bulunduğunuz dizin içersinde klasör oluşturmaya yardımcı olan bir komuttur. Bu komutu kullanarak birden fazla klasörü aynı anda oluşturabilirsiniz.
$ mkdir klasör1 klasör2
cd
Bu komut "change directory" yani dizin değiştirmeye yarayan çok kullanılan komutlardan bir tanesidir.
$ cd klasör1
pwd
Bu komut bulunduğunuz dizini ekrana yazdırmaya yarayan bir komuttur.
$ pwd
Çıktısı da şu şekilde olmaktadır. "home/user/Desktop/klasor1"
whoami
Bu komut ile o an işlem yaptığınız kullanıcının adını ekrana yazdırabilirsiniz.
$ whoami
rm
Bu komutu remove yani silme işlemi yapmaya yaramaktadır. Bu komut kullanılarak genellikle dosyalar silinebilmektedir. İsterseniz -r opsiyonunu kullanarak klasörleri de silebilirsiniz.
$ rm -r
head
Bu komut herhangi bir dosya içerisinde bulunan bilgilerin en üst kısmında bulunan kısmını göremeyi sağlar.
$ head -5 dosyaadi.txt
- Bu komut ile "dosyaadi.txt" dosyasının ilk 5 satırını önizleyebilirsiniz.
less
$ less
more
$ less
cat
Bu komut ile herhangi bir dosya içerisinde bulunan tüm bilgiler kabuk ekranına yazdırılabilir.
$ cat
touch
Bu komutu kullanarak hızlı bir şekilde bir veya birden fazla dosya oluşturabilirsiniz.
$ touch
cp
Bu komutu kullanarak herhangi bir dosyayı kopyalayabilirsiniz. Bu kopyalama işlemi sonrası orjinal dosya silinmeyecektir.
$ cp dosya1.txt ../../hello_world
bu komut ile dosya1.txt dosyası iki üst klasörde bulunan "hello_world" klasörü içersine kopyalanır.
mv
Bu komut ile iki işlem yapabilirsiniz. Bir tanesi adından da anlaşılacağı üzere move yani taşıma işlemi, diğeri de herhangi bir dosyanın adını değiştirmeye yaramaktadır.
Taşıma için
$ mv dosya2.txt ../../hello_world
İsim değiştirmek için
$ mv dosya2.txt yeni_dosya.txt
İki şekilde de kullanabilirsiniz.
chmod
su
$ mv dosya2.txt yeni_dosya.txt
sudo
$ mv dosya2.txt yeni_dosya.txt
sudo apt update / sudo apt-get update
$ mv dosya2.txt yeni_dosya.txt
sudo apt upgrade / sudo apt-get upgrade
$ mv dosya2.txt yeni_dosya.txt
df
$ mv dosya2.txt yeni_dosya.txt
history
$ mv dosya2.txt yeni_dosya.txt
wget
$ mv dosya2.txt yeni_dosya.txt
git
$ mv dosya2.txt yeni_dosya.txt
exit
$ mv dosya2.txt yeni_dosya.txt
reboot
$ mv dosya2.txt yeni_dosya.txt
unzip
$ mv dosya2.txt yeni_dosya.txt
gunzip / gzip
$ mv dosya2.txt yeni_dosya.txt
tar
$ mv dosya2.txt yeni_dosya.txt
pd
$ mv dosya2.txt yeni_dosya.txt
top / htop
$ mv dosya2.txt yeni_dosya.txt
Kısayollar
$ mv dosya2.txt yeni_dosya.txt
Program Yükleme
Programları nereden bulabilirim?
Program Çalıştırma
Program nasıl çalıştırılır?
Bash Scripts
echo'yu wc ile değiştirebilir ve çalıştırabilirsiniz.
for file in *.fastq
do
wc ${file}
done
$ for filename in *.zip
> do
> unzip $filename
> done
Dosya koleksiyonlarıyla çalışmak; şartlı scriptler (conditionals)
for i in *
do
if [ -f $i ]; then
echo $i is a file
elif [ -d $i ]; then
echo $i is a directory
fi
done
Loops (Döngüler)
Döngüler, komutları tekrar tekrar yürütmemize izin verdikleri için otomasyon yoluyla verimliliği gerçekten artırabilir. Joker karakterler ve sekme tamamlama gibi, döngüleri kullanmak da yazma miktarını (ve yazım hatalarını) azaltır.
Bir sonraki bölümde, çok sayıda dosyaya bir şeyler yapan döngüler oluşturacağız.
bir klasör içerisinde bulunan tüm dosyaların ekrana yazdırılması.
$ for i in sequence.*
> do
> echo $i
> done
- for kullanılarak herhangi bir döngüyü kendiniz de yaratabilirsiniz. Burada kullanılan i değişkeni standart olmamakla birlikte
- istediğiniz şekilde değiştirilebilmektedir.