Cisco Cihazı Belli Bir Süre Sonra Yeniden Başlatma


Cisco bir switch veya routerı belirli bir saate reboot etmek için:

Ciscoe#reload at 03:00 30 apr
Reload scheduled for 03:00:00 UTC Sat Apr 30 2011 (in 42 hours and 10 minutes) by console
Reload reason: Reload Command
Proceed with reload? [confirm]

Cisco bir switch veya routerı belirli bir süre sonra reboot etmek için:

Cisco#reload in 1:30
Reload scheduled for 10:20:49 UTC Thu Apr 28 2011 (in 1 hour and 30 minutes) by console
Reload reason: Reload Command
Proceed with reload? [confirm]

Cisco bir switch veya routerın ne zaman reboot olacağını görmek için:

Cisco#show reload
Reload scheduled for 10:20:49 UTC Thu Apr 28 2011 (in 1 hour and 29 minutes) by console
Reload reason: Reload Command

Reload komutunu iptal etmek için:

Cisco#reload cancel
Cisco#

***
*** --- SHUTDOWN ABORTED ---
***

Komutları kullanılır.
    

Python 3

Python indirmek için

www.python.org/downloads

Programı kurduktan sonra çalışıp çalışmadığını test etmek için aşağıdaki komut kullanılabilir

Command promp'da

python --version

Komut çıktısında hangi versiyonun çalıştığı görüntülenir.

python komutu ile yazılım çalıştırılabilir veya windows arama bölümünden IDLE yazarak ekrana çıkan yazılım çalıştırılır.

İlk kodu yazmak isterseniz

print("Hello Wolrd")

Çıktısı
Hello World

Şeklinde görüntülenir.

Python kullanırken bir editör ihtiyacı varsa Jupyter kullanılabilir. Jupyter kurulumu için

pip jupyter install

Komutu kullanılabilir. yazılımı çalıştırmak için

jupyter notebook

komutu yazılarak editor açılabilir. Bu editör genelde eğitim amaçlı kullanılır, bunun yerine notepad++ kullanabilirsiniz. Bu editorün avantajı yazdığınız kodu direk run butonuna basarak çalıştırabilmektir.

Python da data tipleri aşağıdaki gibidir.

•Numbers
•String
•List
•Tuple
•Dictionary
•Set

Numbers

Değişkenlere atanan veya işlemlerde kullanılan sayıları ifade eder, aşağıdaki gibi atama yapılabilir.

a=3
b, c = 4, 7

print (a)
print (b)
print (c)

3
4
7

a 3 değerini b 4 ve c 7 değerini almış olur.

String

Tüm karekterler string olarak tanımlanabilir.

a="istanbul"
print (a)

istanbul

Tanımlama yapılırken çift tırnak kullanılmalıdır. String tanımlanırken " veya ' işaretleri arasında tanımlanır. String içinde ' işareti var ise python bu işareti string sonu kabul eder.

a='İstanbul'un bir bölümü'

görüldüğü gibi bu cümlede string içinde bir 2 işareti kullanılmış. Bu işareti string olarak yazması için ' işaretinden önce \ karekteri kullanılır.

a='İstanbul\'un bir bölümü'

Benzer şekilde \n python'da enter anlamına gelir. String içerisinde yazılması gerekiyorsa string başına r karekteri eklenmelidir.

b=r"Enter \n şeklinde ifade edilir."

Stringler indexlenebilirler, ilk karekter 0. karekterdir.

a='istanbul' için index
0=i
1=s
2=t
3=a
....

şeklindedir.

String içinden bir karekteri yazdırmak için a[2] şeklinde kullanmak gerekir ve değeri t dir.

a[3] - indexde işaret edilen karekteri gösterir.
a[3:] - 3. karekter ve sonrasını alır.
a[3:5] -3. karekterden 5. karektere kadar olan bölümü alır, 5. karekter dahil değildir.
a[:5] - 5. karekterden öncesini alır.
a[-1] - Son karekteri gösterir.


List

Python'da numara veya stringleri bir liste yardımıyla tutabilirsiniz. Listeler köşeli parantezlerle oluşturulur ve her bir liste parçası virgüllerle ayrılır. Aynı liste içinde sayı veya string yer alabilir. Listeler stringler gibi index'e sahiptir ve index 0 dan başlar.

list=["istanbul", "ankara", 123, 999]

bir listeyi silmek için del komutu kullanılır

del list

bir listenin içindeki herhangi bir bölümü silmek için index numarası kullanılır.

del list[2]

Listeden çıkartılacak içerik belli ise remove komutu ile listeden silinebilir.

list.remove("istanbul")

Listeler stringler gibi davranış serviler, bir liste diğeri ile + işareti ile birleştirilebilir. indexleme aynıdır.




Tuple
Dictionary
Set










Break komutu

While veya for döngülerini durdurmak için kullanılır. break komutu işlendiği anda döngüden çıkılır. Döngüler içinde herhangi bir yerde kullanılabilir.


    

Windows Bilgisayara Loopback Interface Nasıl Eklenir.

Windows işletim sistemine sahip bir bilgisayarınız var ve bu bilgisayar veya server'a sanal loopback interface eklemek istiyorsanız aşağıdaki adımları izleyebilirmisiniz.

  1. Start menü ye tıklayın
  2. “cmd" yazın ve aratın.
  3. “cmd” icon'una sağ klik yaparak “Run as Administrator” seçeneğini seçin.
  4. Command'da “hdwwiz.exe” yazın ve enter'a basın

Donanım ekleme sihirbazı açılacaktır.

  1. "Welcome to the Add Hardware Wizard" ekranında Next butonuna tıklayın.
  2. "Install the hardware that I manually select from a list (Advanced)" seçeneğini seçin ve Next butonuna tıklayın.
  3. Bir sonraki ekranda "Network adapters"  seçeneğini seçin ve Next butonuna tıklayın.
  4. Bir sonraki ekranda soldan "Microsoft"  sağ listeden "Microsoft Loopback Adapter" seçin ve Next butonuna tıklayarak bitirin.

Bilgisayarınızın ethernet interfaceleri alanında yeni bir interface oluşacaktır. Her zaman up olacak bu interfacei kullanabilirsiniz.

Linux Ubuntu Komutları



Şeklindedir.

Linux Ubuntu'da içinde bulunduğunuz zamanın tarihini bir değişkene atamak için;

now=$(date +"%Y_%m_%d")

formatı kullanılır. Görmek için

echo $now



Linux'da Expect ile SCP Dosya Transferi

Linux'da expect kullanarak SSH bağlantı üzerinden scp ile dosya transferini aşağıdaki bash script ile yapabilirsiniz

#!/bin/bash

PASSWORD="şifre"

FOLDER="/Dosyaların_bulunduğu_klasör"

for HOST in IP_ADRESİ1 IP_ADRESİ2;
do
    expect -c "
    spawn /usr/bin/scp $FOLDER/File1 $FOLDER/File2 user@$HOST:/Directory
    expect {
    "*password:*" { send $PASSWORD\r;interact }
    }
    exit
    "
done

Script'de bulunan kırmızı alanları değiştirebilirsiniz. Birden fazla server'a dosya transferi yapabilirsiniz. Sadece bir server'a dosya transferi yapacaksanız kodu buna göre değiştirebilirsiniz.



Python Database Bağlantısı (sqlite)

Python ile aşağıdaki kod ile database bağlantısı sağlanabilir.

import sqlite3

# Fetch some student records from the database.
db = sqlite3.connect("students")
c = db.cursor()
query = "select name, id from students order by name;"
c.execute(query)
rows = c.fetchall()

# First, what data structure did we get?
print "Row data:"
print rows

# And let's loop over it too:
print
print "Student names:"
for row in rows:
  print "  ", row[0]

db.close()

Database'e bir satır eklemek için

import sqlite3

db = sqlite3.connect("testdb")
c = db.cursor()
c.execute("insert into balloons values ('blue', 'water') ")
db.commit()
db.close()


Veri tabanında bir datayı değiştirmek için 

update table set column = value where restriction ;

Veri tabanından bir datayı silmek için 

delete command: delete from table where restriction ;

MySQL database'e python ile bağlantı sağlanacak ise MySql connector gerekir. MySQL connector aşağıdaki adresten indirilebilir. Python 3 için.

https://dev.mysql.com/downloads/connector/

Diğer Python  versiyonları için aşağıdaki link'ten Mysql connector indirilebilir.



https://dev.mysql.com/downloads/connector/python/2.0.html



SQL Komutları

Bu yazımızda bazı SQL komutlarından bahsedeceğiz. Bu komutlar tüm SQL yazılımlarıyla çalışır.

Limit count offset skip

Bu şekilde bir komut kullanıldığında listelenecek satır sayısı sınırlanacağı gibi başlanacak satırda belirlenmiş olur.

Ör: 
....limit 10 offset 150
Bu komut 10 max satırın listelenmesini ve listelemeye 151. satırdan başlanacağını söylemektedir.

Order by columns Desc
Bu komut da oluşturulacak listenin neye göre sıralanacağını söyler. Sonda bulunan Desc listenin büyükten küçüğe sıralanmasını sağlar.

Ör:
...order by species, name

Örnekte de görüldüğü gibi birden çok sütün içinde sıralama yapılabilir.

Group by columns

Bu komutta ise farklı değerlerin gruplanması sağlanır.

Ör:
Select name, count(*) as num from animals group by name

Bu satır animals tablosunda bulunan name sütununda farklı isim gruplarının sayısını verir. "group bye name desc" şeklinde kullanırsanız sıralamayı büyükten küçüğe doğru yapacaktır.

Database'e veri eklemek için insert komutu kullanılır.

insert into table (columns1, columns2, columns3) values ('value1', 'value2', 'value3');

Örnek
insert into animals (name, species, birthdate) values ('wibble', 'opossum', '2018-04-01');

İki farklı tabloda arama yapmak için aşağıdaki komut kullanılabilir. animals ve diet isimli iki tablomuz olsun.

select animals.kolon from animals join diet on animals.kolon2 = diet.kolon2 where kolonb = 'deger';

Database içinde sadece 1 adet bulunan bir değer aranıyor ise burada having kodu kullanılabilir.

select species, count(*) as num from animals group by species having num = 1;

SQL kullanıcı sorgulama;

SELECT user FROM Dual WHERE ROWNUM = 1








Cisco Switch IOS Upgrade Nasıl Yapılır

Cisco switchler de işletim sistemini (IOS) değiştirmenin iki yolu vardır. İlk olarak cihaza yüklenecek olan işletim sistemi cisco.com sitesinden indirilir. Cisco switch modeline göre arattığınızda site size en güncel ve önerilen yazılımı yanında * işareti ile gösterir. Aynı sürüme ait iki adet dosya göreceksiniz indirilebilir durumda. Bu dosyaların her ikisi de aynı işletim sistemi sürümünü gösterir. Bunlardan biri *.bin dosyasıdır, diğeri *.tar dosyasıdır. Şimdi anlatacağım yöntemlerden hangisini tercih ederseniz o dosyayı bilgisayarınıza indirmelisiniz.

İlk olarak bilgisayarınız ile switch arasında bir ip bağlantı olmalıdır. Bunun için switch'e bir IP vermelisiniz ve aynı networkden bir IP bilgisayarınıza vererek iki cihazın haberleşmesi sağlanmalıdır. Bilgisayarınız ile switch arasında bağlantı yoksa ilk olarak bağlanabileceğiniz bir VLAN interface oluşturup IP adresi verin, daha sonra bilgisayarınızı seçtiğiniz VLAN'ın aktif olduğu porta bağlayın ve switch'e IP olarak erişebildiğinizden emin olun.

Daha sonra bilgisayarınıza bir TFTP yazılımı indirin. http://tftpd32.jounin.net/tftpd32_download.html bu yazılımı indirebilirsiniz. TFTP kullanmanız şart değil switch'in erişebileceği herhangi bir FTP sunucusu da kullanabilirsiniz.

Son olarak yapmanız gereken show version komutunu girerek eski IOS'i kontrol etmek ve yeni IOS'i koyacağınız yeterli yer olup olmadığına bakmaktır. Yeterli yer yok ise IOS upgrade denemeyin. Cisco.com sitesinden indireceğiniz dosya kadar yeterli yere ihtiyacınız olacak.

.Bin dosyası ile IOS upgrade

Bin dosyasını TFTP/FTP klasörüne indirin ve TFTP/FTP yazılımını çalıştırın. Switch'e aşağıdaki komutu kendinize göre düzenleyerek yazın.

TFTP için:
copy tftp://ip adresi/c2960x-universalk9-tar.152-2.E8.bin flash:

FTP için
copy ftp://user:pass@ip adresi /c2960x-universalk9-tar.152-2.E8.bin flash:

Dosyanın switch'e gidip gitmediğini kontrol edin.
show flash

Cihazın açılacağı işletim sistemini tanımlayın
show boot
#conf t
(config)#boot system flash:c2960x-universalk9-tar.152-2.E8.bin
(config)#exit
#show boot
BOOT path-list      : flash:c2960x-universalk9-tar.152-2.E8.bin

Switch'i yeniden başlatın.

