Unix - מושגי יסוד - brd4.braude.ac.il

Transcription

Unix - מושגי יסוד - brd4.braude.ac.il
‫ מושגי יסוד‬- Unix
:‫ פירוט‬
*
?
"
\
.
..
&
matches any string
matches any character
quotation
canceles special characters
the current directory (soft link)
the parent directory (soft link)
run command in the background
‫ מושגי יסוד‬-
Unix
‫ פקודות שימושיות וסימנים מיוחדים‬.1
:Unix ‫ רשימת פקודות בסיסיות לעבודה ראשונית במערכת‬
‫ דוגמאות‬
cp /etc/passwd "The password file"
cp /etc/passwd \*.\?
ls -l /etc | more
ls -s /usr/bin | less
ls -s /usr/bin | sort | less
ls -l > file &
ls -l /tmp | grep dany
cat /etc/passwd | grep u3203903
grep u3203903 /etc/passwd
man ls
man man
cat file1 file2 file3 > file4 &
cd
cp
mv
mkdir
rm
rmdir
rm -r
rm -i
ls -aCF
pwd
cat
more
less
grep
man
-
change directory
copy
move
make directory
remove file/dir
remove an empty directory
remove recursively
interactiv remove
list all files in columns
print working directory
display file
display file by pages
display file by pages (page-up)
get regular expression
manual pages
command > file
command < file
Special Characters: *
?
"
\
| .
- 2 -
- 1 -
‫ מושגי יסוד‬- Unix
‫ מושגי יסוד‬- Unix
&
‫ קבלת עזרה‬.2
‫ דוגמאות‬
man 1 mkdir
man mkdir
man 2 mkdir
=> There is a system call mkdir!
man grep
man 5 passwd
=> information on the file /etc/passwd
man passwd
=> information about the command passwd
man -k password
=> All commands related to password
..
:‫ מתחלקים לשמונה פרקים‬Unix ‫ דפי עזרה של‬
‫ פקודות משתמש ברמת מעבד הפקודות‬.1
C ‫( מתוך ספריות‬system calls) ‫תוכניות מערכת‬
C ‫פונקציות נוספות מתוך ספריות‬
\special les" ‫התקנים ודרייברים‬
.2
.3
.4
‫ תאור סוגי קבצים‬.5
‫ משחקים‬.6
‫ שונות‬.7
:‫ אינפורמציה נוספת ניתן למצוא בספריות‬
/usr/doc
/usr/doc/HOWTO
/usr/doc/HTML
/usr/doc/FAQ
/usr/info
‫ תוכניות לתחזוק המערכת ומידע‬.8
:‫ בדרך כלל ממוקמים בספריות‬
‫ לשם הצגת‬xman ‫ קיימת הפקודה‬X windows ‫ בסביבת החלונות‬
‫ בסביבה זו ניתן‬.‫דפי העזרה בצורה גרפית ויותר נוחה לדיפדוף‬
‫ יש‬.‫ בכדי לדפדף בדפי העזרה‬Netscape ‫גם להשתמש בתוכנת‬
./usr/doc/HTML/index.html ‫להתחיל במסמך‬
.rtfm.mit.edu ‫ מאגר גדול של דפי עזרה ניתן למצוא באתר‬
- 4 -
/usr/man/man1
/usr/man/man2
/usr/man/man3
....
/usr/man/man8
.1 ‫ היא פרק‬man ‫ ברירת המחדל של הפקודה‬
man -k keyword
- 3 -
:‫ חיפוש על פי מילת מפתח‬
‫ מושגי יסוד‬- Unix
:ps
USER
root
root
root
root
root
root
root
dany
dany
dany
dany
miki
miki
miki
miki
auw
PID %CPU %MEM SIZE
222 0.0 2.5 1440
230 0.0 3.0 1316
240 0.0 1.9 1120
319 0.0 3.8 2048
329 0.0 5.2 2408
330 0.0 3.1 1320
1329 0.0 1.5
820
446 0.0 2.5 1444
447 0.0 2.4 1160
1211 0.0 2.5 1168
1370 0.8 30.6 10160
1398 0.0 2.5 1428
1399 0.1 2.5 1184
1437 1.1 4.7 2312
1440 11.8 28.8 10096
‫ מושגי יסוד‬- Unix
RSS TTY STAT START
776
1 S
18:44
928
1 S
18:53
612
1 S
18:53
1180
1 S
18:53
1620
1 S
18:54
972 p1 S
18:54
488 p1 R
23:34
784 p4 S
19:15
772 p4 S
19:15
776 p5 S
22:41
9488 p5 T
00:25
780 p8 S
00:31
792 p8 S
00:31
1480 p8 S
00:40
8920 p8 S
00:42
TIME COMMAND
0:00 /bin/login
0:00 -zsh
0:00 startx
0:01 control-panel
0:00 xterm
0:00 zsh
0:00 ps auw
0:00 login
0:00 -bash
0:00 vi file.txt
0:00 gnuchessx
0:00 /bin/login
0:00 -bash
0:00 xcalc
0:00 gnuchessx
:‫ הסברים‬
PID
CPU
SIZE
RSS
TTY
STAT
S
T
R
Z
‫ תהליכים‬.3
‫ דוגמא )מקוצרת( לפלט של הפקודה‬
- process identity number
- central procecessing unit time
- size of text+data+stack
- kilobytes of program in memory
- controling terminal (teletype)
- status of the process:
sleeping
stopped
running (or ready to run)
zombie
.‫ ניתן לתאר את כל הפעילות של המערכת במונחים של תהליכים‬
‫ ומספר תהליכים‬,‫ הגרעין של המערכת‬:‫ קיימים תהליכי המערכת‬
.‫ ופעולה שוטפת של המערכת‬,‫קבועים לטיפול בדואר תיקשורת‬
‫ כל תהליך‬.‫זמנית‬-‫ כל משתמש יכול להריץ מספר תהליכים בו‬
‫שנוצר בדרך זו עשוי להוליד תהליכים נוספים )ילדים( במהלך‬
.‫פעולתו‬
‫ תהליכי מערכת ההפעלה שייכים‬.‫ כל תהליך שייך למשתמש מסוים‬
.root -‫ל‬
‫ כל משתמש יכול להציג על המסך את רשימת התהליכים השייכים‬
.ps ‫לו באמצעות הפקודה‬
ps
ps a
ps au
ps auw
-
list my processes
list processes of all users
list all processes in user format
as above in wide format
- 6 -
- 5 -
‫ מושגי יסוד‬- Unix
‫ מושגי יסוד‬- Unix
‫ יש‬,‫ במידה ותהליך מסוים נתקע ואינו משחרר את המסך‬:‫ הערה‬
‫צורך להתחבר לחשבון דרך מסך אחר ומשם לסיים את התהליך‬
.‫התקוע‬
‫ וערוך‬,\ps auxw" ‫ הפעל את הפקודה‬,‫ כנס למערכת‬:‫ תרגיל‬
‫ על ידי שימוש‬.root - ‫רשימה מלאה של כל התהליכים השייכים ל‬
‫ נסה להבין בערך מהם התפקידים של כל התהליכים‬man ‫בפקודה‬
.‫האלה‬
(signals) ‫ סיגנלים‬
‫ ניתן לשלוח אליהם סיגנלים בכדי ליידע‬,‫בכדי לשלוט על תהליכים‬
.‫אותם לגבי התרחשות אירועים מיוחדים או לבקש אותם לסיים‬
.kill ‫למעשה זוהי המטרה העיקרית של הפקודה‬
:‫ דוגמא‬
~> ps
PID TTY STAT TIME COMMAND
398 p5 S
0:00 /bin/login -h localhost -p
399 p5 S
0:00 -bash
450 p6 S
0:00 bash
497 p5 S
0:00 vi targil.text
499 p6 S
0:00 xboard
500 p6 S
0:00 gnuchessx 40 5
502 p6 R
0:00 ps
~> kill -s SIGKILL 497
better to type
~> kill -s 9 497
kill ‫ סיום תהליכים באמצעות הפקודה‬
.‫כל משתמש יכול לסיים כל תהליך השייך לו בלבד‬
~/games> ps
PID TTY STAT
398 p5 S
399 p5 S
418 p6 S
420 p5 S
421 p5 R
436 p5 R
TIME COMMAND
0:00 /bin/login -h mail.netanya.ac.il
0:00 -bash
0:00 bash
0:00 xboard
4:12 gnuchessx 40 5
0:00 ps
~/games> kill 420
~/games> ps
PID TTY STAT
398 p5 S
399 p5 S
418 p6 S
444 p5 R
TIME COMMAND
0:00 /bin/login -h localhost -p
0:00 -bash
0:00 bash
0:00 ps
‫למרות שבקשנו רק את סיום‬
- 8 -
421 ‫ למה הסתיים תהליך‬:‫שאלה‬
?420 ‫תהליך‬
- 7 -
‫‪ - Unix‬מושגי יסוד‬
‫‪ - Unix‬מושגי יסוד‬
‫ טבלת סיגנלים נפוצים‬
‫‪Terminal hangup‬‬
‫‪Terminal interrupt‬‬
‫‪Terminal quit‬‬
‫‪Process killed‬‬
‫‪Broken pipe‬‬
‫‪Alarm clock interrupt‬‬
‫‪Software termination‬‬
‫‪continue job if stopped‬‬
‫‪interactive stop signal‬‬
‫‪SIGHUP‬‬
‫‪SIGINT‬‬
‫‪SIGQUIT‬‬
‫‪SIGKILL‬‬
‫‪SIGPIPE‬‬
‫‪SIGALARM‬‬
‫‪SIGTERM‬‬
‫‪SIGCONT‬‬
‫‪SIGSTP‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪9‬‬
‫‪13‬‬
‫‪14‬‬
‫‪15‬‬
‫‪23‬‬
‫‪25‬‬
‫ כל תהליך יגיב לסיגנלים הנשלחים אליו בהתאם לקוד התוכנית‬
‫שלו )‪ .(signal handlers‬מלבד ממקרים מיוחדים‪ ,‬תהליך עשוי‬
‫"לתפוס" את הסיגנל הנשלח אליו ולהתעלם ממנו‪ .‬שום תהליך‬
‫אינו יכול להתעלם מהסיגנל ‪) SIGKILL‬וגם ‪ .(SIGSTP‬לכן‬
‫סיגנל זה יכול לסיים כל תהליך המסרב להסתיים בצורה נורמלית‬
‫)‪.(SIGTERM‬‬
‫ קיימים בערך ‪ 30‬סיגנלים שונים‪.‬‬
‫ כל מעבד פקודות מודרני מספק למשתמש כלים לשם "בקרת‬
‫תהליכים" )‪ .(job control‬במעבד הפקודות ‪ bash‬למשל ניתן‬
‫לבצע את הדברים הבאים‪:‬‬
‫‪Control-Z‬‬
‫‪stop a job, keep it in the‬‬
‫‪background, and return to‬‬
‫‪the shell‬‬
‫‪continue the last stopped job‬‬
‫‪in the background‬‬
‫‪continue the n-th stopped job‬‬
‫‪in the background‬‬
‫‪bg‬‬
‫‪bg %n‬‬
‫‪return to the last stopped job‬‬
‫‪return to the n-th stopped job‬‬
‫‪fg‬‬
‫‪fg %n‬‬
‫‪list of all jobs that are running‬‬
‫‪in the background‬‬
‫‪jobs‬‬
‫ תרגיל‪ :‬השתמש בעורך הטקסט ‪ vi‬בכדי לערוך ‪ 5‬קבצים פשוטים‬
‫בו‪-‬זמנית‪ .‬על ידי שימוש בפקודות הנ"ל עבור מעריכה הקובץ‬
‫החמישי לקובץ השני‪.‬‬
‫‬
‫משתנים סביבתיים )‪(environment variables‬‬
‫{ לכל תהליך יש קבוצה של משתנים סביבתיים‪.‬‬
‫{ תהליכים מורישים את המשתנים הסביבתיים‬
‫שלהם‬
‫להתהליכים שהם יוצרים‪.‬‬
‫‪- 9 -‬‬
‫‪- 10 -‬‬
‫‪ - Unix‬מושגי יסוד‬
‫‪ - Unix‬מושגי יסוד‬
‫{‬
‫הפקודה ‪env‬‬
‫מעבד הפקודות ‪ ,bash‬למשל‪ ,‬הוא התהליך הראשון שמופעל‬
‫עבור המשתמש כאשר הוא נכנס למערכת והוא בעל קבוצה‬
‫חשובה של משתנים סביבתיים‪.‬‬
‫{‬
‫ניתן לקבל את רשימת המשתנים הסביבתיים הסטנדרטיים‬
‫של מעבד פקודות זה על ידי הפקודה ‪ env‬או ‪.printenv‬‬
‫‪~> env‬‬
‫‪ENV=/home/cs/stud97/u3203903/.bashrc‬‬
‫‪HISTSIZE=1000‬‬
‫‪HOSTNAME=mail.netanya.ac.il‬‬
‫‪LOGNAME=u3203903‬‬
‫‪HISTFILESIZE=1000‬‬
‫‪MAIL=/var/spool/mail/u3203903‬‬
‫‪TERM=xterm‬‬
‫‪HOSTTYPE=i686‬‬
‫‪PATH=/usr/local/bin:/bin:/usr/bin:.:/usr/X11R6/bin‬‬
‫‪HOME=/home/cs/stud97/u3203903‬‬
‫‪SHELL=/bin/bash‬‬
‫>‪PS1=\w‬‬
‫‪USER=u3203903‬‬
‫‪DISPLAY=mail.netanya.ac.il:0.0‬‬
‫‪OSTYPE=Linux‬‬
‫‪MM_CHARSET=ISO-8859-1‬‬
‫‪SHLVL=1‬‬
‫‪- 11 -‬‬
‫ משתנים אלה עוברים בירושה לכל תהליך שנוצר באמצעות מעבד‬
‫הפקודות‪.‬‬
‫ ניתן לקבל את התוכן של משתנה סביבתי על ידי הוספת התו ‪$‬‬
‫לפניו‪ .‬מעבד הפקודות יבצע קודם את החלפת המשתנה בתוכנו‪,‬‬
‫ורק לאחר מכן יפעיל את הפקודה שתתקבל כתוצאה מכך‪.‬‬
‫‪more $MAIL‬‬
‫‪- read your mail‬‬
‫‪echo $PATH‬‬
‫‪- see your path‬‬
‫‪PATH=$PATH:$HOME/bin‬‬
‫‪cp $MAIL mymail‬‬
‫‪grep -i "Yoram Cohen" $MAIL‬‬
‫‪- 12 -‬‬
‫>~‬
‫>~‬
‫>~‬
‫>~‬
‫>~‬
‫‪ - Unix‬מושגי יסוד‬
‫‪ - Unix‬מושגי יסוד‬
‫‪ .4‬מערכת הקבצים‬
‫‬
‫לקובץ במערכת ‪Unix‬‬
‫בתים )‪.(bytes‬‬
‫אין שום מבנה מיוחד‪ :‬קובץ הוא סדרת‬
‫ כל קובץ מיוצג במערכת על ידי מספר ‪ .index number -‬מנקודת‬
‫המבט של מערכת ההפעלה‪ ,‬המספר הזה הוא הנציג האמיתי של‬
‫הקובץ‪.‬‬
‫ ספריה היא קובץ מיוחד המכיל טבלה המקשרת בין שמות רגילים‬
‫של קבצים ובין מספריהם‪ .‬השמות הרגילים מיועדים עבור‬
‫במשתמשים‪ ,‬אך מערכת ההפעלה עצמה עובדת עם המספרים‬
‫שלהם‪.‬‬
‫‪Directory Contents‬‬
‫‪.‬‬
‫‪..‬‬
‫‪5826‬‬
‫‪7610‬‬
‫‪13093‬‬
‫‪raedme.txt‬‬
‫‪22703‬‬
‫‪targil8‬‬
‫‪8391‬‬
‫‪targil5‬‬
‫‪6326‬‬
‫‪mailbox‬‬
‫‪9273‬‬
‫‪dany.txt‬‬
‫‪12091‬‬
‫‪user1 has: /home/cs/stud97/user1/dir5/phones.txt‬‬
‫‪user2:‬‬
‫‪~> ln ~user1/dir5/phones.txt mycopy.txt‬‬
‫‪Now user2 has a link to ~user1/dir5/phones.txt‬‬
‫!‪This file has one index number, but two names‬‬
‫ ישנם כמה סוגי קבצים‪:‬‬
‫א‪ .‬קבצים רגילים ‪regular les -‬‬
‫ב‪ .‬ספריות ‪directories -‬‬
‫ג‪ .‬קבצים מיוחדים ‪,fo special les ,device special les -‬‬
‫‪sockets‬‬
‫ שם קבץ יכול להיות מורכב מלכל היותר ‪ 255‬תווים‪ .‬התו ‪ /‬אינו‬
‫יכול להופיע בשם קובץ‪ .‬תוים נוספים עשויים להיות בעייתיים‬
‫מאחר שמעבד הפקודות מפרש אותם בצורה מיוחדת‪ .‬קיימת‬
‫הבחנה בין אותיות אנגליות גדולות לקטנות‪.‬‬
‫ נקודה בתחילת שם קובץ הופכת אותו לקובץ נסתר‪ .‬בכדי להציג‬
‫את רשימת כל הקבצים‪ ,‬כולל הקבצים הנסתרים‪ ,‬יש להשתמש‬
‫בפקודה ‪.ls -a‬‬
‫‪dir2‬‬
‫‪2174‬‬
‫ לאותו הקובץ עשויים להיות כמה שמות שונים‪ .‬למשל שני‬
‫משתמשים שונים יכולים להיות שותפים לאותו הקובץ‪:‬‬
‫ תרגיל‪ :‬בדוק מה הם הקבצים הנסתרים בספריית הבית שלך ומהו‬
‫תוכנם?‬
‫‪directory8‬‬
‫‪- 13 -‬‬
‫‪- 14 -‬‬
‫‪ - Unix‬מושגי יסוד‬
‫‪ - Unix‬מושגי יסוד‬
‫ מסלולים אבסולוטיים ומסלולים יחסיים‪ :‬לכל תהליך במערכת‬
‫‪ Unix‬יש ספריית עבודה נוכחית אשר בה הוא מתבצע‪ .‬ניתן לציין‬
‫מסלולי קבצים יחסית לספריה זו או באופן אבסולוטי‪.‬‬
‫ קישור סימבולי הוא קובץ אשר תוכנו הוא מסלול של קובץ או‬
‫ספריה‪ .‬הקובץ המקושר עשוי להשתייך למערכת קבצים שונה‪.‬‬
‫ניתן לזהות קישורים סימבוליים על ידי הפקודה ‪.ls -l‬‬
‫ עץ הקבצים של ‪ Unix‬עשוי להיות מורכב מכמה מערכות קבצים‬
‫שונות השוכנות בהתקנים שונים ‪ -‬דיסקים קשיחים נפרדים‪,‬‬
‫‪ ,cdrom‬מחיצות שונות של אותו דיסק קשיח‪ ,‬ואפילו דיסקטים‪.‬‬
‫ הנתונים של הקובץ נשמרים בדיסק כסדרה של בלוקים )מספר‬
‫שלם של יחידות דיסק(‪ .‬גודל טיפוסי של בלוק הוא ‪ 4096‬בתים‪.‬‬
‫סדרת הבלוקים אינה חייבת להיות רציפה על הדיסק‪ ,‬ובדרך כלל‬
‫קבצים עשויים להתפזר בצורה אקראית על הדיסק‪.‬‬
‫ סידור כזה נוח למטרות אדמיניסטרציה‪ .‬למשל‪ ,‬על מחיצה אחת‬
‫ניתן להתקין את כל תוכניות המשתמשים‪ ,‬על מחיצה שניה את‬
‫כל חשבונות המשתמשים‪ ,‬וכו ‪ .‬מאוחר יותר ניתן לשדרג את‬
‫המערכת או לגבות את חשבונות המשתמשים ביתר נוחות‪.‬‬
‫‪0‬‬
‫ מערכות הקבצים יכולות להיות שונות גם מבחינת המבנה שלהן‪.‬‬
‫למשל‪ ,‬ניתן לשלב מחיצות של ‪ Dos‬או ‪ Win95‬בתוך עץ הקבצים‬
‫של ‪.Unix‬‬
‫‬
‫לא ניתן לבצע קישור )‪(link‬‬
‫בין קבצים השייכים לשתי מערכות‬
‫קבצים שונות‪.‬‬
‫‬
‫‬
‫‪~> ln -s /usr/doc/HTML info‬‬
‫‪~> ln /var/spool/mail/u3203903 MyMail‬‬
‫‪~> ls -l‬‬
‫‪total 16‬‬
‫‪1024 Mar 30 18:40 Exams‬‬
‫‪2 user32 602‬‬
‫‪drwx--x--x‬‬
‫‪2497 Mar 30 18:54 MyMail‬‬
‫‪2 user32 mail‬‬
‫‪-rw-rw----‬‬
‫‪247 Mar 30 16:48 file1‬‬
‫‪1 user32 602‬‬
‫‪-rw-r--r--‬‬
‫‪591 Mar 30 16:49 file2‬‬
‫‪1 user32 602‬‬
‫‪-rw-r--r--‬‬
‫‪1024 Mar 31 00:47 games‬‬
‫‪13 Mar 31 11:07 info -> /usr/doc/HTML‬‬
‫‪- 15 -‬‬
‫‪1 user32 602‬‬
‫‪~> cd info‬‬
‫בכדי לפתור בעייה זו פותח רעיון הקישור הסימבולי ‪(symbolic‬‬
‫)‪ .link‬קישור כזה נקרא לפעמים גם "‪ ,\soft link‬וקישור רגיל‬
‫נקרא "‪.\hard link‬‬
‫קישור סימבולי מתבצע על ידי הפקודה ‪-s‬‬
‫‪2 user32 602‬‬
‫‪drwxr-xr-x‬‬
‫‪lrwxrwxrwx‬‬
‫‪~/info> netscape index.html‬‬
‫‪.ln‬‬
‫‪- 16 -‬‬
‫‪ - Unix‬מושגי יסוד‬
‫‪ - Unix‬מושגי יסוד‬
‫ כל קובץ במערכת הקבצים מיוצג על ידי מבנה נתונים שנקרא‬
‫‪ .inode‬בתוך מבנה זה מערכת ההפעלה שומרת את כל הפרטים‬
‫הנחוצים לה לגבי הקובץ‪:‬‬
‫{‬
‫גודל הקובץ‪.‬‬
‫{‬
‫בעל הקובץ )‪.(uid‬‬
‫{‬
‫{‬
‫{‬
‫{‬
‫)‪atime (access time‬‬
‫זמן יצירתו )‪.(ctime‬‬
‫)‪mtime (modification time‬‬
‫זמן השינוי האחרון )‪.(mtime‬‬
‫)‪ctime (creation time‬‬
‫זמן הגישה האחרון )‪.(atime‬‬
‫{‬
‫{‬
‫‪file type:‬‬
‫‪.(?rwxrwxrwx,‬‬
‫‪regular file, directory,‬‬
‫‪device file, fifo‬‬
‫‪.fo ,device‬‬
‫סוג הקובץ‪ :‬קובץ רגיל‪ ,‬ספריה‪le ,‬‬
‫‪ 12‬מצביעם ל‪ 12 -‬הבלוקים הראשונים של הקובץ‪.‬‬
‫‪links‬‬
‫‪12 direct pointers to blocks‬‬
‫{‬
‫מצביע לבלוק של מצביעים לבלוקים נוספים של הקובץ‪.‬‬
‫{‬
‫מצביע לבלוק של מצביעים לבלוקים של מצביעים לבלוקים‬
‫נוספים של הקובץ‪.‬‬
‫{‬
‫‬
‫הקבוצה אליה משתייך בעל הקובץ )‪.(gid‬‬
‫הרשאות )‪?=-dlsbc‬‬
‫{‬
‫‪permissions‬‬
‫‪indirect pointer‬‬
‫‪1 single indirect pointer‬‬
‫‪1 double indirect pointer‬‬
‫‪1 triple indirect pointer‬‬
‫‪.triple‬‬
‫‪- 17 -‬‬
‫‪- 18 -‬‬
‫‪ - Unix‬מושגי יסוד‬
‫‪ - Unix‬מושגי יסוד‬
‫כל המבנים האלה מרוכזים בטבלת הקבצים הכללית של המערכת‬
‫בה מתבצעת התאמה בין מספר הקובץ )‪ (index number‬ובין‬
‫מבנה הנתונים המתאים לו )‪.(inode‬‬
‫‬
‫מחיצות )‪(Buers‬‬
‫{ מחיצה היא שטח בזיכרון המכיל נתונים שנקראו מקובץ או‬
‫{‬
‫‪inodes table‬‬
‫‬
‫‪gid‬‬
‫‪uid‬‬
‫‪times:‬‬
‫מספר הקישורים הקיימים לקובץ‪.‬‬
‫{‬
‫)‪size (in bytes‬‬
‫‪inode structure‬‬
‫‪893‬‬
‫‪inode structure‬‬
‫‪1274‬‬
‫‪inode structure‬‬
‫‪2810‬‬
‫‪inode structure‬‬
‫‪7962‬‬
‫‪inode structure‬‬
‫‪14087‬‬
‫‪inode structure‬‬
‫‪35811‬‬
‫{‬
‫{‬
‫{‬
‫‬
‫עומדים להכתב לתוך קובץ‪.‬‬
‫כמעט כל תוכנית‬
‫בקבצים‪ .‬למשל‪:‬‬
‫‪Unix‬‬
‫משתמשת במחיצות בכדי לטפל‬
‫התוכנית ‪ cp‬משתמשת במחיצה לשם העתקת קובץ‪.‬‬
‫העורך ‪ vi‬משתמש במחיצה גדולה )עבור כל הקובץ!( לעריכת‬
‫קובץ‪.‬‬
‫מספר המחיצות וגודלם תלוי בתוכנית‪.‬‬
‫הרשאות )‪(Permissions‬‬
‫‪Permissions‬‬
‫נפח מקסימלי של קובץ‬
‫חשבון פשוט מראה כי הגודל המקסימלי של קובץ ב‪Unix -‬‬
‫‪:4TB‬‬
‫השיטה‬
‫מס בלוקים‬
‫‪D‬‬
‫‪SI‬‬
‫‪DI‬‬
‫‪TI‬‬
‫‪12‬‬
‫הוא‬
‫‪other‬‬
‫‪x‬‬
‫גודל בלוק הנפח המקסימלי‬
‫‪1K 1‬‬
‫‪1K 1K 1‬‬
‫‪1K 1K 1K 1‬‬
‫‪- 19 -‬‬
‫‪4K‬‬
‫‪4K‬‬
‫‪4K‬‬
‫‪4K‬‬
‫‪48KB‬‬
‫‪4MB‬‬
‫‪4GB‬‬
‫‪4TB‬‬
‫‪w‬‬
‫‪user‬‬
‫‪group‬‬
‫‪r‬‬
‫‪w x‬‬
‫‪r‬‬
‫‪x‬‬
‫‪w‬‬
‫‪r‬‬
‫ משמעות ההרשאות לגבי ספריה‪:‬‬
‫‪r‬‬
‫מאפשר להציג את רשימת הקבצים בספריה‪ .‬לא מאפשר‬
‫להוסיף או למחוק קבצים בספריה‪ .‬לא מאפשר לקרוא או‬
‫לשנות בקבצים קיימים‪.‬‬
‫‪- 20 -‬‬
‫ מושגי יסוד‬- Unix
‫ מושגי יסוד‬- Unix
chmod ‫הפקודה‬
syntax: chmod [-Rcfv] mode file
two types of modes: symbolic, numeric
BEFORE
COMMAND
AFTER
--------rw------rwxrwxrwx
rwxrwxrwx
rwxrwx--rwxrwx--rwxr-xr-x
rwxrwxrwx
rwxrwxrwx
rwxrwxrwx
chmod
chmod
chmod
chmod
chmod
chmod
chmod
chmod
chmod
chmod
rw-rw-rwrw-r--r-rw-rw-rwrw-r-xr-rwxrwxrwx
rwxrwxr-rwsr-xr-x
rwx--x--x
rw-r--r-rwxr-xr-x
u
g
o
a
+
=
a=rw file
go+r file
a-x file
g-w,o-wx file
o=g file
o=g-xw file
u+s file
711 file
644 file
755 file
user
group
other
all (equivalent to ugo)
add permission
deny permission
set eact pemissions
‫ לא מספיק בכדי‬.‫ניתן להוסיף או למחוק קבצים בספריה‬
.‫לאפשר לקרוא או לשנות בקבצים קיימים‬
w
‫ בתנאי‬,‫מאפשר לבצע כל פעולה על הקבצים בספריה‬
.‫ מאפשר להיכנס לספריה‬.‫ששמותיהם ידועים‬
x
Set-uid ‫ הסיבית‬
.‫מאפשרת לתוכנית לרוץ עם ההרשאות של בעליה‬
‫ אך כל משתמש‬,root -‫ שייכת ל‬passwd ‫ התוכנית‬:‫דוגמא‬
‫ תוכנית זו עשויה לבצע שינויים בקובץ‬.‫אחר רשאי להפעילה‬
‫ ואין הרשאת כתיבה‬root -‫ השייך גם הוא ל‬/etc/passwd
‫ בכדי שמשתמש רגיל יוכל בכל זאת לשנות‬.‫למשתמשים אחרים‬
‫ הוא מקבל את‬passwd ‫ בזמן ההפעלה של הפקודה‬,‫את סיסמתו‬
.root ‫ההרשאות של‬
/usr/bin/passwd
/etc/passwd
chmod u+s program
-r-sr-xr-x
-rw-r--r--
:‫ הפעלת סיבית זו תתבצע על ידי הפקודה‬
.‫ בשורת ההרשאות‬x ‫היא תתפוס את המקום של‬
.(‫ של הקבוצה‬x ‫ )במקום‬Set-Gid ‫ באופן דומה קיימת הסיבית‬
- 22 -
- 21 -
‫ מושגי יסוד‬- Unix
‫ מושגי יסוד‬- Unix
‫ ספריות חשובות‬
/usr
/usr/bin
/usr/local/bin
/usr/ucb /usr/bin/X11
/bin
/sbin
/usr/sbin
/home
/dev
/lib
/usr/lib
/usr/local/lib
/usr/src /usr/include
/tmp
/var /var/log /var/spool
root
root
umask ‫ הפקודה‬
‫ מקבלים‬,gcc ‫ או‬vi ‫קבצים שנוצרים על ידי תוכניות שונות כגון‬
‫ או‬,‫ אם הם קבצים רגילים‬rw-rw-rw- ‫מהמערכת שורת הרשאות‬
‫ ברירת מחדל זו ניתנת לשינוי‬.‫ אם הם קובצי הפעלה‬rwxrwxrwx
‫ בדרך כלל קובץ האיתחול של כל מעבד‬.umask ‫על ידי הפקודה‬
:‫ בצורה סימבולית‬.umask 022 ‫פקודות כולל את הפקודה‬
umask -S u=rwx,g=r,o=r
vi file.txt
ls -l file.txt
-rw-r--r-user51 603 ...
‫ תווים מיוחדים לתאור קבצים‬
*
matches any string
?
matches any single char
[...] matches all chars inside
[abg03] matches all chars a, b, g, 0, 3
[a-z] matches all chars from a to z
[^a-z] all chars different from a-z
[!a-z] all chars different from a-z
[a-z0-9]
- 24 -
- 23 -