Mini-FAQ programowania pod GNU/Linuksem

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
doles2
Sędziwy Jeż
Sędziwy Jeż
Posty: 46
Rejestracja: 24 lip 2006, 19:58
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Mini-FAQ programowania pod GNU/Linuksem

Post autor: doles2 »

Krótkie wprowadzenie do programowania pod GNU/Linuksem

Tutaj są informacje jakie potrzebujesz pakiety oraz czynności które musisz wykonać aby stworzyć swój program lub skrypt.
Najpierw uwagi ogólne:
  1. Edytor tekstowy jest zupełnie dowolny.
  2. Nazwy kodów źródłowych i innych plików są dowolne, chyba że powiedziano inaczej, najważniejsze są odpowiednie rozszerzenia, nazwy zależą wyłącznie od Ciebie :)
  3. Zakładam, że wszystko wykonujesz w katalogu bierzącym, tzn jeśli tworzysz wszystko w /home/mojlogin to w tym samym folderze wywołujesz polecenia z konsoli.
  • Język C
    Przede wszystkim musisz zainstalować pakiet build-essential

    Kod: Zaznacz cały

    sudo apt-get install build-essential
    Jest to tzw "metapaczka", czyli pakiet ściągający i instalujący inne pakiety wraz z ich zależnościami
    Po zakończonej operacji tworzysz plik źródłowy w C, w dowolnym edytorze tekstowym lub zintegrowanym środowisku programistycznym (IDE)
    W naszym przykładzie będzie to edytor Gedit

    Kod: Zaznacz cały

     gedit plik_zrodlowy.c 
    Następnie kompilujemy go poleceniem:

    Kod: Zaznacz cały

     gcc plik_zrodlowy.c -o plik_wynikowy 
    Zaś uruchamiamy w ten sposób:

    Kod: Zaznacz cały

     ./plik_wynikowy 
  • Język C++
    Podobnie jak w przypadku języka C musisz zaistalować metapakiet build-essential:

    Kod: Zaznacz cały

    sudo apt-get install build-essential 
    Następnie tworzysz plik źródłowy z rozszerzeniem *.cpp. Niech edytorem będzie Gedit.

    Kod: Zaznacz cały

    gedit plik_zrodlowy.cpp
    Teraz plik należy skompilować przy pomocy g++.

    Kod: Zaznacz cały

    g++ plik_zrodlowy.cpp -o plik_wynikowy
    Ostatnią fazą jest uruchomienie naszego programu:

    Kod: Zaznacz cały

    ./plik_wynikowy
  • Asembler (GNU Assembler - GAS)
    W tym przypadku potrzebujemy pakietu binutils, który zawiera zarówno asemblera jak i linker.
    Instalujemy go poleceniem:

    Kod: Zaznacz cały

    sudo apt-get install binutils
    Tworzymy kod źródłowy o rozszerzeniu *.s dowolnym edytorem, naturalnie przykładowo używając Gedita.

    Kod: Zaznacz cały

    gedit kod_zrodlowy.s
    Następnie plik asemblujemy:

    Kod: Zaznacz cały

    as plik_zrodlowy.s -o plik_wynikowy.o 
    Jednak w ten sposób nie mamy jeszcze pliku wykonywalnego, choć jest już binarny :) Pozostało nam linkowanie, przy pomoc linkera ld:

    Kod: Zaznacz cały

    ld plik_wynikowy.o -o plik_wykonywalny 
    Prawdopodobnie stworzony program nie będzie miał atrybutu "wykonywalności" zatem nadajemy mu go przy pomocy polecenia chmod:

    Kod: Zaznacz cały

    chmod +x plik_wykonywalny
    Ostatecznie uruchamiamy program za pomocą polecenia:

    Kod: Zaznacz cały

    ./plik_wykonywalny 
  • Asembler (NASM)
    Najpierw potrzebujemy oczywiście samego asemblera. Należy ściągnąć pakiet o nazwie nasm:

    Kod: Zaznacz cały

    sudo apt-get install nasm
    Tworzymy plik źródłowy:

    Kod: Zaznacz cały

    gedit plik_zrodlowy.asm
    Asemblujemy go:

    Kod: Zaznacz cały

    nasm plik_zrodlowy.asm -f elf -o plik_wynikowy.o
    Oraz linkujemy przy pomocy linkera ld :

    Kod: Zaznacz cały

    ld plik_wynikowy.o -o plik_wykonywalny
    Tak jak w przypadku GASa jeśli plik nie będzie miał atrybutu wykonywalności nadajemy mu go przy pomocy polecenia chmod:

    Kod: Zaznacz cały

    chmod +x plik_wykonywalny
    Oraz uruchamiamy:

    Kod: Zaznacz cały

    ./plik_wykonywalny
  • Asembler (FASM)
    Tutej jest pewne ułatwienie ale i utrudnienie. Nie ma obecnie paczki z FASMem dla Ubuntu, jednak można go spokojnie ściągnąć z strony autora.
    W tym celu użyjemy programu wget:

    Kod: Zaznacz cały

    wget http://flatassembler.net/fasm-1.67.27.tgz 
    Utworzymy katalog .fasm w naszym katalogu domowy. Zwróć uwagę na kropkę na początku nazwy. Tak, katalog będzie niewidoczny,
    jak zresztą inne foldery z plikami konfiguracyjnymi programów :) Tutaj już nie będziesz się męczyć z linią poleceń, skorzystamy z dobrodziejstw naszego środowiska graficznego :).
    Tworzymy katalog:

    Kod: Zaznacz cały

    /home/mojlogin/.fasm/
    Używając naszego menadżera archiwów jak Ark lub File-Roller rozpakowujemy zawartość katalogu fasm
    do naszego świeżo utworzonego folderu. Następnie dowolnym edytorem tekstowym otwieramy plik .bashrc będąc w katalogu domowym:

    Kod: Zaznacz cały

    gedit .bashrc 
    Dodajemy na samym dole:

    Kod: Zaznacz cały

    alias fasm="/home/mojlogin/.fasm/fasm"
    Dzięki temu będziemy mieli dostęp do FASMa z linii poleceń. Teraz łatwiejsza część, bowiem FASM nie potrzebuje zewnętrznego linkera,
    nie korzysta ani z ld bowiem posiada własny (ułatwienie o którym wspomniałem). Tworzymy plik źródłowy:

    Kod: Zaznacz cały

    gedit plik_zrodlowy.asm 
    A następnie go asemblujemy:

    Kod: Zaznacz cały

    fasm plik_zrodlowy.asm
    Nic więcej, FASM sam utworzy odpowiednie pliki. Jeśli jednak plik wykonywalny nie będzie miał atrybutu wykonywalności użyjemy chmod:

    Kod: Zaznacz cały

    chmod +x plik_wykonywalny
    I uruchomimy go:

    Kod: Zaznacz cały

    ./plik_wykonywalny
  • Bash
    Co prawda bash nie jest językiem programowania, ale krótkie wprowadzenie nikogo nie zabije. Domyślnie w Ubuntu oczywiście jest już interpreter poleceń, zatem każdy skrypt musi zaczynać się od linijki:

    Kod: Zaznacz cały

    #!/bin/bash
    Wypadałoby, aby skrypt miał rozszerzenie *.sh choć nie jest to zasadą, po prostu konwencja. Aby skrypt był traktowany jako plik wykonywalny, a nie zwykły, tekstowy, należy nadać mu odpowiednie uprawnienia (oczywiście przy pomocy chmod).

    Kod: Zaznacz cały

    chmod +x skrypt.sh
    Uruchamiamy za pomocą polecenia:

    Kod: Zaznacz cały

    ./skrypt.sh