WS-2960A#reload
Proceed with reload? [confirm]

Switch açıldığında kontrol edin.
#show version 

.Tar dosyası ile IOS upgrade

Tar dosyasını TFTP klasörüne indirin ve TFTP yazılımını çalıştırın. Switch'e aşağıdaki komutu kendinize göre düzenleyerek yazın.

TFTP Kullanıyorsanız:
archive download-sw /overwrite /reload tftp://ip adresi/c2960x-universalk9-tar.152-2.E8.tar

FTP kullanıyorsanız:
archive download-sw /overwrite /reload ftp://user:pass@ip adresi /c2960x-universalk9-tar.152-2.E8.tar

download-sw   : Yeni IOS'u download eder.
/overwrite        : Yeni IOS'u mevcut yazılımı silerek diske yazar.
 /reload            : İşlem bittiğinde switch'i yeniden başlatır.

Bu işlem yapıldıktan sonra cihaz eski konfigürasyonu ile açılacaktır. Konfigürasyon silinmez.


Cisco 2960, 2960S, 2960 plus, 2960-X, 3400E, 3650 serisi için uygulanabilir.
c2960x-universalk9-tar.152-2.E8.bin örnek IOS olarak kullanıldı.

Python Dosyaya Yazma ve Dosyadan Okuma

Python'da bir text dosyadan bir text datanın nasıl okunacağına ve dosyaya nasıl yazılacağına bakalım. Python open() komutu ile bir dosyayı okur veya yazar. Kullanımı aşağıdaki gibidir.

file_object  = open(“filename”, “mode”)

Modları aşağıdaki gibidir.

‘r’ – Sadece okumak için kullanılan okuma modu.
‘w’ – Dosya içine bilgi girmek için oluşturulur. Aynı isme sahip eski dosya silinecektir.
‘a’ – Dosyanın sonuna veri eklemek için kullanılan ekleme modu
‘r+’ – Okuma ve yazma işlemini yapmak için kullanılan moddur.

Örnek kullanım;
F = open(“workfile”,”w”)
Print f

Bir dosya oluşturup içeriğini doldurmak için aşağıdaki örnek kullanılabilir.

file = open(“testfile.txt”,”w”)

file.write(“Merhaba”)
file.write(“1.text”)
file.write(“2.text”)
file.write(“3.text”)

file.close()

Dosya okumak için

file = open(“testfile.txt”, “r”)
print file.read()

Şeklinde kullanılır.


Twilio Nasıl Kurulur

Bilgisayarınıza Python 2.7 veya daha üst versiyonu kurduysanız pip de kurulmuştur. Twilio kurmak için komut satırında

$ pip install twilio

Yazın ve kurmasını bekleyin, bilgisayarınızın internete bağlı olması gerekir. Kurulum bittikten sonra kontrol etmek için ise Python içinde

import twilio
print twilio.__version__

Konutlarını kullanın size versiyon numarası veriyor ise çalışıyordur.

Python ile SMS göndermek için aşağıdaki kodu kullanabilirsiniz.

from twilio.rest import Client

# Your Account SID from twilio.com/console
account_sid = "kod"
# Your Auth Token from twilio.com/console
auth_token  = "kod"

client = Client(account_sid, auth_token)

message = client.messages.create(
    to="+9091111111114",
    from_="+17711111111",
    body="Hello from Python!")

print(message.sid)

SSH ile Linux Bilgisayara Komut Gönderme

Bir bilgisayara SSH ile sadece komut yazmak için bağlanmak ve komutu konsoldan yazmaya gerek kelmadan konut gönderebilirsiniz.Bunun için aşağıdaki gibi SSH bağlantı bilgilerinden sonra komutu yazmak yeterlidir.

ssh kullanıcıadı@<IP Adresi> 'gönderilecek olan komut'

ör:

ssh user@172.16.0.1 'shutdown -r now'

Birden çok komt göndermek için komutlar arasına ; işareti konulur.

ssh kullanıcıadı@<IP Adresi> '1.komut; 2.komut; 3.komut'

Gibi birden çok komut göndermekte mümkündür. Komutlar sıra ile işlenir.

ör:

ssh user@172.16.0.1 'ls -l; ps -aux; whoami'

Linux

Network Kontrol Yazılımı MTR

MTR linux üzerinde kullanılan ping, traceroute, jitter gibi network erişim bilgilerini size sağlayan bir yazılımdır. Windows versiyonu da bulunmaktadır. WinMTR

Aşağıdaki komut ile Linux Ubuntu üzerine kurulabilir.

sudo apt-get install mtr

CentOS ve fedora için

sudo yum install mtr

Komutları kullanılır. Kurulum yapıldıktan sonra konsolda;

mtr <Hedef IP adresi veya Hostname>

komutu ile çalıştırılır. Bu komut ile traceroute ve ping komutlarının karşılığı olan bilgiler ortalama maximum ve minimum süreler ile karşımıza gelir. Anlık rapor alınmak isteniyorsa

mtr --report <Hedef IP adresi veya Hostname>

Şeklinde kullanılır. Daha geniş bilgi alabilmek için aşağıdaki komut kullanılabilir. Bu komut ile jitter hesaplanabilir.

mtr -s 1460 -B 0 -oLDRSWNBAWVJMXI <Hedef IP adresi veya Hostname>

Bu komutun çıktısı hedef adrese giderken aşağıdaki bilgileri verir.

Loss% Drop   Rcv   Snt  Wrst  Last  Best   Avg  Wrst StDev Jttr Javg Jmax Jintü

Komut bilgileri:

NAME
       mtr - a network diagnostic tool

SYNOPSIS
       mtr  [-4|-6]  [-F FILENAME] [--report] [--report-wide] [--xml] [--gtk] [--curses] [--raw] [--csv] [--split] [--no-dns] [--show-ips] [-o FIELDS] [-y IPINFO] [--aslookup] [-i INTERVAL] [-c COUNT]
       [-s PACKETSIZE] [-B BITPATTERN] [-Q TOS] [--mpls] [-a ADDRESS] [-f FIRST-TTL] [-m MAX-TTL] [--udp] [--tcp] [-P PORT] [-Z TIMEOUT] [-M MARK] HOSTNAME

