Bash ile ilgili temel bilgiler

Tamamlandı

Bash'i anlamak için Bash söz dizimini anlamanız gerekir. Söz dizimini bildikten sonra, çalıştırdığınız her Bash komutuna uygulayabilirsiniz.

Bash komutunun tam söz dizimi şu şekildedir:

command [options] [arguments]

Bash, karşılaştığı ilk dizeyi komut olarak kabul eder. Aşağıdaki komutta geçerli çalışma dizininin içeriğini göstermek için Bash'in ls ("listele") komutu kullanılmıştır:

ls

Bash komutlarında genellikle bağımsız değişkenler de kullanılır. Örneğin, başka bir dizinin içeriğini listelemek için ls komutuna bir yol adı ekleyebilirsiniz:

ls /etc

Çoğu Bash komutu, çalışma biçimini değiştirme seçeneklerine sahiptir. Bayraklar olarak da adlandırılan seçenekler, komutlara daha belirli yönergeler verir. Örneğin, adları bir noktayla başlayan dosyalar ve dizinler kullanıcıdan gizlenir ve ls komutuyla görüntülenmez. Ancak, bir ls komutunda -a ("tümü") bayrağını dahil edebilir ve hedef dizindeki her şeyi görebilirsiniz:

ls -a /etc

Hatta bayrakları birleştirerek komutu kısaltabilirsiniz. Örneğin Linux'un /etc dizinindeki tüm dosyaları ve dizinleri göstermek için ls -a -l /etc şeklinde uzun bir komut girmek yerine şunu girebilirsiniz:

ls -al /etc

Bash'te kısa komutlar kullanılır. Tek bir komutla çok sayıda iş yapabilirsiniz (bu genellikle Bash tutkunlarının en çok övündükleri noktalardan biridir).

Yardım alma

Komutlarla birlikte kullanılabilecek veya kullanılması gereken seçenekler ve bağımsız değişkenler farklı olabilir. Neyse ki Bash belgeleri işletim sisteminde yerleşik olarak bulunur. Yardım bilgileri bir komut kadar yakındır. Bir komutun seçenekleri hakkında bilgi edinmek için man ("manuel") komutunu kullanabilirsiniz. Örneğin mkdir ("dizin oluştur") komutunun tüm seçeneklerini görmek için şunu yapın:

man mkdir

man komutu, Bash'i öğrenme sürecinde en iyi arkadaşınız olacaktır. man , herhangi bir komutun nasıl çalıştığını anlamak için ihtiyacınız olan bilgileri nasıl bulacağınızdur.

Çoğu Bash ve Linux komutu --help seçeneğini destekler. Bu, komutun söz diziminin ve seçeneklerinin açıklamasını gösterir. Denemek için mkdir --help yazın. Çıkış şuna benzer olacaktır:

Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.
    
Mandatory arguments to long options are mandatory for short options too.
  -m, --mode=MODE   set file mode (as in chmod), not a=rwx - umask
  -p, --parents     no error if existing, make parent directories as needed
  -v, --verbose     print a message for each created directory
  -Z                   set SELinux security context of each created directory
                         to the default type
      --context[=CTX]  like -Z, or if CTX is specified then set the SELinux
                         or SMACK security context to CTX
      --help     display this help and exit
      --version  output version information and exit
    
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Report mkdir translation bugs to <http://translationproject.org/team/>
Full documentation at: <http://www.gnu.org/software/coreutils/mkdir>
or available locally via: info '(coreutils) mkdir invocation'

Bu komutla ulaşacağınız yardım bilgileri genellikle man komutuna kıyasla daha kısa olacaktır.

Joker karakter kullanma

Joker karakterler Bash komutlarında bir veya daha fazla karakteri temsil eden sembollerdir. En sık kullanılan joker karakter yıldız işaretidir. Sıfır karakteri veya bir dizi karakteri temsil eder. Geçerli dizininizde yüzlerce görüntü dosyası olduğunu, ancak yalnızca PNG dosyalarını görmek istediğinizi varsayalım; dosya adları .png ile bitenler. Şu komutu kullanarak yalnızca istediğiniz dosyaları listeleyebilirsiniz:

ls *.png

Dekont

Linux, diğer işletim sistemleri gibi bir dosya adı uzantısı kavramına sahip değildir. Bu durum, PNG dosyalarının .png uzantısına sahip olmayacağı anlamına gelmez. Yalnızca Linux'un dosya adlarının .png ile bitmesi gerçeğine özel bir önemi olmadığı anlamına gelir.

Şimdi geçerli dizinde JPEG dosyaların da bulunduğunu düşünelim. Bazıları .jpg ile, bazıları ise .jpeg ile biter. Tüm JPEG dosyalarını listelemenin bir yolu aşağıdadır:

ls *.jpg *.jpeg

Bir diğer örnek de şudur:

ls *.jp*g

* joker karakteri sıfır veya daha fazla karakterle eşleşir ancak ? joker karakteri tek bir karakteri temsil eder. Geçerli dizinde 0001.jpg, 0002.jpg diye gidip 0009.jpg ile biten bir seri varsa aşağıdaki komut bunların hepsini listeler:

ls 000?.jpg

Çıkışı filtrelemek için joker karakter kullanmanın başka bir yöntemi de karakter grubunu temsil eden köşeli ayraçlar kullanmaktır. Aşağıdaki komut, geçerli dizinde adında nokta ve hemen sonrasında küçük J veya P harfi bulunan tüm dosyaları listeler. Bu durumda .jpg, .jpeg ve .png dosyalarını listeler ancak .gif dosyalarını listelemez:

ls *.[jp]*

Linux'da dosya adları ve bunları kullanan komutlar büyük/küçük harfe duyarlıdır. Bu nedenle, geçerli dizinde adları nokta içeren ve ardından büyük veya küçük J veya P harfi gelen tüm dosyaları listelemek için şunu girebilirsiniz:

ls *.[jpJP]*

Köşeli ayraç içindeki ifadeler karakter aralığını temsil edebilir. Örneğin aşağıdaki komut, geçerli dizinde bulunan ve adı küçük harfle başlayan tüm dosyaları listeler:

ls [a-z]*

Bu komut da ondan farklı olarak geçerli dizinde bulunan ve adı büyük harfle başlayan tüm dosyaları listeler:

ls [A-Z]*

Bu komut ise geçerli dizinde bulunan ve adı küçük veya büyük harfle başlayan tüm dosyaları listeler:

ls [a-zA-Z]*

Bu bilgileri dikkate alarak aşağıdaki komutların sonuçlarını tahmin edebilir misiniz?

ls [0-9]*
ls *[0-9]*
ls *[0-9]

Joker karakterlerden birini normal bir karakter olarak kullanmanız gerekiyorsa, bunu değişmez değer yapmanız veya ters eğik çizgi ile "kaçış" haline getirmeniz gerekir. Bu nedenle, herhangi bir nedenle bir dosya adının parçası olarak yıldız işaretine sahipseniz (asla kasıtlı olarak yapmanız gereken bir şey) aşağıdaki gibi bir komut kullanarak bunu arayabilirsiniz:

$ ls *\**