Tuesday 29 January 2008

Screenlets - Πως να έχουμε πάντα την τελευταία εκδόση!

Προ ήμερων είχαμε δει πως να εγκαταστήσουμε και πως να ρυθμίσουμε τα Screenlets στο Ubuntu Desktop μας.

Για όσους δεν γνωρίζουν τα screenlets είναι ένα σύστημα Widgets/Gadgets για το Linux. Από οτι φαίνεται ο ένας από τους προγραμματιστές άφησε το project. Ο άλλος προγραμματιστής συνεχίζει να δουλεύει στο project, κανονικά και με ταχείς ρυθμούς.

Οι πρώτες βελτιώσεις έχουν αρχίσει και γίνονται ήδη ορατές:



Όποτε ας δούμε πως μπορούμε να έχουμε στο pc μας την νέα ανανεωμένη εκδοσή των Screenlets διαρκώς από το Bazaar.

Πρώτα από όλα αφαιρούμε τα παλιά repositories των screenlets απο το sources.list μας αν υπάρχουν...
sudo gedit /etc/apt/sources.list

Βρίσκουμε την γραμμή που είχαμε προσθέσει και την αφαιρούμε
(η γραμμη του repo ηταν αυτη->deb http://hendrik.kaju.pri.ee/ubuntu/ gutsy screenlets)

κάνουμε update το apt και αφαιρούμε τα παλιά screenlets
sudo apt-get update
sudo apt-get remove screenlets

Το σύστημα μας είναι καθαρό και μπορούμε να προχωρήσουμε στην εγκατάσταση της bazaar έκδοσης :)
Aν δεν έχουμε το bazaar το εγκαθιστούμε ->
sudo apt-get install bzr

Και μετά κατεβάζουμε την τελευταία εκδοσή με:
bzr co http://bazaar.launchpad.net/~helder-fraga/screenlets/Screenlets-new

Παμε στον φακελο ->
cd Screenlets-new

Και εγκαθιστούμε με->
sudo python setup.py install

ΥΓ. Πλέον μπορούμε να έχουμε πάντα την τελευταία εκδοσή πηγαίνοντας στον φάκελο Screenlets-new
και γράφοντας:
bzr update
Αν υπάρχει νέα εκδοσή την εγκαθιστούμε όπως πάνω (με
sudo python setup.py install)
Εδω μπορουμε να βλέπουμε τις αλλαγές που έχουν γίνει και πριν ποση ώρα :)
(EDIT 12/2: Εδώ περιέχεται μέχρι το revision 161 δείτε κάτω...)

ΥΓ2. Αν θέλουμε να απεγκαταστήσουμε τα Screenlets πάμε στον φάκελο και γράφουμε:
sudo make uninstall

ΥΓ3. Η ρυθμίσεις για το widget layer παραμένουν οι ίδιες ( δείτε εδώ )

EDIT 12/2: H 0.0.12 revision 174 μάλλον θα είναι η τελική 0.12 εκδοσή και για κάποιο λόγο την βάλανε εδώ:

https://code.launchpad.net/~screenlets-dev/screenlets/trunk

Επίσης υπάρχει και σε deb πακέτο.

Αναλυτικά από την σελίδα του προγραμματιστή:

Description:
lots of new features including non composite support and more screenlets , also very improved code and much more bug free

Changelog:
revision 174 is the stable release and the last of the 0.0.12 version

Download:

Deb package: http://gnome-look.org/content/download.php?content=73346&id=1&tan=156682...
Source: http://gnome-look.org/content/download.php?content=73346&id=2&tan=712502...


Καλή διασκέδαση!

Keywords: Compiz,Widget Layer,Screenlets,Widgets,Gadgets,Linux,Ubuntu,Gutsy,How to,Eye Candy,Desktop Effects, Bazaar


Monday 28 January 2008

Τρεχωντάς το Photoshop CS2 στο Ubuntu με Wine 0.9.54

Με ρώταγε ένας φίλος τις προάλλες αν τρέχει το Photoshop στο Linux, μιας που μπήκα στην διαδικασία να το ψάξω, είπα να γράψω και έναν μίνι οδηγό.


Η απάντηση είναι ναι, τρέχει... άλλα μεσώ wine. Το wine είναι ένα layer συμβατότητας με εφαρμογές Windows.


Δεν είναι εξομοιωτής αφού η ταχύτητα των εφαρμογών είναι περίπου η ίδια με αυτήν των Windows, άλλα δυστυχώς δεν τρέχει όλες τις εφαρμογές. Και πολλές φόρες χρειάζονται ειδικές μόντες για να τρέξει μια εφαρμογή.


Για την λίστα με τις συμβατές εφαρμογές δείτε http://appdb.winehq.org/ καθώς και την ιστοσελίδα http://frankscorner.org/ οπού έχει αρκετά tips για να τρέξετε Windows εφαρμογές.


Ακολουθώντας τα παρακάτω βήματα μπορείτε να εγκαταστήσετε και να τρέξετε το Photoshop CS2 στο Linux.


Θα χρειαστούμε το γνήσιο Photoshop, και το wine 0.9.54


Ανοίγουμε μια κονσολα-> Applications->Accessories->Terminal


Αν δεν έχουμε το wine το εγκαθιστούμε->
sudo apt-get install wine


Εγκαθιστουμε τις γραμματοσειρες των Windows και το visual c runtime->
wget http://kegel.com/wine/winetricks
sh winetricks corefonts vcrun6


Πάμε στο φάκελο που ειναι το photoshop αν αυτό είναι το cd->
cd /media/cdrom0


Βρίσκουμε το setup.exe και τρέχουμε->
wine Setup.exe


Ακολουθούμε τις οδηγίες εγκατάστασης σαν να ήμασταν στα Windows κάνουμε το activation μας και πρέστο. Το Photoshop έχει εμφανιστεί στο μενού μας και παίζει στο Linux. Αν δεν έχει εμφανιστεί στο μενού ψάξτε στο /home/username/.wine/drive_c/Program Files/


Τα Photoshop που δουλεύουν μέχρι στιγμής στο Linux είναι το 7, το 8 (CS) και το 9 (CS2)
Το 7 είναι το ταχύτερο. Τα υπόλοιπα αργούν αρκετά στην εκκίνηση, κατά την ανίχνευση των plugins.


Άμα λοιπόν το Photoshop δεν έχει κάποιο εξειδικευμένο επαγγελματικό εργαλείο που χρειάζεστε απελπισμένα, τοτε χρησιμοποιήστε το Gimp!


Το Gimp είναι γρήγορο, ελαφρύ, υπέρ πλήρες και ανοιχτού κωδικά!!


Όπως βολεύεται όμως κάνεις... Καλή διασκέδαση!


ΥΓ. Άπαξ και έχουμε εγκαταστήσει το Wine, κάνοντας κλικ σε μια εφαρμογή προσπαθεί να την τρέξει σαν να ήμασταν στα Windows... Αυτό συμπεριλαμβάνει και τους ιούς των windows, για αυτό δεν τρέχουμε πότε το wine σαν root ή με sudo


Keywords:How to Run,Setup,Photoshop CS2,Linux, Ubuntu,Wine,0.9.54




Wednesday 23 January 2008

Ubuntu Games (Μέρος 2ο)

Και αφου ειδαμε μερικα πολυ ενδιαφεροντα παιχνιδια που τρεχουν natively στο ubuntu και γενικα στο Linux. Aς δουμε πως μπορουμε να τρεξουμε παλια αγαπημενα retro παιχνιδακια.

Σιγουρα οι funs των adventure games θα λατρεψαν παλια κλασσικα παιχνιδια της Lucasarts οπως το Monkey Island ή το Loom.

Πριν 8 μερες βγηκε η νεα εκδοση του αγαπημενου μας εξομοιωτη Scumm 0.11.

Για οσους δεν το γνωριζουν το Scumm μας επιτρεπει να παιξουμε παλια adventurακια οπως πχ Τα Monkey Island I & II, Loom, The Dig, Simon the Sorcerer I&II,Day of the Tentacle κτλ

ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed!
Φυσικα θα πρεπει να εχετε τα γνησια παιχνιδια καπου στον δισκο σας :D

δειτε εδω την λιστα συμβατοτητας

Το προβληματακι τωρα ειναι οτι στα repo του ubuntu 7.10 υπαρχει ακομα η 0.9. Οποτε για την 0.11 μπορειτε ειτε να κατεβασετε τον κωδικα και να τον κανετε compile, ειτε να χρησιμοποιησετε τα πακετα για το Debian Etch. Ο κωδικας, οπως και εκδοσεις του scumm για αλλες διανομες πχ Fedora, υπαρχει εδω

Για οσους θελουν να χρησιμοποιησουν τα Debian Etch πακετα οπως εκανα εγω, υπευθυνη τους φυσικα, περιγραφω την διαδικασια:

Κατεβασα το deb για το Debian Etch ->http://prdownloads.sourceforge.net/scummvm/scummvm_0.11.0-0.etch.1_i386.deb?download
Υπηρχε ενα unresolved dependency το libflac7 το οποιο προμηθευτηκα απο εδω:
->http://security.debian.org/debian-security/pool/updates/main/f/flac/libflac7_1.1.2-8_i386.deb
Προχωραμε στην εγκατασταση με:
sudo dpkg -i scummvm_0.11.0-0.etch.1_i386.deb libflac7_1.1.2-8_i386.deb
sudo apt-get install -f
η πρωτη γραμμη εγκαθιστα τα πακετα και η δευτερη προσθετει οτι dependencies λειπουν.

και πρεστο το scumm δουλευει τελεια και μπορουμε πλεον να τρεξουμε τα παλια μας adventurακια στο Linux (alt+f2->scummvm)

EDIT: Απο σημερα 25/1 μπορειτε να βρειτε και πακετα Ubuntu στο GetDeb.net

Η δευτερη λυση για να παιξουμε παλια παιχνιδακια dos, ειναι το περιφημο Dosbox. Το οποιο εξομειωνει το περιβαλλον του Dos χρησιμοποιωντας την SDL για τα γραφικα.

DOSBox is a DOS-emulator that uses the SDL-library which makes DOSBox very easy to port to different platforms. DOSBox has already been ported to many different platforms, such as Windows, BeOS, Linux, MacOS X...

DOSBox also emulates CPU:286/386 realmode/protected mode, Directory FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with older games...

You can "re-live" the good old days with the help of DOSBox, it can run plenty of the old classics that don't run on your new computer!

H τρεχουσα εκδοση του ειναι η 0.72 μπορειτε να την βρειτε στο getdeb.net αν δεν εχει μπει ακομα στο repository του ubuntu. Μπορειτε να βρειτε την λιστα συμβατοτητας εδω.

εγκαθισταμε παλι με:
sudo dpkg -i ονομα-πακετου.deb
sudo apt-get install -f

Αν θελετε μπορειτε να βρειτε καποιο front-end για το Dosbox για να κανετε την ζωη σας πιο ευκολη. Tα παρακατω τρεχουν σε/και σε Linux:
  • DOSBoxGui
A portable DOSBox frontend. Currently confirmed to run on Linux and Windows flavors.
Needs Tcl/Tk.
Website: http://losfinkos.googlepages.com/dosboxgui
  • DOSBOXer
Scott Duensing at Jaeger Technologies has created "DOSBOXer" for most Intel x86 Linux distributions.
Website: http://www.jaegertech.com/index.php?option=com_content&task=view&id=19&Itemid=40
  • DBoxFE
DBoxFE creates and manages configuration files for DOSBox. You can create different profiles for your games, etc.
Need to run:
* KDE 3.1.x / 3.2.x
* Qt 3.1.x / 3.2.x / 3.3.x
Website: http://chmaster.freeforge.net/dboxfe-project.htm
  • pyDOSBox
The program is still in alpha stage but usable.
Website: http://www.panayotis.com/pydosbox/index.html
  • DBGL - DOSBox Game Launcher
DBGL is an open-source, multi-platform frontend for DOSBox, based largely upon the proven interface of D-Fend.
Website: http://home.quicknet.nl/qn/prive/blankendaalr/dbgl/

Keywords: Dos, Games,Linux,Ubuntu,ScummVM,Dosbox

Monday 21 January 2008

Ubuntu Games (Μέρος 1ο)

Ένα από τα βασικότερα επιχειρήματα που εμποδίζει πολλούς χρήστες να έρθουν στο Linux είναι ότι δεν έχουμε υποστήριξη στο θέμα των παιχνιδιών. Η αλήθεια είναι οτι πολλές εταιρίες δεν βγάζουν παιχνίδια για Linux. Έτσι η επιλογή πάντα ανάγεται στο πόσες ώρες χρησιμοποιουμε το pc για gaming και πόσες όχι.

Αυτό βεβαία δεν σημαίνει οτι και εμείς οι Linuxαδες δεν έχουμε ευχάριστα παιχνιδάκια να παίξουμε στο αγαπημένο μας λειτουργικό.

Θα αφήσω εξω τις εμπορικές λύσεις του στυλ cedega και τα διάφορα ports απο windows games που σιγά σιγά γίνονται όλο και πιο συχνά για Linux και θα δούμε μερικά πολύ όμορφα παιχνιδάκια ανοιχτού κωδικά (κυρίως) για τα οποία μάλιστα υπάρχουν και πακέτα για ubuntu, και έχω βάλει στο μάτι να δοκιμάσω τον μηνά που έρχεται.

Ξεκινάμε λοιπόν!

Alien Arena 2007 6.10 - Tuesday, 22 Jan 2008 23:40:46 CET - Watch demo video

This game combines some of the very best aspects of such games as Quake III and Unreal Tournament and wraps them up with a retro alien theme, while adding tons of original ideas to make the game quite unique.
Download: alien-arena (515.7 Kb) , alien-arena-data (241.9 Mb) , alien-arena-server (129.5 Kb)
Note:This game requires a driver supporting 3D hardware acceleration.


AssaultCube 0.93 - Saturday, 20 Oct 2007 14:40:58 CEST
AssaultCube is a total conversion of Wouter van Oortmerssen's FPS called Cube. Set in a realistic looking environment, as far as that's possible with this engine, while gameplay stays fast and arcade. This game is all about team oriented multiplayer fun.
Download: assaultcube (313.9 Kb) , assaultcube-data (17.7 Mb)

DreamChess 0.2.0 - Friday, 04 Jan 2008 19:46:48 CET
DreamChess features 3D OpenGL graphics and provides various chess board sets, ranging from classic wooden to flat figurines.
Download: dreamchess (126.1 Kb) , dreamchess-data (5.0 Mb)

FreeCiv 2.1.2 - Sunday, 06 Jan 2008 10:33:40 CET
Freeciv is a Free and Open Source empire-building strategy game inspired by the history of human civilization. The game commences in prehistory and your mission is to lead your tribe from the stone age to the space age...
Download: freeciv-client-gtk (421.1 Kb) , freeciv-client-xaw3d (394.9 Kb) , freeciv-data (11.2 Mb) , freeciv-server (519.8 Kb) , freeciv-client-sdl (488.6 Kb) , freeciv-sound-standard (138.9 Kb)

OpenArena 0.7.1 - Tuesday, 06 Nov 2007 22:01:58 CET Watch demo video

OpenArena is a free/open source 3D computer game that belongs to the "first-person shooter" genre
Download: openarena (711.9 Kb) , openarena-data (270.5 Mb) , openarena-server (345.8 Kb)
Note:This game requires a driver supporting 3D hardware acceleration.

Pingus 0.7.2 - Wednesday, 31 Oct 2007 23:54:15 CET
Pingus is a free Lemmings-like game covered under the GNU GPL. It features currently 22 playable levels and runs under a wide variety of operating systems (Linux, Windows, etc.)
Download: pingus (896.2 Kb) , pingus-data (11.3 Mb)

Scorched3D 41.2 - Sunday, 20 Jan 2008 12:28:49 CET - Watch demo video

Scorched3D is a cross-platform 3D remake of the popular 2D artillery game Scorched Earth. Scorched3D can be played against the computer, other players, and remotely across the Internet or LAN.
Download: scorched3d (2.1 Mb) , scorched3d-data (58.3 Mb)

Second Life 1.18.5.3 - Friday, 11 Jan 2008 16:22:01 CET - Watch demo video

Second Life is a 3-D virtual world entirely built and owned by its residents. Since opening to the public in 2003, it has grown explosively and today is inhabited by a total of 5,903,108 people from around the globe.
Download: secondlife-install (152.6 Kb)
Note:This package does not contain the game, it will download from SecondLife's site and install.

UFO Alien Invasion 2.2 - Wednesday, 16 Jan 2008 21:41:18 CET
UFO: Alien Invasion is a strategy game featuring turn-based tactical combat against hostile alien forces (human or computer controlled) which are infiltrating earth at this very moment. You are in command of a small special unit which has been founded to face the alien strike force. To be successful in the long run, you must research the alien technology in order to build bigger and better weapons against your foes.
Download: ufoai (1.6 Mb) , ufoai-data (266.4 Mb) , ufoai-data-music (125.0 Mb) , ufoai-server (325.9 Kb) , ufoai-tools (199.8 Kb)
Note:This game requires a driver supporting 3D hardware acceleration.

Wormux 0.8.0~beta4 - Saturday, 19 Jan 2008 15:47:11 CET
Wormux is a free game where funny animals fight on a 2D map with funny weapons.
Download: wormux (624.5 Kb) , wormux-data (52.3 Mb)


Eπισης πολλά ωραία παιχνιδάκια θα βρείτε και στο Add/Remove programs όπως πχ το Frozen Bubble κτλ
Καθώς και στο http://www.getdeb.net/category.php?id=3 από οπού και προέρχονται τα παραπάνω Links :D

Γενικά ψάχνοντας θα δείτε οτι υπάρχουν αρκετά ενδιαφέροντα παιχνίδια για Linux ώστε να περάσει ευχάριστα η ώρα.

Καλή διασκεδαση!

Keywords: Ubuntu,Linux,Open Source,Free,Games,Wormux,Ufo Alien Invasion,Second Life,Scorched 3d, Pingus,Open Arena,Freeciv,DreamChess,Assault Cube

Edit 23/1: Added Alien Arena

Friday 18 January 2008

Internet TV - Miro 1.1 Released

Σήμερα βγήκε η 1.1 έκδοση του Miro, με αρκετά bugfixes και καλύτερο bitorrent support. Για όσους δεν γνωρίζουν το πρόγραμμα, προκειτε για εναν open-source Internet TV και bitorrent client.
Μπορείτε να το κατεβάσετε απο εδώ -> http://www.getmiro.com/download/

Για το Ubuntu Gutsy η διαδικασία ειναι:
Προσθέτουμε το repository στο /etc/apt/sources.list ανοίγουμε με ενα editor το αρχείο:
sudo gedit /etc/apt/sources.list

και προσθέτουμε την γραμμή:
deb http://ftp.osuosl.org/pub/pculture.org/miro/linux/repositories/ubuntu gutsy/

τρέχουμε:
sudo apt-get update
για να ανανεώσουμε την λίστα με τα repositories μας, και εγκαθιστούμε το miro με:
sudo aptitude install miro

UPDATE: 4/2/08 -> Mπορειτε να βρειτε την εκδοση 1.1.1 του Miro και στο getdeb.net:

Download: miro (2.1 Mb) , miro-data (855.1 Kb)

Σώζουμε και τα δυο .deb στον ίδιο φάκελο πχ ~/downloads/miro

και από μια κονσόλα πάτε στο φακελο:
cd ~/downloads/miro

εγκαθιστάμε με:
sudo dpkg -i *.deb

τελος ελέγχουμε για τυχόν ελλειπή dependencies
sudo apt-get install -f

Το miro έχει μια μεγάλη πληθώρα δυνατοτήτων:


Watch Fullscreen

Since Miro works so well for HD content, you'll find lots of video that looks beautiful in fullscreen on even the largest displays.

Resume from Where You Stopped
Miro will remember where you stopped watching a video and will start at that point when you play it again.

Play Almost Anything
Forget about the format wars. Miro can play MPEG, Quicktime, AVI, H.264, Divx, Windows Media, Flash Video, and almost every other major video format.

One After Another
Set your Miro preferences to either play videos one after another (in the order they appear) or to play a video then stop. If you have Miro set to play videos one after another, you can always right-click on an individual video and have it play then stop.

Keyboard Shortcuts
Keyboard shortcuts for all the key playback commands makes it easy to configure a remote control.

Video Playlists
Bring together your favorite videos into a playlist. You can drag them one by one or select a few and right-click to add to a playlist or odd create a new playlist that they will be added to.


full screen

Thumbnail Creation
Miro will create a thumbnail for any video that doesn't have one.

Channel and Playlist Folders
Group your channels by topic by creating folders. Do the same for playlists.

Watch Any Folder
Videos can come in from lots of places-- a web browser, email, a p2p application, or Miro. Miro can watch any folder on your computer and include those videos in your collection. So when you save something to your desktop, for instance, it will show up in Miro without needing to be added manually.

Move Your Library
Running out of space? Miro can move your video collection to any location on your system, such as an external hard drive.

Bring Your Videos Together
When you install Miro, you can search you computer to find all your video files and list them in your Miro Library.

Seamless BitTorrent
Miro can download individual BitTorrent files and torrents that are in feeds. When a video torrent is downloaded it will be in your channel and library ready to watch, just like any other video download.

Individual Video Downloads
A menu item lets you paste in individual video URLs to start downloads.

Auto-Expire
After you watch a video on a channel, it will stick around for a few days and then delete itself. You can choose to keep it permanently if you like and you can set the channel to save every video permanently, but most of the time we think you'll want to keep fresh stuff coming in and old stuff going out.

full screen

Simple Disk Management
Simple tell Miro to reserve a certain amount of space on your hard drive and it will stop downloading new videos when it reaches that limit.

Pause / Resume
Easily pause and resume any individual download, all downloads in one channel, or all Miro downloads.

Video RSS
Video RSS feeds are at the core of our vision for internet TV. They provide a simple system that any publisher can use to distribute their content. Viewers can bring feeds from anywhere together into one place. Miro is compatible with more feeds than any other video app.

Auto-Download
Set any channel to download new videos as soon as they are published. You can also tell channels to stop downloading new stuff if unwatched videos are piling up.

1-Click Subscribe Buttons
If someone comes to your website to see a video, take the chance to turn them into a subscriber. 1-click subscribe buttons let users go from web to Miro with a single click.

Watch the Bubbles
Numbers in a blue bubble next to a channel name indicate that new videos have been published since you last viewed that channel. Green bubbles mean that there are new videos downloaded that you haven't watched yet. Move your cursor over a green bubble and it becomes a play button.


full screen

Rename Channels
Right-click on any channel to rename it.

Mac, Windows, Linux
Miro works beautifully on all three major operating systems. We make this effort because a new model for internet television has to be accessible to everyone.

Global Community
Volunteers from around the world help test, translate, and code Miro. Only about 30% of our downloads come from the United States, where we're based.

Translations
Miro is translated by volunteers into more than 40 languages and the Miro Guide lists channels from around the world in dozens of languages.

Open Source
Miro is free, open-source software (licensed under the GPL). Anyone is free to change the source code, contribute bug fixes and features, and make new versions.

Open Standards
As important as open source code, Miro's embrace of open standards helps encourage innovation and competition. Unlike proprietary video delivery systems, Miro works like the internet itself, utilizing open standards like RSS, HTTP, HTML/CSS, and BitTorrent.

Search Millions of Videos

Miro can search and download from the biggest video sites including YouTube, Yahoo!, Google Video, Blip, and more.

Create Search Channels

Save any search to get new videos as they are published.

Search Within a Channel
Save any search within a video feed as it's own channel. Want to auto-download BoingBoing TV but only when they mention 'steampunks'? Miro makes it easy.

search

The Miro Guide

miro guide

Best of Its Kind
The built-in and web accessible Miro Guide is a full-featured web service that is simply the most intuitive, most elegant, and most useful catalog of video RSS feeds anywhere.

An Open Directory
Anyone can submit an RSS feed to the Miro Guide.

Rate Channels
Like Netflix or Amazon, you can rate any channel in the Guide and get suggestions about channels you might like.

Alternate Channel Guides
Maybe the best thing about the Miro Guide is that it doesn't lock you in. Anyone can create an alternative guide of videos and feeds and you can add that guide to your Miro.

Email Channels and Videos
Every channel and video has an email button to quickly send a link to a friend.

Post to Social Sites
Each video has links to post to Digg, Reddit, del.icio.us, and Video Bomb.

Import / Export Your Channels
Got great collection of channels? Export your feeds as an OPML file and your friends can import it into their Miro or any other feed reader.

Keywords: Miro, 1.1, Internet TV, Open Source, Bitorrent,Client,Youtube,Video

Wednesday 16 January 2008

Eγκατάσταση και ρυθμίσεις του KDE 4.0 στο Ubuntu 7.10

Παροτι τα περισσοτερα features τις σειρας 4 του KDE, θα φανουν σε επομενες εκδοσεις, η εκδοση 4.0 εχει να προσφερει αρκετα ενδιαφεροντα στοιχεια και κενοτομιες.

H εγκατασταση του KDE4 ειναι αρκετα ευκολη, αλλα μην ξεχασετε να απεγκαταστησετε τυχον παλια του πακετα. (To Κde 3 δεν ενοχλει και μπορει να υπαρχει παραλληλα με το 4 χωρις κανενα προβλημα)

Ξεκιναμε λοιπον προσθετωντας το repository με τα πακετα στο source.list μας.

To ανοιγουμε με εναν editor:
sudo gedit /etc/apt/sources.list

προσθετουμε την γραμμη:
deb http://ppa.launchpad.net/kubuntu-members-kde4/ubuntu gutsy main

σωνουμε το αρχειο και κλεινουμε τον editor

Επειτα κανουμε update το apt και εγκατασταση:
sudo apt-get update
sudo apt-get install kde4-core
Πλεον μπορουμε να κανουμε login και σε KDE4 session, οπως και να τρεξουμε kde εφαρμογες μεσα απο το Gnome.

Kαποια χρησιμα tips τωρα:

1) Μπορουμε να αλλαξουμε στο παραδοσιακο μενου του KDE αν δεν μας αρεσει το καινουργιο. Κανουμε δεξι κλικ πανω του και επιλεγουμε Remove, Κανουμε δεξι κλικ στο desktop και επιλεγουμε Add Widget, κανουμε drag & drop το widget Application Launcher Menu σε εναν αδειο χωρο στο μενου.

2)Μπορουμε να εγκαταστησουμε περισσοτερα widgets με:
sudo apt-get install extragear-plasma

3) Μπορουμε να εγκαταστησουμε το καινουργιο Koffice με
sudo apt-get install koffice-kde4

4)Μια βολτα στο synaptic και αναζητηση για kde4 θα μας επιφερει αρκετες καινουργιες εφαρμογες.

5)Τα νεα desktop effects πρεπει να ενεργοποιηθουν χειροκινητα, οποτε παμε System Settings->Desktop και επιλεγουμε Enable Desktop Effects

6)Mε δεξι κλικ στο desktop μπορουμε να κλειδωσουμε τα widgets μας, με Lock Widget

Tελος καποια χρησιμα shortcuts με τα Desktop Effects ενεργα:
(Super =) --> zooms in
(Super - )-->zooms out
(Ctrl + F10) ή ποντικι στην αριστερη πανω γωνια --> expose
(Ctrl + F8) --->view the desktop grid

Kαλή διασκέδαση!

Keywords: KDE4, KDE 4, How to, Install, Settings, Shortcuts, Lock Widgets, Enable Desktop Effects,Extra,Widgets,Plasma,Ubuntu,Gutsy

Monday 14 January 2008

Linux Terminal - Μάθημα 7ο - Εισαγωγή στο Scripting

Κελύφη(shells) εντολών και scripting

Ο μεταφραστής εντολών του Linux, ονομάζεται κέλυφος, επειδή αυτό που αφήνει καί φαίνεται είναι μόνο το εξωτερικό του, εσωτερικά υπάρχουν πολυ περισσότερα από οσα αντιλαμβάνεται ο χρήστης με μια πρώτη ματιά. Τα συστήματα τύπου UNIX, σαν το Linux, είναι μοναδικά στο να αφήνουν τον χρήστη να επιλέξει το κέλυφος εντολών που θα χρησιμοποιεί. Τα περισσότερα λειτουργικά συστήματα έχουν τον μεταφραστή εντολών ενσωματωμένο στο ίδιο το λειτουργικό σύστημα, μη αφήνοντας άλλη επιλογή στον χρήστη. Σε αντίθεση με αυτά στα συστήματα τύπου UNIX, ο μεταφραστής εντολών είναι ανέξαρτητος απο το λειτουργικό σύστημα, το οποίο ειναί σε θέση να λειτουργησεί και χωρίς τον μεταφραστή εντολών.

Επιπλέον καθένα απο τα διαθέσιμα κελύφη παρέχει τις δικές του λειτουργίες και χαρακτηριστικά και φυσικά την δική του γλώσσα scripting. Εμείς θα εξετάσουμε τις δυνατότητες scripting που μας δίνει το bash/sh και θα δούμε περιεκτίκα τις διαφοροποιήσεις του με τα άλλα κελύφη εντολών.

Το περιβάλλον(environment) εντολών του κελύφους

Το ποίο κέλυφος χρησιμοποιούμε υπαγορεύει αρκετές διαφοροποιήσεις στον τρόπο που διαμορφώνουμε αλλά και δουλεύουμε στο λειτουργικό μας σύστημα (Linux). Για παράδειγμα, η σύνταξη με την οποία θέτουμε μεταβλητές στο περιβάλλον του shell και ο τρόπος που αυτές γίνονται διαθέσιμες ανάμεσα σε κάθε session εξαρτάται από το κέλυφος που χρησιμοποιούμε.

Οι μεταβλητές στα διάφορα κελύφη

Η μέθοδος για να θέτουμε μεταβλητές στο κέλυφος εντολών εξαρτάται προφανώς από την σύνταξη που καταλαβαίνει το κέλυφος αυτό. Ας δούμε τι κάνουμε σε μερικά από αυτά για να καταλάβετε καλύτερα τι εννοώ.

1. SH/BASH

Η σύνταξη για να θέσουμε μια μεταβλητή στο sh ή στο bash έχει την ακόλουθη μορφή:

ΜΕΤΑΒΛΗΤΗ=τιμή.

Κατά σύμβαση οι μεταβλητές του περιβάλλοντος υποδηλώνονται με ΚΕΦΑΛΑΙΑ για να διαχωρίζονται από τις εντολές του κελύφους ή του συστήματος. Όταν προσδιορίζουμε μια μεταβλητή στο κέλυφος εντολών τότε ορίζουμε την μεταβλητή αυτή μονο για την διάρκεια της τρέχουσας session και εξασφαλίζουμε την ορατότητα της μόνο από το τρέχον κέλυφος.
Για να κάνουμε την μεταβλήτη αυτή ορατή σε υπό-κελύφη χρησιμοποιούμε την εντολή export, συντάσσοντας:

export ΜΕΤΑΒΛΗΤΗ.

Η εντολή export μπορεί να συνδυαστεί με την δήλωση της μεταβλητής: export ΜΕΤΑΒΛΗΤΗ=τιμή .

2. C SHELL

Για να θέσουμε μεταβλητές στο κέλυφος C ή κάποια παραλλαγή του, χρησιμοποιούμε την εσωτερική εντολή setenv.

setenv ΜΕΤΑΒΛΗΤΗ τιμή

Οπώς διαπιστώνετε ο τρόπος που δηλώσαμε την μεταβλητή είναι διαφορετικός από ότι στο SH. Δοκιμάζοντας την σύνταξη του SH στο Κέλυφος C, Θα πάρετε φυσικά μήνυμα λάθους.
Σε αντίθεση με το κέλυφος Sh, στο κελύφος C, μπορούμε και να ξε-θέσουμε μια μεταβλητή χρησιμοποιώντας την εσωτερική εντολή unsetenv.

unsetenv ΜΕΤΑΒΛΗΤΗ

Για να τυπώσουμε όλες τις μεταβλητες του περιβάλλοντος, χρησιμοποιούμε την εντολή env. Ενώ για να τυπώσουμε την τιμή μιας συγκεκριμένης μεταβλήτης χρησιμοποιούμε την εντολή

echo $ΜΕΤΑΒΛΗΤΗ ή printenv ΜΕΤΑΒΛΗΤΗ

Aliases

Τα περισσότερα κελύφη, μας δίνουν την δυνατότητα να δώσουμε ένα εναλλακτικό όνομα (alias) στις εντολές + παραμέτρους που χρησιμοποιούμε συχνότερα για λόγους ευκολίας και συντομίας. Παράδειγμα, χρησιμοποιώντας την σύνταξη του C κελύφους, θα μπορούσαμε να δημιουργήσουμε μια νέα εντολή ως εξής:

alias la ls -la

Αυτό θα όριζε την εντολή la, η οποία θα ήταν ισοδύναμη με την εντολή ls -la. Ομώς θα πρέπει να έχετε υπόψη ότι όπως οι μεταβλήτες, ετσι και οι εντολές που ορίζουμε, παυουν να υφιστανταί μόλις κάνουμε logout από το σύστημα εκτός και αν τις τοποθετήσουμε σε κάποιο αρχείο που περίεχει τους ορισμούς για το περιβάλλον. Το σε ποίο αρχείο θα τις τοποθετήσουμε εξαρτάται και πάλι από το κέλυφος που χρησιμοποίουμε.

Τα αρχεία περιβάλλοντος

Κάθε φορά που εκτελείται ένα κέλυφος, αναζητεί ένα συγκεκριμένο αρχείο, στο οποίο υπάρχουν ορισμένες οι μεταβλητές και οι aliases που θα πρέπει να ορίσει. Όπως είπαμε κάθε κέλυφος έχει το δικό του αρχείο για αυτή τη δουλεία. Έτσι:

ΚΕΛΥΦΟΣ SH ΚΑΙ BASH
Στα sh/bash το αρχείο βρίσκεται στο home κατάλογο του χρήστη και ονομάζεται $HOME/.profile ή $HOME/.bashrc (η τελεία πριν το όνομα του αρχείου υποδηλώνει ότι το αρχείο είναι κρυφό, ενώ με $HOME το κέλυφος υποδηλώνει το μονοπάτι που βρίσκεται ο κατάλογος home για σας δηλ συνήθως το /home/username).
Το αρχείο .profile είναι ένα απλό αρχείο κειμένου το οποίο πρέπει να διορθώσετε με έναν επεξεργαστή κειμένου που ΔΕΝ κάνει αυτόματη μορφοποίηση (η μορφοποίηση γίνεται με χρήση αόρατων ascii χαρακτήρων που σε ένα αρχείο διαμόρφωσης θα προκάλουσαν πιθανώς λάθη.) H διαφορά των δύο αρχείων είναι ότι το .profile τρέχει μια φορά ενώ το .bashrc κάθε φορά που καλούμε το bash

Μετά αυτό το μικρό σχόλιο είμαστε έτοιμοι να ανοίξουμε τον αγαπημένο μας επεξεργαστή κειμένου (δηλαδή το vi) και να κάνουμε κάποιες τροποποιήσεις στο .profile. To αρχείο .profile θα μοιάζει κάπως έτσι:

# τα σχόλια γράφονται μετά τον χαρακτήρα #.
# Θέτουμε το μονοπάτι πρώτης αναζήτησης εντολών κάπως έτσι:
PATH="$PATH:/home/nexx0r/scripts/:/usr/games"
# στην πάνω γραμμή με $PATH έχει συμβολίσει το σύστημα το προκαθορισμένο μονοπάτι οπού περιέχονται οι εντολές
# του συστήματος, ενώ με : έχω προσθέσει στη συνέχεια δύο δικά μου μονοπάτια. Οποιαδήποτε εντολή πληκτρολογήσω
# στο σύστημα μου χωρίς το σχετικό της μονοπάτι, και δεν είναι σε κάποιους από τους καταλόγους που όρισα εγώ ή το
# σύστημα θα δώσει μήνυμα λάθους.
PS1="[\u@\h ]\\$ "
# Η παραπάνω γραμμή καθορίζει ότι αν η εντόλη είναι τόσο μεγάλη που καταλαμβάνει και δεύτερη θα πρέπει να το
# υποδηλώσει με τον χαρακτήρα \ ακολουθόμενο απο το enter. Όπως επίσης και την μορφή που θα έχει το shell prompt,
# δηλαδή [username@hostname]$
USER='id -un'
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
HOSTNAME='/bin/hostname'
HISTSIZE=1000
HISTFILESIZE=1000
#Οι δύο παραπάνω γραμμές καθορίζουν το μέγεθος του ιστορικού εντολών που θα κρατηθεί.
# Μπορούμε να προσθέσουμε aliases ή ακόμα και custom συναρτήσεις...
# Functions

function ff()
{ find . -type f -iname '*'$*'*' -ls ; }

# Aliases
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias mkdir='mkdir -p'

# η ακόμα και χρώματα με κωδικούς διαφυγής
red='\e[0;31m'
RED='\e[1;31m'
blue='\e[0;34m'
BLUE='\e[1;34m'
NC='\e[0m' # καθαρισμός χρώματος


# Τέλος με την export κάνουμε γνωστά στο σύστημα τα ορίσματά μας
export PATH PS1 USER LOGNAME MAIL \
HOSTNAME HISTSIZE HISTFILESIZE INPUTRC

ΚΕΛΥΦΟΣ C
Το αρχείο που χρησιμοποιεί το κέλυφος C είναι το .cshrc και έχει ελαφρά πολυπλοκότερη σύνταξη:
# Τα σχόλια εξακολουθούν να είναι έτσι


if($?PATH) then
setenv PATH "{PATH}:/home/nexx0r/scripts/:/usr/games"
else
setenv PATH "/bin/:usr/bin/:/home/nexx0r/scripts/:/usr/games"
endif
# Στις 5 παραπάνω γραμμές απλά δήλωσα το path. Δεν μπορείτε να πείτε το C shell είναι πιο ψαγμένο!

if($?prompt) then
if($?tcsh) then
set prompt='[%n@m %c]$ '
else
set prompt=\['id -nu'@'hostname -s'\]\$\
endif
endif

# Στις 7 παραπάνω γραμμές απλά δήλωσα το shell prompt!

setenv HOSTNAME '/bin/hostname'
set history=1000
κτλ

Επιτέλους λίγο Scripting!

Μέτα την μίκρη αλλά απαραίτητη εισαγώγη μας, ήρθε η στιγμή που όλοι περιμέναμε, να μπούμε δηλαδή στο scripting καθεαυτό. Όσα περιγραψούμε παρακάτω, δουλεύουν στο κέλυφος sh, στο κέλυφος bash, στο korn κέλυφος και τους κλώνους τους.

To scripting για το κέλυφος δίνει στον διαχειριστή ή χρηστη του συστήματος την δυνατότητα να αυτοματοποιήσει ορισμένες διαδικασίες και να κάνει την ζωή του πιο εύκολη (ή δύσκολη!). Τα scripts είναι εύκολα να δημιουργηθούν και είναι αμέσα διαθέσιμα. Για να ξεκινήσετε το scripting, η πρώτη γραμμή που πρέπει να προσδιορίσετε είναι το κέλυφος για το οποίο προορίζεται το script, μετά τους χαρακτήρες #!. Δηλαδή:

#!/bin/sh

Μετά την γραμμή αυτή μπορούμε να κάνουμε οτι θέλουμε με το script μας αρκεί να υπακούσουμε φυσικά τους συντακτικούς κανόνες του κέλυφους. Ο πρώτος κανόνας που θα μάθουμε είναι πότε χρησιμοποίουμε ' και πότε ". Το οποίο είναι και το πρώτο πράγμα πού συνήθως μπερδεύουν όσοι ξεκινάνε μια γλώσσα script.
Χρησιμοποιούμε τα ' για να αποτρέψουμε το κέλυφος από το να μεταφράσει το κενό. Πχ στην δήλωση μεταβλήτων:

ΜΕΤΑΒΛΗΤΗ='τιμή1 τιμή2'

Χρησιμοποιούμε τα " για να περικλύσουμε για παράδειγμα το όνομα μια μεταβλητής. Πχ:

ΜΕΤΑΒΛΗΤΗ1="$ΜΕΤΑΒΛΗΤΗ2"

Οπου η ΜΕΤΑΒΛΗΤΗ1 παίρνει την τιμή που έχει η ΜΕΤΑΒΛΗΤΗ2.

Ελεγχος Εκφράσεων if-fi

Ο έλεγχος μιας έκφρασης μπορεί να γίνει με δύο τρόπους. Χρησιμοποιώντας την εντολή If ή περικλύωντας την έκφραση σε αγκύλες []. Η εντολή If έχει το δίκο της σώμα του οποίου το ξεκίνημα υποδηλώνει το if και κλείνει το fi. Ο έλεγχος των εκφράσεων εξαρτάται από το τύπο των μεταβλήτων που ελέγχονται. Και σε αντίθεση με τις συνήθεις γλώσσες προγραμματισμού, εδώ θεωρούμε την συνθήκη αληθής όταν δώσει 0 και ΟΧΙ 1. Ακολούθεί ο πίνακας με τις ποιο χρησίμες εκφράσεις:

Τύπος Δεδομένου Έλεγχος Περιγραφή Παράδειγμα
Συμβολοσειρά (string) =

!=

Ελέγχει αν δύο string είναι ίσα

Ελέγχει αν δύο string δεν είναι ισα

if["$var1"="$var2"];

then echo "Match Found" fi

if["$var1"!="$var2"];

then echo "Match not Found" fi

Αριθμητικό -eq

-nq

-lt

-gt

-ge

Ελέγχει αν δύο νούμερα είναι ίσα

Ελέγχει αν δύο νούμερα δεν είναι ίσα

Ελέγχει αν το πρώτο είναι μικρότερο

Ελέγχει αν το πρώτο είναι μεγαλύτερο

Ελέγχει αν το πρώτο είναι μεγαλύτερο ή ίσο

if[$var1 -eq $var2];

then echo "They are equal" fi

if[$var1 -nq $var2];

then echo "They are not equal" fi

if[$var1 -lt $var2];

then echo "var1

if[$var1 -gt $var2];

then echo "var1>var2" fi

if[$var1 -ge $var2];

then echo "var1>=var2" fi

Αρχεία -f

-d

-r

-w

-x

Έλεγχος για ύπαρξη αρχείου

Ελεγχος για ύπαρξη καταλόγου

Ελεγχος αν το αρχείο έχει άδεια ανάγνωσης

Ελεγχος αν το αρχείο έχει άδεια εγγραφής

Ελεγχος αν το αρχείο έχει αδεία εκτέλεσης

if [-f "$filename"];

then echo "file exists!" fi

if [-d "$dirname"];

then echo "dir exists!" fi

if [-r "$filename"];

then echo "We can read" fi

if [-w "$filename"];

then echo "We can write!" fi

if [-x "$filename"];

then echo "Its Executable!" fi

Λογικές Πράξεις !

-a

-o

Αρνήση Έλεγχου

Λογικό KAI

Λογικό Η'

if [! -w "$filename"];

then echo "We can't write it!" fi

if [-f "$filename" -a -w "$filename2"];

then echo "it Exists and can be written!" fi

if [-f "$filename" -o -w "$filename2"];

then echo " either exists or can be written!" fi

Η εντολή case

Με την εντολή case μπορούμε να ελέγξουμε αν μια σύνθηκη ικάνοποιεί κάποιες προυποθέσεις. Παραδείγματος χάριν, θέλουμε να έλεγξουμε την κατάληξη που έχει ένα αρχείο και να κάνουμε κάποιες εργασίες ανάλογα με αυτή. Κάτι τέτοιο με την χρήση της if θα γίνοταν πολύπλοκο, με την case ειναι παιχνιδάκι:

case "$file" in

*.c) echo "File is C source, so we compile with c compiler"
;;
*.cc|*.cpp) echo "File is C++ source, so we compile with c++ compiler"
;;
*.h|*.hpp) echo "File is Header, so we don't compile it"
;;
Με το ;; υποδήλωνουμε οτι τέλειωσαν οι ενέργειες στην συγκεκριμένη περιπτώση. Οπώς βλέπετε δουλευεί και ο λογικος τελεστής | με τον οποίο μπορούμε να πετύχουμε ακόμα πιο πολύπλοκους ελέγχους.

H δημιουργία βρόχων

Οπως συμβαίνει στις περισσότερες γλώσσες προγραμμάτισμου, έτσι και εδώ έχουμε στην διαθέση μας τους αγαπήμενους μας βρόχους while και for.

WHILE
Ο βρόχος while επαναλαμβάνει ότι περιέχει στο σώμα του για όσο η συνθήκη που δώσαμε είναι αλήθης. Η σύνταξη είναι κάπως έτσι:

while [Συνθήκη ]

do
εντολές
done
Παράδειγμα:
i=0

while [$i -lt 5]
do
echo $i
i='expr "$i" + 1'
done
Σε αυτό το παράδειγμα όσο το i ήταν μικρότερο του 5, τυπωνόταν η τιμή του στην οθόνη και στη σύνεχεια αυξάνοταν κατα 1. Την αύξηση του i κατα 1 την πετύχαμε με την χρήση της εντολής expr, παρατηρήστε την διαφόρα στη χρήση των ' και των ".

FOR
Ας δούμε την σύνταξη του for με ένα ενδιαφέρον παράδειγμα:

c=1

for file in 'ls -R /home/*'
do
c='expr "$c" + 1'
done
echo "$c files are inside /home and its subdirectories"
Θα πρέπει να παρατηρήσουμε οτι πάρα την ευελίξια της η for στο κέλυφος Bourne, έχει την ιδιομορφία να εκτελεί μια επανάληψη ακόμα και όταν η συνθήκη δεν ικανοποιείται.

Χρήσιμες εντολές

Η εντολή sleep

Η εντολή sleep κάνει το κέλυφος να περιμένει για κάποιο αριθμό δευτερολέπτων.

πχ sleep 2 # αναμονή 2 δευτερόλεπτα

H εντολή read

Η εντολή read γεμίζει μια μεταβλήτη με είσοδο του χρήστη απο το πληκτρολόγιο.

πχ read answer # το προγραμμά σταματάει την εκτελέση του μεχρί να δώσουμε τιμή + enter

H εντολή exit

Η εντολή exit σταματάει την εκτέλεση του script και επιστρέφει μια τιμή ελέγχου στο κελύφος.

πχ exit 0 # επιστρέφουμε στο κέλυφος οτι η εκτέλεση του script ήταν επιτυχής

Η δυνατότητα επιστροφής μιας τίμης μας βοήθαει να καταλάβουμε σε ποίο σημείο του script κάναμε λάθος, και να το αποσφαλματώσουμε.

Επίσης με την εντολή Help, μπορούμε να παρουμε βοήθεια

πχ $help while

while: while COMMANDS; do COMMANDS; done
Expand and execute COMMANDS as long as the final command in the
`while' COMMANDS has an exit status of zero.


Αποσφαλματώνοντας το script σας

Για να εκτέλεσουμε το script σε περιβάλλον αποσφαλμάτωσης χρησιμοποιούμε το ειδίκο ορίσμα -x κατα την εκτέλεση του. Αυτό μπορούμε να το προσδιορίσουμε στην αρχή του script, αρχίζωντας έτσι:

#!/bin/sh -x ,

ή κάτα την εκτέλεση, τρέχωντας το μέσα σε κάποιο άλλο κέλυφος:

πχ sh -x myscript.sh .

Όταν εκτελούμε το script σε περιβάλλον αποσφαλμάτωσης πριν την εκτέλεση κάποιας εντολής την τυπώνει στην οθόνη, έτσι μπορούμε να δούμε τις τιμές των μεταβλητών καθώς αυτές επεξεργάζονται από το script.

Keywords: Linux, Terminal, Shell, Commands, Syntax, Tips n Tricks, Terminal Series,Scripting,

bash,aliases,alias,if,while,for,case,read,sleep,exit,debug,variables

Linux Terminal - Μάθημα 6ο - Η πραγματική δύναμη της γραμμής εντολών

Εδω θα δουμε καποια προχωρημενα στοιχεία της γραμμης εντολων, που της δινουν απιστευτη δυναμη και ευελιξια.

Χρησιμοποιώντας περισσότερες από μια εντολές στην ίδια γραμμή εντολών

Μπορείτε να συνδυάσετε περισσότερες από μία εντολές στην ίδια κονσόλα. Αυτό επιτυγχάνετε με την χρήση του ; ανάμεσα στις εντολές.
Πχ $ cd /tmp;pwd;ls -l
Έτσι η παραπάνω εντολή θα αλλάξει τον κατάλογο στον /tmp Θα εμφανίσει σε ποιον κατάλογο εργαζόσαστε, και θα εμφανίσει και τα περιεχόμενα του.
Ας υποθέσουμε τώρα οτί θέλετε να εκτελέσετε την παραπάνω διαδικασία χωρις ομώς να αλλάξει ο τρέχων υποκατάλογος, επιπλέον θέλέτε να το κάνετε με την ίδια ακριβώς ακολουθία εντολών. Αυτό είναι εφικτό περικλείωντας τις εντολές σε (). Αυτό δημιουργεί ένα νέο κέλυφος, στο οποίο εκτέλουνται οι εντολές χωρίς να αλλοιωθεί το τρέχων περιβάλλον. Έτσι δίνωντας: $ (cd /tmp;pwd;ls -l)
Θα δημιουργηθεί ένα νέο περιβάλλον εκτέλεσης εντολών, σε αύτο το περιβάλλον θα εκτελεστουν οι εντολές και έπειτα θα επιστρέψουμε στο αρχικό χωρίς να έχει αλλάξει τίποτα!

Ανακατεύθυνση (redirection)

Μεγάλο μέρος της χρησιμότητας της κονσόλας εγκειταί στην δυνατότητα να ανακατευθήνουμε την είσοδο και την έξοδο των εντολών από και προς τα αρχεία. Τα περισσότερα προγράμματα του κέλυφους έχουν σχεδιαστεί ώστε να διαχείριζονται τα δεδομένα χρησιμοποιώντας ρευμάτα (streams). Ένα ρεύμα δεν είναι τίποτα άλλο πάρα δεδόμενα που κατευθύνονται προς μια είσοδο ή εξοδο. Έτσι συνήθως το ρευμά εισόδου μιας εντολής προέρχεται συνήθως από το πληκτρολόγιο, ενώ το ρευμά εξόδου από την οθόνη του τερματικού. Στο Linux τα προγράμματα επικαοινωνούν με τον εξώ κόσμο με τη βοήθεια τριών ρευμάτων: STDOUT(εξόδου),STDIN(εισόδου),STDERR(εξόδου λαθών). Τα ρευμάτα αυτά μπορουν να συνδεθούν μεταξύ τους με δίαφορετικους τρόπους διαμέσου του κέλυφους. Δηλάδη μπορεί να πάρουμε δεδομένα από ένα αρχείο να τα επεξεργαστούμε και να στείλουμε την εξόδο του αποτελέσματος σε κάποιο άλλο αρχείο. Αυτό ονομάζεται ανακατεύθυνση.

STDOUT

Τα περισσότερα προγράμματα που χρησιμοποιούμε στέλνουν τα αποτελέσματα τους στο προεπιλεγμένο ρεύμα έξοδου που είναι η οθόνη. Παρολαύτα μπορούμε εμείς να προσδιορίσουμε που ακριβώς θα κατευθυνθούν τα δέδομενα εξόδου. Για να το πετύχουμε αυτό χρησιμοποιούμε το σύμβολο > μετά την εντολή και στη συνέχεια το όνομα του αρχείου που θέλουμε να στείλουμε τα δεδομένα.
Για παράδειγμα η εντολή: $ ls -l > /home/user/catalog.ls αντί να τυπώσει την λίστα με τα περιέχομενα του κατάλογου στην οθόνη τα γράφει στο αρχείο catalog.ls. Εκτελώντας αυτήν την εντολή δεν θα εμφανιστεί τίποτα στην οθόνη, για να επαληθευσούμε οτι η έξοδος της εντολής στάλθηκε στο αρχείο που προσδίορισαμε μπορούμε να εκτέλεσουμε την εντολή:
$ cat /home/user/catalog.ls η οποία θα μας τυπώσει τα περιεχόμενα του αρχέιου στο προεπιλεγμένο ρεύμα εξόδου. Όπως είδαμε παραπάνω μπορούμε να τρέξουμε παραπάνω από μία εντολές στην ίδια γραμμή εντολών. Μπορούμε να ανακατευθύνουμε την έξοδο των πολλαπλών αυτών εντολών σε ένα αρχείο, αρκει βέβαια να περικλείσουμε τις εντολές προς ανακατευθύνση σε παρενθέσεις. Έτσι η εντολή: $ cd /home/user;(pwd;ls -l) > catalog.txt αλλάζει τον τρέχων κατάλογο σε /home/user και ανακατευθύνει την έξοδο των εντολών pwd και ls -l στο αρχέιο catalog.txt.
Ενώ θα περίμενε κανείς οτί όλες οι εντολές που χωρίζουμε με ; στέλνονται στ ρεύμα εξόδου, στην πραγματικότητα στέλνεται μόνο η τελευταία.
Έτσι μια εντολή της μορφής: $ ls -l;pwd > file θα ανακατευθύνει στο αρχείο file μόνο την έξοδο της εντολής pwd και οχι της ls-l.
Παρατήρηση: Καθέ φορά που ανακατευθύνουμε το ρεύμα εξόδου μια εντολής σε ένα αρχείο το αρχείο αυτο σβήνεται και πάνω του γράφονται τα νέα δεδομένα. Αν θέλουμε σε ένα παλίο αρχείο να προσαρτήσουμε δεδομένα, το πετυχαίνουμε με την χρήση του συμβόλου >> αντι για >.

STDERR

Το προεπιλεγμένο ρεύμα εξόδου λαθών είναι η οθόνη. Αν θελούμε για κάποιο λόγο να στείλουμε τα μυνήματα λάθους μιας εντολής σε κάποιο αρχείο θα πρέπει να το προσδίορισουμε χηρσιμοποιώντας το σύμβολο ανακατευθύνσης 2>. Τα ρεύματα έχουν έναν αριθμό που υποδηλώνει για ποιο ρεύμα πρόκειται. Έτσι το ρευμά εξόδου είναι το 0, το ρεύμα εισόδου το 1, και το ρεύμα εξόδου λαθών το 2.
Έτσι εκτελώντας πχ την εντολή: $ ls -R / > list.txt 2> errors θα μας τυπώσει τα αποτέλεσματα της εντολής ls -R / στο αρχείο list.txt, ενώ όλα τα μυνήματα λάθους θα τυπώθουν στο αρχείο errors.

STDIN

Είναι εφικτό να ανακατευθύνουμε το ρεύμα εισόδου, οπώς ακριβώς και τα δύο προηγούμενα. Για να καταλάβουμε την χρησιμότητα αυτής της διαδικασίας ας αναφερθούμε σε ένα παράδειγμα. Ας υποθέσουμε, οτι κάποιος εργάζεται σε μια εφημερίδα, και βασίκη εργασία του είναι να προετοιμάζει τις αγγέλιες για την εκτύπωση στην εφημερίδα. Πρώτα λοίπον για κάθε αγγελία ανοίγει το αρχείο /worker/aggelia.txt, αφαιρεί τις 4 πρώτες γραμμές που περιέχουν στοιχεία που αφορούν την εφημερίδα και όχι τους αναγνώστες, σώνει το κείμενο και βγαίνει στην γραμμή εντολών, οπου και γράφει το αρχείο στον φάκελο /boss/ ως /boss/aggelia.ready. Ας αυτοματοποιήσουμε την διαδικασία αυτή χρησιμοποιώντας τον vi και την ανακατευθύνση. Πρώτα δημιουργούμε ένα αρχείο με τίτλο i_am.smart με τα εξής περιεχόμενα :

4dd
:w/boss/aggelia.ready
:q!
Αφού δημιουργήσουμε το αρχείο τρέχουμε την εντόλη: $(vi /worker/aggelia.txt <> error.txt . Ελέγχόντας το αρχείο /boss/aggelia.ready βλέπουμε οτι η εργασία ολοκληρώθηκε με την χρήση της ανακατευθύνσης του ρευμάτος εισόδου.

Διασωλήνωση (pipes)

Το κέλυφος εντολών μας δίνει την δυνατότητα να χρησιμοποιήσουμε την έξοδο ενός προγράμματος ως είσοδο ενός άλλου. Αυτό το πετύχαίνουμε με την χρήση της διασωλήνωσης (pipe). Παραδείγματος χάριν είδαμε οτι η εντολή ls τυπώνει τα περιεχόμενα ενός καταλόγου, ενώ η head τις Ν πρώτες γραμμές ενός κειμένου. Αν θέλαμε λοιπόν να δούμε τις 4 πρώτες γραμμές του καταλόγου αρκει να τρέξουμε την εντολή: $ ls -l|head -n 4. Έτσι η head θα πάρει την εισόδο των δεδομένων της από την εντολή ls -l, και αφού τα επεξεργαστέι θα τυπώσει τις 4 πρώτες γραμμές.


Παραδέιγματα:

$ cat /etc/passwd|less (τυπώνει τα περιεχόμενα του /etc/passwd μια οθόνη τη φορά)

$ (who|head -n 5) > filename.txt (στέλνει στο filename.txt τα ονόματα των 5 πρώτων που είναι logged στο ίδιο μηχάνημα)

$ vi filename.txt < (cat /etc/passwd|grep "0") (στέλνει στο αρχείο filename.txt τις γραμμές του αρχείου /etc/passwd
με uid 0)

Συνήθεις εκφράσεις (Regular Expressions)

Μάλλον το συνήθεις εκφράσεις δεν ανταποκρίνεται και πάρα πολύ καλά στο όρο, έτσι θα αναφέρομαι με τον αγγλικό, regular expression, και για χαριν συντομίας θα χρησιμοποιώ τον όρο regex όταν αναφέρομαι στις συνήθεις εκφράσεις. Regexs είναι ο καθορισμός ειδικής ακολουθίας χαρακτήρων μπαλαντέρ (wildcards) μαζί με κάποιες εντολές προκείμενου να επιτύχουμε ένα συγκεκρίμενο αποτέλεσμα. Για παράδειγμα αν θέλουμε να σβήσουμε όλα τα αρχεία που βρισκόνται στο κατάλογο /home/user και αρχίζουν από a, μπορούμε να δώσουμε την εντολή rm a*.* /home/user. Ας δούμε τους κυριότερους χαρακτήρες μπαλαντέρ.
*:Ταιρίαγμα όλων των χαρακτήρων
?:Ταίριαγμα ενός χαρακτήρα
[]: Ταίριαγμα εύρους χαρακτήρων
!: ’ρνηση εύρους χαρακτήρων

Παραδέιγματα:

*.κατ εννοούμε όλα τα αρχεία με κατάληξη κατ

αμ* εννοούμε τα αρχέια που αρχίζουν με τους χαρακτήρες αμ

α???.* εννοούμε τα αρχεία που αρχίζουν από α έχουν συνολίκα 4 χαρακτήρες και οποιαδήποτε κατάληξη

[αζ]*.* εννοούμε τα αρχεία που έχουν για πρώτο γράμμα α ή ζ και υπόλοιπο οτιδήποτε

α[β-ε]? εννοούμε τα αρχεία τρίων γραμμάτων που έχουν πρώτο γράμμα α, δεύτερο κάποιο εκ των β,γ,δ,ε
και τρίτο γράμμα οτιδήποτε.

Η ιστορία εντολών

Είδαμε οτί το bash διατηρεί ιστορίκο των εντολών που έχουμε πληκτρολόγησει. Για να δούμε την ιστορία των εντολών του bash αρκει να δώσουμε την εντολή history. Μπορούμε να μετακινούμαστε σε αυτές τις εντολές με τα βέλακια πάνω κάτω, η να προσδιορίσουμε κάποια συγκεκριμένη εντολή δινόντας $ !ν όπου ν α αριθμός θέσης της εντολής. Παραδείγματος χάριν μπορούμε να επαναλάβουμε την 10η εντολη που πληκτρολογήσαμε γράφοντας $ !10 . Για να επαναλάβουμε την τελευταία εντολή που πληκτρολογήσαμε αρκεί να δώσουμε $ !! . Το πλήθος των εντολών που θυμάται το bash εξαρτάται από την μεταβλητή HISTSIZE, η οποία από προεπιλογή κρατάει τις 100 τελευταίες εντόλες.

Πολυεπεξεργασία στην γραμμή εντολών

Όσο και αν φαίνεται περίεργο η γραμμή εντολών του bash, εχεί δυνατότητες πολυεπεξεργασίας (multitasking) που σημαίνει πως όπως και στο γραφικό περιβάλλον μπορείτε να εκτελείτε παραπάνω απο μια εργασία και να αλλαζετε την τρέχουσα εργασία σε οποία άλλη θέλετε χωρίς να την τερματίσετε.
Έστω οτί θέλετε να πάρετε μια λίστα με όλα τα αρχεία στο σύστημα που ανήκουν στον χρήστη ή την ομάδα root. Συμβατικά θα εκτελούσατε την εντολή: $ (ls -R /|grep "root") > list 2> errors . Παρολάαυτα η συγκεκρίμενη εντολή σε ένα πολύ μεγάλο ή ενα πολύ αργο συστήμα θα μπορούσε να πάρει αρκετη ώρα μέχρι να εκτελεστέι. Σε ένα σύγχρονο λειτουργικό σαν το Linux, μπορείτε να βάλετε την εντολή να εκτελείται στο παρασκήνιο ενώ εσείς κάνετε chat με το BitchX. Έτσι στο τέλος της προηγούμενης εντολής προσθέτουμε το & , και έτσι το bash καταλαβαίνει οτι πρέπει να την εκτελέσει στο παρασκήνιο. Έτσι εκτελώντας την εντολή: $ (ls -R /|grep "root") > list 2> errors & ,το bash Θα μας επιστρέψει κατευθείαν στην γραμμή εντολών δίνωντας ως έξοδο τον αριθμό της εργασίας μέσα σε αγκύλες, πχ [2] αν είναι η δευτέρη εργασία που εκτελούμε στο παρασκήνιο και των ειδικο κωδικό της πχ 453, που θα δούμε αργότερα τι ακριβως τον χρειαζόμαστε. Για να δούμε μια λίστα με τις διαθέσιμες εργασίες χρησιμοποιούμε την εντολή jobs χωρίς ορίσματα. Για να φέρουμε κάποια από τις εργασίες στο προσκήνιο χρησιμοποιούμε την εντολη fg ακολουθούμενη απο %ν οπου ν ο αριθμός της εργασάς όπως εμφανίζεται στις αγκύλες. Πατώντας CTRL+Z, μπορούμε να θέσουμε προσωρινά μια εργασία σε κατάσταση αναμόνης, δηλαδή ουτέ δουλεύει, αλλά και ούτε έχει τερματιστεί. Αν θέλουμε να την ενεργοποιήσουμε ξανά στο παρασκήνιο χρησιμοποιούμε την εντολή bg %ν, όπου ν ο αριθμός της εργασίας. Αν θέλουμε να τερματίσουμε τελείως μια εργασία μπορουμε να δώσουμε την εντολή kill %v ή kill nnn, οπού ν ο αριθμός της εργασίας και nnn ο κωδικός της.

Keywords: Linux, Terminal, Shell, Commands, Syntax, Tips n Tricks, Terminal Series, multitasking,
pipes,redirection,combine,advanced,features,history,regular expressions,stdout,stdin,stderr

Linux Terminal - Μάθημα 5ο - Καποιες εξτρα εντόλες

ln ->Δημιουργώντας Συντομεύσεις

Μια συντόμευση είναι ένας δείκτης σε ένα αρχείο ή φάκελο κάπου στο σύστημα αρχείων. Η συντόμευση συμπεριφέρεται όπως ακριβώς το αρχικό αρχείο. Αν το δείτε από ένα γραφικό περιβάλλον θα έχει το ίδιο εικονίδιο με το αρχίκο (με τη διαφορά οτι θα έχει ένα βελάκι δίπλα του που υποδεικνύει οτι πρόκειται για συντομευση). Εαν τρέξετε την εντολή ls με την παράμετρο F θα δείτε οτι υπάρχει ένα σύμβολο @ στο τέλος του ονόματος της συντομεύσης. Τέλος αν ανοίξετε/τρέξετε την συντομευση θα δείτε τα ίδια περιεχόμενα με αυτά στα οποία δείχνει η συντόμευση. Οι συντομευσείς χρησιμοποιούνται για να οργανώσουμε καλύτερα την δουλεία μας. Μας δίνουν ευκολότερη πρόσβαση σε αρχεία που είναι βαθία χωμένα στο σύστημα αρχείων, αφού αντι να πλήκτρολογούμε το πλήρες μονοπάτι για να έκτελεσουμε το αρχείο μπορούμε απλά να φτίαξουμε μια συντόμευση στον κατάλογο εργασίας μας και να κάνουμε την ζωή μας πιο ευκολή.

Οι συντομευσείς μπορούν να δημιουργηθούν χρησιμοποιώντας την εντολή ln. Με την εντολή ln μπορούμε να κάνουμε και μαλακές (soft) και σκλήρες (hard) συντομεύσεις. Στη συνέχεια θα χρησιμοποιήσω την αγγλική ορολογία, γιατι θεωρώ τη μετάφραση τουλάχιστο γελοία. Η γενική σύνταξη της εντολής είναι ln [παραμέτροι] πηγή προορισμός . Για να φτίαξουμε μια soft συντόμευση χρησιμοποιούμε την παράμετρο -s. Αν δεν προσδιορίσουμε παράμετρο η συντόμευση είναι κατ' επιλογή hard. Ποια ακριβώς διαφορά έχουν τα δύο είδη συντομευσεών θα εξήγησουμε παρακάτω. Έστω λοίπον το εκτελέσιμο αρχείο /usr/games/pacman, έχουμε δικαίωμα προσβάσης στον κατάλογο /usr/games, άλλα βαρίομαστε να μπαινούμε συνέχεια στον κατάλογο αυτό ή να τρέxουμε την εντολή $/usr/games/pacman, για να παίξουμε. Ετσι θέλουμε να φτίαξουμε μια συντόμευση στον κατάλογο εργασίας μας /home/username/, και να τρέχούμε το παιχνίδι απο εκεί. Γραφούμε λοιπόν: $ln /usr/games/pacman /home/username/pacman και αυτή η εντολή δημιουργεί μια hard συντόμευση στο home καταλογο μας, δηλαδή μπορούμε πλέον να τρεχούμε το πρόγραμμα μοναχά με την εντολή $pacman. Αν είχαμε τρέξει την εντολή ln -s /usr/games/pacman /home/username/pacman θα είχαμε δημιουργήσει μια soft συντόμευση. Το πρακτικό αποτέλεσμα θα ηταν και στις δύο περιπτώσεις το ίδιο. Όμως η ουσιαστική διαφόρα της soft από την hard συντόμευση θα ήταν οτι η hard εξακολούθει να λειτουργεί ακόμα και αν σβηστεί το αρχίκο αρχείο, ενώ η soft όχι. Ουσιαστίκα δηλαδή η soft συντομεύση δημιουργεί ενα μίκρο αρχείο που δείχνει στο αρχίκο, ενώ η hard ένα καινούργιο ισομεγεθές αντίγραφο του αρχικού. Ουσιαστίκα οι hard συντομευσείς δεν δείχνουν απλά το αρχείο αλλά τα πραγματικά δεδομένα στον σκληρό δίσκο. Δηλαδή Το αρχικό αρχείο δεν είναι παρα μια hard συντόμευση σε κάποιο inode με δεδομένα που εφτίαξε το σύστημα γι εμά όταν δημιουργήσαμε τα δεδομένα.

Ευρεση Αρχείων ->Η εντολή find

Με τη εντολή find μπορούμε να βρούμε αρχεία που βρίσκονται κάπου στο σκλήρο δίσκο. Δίνουμε ως παραμέτρους τα αρχικά μονοπάτια αναζήτησης και τα κριτήρια που θελούμε να πλήρει το αρχείο, και η find, αργά άλλα σταθέρα το βρίσκει για έμας επιστέφοντας τα μονοπάτια και τα αρχεία που ταιρίαζουν στα κριτηρία αναζήτησης μας.

Η βασική σύνταξη της εντολής είναι: $ find μονοπάτια κριτηρία

πχ εντολή: $find /home/username /tmp -name "*.jpg"| print 
αποτέλεσμα:
/home/username/pamela01.jpg
/home/username/pamela02.jpg
/home/username/work/company_logo.jpg
/tmp/sunset.jpg
κτλ
Όπως καταλαβαίνετε η εντόλη αυτή (find) βρίσκει όλα τα αρχεία με κατάληξη *.jpg (-name "*.jpg") που υπαρχουν στους επιλεγμένους καταλόγους (/home/username και /tmp) και τους υποκαταλόγους τους. Υστέρα στέλνουμε το αποτέλεσμα για εμφάνιση στο τερματίκο (|print) ή όπου αλλού θέλουμε. Η τελεύταια παράμετρος (|print) δεν έχει να κάνει με καθεαυτή την εντολή, απλά ανακατευθύνουμε (βλέπε παρακάτω για pipes) την εξόδο στην οθόνη (μερίκες παλίες εκδόσεις της find δεν το έκαναν αυτό αυτομάτως).

Η find έχει υπερβολίκα πόλλες παραμέτρους, συμπεριλαμβανομένων και παραμέτρων για να βρούμε αρχεία με βάση την ώρα δημιουργίας ή την ώρα τελευταίας προσβάσεις. Επισής μπορούμε να εκτελέσουμε μια εντολή με ορισμάτα τα απότελέσματα της find. Αυτό γίνεται με την χρήση της παραμέτρου -exec.

πχ εντολή: $find /home/ -name "acc?.txt" -exec grep tuesday {} \;

Αυτή η εντολή ψάχνει για τα αρχεία acc?.txt (πχ acc1.txt, acca.txt κτλ) που βρισκόνται κάπου στο /home, και μόλις τα βρει εκτέλει την grep για καθένα από αυτά ψάχνοντας την συμβολοσειρά tuesday στο κείμενο τους. Οι {} αντικαθιστώνται από το όνομα του αρχείου που ταίριαζει στα κριτήρια της αναζήτησης, και στη σύνεχεια γίνεται όρισμα για την εντολή υπο εκτέλεση (εδώ την grep). Παρατηρήστε οτί στο τέλος της εντολής ύπαρχει ένα ; το οποίο υποδηλώνει το τέλος των υπόορισμάτων του ορισμάτος -exec. Για να αποτρέψουμε το κέλυφος από το να μεταφράσει το ; βαζούμε μπροστά του τον χαρακτήρα διαφυγής \ (backslash).

Παρατήρηση: Ενάς πόλυ πιο απλός (και γρήγορος) τρόπος για την ευρέση αρχείων είναι η εντολή locate. Συντάσεται : $locate αρχείο . Ομώς για να τρέξει θα πρέπει πρώτα ο διαχειριστής (root) του συστήματος να δημιουργήσει τη βάση με τα δεδομένα της, με την εντολή $/usr/bin/updatedb .

Αλλες χρησιμές εντολές

Η εντολή su:

Με την εντολή su, ενάς χρήστης με πολλαπλά accounts, μπορεί να τρέξει εντολές με τα προνόμια ενός αλλού account του. Οταν πληκτρολογήσουμε σκέτα su, τότε μας ζητείται το password, για το account του root, και μπορούμε να τρέξουμε εντολές σαν root.

Η εντολή sudo:

Με την εντολη αυτη μπορουμε να εκτελεσουμε μια εντολη σαν root, δινωντας τον κωδικο του χρήστη μας. Συνταξη: sudo εντολη

Δημιουργία δισκέττας συστήματος:

Πρώτα τρέχουμε την εντολή $uname -r για να δούμε ποιον πυρήνα χρησιμοποιούμε. Θα πάρουμε ως αποτέλεσμα μια σειρά από νουμέρα, κάτι σαν 2.4.x-yy. Στη συνέχεια τρέχουμε την εντολή: $mkbootdisk --device /dev/fd0 2.4.x-yy και έχουμε έτοιμη μια δισκέττα εκκίνησης με τον τρέχον πύρηνα.

Δημιουργία ext2 partition σε μια δισκέττα
Τοποθετήστε μια άδεια δισκέττα στον οδήγο και τρέξτε την εντολη $/sbin/mke2fs /dev/fd0 Αυτό θα διαμορφώσει την δισκέττα αποκλειστικά για χρήση στο linux, και τα περιεχόμενα της θα γίνουν απροσπέλαστα σε άλλα λειτουργικά.

Η εντολή split:

Ας υποθέσουμε οτι θέλουμε να διαχωρίσουμε ένα αρχείο 40mb σε μικρότερα ώστε να το αποθηκευσούμε σε δισκέττες. Το Linux μας παρέχει την εντολή split. Συντάσσεται: $split [επιλογες] μέγεθος αρχείο όνομα_εξόδου.

πχ  $split -b 1395k intro.zip intro.zip 
Το αρχίκο αρχείο θα διαχωριστεί σε μικρότερα των 1395Kb και θα ονομαστούν intro.zip.aa, intro.zip.ab κτλ...
Αν θελήσουμε να τα ξαναενώσουμε σε ένα αρχείο, χρησιμοποιούμε την εντολή: $ cat intro.zipp.?? > intro.zip

Η εντολή sort:

Ταξινομεί τα περιεχόμενα ένος αρχείου και τυπώνει το αποτέλεσμα. Σύνταξη: $sort [παραμέτροι} αρχέιο

Οι πιο συνήθεις εκφράσεις είναι:
-n για αριθμητική ταξινόμηση
-f για να αγνοήσει κεφαλαία-μικρά
-r για αναστροφή αποτελέσματος

πχ $ sort /etc/passwd (Ταξινομεί αλφαβητικά τα περιεχόμενα του αρχείο /etc/passwd και τα τυπώνει στην οθόνη.)

Η εντολή fmt:

Διαμορφώνει κείμενα γραμμένα με επεξεργαστή κειμένου που δεν υποστηρίζει μορφοποίηση.

Σύνταξη:$fmt [παραμέτροι] αρχείο
πχ $fmt -w 70 chapter1.txt
Αποτέλεσμα: Κάνει το μέγεθος κάθε γραμμής του κειμένου 70 χαρακτήρες.

Keywords: Linux, Terminal, Shell, Commands, Syntax, Tips n Tricks, Terminal Series, link files
soft,hard,links,ln,find,sort,split,fmt,locate,su,sudo

Linux Terminal - Μάθημα 4ο - Εργασία στο σύστημα αρχείων

Δημιουργώντας αρχεία και καταλόγους

  • touch : touch [ΟΡΙΣΜΑΤΑ]... ΑΡΧΕΙΑ...
    Δημιουργεί ένα κενο αρχείο ή αλλάζει την ώρα τελευταίας πρόσβασης και αλλαγής
    Ας δούμε τις σημαντίκοτερες παραμέτρους της εντολής.

    -a αλλάξε μόνο την ώρα πρόσβασης
    -c, --no-create δεν δημιουργεί τα αρχεία
    -m άλλαξε μόνο την ώρα τελευταίας αλλάγης
    -t ΩΡΑ χρησιμοποίησε [[CC]YY]MMDDhhmm[.ss] αντί για την τρέχουσα ώρα
    --help δείχνει όλες τις διαθέσιμες παραμέτρους της εντολής

    Παραδείγμα:

    $ touch myfile (δημιουργεί ένα αρχείο μηδενικού μεγέθους)
  • mkdir : mkdir [ΟΡΙΣΜΑΤΑ]... ΚΑΤΑΛΟΓΟΙ...
    Σκοπός τη εντολής είναι να δημιουργήσει τους κατάλογους αν δεν υπάρχουν ήδη. Από τα ορίσματα της εντόλης
    ενδιαφέρον παρουσιάζει το όρισμα -m, --mode=ΕΠΙΛΟΓΗ. Σκοπός του οποίου είναι να ορίσει τα δικαιώματα χρήσης
    του καταλόγου ανάλογα με την τιμή της ΕΠΙΛΟΓΗ.

    Παρακάτω φαίνονται μερικές χρήσιμες τιμές για την ΕΠΙΛΟΓΗ.

    ΕΠΙΛΟΓΗδικαιώματα χρήστηδικαιώματα ομάδαςοι άλλοι
    000rwxrwxrwx
    007rwxrwx---
    022rwxr-xr-x
    037rwxr-x---
    077rwx------


    Αν δεν δωθεί η παράμετρος --mode=ΕΠΙΛΟΓΗ, τότε ο κατάλογος δημιουργείται με τα προεπιλεγμένα
    δικαιώματα πρόσβασης. Αυτά συνήθως είναι drwxrwxrwx. To d υποδηλώνει οτι πρόκειται για κατάλογο.
    Γενικά είναι καλύτερα να ορίζουμε τα δικαιώματα χρήσης με την εντόλη chmod οπώς θα δούμε
    στα επόμενα.

    Παραδείγματα:

    $mkdir mydata (δημιουργεί ένα κατάλογο με το όνομα mydata)
    $mkdir my\ data (ομοίως, αλλά για να τον ονομάσουμε "my data" χρησιμοποιήσαμε το \)
    $mkdir --mode=077 information (δημιούργει ένα κατάλογο με δικαιώματα χρήσης drwx------)

Διαβάζοντας αρχεία

  • Η εντολή cat: αντιγράφοντας τα δεδόμενα του αρχείου στο τερματίκο.

    Η εντόλη cat χρησιμοποιήται για να διαβάσει ένα ή περισσότερα αρχεία και να μας
    δείξει το περιεχόμενό του στην οθόνη. H cat είναι από τις πλεόν χρήσιμες εντολές
    της κονσόλας του Linux, και θα την δούμε αναλύτικα όταν εξετάσουμε αργότερα τους
    τελεστές > < >> >> και | . Προς το παρόν όμως ας δούμε τη βασική της χρήση.

    Η βασική της σύνταξη είναι: $ cat [ορίσματα] [αρχεία].
    πχ $ cat expenses

    Δευτέρα 3/4 3000δρχ για ψώνια
    Τρίτη 4/5 4321δρχ για λογαριασμούς
    κτλ

    Δηλαδή η εντολή άνοιξε το αρχείο expenses και τύπωσε τα περιεχόμενα του στην οθόνη.
    Η εντολή δέχεται αρκετά ορίσματα, τα πιο σημαντικά απο τα οποία είναι:

    -n αρίθμησε τις γραμμές
    -s δείξε όλες τις κενές γραμμές σε μια
    -v τύπωσε και τους μη γραφικούς χαρακτήρες (εκτος των tabs και αλλάγης γραμμής)
    τύπωσε όλους τους χαράκτηρες

  • H εντόλη less: βλέπωντας τα δεδομένα σελίδα-σελίδα

    Η Βασική σύνταξη της εντολής είναι $ less αρχείο ή $ cat αρχείο|less.
    Η εντολή less χρησιμοποιείται για να δούμε τα δεδόμενα ενός αρχείου μια-μια σελίδα.
    Όταν η less τυπώσει τα περιεχόμενα του αρχειού στην οθόνη εμφανίζει στην τελευταία
    γραμμή της οθόνης το σύμβολο :. Όσο το σύμβολο αυτό βρίσκεται στην οθόνη, μπορούμε
    να δώσουμε εντολές για να δούμε το αρχείο. Οι πιο χρήσιμες από αυτές είναι :

    Spacebar για να πάμε στην επόμενη οθόνη
    Β για να πάμε στη προηγούμενη οθόνη
    = για να μας τυπώσει το όνομα του αρχείου και τη θέση στην οποία βρισκόμαστε
    Q για να βγούμε πίσω στη γραμμή εντολών

  • Η εντολες head και tail: βλέπωντας γραμμές από την αρχή ή το τέλος


  • Οι δύο αυτές εντόλες εχούν παρόμοια σύνταξη, και για αυτό τις αναφέρω μάζι. Η head
    χρησιμεύει για να δούμε τις ν πρώτες γραμμές ενός κειμένου, ενώ με την tail βλέπουμε
    τις ν τελευταίες γραμμές ενός κειμένου.

    πχ $ head -n 14 /etc/passwd (για να δούμε τις 14 πρώτες γραμμές του /etc/passwd)
    $ tail -n 7 /etc/passwd (για να δούμε τις 7 τελευταίες γραμμες του /etc/passwd)

Αντιγραφή Αρχείων -- Η εντολή cp

Η εντολή cp μας επιτρέπει να αντιγράψουμε αρχεία από ένα κατάλογο σε κάποιον αλλό.
Η βασίκη σύνταξη της, είναι: $ cp [ορίσματα] πηγή προορισμός. Από τα ορίσματα της
ιδιαίτερο ενδιαφέρον παρουσιάζουν τα παρακάτω:

-i, --interactive αν στον προορισμό υπάρχουν αρχεία με ίδιο όνομα,
η cp δεν γράφει πάνω τους αυτομάτως αλλά ρωτάει
τον χρήστη τι πρέπει να κάνει.
-R, --recursive αντιγράφει και τα δεδομένα των υποκαταλόγων
αναδρομικά.
-v, --verbose τυπώνει αναλυτικές πληροφορίες για την προόδο της
αντιγραφής των αρχείων.

Παραδείγματα:

$ cp /mydata/file1 . (αντιγράφει το αρχείο file1 στον τρέχων κατάλογο)

$ cp /etc/passwd /home/user/ (αντιγράφει τo αρχείo /etc/passwd στον κατάλογο /home/user)

$ cp -R /mnt/floppy/*.* /home/tmp/ (αντιγράφει όλα τα αρχεία και τους υποκαταλόγους απο τη δισκέττα
στον κατάλογο /home/user)


Μετακίνηση αρχείων -- Η εντολή mv

H εντολη mv μας βοηθάει να μετακινήσουμε αρχεία από ένα κατάλογο σε κάποιο άλλο. Ουσιαστικά αυτό
είναι το ίδιο με το να αντιγράψουμε το αρχείο σε κάποιο προορίσμο και μετά να σβήσουμε το αρχικό.
Η mv είναι και ένας τρόπος για να μετονομάζουμε αρχεία στο Linux.
Η σύνταξη της είναι ίδια με της cp, αλλά δέχεται πολύ λιγότερα ορίσματα. Από αυτά ενδιαφέρον
παρουσίαζει το -u, --update, το οποίο μετακινεί στον προορισμό μόνο τα πιο πρόσφατα ή εντελώς νέα αρχεία.

Παραδείγματα:

$ mv /mydata/file1 .. (μετακινει το αρχείο /mydata/file1 στον προηγούμενο από τον τρέχον κατάλογο)

$ mv old new (μετονομάζει το αρχείο old σε new!)

Διαγραφή αρχείων -- Η εντολή rm

Η εντολή rm σβήνει αρχεία ή καταλόγους. Η βασίκη συνταξή της είναι: $ rm [ορίσματα] αρχείο.
Τα σημαντικότερα απο τα ορίσματα της είναι:

-d, --directory σβήνει ολόκληρο τον κατάλογο ακόμα και αν είναι γεμάτος (μόνο ως root)
-f, --force δεν επαληθεύει την διαγραφή
-i, --interactive επαληθεύει την διαγραφή
-r, -R, --recursive σβήνει τα περιεχόμενα των κατάλογων αναδρομίκα.

Παράδειγματα:

$ rm myfile (σβήνει το αρχείο myfile)

$ rm -R tmp/ (σβήνει τα περιεχόμενα του καταλόγου αναδρομικά, και τον κατάλογο)

ΠΡΟΣΟΧΗ: Μην χρησιμοποιείτε ΠΟΤΕ τις παραμέτρους Rf μαζί. Μπορεί να χάσετε χρήσιμα δεδόμενα και
να μην το πάρετε χαμπαρι.

Keywords: Linux, Terminal, Shell, Commands, Syntax, Tips n Tricks, Terminal Series, filesystem,
copy,delete,create,files,touch,mkdir,rm,cp,mv,less,cat

Linux Terminal - Μάθημα 3ο - Πλοήγηση στο συστημα αρχειων

Εντολές του κελύφους για πλοήγηση στο συστήμα αρχείων

  • pwd : pwd [-PL]

    Η εντολή pwd, τυπώνει των τρέχων κατάλογο που εργαζόμαστε. Με το όρισμα -P τυπώνει τον φυσικό κατάλογο χωρίς συμβολίκες συντομεύσεις. Ενώ με το όρισμα -L ακολουθεί και τις συμβολίκες σύντομεύσεις.

    Συνήθως έχει νοήμα να συνδύαζουμε ορίσματα για να πάρουμε ένα πιο πολύπλοκο αποτέλεσμα. Εδώ κατί τέτοιο δεν έχει νόημα γιατί τα ορίσματα αλληλοαναιρούνται.Σχέδον πάντα η εντολή αυτή χρησιμοποιείται χωρίς ορίσματα.

    Παράδείγμα:

        $ pwd   (πατάμε enter) 
    /home/username
  • cd : cd [-PL] dir

    Η εντολή cd αλλάζει τον τρέχων κατάλογο στον κατάλογο με το όνομα dir. Η μεταβλητή $HOME είναι ο προεπιλεγμένος τρέχων κατάλογος, αν δεν δώσουμε ορίσματα. Αν δώσουμε για κατάλογο την . τότε εννοούμε τον τρέχων κατάλογο, αν δώσουμε για κατάλογο .. τότε εννοούμε τον προηγούμενο στην ιεραρχία κατάλογο, ενώ με / εννοούμε τον κατάλογο root.

    Το όρισμα -P λέει στην εντόλη να ακολουθήσει την δομή του φυσικού καταλόγου, ενώ με το όρισμα -L αναγκάζει την εντόλη να ακολουθήσει τις συμβολίκες συντομεύσεις.

    Συνήθως έχει νοήμα να συνδύαζουμε ορίσματα για να πάρουμε ένα πιο πολύπλοκο αποτέλεσμα. Εδώ κατί τέτοιο δεν έχει νόημα γιατί τα ορίσματα αλληλοαναιρούνται.Σχέδον πάντα η εντολή αυτή χρησιμοποιείται χωρίς ορίσματα. Με μοναδίκη παράμετρο τον κατάλογο που θέλουμε να πάμε

    Παραδείγματα:

        $ cd / (μας πάει στην κορύφη του δέντρου)
    $ cd home (μας πάει στον κατάλογο /home)
    $ cd username (μας πάει στον κατάλογο /home/username)
    $ cd /mnt/cdrom (μας πάει στον κατάλογο /mnt/cdrom)
    $ cd ../floppy (μας πάει στον κατάλογο /mnt/floppy)
    κτλ
  • dirs : dirs [-clpv] [+N|-N]

    Εμφανίζει την λίστα με τους καταλόγους που έχουν απομνημονευθεί. Οι κατάλογοι τοποθετούνται σε αυτή τη λίστα με την εντόλη pushd και πηγαίνουμε σε αυτούς με την εντολή popd.

    Το όρισμα -l προσδιορίζει οτι η εντόλη δεν θα πρέπει να τυπώσει συντμημένα τα όνοματα των καταλόγων που βρίσκονται σε σχετική θέση με τον κατάλογο /home/username. Αυτό σημαίνει οτι αντί για ~/tmp θα τυπώσει /home/username/tmp.
    Με το όρισμα -v η εντολή dirs τυπώνει τον σωρό των καταλόγων γραμμή-γραμμή και πριν από καθέ γραμμή υπάρχει ένα νούμερο που προσδιορίζει τη θέση του καταλόγου στο σωρό.
    Το όρισμα -p κάνει το ίδιο με το -v, αλλά δεν τύπωνει το νούμερο της θέση του καταλόγου στο σωρό.
    Το όρισμα -c σβήνει τα περιεχόμενα το σώρου των καταλόγων.

    Το +Ν εμφανίζει την Νιοστή είσοδο στην λίστα θεωρώντας την αρχή της λίστας ως το μηδέν στοιχείο. Το -Ν εμφανίζει την Νιοστή είσοδο στη λίστα θεωρώντας το τέλος της λίστας ως το μηδέν στοιχείο.

  • popd : popd [+N|-N] [-n]

    Αφαιρεί εισόδους από τον σωρό καταλόγων. Χωρίς ορίσματα αφαιρεί τον πρώτο κατάλογο από τον σώρο και αλλάζει τον τρέχων κατάλογο σε αυτόν.

    To +N αφαιρεί τον Νιοστό κατάλογο της σωρού, θεωρώντας την αρχή του σωρού ως το μηδέν στοιχείο. Το -Ν αφαιρεί τον Νιοστό κατάλογο της σωρού, θεωρώντας το τέλος του σωρού ως το μηδέν στοιχείο.

    To όρισμα -n αποτρέπει την αλλάγη του καταλόγου σε αυτόν που αφαιρέθηκε απο τον σωρό, αλλά τον αφαίρει από το λίστα.
    Η λίστα αυτή είναι ορατή με την εντόλη dirs

  • pushd : pushd [dir|+N|-N] [-n]

    Προσθέτει έναν κατάλογο στην κορυφή του σωρού των καταλόγων, ή μεταθέτει τον σώρο ώστε να αλλάξει την κορύφη του στον τρέχων κατάλογο. Χώρις ορίσματα αλλάζει θέσεις στους δύο πρώτους καταλόγους.

    Το +Ν αλλάζει την θέση στα στοιχεία του σωρού, ώστε ο Νιοστος κατάλογος από αρίστερα να είναι στην κορυφή. Το -Ν αλλάζει την θέση στα στοιχεία του σωρού, ώστε ο Νιοστος κατάλογος από δεξία να είναι στην κορυφή.

    Το όρισμα -n προκαλεί την μη αλλάγη καταλόγου όταν προσθέτουμε στοιχεία στον σωρό καταλόγων.

    Αν βαλούμε για όρισμα ένα κατάλογο προσθέτει τον κατάλογο στην κορύφη του σωρού και το κάνει τρέχων.
    Η λίστα με τα στοιχεία του σωρού είναι ορατή με την εντόλη dirs

    Παραδείγματα:

        $pwd
    /home/user/
    $pushd tmp
    $pwd
    /home/user/tmp/
    $cd /mnt
    $dirs
    ~tmp
    $dirs -l
    /home/user/tmp
    $pwd
    /mnt/
    $popd
    $pwd
    /home/user/tmp

Για να δούμε τα περιεχόμενα των φακέλων ---> εντολή ls

H ls είναι εξωτερίκη εντόλη και σκοπός της είναι να τυπώσει πληροφορίες σχετίκα με τα αρχεία. Οπως βλεπετε εχει αρκετα ορισματα:

  -a, --all                  εμφάνιση και των κρυφών αρχείων (κρύφα είναι τα αρχεία που αρχίζουν με .)
-A, --almost-all εμφανίση και των κρυφών αρχείων αλλα οχι των καταλόγων . και ..
-b, --escape εκτύπωση των οκταδικών κωδικών για τους μη εκτυπώσιμους χαρακτήρες
--block-size=Ν χρήση blocks μεγέθους Ν Bytes
-B, --ignore-backups Μην εμφανίσεις αρχεία που τελείωνουν με ~
-c με το -lt: ταξινόμησε κάτα, και δείξε, την ώρα που αλλάξε για τελευταία φορά το αρχείο.
με το -l: δείξε την ώρα που άλλαξε το αρχείο αλλά ταξινόμησε κατά όνομα
αλλίως: ταξινόμησε σύμφωνα με την ώρα που άλλαξε για τελευταία φορά το αρχείο
-C Δείξε τα αρχεία κάτα στήλες
--color[=Πότε?] Έλεγχος για το αν θα εμφανιστεί χρώμα για διαφορετικούς τύπούς αρχείων
Το Πότε? μπορεί να είναι `never'(ποτέ), `always'(πάντα), ή `auto'(αυτόματα)
-d, --directory Λίστα με τους κατάλογους αντί τα περιεχόμενα
-D, --dired Δημιούργησε έξοδο ειδική για Emacs' dired mode
-f Μην ταξινομήσεις, ενεργοποίησε -aU, απενεργοποίησε -lst
-F, --classify κατέταξε (με κάτι από τα */=@|) τα αρχεία
--format=ΛΕΞΗ οπου ΛΕΞΗ: across -x, commas -m, horizontal -x, long -l,
single-column -1, verbose -l, vertical -C
--full-time Δείξε την πλήρη ώρα και ημερομηνία
-g (αγνοείται)
-G, --no-group Μη δείξεις πληροφορίες για το group
-h, --human-readable Τύπωσε τα νούμερα σε ΚΒ,ΜΒ,GB,TB ... (πχ 1K 234M 2G)
--si ομοίως αλλά με δυνάμεις του 1000 και όχι του 1024
-H ίδιο με το `--si' για τώρα όμως σύντομα θα αλλάξει για να ικανοποιήσει το POSIX
--indicator-style=ΛΕΞΗ Βάλε δείκτη με στυλ τη ΛΕΞΗ στα ονόματα:
none (προεπιλογή), classify (-F), file-type (-p)
-i, --inode Τυπώσε των δείκτη κόμβου για κάθε αρχείο
-I, --ignore=Σχεδιο Μη τυπώσεις τα αρχεία που ακολουθούν το "Σχεδίο".
-k, --kilobytes οπώς --block-size=1024
-l Τύπωσε αναλυτικό κατάλογο
-L, --dereference Τύπωσε τα αρχεία με το συμβολίκο τους σύνδεσμο
-m Γεμίσε το πλάτος με είσοδους χωριζόμενες με ,
-n, --numeric-uid-gid Τυπώσε τα νουμερα UID και GID αντι για ονόμα χρήστη και ομάδα
-N, --literal Τύπωσε τα ονόματα αρχείων ως έχουν (μη χειριστείς πχ τους χαρακτηρες ^ διαφορετικά)
-o Τύπωσε αναλυτικό κατάλογο αλλά χωρις πληροφορίες για την ομάδα
-p, --file-type κατέταξε (με κάτι από τα */=@|) τα αρχεία
-q, --hide-control-chars τύπωσε ? αντι για μη τυπώσιμους χαρακτήρες
--show-control-chars δείξε τους μη γραφικούς χαρακτήρες ως έχουν (προεπιλεγμένο)
-Q, --quote-name Βαλέ τα ονόματα σε "
--quoting-style=ΛΕΞΗ χρησιμοποίησε για στυλ τη ΛΕΞΗ για τα όνοματα:
literal, locale, shell, shell-always, c, escape
-r, --reverse Ανάστρεψε τη σείρα ταξινόμησης
-R, --recursive Δείξε τους υποκαταλόγους αναδρομίκα
-s, --size Τύπωσε το μέγεθος των αρχέιών σε Blocks
-S Ταξινόμησε κατα μέγεθος αρχείου,
--sort=ΛΕΞΗ κατά τυπο ΛΕΞΗ extension -X, none -U, size -S, time -t, version -v
status -c, time -t, atime -u, access -u, use -u
--time=ΛΕΞΗ Δείξε την ωρα βαση της ΛΕΞΗ αντί της ώρας αλλάγης:
atime, access, use, ctime ή status; χρησιμοποίσε
την δωσμένη ώρα ως κλειδί ταξινόμησης αν --sort=ΩΡΑ
-t Ταξινόμησε βάση της ώρας που άλλαξε το αρχείο
-T, --tabsize=ΣΤΗΛΕΣ Τα διαστήματα όσα οι ΣΤΗΛΕΣ και όχι 8
-u με -lt: ταξίνομησε κατά, και δείξε, την ώρα πρόσβασης
με -l: δείξε την ώρα πρόσβασης και ταξίνομησε κάτα όνομα
αλλίως: ταξινόμησε κάτα ώρα πρόσβασης
-U μη ταξινομήσεις; τύπωσε απλά τα αρχεία
-v ταξινόμηση κατά έκδοση
-w, --width=ΣΤΗΛΕΣ Θεώρησε οτι η οθόνη έχει πλατός ΣΤΗΛΕΣ αντι για το προεπιλεγμένο
-x Δείξε τα αρχεία κατά γραμμές αντί για στήλες
-X Ταξινομήσε αλφαβητίκα βάση προέκτασης
-1 Δείξε ένα αρχείο κατά γραμμή
--help η λίστα με τις παραμέτρους (στα αγγλίκα βέβαια)
--version Τυπωσε την εκδοση του ls

Η εντολή ls εχεί μεγάλη ευελιξία, και η έξοδος της αλλάζει ανάλογα με τον συνδιασμό ορισμάτων που θα χρησιμοποιήσουμε. Ας δούμε μερικα παραδείγματα χρήσης της ls:

$ls

financial analysis/ jeniffer.jpeg journal@ personal data/ tmp/


$ls -l

total 8
drwxrwxr-x 2 spyros spyros 1024 Jan 7 11:53 financial analysis/
-rw-rw-r-- 1 spyros spyros 4508 Jan 1 2001 jeniffer.jpeg
lrwxrwxrwx 1 spyros spyros 24 Oct 16 2000 journal -> personal data/my journal
drwxrwxr-x 2 spyros spyros 1024 Jan 11 12:01 personal data/
drwx------ 2 spyros spyros 1024 Jan 11 12:02 tmp/

$ls -la

total 18
drwx------ 5 spyros spyros 1024 Jan 11 12:01 ./
drwxr-xr-x 4 root root 1024 Dec 7 15:55 ../
-rw-r--r-- 1 spyros spyros 24 Dec 7 15:55 .bash_logout
-rw-r--r-- 1 spyros spyros 191 Dec 7 15:55 .bash_profile
-rw-r--r-- 1 spyros spyros 124 Dec 7 15:55 .bashrc
drwxrwxr-x 2 spyros spyros 1024 Jan 7 11:53 financial analysis/
-rw-rw-r-- 1 spyros spyros 4508 Jan 1 2001 jeniffer.jpeg
lrwxrwxrwx 1 spyros spyros 24 Oct 16 2000 journal -> personal data/my journal
-rw-r--r-- 1 spyros spyros 141 Dec 7 15:55 .mailcap
drwxrwxr-x 2 spyros spyros 1024 Jan 11 12:01 personal data/
-rw-r--r-- 1 spyros spyros 3511 Dec 7 15:55 .screenrc
drwx------ 2 spyros spyros 1024 Jan 11 12:02 tmp/

$ls -Rl

.:
total 8
drwxrwxr-x 2 spyros spyros 1024 Jan 11 11:53 financial analysis/
-rw-rw-r-- 1 spyros spyros 4508 Jan 1 2001 jeniffer.jpeg
lrwxrwxrwx 1 spyros spyros 24 Oct 16 2000 journal -> personal data/my journal
drwxrwxr-x 2 spyros spyros 1024 Jan 11 12:01 personal data/
drwx------ 2 spyros spyros 1024 Jan 11 12:02 tmp/

./financial analysis:
total 0

./personal data:
total 1
-rw-rw-r-- 1 spyros spyros 222 Oct 16 2000 my journal

./tmp:
total 2
-rw-rw-r-- 1 spyros users 1280 Mar 12 1994 list

Ας εξηγήσουμε όμως τι σημαίνει καθε στοιχείο σε μια γραμμή του καταλόγου:

(Τμήμα 1) (Τμήμα 2) (Τμήμα 3) (Τμήμα 4) (Τμήμα 5) (Τμήμα 6)
-rw-rw-r-- 1 spyros users 1280 Mar 12 1994 list


Τμήμα 2: Το όνομα του χρήστη στον οποίο ανήκει το αρχείο.

Τμήμα 3: Το όνομα της ομάδας χρήστων που ανήκει το αρχείο.

Τμήμα 1: Τα δικαίωματα χρήσης του αρχείου.

A B C
-rwx rwx rwx

To r σημαίνει δικαίωμα ανάγνωσης, το w δικαίωμα εγγραφής και το x δικαίωμα εκτέλεσης.
Η περίοχη Α δείχνει τα δικαιώματα του χρήστη, η περιοχή Β τα δικαίωματα της ομάδας, και
η περιοχή C τα δικαίωματα ολών των αλλών πάνω στο αρχείο αυτό.

Έτσι στο παραδείγμα μας, το -rw-rw-r-- σημαίνει οτι ο χρήστης spyros που του ανήκει το
αρχείο μπορεί να το διαβάσει και να γράψει σε αυτό. Οι χρήστες στην ίδια όμαδα με αυτόν
οι users, μπορούν να διαβάσουν το αρχείο και να γράψουν σε αυτό, Ενώ όλοι οι υπολοίποι
χρήστες μπορούν μόνο να το διαβάσουν.

Τμήμα 4: Το μέγεθος του αρχείου σε bytes.

Τμήμα 5: Η ημερομήνια που άλλαξε για τελευταία φορά το αρχείο.

Τμήμα 6: Το όνομα του αρχείου.

Στο επομενο μαθημα θα συνεχισουμε με τις εντολες για εργασια στο συστημα αρχειων...

Keywords: Linux Commands, Terminal, Shell, Commands, Syntax, Tips n Tricks, Terminal Series,
permissions, ls, pwd, dirs, cd, popd, pushd