OPTIONS
       -h, --help
              Print the summary of command line argument options.

       -v, --version
              Print the installed version of mtr.

       -4     Use IPv4 only.

       -6     Use IPv6 only.  (IPV4 may be used for DNS lookups).

       -F FILENAME, --filename FILENAME
              MISSING

       -r, --report
              This option puts mtr into report mode.  When in this mode, mtr will run for the number of cycles specified by the -c option, and then print statistics and exit.

              This mode is useful for generating statistics about network quality.  Note that each running instance of mtr generates a significant amount of network traffic.  Using mtr to measure  the
              quality of your network may result in decreased network performance.

       -w, --report-wide
              This option puts mtr into wide report mode.  When in this mode, mtr will not cut hostnames in the report.

       -x, --xml
              Use this option to tell mtr to use the xml output format.  This format is better suited for automated processing of the measurement results.

       -t, --curses
              Use this option to force mtr to use the curses based terminal interface (if available).

       -g, --gtk
              Use  this  option  to force mtr to use the GTK+ based X11 window interface (if available).  GTK+ must have been available on the system when mtr was built for this to work.  See the GTK+
              web page at http://www.gtk.org/ for more information about GTK+.

       -l, --raw
              Use this option to tell mtr to use the raw output format.  This format is better suited for archival of the measurement results.  It could be parsed to be presented into any of the other
              display methods.

       -C, --csv
              MISSING

       -p, --split
              Use this option to set mtr to spit out a format that is suitable for a split-user interface.

       -n, --no-dns
              Use this option to force mtr to display numeric IP numbers and not try to resolve the host names.

       -b, --show-ips
              Use  this  option  to  tell mtr to display both the host names and numeric IP numbers.  In split mode this adds an extra field to the output.  In report mode, there is usually too little
              space to add the IPs, and they will be truncated.  Use the wide report (-w) mode to see the IPs in report mode.

       -o FIELDS, --order FIELDS
              Use this option to specify which fields to display and in which order.  You may use one or more space characters to separate fields.
              Available fields:

                                                                                              ┌──┬─────────────────────┐
                                                                                              │L │ Loss ratio          │
                                                                                              ├──┼─────────────────────┤
                                                                                              │D │ Dropped packets     │
                                                                                              ├──┼─────────────────────┤
                                                                                              │R │ Received packets    │
                                                                                              ├──┼─────────────────────┤
                                                                                              │S │ Sent Packets        │
                                                                                              ├──┼─────────────────────┤
                                                                                              │N │ Newest RTT(ms)      │
                                                                                              ├──┼─────────────────────┤
                                                                                              │B │ Min/Best RTT(ms)    │
                                                                                              ├──┼─────────────────────┤
                                                                                              │A │ Average RTT(ms)     │
                                                                                              ├──┼─────────────────────┤
                                                                                              │W │ Max/Worst RTT(ms)   │
                                                                                              ├──┼─────────────────────┤
                                                                                              │V │ Standard Deviation  │
                                                                                              ├──┼─────────────────────┤
                                                                                              │G │ Geometric Mean      │
                                                                                              ├──┼─────────────────────┤
                                                                                              │J │ Current Jitter      │
                                                                                              ├──┼─────────────────────┤
                                                                                              │M │ Jitter Mean/Avg.    │
                                                                                              ├──┼─────────────────────┤
                                                                                              │X │ Worst Jitter        │
                                                                                              ├──┼─────────────────────┤
                                                                                              │I │ Interarrival Jitter │
                                                                                              └──┴─────────────────────┘
              Example: -o "LSD NBAW  X"

       -y n, --ipinfo n
              MISSING

       -z, --aslookup
              MISSING

       -i SECONDS, --interval SECONDS
              Use this option to specify the positive number of seconds between ICMP ECHO requests.  The default value for this parameter is one second.  The root user may choose values  between  zero
              and one.

       -c COUNT, --report-cycles COUNT
              Use this option to set the number of pings sent to determine both the machines on the network and the reliability of those machines.  Each cycle lasts one second.

       -s PACKETSIZE, --psize PACKETSIZE
              This option sets the packet size used for probing.  It is in bytes, inclusive IP and ICMP headers.

              If set to a negative number, every iteration will use a different, random packet size up to that number.

       -B NUM, --bitpattern NUM
              Specifies bit pattern to use in payload.  Should be within range 0 - 255.  If NUM is greater than 255, a random pattern is used.
       -e, --mpls
              Use this option to tell mtr to display information from ICMP extensions for MPLS (RFC 4950) that are encoded in the response packets.

       -a ADDRESS, --address ADDRESS
              Use this option to bind the outgoing socket to ADDRESS, so that all packets will be sent with ADDRESS as source address.  NOTE that this option doesn't apply to DNS requests (which could
              be and could not be what you want).

       -f NUM, --first-ttl NUM
              Specifies with what TTL to start.  Defaults to 1.

       -m NUM, --max-ttl NUM
              Specifies the maximum number of hops (max time-to-live value) traceroute will probe.  Default is 30.

       -u, --udp
              Use UDP datagrams instead of ICMP ECHO.

       -T, --tcp
              Use TCP SYN packets instead of ICMP ECHO.  PACKETSIZE is ignored, since SYN packets can not contain data.

       -P PORT, --port PORT
              The target port number for TCP traces.

       -Z SECONDS, --timeout SECONDS
              The number of seconds to keep the TCP socket open before giving up on the connection.  This will only affect the final hop.  Using large values for this, especially combined with a short
              interval, will use up a lot of file descriptors.

       -M MARK, --mark MARK
              MISSING

Python Konutları 4

.append koduna bakalım. Bu kod bir listeye eklemeler yapabiliriz. + ile .append arasındaki farka bir örnek ile bakalım.

list1 = [1,2,3,4]
list2 = [1,2,3,4]

list1 = list1 + [5, 6]
list2.append([5, 6])

print "showing list1 and list2:"
print list1
print list2

Çıktısı
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, [5, 6]]

Şimdide split koduna bakalım. Bu kod bir cümle içindeki bir karektere göre cümleyi bölümlendirmeye yarıyor. Bir karekter belirtilmez ise boşlukları dikkate alıyor

cumle1 = "Deneme cumlesidir dikkate almayın"
list = cumle1.split()
print list

Çıktısı
['Deneme', 'cumlesidir', 'dikkate', 'almayın']

Şeklindedir.

Girilen bir kelime veya cümle karekterlerini küçük harfe dönüştürmek için .lower() büyük harfe çevirmek için .upper() kullanılır.

karekter = "AaBbCc"
karekter.lover()

print karekter

Çıktısı;
aabbcc

Python kodu içinden bir web sayfası linki açtırmak için aşağıdaki komut kullanılır.

import webbrowser
webbrowser.open ("http://www.serkan.net")

Python'da kodu çalıştırdığımızda bir yerde beklemesini istiyorsak aşağıdaki kodu kullanmammız gerekir.

>>> import time
>>> time.sleep(10)

Bu kodda time.sleep (sn) kodunda belirtilen saniye kadar bekler.

Bilgisayarın saatini komut ile görmek için;