******
1.Mam prośbę do moderatorów. Czy ten wątek może być przyklejony tutaj ? Nie w dziale FAQ & How-To, tylko właśnie w dziale programowanie. Każdy "w potrzebie" będzie zaglądał najpierw tutaj, potem dopiero do działu z gotowymi solucjami.
2. W tym wątku zgłaszajcie sugestie oraz gotowe rozwiązania. Będę je dodawał do powyższej listy. Przykładowo fajnie by było napisać coś o Pythonie (ja osobiście nie znam się na nim ). Oczywiście moderacja ma prawo do dowolnej edycji tego pseudo-poradnika :) Uznajmy obecną wersję za beta.
Awatar użytkownika
wujciol
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 28 lut 2008, 19:06
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Brak
Kontakt:

Odp: Mini-FAQ programowania pod GNU/Linuksem

Post autor: wujciol »

  • Python
    Skryptowy język programowania ostatnio bardzo popularny w środowiskach wolnego oprogramowania.

    Aby zacząć zabawę instalujemy interpreter:

    Kod: Zaznacz cały

    apt-get install python
    Tworzymy plik z rozszerzeniem *.py w dowolnym edytorze, np. gedit

    Kod: Zaznacz cały

    gedit hello.py
    Musi się on zaczynać od:

    Kod: Zaznacz cały

    #!/usr/bin/python
    Dodajemy prawo do uruchamiania:

    Kod: Zaznacz cały

    chmod +x hello.py
    Uruchamiamy:

    Kod: Zaznacz cały

    ./hello.py
  • Ruby
    Skryptowy, w pełni obiektowy język programowania, którego olbrzymia popularność wynika głównie z popularności frameworka do aplikacji webowych RubyOnRails.

    Aby zacząć zabawę instalujemy interpreter:

    Kod: Zaznacz cały

    apt-get install ruby
    Tworzymy plik z rozszerzeniem *.rb w dowolnym edytorze, np. gedit

    Kod: Zaznacz cały

    gedit hello.rb
    Musi się on zaczynać od:

    Kod: Zaznacz cały

    #!/usr/bin/ruby
    Dodajemy prawo do uruchamiania:

    Kod: Zaznacz cały

    chmod +x hello.rb
    Uruchamiamy:

    Kod: Zaznacz cały

    ./hello.rb
