PostgreSQL ve C# kaydetme, silme, veritabanına bağlanma işlemleri

Merhabalar,

Bu makalemde geçen hafta yaptığım bir uygulama için PostgreSQL veritabanı ile olan Viual Studio ilişkisini C# yardımı ile yazdığım kodları paylaşıyor olacağım.

Veritabanına Bağlanma

Bağlan butonunun adı Button5’tir.

private void button5_Click(object sender, EventArgs e)
        {
            dSet.Clear();

            try
            {
                string sunucu, port, kullaniciAdi, sifre, veritabani;

                sunucu = "localhost";
                port = "5432";
                kullaniciAdi = "postgres";
                sifre = "1234";
                veritabani = "postgres";

                string baglantiMetni = string.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};",
                    sunucu, port, kullaniciAdi, sifre, veritabani);

                NpgsqlConnection baglanti = new NpgsqlConnection(baglantiMetni);

                baglanti.Open();

                string sql = "SELECT * FROM musteri_bilgileri";
                NpgsqlDataAdapter dAdapter = new NpgsqlDataAdapter(sql, baglanti);
                dAdapter.Fill(dSet);
                dTable = dSet.Tables[0];
                dataGridView1.DataSource = dTable;

                baglanti.Close();
            }
            catch (Exception hata)
            {
                MessageBox.Show(hata.Message, "Hata");
            }
        }

Veritabanına Kaydetme

Kaydet butonunu adı Button1’dir.

private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                string sunucu, port, kullaniciAdi, sifre, veritabani;

                sunucu = "localhost";
                port = "5432";
                kullaniciAdi = "postgres";
                sifre = "1234"; 
                veritabani = "postgres";

                string baglantiMetni = string.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};",
                    sunucu, port, kullaniciAdi, sifre, veritabani);

                NpgsqlConnection baglanti = new NpgsqlConnection(baglantiMetni);

                baglanti.Open();

                string sql = "INSERT INTO musteri_bilgileri (ad_soyad,telefon,email,meslek,yas,cinsiyet,sehir) VALUES ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "')";

                NpgsqlDataAdapter dAdapter = new NpgsqlDataAdapter(sql, baglanti);
                dAdapter.Fill(dSet);
                dTable = dSet.Tables[0];
                dataGridView1.DataSource = dTable;

                baglanti.Close();
            }
            catch (Exception hata)
            {
                MessageBox.Show(hata.Message, "Hata");
            }
        }

Veritabanından Silme

Button3 silme tuşudur.

public static void sil(string kimlik)
        {
            string sunucu, port, kullaniciAdi, sifre, veritabani;

            sunucu = "localhost";
            port = "5432"; 
            kullaniciAdi = "postgres";
            sifre = "m";
            veritabani = "postgres";

            string baglantiMetni = string.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};",
                sunucu, port, kullaniciAdi, sifre, veritabani);

            NpgsqlConnection baglanti = new NpgsqlConnection(baglantiMetni);

            try
            {
                NpgsqlCommand command = new NpgsqlCommand("DELETE FROM musteri_bilgileri WHERE id ='" + kimlik + "'", baglanti);
                baglanti.Open();
                command.ExecuteNonQuery();
            }
            catch (Exception hata)
            {
                MessageBox.Show(hata.Message);
            }
            finally
            {
                baglanti.Close();
            }
        }

private void button3_Click(object sender, EventArgs e)
        {

            string kimlik = dataGridView1.CurrentRow.Cells[0].Value.ToString();
            if (!string.IsNullOrEmpty(kimlik))
            {
                Musteri_Paneli.Form1.sil(kimlik);
            }
        }

Renkli günler…

PostgreSQL veritabanında otomatik artan ID atama

Merhabalar,

Bu yazıda sizlere PostgreSQL üzerinde bir veritabanı oluşturup, verilere otomatik ID atama işlemini gerçekleştirmekten bahsediyor olacağım.
PostgreSQL kullanarak bir veritabanı oluşturmak istiyoruz. Veritabanımızda da çoğu zaman yapılan ve yapacağımız işlemlerde kolaylık sağlayan her veriye bir ID atamak ve bu ID’ler üzerinden çalışmak istiyoruz. ID numaralarını yaptığımız uygulamada her zaman elle girmek hem hatalara hem de zaman kaybına yol açar. Bu yüzden her kayıt için otomatik bir ID numarası olmasını istiyoruz.
Bunun için yüklediğimiz PostgreSQL’de pgAdmin arayüzünü çalıştıralım. Önceden oluşturduğumuz veritabanımıza bağlanalım. Plugins menüsünden PSQL Console uygulamasını çalıştıralım. Benim database-imin adı “newdb” olduğundan aşağıdaki görüntü karşıma geldi.

 

Capture

Bu çalışmada yonetici adlı bir table ve bu table içine de yon_id, yon_adsoyad ve yon_email adlı 3 sütun oluşturacağım.

Veritabanımızın adını doğru gördüysek aşağıdaki kodu yazalım.

newdb=#CREATE SEQUENCE yon_id_seq;
CREATE SEQUENCE

Burada primary key olacak yon_id sütunumuz için sequence ifadesini yani düzenli artma özelliğine sahip nesnemizi atıyoruz.

Şimdi tablomuzu oluşturalım.

nexdb=#CREATE TABLE yonetici(
yon_id INTEGER PRIMARY KEY DEFAULT NEXTVAL('yon_id_seq'),
yon_adsoyad VARCHAR(50),
yon_email VARCHAR(50));
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "yonetici_pkey" for table "yonetici"
CREATE TABLE

yon_id isimli sütunumuza ilk satırda göreceğiniz gibi yon_id_seq isimli düzenli artma özelliğine sahip sequence-imizi bağladık.

Artık verilerimizi girme vakti geldi.

newdb=# INSERT INTO yonetici (yon_adsoyad, yon_email) VALUES('ali nazik', 'alinazik@kebap.com');
INSERT 0 1
newdb=# INSERT INTO yonetici(yon_adsoyad, yon_email) VALUES('hanim eli', 'hanim@eli.com');
INSERT 0 1

Eklediğimiz verileri ve otomatik atanan ID değerlerimizi görelim;

newdb=# select * from yonetici;
 yon_id | yon_adsoyad  |   yon_email
--------+-----------+---------------
      1 | ali nazik | alinazik@kebap.com
      2 | hanim eli | hanim@eli.com
(2 rows)

newdb=#

İşlem tamamdır.

Renkli günler…

Haftasonu Maraton var

sk3-v1

Merhabalar,

Final stresi, bitirme derken pek yazı yazamadığım bu ayda size güzel bir haberim var. Hep yurt dışından gördüğümüz kod maratonu heyecanını artık bizler de yaşıyor olacağız.

Yazılıma gönül verenlerdenseniz ve haftasonu eğlencesi arıyorsanız bu 2-3 saatlik eğlenceye sizleri davet ederim.

http://super.kodcu.com/ ‘dan ayrıntılı bilgi alabilirsiniz.

Renkli günler…

`require’: no such file to load — openssl (LoadError) Hatası (Ubuntu 11.10, Ruby 1.9.2, Rails 3.2.1)

Ubuntu 11.10 üzerinde Ruby on Rails kurulumu yaptıktan sonra “rails new blogUygulamasi” adı altında bir proje açmak istedik ve aşağıdaki hatayı aldık;


/home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require’: no such file to load — openssl (LoadError)
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require’
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/net/https.rb:92:in `<top (required)>’
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require’
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require’
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/remote_fetcher.rb:316:in `connection_for’
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/remote_fetcher.rb:368:in `request’
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/remote_fetcher.rb:203:in `fetch_http’
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/remote_fetcher.rb:231:in `fetch_path’
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/spec_fetcher.rb:265:in `load_specs’
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/spec_fetcher.rb:231:in `block in list’
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/spec_fetcher.rb:227:in `each’
from /home/renji/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/spec_fetcher.rb:227:in `list’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/source.rb:253:in `fetch_all_remote_specs’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/source.rb:234:in `block in remote_specs’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/source.rb:231:in `each’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/source.rb:231:in `remote_specs’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/source.rb:165:in `fetch_specs’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/source.rb:70:in `specs’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/definition.rb:176:in `block (2 levels) in index’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/definition.rb:175:in `each’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/definition.rb:175:in `block in index’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/index.rb:7:in `build’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/definition.rb:174:in `index’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/definition.rb:168:in `resolve’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/definition.rb:107:in `specs’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/definition.rb:102:in `resolve_remotely!’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/installer.rb:43:in `run’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/installer.rb:8:in `install’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/cli.rb:219:in `install’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/vendor/thor/task.rb:22:in `run’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/vendor/thor.rb:263:in `dispatch’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/vendor/thor/base.rb:386:in `start’
from /home/renji/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/bin/bundle:13:in `<main>’
Fetching source index for https://rubygems.org/

 


Bu durumda yapmanız gerekenleri aşağıda anlatıyor olacağım.

Başlıkta da belirttiğim gibi bu hatayı aldığım sistem: Ubuntu 11.10, Ruby 1.9.2, Rails 3.2.1 versiyonları.

Bu hata openssl dosyası içindeki  extconf.rb dosyasının çalıştırılmamasından kaynaklanıyor. İlk önce bu dosyayı bulmalıyız.

Eğer rvm kullanarak Ruby yüklediyseniz bu dosyanın adresi: home/Kullanıcı_adı/.rvm/src/ruby-1.9.2-p290/ext/openssl

“.rvm” dosyasını görmek için: üst menüden view/show hiden files seçeneğini işaretlemeniz gerekiyor

Bu adresi şimdi terminalde yazalım çünkü işlemleri terminalde gerçekleştireceğiz:

cd home/renji/.rvm/src/ruby-1.9.2-p290/ext/openssl

Buundan sonra sırayla:

ruby extconf.rb
make
sudo make install

Bu kodları girdiğimizde terminal bizim için derleme işlemlerini yapacaktır. Artık yeni projenizi oluşturmanız için openssl sorunu kalmamış olacaktır.

Renkli günler…

Hackathon ardından

Merhabalar,

Bu yazıyı aslında biraz geciktirdim. Geciktirme sebebim yarışma sonuçlarının açıklanmasını beklememdi. Haydi tamam birazda sıkışan derslerin etkisi var.

Rails Arena bana muhteşem bir haftasonu yaşattı. Şubat ayı başında duyduğum yarışma beni iliklerime kadar heyecanlandırdı. Yarışma Ruby on Rails kullanarak bir web projesi geliştirme yarışmasıydı. Bende sağdan soldan araştırırken tanıştım Ruby on Rails ile. 1 gün, 2 gün derken bir baktım ki baya zevkliymiş bu iş! Diğer dillere göre kullanım kolaylığı olan, senin düşündüklerini koda dökmen ve onun anlaması… Müthiş! Gerçekten yazımı kolay bir dil Ruby. İnternette de diğer dillere oranla çok daha zevkli, maceralı çeşit çeşit alıştırmaları, uygulamaları mevcut. İşte tüm bunlar beni Ruby on Rails alemine dalmaya teşvik etti. Aynı zamanda ara dönem stajımı yaparken bir yandan da Ruby on Rails ile çalışmalara başladım.

Şimdi bakıyorum, 1 ayda kendi standartlarıma göre çok daha fazla ilerleme katetmişim. Tabiki bu Hackathon sayesinde oldu.

Yarışmalara karşı birazcık çekingen bir insanımdır. Ama bu sefer “Haydi Türker!” diyerek bir cesaretle girdim yarışmaya. Ha ne oldu, ne yaptın diye sorarsanız sağlıklı bir uygulama yazamadım. Aklımda tatlı bir tasarım vardı ama entegrasyonları yapamadığım, kod bazında bocaladığım için projemi ayağa kaldıramadım. Ama birde neler öğrendin derseniz yaz yaz parmaklarım yorulur. İnsan kesinlikle yarışma ruhunu tatmalı, o heyecanı, heyecanın verdiği konsantreyi bilmeli diye düşünüyorum artık.

Ben Ruby on Rails çalışmaya boş vakit buldukça devam edeceğim. Kim bilir bir dahaki yarışmada belki benim ismimi de göreceksiniz. Yarışma gününde Rails Arena ekibinin paylaştığı acayip hoşuma giden bir video ile kapanışı yapıyorum.

Renkli günler…


Tak sapkani gidiyoruz makinist! Ruby on Rails GitHub ve Heroku

DSCN0192Merhabalar,

Ruby on Rails demiryolunda kucuk trenimizi hazirlayip yola cikma vakti geldi makinist! Bir onceki makalemde Mac OS X icin Ruby on Rails Kurulumundan bahsetmistim. Bu yazimda ise hizli bir proje olusturumu ve bunu GitHub hesabina aktarimi ve Heroku’da deployement konusunu anlatacagim.

Ruby on Rails Tutorial kitabinda Michael Hartl ayrintili bir sekilde GitHub ve Heroku’yu anlatmis, nasil kodlar yazilacagini gostermistir. Bu kitabi inceleyerekten ise baslarsaniz faydali olacagini dusunuyorum. Fakat siz de benim gibi yeniyseniz ve bu kitapta anlatilanlara cok dalarsaniz nerede oldugunuzu sasirip yolunuzu kaybedeceksiniz. Ben yolumu kaybettikten sonra cetrefilli bir ugras sonucunda dogru yola geri dondum. Tecrubelerimi buradan iletmek isterim.

Ruby, SQLite ve Rails kurulumlarimiz hazirsa simdi yeni uygulamamizi olusturalim. Ben anlatacagim butun islemlerde Mac OS X platformu kullaniyor olacagim. Anlattigim islemler farkli platformlarda farkli sekillerde uygulaniyor olabilir ama genel mantigin degisecegini sanmiyorum.

Yeni bir web uygulamasi olusturmak

Terminali acip bilgisayarinizda olusturdugunuz rails proje dosyasina geliniz. Ben Documents altinda project adi altinda bir dosyaya kayitlarimi aliyorum. Terminalde “cd” komutu ile belirttiginiz dosyaya gider, “cd ..”  komutu ile de o an bulundugunuz dizinin bir ust dizinine geri donersiniz. Ben dizinime gidiyorum:

Mustafa-Turker-Gultepes-MacBook-Air:~ mturkergultepe$ cd Documents/projects

Buraya gittigimde komut satirim soyle gozukecek:

Mustafa-Turker-Gultepes-MacBook-Air:projects mturkergultepe$

“projects” in iceride oldugunu farkettiniz mi?

Projemin ismi zangetsu olacak:

Mustafa-Turker-Gultepes-MacBook-Air:projects mturkergultepe$ rails new zangetsu

Bunu dedikten sonra birazcik bekleyecegiz, zaten terminal ekraninda olusturulan dosyalari goreceksiniz.

Bu asamadan sonra projemizi GitHub deposuna gonderecegiz. Bunun icin yine Michael Hartl’in kitabindaki Version control with Git kismina incelemeniz icin sizi yonlendiriyorum. Orada Installing Git section of Pro Git adli bir link goreceksiniz. O linkten Git yuklemenizi yapip, terminalde projenizin oldugu dizinin icine girip asagida yazmis oldugum kodu calistirmalisiniz.

Mustafa-Turker-Gultepes-MacBook-Air:zangetsu mturkergultepe$ git init

Ve butun dosyalarimizi ekliyoruz:

Mustafa-Turker-Gultepes-MacBook-Air:zangetsu mturkergultepe$ git add .

Tum verilerimizi commit ediyoruz:

Mustafa-Turker-Gultepes-MacBook-Air:zangetsu mturkergultepe$ git commit -m “first commit”

Tum verilerimiz commit olduktan sonra sira geldi Heroku iliskilendirmesine.

Ilk once Heroku yuklemesini aliyoruz:

Mustafa-Turker-Gultepes-MacBook-Air:zangetsu mturkergultepe$ gem install heroku

Simdi create islemi:

Mustafa-Turker-Gultepes-MacBook-Air:zangetsu mturkergultepe$ heroku create –stack cedar

(create teriminden sonra iki arka arkaya tire vardir. “–“) Su ana kadar bir Heroku hesabiniz yoksa buyrun buradan ucretsiz alabilirsiniz. create komutunu verdigimizde terminalde bir link goreceksiniz. Heroku hesabimiz o linke gecisi saglayacak ve projenizin orada calistigini goreceksiniz. Terminalde yazan linki kopyala – yapistir ugrasmadan su komutla:

heroku open

varsayilan tarayicinizda calistirabilirsiniz.

Evet sevgili makinist, yola basladik ve artik yaptigimiz uygulamalara derinlemesine dalabiliriz. Ee yeni vagonlar gerek degil mi?

Renkli gunler…

Mac OS X icin Ruby on Rails Kurulumu

Ruby-on-Rails-Development

Merhabalar,

Her yeni IDE ya da programlama yapmak icin yeni platformlar yukledigimizde bir dizi sorunlarla karsilasiriz. Basimiz agrir. Tam sorunlari halledince bir dizi daha eklenir. Hevesimiz kacar. (Dacia reklami gibi oldu :)) Ben de Ruby yukleme macerama aslinda boyle basladim. Tam ipler gerilmeye basladigi bir anda asagidaki siteyi buldum. Sitede, Ruby 1.9 yukemesinden baslayarak sirayla asamalari uyguladiginizda, sisteminizde, Ruby 1.9, SQLite3 ve Rails 3 yuklenmis olacak.

Ben buradaki islemleri uygularken karsilastigim tek sorun SQLite3 3.7.9 yukleyememedi. Ama bendeki 3.7.5 surumu su anda calismalarim icin yetiyor.

Buyrun link:

http://pragmaticstudio.com/blog/2010/9/23/install-rails-ruby-mac

Renkli gunler…

TIOBE Programming Community Index for January 2012

2011 TIOBE birincisi Objective – C oldu. iPad ve iPhone gecen seneye damgasini vurdu. Ee dolayisiyla da Objective – C. Bu ayki tabloda C#’in yukselisi direkt gozume takildi. Demek ki Microsoft’un reklam, egitim ve yazilim atagi ise yaramis. Su anda C ile ugrastigim icin konumumu koruyorum diyebilirim. 🙂 Ama Python’un dusmesine uzulenlerdenim. Liste asagidaki gibi,

Renkli gunler…

Position
Jan 2012
Position
Jan 2011
Delta in Position Programming Language Ratings
Jan 2012
Delta
Jan 2011
Status
1 1 Java 17.479% -0.29%   A
2 2 C 16.976% +1.15%   A
3 6 C# 8.781% +2.55%   A
4 3 C++ 8.063% -0.72%   A
5 8 Objective-C 6.919% +3.91%   A
6 4 PHP 5.710% -2.13%   A
7 7 (Visual) Basic 4.531% -1.34%   A
8 5 Python 3.218% -3.05%   A
9 9 Perl 2.773% -0.08%   A
10 11 JavaScript 2.322% +0.73%   A
11 12 Delphi/Object Pascal 1.576% +0.29%   A
12 10 Ruby 1.441% -0.34%   A
13 13 Lisp 1.111% +0.00%   A
14 14 Pascal 0.798% -0.12%   A
15 17 Transact-SQL 0.772% +0.01%   A
16 24 PL/SQL 0.709% +0.15%   A
17 20 Ada 0.634% -0.05%   B
18 39 Logo 0.632% +0.29%   B
19 25 R 0.609% +0.07%   B
20 21 Lua 0.559% -0.08%   B

Ubuntu’da tüm dosyalara müdahale etmek

terminal2xMerhabalar,

Ubuntu’da işlem yapan, terminalle uğraşan hepimizin başına dosya izinleri sıkıntısı gelmiştir. Terminalde bir dosya açmak isteriz, unzip yaparız ya da sileriz. Ya da sistem dosyası içeriğini değiştirmek isteriz. Ama yaptığımız bu girişimlerde “permission denied” uyarısı alırız. Yapacağımız işlemleri yapamadan Linux’e küseriz.

Aslında 3 küçük kod parçasıyla bu durumun üstesinden her türlü durumda gelebiliriz. Hemen uygulayacağımız adımları anlatayım.

Terminal penceremizde;

$ sudo su

yazıp gelen şifre satırına kullanıcımızın şifresini girerek enter yapıyoruz. Komut yazacağımız satır şuna benzer şekilde görünmeli:

root@zangetsu-HP-Pavilion-dv5-Notebook-PC:/home/zangetsu#

# işaretini ve root yazısını görüyorsak artık owner olarak işlem yapabiliriz demektir. Bundan sonra şu satırı yazalım:

gnome-terminal

Bunu yazdıktan sonra otomatikman başka bir terminale geçiş yapmış olmamız lazım. Bu terminalde şu kelimemizi yazalım:

nautilus

nautilus yazdığımız anda karşımıza artık normal penceremizin çıktığını görüyoruz. Ve pencerenin sol üst köşesine bakacak olursak root olarak bu pencereyi açtığımızı görürürüz. Artık bu pencerede dosyalarımızla ilgili tüm işlemleri gerçekleştirebiliriz.

Renkli günler…