Linux Dersleri 60. Shell scriptleri

Linuxda shell scriptleri linux komutlarından oluşan ve bu komutların ardışık olarak çalıştırılması sonucu bazı görevleri yerine getiren komutları oluşturan dosyalardır. Shell scriptlerinin ilk satırı her zaman #! ile başlayıp çalıştırılacak scripting hangi shellde çalışacağını göstermeye yarar;

Ör : #! /bin/bash

Shell scriptlerinde bir diğer sıklıkla kullanılan özellik yorumlardır. Yorumlar yazılan scriptin ne işe yaradığını, her hangi bir anda ne yapmaya çalıştığını ifade eden kullanıcı tarafından girilen ve çalışmaya herhangi bir etkisi olmayan satırlardır. Başlarına # konularak ifade edilirler.

Shell scriptlerinde echo, cp, grep vb. yerleşik linux komutları kullanılır.

Shell scriptlerinde komutlar arasında bağ kurmak için if, while, for vb döngü ifadeleri kullanılır.

  • Bütün shell scriptleri çalıştırılabilir olması için x yani executable (çaloştırılabilir) yetkisine sahip olması gerekir.
  • Shell scriptleri tam yol üzerinden çağırılarak çalıştırılmalıdır. /home/userdir/script.bash gibi, aynı klasör içindeyken ./script.bash yazarak da çalıştırılabilir.

İşletim sistemleri, Linux kategorisine gönderildi | , ile etiketlendi | Yorum yapın

Linux Dersleri 59. Shell genel bilgiler

Shell bir işletim sisteminde kernelle kullaınıcı arasındaki arabirimdir. Shell scriptleri bu kernell kullanıcı arasında arabirim olarak çalışacak içinde çeşitli shell komutları olan çalıştırılabilir dosyalardır.

echo $0 komutuyla içinde bulunduğunuz shell’i öğrenebilirsiniz.

cat /etc/shells komutuyla kullanılabilir shelleri görebilirsiniz.

cat /etc/passwd dosyasında kullanıcı adınızın yanında varsayılan shellinizi görebilirsiniz.

Popüler linux shelleri şunlardır:

  • Gnome (gui)
  • KDE (gui)
  • sh (Bourne shell diye adlandırılır, en eski shelldir.)
  • bash (Bourne again shell diye adlandırılır. orjinal shell’in geliştirilmiş versiyonudur)
  • csh, tcsh (c syntax’ını kullanan shelllerdir)
  • ksh (korn shell, genelde solaris ortamında kullanılır)

Çoğu shell scriptinde aşağıdaki satırlar varsayılan olarak yazılır veya ihtiyaç duyulur;

  • Shell (#!/bin/bash)

İçinde bulunduğumuz scriptin hangi shellde çalıştığını gösterir. Scriptin ilk satırında bulunması zorunludur. Yukardaki örnekte bash shelli örnek olarak verilmiştir.

  • Comments (#) – Yorum satırları

Yorum satırları script tarafından çalıştırılmayacak kullanıcıya bilgi veren satırlardır.

  • Commands (grep, echo, cp vb…) – Komutlar
  • Statements (if, while, for vb…) – Koşul, döngü ifadeleri

Not : Shell scriptleri executable (çalıştırılabilir) izinlere (x) sahip olması gerekir (Ör: -rwx r-x r-x)

İşletim sistemleri, Linux kategorisine gönderildi | , ile etiketlendi | Yorum yapın

Linux Dersleri 58. Özel izinler (setuid, setgid, sticky bit)

Linux işletim sistemlerinde chmod ile belirlediğimiz dosya ve klasör paylaşımlarına ek olarak 3 tane daha paylaşım ayarı vardır. Bunlar sorasıyla setuid, setgid, ve sticky bit‘tir. Bunların kendi komutları yoktur ve gene chmod komutuyla bu ayarlar yapılır.

Not: Bu izin ayarları sadece executable yani çalıştırılabilir komut/dosyalarda ayarlanabilir ve dosya/komutlar C/C++ tabanlı olmalıdır. Bash scriptlerde ayarlanamaz.

  • setuid :

setuid izni komutu, komuta sahip olan kullanıcı tarafından çalıştırmamızı sağlar örneğin passwd komutu root sahiplidir ve bu komutu kullandığınızda her seferinde komut /etc/shadow dosyasını güncellemesi gerektiğinden root tarafından çalıştırılır.

Kullanıcı seviyesinde özel izin vermek için aşağıdaki komut kullanılır;

chmod u+s dosyaadi

Kullanıcı seviyesinde özel izin vermek için aşağıdaki komut kullanılır;

chmod u-s dosyaadi

  • setgid :

setuid’ye benzer sahip olan kullanıcı yerine group tarafından çalıştırılır, locate ve wall komutları buna örnek komutlardır.

Grup seviyesinde özel izin vermek için aşağıdaki komut kullanılır;

chmod g+s dosyaadi

Grup seviyesinde özel izini kaldırmak için aşağıdaki komut kullanılır;

chmod g-s dosyaadi

Not: Linux işletim sisteminizdeki özel ayarlanmış tüm executable’ları bulmak için aşağıdaki komut çalıştırılabilir;

find / -perm /6000 -type f

  • sticky bit :

sticky bit ayalandığı dosyanın sadece sahibi tarafından silinmesine izin verir. sticky bit ayarlamak için +t parametresini chmodla kullanırız.

Ör:

chmod +t /klasöradı/

İşletim sistemleri, Linux, Uncategorized kategorisine gönderildi | , , , , ile etiketlendi | Yorum yapın

Python Dersleri 7. Operatörler

Python 7 tip operatör çeşidi vardır. Bunlar sırasıyla şunlardır;

  • Aritmetik Operatörler
  • Karşılaştırma Operatörleri
  • Mantıksal Operatörler
  • Bitsel Operatörler
  • Atama Operatörleri
  • Kimlik Operatörleri
  • Üyelik Operatörleri

Aritmetik Operatörleri

Aritmetik operatörler toplama, çıkarma, bölme, çarpma gibi matematiksel işlemleri yapmamıza yarayan diğer çoğu programlama dilinde de benzer şekillerde bulunan operatörlerdir.

OperatörİşleviÖrnek
+İki işlenen veya tekli toplamax + y+ 2
Sağ işleneni soldan çıkarma veya tekli çıkarmax – y- 2
*İki işleneni çarpmax*y
/Sol işleneni sağa bölün (her zaman kayan nokta ile
sonuçlanır)
x/y
%Mod alma – sol işlenenin sağ tarafından bölümünden
kalan
x%y
(x/y bölümünden kalan)
//Kat bölümü – soldaki sayının sağdaki sayıya
bölümünden elde edilen tam sayı sonucu
x // y
**Üs – soldaki sayının sağdaki üs değerini hesaplamax**y
(x üssü y)
Aritmetik Operatörler.

Karşılaştırma Operatörleri

Karşılaştırma operatörleri değerleri birbiriyle karşılaştırmak için kullanılır, duruma göre True (doğru) ya da False (Yanlış) değerini döndürür. Aşağıda python’da kullanılan karşılaştırma operatörleri listelenmiştir.

OperatörAnlamıÖrnek
>Büyüktür – Sol işlenen sağdan büyükse doğrux>y
<Küçüktür – Sol işlenen sağdan küçükse doğrux<y
==Eşittir – Her iki işlenen de eşitse doğrux == y
!=Eşit değil – İşlenenler eşit değilse doğrux != y
>=Büyüktür veya eşittir – Sol işlenen sağa eşit veya büyükse doğrux >= y
<=Küçük veya eşittir – Sol işlenen sağa eşit veya küçükse doğrux <= y
Karşılaştırma Operatörleri.

Mantıksal Operatörler

Python’da mantıksal operatörler olarak and, or ve not kullanılmaktadır. Aşağıda python’da kullanılan mantıksal operatörler listelenmiştir.

OperatörAnlamıÖrnek
andHer iki işlenen de doğruysa truex and y
orİşlenenlerden herhangi biri doğruysa truex or y
notİşlenen yanlış ise true (işlenen değerin tersini verir)not x
Mantıksal Operatörler.

Bitwise (Bitsel) Operatörler

Bitsel operatörler bitler üzerinde yani ikilik veriler üzerinde çalışırlar.

Ör :

a = 60 (ikilik tabanda 0011 1100) ve b = 13 (ikilik tabanda 0000 1101) olsun.

OperatörAnlamıÖrnek
& (AND)Her iki işlenende de 1 değeri varsa, sonuca 1
değerini, değilse 0 değeri atanır
(a & b)
(Değeri 0000 1100)
| (OR)İki işlenenden birinde 1 değeri varsa sonuca 1
değerini kopyalar
(a | b) = 61
(Değeri 0011 1101)
^ (XOR)Her iki işlenenin değeri aynı ise ilgili bit değerine
0, farklı ise 1 değerini kopyalar
(a ^ b) = 49
(Değeri 0011 0001)
~ (Tersini Alma)Tek işlenenlidir ve bitleri ‘ters çevirme’ etkisine
sahiptir
(~a) = -61
(Değeri 1100 0011, İşaret
bitinin aldığı değer nedeniyle
işaretli)
<< (Sola
Kaydırma)
Sol işlenenlerin değeri, sağ işlenen tarafından
belirtilen bit sayısı kadar sola taşınır.
a << 2 = 240 (Değeri 1111
0000)
(Sağa
Kaydırma)
Sol işlenenlerin değeri, sağ işlenen tarafından
belirtilen bit sayısı kadar sağa taşınır.
a >> 2 = 15 (Değeri 0000
1111)
Bitwise Operatörler.

Atama Operatörleri

Atama Operatörleri değişkenlere değer atamada kullanılır. Diğer çoğu programlama dilinde olduğu gibi python’da da b += 5 ifadesi gibi b’ye 5 ekleyen ifadeler desteklenir.

Ör :

OperatörÖrnekEşdeğer Atama
=x=5x=5
+=x+=5x=x+5
-=x-=5x=x-5
*=x*=5x=x*5
/=x/=5x=x/5
%=x%=5x=x%5
//=x//=5x=x//5
**=x**=5x=x**5
&=x&=5x=x&5
|=x|=5x=x|5
^=x^=5x=x^5
>>=x>>=5x=x>>5
<<=x<<=5x=x<<5
Atama Operatörleri.

Kimlik Operatörleri

Python’da iki değerin sistem belleğinde aynı yerde olup olmadığını kontrol etmek için 2 tane kimlik operatörü vardır. Bunlar “is” ve “is not” dır.

OperatörAnlamıÖrnek
isİşlenenler aynıysa true
(aynı nesneye atıfta bulunuyorsa)
x is True
is notİşlenenler aynı değilse true
(aynı nesneye atıfta bulunmuyorsa)
x is not True
Kimlik Operatörleri.

Not : Python aynı tip ve aynı değerdeki verileri genelde belleğin aynı yerinde saklar ama örneğin aynı veriye sahip iki liste belleğin farklı yerlerinde saklanır.

Kimlik Operatörleri

Üyelik operatörleri bir değişen veya değerin string, list, tople, set veya dictionary gibi herhangi bir dizide olup olmadığını kontrol eder. Fakat sözlük yani dictionaryde sadece anahtar kontrolü yapılabilir.

OperatörAnlamıÖrnek
inDizide değer/değişken bulunursa True5 in x
not inDeğer/değişken dizide bulunmazsa True5 not in x
Üyelik Operatörleri.
Programlama, Python kategorisine gönderildi | , , , , , , , , ile etiketlendi | Yorum yapın

Python Dersleri 6. Giriş/Çıkış ve İçe Aktarma(IMPORT)

Python ekrana veya bir dosyaya veri yazdırabilmek için yerleşik print() fonksiyonunu kullanırız. Print fonksiyonunun parametreleri aşağıdaki şekildedir.

print(*nesneler, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

Yukardaki parametrelerde;

nesneler yazdırılacak değer

sep her nesne arasında olacak varsayılan değer (varsayılan boşluk)

end tüm nesneler yazdırıldıktan sonra olacak varsayılan değer (varsayılan satır sonu)

file nesnelerin nereye yazdırılacağı (varsayılan konsol ekranı)

flush arabelleğe alınan verilerin çıktı hedefine gönderilip gönderilmeyeceğini

tanımlar.

Ör:

print(1,2,3,4) #1 2 3 4 yazdırılır

print(1,2,3,4, sep=’,’) #1,2,3,4 yazdırılır

print(1,2,3,4, sep =’^’, end=’&’) # 1^2^3^4& yazdırılır.


ÇIKTI FORMATLAMA

Pythonda çıktılarımızın hoş görünmesini format komutuyla sağlarız, aynı zamanda format komutuyla çıktıların sırasını da ayarlayabiliriz. format komutu tüm string türlerinde çalışır ve çıktıların sırasını süslü parantezlerle ayarlarız.

Ör :

a = 10 ; b = 7

print(‘a değeri {} b değeri {}’.format(a,b)) # a değeri 10 b değeri 7 çıktısını verir.

a = ahmet ; b = ayşe

print(‘en sevdiğim kız arkadaşım {1} en sevdiğim erkek arkadaşım {0}’.format(a,b))

# en sevdiğim kız arkadaşım ayşe en sevdiğim erkek arkadaşım ahmet çıktısını verir.

Bir string ifadesini biçimlendirmek için anahtar kelime argümanlarını da kullanabiliriz.

print(‘Merhaba {isim}, {selamlama}’.format(selamlama=’Günaydın’,isim = ‘Mehmet’))

# Merhaba Mehmet, Günaydın çıktısını verir.

Ayrıca string ifadeler % operatörü yardımıyla da biçimlendirilebilir. Virgülden sonra kaç değerin yazdırılmasını istiyorsak .f kullanırız.

Ör:

x = 1234.56789

print(‘x değeri %4.1f’ %x) # 1234.5

print(‘x değeri %4.2f’ %x) # 1234.56

print(‘x değeri %4.4f’ %x) # 1234.5678


GİRİŞ İŞLEMLERİ

Pythonda kullanıcıdan girdi almak istediğimiz input([mesaj]) fonksiyonunu kullanırız.

Ör:

ad = input(‘Lütfen adınızı giriniz’)

print(ad)

Not: input fonksiyonunda mesaj parametresi zorunlu değildir fakat kullanıcının ne girmesini istediğinizi belirtmek için faydalır. input fonksiyonu ile alınan veriler sayısal değer girseniz bile phyton tarafından string formatında saklanır, dolayısıyla bunları matematiksel bir işlemde kullanmak isterseniz int() veya float() fonksiyonlarıyla dönüştürmeniz gerekebilir.


İÇE AKTARMa (IMPORT)

Pythonda başkaları tarafından yazılmış veya kendi yazdığınız kod parçacıklarını başka phyton scriptlerinde (dosyalarında) kullanmak isterseniz bunları import komutuyla dosyanıza eklemeniz gerekir. Ayrıca bazı phyton modülleri ile çalışmak için de bu fonksiyon gerekir.

Ör:

import math

print (math.pi) #3.141592653589793 çıktısını verir. Phytonun kendi içindeki math modülü import etmiş oluruz.

Not: math modülü büyük bir dosya olabileceği için math modülü içindeki sadece pi değerini almak istersek import komutunu şu şekilde de kullanabiliriz.

from math import pi

print(pi) #3.141592653589793 çıktısını verir.

Başka bir .py uzantılı python dosyasını import etmek istersek;

sabitler.py

UNIVERSITE = “Yıldız Teknik Üniversitesi”

BOLUM = “İnşaat Mühendisliği”

main.py

import sabitler.py

print(‘{0},{1} bölümü mezunu Faruk Durusoy’.format(sabitler.UNIVERSITE,sabitler.BOLUM))

# Yıldız Teknik Üniversitesi, İnşaat Mühendisliği bölümü mezunu Faruk Durusoy çıktısını verir.

Programlama, Python kategorisine gönderildi | , , , , , , , ile etiketlendi | Yorum yapın

Python Dersleri 5. Tür Dönüşümleri

Pythonda tür dönüşümü nesnenin bir verip tipinden başka bir veri türüne dönüştürülmesidir, 2 temel tür dönüşümü vardır. Bunlardan ilki Implicit yani örtülü tür dönüşümüdür. Kullanıcının bu gibi durumlarda herhangi bir şey yapmasına gerek kalmaz ve düşük seviyeli tür daha yüksek seviyeli bir türe otomatik olarak phyton tarafından dönüşütürülür. Diğer tür dönüşüm şekli ise Explicit yani açık tür dönüşümüdür. Python bazı durumlarda tür dönüşümlerini otomatik yapamaz ve işlem yapmanız gerektiğinde hata verir. Bu tip durumlarda python içinde yerleşik bazı dönüştürme fonksiyonlarını kullanmamız gerekir. Bunlar sırasıyla int() , float(), str() dir.

Ör :

sayı_int = 456

say_ondalık = 4.56

sayi_yeni = sayi_int + sayi_ondalık

print(sayi_yeni) # 460.56 (Implicit sayı dönüşümü)

Yukardaki örnekte görebileceğiniz gibi python 456 sayısını 4.56 ondalık sayısıyla toplarken 456 sayısını otomatik ondalık sayıya çevirerek (456.00 yaparak) bu işlemi gerçekleştirmiştir.

Ör:

sayi_int =456

sayi_yazi = “456”

print(sayi_int + sayi_yazi) #TypeError hatası alırız

Yukardaki örnekte python otomatik olarak 456 sayısı ile 4.56 karakter formatındaki sayıyı toplayamaz, bunun için Explicit yani açık tür dönüşümüne ihtiyaç duyar.

Ör:

sayi_int = 456

sayi_yazi = “456”

sayı_yazı = int(sayi_yazı)

sayi_toplam = sayi_int + sayi_yazı

print(sayi_toplam) # int() fonksiyonu ile int_yazi değişkenini int formatına çevirdiğimiz için iki sayı başarıyla toplanır ve 460,56 sonucunu verir.

FonksiyonTanımı
int(x [,base])x değerini bir tam sayıya dönüştürür. “base” kısmı isteğe bağlı olarak, taban
dönüşümü için kullanılan bir parametredir. base parametresi 2 olarak
kullanıldığında, sayının 2 tabanındaki karşılığı bulunur.
chr(x)Bir sayıyı karaktere dönüştürür.
str(x)x değerini string değere dönüştürür.
repr(x)x değerini bir ifade string’e dönüştürür.
eval(str)Bir string’i değerlendirir ve bir nesne döndürür.
complex(real [,imag])Kompleks bir sayı üretir.
float(x)x değerini float bir sayıya dönüştürür.
list(x)x değerini list’e dönüştürür.
dict(d)d (key, value) ilişkisi barındıran veriden bir sözlük oluşturur.
tuple(x)x değerini tuple’ye dönüştürür.
set(x)x değerini bir set’e dönüştürür.
frozenset(x)x değerini bir frozen set’e dönüştürür.
unichr(x)x sayısını unicode karakterine çevirir.
ord(x)Verilen bir karakterin unicode sayısal değerini döndürür.
hex(x)Bir sayının onaltılı düzendeki (hexadecimal) karşılığına (string) çevirir.
oct(x)Bir sayıyı sekizli düzendeki (oktal) karşılığına (string) çevirir.
Çeşitli Tür Dönüşüm Fonksiyonları




Programlama, Python kategorisine gönderildi | , , , ile etiketlendi | Yorum yapın

Python Dersleri 4. Veri Tipleri

Pythonda her değişken bir nesnedir ve bu nesnelerin sahip olduğu veriler farklı tiplerde olabilir.

Python’da 5 temel veri tipi vardır, bunlar sırasıyla;

  • Numbers (Sayılar)
  • String (Karakter Dizisi)
  • List (Liste)
  • Tuple (Demet)
  • Dictionary (Sözlük)

Python’da veri tipi type(değişkenismi) komutuyla öğrenebiliriz.

Ör :

metin = “Python dersleri”
sayi = 1234
noktali_sayi = 12.67
listem = [31, 28.1, ‘Python öğreniyorum’]
demet = ( 24.82, ‘İstanbul’, 25+4j )
sozluk = {1:’değer’,’anahtar’:2.6}


print(type(metin ))
print(type(sayi ))
print(type(noktali_sayi ))
print(type(listem ))
print(type(demet ))
print(type(sozluk ))


Kod Çıktısı:
<class ‘str’>
<class ‘int’>
<class ‘float’>
<class ‘list’>
<class ‘tuple’>
<class ‘dict’>

  • Numbers (Sayılar)

Python’da 4 farklı sayı tipi var, bunlar sırasıyla int (tam sayılar; 5, 23, -110, 0x68), long (uzun tam sayılar; 20530588L, 0142L, -0x571324, 0xDEFABCECCESAD), float (ondalık sayılar; 64.23, 22.17+e18, -54.3), complex (karmaşık sayılar; 3.14j, .451j, 42e+25j) sayılardır.

Not : Python, uzun tam sayıları büyük L harfiyle görüntüler. Küçük “l” harfi kullanılmasına izin verir, ancak
1 sayısıyla karıştırılmaması için yalnızca büyük “L” harfi kullanılması önerilir.

Not : Karmaşık bir sayı, x + yj ile gösterilen bir gerçel kayan noktalı sayı çiftinden oluşur; burada x ve y gerçel
sayılardır ve j sanal birimdir

  • String (Metin Dizisi)

Python string yani metin dizileri tek veya çift tırnakla belirtilen karakter kümeleridir.

  • Stringlerde karakter belirtirken 1. karakter “0” olarak alınır. Sondan başlanıyorsa “-1” olarak alınır
  • Stringler değiştirilemez (immutable yapılardır).
  • Stringlerin bir bölümünü seçmek için köşeli parantezler içinde “[,]” iki nokta “:” işareti kullanılır.

Ör :

str = ‘merhaba dünya’

print(str[2:5]) #Ekrana 3. karaktenden başlayarak 5. karaktere kadar yazdırır sonuç : rha

print(str[3:]) #Ekrana 4. karaktenden başlayarak tüm karakterleri yazdırır : haba dünya

print(str * 2) # Tüm metni 2 kere yazar.

print(str + “ekleme metin”) #iki metini + sembolü ile birleştirip yazdırabiliriz.

  • List (Liste)

Python’da listeler virgüller ayrılmış ve içinde farklı veri tipleri barındırabilen köşeli parantezle belirlenmiş sıralı öğelerdir. Stringlerden farklı olarak değiştirilebilirdirler (mutable), ekleme çıkarma yapılabilir.

Ör :

listem = [12, 23.5 , ‘listenin 3. öğesi’]

print(listem[0]) #12

print(listem[1]) #23.5

print(listem[2]) #listenin 3. öğesi

Not : listeden bir öğeyi degeri çıkarmak için listeadi.remove(ögeadi) komutu kullanılır.

Ör :

listem.remove(12)

print(listem) # [23.5, ‘listenin 3. öğesi’]

Not : remove komutuyla phyton listesinde ilk bulunan değer çıkarılır, eğer birden fazla değer aynı değer varsa diğerleri kalacaktır.

Not : Eğer remove komutu aradığınız değeri listenizde bulamazsa ValueError hatasını alırsınız.

Not: Eğer listeden bir değeri indeks numarasına göre çıkarmak isterseniz pop komutu kullanılır.

Ör :

listem.pop(2)

print(listem) # [12, 23.5]

Listeninin belirli bir kısmını aynı stringlerde olduğu gibi iki nokta üst üsteyle listeleyebilirsiniz.

Ör :

print(listem[0:1]) # [12, 23.5]

print(listem[1:]) # [23.5, ‘listenin 3. öğesi’]

  • Tuple (Demet)

Tuple’lar listeye çok benzerler, listeden farklı olarak köşeli parantez yerine normal parantezle sınırlandırılır ve öğeleri değiştirilemezler. Öğelerin değiştirilemez olması onları listelerden kullanım alanı olarak daha kısıtlı yapsa da aynı zamanda daha hızlı yapar.

Ör :

demetim = ( 12.36, ‘İstanbul’, 27+4j )

  • Dictionary (Sözlük)

Dictionary yani sözlükler süslü parantezler içinde tanımlanan, iki notayla ayrılan anahtar-değer çiftlerinden oluşan sıralı listelerdir. Her anahtar-değer çifti birbirinden virgülle ayrılır. Demetlerden farklı olarak sözlüklere ekleme çıkarma yapılabilir. Çok büyük miktarda veri üzerinde çalışmak için optimize edilmiştir fakat işlem yaparken anahtar değeri bilmek zorunludur.

Ör :

sozluk = {1:’ilkdeger’,’anahtar’: 3.5}

print(sozluk[1]) # ilkdeger

print(sozluk[anahtar]) # 3.5

print(sozluk[3.5]) #KeyError hatası verecektir, çünkü 3.5 değerinde bir anahtar yoktur.

Programlama, Python kategorisine gönderildi | , , , , , , ile etiketlendi | Yorum yapın

Linux Dersleri 57. Ortam değişkenleri (Environmental Variables)

Linuxda ortam değiişkenleri kısaca çalıştığımız linux ortamının hangi kurallar ve değişkenlerle çalışacağını belirleyen bir kurallar dizisidir denilebilir. Örneğin bir linux kullanıcısı sisteme giriş yaptığında çeşitli değişkenler belirlenir bunlar; çalışma dizini (home directory), shell (scriptlerin çalışacağı dizin), e-posta klasörü vb kurallar ve özelleştirmelerdir.

  • printenv

veya

  • env

komutuyla tüm ortam değişkenlerimizi listeleyerek görebiliriz. Eğer sadece bir ortam değişkenini görmek istersek echo $ORTAMDEGİSKENİADI komutuyla aşağıdaki gibi görebiliriz.

  • echo $SHELL

Ortam değişkenleri değiştirmek için aşağıdaki gibi export komutunu kullanırız.

  • export TEST=1

Eğer ortam değişkenlerini kalıcı olarak değiştirmek istersek .bashrc dosyasını aşağıdaki şekilde editlememiz gerekir.

  • vi .bashrc
  • TEST =’1′
  • export TEST

NOT: .bashrc dosyası home klasörünüzün altındadır eğer dosyayı vi editörüyle başka bir klasörün altındayken açmaya çalışırsanız karşınıza boş bir dosya çıkacaktır

Eğer tüm sisteme etki eden global değişkenleri değiştirmek istersek şu şekilde değişiklik yapmamız gerekir.

  • vi /etc/profile veya /etc/bashrc
  • TEST=’1′
  • export TEST

NOT: bashrc dosyasında edit yaptıktan sonra değişikliklerin etkin olabilmesi için sisteme tekrardan giriş yapmanız gerekir.

İşletim sistemleri, Linux kategorisine gönderildi | , ile etiketlendi | Yorum yapın

Linux Dersleri 56. Sos raporu

Sos raporu sistem durumunu, logları ve yardımcı olabilecek bilgileri toplayıp rapor haline getiren Redhat ve Centosda varsayılan olarak gelen bir pakettir. (sos-version) Toplanan bilgi redhat/centos sysadminlerine gönderilerek yardım istenir.

genel kullanım şekli şu şekildedir.

  • sudo sosreport uygulama parametre

İşletim sistemleri, Linux kategorisine gönderildi | , , ile etiketlendi | Yorum yapın

Linux Dersleri 55. Root şifresini kurtarma

Linuxta root şifresini kurtarmak için grub menüsü editlememiz gerekiyor. Grub menüsü başlangıçta görünmezse Shift+Esc veya F8 tuşuna basın.

Grub menüsü yani sistem seçme ekranı göründüğünde “e” harfine basıp editleyeceğiz. Çıkan ekranda linux ile başlayan satırı bulup sonuna rd.break yazıp sistemi ctrl+x ‘e basıp başlatıyoruz.

sistem bize prompt’u verdiğinde aşağıdaki komutları sırasıyla yazıyoruz

mount -o remount,rw /sysroot/

chroot /sysroot/

passwd

Not: Bu Method rhel 9 ‘un ilk versiyonlarında çalışmayabiliyor.

DİĞER LİNUX DAĞITIMLARINDA

linuxla başlayan satırın başına gelip Ctrl+E ile satır sonuna gidiyoruz,

rw init=/bin/bash (shell sessionına girmesini sağlıyor)

yazıp

Ctrl+X basıp editlenen dosya ile boot’a devam ediyoruz, birkaç saniye sonra promt’a düşünce root partion’ını read-write olarak mount etmemiz gerekiyor.

Önce root partionımızı grep komutuyla aşağıdaki şekilde görelim;

grep ” / ” /proc/mounts

mount -o remount,rw /

passwd root (veya başka bir kullanıcı adı yazarak)

touch /.autorelabel (selinux’un update etmesini sağlıyoruz, bu işlem biraz zaman alacağı için aşağıdaki yöntemle de yapabiliriz.)

/sbin/getenforce

yukardaki komutla Selinux aktif mi değil onu görüyoruz eğer disabled ise şifremizi değiştirdiğimiz zaman ilgili shadow dosyası bozulacaktır.

ls -lZ /etc/shadow

Yukardaki komutla shadow dosyamızı listeliyoruz.

passswd

passwd komutuyla root şifremizi değiştirip tekrardan ls -lZ /etc/shadow komutuyla shadow dosyasına bakıyoruz

eğer root root ikilisinden sonra ? işareti görürsek shadow dosyasını düzeltmemiz gerekiyor.

chcon system_u:object_r:shadow_t:s0

komutuyla bozulan shadow dosyamızı hallediyoruz.

İşletim sistemleri, Linux kategorisine gönderildi | , , , , , , ile etiketlendi | Yorum yapın
Page 1 of 9
1 2 3 9