pozyton
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 13 lut 2007, 16:28
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Mini-FAQ programowania pod GNU/Linuksem

Post autor: pozyton »

  • Java
    Aby programować w Javie trzeba zainstalować składniki tego języka na maszynie

    Kod: Zaznacz cały

    sudo apt-get install sun-java6-jdk
    Do pisania samego kodu na początek wystarczy zwykły edytor textowy, polecam Kate, gdyż koloruje składnię (inne pewnie też, ale nie używałem ich). Kod programu zapisujemy w pliku przykładowyPlik.java i kompilujemy (i równocześnie uruchamiamy - w razie błędów w kodzie zwróci stosowny komunikat/komunikaty) poleceniem

    Kod: Zaznacz cały

    javac przykładowyPlik.java && ./przykladowyPlik
    Gdy już się zapoznasz z Javą na tyle by stworzyć coś większego, lub gdy potrzebujesz narzędzia do nauki/pracy przydatny jest IDE. Do wyboru jest NetBeans lub Eclipse, który wybierzesz, to już zależy od Ciebie, gdyż jeden nie ustępuje w niczym drugiemu.
    Do początkowej nauki Javy polecam gógle, a dla tych co chcą kodzić odrobinkę więcej polecam tę książkę.
kamil4521
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 16 lut 2008, 20:07
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

Odp: Mini-FAQ programowania pod GNU/Linuksem

Post autor: kamil4521 »

  • Perl
Jest to jeden z najwspanialszych języków programowania, protoplasta wszelkich Python'ów, Ryby'ch, PHP'ków etc, etc.

Aby zainstalować interpreter Perl'a, należy wykonać następujące polecenie:

Kod: Zaznacz cały

sudo apt-get install perl


Następnie można już pisać swoje skrypty w Perlu, np.:

Kod: Zaznacz cały

nano test.pl
Polecenie to, otwiera do edycji skrypt test.pl

Przykładowy skrypt w Perlu

Kod: Zaznacz cały

#!/usr/bin/perl

# Po znaku # występuje cało liniowy komentarz

# Poniższe linie pomagają w wymuszaniu dobrego stylu programowania
use strict;
use warnings;

for (my $i = 1; $i < 11; $i++)
{
    print "Witam Cię po raz $i\n"; 
}

Aby skompilować i uruchomić program, należy wywołać następujące polecenie:

Kod: Zaznacz cały

perl test.pl
Dla uściślenia, w każdym języku skryptowym, można na początku skryptu umieścić informację, gdzie znajduje się interpreter danego języka. Należy pamiętać, że TO MUSI BYĆ PIERWSZA LINIA, inaczej skrypt się nie uruchomi (przez wywołanie bezpośrednie).

Aby uruchomić skrypt bezpośrednio, należy nadać mu prawo do uruchamiania:

Kod: Zaznacz cały

chmod a+x text.pl
A następnie uruchomić:

Kod: Zaznacz cały

