🔰 Linux Command Cheat Sheet
File Commands
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
SSH (Secure Shell)
-
-
-
-
Searching
-
-
-
-
Process Management
-
-
-
-
-
-
-
File Permissions
-
-
-
Networking
-
-
-
-
Archiving and Compression
-
-
-
-
System Info and Management
-
-
-
-
Misc Commands
-
-
-
-
File Commands
-
ls
- Directory listing-
ls -l
- Long listing format-
ls -a
- List all files including hidden files-
cd /path/to/directory
- Change directory-
pwd
- Display the current working directory-
mkdir directory_name
- Create a new directory-
rmdir directory_name
- Remove an empty directory-
rm file_name
- Remove a file-
rm -r directory_name
- Remove a directory and its contents recursively-
touch file_name
- Create or update a file-
cat file_name
- Concatenate and display the file content-
more file_name
- View file content page by page-
less file_name
- Improved viewing of file content over more
-
cp source_file target_file
- Copy files from source to target-
mv old_name new_name
- Rename or move a file/directorySSH (Secure Shell)
-
ssh user@host
- Connect to host as user-
ssh -p port user@host
- Connect using a specific port-
ssh-keygen -t rsa
- Generate RSA key pair-
ssh-copy-id user@host
- Copy your key to the remote server for password-less loginSearching
-
grep pattern files
- Search for a pattern in files-
grep -r pattern dir
- Recursively search for a pattern in a directory-
find dir -name name*
- Find files starting with name in a directory-
locate file_name
- Find files by name (uses a database)Process Management
-
ps aux
- Display your currently active processes-
ps aux | grep process_name
- Find a process named process_name-
top
- Display all running processes-
kill pid
- Kill a process with a given PID-
killall process_name
- Kill all processes named process_name-
bg
- List stopped or background jobs; resume a stopped job in the background-
fg
- Bring the most recent job to the foregroundFile Permissions
-
chmod +x file_name
- Make a file executable-
chmod 755 file_name
- Set read and execute permissions for owner and read for others-
chown user:group file_name
- Change file owner and groupNetworking
-
ifconfig
- Display all network interfaces and IP addresses-
ping host
- Send ICMP echo request to host-
traceroute host
- Display the route packets take to a network host-
netstat -tulnp
- Display listening ports and their applicationsArchiving and Compression
-
tar cf archive_name.tar files
- Create a tar archive containing files-
tar xf archive_name.tar
- Extract files from a tar archive-
gzip file_name
- Compress a file and rename it to file.gz-
gunzip file.gz
- Decompress file.gz back to the originalSystem Info and Management
-
uname -a
- Show system and kernel info-
df -h
- Display free disk space in a human-readable form-
du -sh directory_name
- Show disk usage of a directory in human-readable form-
free -m
- Show free and used memory in MBMisc Commands
-
man command_name
- Show manual for a command-
echo "text"
- Display a message on the screen-
date
- Display the current date and time-
uptime
- Show how long the system has been running❤9
Storybook 9 is here!
Read more
▶️ Interaction tests
♿️ Accessibility tests
👁 Visual tests
🛡 Coverage reports
🚥 Test widget
🪶 48% Leaner
✍️ Story generation
🏷 Tag-based organization
🌐 Story globals
🏗 Major updates for Svelte, Next.js, React Native, and more!
Read more
❤4
إزاي تنفذ الـ Caching في Node.js؟ 🤔
.
.
لو أنت شغال بـ Node.js، فـ أكيد قابلت في يوم مشكلة إن الـ API عندك بيبقى بطيء بسبب requests كتير أو عمليات تقيلة زي queries على database، وبدأت تفكر:
"ليه كل مرة أجيب نفس الداتا؟ طب مفيش حل أسرع؟"
الإجابة هي: Caching.
وده اللي هنتكلم عنه اليوم بالتفصيل....
[ كل الأكواد هتلاقيها في التعليقات تحت الرسالة ]
———
🎯 إيه هو الـ Caching؟
ببساطة، هو إنك تحفظ نسخة من الداتا مؤقتًا في مكان تاني (بيكون أسرع من المصدر الأساسي زي الـ DB)، علشان لما تيجي تطلب نفس الحاجة تاني، ما تروح تجيبها من الأول، لا، ترد بسرعة من الـ cache.
وده بيفرق جامد جدًا في السرعة، والأداء، والحمل على السيرفر.
———
إزاي تعمل الـ Caching في Node.js؟
1. الـ In-Memory Caching (باستخدام node-cache أو lru-cache)
لو عندك داتا مش كبيرة ومش محتاج تشاركها بين أكتر من instance، فـ in-memory caching بيكون حل سريع وسهل.
📌 مناسب لحالات زي الداتا القليلة، أو عمليات حسابية تقيلة، بس خلي بالك إنه volatile، يعني لو السيرفر عمل restart، كل حاجة بتروح.
———
2. الـ Redis Caching (الحل الأقوى والأشهر)
لو بتدور على Cache centralized وسريع وتقدر تشارك الداتا بين أكتر من instance، يبقى Redis هو الأفضل هنا.
🎯 الـ Redis سريع جدًا، وبيستخدم في مشاريع كبيرة زي Twitter و GitHub. وكمان تقدر تتحكم في TTL، وتعمل invalidation، وتخزن أكتر من نوع داتا.
———
3. الـ Caching Responses مباشرة (مثلًا في GraphQL أو REST)
لو شغال مثلاً بـ Apollo Server في GraphQL، تقدر تستخدم built-in caching
أو حتى لو شغال REST تقدر تستخدم middlewares زي apicache أو express-cache-controller.
———
🤔 إمتى تستخدم الـ Caching؟
- لما تكون بتكرر نفس الـ requests بكميات كبيرة.
- لما الداتا تكون مش بتتغير كتير.
- لو الـ DB عندك بطيئة أو بتاخد وقت في المعالجة.
- لو عايز تقلل الترافيك على الـ backend.
———
⚠️ خلي بالك:
لازم تعمل Cache Invalidation كويس، علشان ما ترجع داتا قديمة بعد التحديث.
بلاش تستخدم الـ Caching لأي داتا حساسة أو شخصية (privacy first).
خليك دايمًا عارف إمتى تعمل Cache، وإمتى لا... مش كل حاجة محتاجة تتخزن.
———
وفقكم الله لكل خير 🌿
.
.
لو أنت شغال بـ Node.js، فـ أكيد قابلت في يوم مشكلة إن الـ API عندك بيبقى بطيء بسبب requests كتير أو عمليات تقيلة زي queries على database، وبدأت تفكر:
"ليه كل مرة أجيب نفس الداتا؟ طب مفيش حل أسرع؟"
الإجابة هي: Caching.
وده اللي هنتكلم عنه اليوم بالتفصيل....
[ كل الأكواد هتلاقيها في التعليقات تحت الرسالة ]
———
🎯 إيه هو الـ Caching؟
ببساطة، هو إنك تحفظ نسخة من الداتا مؤقتًا في مكان تاني (بيكون أسرع من المصدر الأساسي زي الـ DB)، علشان لما تيجي تطلب نفس الحاجة تاني، ما تروح تجيبها من الأول، لا، ترد بسرعة من الـ cache.
وده بيفرق جامد جدًا في السرعة، والأداء، والحمل على السيرفر.
———
إزاي تعمل الـ Caching في Node.js؟
1. الـ In-Memory Caching (باستخدام node-cache أو lru-cache)
لو عندك داتا مش كبيرة ومش محتاج تشاركها بين أكتر من instance، فـ in-memory caching بيكون حل سريع وسهل.
📌 مناسب لحالات زي الداتا القليلة، أو عمليات حسابية تقيلة، بس خلي بالك إنه volatile، يعني لو السيرفر عمل restart، كل حاجة بتروح.
———
2. الـ Redis Caching (الحل الأقوى والأشهر)
لو بتدور على Cache centralized وسريع وتقدر تشارك الداتا بين أكتر من instance، يبقى Redis هو الأفضل هنا.
🎯 الـ Redis سريع جدًا، وبيستخدم في مشاريع كبيرة زي Twitter و GitHub. وكمان تقدر تتحكم في TTL، وتعمل invalidation، وتخزن أكتر من نوع داتا.
———
3. الـ Caching Responses مباشرة (مثلًا في GraphQL أو REST)
لو شغال مثلاً بـ Apollo Server في GraphQL، تقدر تستخدم built-in caching
أو حتى لو شغال REST تقدر تستخدم middlewares زي apicache أو express-cache-controller.
———
🤔 إمتى تستخدم الـ Caching؟
- لما تكون بتكرر نفس الـ requests بكميات كبيرة.
- لما الداتا تكون مش بتتغير كتير.
- لو الـ DB عندك بطيئة أو بتاخد وقت في المعالجة.
- لو عايز تقلل الترافيك على الـ backend.
———
⚠️ خلي بالك:
لازم تعمل Cache Invalidation كويس، علشان ما ترجع داتا قديمة بعد التحديث.
بلاش تستخدم الـ Caching لأي داتا حساسة أو شخصية (privacy first).
خليك دايمًا عارف إمتى تعمل Cache، وإمتى لا... مش كل حاجة محتاجة تتخزن.
———
وفقكم الله لكل خير 🌿
❤7
AI Fluency
———
What you'll learn:
- Understand the purpose and structure of the course to determine if it will meet my learning needs
- Recognize the importance of AI Fluency in today's world
- Identify key components of your learning journey ahead
- Set clear expectations for what you’ll gain from this course
———
🔗 https://www.anthropic.com/ai-fluency
Learn to collaborate with AI systems effectively, efficiently, ethically, and safely
———
What you'll learn:
- Understand the purpose and structure of the course to determine if it will meet my learning needs
- Recognize the importance of AI Fluency in today's world
- Identify key components of your learning journey ahead
- Set clear expectations for what you’ll gain from this course
———
🔗 https://www.anthropic.com/ai-fluency
Anthropic Courses
Learn to build with Claude AI
through Anthropic's comprehensive courses and training programs.
through Anthropic's comprehensive courses and training programs.
❤2
دورة حياة الريكوست من المتصفح إلى السيرفر 🚀💻
———
🔗 https://dev.to/alisamir/from-click-to-code-the-lifecycle-of-a-backend-request-explained-like-youre-ordering-dinner-5b8b
🔗 https://levelup.gitconnected.com/from-click-to-code-the-lifecycle-of-a-backend-request-explained-like-youre-ordering-dinner-9d487718e9ba
From Click to Code: The Lifecycle of a Backend Request Explained Like You’re Ordering Dinner 🚀
———
🔗 https://dev.to/alisamir/from-click-to-code-the-lifecycle-of-a-backend-request-explained-like-youre-ordering-dinner-5b8b
🔗 https://levelup.gitconnected.com/from-click-to-code-the-lifecycle-of-a-backend-request-explained-like-youre-ordering-dinner-9d487718e9ba
🔥6
مفهوم الـ Global Objects في Node.js 💡
.
.
هو إحنا في Node.js بنستخدم window زي ما بنعمل في الـ browser؟
السؤال ده سهل ييجي في بالك أول ما تبدأ تشتغل بـ Node.js، بس الحقيقة لا... مفيش window في Node.
وده بيخلينا نسأل السؤال الأهم:
يعني إيه Global Objects في Node.js؟ وإزاي بنستخدمهم؟
———
🔗 LinkedIn:
https://www.linkedin.com/posts/mentoor-io_node-nodejs-nodejsdeveloper-activity-7340077226333237248-sIRW
🔗 Facebook:
https://www.facebook.com/share/p/19gB4Za3QQ
.
.
هو إحنا في Node.js بنستخدم window زي ما بنعمل في الـ browser؟
السؤال ده سهل ييجي في بالك أول ما تبدأ تشتغل بـ Node.js، بس الحقيقة لا... مفيش window في Node.
وده بيخلينا نسأل السؤال الأهم:
يعني إيه Global Objects في Node.js؟ وإزاي بنستخدمهم؟
———
🔗 LinkedIn:
https://www.linkedin.com/posts/mentoor-io_node-nodejs-nodejsdeveloper-activity-7340077226333237248-sIRW
🔗 Facebook:
https://www.facebook.com/share/p/19gB4Za3QQ
❤3
إزاي تتعامل مع الـ State في مشاريع الفرونت إند؟ 💡
.
.
خليني أحكيلك سيناريو بسيط:
أنت شغال على UI لتطبيق إعلانات. في الصفحة الرئيسية فيه زرار بيعرض modal، وفي نفس الوقت فيه قائمة إعلانات بترجع من API، ولما تضغط على إعلان بتروح على صفحة التفاصيل.
دلوقتي الـ modal ده لو تحكمت فيه بـ useState مثلًا في نفس الـ component؟ تمام.
بس الإعلانات؟ محتاج تجيبها من API وتخزنها؟ هتضيفها فين؟
ولو صفحة التفاصيل محتاجة تشوف نفس الداتا؟ هتعمل إيه؟
ولو عندك مستخدم مسجل دخول، ومحتاج كل الصفحات تعرف حالته؟
هنا تبدأ قصة الـ State Management، وتحديدًا:
- هل الداتا دي تبقى locally؟
- ولا تكون في global state؟
ولا تفضل على الـ server وتجيبها كل مرة؟
تعال ندردش شوية عن إزاي تتعامل مع الـ State في مشاريع الفرونت إند...
———
✅ أنواع الـ State اللي ممكن تتعامل معاها:
1- Local State
مثل:
- الـ modal مفتوح ولا مقفول
- الـ tab اللي مفتوح
- الفورم فيه error ولا لا
بتستخدم معاه حاجات زي useState, useReducer, أو حتى useRef.
———
2- Global State
ده اللي بيكون مهم لأكثر من component أو حتى أكتر من صفحة.
مثل:
- بيانات المستخدم بعد ما يعمل تسجيل دخول
- اللغة المختارة
- محتوى الـ shopping cart
ممكن تتعامل معاه باستخدام:
Context API | Redux | Zustand | Jotai
———
3- Server State
يعني داتا راجعة من API وبتتغير دايمًا.
مثل:
- قائمة البوستات اللي بترجع
- الإعلانات
- بيانات المنتج
التعامل معاها الأفضل يتم من خلال:
- React Query
- SWR
- custom hooks using fetch
———
4- URL State
ده زي الـ query params والـ path variables.
مثل:
- ?search=react
- /products/123
بتحتاجه لما الصفحة تكون reactive بناءً على URL.
———
💡 إزاي تقرر تستخدم أي نوع منهم؟
اسأل نفسك 3 أسئلة:
1. الداتا دي مين محتاج يشوفها؟
- لو component واحدة تبقى local
- لو أكثر من component أو أكثر من صفحة تبقى global
2. هل الداتا دي راجعة من السيرفر؟
- لو أيوه تبقى server state
- لو لا يبقى ترجع لإجابة السؤال الأول
3. هل محتاج تعمل caching أو refetching؟
- لو أيوه ممكن تستخدم React Query/SWR
- لو لا يبقى الـ useEffect كفاية
———
✅ شوية نصائح من التجربة:
- بلاش تستعجل وتستخدم Redux، كتير بيستخدموه في حاجات صغيرة جدًا ممكن تتحل بـ Context أو حتى props.
- خلي الداتا اللي بتتغير كتير تفضل على السيرفر، وخلي الـ React Query تمسكها بدل ما تعملها global state manually.
- متخليش كل حاجة global، ده بيخلي الـ re-rendering يزيد والـ debugging بيكون أصعب.
- الـ Server State مش دايمًا محتاج يتحول لـ Global State، الـ React Query مثلًا بيخزنها وبيشاركها بين الـ components تلقائي، من غير ما تدخلها في Redux أو غيره.
- الـ Context ممتاز للحاجات اللي مش بتتغير كتير، زي الـ theme أو اللغة أو المستخدم اللي دخل مرة واحدة وخلاص.
———
اختيارك للـ state له تأثير مباشر على الـ performance، وكمان الـ maintainability، والـ DX بتاعك.
———
وفقكم الله لكل خير 🌿
.
.
خليني أحكيلك سيناريو بسيط:
أنت شغال على UI لتطبيق إعلانات. في الصفحة الرئيسية فيه زرار بيعرض modal، وفي نفس الوقت فيه قائمة إعلانات بترجع من API، ولما تضغط على إعلان بتروح على صفحة التفاصيل.
دلوقتي الـ modal ده لو تحكمت فيه بـ useState مثلًا في نفس الـ component؟ تمام.
بس الإعلانات؟ محتاج تجيبها من API وتخزنها؟ هتضيفها فين؟
ولو صفحة التفاصيل محتاجة تشوف نفس الداتا؟ هتعمل إيه؟
ولو عندك مستخدم مسجل دخول، ومحتاج كل الصفحات تعرف حالته؟
هنا تبدأ قصة الـ State Management، وتحديدًا:
- هل الداتا دي تبقى locally؟
- ولا تكون في global state؟
ولا تفضل على الـ server وتجيبها كل مرة؟
تعال ندردش شوية عن إزاي تتعامل مع الـ State في مشاريع الفرونت إند...
———
✅ أنواع الـ State اللي ممكن تتعامل معاها:
1- Local State
مثل:
- الـ modal مفتوح ولا مقفول
- الـ tab اللي مفتوح
- الفورم فيه error ولا لا
بتستخدم معاه حاجات زي useState, useReducer, أو حتى useRef.
———
2- Global State
ده اللي بيكون مهم لأكثر من component أو حتى أكتر من صفحة.
مثل:
- بيانات المستخدم بعد ما يعمل تسجيل دخول
- اللغة المختارة
- محتوى الـ shopping cart
ممكن تتعامل معاه باستخدام:
Context API | Redux | Zustand | Jotai
———
3- Server State
يعني داتا راجعة من API وبتتغير دايمًا.
مثل:
- قائمة البوستات اللي بترجع
- الإعلانات
- بيانات المنتج
التعامل معاها الأفضل يتم من خلال:
- React Query
- SWR
- custom hooks using fetch
———
4- URL State
ده زي الـ query params والـ path variables.
مثل:
- ?search=react
- /products/123
بتحتاجه لما الصفحة تكون reactive بناءً على URL.
———
💡 إزاي تقرر تستخدم أي نوع منهم؟
اسأل نفسك 3 أسئلة:
1. الداتا دي مين محتاج يشوفها؟
- لو component واحدة تبقى local
- لو أكثر من component أو أكثر من صفحة تبقى global
2. هل الداتا دي راجعة من السيرفر؟
- لو أيوه تبقى server state
- لو لا يبقى ترجع لإجابة السؤال الأول
3. هل محتاج تعمل caching أو refetching؟
- لو أيوه ممكن تستخدم React Query/SWR
- لو لا يبقى الـ useEffect كفاية
———
✅ شوية نصائح من التجربة:
- بلاش تستعجل وتستخدم Redux، كتير بيستخدموه في حاجات صغيرة جدًا ممكن تتحل بـ Context أو حتى props.
- خلي الداتا اللي بتتغير كتير تفضل على السيرفر، وخلي الـ React Query تمسكها بدل ما تعملها global state manually.
- متخليش كل حاجة global، ده بيخلي الـ re-rendering يزيد والـ debugging بيكون أصعب.
- الـ Server State مش دايمًا محتاج يتحول لـ Global State، الـ React Query مثلًا بيخزنها وبيشاركها بين الـ components تلقائي، من غير ما تدخلها في Redux أو غيره.
- الـ Context ممتاز للحاجات اللي مش بتتغير كتير، زي الـ theme أو اللغة أو المستخدم اللي دخل مرة واحدة وخلاص.
———
اختيارك للـ state له تأثير مباشر على الـ performance، وكمان الـ maintainability، والـ DX بتاعك.
———
وفقكم الله لكل خير 🌿
❤9