99fb7f0e82
- 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.
147 lines
4.0 KiB
Markdown
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
|
|
```
|