>>> time.ctime()
'Mon Apr 02 14:25:31 2018'



Ubuntu Üzerine Webmin Nasıl Kurulur

Ubuntu üzerinde webmin dosyalar download edilerek veya internet üzerinden kaynaklar belirtilerek kurulabilir.

İlk olarak source dosyasına ilgili kaynak adresi girilir. Dosya açılır.

sudo nano /etc/apt/sources.list

Dosyanın en altına aşağıdaki satır eklenir.

deb http://download.webmin.com/download/repository sarge contrib

Webmin key indirilir ve eklenir.

wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc

Update edilir.

sudo apt-get update

Webmin kurulur

sudo apt-get install webmin

Webmin test edilir.

https://Server_IP_Adresi:10000


Python Kodları index

Python'da index özelliğine bakalım. Bu kodun kullanımı aşağıdaki gibidir.

<List>.index(<değer>)


Bu kod liste içinde aranan değerin konumunu gösterir. ör:

p = [1,2,3,4]
print p.index(3)
Çıktısı
2

İndex kodu sadece ilk bulduğu değerin konumunu gösterir, birkaç eşit değer varsa hepsinin konumunu göstermez.

<deger> in <list>


in kodu bir değerin listede olup olmadığını True veya False cevabı ile söyler. Ör:

p = [1,2,3,]
print 3 in p

Çıktısı
True

<deger> not in <list>


not in kodu in kodunun aksine değer listede yok ise True varsa False çıktısı verir.

p = [1,2,3,]
print 3 not in p

Çıktısı
False

Bu kodun diğer bir kullanımı ise

not <deger> in <list> Şeklindedir.

Bir örnek yapalım. Bu örnekte 2. değeri 1. liste içinde bulup konumunu yazacağız. Listede bulunamıyorsa -1 değeri dönecek.

def find_element(a,b):
    if b in a:
        n=a.index(b)
        return n
    else:
        return -1

print find_element([1,2,3],3)
2

print find_element(['test','deneme'],'alo')
-1



Python For Döngüsü

Python'da For döngüsü bir liste için yazılabilir ve listenin her bir değeri için teker teker işlem yapılabilir. Bunu bir örnek ile gösterelim.

example_list = ['a', 'b', 'c', 'd']
for thing in example_list:
    print thing

Çıktısı
a
b
c
d

Şeklindedir. Yukarıdaki örnekte for döngüsüne sokulan bir listenin değerleri sıra ile yazdırılmaktadır.

Bir mrenek daha yapalım.

def harf_say(p):
    t = 0
    for test in p:
        if test[0] == "U":
            t = t + 1
    return t
         
print harf_say (['deneme','Ulu','Univercity'])

Bu kod liste içerisinde U harfiyle başlayan kelimelerin kaçtane olduğunu gösterir, buna benzer bir kod ile farklı aramalar yapabilirsiniz.



Python Değişken Listesi

Python'da değişkenler liste halinde aşağıdaki gibi yazılabilir.

