Notes in Linux System Administration: By: Mohamed Salah-El-Den

Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

Linking commands .............................................................................

16
Seeking help ............................................................................................. 17
Man..................................................................................................... 17
Whatis data base ................................................................................ 18
Info...................................................................................................... 18
Help from within -h , --help ................................................................. 18
Composite Commands ............................................................................. 19
Sequential command .......................................................................... 19
Conditional commands ....................................................................... 19
|| oring .............................................................................................. 19
Anding && ........................................................................................ 19
Notes in Linux System Administration Command loop.................................................................................... 19
Input output redirection ..................................................................... 20
By: Mohamed Salah-el-den Pipe ..................................................................................................... 21
Email: mohamed.salah5369@gmail.com Tee command .................................................................................... 22
LinkedIn: https://www.linkedin.com/in/mohamed-salah-el-den-702949105/ Yes command..................................................................................... 22
Command argument expansion .......................................................... 22
Wild card ............................................................................................ 22
Contents Tilde expansion ~ ............................................................................... 22
OS components ......................................................................................... 2 $ and ${} parameter expansion ........................................................... 22
Kernel ................................................................................................... 2 Arithmetic expansion .......................................................................... 22
User space VS kernel space ................................................................. 2 Brace expansion ................................................................................. 22
System call .......................................................................................... 3 Argument quoting ............................................................................... 22
GUI and CLI in Linux ................................................................................... 4 “”........................................................................................................ 22
CLI ........................................................................................................ 4 `` back quoat ...................................................................................... 22
X GUI system ........................................................................................ 4 Vim file editor ........................................................................................... 23
Shell ........................................................................................................... 5 Vim modes .......................................................................................... 23
Shell commands type ........................................................................... 5 the find command .................................................................................... 24
Users.......................................................................................................... 6 Whereis , which .................................................................................. 24
How to create new user ....................................................................... 6 Find ..................................................................................................... 24
How to switch users ............................................................................. 6 Locate ................................................................................................. 24
Files ........................................................................................................... 7
Linux file system tree ........................................................................... 7
Home................................................................................................... 7
Boot..................................................................................................... 7
Grub .................................................................................................... 7
Bin , sbin .............................................................................................. 7
Lib........................................................................................................ 8
Etc ....................................................................................................... 8
Dev ...................................................................................................... 8
Mnt , media ......................................................................................... 8
Opt ...................................................................................................... 8
Usr ....................................................................................................... 8
Var....................................................................................................... 8
Sys , proc ............................................................................................. 8
Summary ............................................................................................. 9
File Path ............................................................................................... 9
Commands............................................................................................... 10
Basic commands................................................................................. 10
List ls ................................................................................................. 10
Tree ................................................................................................... 11
Print working directory pwd.............................................................. 11
Change directory cd .......................................................................... 11
Create directory mkdir ...................................................................... 11
Copy cp.............................................................................................. 11
Move mv ........................................................................................... 12
Remove or delete rm ........................................................................ 12
Using wild cards (globbing) ..................................................................... 13
File handling internals ............................................................................. 14
Basic file operations ........................................................................... 15
Creating file ....................................................................................... 15
Rename file ....................................................................................... 15
Moving file within the same FS (the same partition ) ........................ 15
Moving between 2 filesystems .......................................................... 15
Linking file (hard link) ......................................................................... 15
Symbolic links ..................................................................................... 16
Deleting hard links ............................................................................ 16
Deleting symbolic link ....................................................................... 16
User space VS kernel space
OS components
)user space , kernel space ( ‫ بيتقسم لجز رئي‬OS ‫اى‬
‫ اىل هوا‬kernel ‫ عن طريق ال‬HW ‫ بال‬software ‫ بال‬user ‫ اىل ربيبط ال‬SW ‫ هوا ال‬OS ‫ال‬
OS ‫المكون الرئيىس لل‬

User

OS
Kernel
HW SW

‫ بتاعه‬application ‫ ال‬user ‫ فيه كل‬run ‫ هوا المكان اىل ر يب‬userspace ‫ال‬ -


resource ‫اليامج المسؤله عن ال‬ ‫ى‬
‫ هوا المكان المشيك اىل فيه ر‬kernel space ‫ال‬ -
storage management , memory management , ‫ ذي ال‬management
Utilites Application
networking managgment
‫ اىل بيحاولو ي‬users requests ‫ ال‬manage ‫ هيا انها ت‬kernel space ‫مسؤليه ال‬ -
C library ‫ دى‬resource ‫ ال‬access
system ‫ لل‬user ‫ ىبيوح من ال‬system calls ‫بتبق عباره عن‬ ‫ دى ى‬users requests ‫ال‬ -
System call interface call interface
‫ ى‬management ‫ال‬
‫بيبق يف صوره‬ -
Operating system ‫ دا وال ال‬file ‫ ال‬access ‫ دا مسموحله ي‬user ‫هل ال‬ o
‫ دا وال ال‬memory location ‫ يف ال‬write ‫ دى مسموحلها ب‬process ‫هل ال‬ o
(linux kernel) ) ‫ ليها لوحدها ( و هكذا‬memory ‫ جديده تحجزلها مكان يف ال‬process ‫لو يف‬ o
‫ وظيفتها‬kernel ‫و بالتاىل ال‬
1- HW control
Bootloader Device driver 2- Resource allocator
3- Memory management
4- Storage management
HW 5- Job scheduling
6- Process management
1- Hardware monolithic kernel ‫ بيتقال عليها‬linux kernel ‫ال‬ -
hard disk , monitor , keyboard , GPU , CPU , etc. ‫ذي ال‬ ) kernel space ‫ بيشتغل يف ال‬operating system ‫( يعن كل ال‬
‫ اىل عندى‬resources ‫دى ال‬ ‫و بالتاىل نقدر نقول ان‬ -
2- Bootloader (initialization) ‫ ذي العمالء يف البنك‬user space ‫ال‬ o
‫ و‬RAM ‫ لل‬hard disk ‫ من مكانها يف ال‬kernel ‫صغي وظيفته انه ينقل ال‬ ‫ر‬ ‫هوا برنامج‬ ‫الكاشي‬
‫ر‬ ‫ ذي‬kernel space ‫و ال‬ o
system ‫ بتاعت ال‬initialization functionality ‫يبتدى ينفذ ال‬ ‫ يف البنك البنك مسؤل انه يتحكم فيها هيا الخزنه‬common resource ‫ال‬ o
‫ ممكن يكون‬bootloader SW ‫ال‬ ‫) لما يحب يعمل إيداع ( ال‬application in user space ( ‫و بالتاىل العميل‬ o
- Syslinux ) ‫ اىل عايز ينفذها‬process
- Grub ‫اشهرهم‬ ‫ ) انا عايز اعمل إيداع‬system call ‫ ) يقوله ( يبعتله‬kernel ‫للكاشي ( ال‬ ‫ر‬ ‫ربيوح‬ o
- Kernel EFI stub ) resource management ( ‫الكاشي انه يشوف يف مكان يف الخزنه وال ال‬ ‫ر‬ ‫و وظيفه‬ o
3- Kernel ‫ ) وال ال‬user permissions ( ‫و هل العميل دا من حقه يعمل إيداع‬
HW ‫ عىل ال‬full control ‫اليامج اىل ليها ال‬
‫دى ر‬ ‫ و يرد عىل العميل‬process ‫و بعد كدا ينفذ ال‬ o
4- Device drivers
HW ‫ لو عايز يتعامل مع ال‬OS ‫ اىل بيكلمها ال‬SW ‫دى ال‬
5- Utilities
‫ و هكذا‬files ‫ ال‬access ‫اليامج اىل بت‬‫ بيستخدمها ذي ر‬OS ‫ اىل ال‬tools ‫ال‬
6- Application
‫ اىل هوا عايزها ( ذي مثال‬task ‫ عشان ينفذ ال‬user ‫اليامج اىل بيستخدمها ال‬ ‫دى ر‬
) server system ‫ او‬database management system
7- C library
kernel ‫ و ال‬applications ‫ ربي ال‬interface ‫دى ال‬
system call ‫بتتعمل عن طريق ال‬
‫ عىل طول‬kernel ‫ بتبعت لل‬application ‫يف بعض األحيان ال‬

Kernel
system ‫ يف ال‬resources ‫ ال‬manage ‫اليامج المسؤله عن انها ت‬
‫ باختصار هيا كل ر‬kernel ‫ال‬
‫ذي ال‬
- CPU (process , threads , job scheduling)
- Memory (RAM)
- Swap
‫ برضو بس ى‬RAM ‫دى عباره عن‬
‫ عشان لو‬hard disk ‫بتبق يف ال‬
RAM ‫ ك‬hard disk ‫ االساسيه خلصت يستخدم جزء من ال‬ram ‫ال‬
- Disk space (hard disk and file manager)
- Network (network interface cards) bash , ‫ ذي ال‬user space ‫ موجوده يف ال‬linux ‫ اىل بنستخمها يف‬applications ‫كل ال‬
window manager , X server
System call
user space ‫ يف ال‬applications ‫ هيا الطريقه الوحيده عشان ال‬system call ‫ال‬ -
kernel ‫يتواصل بيها مع ال‬
application ‫ ال‬... ‫ عىل طول‬application ‫ مبتتبعتش بال‬system call ‫يف الغالب ال‬ -
‫ دى هيا اىل بتنادى عىل ال‬library ‫ و ال‬glibc library ‫ يف ال‬function ‫بيستخدم‬
system call
‫ عشان‬system call table ‫ ربيوح يدور يف ال‬linux ‫ ال‬... ‫ لما بيتبعت‬system call ‫ال‬ -
‫في و ينفذها‬ ‫ دى ر‬function ‫يشوف مكان ال‬
‫ اىل‬functions ‫ لل‬pointers to functions ‫ هوا جدول عباره عن‬system call table ‫ال‬ -
‫ لما يتنادى‬system ‫هينفذها ال‬
array of ‫ فيه‬kernel space ‫ يف ال‬variable ‫ عباره عن‬system call table ‫ال‬ -
pointers to functions

http://www.cheat-sheets.org/saved-copy/Linux_Syscall_quickref.pdf
‫‪User space‬‬
‫‪GUI and CLI in Linux‬‬
‫‪ Linux‬عنده ‪14 virtual terminal‬‬ ‫‪-‬‬
‫‪ 7‬منهم اسمهم ‪ ( loggable terminal‬يعن يقدر ال ‪ user‬يستخدمهم عشان ي ‪run‬‬ ‫‪-‬‬
‫عليهم ال ‪ commands‬بتاعته )‬
‫تانيي اسمهم ‪ ( non loggable terminal‬ال ‪ system‬بيعملهم عشان ي ‪manage‬‬ ‫‪ 7‬ر‬ ‫‪-‬‬
‫‪X-server‬‬
‫منهم شويه ‪ processes‬ذي ال ‪) SQL service‬‬
‫اغي ربي ال ‪ terminals‬بستخدم ( ‪) Ctrl + Alt + F1→ F7‬‬ ‫عشان ر‬ ‫‪-‬‬
‫بتبق مستقله بذاتها ممكن ‪ user‬مختلف ي ‪ access‬ال ‪ terminal‬دى ‪...‬‬ ‫كل ‪ terminal‬ى‬ ‫‪-‬‬
‫او ا ‪ run‬عليها ‪ service‬معينه ‪ in parallel‬مع ‪ service‬تانيه شغاله يف ‪ terminal‬تانيه‬
‫ال ‪ terminal‬زمان كانت عباره عن ‪ monitor‬و ‪ ... keyboard‬فتخيل الموضوع اكنه ‪7‬‬ ‫‪-‬‬
‫‪ monitors , 7 keyboards‬قاعد عليهم ‪ 7 users‬بس كل الكالم دا متوصل عىل ‪server‬‬
‫‪Kernel space‬‬
‫واحد او ‪ computer‬واحد عليه ال ‪ Linux kernel‬اىل بتاخد من ال ‪ users‬دول كلهم ال‬
‫‪ system calls‬اىل بيبعتوها و ينفذها عىل ال ‪ common resources‬اىل عنده ذي ال ‪CPU‬‬ ‫‪Vedio driver‬‬
‫‪, hard disk , RAM‬‬

‫‪TTY 7‬‬
‫‪CLI‬‬ ‫‪Mouse driver‬‬

‫ال ‪ terminal‬اسمها ‪ ( TTY‬الن زمان كان في جهاز‬ ‫‪-‬‬


‫‪Keyboard driver‬‬
‫اسمه ‪ Tele typewriter‬و دا كان بيبقى متوصل‬
‫بال ‪ main computer‬بحيث ال ‪ user‬بيبعت‬
‫‪ chcracters‬لل ‪ computer‬و ال ‪computer‬‬
‫يطبعله على ورقه ال ‪) result‬‬
‫ال ‪ X server‬هوا ‪ client-server system‬بنستخدمه عشان ن ‪ manage‬ال ‪GUI‬‬ ‫‪-‬‬
‫ال ‪ X server‬وظيفته انه يرسم ال ‪ windows‬بشكل ‪ graphically‬و ياخد ال ‪ inputs‬من ال‬ ‫‪-‬‬
‫‪mouse , keyboard‬‬
‫ال ‪ X server‬ممكن نتواصل معاه عن طريق ال ‪ local computer‬او عن طريق ال‬ ‫‪-‬‬
‫‪ network‬عشان نشوف ال ‪ output‬بتاعه‬
‫‪Main‬‬ ‫في ‪ System environmanet variable‬اسمه ‪ DISPLAY‬دا بيبقى فيه ال ‪ IP‬بتاع الجهاز‬ ‫‪-‬‬
‫‪computer‬‬ ‫الى ال ‪ X server‬هيبعتله ال ‪ OUTPUT‬بتاعه‬
‫ال ‪ X server‬ما هو اال ‪ server‬محتاج ‪ client‬عشان‬ ‫‪-‬‬
‫يبعتله ‪ requests‬و بالتالى ال ‪ X server‬يبتدى يرد‬
‫عليه‬
‫ال ‪ X client‬اسمه ‪ X terminal‬و دا وظيفته انه‬ ‫‪-‬‬
‫يشوف مين من االجهزه الى في نفس ال ‪network‬‬
‫‪TTY1‬‬ ‫‪TTY2‬‬ ‫‪TTY3‬‬ ‫‪TTY4‬‬ ‫الى هوا فيها ( ‪ ) including the local host‬عنده‬
‫‪ X server‬عشان ي ‪ connect‬عليه ك ‪client‬‬
‫لما يستقبل ال ‪ data‬ال ‪ client‬الزم ي ‪ run‬ال ‪X‬‬ ‫‪-‬‬
‫وظيفه ال ‪ terminal‬أصال انها تتعامل مع ال ‪ inputs‬الى هيا ال ‪ keyboard‬و تتعامل مع‬ ‫‪-‬‬ ‫‪ display manager‬المسؤل انه ياخد ال ‪window‬‬
‫ال ‪ outputs‬الى هيا ال ‪ monitor‬و تبعت ال ‪ input‬يحصلله ‪ processing‬على ال ‪ PC‬و‬ ‫‪ data‬من ال ‪ X server‬و يعملها ‪customization‬‬
‫تاخد ال ‪ output‬من ال ‪ PC‬تعرضه عال ‪monitor‬‬ ‫عشان يعرضها بشكل احلى‬
‫ال ‪ TTY‬في ال ‪ linux‬شكلها كدا ‪ ...‬شاشه منغير ماوس كل الى بتستخدمه الشاشه و ال‬ ‫‪-‬‬ ‫ال ‪ window manager‬األشهر هما‬ ‫‪-‬‬
‫‪ keyboard‬ذي زمان بالظبط‬ ‫‪Gnome‬‬
‫‪KDE‬‬
‫و بالتالى لو مش عارف اشغل ال ‪graphical user‬‬ ‫‪-‬‬
‫‪ interface‬في الغالب المشكله انى معنديش‬
‫‪ window manager‬و محتاج انزل واحد ( الن ال‬
‫‪ X server , X terminal‬هما أصال جايين مع ال ‪OS‬‬
‫‪ ...‬لكن مش جزء من ال ‪) kernel‬‬

‫‪X GUI system‬‬


‫طب عايزين نخىل ‪ TTY‬من ال‪ 7 TTY‬دول تقرا ال ‪ inputs‬من ال ‪ mouse‬و تعرض ال ‪output‬‬
‫على شكل ‪graphical‬‬
‫‪ -1‬اخترنا من ال ‪ 7 tty‬الى عندنا واحده تبقى ‪ ( graphical‬في ‪ OS‬بيخليها ‪ F1‬و في ‪OS‬‬
‫بيخليها ‪ ) F7‬بفرض اننا شغالين على ‪ OS‬فيه ال ‪ TTY7‬هيا ال ‪graphical‬‬
‫‪ -2‬خلينا ال ‪ TTY7‬تاخد ال ‪ inputs‬من ال ‪ keyboard‬و ال ‪mouse‬‬
‫‪ -3‬عملنا برنامج سميناه ‪ ( X server‬البرنامج دا في ال ‪ system component‬الى في ال‬
‫‪) user space‬‬
‫البرنامج دا وظيفته انه يقرا ال ‪ inputs‬من ال ‪ mouse‬و ال ‪ keyboard‬و يتعامل مع ال‬
‫‪ vedio drivers‬او ال ‪ GPU‬عشان يعرض ال ‪ output‬بشكل ‪ graphical‬فيه‬
‫‪ animations‬و ‪colors‬‬
Shell root user ‫ معناها ان دا‬# ‫ ال‬shell ‫في ال‬ -
) application layer ‫ ( في ال‬user space program ‫ هيا‬shell ‫ال‬ - regular user ‫ معناها ان دا‬$ ‫و ال‬ -
‫ليها وظيفتين‬ -
‫ الى اتكتب عليها‬text ‫ او ال‬command ‫ لل‬parsing ‫انها تعمل‬ o
input , command expansion ‫ ال‬provide ‫انها ت‬ o
readline ‫ اسمها‬library ‫ بيتعمل ب‬parsing ‫ال‬ -
terminal emulator ‫ او من ال‬terminal TTY ‫ من ال‬shell ‫ممكن أوصل لل‬ -
program XTERM interpreter ‫ مقاطع في ال‬3 ‫في‬ -
‫ ليها كذا نوع‬shell ‫ال‬ - User name @ Machine name Location
- Bourne shell ----------------- sh Root localhost /
- Bourne again shell --------- Bash
- C like shell--------------------- Csh

/etc/shells ‫ الى موجوده أنواعها ايه و مكانها فين في ال‬shells ‫عشان اشوف ال‬ -

/etc/passwd ‫ في‬user ‫ بتاعت كل‬default shell ‫عشان اشوف ال‬

interpreter ‫ ال‬... ‫ الى بكتبه‬text ‫ يترجم ال‬interpreter ‫ عشان اتعامل معاها بحتاج‬shell ‫ال‬
terminal ‫دا هوا ال‬

Shell commands type


‫ أنواع‬4 ‫ في منها‬commands ‫ال‬
Type Description Examble
Built in ‫ نفسها بتتحكم في ال‬shell ‫ بتاعت ال‬commands ‫ دى‬cd
‫في‬run ‫ بت‬shell ‫ نفسها ذي انها تتحكم في ال‬shell pwd
dir ‫انهى‬
Binary ‫ الى لما يتتنادى بتنادى على‬commands ‫ دى ال‬Adduser
‫ او بتشوف ال‬/usr/bin ‫ متخزن في‬binary file Date
environment ‫ الى ممكن تدور فيها من ال‬paths Mkdir
$PATH ‫ الى اسمه‬variable
Alias commands ‫ دى شويه أسماء مستعاره ممكن لل‬rm , ls
Shell function
Users
linux ‫ في‬users ‫ أنواع من ال‬3 ‫في‬ -
Super user (root) Special user Regular user
Id 0 1→999 1000→65535
‫ى‬ 1- User name
‫ليه كل ال‬ ‫ معمول عشان ي‬user ‫بيبق‬
2- Password
‫ في ال‬permissions ‫ معينه في‬process ... manage
a. Encryption algorithm
system system ‫ال‬
i. $1$ → MD5
ii. $2a$ → Blowfish
‫ بتاعه ( دا في حاله‬ID ‫ باسمه و بنفس ال‬group ‫ في‬by default ‫ بيتعمل بيتحط‬user ‫كل‬ -
iii. $2y$ → blowfish
) group ‫ مقلتلوش دا في انهى‬user ‫انى و انا بعمل ال‬
iv. $5$ → SHA-256
‫ مبيتكررش‬users ‫ بتاع ال‬id ‫ال‬ -
v. $6$ → SHA-512
documants , binaries , ‫ بيبقى فيه ال‬home directory ‫ بيبقى ليه‬user ‫كل‬ -
b. Cipher text of password (till :)
pictures , …
3- Last password change
/home/<user name> ‫ بيبقى في‬users ‫ بتاع ال‬home dir ‫ال‬ -
4- Minimum number of days required for make a new password
/root ‫ بتاعه في‬home directory ‫ الوحيد الى ال‬user ‫ هوا ال‬root user ‫ال‬ -
5- Max number of days for password to be valid
‫ مقاطع‬3 ‫ و دى بتبقى من‬secret phrase ‫ او بتتسمى‬password ‫ بيبقى ليه‬user ‫كل‬ - ‫بعد ى‬
‫ جديد‬password ‫ يعمل‬user ‫الفيه دى الزم ال‬
- Alphabetic
6- Number of days (before the expiration date) in which the system will
- Numeric
warn the user to change his password
- Symbolic
/etc/passwd ‫ هالقيهم في‬system ‫ الى عندى في ال‬users ‫عشان اشوف ال‬ -
See : https://www.cyberciti.biz/faq/understanding-etcshadow-file/

cat /etc/passwd How to create new user


# adduser <user name>
# passwd <user name>

‫ دا عباره عن‬file ‫كل سطر يف ال‬

‫ ) و نضيف سطر‬/etc/shadow ‫ و‬/etc/passwd ( files ‫او اننا نخش جوا ال‬ -


file format ‫جديد بنفس ال‬
1- User name adduser , passwd ‫ بتوع‬2 commands ‫أصال دا كل اىل بيعمله ال‬ -
2- Password (the encrypted password is in /etc/shadow)
3- UID user ID (0 : root )
How to switch users
4- GID group ID (groups are stored in /etc/group)
5- Users full name
6- Home directory (root : /root , regular : home/uer_name) # su <user name>
7- Command or shell (the location of shell program used by this user)

‫ دى ى‬passwords ‫ ال‬... password ‫بيبق ليه‬


‫بتبق متشفره‬ ‫ ى‬user ‫كل‬
‫ى‬
/etc/shadow ‫ دى بتبق يف‬passwords ‫ال‬

‫ى‬
/etc/shadow ‫هيبق يف ال‬ password ‫ و معملتلوش‬user ‫لو عملت‬ -

User_name:!::0:99999:7:::
‫ و بالتاىل مش‬password ‫ دا متحطلوش‬user ‫عالمه ال ! دى معناها ان لسه ال‬ -
login ‫هتعرف تعملله‬
Files Linux file system tree

‫ واحده بس بنقول‬tree ‫ هيا‬multiple trees of file system ‫ مفهوش‬Linux ‫ال‬ -


unified file system Hierarchy ‫عليها‬

bin
boot
dev
etc user1
Home
home user2 system ‫معمولي ف ال‬‫ر‬ ‫ اىل‬users ‫دا جواه ال‬
‫ بس‬administrator ‫ بال‬accessible ‫ دا‬directory ‫ال‬
lib user3 ‫ الصور و االغاب و الكالم دا‬... ‫ دا‬user ‫ بتاعت ال‬files ‫جواه ال‬

mnt
root(/)
opt
proc
root
sbin Boot
boot ‫ عشان يعمل‬system ‫ اىل محتاجها اال‬files ‫دا جواه كل ال‬
temp
usr
var
root folder ‫ تحت ال‬folders ‫ و ال‬files ‫كا ال‬ - Grub
hard disk ‫طب لو عندى كذا‬ - ‫ اىل جواه ى‬Linux ‫بيج مع ال‬
‫ بتاع ال‬binary ‫بيبق فيه ال‬ ‫ اىل ر‬bootloader software ‫دا ال‬
kernel

Bin , sbin
‫ بيعمل حاجه معينه‬application ‫ فيهم هوا‬binary file ‫ كل‬binary files ‫دول بيشيلو‬

‫ ف‬root ‫ تحت ال‬new storage devices ‫ ) لل‬mount ‫ بيحط ( او بيعمل‬Linux -


) root ‫ عند ال‬mounting points ‫ (هنا ال‬mounting point ‫حته اسمها‬
‫ و شويه ال‬root directory ‫ ( اىل هوا ال‬primary partition ‫فيبق كدت عندنا‬ ‫ى‬ -
) ‫ اىل تحته‬files
primary tree ‫ التانيه بال‬tree ‫ بربط ال‬2 trees ‫فبدل ما ىبق عندى‬ -
not accessible ‫ هوا كدا‬unmount ‫ معموهلل‬device ‫لو ال‬ -
‫‪Lib‬‬ ‫‪Dev‬‬
‫دى ى‬
‫بيبق فيها ال ‪ shared libraries‬ربي كل ال ‪users‬‬ ‫دا جواه ‪ virtual files , virtual folders‬عباره عن ‪ place holder‬الى ‪ HW‬ف ال ‪system‬‬
‫ى‬
‫هيبق ليه ‪ file‬مناظر ليه ف ال ‪ dev directory‬دا ‪ ...‬بحيث لو‬ ‫بحثت ان كل ‪ HW‬ف ال ‪system‬‬
‫عايز يكتب ‪ data‬عىل ال ‪ ethernet interface‬هوا ربيوح يكتب ف ال ‪ place holder‬او ال ‪file‬‬
‫بتاع ال ‪ethernet device‬‬
‫لو مثال عايز يقرا قرايه ال ‪ mouse‬ربيوح يقرا من ال ‪ file‬بتاع ال ‪mouse‬‬

‫‪Etc‬‬
‫دا ‪ folder‬فيه كل ال ‪ configuration files‬بتاعت ال ‪system‬‬
‫اى برنامج بيشتغل عىل ال‪ OS‬الزم ى‬
‫يبق عامل ‪ folder‬ف ال ‪ etc‬يحط فيه ال ‪configurations‬‬
‫يغي فيها‬
‫بتاعته عشان لو ال ‪ user‬عايز ر‬

‫ى‬
‫حقيق اقدر افتحه و اقرا اىل مكتوب فيه‬ ‫دا ذى ‪ representation‬لل ‪ device‬بس مش ‪file‬‬
‫‪Mnt , media‬‬

‫ذى ال ‪ control panel‬لل ‪ system‬و ال ‪programs‬‬


‫بيبق فيه ال ‪ configurations‬بتاعت ال ‪ ... storage devices‬لو ف عندى‬ ‫ذى ‪ fstab file‬اىل ى‬
‫‪ new storage device‬عايز اعملله ‪ mounting‬بضيفه ف ال ‪ file‬دا و بقوهلل اسمه و ال ‪file‬‬
‫‪ system‬نوعه ايه و ال ‪mounting point‬‬

‫دول عباره عن ‪ mounting point‬لل ‪ devices‬اىل هوصلها عىل ال ‪ system‬لو عايز استخدمهم‬
‫استخدمهم و لو عايز اعملها ‪ mount‬ف حته تانيه عادى‬
‫ذى اب وصلت فالشه مثال هالقيها ف ال ‪media‬‬
‫ال ‪ mount‬ممكن يحصل ‪ automatically‬اب اول ما اوصل فالشه مثال بيتعملها ‪ mount‬ف ال‬
‫‪media directory‬‬
‫او اب لما بوصل ‪ device‬مبيبقاش ‪ mounted‬فبخش اعملله انا ‪ mount‬بايدى‬
‫‪Opt‬‬
‫دول ال ‪ optional software‬اىل اى ‪ user‬يقدر يستخدمه‬
‫يبق احطه ف >‪/home/<username‬‬‫يبق بتاع ‪ user‬معي ى‬
‫انما لو عايز ال ‪ SW‬ى‬
‫ر‬
‫‪Usr‬‬
‫دا ى‬
‫بيبق فيه ال ‪ shared files‬ربي ال ‪ users‬كلهم‬
‫ال ‪ passwd‬دا ال ‪ configuration file‬اىل فيه كل اسماء ال ‪ users‬اىل ف ال ‪ system‬و ال‬
‫‪ premisions‬بتاعتهم‬
‫‪User id , user name , home directory , shell location‬‬

‫مثال جوا ال ‪ directory‬اىل اسمه ‪ src‬فيه ال ‪ header files‬بتاعت ال ‪ kernel‬و ‪ shared‬بيت ال‬
‫‪users‬‬
‫‪Var‬‬
‫دا اىل بيتحط فيه ‪ variable files‬ذى ‪log files‬‬
‫‪Sys , proc‬‬
‫دول ‪ virtual files‬عباره عن واجهه لل ‪ ... kernel‬ال ‪ kernel‬بتحطىل فيهم ‪ data‬عشان اقدر‬
‫اقراهم‬

‫ال ‪ X‬اىل جمب االسم معناها ان ال ‪ password‬بتاع ال ‪ user‬دا ‪encrypted‬‬


Summary
Directory Content
/ Root directory , the head of the tree
Common programs, shared by the system, the system
/bin
administrator and the users.
The startup files and the kernel, vmlinuz. In some recent
distributions also grub data. Grub is the GRand Unified
/boot
Boot loader and is an attempt to get rid of the many different
bootloaders we know today.
Contains references to all the CPU peripheral hardware, which
/dev
are represented as files with special properties.
Most important system configuration files are in /etc, this
/etc directory contains data similar to those in the Control Panel in
Windows
/home Home directories of the common users.
Library files, includes files for all kinds of programs needed by
/lib
the system and the users.
Standard mount point for external file systems, e.g. a CD-ROM
/mnt
or a digital camera.
/net Standard mount point for entire remote file systems
/opt Typically contains extra and third-party software.
/sys Same as /proc
A virtual file system containing information about system
resources. More information about the meaning of the files
/proc in proc is obtained by entering the command man proc in a
terminal window. The file proc.txt discusses the virtual file
system in detail.
The administrative user's home directory. Mind the difference
/root between /, the root directory and /root, the home directory of
the root user.
/sbin Programs for use by the system and the system administrator.
Temporary space for use by the system, cleaned upon reboot,
/tmp
so don't use this for saving any work!
Programs, libraries, documentation etc. for all user-related
/usr
programs.
Storage for all variable files and temporary files created by
users, such as log files, the mail queue, the print spooler area,
/var
space for temporary storage of files downloaded from the
Internet, or to keep an image of a CD before burning it.

File Path
forward slash ‫ دا ) و بنفصل بينهم ب‬file ‫ اىل بيوصلوب لل‬directories ‫الطريق ( او اساىم ال‬
/usr/src/shared/files/myfile.txt
Absolute path Relative path
‫في او فاتح‬
‫ مبيعتمدش انا واقف ر‬path ‫ ال‬current ‫ اىل هيا بتمثل ال‬. ‫دايما بتبتدى ب‬
root ‫ هوا بيبتدى من ال‬folder ‫انىه‬ directory
/home/salah/desktop ./myproj/report.txt
‫هيا هيا‬ ‫ اىل‬folder ‫ بتاع ال‬parent ‫ معناها ال‬.. ‫ال‬
~/desktop )‫انا فيه (اىل هيا ارجع ورا خطوه‬
‫ بتاع‬home directory ‫ ال ~ هيا اختصار لل‬../../myproj/report.txt
system ‫ اىل شغال عال‬current user ‫ال‬
‫ بتاع‬home directory ‫لو عايز اروح ال‬
‫ تاب ى‬user
‫يبق االختصار كدا‬
~anas/desktop
Commands
- $<command name> <options> <arguments>
Command
- $ls
- $Pwd
- $Cd
Options
‫ ممكن تتحط او ال‬options ‫ال‬ -
– ‫ او‬- ‫بيتحط قبليها يائما‬ -
case sensitive ‫ برضو‬options ‫ال‬ -
‫ على‬command ‫ بنستخدمه لو بكتب‬option ‫ بتاع ال‬short name ‫ بتاعت ال‬- ‫ال‬ -
cmd ‫طول فى ال‬
‫ بنستخدمها اكتر فى كتابه ال‬options ‫ بتاعت ال‬full name ‫ بتاعت ال‬-- ‫ال‬ -
‫ دى هيا‬details ‫ال‬
‫ بتاعى يبقى فاهم ايه الى مكتوب‬script ‫ عشان الى يقرا ال‬scripts
- $ls -a File type - : regular file
- $ls –all d : directory
Multiple options c : character device file
b : block device file
- $ls -a -R s : local socket file
- $ls -aR p : named pipe
- $ls –all –recursive l : symbolic link
‫ بنحط فى االخر بعد كل‬arguments ‫ و ال‬options ‫احيانا لو عايزين نفصل بين ال‬ - Permissions
‫ اوله – او – فكدا ممكن‬file ‫ يبقى اسم‬argument ‫ الن ممكن ال‬- - options ‫ال‬
argument ‫ وال‬option ‫يتلغبط بين ان دا‬
Arguments
- $rm -rf ./project_data ‫ بتاعت ال‬permissions ‫ اجزاء االول فيه ال‬3 ‫بتتقسم ل‬
‫ او‬write ‫ او ي‬read ‫ سواء كان هيعرف ي‬user
Basic commands execution ‫ دا لو كان بيتعمله‬file ‫ ال‬execute ‫ي‬
‫لو المكان فيه – يبقى الحته الى مكانها ال – دى مفهاش ال‬
‫ دا‬permission
Options Description
‫ ملهمش انهم‬others ‫ و ال‬group ‫مثال فى الصوره دى ال‬
ls List files ‫ دا‬file ‫ ال‬modify ‫ او ي‬delete ‫ او ي‬write ‫ي‬
tree Same as ls show in tree structure Number of hard link ‫هتيجى بعدين‬
pwd Print working directory Owners
cd Change directory
md Create folder
cp Copy
mv Move or rename ‫ الى ليهم ال‬group ‫ و انهى‬user ‫دا بيبقى فيه انهى‬
‫ دى‬permissions
file ‫ فى‬file ‫ بتاع‬content ‫ اكنى بنقل ال‬rename ‫ لما بعمل‬Linux ‫فى ال‬
‫تانى باالسم الجديد‬ Files size ‫ حتى لو‬size ‫ فهوا برضو بيبقى ليه‬folder ‫و حتى لو‬
rm Remove ‫ عادى‬file ‫ هوا عباره عن‬directory ‫ الن ال‬... ‫فاضى‬
‫ حتى لو فاضى هوا‬directory ‫ لل‬minimum size ‫ال‬
clear Clear screen
4K
Last modifications time
List ls File name

option description

ls -a list all files including hidden file starting with '.'


current user home directory ‫ال ~ معناها انى فى ال‬ -
‫ االبيض‬directory ‫ يعنى االزرق معناه ان دا‬color coded ‫ هيا‬listed files ‫ال‬ - ls --color colored list [=always/never/auto]
‫ اقدر انفذه‬script ‫ او‬executable ‫ و االخضر هوا‬file
‫ عشان اشوف ال‬. ‫ الى اولها‬files ‫ او ال‬hidden files ‫ لوحدها مبتورينيش ال‬ls ‫ال‬ - ls -d list directories - with ' */'
--all ‫ او‬-a option ‫ الزم استخدم ال‬hidden files
ls -F add one char of */=>@| to enteries

ls -i list file's inode index number

ls -l list with long format - show permissions

ls -la list long format including hidden files

ls -lh list long format with readable file size


--long -l option ‫ الزم استخدم‬files ‫ اكتر عن ال‬details ‫عشان اشوف‬ -
ls -ls list with long format with file size

ls -r list in reverse order


ls -R $ cd - previous location ‫عشان اروح لل‬
list recursively directory tree

ls -s list file size


Create directory mkdir
ls -S sort by file size ‫ جديد فى المكان الى انا واقف فيه‬directory ‫بيخلينى اعمل‬

ls -t sort by time & date

ls -X sort by extension name

nisted directories ‫طب لو عايز اعمل شويه‬


Tree
Mkdir salah/Mohamed/anas
‫ اسمه‬folder ‫ عشان يعملك جواه‬Mohamed ‫ اسمه‬folder ... salah ‫هوا اصال معندوش جوا‬
) -p option ‫ بال‬... ‫ ( هنحلها ازاى ؟‬anas

------- Listing options -------


-a All files are listed.
-d List directories only.
Copy cp
Print working directory pwd $ cp <source file or dir > <new filename & destinations >

‫ بتاع المكان الى انا واقف فيه او بنفذ االوامر فيه‬path ‫عشان يورينى ال‬
Change directory cd

‫ عشان اروح من مكان لمكان‬absolute bath ‫انا كدا استخدمت ال‬

relative bath ‫كدا انا استخدمت ال‬ ‫ ليه ؟‬... ‫ فى مكان تانى مش هيرضى‬salah ‫ الى اسمه‬folder ‫ لل‬copy ‫لو بحاول اعمل‬
‫ دى معناها من المكان الى انا واقف فيه‬./ ‫ يعنى‬recursive ‫ اسمه‬option ‫ فالزم احطله‬... ‫ جواه حاجات‬directory ‫ ل‬copy ‫النى بعمل‬
parent ‫ معناها انى اروح لل‬../ tree ‫ و اى حاجه جواه فى ال‬salah ‫ ل‬copy ‫اعمللى‬

Cp file1 file2
file2 ‫ فى نفس المكان بس اسميه‬copy ‫ عايز اعملله‬file1 ‫ اسمه‬file ‫يعنى انا عندى‬
Cp file1 ../folder/
Different functionalities of cd
‫ معين بنفس االسم‬distnation ‫ فى‬copy ‫اعملهولى‬
command :
Cp -r folder1 ../folder
$ cd / root directory ‫عشان اروح لل‬
/folder ‫ و الى جواه و حطوهولى فى‬folder1 ‫ ل‬recursive copy ‫اعمللى‬
$ cd dir_1/dir_2/dir_3 ‫عشان اروح لمكان معين سواء بال‬
relative path ‫ او‬absolute path Cp -r folder1 folder2
$ cd ~ ‫ بتاع ال‬home directory ‫عشان اروح لل‬ ‫ فى نفس المكان بس باسم‬copy ‫ و الى جواه كله اعملهوملى‬folder1 ‫ ل‬recursive copy ‫اعمللى‬
current user folder2 ‫جديد الى هوا‬
$ cd ‫ذى الى فوقيها بالظبط‬ Cp /etc/passwd .
$ cd .. parent directory ‫عشان اروح لل‬ ‫ من مكانه للمكان الى انا فيه دلوقتى‬password ‫ الى اسمه‬file ‫ لل‬copy ‫اعملى‬
Move mv
‫ بس بيمسح القديم‬copy ‫ذى‬
‫ باسم جديد و بمسح القديم‬copy ‫ اكنى بعمل‬rename ‫ الن‬rename ‫او ممكن استخدمه ك‬
copy ‫ بتاعت‬options ‫ليها نفس ال‬
Remove or delete rm
$rm [options] <file or dir>

‫مينفعش امسح حاجه و انا واقف عليها او واقف جواها‬

-r option ‫ يعنى استخدم‬recursive ‫ الزم اعمله‬directory ‫برضو لو بمسح‬


-f , --force Ignore not existing files, and never ask before
removing.
-i , --interactive Ask before every removal.
-r, --recursive Remove directories and their
contents recursively.
‫)‪Using wild cards (globbing‬‬
‫]]‪[[:classname:‬‬
‫بستخدمه عشان اعمل نفس ال ‪ ( operation‬نفس ال ‪ command‬سواء ‪ copy‬او ‪ move‬مثال )‬
‫]]‪[[:alnum:‬‬ ‫بتحل محل حرف واحد‬
‫على مجموعه من ال ‪ files‬ليهم صفات مشتركه فى االسم (مثال عايز امسح كل ال ‪ files‬الى اولها‬
‫اى حرف او اى رقم‬
‫كلمه ‪) log‬‬
‫]]‪[[:alpha:‬‬ ‫اى حرف‬
‫ذيها ذى ال ‪ regular expressions‬بس ال ‪ re‬بتشتغل على اى ‪ text‬مش بس على ال ‪file‬‬
‫‪ name‬ذى ال ‪wild card‬‬ ‫]]‪[[:digit:‬‬ ‫اى رقم‬

‫*‬ ‫بتحل محل مجموعه‬ ‫]]‪[[:lower:‬‬ ‫اى حرف ‪small‬‬


‫اى مجموعه حروف (سواء كانت‬ ‫]]‪[[:upper:‬‬ ‫اى حرف ‪capital‬‬
‫‪ character‬او ‪ number‬او ‪ symbol‬او‬
‫حتى لو مفيش حرف)‬ ‫}{‬
‫هيا ‪ group‬يعنى كذا او كذا‬
‫}‪{*.log,*.txt‬‬ ‫اى حاجه اخرها ‪ .log‬او اخرها ‪.txt‬‬

‫خلى بالك لو بتستخدم ال ‪ wild card‬عشان ممكن تبوظ ال ‪files‬‬


‫االحسن انى اعمل ‪ ls‬لل ‪ files‬دى االول عشان اشوف انا هاثر فى انهى ‪files‬‬
‫‪\ escape sequence‬‬
‫لو مستخدم اى ‪ special characters‬ذى * مثال ‪ ...‬ممكن البرنامج يفهمه على انه ‪wild card‬‬
‫طب لو انا اصال مسمى ال ‪file‬‬
‫‪Text*file‬‬
‫يبقى لو عايز يعامل ال * كجزء من اسم ال ‪ file‬مش ك ‪ wild card‬احط قبليها‬
‫‪Text\*file‬‬
‫و انا بعمل على ال ‪ file‬دا اى ‪operation‬‬
‫الحاجات الى بحط قبليها ال \‬
‫^ \‬ ‫}{][ ‪|? * () space‬‬
‫‪Note‬‬
‫‪Tab‬‬
‫فى ال ‪ terminal‬لو كتبت حاجه و عملت ‪ tab‬بيكمللى الكالم لوحده‬
‫‪Double tab‬‬
‫بيعمللى ‪ list‬بكل ال ‪ options‬المتاحه للحاجه الى انا كاتبها دى‬

‫يعنى اعمللى ‪ list‬الى ‪ file‬جوا ‪ bin‬بس يكون بيبتدى ب ‪ s‬و بعديه اى ‪ character‬تانى‬

‫?‬
‫بتحل محل حرف واحد‬
‫اى حرف (سواء كانت ‪ character‬او‬
‫‪ number‬او ‪ symbol‬او حتى لو مفيش‬
‫حرف) ذى ال * بس ال * كانت مجموعه‬
‫حروف انما ال ? هيا بتحل محل حرف واحد‬
‫بس‬

‫]‪[ars‬‬ ‫بتحل محل حرف واحد‬


‫يائما ‪ a‬او ‪ r‬او ‪s‬‬

‫]‪[!ars‬‬ ‫بتحل محل حرف واحد‬


‫اى حاجه غير ال ‪a , r , s‬‬

‫]‪[2-5‬‬ ‫بتحل محل حرف واحد‬


‫اى رقم من ‪ 2‬ل ‪5‬‬

‫]‪[a-l‬‬ ‫بتحل محل حرف واحد‬


‫اى حرف من ‪ a‬ل ‪l‬‬

‫]‪[1-37-9‬‬ ‫بتحل محل حرف واحد‬


‫من ‪ 1‬ل ‪ 3‬و من ‪ 7‬ل ‪9‬‬
‫ممنوع نحط ‪space‬‬
File handling internals
hard disk ‫ في ال‬track ‫ مع ال‬sector ‫ هوا تقاطع ال‬block ‫ال‬
‫ بيتكون من‬file system ‫ال‬ -
childs ‫ و ال‬entery ‫ من ال‬denteries ‫ من ال‬path ‫بالتالى اقدر اعرف ال‬ -
1- Storage device
inode ‫ و ال‬d entries ‫ربطت بين ال‬ -
partitions ‫فى العاده بيبقى متقسم ل‬
file system ‫ بال‬management ‫ بيتعمله‬partition ‫ال‬ $ls -i
‫ و‬MBR ( master boot record ) ‫ بيبقى ال‬hard disk ‫ في ال‬partition ‫اول‬ inode number ‫ بس بال‬listing ‫ بيعمللى‬-i -
boot loader ‫دا الى بيبقى فيه ال‬
‫ لجزئين‬partition ‫ بيبقى مقسم ال‬file system ‫ال‬

File system ‫ بيتسخدمها‬file system ‫ المساعده الى ال‬data ‫دى ال‬


file system data‫عشان يفهم ال‬
meta data
‫ الى‬bytes ‫ او ال‬text ‫ نفسها ال‬data ‫دا الى بيبقى فيه ال‬
‫ نفسه‬file ‫فى ال‬
File system ‫ واحد‬data block ‫ بتاعتى تبقى محطوطه فى‬data ‫ممكن ال‬
data ‫ ساعتها بيعمل‬... ‫ يكفى‬block ‫طب لو مالقاش‬
data block ‫ على كذا‬data ‫ او بيقسم ال‬fragmentation

$stat <file name>


‫ دى‬data ‫ هوا عباره عن جداول فيها بيانات عن ال‬file system meta data ‫ال‬
‫ دا‬file ‫ مفصله عن ال‬details ‫بيطلعلى‬ -
‫ دى‬data ‫ الخاصه بال‬blocks ‫ بتشاور على ال‬pointers ‫ بيبقى فيها‬meta data ‫فى ال‬

$df
‫ على بعضه‬file system ‫دا امر بيبتكلم عن ال‬ -

I node ‫ حاجه اسمها‬meta data ‫ موجود فى ليه فى ال‬file ‫لكل‬


index node ‫ هيا‬I node
I node structure
Inode number file ‫ على مستوى ال‬unique ‫هوا رقم‬
file ‫ بيميز كل‬system
File size
Owner
Permissions
Date and time of creation
Data and time of last modifications
memory ‫ وال المكان فى ال‬file name ‫ مبيبقاش فيها ال‬inode ‫ال‬ $df -i

‫ الن كل‬system ‫ فى ال‬files ‫ بيساوى عدد ال‬inodes ‫ عدد ال‬file system ‫فى ال‬ - inodes ‫ بس من ناحيه ال‬file system ‫بيجيبلى بيانات عن ال‬ -
‫ خاصه بيه‬I node ‫ ليه‬file
file name , path ‫طب ال‬
directory entery ‫ او‬Dentry ‫بيتخزنو فى ال‬ -
File name Inode number Parent Children
directories ‫ او‬files ‫ الى جواه سواء‬childrens ‫ بيتخزن فيها ال‬d entery ‫ال‬ -
‫جواه‬
‫ واحد‬parent ‫ ليها‬d enetery ‫كل‬ -
inode number ‫ و ال‬file name ‫ بين ال‬mapping ‫ بتعمل‬denetery ‫ال‬ -
/home/salah/myfile.txt
Name : / Name : home Name : salah Name : myfile.txt
Child: home Child: Child: myfile.txt Child:none
Parent:
Inode# : 2
Parent: /
Inode# : 30
Parent: home
Inode# : 40
Parent: salah
Inode# : 50
inodes ‫ اول ما بيتعمل بيعمل شويه‬partition ‫ال‬
data part ‫ كلها فى ال‬data blocks ‫ يتملى لو مال ال‬partition ‫ممكن ال‬
memory ‫ كدا ال‬... ‫ فايل‬1018257 ‫ (لو عملت برناج بيعمل‬inodes ‫او لو استخدمت كل ال‬
‫ بس انا استخدمت كل ال‬bytes ‫ مش متخزن فيها‬data blocks ‫ هيبقى ذى ما هوا الن ال‬usage
) ‫ تانى‬file ‫ فبالتالى مش قهدر اعمل اى‬inodes
Block 1000
Basic file operations Moving between 2 filesystems
‫ و كل حاجه‬data ‫ التانى و بنقل ال‬FS ‫ االوالنى و بنقله فى ال‬FS ‫ساعتها بمسحه من ال‬
Creating file
directory entry
‫ معينه‬inode ‫ و بتشاور على‬file ‫ بيتحط فيها اسم ال‬directory entry ‫ بيبقى ليه‬file ‫كل‬
File name Inode#
‫ بتشاور على‬pointers ‫ و‬permissions ‫ و ال‬type ‫ و ال‬size ‫ بيبقى فيها ال‬inode ‫ال‬ Moved Mohamed 50

files ‫ الى متخزن فيها ال‬memory ‫ فى ال‬locations


Inode
directory entry
Inode# File File Access
Pernissions
50 size type time
File name Inode# Data blocks (storage device)
Salah 50 BLK1 BLK2
Block 1

Block 2

Inode
.
. directory entry
Inode# File File Access
Pernissions . File name Inode#
Data blocks (storage device) 50 size type time . Moved Mohamed 50

BLK1 BLK2 Block n


Block 1
Inode
Inode# File File Access
Block 2 50 size type time
Pernissions
Data blocks (storage device)
BLK1 BLK2
. Block 1
.
. Block 2
.
.
.
Block n .
.

Block n
Rename file
dentary ‫ فانا بغير بس فى ال‬file ‫لو عايز اغير اسم ال‬
directory entry
Linking file (hard link)
File name Inode#
Mohamed 50
data ‫ لل‬dublication ‫ بس منغير ما اعمل‬file ‫لو عايز اعمل نسخه من‬
inode ‫ جديده نخليها تشاور على نفس ال‬dentry ‫ساعتها بنعمل‬
‫كدا لو غيرت فى النسخه يبقى اكنى بغير فى االصل‬
Inode
shortcut ‫ذى ال‬
Inode# File File Access
Pernissions
Data blocks (storage device) 50 size type time /home/salah/desktop/textfile /home/anas/desktop/newtextfile
File name Inode# File name Inode#
BLK1 BLK2
Block 1 Textfile 50 Newtextfile 50

Block 2
Inode
. Inode# File File Access
. Pernissions
Data blocks (storage device) 50 size type time
.
. BLK1 BLK2
Block 1

Block n
Block 2

.
.
Moving file within the same FS (the same partition ) .
.
inode ‫ او اغير ال‬content ‫انا كدا مش محتاج اغير ال‬ -
‫ القديمه و اعمل واحده جديده بتشاور على نفس ال‬dentry ‫انا محتاج امسح ال‬ - Block n

inode
‫ عشان يفصلو بين البيانات و اسمها بحيث‬dentary ‫ و ال‬inode ‫و دا السبب انهم فاصلين بين ال‬
directory entry directory entry
‫ فى مكانين مختلفين باسمين مختلفين بس بيكتبو فى نفس المكان فى ال‬2 files ‫يبقى عندى‬
File name Inode# File name Inode#
Mohamed 50 Moved Mohamed 50 memory

Inode
Inode# File File Access
Pernissions
Data blocks (storage device) 50 size type time

BLK1 BLK2
Block 1

Block 2

.
.
.
.
number of hard links ‫ بيشاور عليه الرقم دا هوا‬4 dentry ‫ ليه‬desktop ‫كدا ال‬
Block n
hardlinks ‫مشاكل ال‬
1- Applicable only to file not directory
loop ‫ عشان ممكن تعمل‬hardlinks ‫ من ال‬directories ‫شالو ال‬
2- Desent work across file systems
inode number ‫ ممكن يبقى فى نفس ال‬different file system ‫الن فى ال‬
Symbolic links

/home/anas/desktop/newtextfile
File name Inode#
Newtextfile 50
Inode
Inode# File File Access
Pernissions
50 size type time

BLK1 Mode = symbolic link


Data blocks (storage device)
Block 1
/home/anas/desktop/file
Different file system

/home/anas/desktop/file
File name Inode#
file 50 l ‫ بقى‬d ‫ بدل‬type ‫ هالقى ال‬ls -l ‫بال‬
file ‫ دا بيشاور على انهى‬file ‫ بيقول هوا ال‬-> ‫و السهم‬
Inode
Inode# File File Access
Deleting hard links
Pernissions
Data blocks (storage device) 50 size type time

BLK1 BLK2 Mode = file


Block 1
/home/anas/desktop/file /home/salah/desktop/file

Block 2 File name Inode# File name Inode#


file 50 Copiedfile 50
.
.
.
. Inode

Block n
Inode# File File Access
Pernissions
Data blocks (storage device) 50 size type time

‫ جداد‬dentry , inode , block ‫ جديد ب‬file ‫ التانى بعمل‬file system ‫هنا فى ال‬ Block 1
BLK1 BLK2 Mode = file

‫ االوالنى‬file system ‫ فى ال‬file ‫ العنوان بتاع ال‬block ‫و بكتب فى ال‬


Block 2
‫ لل‬link ‫ اكيد هيبقى‬content ‫ يبقى كدا ال‬mode = symbolic link ‫و اول ما يبص يالقى ال‬
.
‫ الحقيقى‬file .
‫مشكلتها انها ابطا‬ .
.
‫ نفسه بدل ما كان بيحطه فى‬inode ‫ فى ال‬path ‫ و بقو يحطو ال‬fast symbolic link ‫فعملو ال‬
Block n
data block ‫ال‬
‫ او االصل‬link ‫هنا انا مش عارف فين ال‬
/home/anas/desktop/newtextfile content ‫ يبقى اكيد مش همسح ال‬content ‫ بيشاور على ال‬dentry ‫طالما فى اى‬
File name Inode# ‫همسحها بس لما ميبقاش فى اى حد بيشاور عليه‬
Newtextfile 50

Inode
Deleting symbolic link
Inode# File File Access
Pernissions
50 size type time link ‫هنا انا عارف فين االصل و فين ال‬
BLK1 Mode = symbolic link Block 1 ‫ لو موجود‬block ‫ بتاعتها و ال‬inode ‫ و ال‬entry ‫ هيشيل ال‬link ‫لو مسحت ال‬
/home/anas/
desktop/file broken link ‫ االصلى هيعمل‬file ‫لو مسحت ال‬
‫ مش موجود‬file ‫ بيشاور على‬link ‫يعنى هيبقى عندى‬
Different file system
/home/anas/desktop/newtextfile
/home/anas/desktop/file File name Inode#
Newtextfile 50
File name Inode#
Inode
file 50
Inode# File File Access
Pernissions
50 size type time

BLK1 Mode = symbolic link


Inode Data blocks (storage device)

Inode# File File Access Block 1


Pernissions /home/anas/desktop/file
Data blocks (storage device) 50 size type time

BLK1 BLK2 Mode = file


Block 1

Block 2

.
.
.
.
Linking commands
Block n $ln <original file > <destination location>
hard link ‫دا بيعمل‬
symbolic link ‫اعرف منين ان دا‬
$ln -s <original file > <destination location>
symbolic link ‫دى بتعمل‬
) relative path ‫ ( لو حطيت‬absolute path ‫و هنا الزم احط‬
Seeking help
man Manual ‫ بتاعت اى حاجه فى‬manual ‫بيعرضلى ال‬
linux ‫ال‬
whatis ‫ بال‬manual ‫ معينه من ال‬pag ‫بدور على‬
keyword
apropos ‫معناها فيما يتعلق ب‬
keywork ‫بيدور على حاجه معينه بال‬
info Information
<command> -h
<command> --help ‫ مش هعرف اقراها‬compressed ‫ دى‬files ‫ال‬
sections ‫ بيتقسم لشويه‬user manual ‫ال‬
(1) For commands
Man options ‫ و ال‬commands ‫ال‬
‫ بتاعها‬manual ‫ الى عايز يجيبلى ال‬command ‫بنكتب بعديها اسم ال‬ - (2) For system calls
) functions ‫ ( اسامى ال‬kernel ‫ و ال‬user ‫ الى بين ال‬interfaces ‫دى ال‬
(3) C library functions
C ‫ بتاعت ال‬functions ‫شرح لل‬
(4) Special file names
(5) File formats for linux files
configurations ‫ الغريب الى بيبقى فيه ال‬format ‫ذى ال‬

‫ مثال‬command ‫ بتاع ال‬section ‫ معين بدل ما يدور فى ال‬section ‫لو عايزيه يدور فى‬
$man <n> <name>
etc ‫ موجود فى ال‬file ‫ و فى منها‬command ‫ فى منها‬passwd ‫طب ليه كدا ؟ الن مثال كلمه‬
LS(1)
$man 1 passwd
‫ فى ال‬section number ‫ دى هيا ال‬1 ‫ و ال‬ls command ‫ بتاع‬manual ‫معناها ان دا ال‬
user ‫ بتاع ال‬password ‫ الى بيغير ال‬passwd ‫ الى اسمه‬command ‫كدا هيجيبلى ال‬
section ‫ بيتقسم لكذا‬manual ‫ الن كل‬manual
$man 5 passwd
command ‫بعد كدا بيحطلى اسم ال‬ -
‫ بيتتب ازاى‬command ‫ بتاع ال‬format ‫و بعدين ال‬ - etc ‫ جوا ال‬passwd ‫ الى اسمه‬file ‫كدا هيجيبلى تفاصيل عن ال‬
$man passwd
command ‫ الى هوا ال‬passwd ‫ يالقى فيه كلمه‬section ‫كدا هيجيبلى اول‬

‫ بالتالى‬distribution ‫ ل‬distribution ‫ دى بتختلف من‬manual pages ‫مكان ال‬ -


command ‫ بستخدم ال‬system ‫ فى ال‬manual pages ‫عشان اعرف مكان ال‬
manpath ‫الى اسمه‬

‫ برضو؟‬manual ‫ دا عارف منين مكان ال‬command ‫طب هوا ال‬


‫ فايل اسمه‬etc folder ‫ بتاعه فى ال‬configuration file ‫عارف من ال‬
Etc/manpath.cfg

man man ‫ بعمل‬man command ‫لو عايز اعرف عن ال‬

manual paths ‫ متخزن فيه ال‬environment variable ‫او احيانا بيبقى في‬ -
/usr/share/man ‫ موجوده فى‬manuals ‫ ال‬ubuntu ‫فى ال‬
Whatis data base Manpath ‫ الى متخزن فيه ال‬location ‫بيجيبلى ال‬
manual pages ‫هوا جدول فيه حاجات متاخده من ال‬ compressed ‫ و دى بتبقى‬manual files
files
title , section number , name field ‫بيبقى فيه ال‬
Whatis <complete keyword> ‫ بتاع‬field ‫ فى ال‬data base ‫بيدور جوا ال‬
apropos ‫ او‬whatis command ‫ دى بستخدم ال‬data base ‫عشان اتعامل مع ال‬ ‫ عن الكلمه المعينه الى انا كاتبها‬name ‫ال‬
$whatis Apropos <part of keyword> ‫ عن‬whatis data base ‫بيدور جوا ال‬
title ‫ بال‬data base ‫بيدورجوا ال‬ Man -k <part of keyword> ‫الكلمه او جزء من الكلمه دى‬
Info <command> ‫ بتاع ال‬information page ‫بيدينى ال‬
‫ دا‬command
<command> --help ‫ دا‬command ‫ازاى استخدم ال‬

command title , ‫ و بيطبعلى ال‬password ‫ باسم‬title ‫جابلى كل حاجه موجوده فى ال‬


section number , description
‫الزم اكتبله الكلمه على بعضها‬
‫ممكن ادور بيه على كذا حاجه فى نفس الوقت‬
Apropos <keyword>
field ‫دا بيدور فى اى‬
‫مش الزم اقوله الكلمه على بعض‬

‫ممكن استخدم‬
$man -k <keyword>
‫ بيعمله‬apropos ‫هيعمللى نفس الى‬
Info
info page ‫ بيطبع ال‬command ‫ بتاعت ال‬manual ‫ بس دا بدل ما يطبع ال‬man ‫هوا ذى ال‬
‫ طب ايه الفرق؟‬... command ‫بتاعت ال‬
GNU project ‫ الى عامله ال‬info pages ‫ال‬
linux ‫ الى عاملها‬manuals ‫ال‬
$info gzip

Help from within -h , --help


‫ الى جواه‬help ‫ لل‬print ‫ بعمل‬command ‫من جوا ال‬
$cp –help
Linux information project
www.lifo.org
Linux documentation project
www.tldp.org

Man <command name> command ‫ بتاعت‬manual ‫بيعرضلى ال‬


‫معين‬

Composite Commands

‫ بيعمل وظيفه صغيره جدا‬command ‫كل‬ -


‫ بتاعته‬options ‫و بيعملها بكل ال‬
‫ بيقدر يركب مع ال‬command ‫كل‬ -
‫ التانيه‬cammands

‫ عشان يعرف‬model ‫ بيبقى ليه‬command ‫كل‬


‫ التانيه‬commands ‫يركب مع ال‬
error ‫ و‬output ‫ و‬input ‫ دا ليه‬model ‫ال‬ cat ‫ هيعملله‬file ‫هنا لو لقى ال‬
standard ‫ و بيبقى‬stream ‫كل واحد من دول بيتسمى‬ command ‫ ساعتها هيروح ينفذ ال‬error ‫ االوالنى متنفذش و طلعلى‬command ‫بس لو ال‬
Function Stream name Stream Default device ‫التانى‬
descriptor Anding &&
Input Stdin 0 Keyboard ‫لو االوالنى نجح اعمل الى بعده‬
Output Stdout 1 Screen $ mkdir folder && cd folder
Error Stderr 2 Screen

sequential commands
‫ تانى‬command ‫ بتاع‬input ‫ معين بيخش فى ال‬command ‫ بتاع‬output ‫يعنى ال‬
Conditional commands
‫ دا مش هيشتغل اال لو حصل شيئ معين‬command ‫ان ال‬
Command loops
‫ عدد مرات معينه‬command ‫انى انفذ‬
Input output redirection
‫ مثال‬log file ‫ يطلع على الشاشه اوديه فى مكان تانى ذى‬error ‫ان بدل مثال ما ال‬
Pipes
Command argument expansion
‫ الواحد‬command ‫دى على مستوى ال‬
Command argument quoating

Sequential command
‫ بتشتغل ورا بعض‬commands ‫ان ال‬ -
$<command 1> ; <command 2> ; <command 3>

‫ بتاخد وقت طويل‬command ‫بستخدمها لو فى‬ ‫ التانى‬command ‫لما فشل معملش حاجه و لو نجح يروح ينفذ ال‬
$ make ; sudo make install Command loop
‫ اقدر اكتبهم‬sudo make ‫ و استنى فتره و بعدين لما يخلص ارجع اعمل‬make ‫هنا بدل ما اعمل‬ $ for file in *.txt
‫جمب بعض‬ ➢ do
independent ‫ هيا‬inputs ‫ و ال‬outputs ‫ دى ال‬commands ‫ال‬ ➢ mv -v $file $file.old
Conditional commands ➢ done

|| oring
‫لو االوالنى منجحش اعمل الى بعده‬ -
‫ التانى مش هيشتغل اال لو االوالنى نجح‬command ‫ال‬
$ cat <file name> || echo “file not found”
... ‫ دا‬file ‫ لل‬display ‫دا معناه ان اعمل‬
‫لو نجح خالص متعملش حاجه‬
echo “file not found” ‫لو فشل اعمللى‬
‫‪Input output redirection‬‬
‫ال ‪ standard input device‬دايما هوا ال ‪ keyboard‬و ال ‪standard outout‬‬ ‫‪-‬‬
‫هوا ال ‪screen‬‬
‫طب لو عايز اخلى مثال ال ‪ command‬ياخد ال ‪ input‬من فايل و يخرج ال‬ ‫‪-‬‬
‫‪ output‬على فايل تانى مثال هنا بستخدم ال ‪redirection‬‬
‫‪$ <command> > file‬‬
‫دا معناه ان خد ال ‪ output‬بتاع ال ‪ command‬دا و حطهولى فى ‪ file‬اسمه ‪file‬‬
‫لو ال ‪ file‬مش موجود هيعمل ‪ file‬جديد‬
‫لو موجود هيمسحه و يكتب من اول و جديد‬
‫‪$ command >> file‬‬
‫هيا هيا بس هنا بيكمل على ال ‪ file‬القديم لو ال ‪ file‬موجود ( مش هيمسح حاجه )‬

‫ازاى ادمج ‪2file‬‬

‫امر ‪ cat‬طلع اختصار ‪ concatenate‬يعنى ادمج ‪ file‬مع ‪file‬‬

‫فى حاله حصل ‪ error‬فى ال ‪ command‬ال ‪ error‬هيطلع على ال ‪ screen‬النى عملت‬


‫‪ redirection‬لل ‪ output‬بس مش لل ‪ error‬فهيفضل ال ‪ error‬يطلع على ال ‪ screen‬ذى ما‬
‫هوا ( لغايه ما اعمله ‪) redirection‬‬

‫هنا حطيت ال ‪ file list‬فى ‪ file‬اسمه ‪anas.txt‬‬

‫طب لو عايزين نعمل ‪ redirect‬لل ‪ errors‬ساعتها بنحط ال ‪stream number‬‬


‫ بالعه الحاجه الى بتتكتب فيه اكنها بتترمى ممكن استخدمها لو مش عايز اشوف ال‬file ‫دا ذى‬
) ‫ دا‬command ‫ بتاع ال‬output
/dev/zero
zeros ‫ ب‬inputs ‫ بيخلى كل ال‬input device ‫دا‬
/dev/random
input random ‫ بيخليلى ال‬input device ‫دا‬
/dev/urandom
‫ برضو‬random ‫دا‬
‫ممكن اكتب‬
> , >> For output stream redirection /dev/full

>for overwrite file ‫ مليان فمثال لو بعمل برنامج لو دخلله‬file ‫ ل‬simulation ‫ عباره عن‬output device ‫دا‬
test ‫ دا عشان اعمل‬device ‫ على ال‬output ‫ مثال فبخليه يخرج ال‬error ‫مليان هيطلعلى‬
>>for appending
‫للبرنامج دا‬
1> For output stream redirection Example
2> For error stream redirection
dd if=/dev/zero of=/dev/null bs=500M count=1

<command> 1> file.txt


Duplicate data (dd) from input file (if) of /dev/zero (virtual limitless supply of
<command> 2>> error.txt
0's) into output file (of) of /dev/null (virtual sinkhole) using blocks of 500M
<command> > output.txt 2> error.txt (overwrite) size (bs = block size) and repeat this (count) just once (1).
<command> 1>> output.txt 2>> error.txt (append)
In general, this command should measure just memory and bus speeds.
command > file.txt 2>&1 However, it may fail if you do not have 500MB of RAM available. So, in a
output stream ‫ وديه على‬error stream ‫ و ال‬file.txt ‫ وديه على‬output ‫هنا قصدى ان ال‬ sense, it also implicitly benchmarks how fast your OS can allocate big
) file ‫ وديتهم على نفس ال‬output ‫ و ال‬error ‫( كدا ال‬... file.txt ‫الى هوا اصال رايح على ال‬ memory chunks.
Command &>file.txt Pipe
‫نفس الكالم الى فوق بس طريقه كتابه مختلفه‬ ‫ حاجه عن طريق ال‬process 2 ‫ معينه تبعت ل‬process ‫هوا طريقه بستخدمها عشان اخلى‬
Input redirection kernel
Command < file
‫ دا‬file ‫ بتاعك من ال‬input ‫خد ال‬

wc -l < log-file.log Wc word cound


‫بيعد عدد الكلمات او الحروف او السطور‬
-l count for line
‫ بتاعك ( الى‬input ‫كدا انا بقوهلل خد ال‬
‫ الى اسمه‬file ‫ ) من ال‬redirection ‫معملوه‬
‫ و عدلى عدد السطور فيه‬log-file.log
sort < log-file > sorted-log-file ‫ بيرتب الحاجات الى بدخلهاله فى ال‬Sort
input
input ‫ ك‬log-file ‫فانا مدخلله‬
file ‫ على ال‬output ‫هيرتبه و يبعت ال‬
sorted-log-file ‫اسمه‬ data ‫ عايزين يبعتو لبعض‬process ‫لو عندى اتنين‬ -
Mail ceo@company.com < resume ‫ ل‬email ‫ بيبعت‬command ‫ هوا‬Mail )‫ ( االزرق الى فوق‬user plane ‫ فى ال‬data ‫مش هينفع يبعتو ال‬ -
resume ‫ اسمه‬file ‫ و بديله‬ceo ‫ و ال‬pipe ‫ بتاعتها فى ال‬data ‫ ترمى ال‬fd1 ‫ و اخلى‬kernel ‫ فى ال‬pipe ‫فبعملهم‬ -
‫ واحد‬input ‫ ل‬redirection ‫فهنا انا عامل‬ pipe ‫ دى من ال‬data ‫ تستقبل ال‬fd0
email ‫ التانى ( الى هوا ال‬input ‫و ال‬ ‫ تحتاجها‬fd0 ‫ لغايه ما ال‬data ‫ بيتخزن فيها ال‬buffer ‫ دى عباره عن‬pipe ‫ال‬ -
‫ ) مديهوله بايدى‬address
intreprocess communication via kernel plane ‫هيا‬
sudo apt-get
IPC ( interprocess communication) ‫دا اسمه‬
install mailutils unidirectional communication ‫ هيا‬pipe ‫ال‬
fd0 ‫ ل‬fd1 ‫ الى فى الصوره دى راحه من‬pipe ‫يعنى ال‬ -
Spell < report.txt > error.log spell check ‫بيعمل‬
fd1 ‫ ل‬fd0 ‫ كمان راحه من‬pipe ‫ الزم ابنى‬fd1 ‫ ل‬fd0 ‫ من‬data ‫لو عايز ابعت‬ -
‫ اسمه‬file ‫ من‬input ‫و داخلله ال‬
‫ فى‬output ‫ و بعدين يحطلى ال‬report.txt
pipes ‫ازاى استخدم ال‬
error.log
$ command1 | command2
‫ ؟‬file ‫ على حاجه تانيه غير ال‬redirect ‫ازاى اعمل‬ ‫ شغالين فى نفس الوقت و‬2 children shell ‫ فى‬command2 ‫ و‬command1 ‫دا معناه اعملى‬
pipe ‫ عن طريق ال‬command2 ‫ بتاع‬input ‫ بيغذى ال‬command1 ‫ بتاع‬output ‫ال‬
‫ معين‬device ‫ مثال على‬output ‫ لل‬redirection ‫ فانا هعمل‬file ‫ هوا‬linux ‫ فى ال‬device ‫اى‬
/dev ‫ بتاعه جوا‬file ‫ معين او فى ال‬device ‫ على‬output ‫ معناها انى هكتب ال‬...
‫ ؟‬redirection ‫ الى ممكن اعملها‬devices ‫ايه ال‬ $ cat | search | exclude errors
/dev/stdout
/dev/stderr Examples
/dev/stdin $ cat log-file.log | grep “error”
/dev/null search ‫ عشان يعمل‬grep ‫ اسمه‬command ‫ و بدخله على‬file ‫ بتاع ال‬output ‫هنا باخد ال‬
error ‫على كلمه‬
screen ‫ هيروح لل‬output ‫و ال‬ Brace expansion
$ man gzip | grep -i “compress” Echo abc-{A,B,C}def
case in ‫ معناها‬-I ‫ و‬compress ‫ على كلمه‬search ‫ و اعمله‬gzip manual ‫بقوهلل خد ال‬ ‫ دا لكل حاجه جوا ال }{ دول‬command ‫معناها كرر ال‬
sensitive ‫يعنى اكنى كاتب‬
$ cat log-file-1.log log-file-2.log | grep -I “error” Echo abc-Adef
$ cat name-list.txt | sort Echo abc-Bdef
‫برتب اسماء الناس الى فى الفايل دا‬ Echo abc-Bdef

$ cat * | grep -I “error” | grep -v “severe” | sort > file.log Echo a{ A{1,2} , B{3,4} }b
error ‫ و بعدين هاتلى بس السطور الى فيها كلمه‬concatenate ‫ و اعملها‬files ‫خد كل ال‬
‫ فى‬output ‫ و بعدين رتبهم و حطلى ال‬severe ‫و بعدين هاخد منهم بس السطور الى فيهم كلمه‬ Echo aA1b
file.log ‫ اسمه‬file
Echo aA2b
$ cat resume | mail Mohamed.salah5369@gmail.com
Echo aB3b
Echo aB4b
Tee command
‫ من ناحيتين‬output ‫ بيخشلها حاجه من ناحيه تطلع ال‬t ‫ذى ماسوره حرف‬ {1..5}
‫ و فى نفس الوقت اعرضه على الشاشه‬file ‫ و اخزنه فى‬output ‫اخد مثال ال‬ {A..Z}
<command> | tee <list of sinks> ‫من كذا ل كذا‬
‫ و كمان بيعرضها على الشاشه‬outputs ‫ لمجموعه من ال‬output ‫ببعت ال‬
$ make | tee make.out.txt
Argument quoting
‫ و فى نفس الوقت يتعرض على الشاشه‬file ‫ فى‬output ‫كدا هيخزن ال‬
“”
$ make | tee -a make.out.txt
string ‫معناها الى جوا دا اعتبره‬
append ‫ معناها‬a
$ ‫ال ”“ مبتقدرش تتعامل مع ال‬
$ date | tee file1 file2 file3 file4
text ‫ال ’‘ اقوى من ال ”“ النها بتعامل كل حاجه جوا ك‬
screen ‫ دول و بعدين يبعتها على ال‬files ‫هيخزنها فى شويه ال‬
$ make | tee make.out.txt >> file2
‫ الى كان هيخرج على ال‬output ‫ و ال‬make.out.txt ‫ ل‬output ‫كدا خليته يخرجلى ال‬
file2 ‫ ل‬redirect ‫ عملتله‬screen
$ make | tee make.out | grep “error”
‫ ل‬pipe ‫ التانى عملتله‬output ‫ و ال‬make.out ‫ يروح ل‬make ‫ بتاع‬output ‫كدا انا خليت ال‬
error ‫ عشان يدور فيه على كلمه‬grep command
Yes command
$ yes <string> | command
‫ الى بعده‬command ‫ معينه اديها لل‬string ‫ بيطلع‬command ‫دا‬
‫ يبقى اعمل‬y ‫ عايز عشان يشتغل انى اضغط‬command ‫مثال لو ال‬ `` back quoat
$ yes “y” | <command>
$ yes | rm -r ~/project-folder/ Example
Cd /lib/module/`uname -r`
Command argument expansion
string ‫ ك‬command ‫ بتاع ال‬output ‫ خالنى اعتبر ال‬back quotation ‫كدا ال‬
‫ دى‬arguments ‫ لل‬expand ‫ هيا الى تعمل‬shell ‫انى اكتب حاجه صغيره و اخلى ال‬
Cd /lib/module/$(command)
Wild card
‫هيا هيا‬
wild card ‫اشهر طريقه هيا بتاعت ال‬
Pushd `pwd`
Cat *.txt
stack ‫ لل‬current directory ‫اكنى بضيف ال‬
.txt ‫ اسمه اى حاجه و اخرها‬file ‫ بقى اى‬argument ‫يعنى ال‬
Touch `date +%m-%d-%Y`
file name / directory names ‫ بيعبر بس عن ال‬wild card ‫ال‬
‫ بتاع النهارده‬date ‫ باسم ال‬file ‫هنا بعمل‬
Echo *
file names ‫معانها اطبع كل ال‬

Tilde expansion ~
/home/username ‫دى بدل‬
$ and ${} parameter expansion
$echo $PATH
$echo ${PATH}
‫ دا‬variable ‫ بتاعت ال‬content ‫قصدى اطبعلى ال‬
Arithmetic expansion
$echo $((‫))حسبه معينه‬
$echo $(( 5 + 3 ))
$echo $(( ((2**6)) + 3 ))
double ‫خلى بالك االقواس بتبقى كلها‬
‫ اكتب اسم تاب او اكتب ال‬save ‫ باسم تاب ( يعن و انا بعمل‬file ‫ممكن اعمل نسخه من ال‬ -
Vim file editor ) ‫ كامل بتاع المكان اىل عايز احط فيه النسخة‬path
‫ هوا‬vi (the old version of vim) ‫ او‬Vim - :w file_name
command line based text editor :w file_path/file_name
command ‫عشان افتحه بستخدم ال‬ - ‫ بستخدم‬file ‫ عىل ال‬overwrite ‫عشان ا‬ -
[root@localhost ~]# vim :w!
‫ مر رتي‬d ‫عشان امسح سطر كامل بدوس عىل‬ -
‫ بيخلين اضيف سطر مكان ما انا واقف‬command o ‫ال‬ -
‫ او بتعمل‬save ‫منغي متعمل‬
‫ ر‬quit ‫ سواء بتعمل‬action ‫ لل‬confirming ‫ال ! وظيفتها ال‬ -
‫ تاب‬file ‫عىل‬
‫ ي‬overwrite
‫ عشان ا‬a ‫ او‬I ‫ اروح للمكان اىل انا عايزه و ادوس عىل‬command mode ‫ممكن و انا يف ال‬ -
‫ حاجه يف المكان دا‬append
file ‫ ممكن اغلط و اعدل يف اى جزء يف ال‬insert mode ‫الميه يف كدا اب لو اتنقلت يف ال‬ ‫ر‬
commands ‫ دى عشان انفذ‬buttons ‫ ممكن استخدم ال‬command mode ‫و انا يف ال‬ -
) : ‫ بس مش محتاج اكتب‬button ‫معينه ( هنا بدوس عىل ال‬

A append at the end of line


I insert mode
a append at the current location

x del one letter


D del to the end of line
u undo last change

d delete object on the cut buffer


p paste object on the cut buffer

Vim modes
3 modes ‫ عنده‬vim ‫ال‬ -
- Command mode (on start)
save , quit , discard , undo , etc… ‫عشان اعمل‬
ESC ‫ بال‬command mode ‫بخش ال‬
: colon ‫ بيتكب الزم يكون اوله‬command ‫اى‬
‫ دا بقدر‬mode ‫ ( الب يف ال‬view mode ‫ بيتسىم ال‬command mode ‫أحيانا ال‬
) ‫منغي ما اعدل فيه‬
‫ ر‬file ‫اشوف ال‬
vim ‫ اول ما بفتح‬default mode ‫دا ال‬
- Insert mode (editing mode) (press i)
‫ اىل بكتب فيه أصال‬mode ‫دا ال‬
i ‫ بال‬insert mode ‫بخش ال‬
‫او اب ابتدى الكتابه عىل طول‬
- Exit mode
‫معرفش عنه حاجه‬

:q ... option ‫ بستخدم ال‬quit ‫عشان اعمل‬ -


‫ طرق‬3 ‫ يف‬file name ‫عشان اختار ال‬ -
vim ‫ األول و بعدين افتحه ب‬text file ‫اعمل ال‬ o
vim command ‫ و انا بكتب أصال ال‬text file ‫اكتب اسم ال‬ o
[root@localhost ~]# vim h.txt
options ‫ أصال يف ال‬write ‫ و انا بعمل‬file ‫اكتب اسم ال‬ o
:w file.txt
‫ عىل طول‬insert mode ‫ساعتها بيخش يف ال‬
‫ للتعديل دا او اب ا‬discard ‫ يائما اعمل‬quit ‫ بيحتاج من و انا بعمل‬file ‫اى تعديل يف ال‬
file ‫ ال‬overwrite
:q! quit without saving
:w write to file
:q quit (in case of the file is not saved , vim will ask you to save the
file first )
:wq = :x write to file and quit vim

mode ‫مني انا يف انىه‬


‫اعرف ر‬

‫لو مالقتش حاجه ى‬


‫يبق انا يف ال‬
‫ى‬
‫هتالف كاتب‬ insert mode ‫يف ال‬
command mode
–insert--
the find command
find , locate , whereis , which
‫معي‬
‫ ر‬file ‫ ل‬finding ‫ دى وظيفتهم انهم يعملو‬commands ‫ال‬
Whereis , which
binary , source , manual files ‫ دا بيدور عىل ال‬command ‫ال‬ -
$PATH , $MANPATH ‫بيدور عليهم يف األماكن المتحدده يف ال‬ -
‫نفسه‬OS ‫ يف ال‬builtin ‫ ال‬commands ‫ عىل ال‬search ‫ر يب‬
[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
/usr/share/man/man1p/ls.1p.gz

ls ‫ اىل اسمه‬binary file ‫دى كل األماكن اىل فيها ال‬


[root@localhost ~]# whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz
/usr/share/man/man1p/cat.1p.gz

‫ ؟‬bin file ‫ليه محتاج اعرف مكان ال‬


‫عي الزم أقوله انا قصدى عىل‬
‫ م ر‬command ‫ و استخدم‬script ‫عشان لما راج اكتب‬
path ‫ يف انىه‬command ‫انىه‬
‫ مكانها‬commands ‫يبق يف‬ ‫ و بالتاىل ممكن ى‬csh ‫ و يشغله عىل ال‬script ‫ياخد ال‬ ‫( الن ممكن حد‬
) ‫ بتدور يف مكان تاب‬shell ‫مختلف او ال‬
$PATH environment ‫ اىل متخزنه يف‬paths ‫ يف ال‬commands ‫ بيدور عىل ال‬shell ‫ال‬
variable

‫معي‬
‫ ر‬command ‫ بتاع ال‬binary file ‫انا عايز اعرف مكان ال‬ -
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
‫ى‬
‫دلوقن موجوده يف المكان دا‬ ‫ اىل اتنفذت‬ls ‫دى ال‬

file ‫عشان اعرف نوع ال‬


[root@localhost ~]# file /bin/cat
/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux 2.6.32,
BuildID[sha1]=b97cc8358edb123e8a9e21390f30924fe66a5e55, stripped

‫او ممكن استخدم‬


ls -F /bin/cat
-F --file-type formatted

executable ‫ال * معناها ان دا‬

Find
size ‫ اىل فيه او ال‬group ‫ بتاعه او ال‬user ‫معي سواء ب ( اسمه او نوعه او ال‬ ‫ ر‬file ‫بتدور عىل‬
) ‫بتاعه‬
Find <location to search in> -name <word to find>
‫ اىل انا ى‬criteria ‫ بنوع ال‬search ‫ب‬
‫اخيتها‬ ‫ري‬
-name File
-type d directory
f plain file
I symbolic link
-user ‫معي‬‫ ر‬user ‫كل الملفات اىل عملها‬
-size ‫ بتاعها كذا‬size ‫كل الملفات اىل ال‬
-group ‫ بتاعها كذا‬group ‫ اىل ال‬files ‫كل ال‬
) ‫ عليه‬permission ‫حق ادور فيه (الزم يكون ليا‬ ‫مينفعش ادور ف مكان مش من ى‬
‫ي‬

[root@localhost ~]# find ./ -name example


example ‫دور عىل اى حاجه اسمها‬
[root@localhost ~]# find . ! -name example
example ‫ال ! معناها دور عىل اى حاجه اسمها مش‬

Locate
‫ محصلوش‬file ‫ لو ال‬... modification ‫ اىل حصلها‬files ‫ بيعتمد يف البحث عىل ال‬locate ‫ال‬
‫ مش هيالقيه‬modification

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy