Files
nearology 99fb7f0e82 Add sitemap and styles for Persian font integration
- Created a new sitemap.xml file for better SEO.
- Added a compressed version of the sitemap as sitemap.xml.gz.
- Introduced extra.css for custom styles, including Persian font support (IRANSansX).
- Defined font-face rules for regular and bold styles of IRANSansX.
- Implemented various text styles and layout adjustments for better readability.
- Enhanced Mermaid diagram styles to support Persian text rendering.
2026-04-28 15:27:18 +03:30

147 lines
4.0 KiB
Markdown

# پاسخ تمرین‌ها
در این صفحه، پاسخ‌های پیشنهادی و مختصر برای تمرین‌ها آورده شده‌اند. این صفحه در منوی اصلی قرار نگرفته است.
## تمرین ۱: دیدن سخت — پاسخ نهایی
فقط سه خط `ls` مطابق صورت سؤال:
```
ls -lth
ls -lth ../alireza
ls -lth ../../arshia/sub
```
## تمرین ۲: بازی بازی — فرمان‌ها
```
# حذف کامل پوشه arshia
rm -r -- bazi-bazi/arshia
# ساخت ali/reza و زنجیره s/a/l/i/b
mkdir -p bazi-bazi/ali/reza
mkdir -p bazi-bazi/s/a/l/i/b
```
## تمرین ۳: دفترچه تیمی — فرمان‌ها
```
# ساخت ساختار و فایل‌های روزانه
mkdir -p ~/notebook/daily ~/notebook/ideas
cd ~/notebook
touch daily/day-01.txt daily/day-02.txt daily/day-03.txt
# ایجاد و نوشتن سه ایده در brainstorm.txt
printf "Idea 1\nIdea 2\nIdea 3\n" > ideas/brainstorm.txt
# تجمیع ایده‌ها در یک فایل
cat ideas/brainstorm.txt >> ideas/all-ideas.txt
# تأیید: تعداد خطوط و سپس نمایش محتوا
wc -l ideas/all-ideas.txt && cat ideas/all-ideas.txt
```
## تمرین ۴: بایگانی پروژه — فرمان‌ها
```
# 1) نسخه پشتیبان src در backup/src-copy
mkdir -p ~/mini-project/backup
cp -r ~/mini-project/src ~/mini-project/backup/src-copy
# 2) تغییر نام و جابه‌جایی draft.txt به notes.txt در ریشه پروژه
mv ~/mini-project/tmp/draft.txt ~/mini-project/notes.txt
# 3) حذف old.log
rm ~/mini-project/tmp/old.log
# 4) حذف tmp در صورت خالی بودن
rmdir ~/mini-project/tmp
```
## تمرین ۵: شکار گزینهٔ درست — یک‌خطی نهایی
```
find ~/Downloads -type f -size +5M -exec ls -lh {} +
```
- `-type f`: فقط فایل‌ها
- `-size +5M`: بزرگ‌تر از ۵ مگابایت
- `-exec ls -lh {} +`: نمایش خروجی با اندازهٔ خوانا
## تمرین ۶: تقویم تیم پشتیبان — فرمان‌ها
```
# 1) تاریخ/زمان فعلی در قالب خواسته‌شده
date +"%Y-%m-%d %H:%M" > support-schedule.txt
# 2) ماه جاری و دو ماه بعد، با یک خط خالی بین هر ماه
for i in 0 1 2; do
cal $(date -d "+$i month" +"%m %Y") >> support-schedule.txt
echo >> support-schedule.txt
done
# 3) استخراج شمارهٔ هفته‌های ماه جاری و افزودن به انتهای فایل
ncal -w | awk 'NR>1 {print $NF}' | paste -sd ' ' - | \
sed 's/^/Current month weeks: /' >> support-schedule.txt
```
## تمرین ۷: پایپ‌لاین خطاگیر — یک‌خطی پایدار
```
# فقط فایل‌های متنی .log پردازش می‌شوند؛ خطاها در pipeline-errors.log ذخیره می‌شود
grep -h "ERROR" ~/logs/service-*.log 2>> ~/logs/pipeline-errors.log \
| tee -a ~/logs/errors-full.log \
| tee /dev/tty \
| wc -l > ~/logs/error-count.txt
```
- `grep -h "ERROR"`: فیلتر خطوط خطا از فایل‌های `service-*.log`
- `2>> pipeline-errors.log`: ثبت خطاهای احتمالی اجرای دستور
- `tee -a errors-full.log`: ذخیرهٔ کامل خطوط فیلترشده (ضمیمه)
- `tee /dev/tty`: نمایش همزمان در صفحه
- `wc -l > error-count.txt`: شمارش کل خطاها و نوشتن در فایل
## تمرین ۸: یادداشتِ مریخی — نمونه‌حل خیلی ساده (Bash)
```bash
#!/bin/bash
read -r q
EXISTS=0
CONTENT=""
i=0
while [ "$i" -lt "$q" ]
do
read -r OP TEXT
if [ "$OP" = "touch" ]
then
if [ "$EXISTS" = "0" ]; then
EXISTS=1
CONTENT=""
fi
elif [ "$OP" = ">" ]
then
EXISTS=1
CONTENT="$TEXT"
elif [ "$OP" = ">>" ]
then
EXISTS=1
if [ -z "$CONTENT" ]; then
CONTENT="$TEXT"
else
CONTENT="$CONTENT
$TEXT"
fi
fi
i=$((i + 1))
done
if [ "$EXISTS" = "0" ] || [ -z "$CONTENT" ]; then
echo "EMPTY"
else
printf '%s\n' "$CONTENT"
fi
```