liste = ["test1", "test2", "test3", test4"]

Bu listeden herhangi bir değer seçilecek is değişken içinden karekter seçer gibi sonunda bu değer belirtilir.

print liste[1]

Çıktısı
test2

görüldüğü gibi listede index 0 dan başlar 1. sıradaki değer yukarıdaki gibi gösterilir. Birde karışık liste örneğine bakalım

liste2 = ["deneme", 34, [1,3,5], "istanbul", "Ankara"]

print liste2[2]

Çıktısı
[1,3,5]

print liste2[2] [2]

Çıktısı
5

Gördüğünüz gibi iç içe listeler yazılabilir ve bu listelerden değerler yukarıdaki gibi çekilebilmektedir.

Listeler içinde bulunan herhangi bir değeri aşağıdaki gibi değiştirebilirsiniz.

liste [I,S,T,A,N,B,U,L]

Bu listedeki ilk harfi değiştirelim.

liste [0] = "İ"
print liste

Çıktısı
[İ,S,T,A,N,B,U,L]

Olacaktır. Bu şekilde liste içerinde bir değişiklik olduğunda listenin eşitlendiği diğer değişkenlerin içerikleri de değişmiş olur. Bunu bir örnek ile gösterelim.

>>> p=[1,2,3]
>>> q=p
>>> p[0]=9
>>> print p
[9, 2, 3]
>>> print q
[9, 2, 3]
>>>

Listeye bir değer daha eklemek için appent kodu kullanılır. Bunu bir örenk ile gösterelim. Aşağıdaki örnekte listeye bir sayı daha ekliyoruz ve liste genişlemiş oluyor.

>>> list=[1,2,3,4,5]
>>> list.append(9)
>>> print list
[1, 2, 3, 4, 5, 9]
>>>

İki listeyi birleştirmek için + işareti kullanılabilir.

>>> list1=[1,2]
>>> list2=[2,3]
>>> list3 = list1 + list2
>>> print list3
[1, 2, 2, 3]

görüldüğü gibi içerikten bağımsız olarak iki liste 4 ile birleştirildi. Yukarıdaki örnekden devam edersek list3 listesinin içerdiği değer sayısını saymak için len() kodunu kullanabiliriz. len() kodu bize listenin, bir bümlenin veya bir dizinin kaç değer veya karekter içerdiğini verir.

>>> len(list3)
4
>>> len("istanbul")
8


Linux'da konsol'a bağlanamayan kullanıcı ile SSH dosya transferi.

Sadece dosya transferi yapacak olan SFTP kullanıcıları konsola bağlanmalı ve belirtilen klasör dışında üst klasör görüntüleme hakkı olmamalıdır. Böyle bir SFTP bağlantısı sağlayabilmek için aşağıdaki yapılandırmadan faydalanabilirsiniz.

İlk olarak kullanıcı oluşturalım

 adduser sftpuser

Bosyaların upload download edilebileceği bir klasör oluşturalım

mkdir -p /var/sftp/uploads

Klasör yetkilerini düzenleyelim

chown root:root /var/sftp
chmod 755 /var/sftp
chown sftpuser:sftpuser /var/sftp/uploads

SSH konfigürasyonunu yapalım. ssdd_config dosyasına aşağıdaki bölümü ekleyelim.


nano /etc/ssh/sshd_config

Match User sftpuser
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Son olarak SSH servisini yeniden başlatarak testimizi yapalım.

/etc/init.d/sshd /reload


Python Randint

Randint komutu verdiğiniz bir aralıkta rasgele bir değer seçmeye yarar.

randint (başlangıç, son)

Burada başlangıç ile son arasında bir sayı seçilir. Aşağıdaki örnekte 1'den 5'e kadar herhangi bir sayı seçilecektir.

randint (1,5)

Bir örnek yapalım

from random import randint

def random_verb():
    n = randint (0,1)
    if n==0:
        return "kayak"
    else:
        return "run"
print random_verb()



Python Debugging

Python'da oluşan bir hatanın tespit edilebilmesi için verdiği hata mesajlarından faydalanabilirsiniz. Hatanın hangi koddan kaynaklandığını mesaj içerisinde görebileceksiniz. Bazen kod içerisindeki bazı bölümlerin kapatılması gerekebilir. Bu durumda kodu silmek yerine işlevsiz hale getirebilirsiniz. # karekteri kendinden sonraki kod satırını işlevsiz hale getirir.

# print "Deneme"

Yukarıdaki satır Python'da işlem görmez. Birden çok satır sözkonusu ise hepsine # işareti koymak yerine ''' kullanılabilir. # Python'da yorum veya hatırlatıcı not yazmak için kullanılır.

'''
print "Deneme1"
print "Deneme2"
print "Deneme3"
'''
Üç adet tek tırnak ile başlayıp kapatılması gereken yer sonuna yine üç adet tek tırnak koyarsanız yukarıdaki gibi olan bölüm Python tarafından işlenmeyecektir.

https://docs.python.org/2/library/pdb.html

Python Karşılaştırma İşlemleri. IF ELSE

Python Karşılaştırma İşlemleri. IF ELSE

Python kodlama da karşılaştırma ifadeleri aşağıdaki gibi kullanılabilir.

>>> print 21>12
True
>>> print 21>32
False
>>> print 3*7>21
False
>>> print 5*4 != 23
True
>>> print 4 == 2*2
True
>>>

Yukarıda görüldüğü gibi eşit değil için != kullanılırken eşittir karşılaştırması için == kullanılır. Tek eşittir python'da atama anlamına gelir. Örneğin a = 4 a değişkeninin değerini 4 yapar. a == 4 ise anın 4'e eşit olup olmadığını sınarken kullanılır.

>>> print "hello" == "hello"
True

>>> hello=5
>>> print hello
5

Şeklinde ikisinin farkını gösterebiliriz.

Python IF Kullanımı


IF ELSE kullanımını bir örenk üzerinde gösterelim.

if 10 > 20:
    print "Ilk sayi buyuk"
else:
    print "Ikınci sayi buyuk"


Görüldüğü gibi ilk sayı ile ikinci sayıyı karşılaştıran bir karşılaştırma yapılmış. İlk sayı büyük olmadığı için çıktı sonucu "Ikınci sayi buyuk" olacaktır.

Bir örnek daha yapalım. İlk harfi "S" olan isimler için "True" farklı olan harfler için "False" çıktısını veren bir kod yazalım

def isim(a)
      if a[0] == S:
         return True
      else:
         return False
print isim("Serkan")

Bu kodun çıktısında "True" yazacaktır. Serkan ismini alıp ilk karekteri olan S'nin S'ye eşitliğine bakarak True çıktısı alınır.

Üç sayının hangisinin büyük olduğunu bulan bir kod yazalım

def biggest(a,b,c):
    if a > b:
        if a > c:
            return a
        else:
            return c
    else:
        if b > c:
            return b
        else:
            return c
print biggest (2,5,9)

Gördüğünüz gibi if karşılaştırmaları iç içe yazılarak birçok karşılaştırma yapılabilir. Bu kodda amaç en büyük sayıyı bulmaktır ve çıktı 9 olacaktır. Python'da bunu hızlı bir şekilde yapacak komut max komutudur.

max (9,34,6,77,2,555)

Bu komut parantez içinde bulunan sayıların en büyüğünü bulur ve yazar. Aynı şekilde en küçük sayıyı bulmak içinde min komutu kullanılır.

min (3,5,66,7)


Python While Kullanımı


Şimdide while döngülerine bakalım

a = 0
while a != 10:
    a = a + 1
    print a

while sürekli yapılmak istenen işlemlerde kullanılır ve if döngüsüne benzer. Yukarıdaki örnekte a 0 değeri while içinde test edilir. Sonuç doğru ise bir artırılır ve yazdırılır. Sonuç yanlış oluncaya kadar döngü devam eder. Sonuç yanlış olmazsa döngü sonsuza kadar devam eder. While komutundan çıkılabilmesi için karşılaştırmanın yanlış olması gerekir.

def remove_spaces(text):
    text_without_spaces = '' #empty string for now
    while text != '':
        next_character = text[0]
        if next_character != ' ':    #that's a single space
            text_without_spaces = text_without_spaces + next_character
        text = text[1:]
    return text_without_spaces
print remove_spaces("hello my name is andy how are you?")

Yukarıdaki kod cümle içindeki boşlukları kaldıran bir koddur.

Break kodu döngüden çıkmak için kullanılır. Bu koddan sonra döngü devam etmez döngüden çıkılır.

while(True): #True demek sonsuz döngüdür.
    print(i)
    i = i+1
    if(i==8):
        break

Burada i=7 olduğunda döngüden çıkılır.



Python komutları 3

Python kodu içerisinde bir if else karşılaştırması aşağıdaki örnekte görüldüğü gibi yapılabilir.

def fonksiyon(deger):
if type(deger)== type(1):
return 1
else:
return "Ayni tip degil"
print fonksiyon(20)
print fonksiyon(20.1)

Çıktısı
1
Ayni tip degil

Görüldüğü gibi fonksiyon içindeki 20 satısının 1 ile aynı tip olması durumunda 1, farklı tip olması durumunda mesaj ile dönen bir karşılaştırma yapmış olduk.


Windows Komut Satırında Dosya Senkronizasyonu Yapmak

Bilgisayarınızda bulunan dosyaları başka bir bilgisayar, dosya paylaşımı veya disk üzerine yedeklemek için windows komutlarından xcopy kullanılabilir. Bu komut size herhangi bir program kurmadan dosya yedeklemesi ve klasör senkronizasyonu sağlar.

Xcopy için seçenekler

/D - elirtilen tarihte veya sonrasında değişen dosyaları kopyalar. Tarih verilmezse, yalnızca kaynak saati hedef zamanından daha yeni olan dosyaları kopyalar.
/I - Hedef yoksa ve birden fazla dosya kopyalamak hedefin bir dizin olması gerektiğini varsayar.
/E - Boş olanlar da dahil olmak üzere dizinleri ve alt dizinleri kopyalar.
/Y - Üzerine yazmak istediğiniz varolan hedef dosyayı üzerine yazdırır.
/H - Gizli ve sistem dosyalarını kopyalar.
/R - Salt okunabilir dosyaların üzerine yazmayı sağlar.

Dosyaları bir dizinden diğerine senkronize etmek için xcopy'yi şöyle kullanabilirsiniz:

xcopy c:\kaynakdirectory c:\hedefdirectory /D /I /E /F /Y /H /R

Uzak bir sunucu ile senkronizasyon yapmak için hedef dizin olarak yalnızca bir sunucu adresi ve dizin adı kullanabilirsiniz:

xcopy c:\kaynakdirectory \\server\hedefdirectory /D /I /E /F /Y /H /R

Bir sunucu dizini için geçici bir yerel sürücü oluşturmak istiyorsanız pushd komutunu kullanabilirsiniz.

pushd \\server\hedefdirectory

Bir batch dosyası hazırlamak isterseniz notepad içinde

@echo OFF
echo : XCOPY Batch Dosya Yedekleme
xcopy {KAYNAK_PATH} {HEDEF_PATH} /D /I /E /F /Y /H /R
echo : Islem Tamam
pouse

Yazarak Yedekleme.bat şeklinde bir bat dosya uzantısı ile kaydedin ve üzerine tıklayarak çalıştırın.

Linux Ubuntu'da LFTP Kullanımı

LFTP genelde yedek alma veya klasör senkronizasyonu için kullanılan bir dosya transfer metodudur. Özellikle klasör içeriği senkronizasyonunda çok başarılı bir uygulamadır. kullanılan Syntax aşağıdaki gibidir.

lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site]
lftp -f script_file
lftp -c commands
lftp --version
lftp --help

İlk olarak Linux bilgisayar üzerine LFTP yükleyelim, burada bizim tercihimiz Ubuntu bilgisayar.

LFTP yazilimi asagidaki komut ile yüklenir.

apt-get install lftp

Dosya senkronizasyonu yapılmak isteniyor ise bir bash script hazırlanıp bununla istenildiği zaman senkronizasyon sağlanabilir.

Sh dosyasi asagidaki gibi hazirlanir.

vi ftpsync.sh
-------------------------------
#!/bin/bash
HOST='192.x.x.x'
USER='kullanıcı adı'
PASS='Şifre'
TARGETFOLDER='/'
SOURCEFOLDER='/srv/'

lftp -f "
open $HOST
user $USER $PASS
lcd $SOURCEFOLDER
mirror --reverse --delete --verbose $SOURCEFOLDER $TARGETFOLDER
bye
"
------------------------------

ftpsync.sh dosyasina çalistirma hakki verilmelidir.

chmod 777 ftpsync.sh


Bu script bilgisayarinizda SOURCEFOLDER'daki dosyalari ftp'de bulunan  TARGETFOLDER ile senkronize eder. Bilgisayarinizda bir dosya silindiginde komut çalistirildiginda FTP'den de silinecektir.--delete komutu kullanilmazsa tek yönlü senkronizasyon gerçeklesir. --reverse komutu silinip $TARGETFOLDER ve $SOURCEFOLDER yer degistirilirse senkronizasyon ters yönde gerçeklesecektir.

Linux'dan komut ile mail göndermek

Linux üzerinden komut satırında mail atabilirsiniz. Bunun için Linux bilgisayarınız üzerinde bir smtp sunucusu olmalı ve ayarları yapılmalıdır. SMTP sunucusu olarak Postfix Mail Server kullanabilirsiniz. Kullandığınız bilgisayarın dışında bir SMTP sunucusu üzerinden mail atmak istiyorsanız Postfix Mail Server'ınıza diğer smtp sunucu adresini girmelisiniz. Başka bir SMTP sunucusu kullanacaksanız;

/evc/postfix/mail.cf dosyası sonuna aşağıdaki satırları ekleyin.

myhostname = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command =
mailbox_size_limit = 0
recipient_delimiter = +
inet_protocols = all
home_mailbox = Maildir/
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
relayhost = 10.x.x.x  #SMTP sunucu IP adresi
myorigin = email.domain.com #Domain

Daha sonra Postfix servisini yeniden başlatın.

/etc/init.d/postfix reload

Komut satırında aşağıdaki komutu kendinize göre düzenleyerek mail atın.

mail -a "From: Gonderen Kisi <GonderenMail@Adresi>" -s "Konu" MailinGonderilecegi@Adres < GonderilecekBilgiIcerigi.txt

Bu komutu yazıp uyguladığınızda gönderilen mail yukarıda belirtilen mail adresinden ilgili mail adresine gönderilmiş olur. Bu komut ile mail gönderdiğinizde büyük bir ihtimalle mail spam (Gereksiz Mail) klasörüne düşecektir. Bunu önlemek için SMTP sunucu ve DNS yapılandırması düzeltilmelidir.





Python komutları 2

Bu bölümde yazacağımız Python kodlarını konsolda değil dosya haline getirerek çalıştıracağız. Kodları bir text editöründe yazarak komut satırında bu dosya çağrılmalı. Örneğin test.py isimli bir dosya hazırlayın ve içine aşağıdaki komutu girin

print "deneme"

Daha sonra dosyayı kaydedin ve dosyayı pythom komutu ile komut satırından çağırın.

python test.py

Çıktısı

deneme

Artık başlayabiliriz, Python da prosedür kullanumuna bakacağız. Python da prosedür şu şekilde yazılır.

prosedür <"değer1", "değer2", "değer3",.....>

Prosedür formatını bir örnek ile yazalım

def string():
   return s[2:]
print string("deneme")

Burada deneme kelimesi def içinde değerlendirilir ve 2. karekter ve sonrası print komutu ile yazdırılır. Çıktısı;

neme

Şeklindedir.

Bir örnek daha yapalım. Bu sefer print çıktısını def içinde yazalım

def fonksiyon(parametre1, parametre2):
print parametre1
print parametre2
fonksiyon("Deneme Metni",5)

Çıktısı;
Deneme Metni
5

Şeklinde olacaktır. fonksiyon değişkeni içinde bulunan parametre1 ve 2 def içinde yazdırılmıştır.

Bir değişken akış içerisinde farklı değerler alabilir. Python'da bir değişkenin değerinin değişip değişmediğini ID numarası ile kontrol edebilirsiniz. Bir örnek yapalım;

>>> a=4
>>> id(a)
50820716
>>> a=9
>>> id(a)
50820656

Yukarıda da görüldüğü gibi a değişkeninin farklı iki değeri için ID'si değişmektedir. Bir değişkenin değerinin akış içinde değişip değişmediğini bu şekilde görüntüleyebilirsiniz.

Örneklere devam edelim. Aşağıdaki örnekte x değişkenine fonksiyon(a) değeri atanmış, bu değer def içinde aşağıdaki gibi +1 eklenerek hesaplanıyor ve hesaplama sonucu x'e eşit olduğu gösteriliyor.

def fonksiyon(degisken):
degisken +=1
print "Sayi def degeri= " + str(degisken)
return degisken
a=9
x=fonksiyon(a)
print "Sayinin global degeri=" + str(x)

Çıktısı
Sayi def degeri= 10
Sayinin global degeri=10

Not: += ifadesi bir kısaltmadır bu kısaltma ile x=x+5 fonksiyonunun x+=5 şeklinde yazabilirsiniz.

Çıktıyı incelediğimizde her iki değerin doğal olarak eşit olduğunu görüyoruz.def içinde bulunan return komutu def dışına döneceği değeri gösterir ve son satırda yer alır. def içinde bu satırdan sonra yazılacak olan satırlar dikkate alınmaz.


Python komutları 1

Python kodlamada çıktıları görüntülemek için print komutu kullanılır. Yazılım açıldığında aşağıdaki gibi bir ekran açılacaktır, görüldüğü gibi python 2.7 kullanacağız. Komut satırında print komutu arkasında yazılacak olan rakam
veya yazı çıktırı aşağıdaki örnekteki gibi olur.

Python 2.7.14 (v2.7, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> print 5
5
>>> print 'deneme'
deneme
>>>

Python rakamlar üzerinde işlem yapabilirken karekterler için ' veya " kullanılması gerekir.

Python Code
Python'da dört işlemin nasıl yapıldığına bakalım.

>>> print 2 + 2
4
>>> print 3 * 3
9
>>> print 9 / 3
3
>>> print 6 - 2
4

Aynı satırda birkaç kez dört işlem yapılabilir ve parantez kullanılabilir.

>>> print (4 + (2 * 2)) / 8
1

Python da değişken tanımlamak için bir örnek yapalım.

name = 1 yazdığımızda name değişkenine 1 değerini vermiş oluruz. Python çıktısı;

>>> name = 1
>>> print name
1

Bir kaç değişken tanımlayarak dört işlem yapaılım.

>>> en=23
>>> boy=10
>>> yukseklik=3
>>> print en * boy * yukseklik
690

Değişkenler içinde dört işlem yapılarak sonuş yazdırılabilir.

>>> sonuc=en * boy * yukseklik
>>> print sonuc
690

Kelime veya cünlelerde değişkenlere atanabilir.

>>> degisken="deneme mesaji"
>>> print degisken
deneme mesaji

Python'da bir kelime veya cümle içinden bir karekter yazdırılmak isteniyor ise

>>> print "deneme" [2]
n
Şeklinde kullanılır. Yukarıdaki örnekte n 3. karekter gibi görünebilir fakat Python da ilk karekter 0. karekter olarak kabul edilir ve bu durumda n 2. karekterdir.

Değişken değerinin sadece bir bölümü yazdırılmak isteniyorsa satır sonuna [seçilen ilk karekter sırası:son karekter sırası] ibaresi eklenir.

>>> print "deneme" [1:3]
en

Sondan başlanarak başa doğru seçmek isteniyorsa -1 den başlanarak hangi karektere kadar yazılacaksa eklenir.

>>> print 'deneme' [-3:5]
em

Python da bir karekterden sonrası yazdırılacak ise

>>> print "deneme" [1:]
eneme

Python da bir karekterden öncesi yazdırılacak ise

>>> print "deneme" [:4]
dene

şeklinde kullanılır. Komut eki [:] şeklinde kullanılırsa tamamı yazılır, bu ek kullanılmadığında da ilgili kelime veya cümlenin tamamı yazılır.

>>> print "deneme" [:]
deneme

Bu özellik ard arda yazılarak istenen bölümler alınarak yazdırılabilir. Kullanımı;

>>> print "deneme" [:3] + "deneme" [4:]
denme

Bir satırda kelime ve sayı yazdırılmak isteniyorsa str() kullanılır. Bu şekilde parantez içinde işlem de yapılabilir.

>>> print "Sonuc= " + str(5+5)
Sonuc= 10

Python'da bir string içinde arama yapmak için find komutu kullanılır. Kullanımı

<string>.find("aranan kelime veya karekter") Bir örnek ile görelim.

>>> print "Bu cumle icinde arama yapilacaktir".find("arama")
16

Görüldüğü gibi arama kelimesinin 16. karekterden başladığını söylüyor. Arama sonucunda aranan kelime bulunamaz ise -1 çıktısı görüntülenecektir.

>>> print "Bu cumle icinde arama yapilacaktir".find("sonuc")
-1

Bu örnekte cümle içinde sonuc kelimesi aranıyor fakat bulunamadığı için -1 çıktısını alıyoruz. Bu aranan kelime veya karekterin bulunamadığını gösteriyor.

Belirli bir karekterden sonra arama yapmak istiyorsanız aşağıdaki kullanımı inceleyebilirsiniz. Burada 21. karekterden sonraki a harfi aranıyor ve 23. karekterde bulunuyor.

>>> print "Bu cumle icinde arama yapilacaktir".find("a",21)
23

Cümle içinde herhangi bir karekter veya kelime değiştirilecek ise replace komutu kullanılır. Kullanımı;

>>> print "Bu cumle icinde arama yapilacaktir".replace("arama","inceleme")
Bu cumle icinde inceleme yapilacaktir

Görüldüğü gibi arama kelimesi yerine inceleme kelimesi yazılmıştır.

Python türkçe dil desteği için Python Idle Python27\Lib\idlelib\ üzerinde Options > General menüsünde UTF-8 seçilmelidir.


Serkan YILDIZ

Python kodlamaya başlarken

Python kodlamaya başlarken öncelikle bir text editör ve python yazılımı gerekecektir. Editör olarak Atom veya Sublime kullanılabilir. Bu yazılımlar kod yazarken kolaylık sağlayacaktır. Notepad'de kullanabilirsiniz.

Editör yazılımına karar verdikten sonra Python yazılımını aşağıdaki linkten indirip bilgisayarınıza kurmalısınız.

https://www.python.org/downloads/

Bu link'te 3.6 ve 2.7 versiyonlarını göreceksiniz. aralarında çok küçük farklılıklar var ama en son versiyonu öğrenmenizi tavsiye ederim.

Kurulum tamamlandıktan sonra seçtiğiniz editörü açın ve aşağıdaki kodu yapıştırın

Python 3 kurduysanız
print ("deneme")

Python 2 kurduysanız
print "deneme"

Daha sonra test.py olarak dosyayı kaydedin.

Daha sonra windows komut satırında

python dosya yeri\test.py

Yazın, çıktı olarak

deneme

Yazısını görüyorsanız Python kodlamaya başlayabilirsiniz.

Google