Notes in Linux System Administration: By: Mohamed Salah-El-Den
Notes in Linux System Administration: By: Mohamed Salah-El-Den
Notes in Linux System Administration: By: Mohamed Salah-El-Den
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
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
/etc/shells الى موجوده أنواعها ايه و مكانها فين في الshells عشان اشوف ال -
interpreter ال... الى بكتبهtext يترجم الinterpreter عشان اتعامل معاها بحتاجshell ال
terminal دا هوا ال
ى
/etc/shadow هيبق يف ال password و معملتلوشuser لو عملت -
User_name:!::0:99999:7:::
و بالتاىل مشpassword دا متحطلوشuser عالمه ال ! دى معناها ان لسه ال -
login هتعرف تعملله
Files Linux file system tree
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 دول بيشيلو
Etc
دا folderفيه كل ال configuration filesبتاعت ال system
اى برنامج بيشتغل عىل ال OSالزم ى
يبق عامل folderف ال etcيحط فيه ال configurations
يغي فيها
بتاعته عشان لو ال userعايز ر
ى
حقيق اقدر افتحه و اقرا اىل مكتوب فيه دا ذى representationلل deviceبس مش file
Mnt , media
دول عباره عن 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عشان اقدر
اقراهم
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
بتاع المكان الى انا واقف فيه او بنفذ االوامر فيهpath عشان يورينى ال
Change directory cd
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>
يعنى اعمللى listالى fileجوا binبس يكون بيبتدى ب sو بعديه اى characterتانى
?
بتحل محل حرف واحد
اى حرف (سواء كانت characterاو
numberاو symbolاو حتى لو مفيش
حرف) ذى ال * بس ال * كانت مجموعه
حروف انما ال ? هيا بتحل محل حرف واحد
بس
$df
على بعضهfile system دا امر بيبتكلم عن ال -
الن كل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
Block 2
Inode
.
. directory entry
Inode# File File Access
Pernissions . File name Inode#
Data blocks (storage device) 50 size type time . Moved Mohamed 50
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
/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
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
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
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 كدا هيجيبلى اول
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 ازاى استخدم ال
ممكن استخدم
$man -k <keyword>
بيعملهapropos هيعمللى نفس الى
Info
info page بيطبع الcommand بتاعت الmanual بس دا بدل ما يطبع الman هوا ذى ال
طب ايه الفرق؟... command بتاعت ال
GNU project الى عامله الinfo pages ال
linux الى عاملهاmanuals ال
$info gzip
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موجود ( مش هيمسح حاجه )
>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
$ 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 معينه ( هنا بدوس عىل ال
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
معرفش عنه حاجه
معي
رcommand بتاع الbinary file انا عايز اعرف مكان ال -
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
ى
دلوقن موجوده يف المكان دا اىل اتنفذتls دى ال
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 حق ادور فيه (الزم يكون ليا مينفعش ادور ف مكان مش من ى
ي
Locate
محصلوشfile لو ال... modification اىل حصلهاfiles بيعتمد يف البحث عىل الlocate ال
مش هيالقيهmodification