./test.pl
Dla zainteresowanych!
Jeśli nie wiecie jak zainstalować jakiś moduł Perla, to muszę was powiadomić, że istnieje coś takiego jak CPAN. Jest to coś takiego jak APT dla Debiana (Ubuntu). Jeśli macie już zainstalowanego Perla, to również macie narzędzie cpan.

Aby dowiedzieć się więcej, zobacz:

Kod: Zaznacz cały

man cpan
man perl
P.S. FAQ dla Perla pisałem pospiesznie, w miarę możliwości, jeśli będzie taka potrzeba, spróbuję go poprawić/dodać coś więcej.
Awatar użytkownika
wujciol
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 28 lut 2008, 19:06
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Brak
Kontakt:

Odp: Mini-FAQ programowania pod GNU/Linuksem

Post autor: wujciol »

Przykładowy kod w Ruby:

Kod: Zaznacz cały

#Komentarz
#Program wypisze komunikat

11.times {|i| puts "Witam po raz #{i+1}" }
Linki:

http://pl.wikibooks.org/wiki/Ruby
http://radarek.jogger.pl/
http://www.wujciol.yoyo.pl/
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Mini-FAQ programowania pod GNU/Linuksem

Post autor: el.pescado »

Ok, trochę mnie ubiegliście;) ale włąśnie udało mi się opublikować mój epicki poemat o programowaniu pod Linuksem

Prócz języków programowania, są tam opisy środowisk programistycznych, podstawowych bibliotek, oraz narzędzi pomocnych przy programowaniu.
Awatar użytkownika
doles2
Sędziwy Jeż
Sędziwy Jeż
Posty: 46
Rejestracja: 24 lip 2006, 19:58
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: Mini-FAQ programowania pod GNU/Linuksem

Post autor: doles2 »

Twój popis niegrafomańskiej sztuki piśmiennej będzie niczym kompendium wiedzy dla tego wątłego poradnika :p
hasik
Piegowaty Guziec
Piegowaty Guziec
Posty: 1
Rejestracja: 28 sie 2011, 18:09
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Re: Mini-FAQ programowania pod GNU/Linuksem

Post autor: hasik »

Dorzuce swoja dzialke:

PHP:
Jest to jezyk skryptowy o naprawde duzych mozliwosciach. Prosta (aczkolwiek czasem troche niespojna) skladnia, genialny system automatycznych importow (http://php.net/manual/en/language.oop5.autoload.php)

Instalacja:

Kod: Zaznacz cały

sudo apt-get install php5 php5-cli
(oczywiscie lepiej aptitude ;) )

Przykładowy kod:

Kod: Zaznacz cały

#!/usr/bin/php
<?php
echo "hello world!\n";
Nadanie uprawnien do wykonywania:

Kod: Zaznacz cały

chmod +x plik_zrodlowy.php
Uruchomienie:

Kod: Zaznacz cały

./plik_zrodlowy.php
Mozna oczywiscie pominac w pliku pierwsza linie i wtedy uruchamiac (nawet bez chmod +x)

Kod: Zaznacz cały

php plik_zrodlowy.php
Podrecznik do PHP: http://php.net/manual/pl/
http://favlist.org -- uczenie maszynowe a filmy ;)
CzarnyZajaczek
Piegowaty Guziec
Piegowaty Guziec
Posty: 1
Rejestracja: 10 sie 2007, 20:17
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Re: Mini-FAQ programowania pod GNU/Linuksem

Post autor: CzarnyZajaczek »

PHP-GTK
Ostatnio uwziąłem się na PHP-GTK, napisałem na własne potrzeby prosty programik który mi ułatwia pracę - zazwyczaj pracuję na Linuksie przez zdalny X-server, tzn. programy wyświetlają mi się na drugim komputerze, na razie mam tylko kilka przycisków z najczęściej potrzebnymi mi programami i zadaniami np. wyłączenie komputera ;). Ale po pierwszych szlifach zacząłem pisać poradnik programowania z użyciem PHP-GTK
http://www.itlublin.pl/node/610

Na razie jest tylko opis instalacji PHP-GTK (działa poprawnie na Ubuntu 11.04 - u mnie, i podobno na 10.04, 10.10 i 12.04 też, przynajmniej jest takie info na angielskim forum), Hello World i początek moich opisów widgetów
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości