Sunteți pe pagina 1din 13

La baz este !

Curs UNIX de la Popescu STC

! LINUX Command line Shotts.pdf
C n Linux
PROGRAMARE C nu CPP Linux IBM compiler.pdf


Change current directory


Change the owner of a file (limited user)


Change the access limitations of a file


Change the owner of a file


Get the checksum of a file


Copy a file from one place to another


Calculate the disk free space


Calculate the disk usage


Display enviroment variables


Determine the file type


Shows which processes are using a specified file


List files

Create a directory

Show the current directory


Delete files/folders

Delete an empty directory


Displays the uptime for the server

Programele centrale kernel, programele de comunicar cu util, shell.
alias, pot redenumi o comand
Program care ruleaz n foregrand: se oprete pe durata fiului.

Cale absolut: ncepe cu / ex /d/user1/tom/keep

Director curent . director printe ..
subdirector ./alfa
home directory ~ (nu toate shell-urile)
case sensitive
Variabile locale aparin doar shell/ului curent, nu se trec la alte proc
litere mici
Variabilele globale se trec de la printe la fiu, dar nu de la fiu la printe litere mari
home directory (HOME), the path (PATH), the current directory (PWD),
the shell (SHELL), and the terminal type (TERM).
Cutarea n PATH. Se caut n ordinea: alias (porecled date comenzilor) comenzi
incluse n UNIX PATH. Dac se indic o cale, nu se mai folosete path.
comand opiuni argumente
CTRL-U cancel comand
Pot fi mai multe comenzi pe linie, separate de ;
Comanda se continu cu \
Dup #, comentarii
Comand n background = comand &
comand > fisier
append: comand >> fisier
pipeline comand1 | comand2
<fisiere, redirectare sa se preia comenzie nu de la input, ci din fiier
Pentru ca s se indice n script s se preia intrrile din acel script se folosete
terminatorul <<terminator
comand <<EOD
Aici este textul care trebuie interpretat de comand
If terminatorul is preceded by a backslash (\) this has a special meaning: variables
beginning with $ in the input data are not treated as shell variables.
man k cuvnt
info, uneori

caut helpurile care conin cuvntul

Controlul proceselor i a ecranului

Stty poate schimba funciile apelate cu ctrl.
Se afl funciile cu stty a

Ctrl-c Kill foreground process

Ctrl-z Suspend foreground process
Ctrl-d Terminate input, or exit shell

Suspend output

Ctrl-q Resume output

Ctrl-o Discard output


Clear screen

TAB completeaz comanda

CTRL-D listeaz fiierele cu nume asemntor




Redirect standard input from file


Redirect standard input from command source


Redirect standard output to file


Redirect standard output and overwrite file


Redirect standard output and append to file


Redirect standard output to file or append to file


Redirect standard output/error to file


Redirect standard output/error and append to file


Redirect standard output/error to file or append to file

Pipe standard output to standard input


Pipe standard output/error to standard input


Replace command with its output

Comenzi echivalemte MS-DOS

DOS command

Unix command


help []

man [] {}

Provide information about command

chkdsk []

df []

Show disk space

dir/w []

ls []

Wide directory listing

dir []

ll []

Long directory listing

dir/o:-d []

ll -t []

Ditto in reverse creation order

dir/s []

ll -R []

Recursive long listing

dir/p/s []

ll -R [] | more

Ditto with pausing



Show current directory

cd {}

cd {}

Change directory

cd ..

cd ..

Change to parent directory

cd \


Change to home directory

md {}

mkdir {}

Create empty directory

rd {}

rmdir {}

Delete empty directory

type {}

cat [] []

List file(s)

type {} | more

more {} []

Ditto with pausing

tv {}

less {} []


copy {} {}

cp {} {}

Copy file

rename {} {}

mv {} {}

Rename file

move {} {}

mv {} {}

Move file

sort {}

sort {}

Sort file

edit {}

emacs {}&

Edit file

del {}

rm {} []

Delete file(s)

del/p {}

rm -i {} []

Ditto with confirmation

deltree {}

rm -r {}

Recursive delete directory

pkzip {}

gzip {}

Compress file(s)

pkunzip {}

gunzip {}

Decompress file(s)

msbackup []

tar cv .

Make backup

msbackup []

tar xv

Restore from backup

attrib {} {}

chmod {} {}

Change file attribute(s)

fc {} {}

diff {} {}

List file differences

find "{}" {}

grep {} {}

Search file(s) for character(s)

print {}

lpr -P{} []

Print file


lpq -P{}

List printer queue


lprm -P{} {}

Delete print job



Show command history

doskey {}={}

alias {} {}

Create command alias



Show local variables

set {}={}

set {}={}

Set local variable


echo $PATH

Show executable path

path {}

setenv PATH {}

Set executable path

for {} {}

foreach {} {}

Loop command


tcsh []

Start child shell

{} []

{} []

Run program or script

rem []

# []

Use comment in script

echo {}

echo {}

Display message in script

if {} {}

if {} {}

Conditional command

goto {}

goto {}

Jump to label in script



Clear screen



Kill foreground process



Signal end of input



Suspend output to screen



Resume output to screen


exit []

Exit from script or shell

Comenzi pentru fiiere file

Unix command


du []

Show disk usage

ln {} {}

Create directory entry (hard link)

ln -s {} {}

Create soft link to file

file {}

Show type of file

which {}

Locate executable file in path

touch {}

Create empty file or change file access time

tee {}

Copy standard input to file and standard output

wc {}

Show file length

head []

List top lines of file

tail []

List bottom lines of file

fgrep {} []

Search file(s) for fixed string

egrep {} []

Search file(s) for extended regular expression

find {} []

Multiple file commands

cut []

Extract columns from file

sed {} []

Edit file in stream mode

awk {} []

Process column data

fold []

Fold long lines in file

paste []

Merge lines of files

zcat []

List compressed file

dd {} {}

Convert file format

od {}

Dump file

nl []

Number lines in file

source {}

Read commands from file

Controlul proceselor

Unix command



Change password


Show or set terminal characteristics


Show or set key bindings


Show memory allocation


Show process limits

limit {} {}

Change process limit

umask {}

Change permission for new files

xargs {} []

Execute command with passed arguments

tr {} {}

Translate character(s)


Show global variables

setenv {} {}

Set global variable

unset {}

Unset local variable

unsetenv {}

Unset global variable

echo ${}

Show value of variable

nice {} []

Run command at low priority

renice {} {}

Reduce priority of command


Suspend foreground process


List background jobs

ps []

Show process status

bg []

Put job in background

fg []

Put job in foreground

stop {}

Suspend background process or job

kill {}

Signal or kill process or job

batch [] []

Submit command script to batch queue

List logged-in users

sleep []

Wait for time interval

time []

Time a command

while {}

Conditionally execute loop


Terminate current session


Unix command


finger []

List user information

talk []

Exchange messages with other user


Use e-mail

ftp []

Transfer file(s) via network

telnet []

Remote login via network

rlogin []


rsh {} []

Remote shell command via network

rcp {} {}

Copy file(s) via network

Programare: FORTRAN, C, PEARL

ci {}

Check file into revision control

co {}

Check file out of revision control

make []

Update program

f77 {}

Compile Fortran 77 program

fsplit {} Split Fortran source into subroutines

cc {}

Compile C program

c++ {}

Compile C++ program

perl {}

Compile and run Perl program

Unix command



Show today's date


Show calendar


Evaluate arithmetic expression(s)

EMACS = editoare de text

Emacs command

Get online help (e.g. Ctrl-h t for tutorial)

Ctrl-x Ctrl-f

Open file in new buffer

Ctrl-x Ctrl-s

Save active buffer to existing file

Ctrl-x Ctrl-w

Save active buffer to specified file

Ctrl-x s

Prompt to save changed buffers to their files

Ctrl-x i

Insert another file

Ctrl-x Ctrl-b

List all buffers

Ctrl-x b

Select specified buffer

Ctrl-x k

Kill specified buffer

vi, editor de text

Vi command


:set nu

Show line numbers

:set ic

Ignore case differences when searching

:set ai

Set automatic indent

:set sm

Show matching ( or { with ) or } in insert mode

Up/down arrow

Move up/down 1 line

Left/right arrow

Move left/right 1 character column

0 $

Go to 1st/last column of current line


Go down to 1st printable character of next line

nw nb

Move right/left n words (1 word if n omitted)


Go to line n (end of file if n omitted)

Ctrl-f Ctrl-b

Page forward/backward 1 screen

Ctrl-d Ctrl-u

Page forward/backward half a screen

[[ ]]

Go to beginning of current/next C function


Search forwards for expression


Search backwards for expression

n N

Repeat last / or ? command in same/reverse direction


Copy (yank) text up to target to buffer

Copy current line to buffer


Insert text before cursor


Open new line below cursor and insert text

Replace character under cursor with next typed


Replace text


In insert mode, delete character before cursor

x X

Delete character under/before cursor


Delete n characters under and to right of cursor


Delete n characters before cursor


Delete current line


Delete n lines

Delete from cursor to end of line

p P

Put back yanked or deleted text below/above current line

Join current and next lines

:m,n s/old/new/gc

Global replace (g=every occurrence on line, c=prompt)

m=. means from current position, n=$ means to EOF

Undo last change


Quit, provided no changes were made


Quit without saving


Save (write) changes

:m,n w file

Save lines m through n (default=all) to file


Save changes and quit

# Set variable P to the PDB data directory.
setenv P /public/pdb/data # Do this once for each instance of the shell.

6.1. emacs exercise.

# First copy a file: note the "." at the end!
cp $P/pdb6lyz.pdb . Punctul indic directorul current. Observ c a
concatenate calea cu fiierul.
# ... and the character after "6" is an ell not a one.
# Set mode to write:
chmod +w pdb6lyz.pdb # Don't forget to use filename completion.
# Define display for X application (once per shell):
setenv DISPLAY lundynn:0
# Edit the file in background; note the ampersand (&):
emacs pdb6lyz.pdb&
# You'll find it easier if you make your shell and Emacs windows wider.

Comanda yum = instaleaz i updateaz

/* demo.c: My first C program on a Linux */
int main(void)
printf("Hello! This is a test prgoram.\n");
return 0;
cc program-source-code.c -o executable-file-name
g++ demo2.C -o demo2
## or use the following syntax ##
make demo2

Lucrarea 3: sincronizare prin semnale

semnale: situaii neprevzute, mai rar comunicare
nu conine informaie util, conteaz doar tipul.
Procesul care primete semnalul nu tie de la cine l-a primit
Semnalul este o ntrereupere soft. Luarea lui n seam poate fi amnat de procesul
Semnale: erori, evenimente externe, cereri explicite (kill())

Lucrarea nr. 4 Canale pipe fara nume (anonime)

canale de comunicaie, conducte, pipe
Canale unidirecionale, bidirecionale
List ordonat cu utilizatorii cu sesiuni de lucru deschise
who | sort | pr

Pipe prin programare

Se creaz un pipe cu descriptor de fiier pentru citire i scriere.
La el au acces printele i fiul. Deobicei este pentru comunicarea printe-fiu. Dou
fiiere deja create nu pot comunica prin pipe.
SE descriu tehnici de evitarea a blocrilor
O conduct >= 4ko
Descriptorii de fiier se pot duplica sau renoi cu dup() i dup2(). n urma acestor
funcii read() i close() funcioneaz altfel.
n loc de a se comunica printr-un pipe bidirecional, mai bine se folosesc dou pipe
Exemplu de comunicare cu blocarea comunicrii deoarece nu este sincronizare.
printele trimite fiului un tabel neordonat i acela l sorteaz i trimite la printe.
Blocarea apare c printele ncepe imediat s citeasc dei fiul nici nu a nceput
Soluiile mele:
1) fiul trimite o variabil de stare care este poziionat pe GATA abia dup ce fiul
i-a ndeplinit sarcina
2) folossc un alt pipe special pentru a indica disponibilitatea fiului.
3) se trimite un semnal

Lucrarea nr. 5 Canale de comunicatii cu nume,

Cnd se scrie n FIFO se iese din apel doar cnd cellalt a citit.
Pot fi folosite ntre procese ce nu sunt printe-descendent, caz n care se folosesc ca

Funcia principal este ns de implementare a mesajelor

mesaje.h arat sctructura mesajului
send i receive le prelucreaz cu un protocol FIFO
Mesajele sunt trimise la o coad de mesaje i sunt recepionate de la o coad de

Lucrarea nr. 6 Modalitati IPC (comunicare interproces) in UNIX. Introducere

Mesaje, semafoare, yone de memorie partajate.
Unele versiuni pot s nu aib IPC
Dou procese independente nupot folosi aceeai cheie.
Mesajele pot fi extrase de mai muli, dar dac unul a citit, mesajul nu ajunge la
Se pot citi n orice ordine, nu obl FIFO.
Deci un proces cunoate chheia de acces, el poate intercepta mesajele.
Protecie slab contra hacker-ilor.
Aplicaie client-server

Lucrarea 7 Modalitati IPC. Semafoare

Ei lucreaz cu o generalizare a alg lui Dijakstra, cu vectori de semafoare.

Lucrarea 8 Modalitati IPC. Memorie partajata

Rezerv zon, o aloc procesului, dezaloc, o eliberez.

Lucrarea nr. 9 Programarea aplicatiilor TCP/IP in

Este un protocol n care mesajul este tiat i reasamblat n datagrame, buci.
1) nivele nalte
2) TCP
3) Internet IP
4) reea
Are interfee cu utilizatorul i IP
Porturile = adrese care permit mai multor procese s foloseasc TCP
Socket de comunicaie = IP reea i de host + port
Un socket poate fi folosit simultan n mai multe conexiuni.
Fereastr de conexiune = receptorul controleaz / filtreaz numerele pachetelor
Conexiune = socket + mrimea ferestrei + numeere de secvena.