Reklam
Komut Satırını Kullanmasını Gerçekten Biliyor Musun?

Komut Satırını Kullanmasını Gerçekten Biliyor Musun?

Komut satırını kullanmayı gerçekten biliyor musunuz bilmiyorum ama bunu artık test edebileceksiniz. Commandline Challenge uygulaması sayesinde bilgi düzeyinizin ne seviye de olduğunu rahatlıkla keşfedebileceksiniz. Lafı fazla uzatmadan uygulamanın adresini verelim: cmdchallenge.com

Bu adrese girdiğiniz sizi bir komut satırı ekranı karşılayacak. Bu ekranda görevler yazacak ve sizden bu görevi yapmanız istenecek. Sayfanın altında yapacağınız görevlere dair bir liste mevcut. Liste şu şekilde:

Şimdi her bir görevi tek tek paylaşıyorum ve kullanmanız gereken komutu da anlatıyorum.

hello_world/ – “hello world” Yazdır

# Print "hello world".
# Hint: There are many ways to print text on
# the command line, one way is with the 'echo'
# command.
# 
# Try it below and good luck!
#

Sizden ekrana “hello world” yazdırmanızı istiyor. Kullanmanız gereken komut echo komutudur. Kullanımı aşağıdaki gibidir:

echo "hello world"

current_working_directory/ – İçinde bulunduğun dizini yazdır

# Print the current working directory.

Yeni görevimiz bu. İçinde bulunduğumuz klasörün adını istiyor. Bunu bize $PWD değişkeni verecektir. $PWD değişkeni POSIX uyumlu bütün kabuklarda çalışır. Daha detaylı bilgi için şu adresi ziyaret edebilirsiniz: pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html

Cevabımız şu şekilde olacaktır:

echo $PWD

list_files/ – Her satırda tek dosya olacak şekilde dosyaları listele

# List names of all the files in the current
# directory, one file per line.

İçinde bulunduğunuz dizindeki dosyaları alt alta listelemeniz isteniyor. Burada kullanacağımız komut ls  komutudur. Fakat tek başına ls  komutu işimize yaramayacaktır. Çünkü her satıra bir dosya çıktısı vermez. Her satırda bir dosya adı kullanmak istiyorsanız ls -1  kullanmalısınız. Detaylı bilgi için: docs.oracle.com/cd/E53394_01/html/E54763/ls-1b.html

Cevabını şu olmalı:

ls -1

print_file_contents/ – “access.log” dosyasının içeriğini yazdırın

# There is a file named "access.log" in the
# current directory. Print the contents.

İçinde bulunduğunuz dizinde bulunan acccess.log dosyasının içeriğini ekrana yazdırmak için tail  komutunu kullanıyoruz:

tail access.log

last_lines/ – “access.log” dosyasının son 5 satırını yazdırın

# Print the last 5 lines of "access.log".

Bu dosyanın son 5 satırını yazdırmak için yine tail komutunu kullanıyoruz fakat bu sefer -5 diye belirterek:

tail -5 access.log

find_string_in_a_file/ – İçinde “GET” yazan satırları yazdırın

# There is a file named "access.log" in the
# current working directory. Print all lines
# in this file that contains the string "GET".

Bizden istediği yine “access.log” dosyamızın içeriğini yazdırmamız fakat bu sefer sadece içinde “GET” yazan satırları yazdıracağız. GET yazısını yakalamak için  grep komutunu kullanacağız:

grep GET access.log

find_tabs_in_a_file/ – Tab içeren kaç tane satır var

# How many lines contain tab characters in
# the file named "file-with-tabs.txt" in the
# current directory.

Bu görevi yerine getirmek için iki komut kullanıyoruz. İlkinde tab içeren satırları bulup ikincisinde bu satır sayısını sayıyoruz. Yine grep  kullanıyoruz ve satırları saymak için wc  kullanıyoruz.

grep "$(printf '\t')" file-with-tabs.txt | wc -l

search_for_files_containing_string/ – İçinde “500” yazan bütün dosyaları listele

# Print all files in the current directory,
# one per line (not the path, just the filename)
# that contain the string "500".

İçinde bulunduğunuz klasörde “500” terimini içeren dosyaları listelemeniz isteniyor. Bunun çözümü:

grep -lR 500 *

Aslında bu listenin daha devamı var fakat oldukça uzun bir yazı olacağa benziyor. Bu nedenle bir anda hepsini birden işleme almayacağım. Fakat süreç içerisinde geri kalan görevleri de paylaşacağım.

Sizlerde yorumlar başarılı bir şekilde çözdüğünüz görevleri paylaşabilirsiniz.


Yorum Yapın

Eposta adresiniz görünmeyecektir.

6 − 1 =