Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
📄 دستور pwd در لینوکس
دستور pwd (Print Working Directory) در Linux مسیر جاری رو چاپ می‌کنه.
🔹مسیر منطقی (pwd یا pwd -L): مسیر بر اساس متغیر PWD (ممکنه شامل لینک سمبلیک باشه).
🔹مسیر فیزیکی (pwd -P): لینک‌های سمبلیک رو resolve می‌کنه و مسیر واقعی رو نشون میده.
cd /tmp
ln -s /var/log logs
cd logs
pwd # /tmp/logs
pwd -P # /var/log

🔥 ترکیبی و ترفندی؟
xdg-open "$(pwd)" دایرکتوری جاری با مرورگر فایل
cp -r "$(pwd)" /backup/location کپی محتویات مسیر
rsync -av "$(pwd)/" /backup/ مثال با Rsync
export PATH="$(pwd):$PATH" اضافه کردن به PATH
basename "$(pwd)" فقط نام دایرکتوری جاری
dirname "$(pwd)" فقط مسیر بالادستی
tar -czf "$(basename "$(pwd)").tar.gz" "$(pwd)"

🔥 در اسکریپت های خیلی کاربرد داره
SCRIPT_DIR="$(pwd)"

آیا میدانید ما دو دستور pwd در لینوکس داریم که در بعضی موارد با هم فرق میکنند ؟😎

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
دستور cd مخفف Change Directory در Linux
💠 پاس دادن آرگومان
mkdir /tmp/newdir
cd !$ # این معادل است با: cd /tmp/newdir
mkdir /home/user/myfolder
cd !!:$ # معادل cd /home/user/myfolder

💠خروجی یک دستور
cd "$(mktemp -d)"

💠 رفتن به خانه
cd ~   # یا cd خالی
cd ~root # root رفتن به دایرکتوری خانه کاربر

دستور cd مقدار $HOME را میخواهد
ولی دستور ~ cd مقدار ~ که معادل دقیق مسیر home که یک شورت کات دایرکتوری اصلی خانه است را میخواند
export HOME=/tmp
cd # به /tmp میره
cd ~ # همچنان به /home/user میره

💠 بازگشت به مسیر قبلی - cd
اگر دوباره اجرا شود، به مسیر فعلی بازمی‌گردد.

💠 تغییر سریع دایرکتوری
cd /home/user/Documents
cd .. # حالا در /home/user هستید
cd ../.. # رفتن دو سطح به بالا
cd ... # معادل دستور قبل در بعضی شل ها
cd ./ # مسیر فعلی کاربرد اسکریپت‌نویسی
cd / # رفتن به ریشه


🔥چقدر از این ترفند ها را بلد بودید ؟😎 ⁉️ مثلا کار این دستور چیه ؟ (لطفا در گروه جواب ها را spoiler بزنید)
cd !!:2

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور ls در لینوکس
از پرکاربرد ترین دستورات در لینوکس برای لیست فایل ها و دایرکتوری ها
اپشن های متداول:
ls -la    مخفی ها،مجوزها،مالک و زمان آخرین تغییر
ls -lh اندازه فایل‌ها
ls -li inode هر فایل
ls -lt آخرین تغییر ls -lc ls -lu
ls -lhS اندازه فایل‌ها ls -lhtr
ls -R ساختار درختی
ls -d */ فقط دایرکتوری‌
ls *.jpg بر اساس اکستنشن

ترفند های ترکیبی در Linux
ls | nl    نمایش با شماره خط
ls -1 | wc -l چه تعداد فایل توی دایرکتوری
ls -lh | less مرور لیست بزرگ فایل‌ها

پیشنهاد می‌کنم یک alias برای راحتی در .bashrc یا zshrc تعریف کنید، مثلا:
alias ll='ls -lh --color=auto'

پیشنهاد alias شما ؟

🔥
جایگزین ls به نام exa
شما از چه ترفند ترکیبی یا تکنیکی از دستور ls استفاده میکنید؟
آموزشی برای ls جا مونده ؟ در کامنت ها بگید 💐

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
🔥 معرفی zoxide دستور CD هوشمند تر با پشتیبانی از انواع shell

دستور cd و امکانات آن را قبلا اینجا معرفی کرده بودم
و دستور cd در مقابل pushd و popd و معرفی dirs اینجا معرفی کرده بودم
و البته ابزار enhancd را معرفی کرده بودم🫠

چقدر در مورد cd مطلب نوشتم، علاقه خاصی به جابه جایی دارم 😁


ابزار zoxide یک دستور cd هوشمندتره که از z (z - jump around یا z.lua ) و autojump الهام گرفته شده.
این دستور دایرکتوری‌هایی را که بیشتر استفاده می‌کنید به خاطر می‌سپاره، پس می‌توانید تنها با چند ضربه کلید به آنها "پرش" کنید.

راستی zoxide روی تمام پوسته‌های اصلی کار می‌کند.😎

فیلم کار با این ابزار در اینجا قابل دیدن است

مثل همیشه از لینوکس لذت ببرید ابزار bd command یک معادل دیگه cd را یعنی معرفی کنم 🧐؟
سایت اصلی

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور mkdir در لینوکس
دستور mkdir (make directory) در Linux برای ساختن دایرکتوری استفاده میشه
اپشن‌های متداول:
mkdir test ساخت دایرکتوری 
mkdir dir1 dir2 dir3 چند دایرکتوری
mkdir -p a/b/c پوشه‌های تو در تو
mkdir -m 700 private دسترسی خاص
mkdir -v newdir با گزارش

🔥 ترفندهای ترکیبی و حرفه‌ای:
mkdir project_{A,B,C} → ساخت با الگو 
mkdir release_{01..12} → پوشه‌های شماره‌دار ۰۱ تا ۱۲
mkdir "$(date +%Y-%m-%d)" → نام تاریخ امروز
mkdir "$(whoami)_data" → اسم کاربر فعلی
mkdir new && cd $_ → ساخت پوشه و ورود

🔥 برای اسکریپت‌نویسی خیلی کاربردیه، مثلا ساخت ساختار پروژه😎:
mkdir -p project/{src/{lib,tests},docs,bin}

عالیه تا اینجا آمدی 💐 به نظرت کار دستور زیر چیه ؟ و کاربردش چیه؟
TMPDIR=$(mktemp -d /tmp/mydir.XXXXXX) 

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور rmdir در لینوکس (دستور rd و rm)

دستور rmdir برای حذف دایرکتوری خالی در لینوکس استفاده میشه.
اگر دایرکتوری فایل یا زیرشاخه داشته باشه، rmdir کار نمی‌کنه و خطا میده.

اپشن‌های متداول:
rmdir testdir     حذف یک دایرکتوری خالی
rmdir dir1 dir2 dir3 حذف چند دایرکتوری
mkdir -p project/src/code
rmdir -p project/src/code حذف تو در تو

👉 همه‌ی مسیرهای خالی (code, src, project) حذف میشن.

🔥 ترفندها و تکنیک‌های ترکیبی
با دستور find بهتر میتوانید پوشه های خالی را پیدا و حذف کنید

1️⃣ حذف همه‌ی دایرکتوری‌های خالی یک مسیر را پیدا و حذف کرد:
find . -type d -empty -delete

5️⃣ پاکسازی پروژه‌های قدیمی:
find ~/projects -type d -empty -print -exec rmdir {} \;

💡 نکته:
‏rmdir فقط روی دایرکتوری خالی کار می‌کنه.
برای حذف دایرکتوری‌های غیرخالی باید از rm -r استفاده کنید (با احتیاط ⚠️).
دستور rd در بعضی linux ها یک alias است
rd is an alias for rmdir

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور touch در لینوکس

دستور touch در لینوکس بیشتر برای ایجاد فایل خالی یا تغییر زمان آخرین دسترسی/تغییر (timestamp) استفاده میشه.

اپشن‌های متداول:
touch file.txt
touch file1.txt file2.txt file3.txt
touch -t 202509261230 file.txt تغییر زمان
touch -r source.txt target.txt کپی زمان از یک فایل دیگه

🔥 ترفندهای ترکیبی و خلاقانه
touch file{1..5}.txt سری فایل
touch * به‌روزرسانی زمان همه فایل ها

برای مدیریت فایل های پروژه
touch project/{src/main.py,README.md,docs/guide.md} 


#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور cp در لینوکس
دستور cp برای کپی کردن فایل‌ها و دایرکتوری‌ها استفاده میشه.

📚اپشن‌های متداول:
cp file1.txt backup.txt    کپی ساده
cp a.txt b.txt /backup/ کپی فایل هابه یک مسیر
cp -r mydir /backup/ کپی کامل دایرکتوری
cp -a mydir /backup/ حفظ مجوزها و مالکیت‌ها
cp -u file.txt /backup/ فقط اگر فایل جدیدتره
cp -v file.txt /backup/ کپی یا گزارش

🔥 ترفندهای ترکیبی و خلاقانه
cp file.txt{,.bak}  کپی brace expansion
cp *.jpg /backup/images/ کپی پسوند خاص
cat list.txt | xargs cp -t /backup/ کپی گروهی

پیشنهاد مهردادلینوکس
برای حجم بالا یا شبکه بهتره از rsync به جای cp استفاده کنید (کارآمدتر و امن‌تر).


#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور mv در لینوکس
دستور mv برای جابجایی فایل‌ها و دایرکتوری‌ها استفاده میشه.
⚡️ ولی کاربرد دومش هم خیلی مهمه: تغییر نام (rename)

اپشن‌های متداول:
mv file.txt /backup/   جابجایی
mv oldname.txt newname.txt تغییر نام
mv file1.txt file2.txt /backup/ جابجایی چند فایل
mv -v file.txt /backup/ با گزارش
mv -n file.txt /backup/ عدم overwrite
mv -i file.txt /backup/ پرسش قبل از overwrite
mv -f file.txt /backup/ اجبار به overwrite

🔥 ترفندهای ترکیبی و خلاقانه
mv data.db data_$(date +%F).db  تغییر نام با تاریخ
cat list.txt | xargs -I {} mv {} /backup/ جابجایی بر اساس لیست


اگر یک گروه از فایل ها را میخواهید تغییر نام بدید
for f in *.txt; do mv "$f" "${f%.txt}.md"; done

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور cat در لینوکس
کلمه‌ی cat مخفف concatenate هست، یعنی به هم چسباندن.

کار اصلی این دستور نمایش محتوا و یا اتصال چند فایل متنی به هم است.
اپشن‌های متداول:
cat a.txt  نمایش
cat a.txt b.txt چند فایل با هم
cat > c.txt ایجاد فایل
cat >> file.txt اضافه کردن
cat a.txt b.txt > c.txt ترکیب
cat -n file.txt شماره گذاری
cat -v file.txt نمایش غیرقابل چاپ

⚙️ آپشن‌های پرکاربرد
-n → شماره‌گذاری همه خطو
-b → شماره‌گذاری فقط خطوط غیرخالی
-s → حذف خطوط خالی تکراری
-E → نمایش $ در انتهای هر خط
-T → نمایش تب‌ها به شکل ^I
-A → ترکیب همه (نمایش همه کاراکترهای خاص)

🔥 پیشنهاد مهرداد لینوکسی😎
میتوانید از bat به جای cat استفاده کنید و در شل cat را alias کنید
رنگی است و خروجی مرتب تری داره
alias cat="batcat"

ابزار tac (راهنمایی سایت گنو اینجا) عکس این دستور است
#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور less در لینوکس

دستور less برای مرور فایل‌های متنی بزرگ استفاده میشه، بدون اینکه کل فایل یک‌باره توی حافظه بارگذاری بشه. (برخلاف cat)

📌 کاربردهای پایه:
less file.txt      # باز کردن فایل
less +100 file.txt # شروع از خط 100
less -N file.txt # نمایش شماره خط‌ها

🔥 کلیدهای پرکاربرد داخل less

🔹 حرکت:
j → یک خط پایین⬇️ یا
k → یک خط بالا⬆️ یا
Space → یک صفحه جلو
b → یک صفحه عقب
g → رفتن به ابتدای فایل
G → رفتن به انتهای فایل

🔹 جستجو:
/pattern → جستجو به جلو
?pattern → جستجو به عقب
n → تکرار جستجو (بعدی)
N → تکرار جستجو (قبلی)

🔹ویرایش:
v → ورود به محیط ویرایشگر

🔹 خروج:
q → خروج از less

🔥 ترفندهای ترکیبی و خلاقانه
dmesg | less        # مرور لاگ کرنل
less +F logfile.log # حالت Follow مثل tail -f
ps aux | less -S # بدون شکست خطوط طولانی


🔹 باز کردن چند فایل با هم:
less file1.txt file2.txt

:n # فایل بعدی
:p # فایل قبلی


🔹 نمایش رنگ در خروجی (مثلاً برای کدها):
less -R colored.txt

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور head در لینوکس
دستور head در linux برای نمایش ابتدای فایل استفاده میشه.
به‌طور پیش‌فرض ۱۰ خط اول فایل رو نشون میده.

📌 مثال‌های پایه:
head file.txt        # نمایش 10 خط اول
head -n 20 file.txt # نمایش 20 خط اول
head -c 50 file.txt # نمایش 50 بایت اول
head -v example1.txt # اسم فایل

🔥 ترفندهای ترکیبی و خلاقانه
head -n 5 a.txt b.txt  # چند فایل پشت سر هم
head -n 1 data.csv # فقط هدر CSV
head -n 50 logfile.log | less
ps aux | head -n 15 # فقط 15 پروسه اول
top -bn1 | head -n 5
ls -t /etc | head -n 3 | sort # برای پایپ کردن
head -q -n 3 a.txt b.txt > c.txt

📌 نکته جذاب:
با head -c می‌تونی بخشی از فایل باینری رو ببینی، خیلی کاربردی برای تشخیص فرمت فایل‌ها:
head -c 8 image.png

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور tail در لینوکس

دستور tail برای نمایش انتهای فایل‌ها در linux استفاده میشه.
به‌صورت پیش‌فرض، ۱۰ خط آخر فایل رو نشون میده.
خیلی کاربردی برای خواندن لاگ‌ها، مانیتور کردن تغییرات، و مشاهده آخرین رکوردها.

📌 مثال‌های پایه:
tail file.txt           #  10 خط آخر
tail -n 20 file.txt # 20 خط آخر
tail -c 50 file.txt # 50 بایت آخر
tail -n 5 file1.txt file2.txt # نتهای چند فایل

🔥 ترفندهای ترکیبی و خلاقانه
tail -f /var/log/syslog  مانیتورینگ لحظه‌ای
tail -f a.log b.log چند فایل همزمان
tail -n 50 -f access.log ۵۰ خط آخر و ادامه‌ی
tail -f /log/syslog | grep "error" فیلتر لحظه ای
tail -f app.log | tee -a errors.txt ذخیره خطا

📌 نکات حرفه‌ای:
می‌تونی از ‎--pid استفاده کنی تا تا وقتی یک پردازش در حال اجراست مانیتور کنی:
tail --pid=1234 -f logfile.log

💡 مثال واقعی در کار با سرورها:
sudo tail -f /var/log/auth.log | grep "Failed password"

نمایش زنده‌ی لاگ‌های ورود ناموفق SSH 😎
#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📏 دستور wc — شمارنده‌ی همه‌چیز در فایل‌ها 😁

دستور wc (مخفف Word Count) برای شمردن تعداد خط‌ها، کلمات، و بایت‌ها یا کاراکترها در فایل‌ها استفاده می‌شه.
🧩 ساختار کلی
wc [OPTION] [FILE...]
wc file.txt #مثال
5 42 276 file.txt # خروجی

📤 خروجی شامل ۳ عدد :
1️⃣ تعداد خطوط
2️⃣ تعداد کلمات
3️⃣ تعداد بایت‌ها

🔍 گزینه
-l فقط شمارش تعداد خطوط (lines)
-w فقط شمارش کلمات (words)
-c شمارش بایت‌ها (bytes)
-m شمارش کاراکترها (characters) — مناسب برای فایل‌های UTF-8
-L نمایش طول بلندترین خط

📘 مثال‌های کاربردی
wc -l /etc/passwd 
تعداد خطوط فایل (تعداد کاربران سیستم)
grep "bash" /etc/passwd | wc -l
چند کاربر از bash استفاده میکنند؟
ls | wc -l تعداد فایل های یک پوشه
wc -c < file.txt اندازه فایل

⚠️ نکات حرفه‌ای
‏wc تفاوتی بین tab و space قائل نیست — همه‌ی فاصله‌ها را معادل یک جداکننده‌ی کلمه حساب می‌کند.
برای فایل‌های غیر UTF-8، بهتر است از -c استفاده کنید نه -m.
در ترکیب با pipe‌ها (|) فوق‌العاده قدرتمنده — مثلاً با grep, awk, یا sort.

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
🔔 انتشار نسخه جدید اوبونتو Ubuntu 25.10 🎉
با اسم Questing Quokka

کرنل Linux 6.17
پشتیبانی از سخت‌افزارهای جدید، بهبود در عملکرد و درایورهای گرافیکی

حذف GNOME روی Xorg
گزینه “Ubuntu on Xorg” در صفحه ورود حذف و GNOME بر بستر Wayland

ترمینال جدید: Ptyxis
ترمینال Ptyxis جایگزین GNOME Terminal

تصویرنمای جدید Loupe
‏Loupe به عنوان تصویرنمای پیش‌فرض جایگزین Eye of GNOME

سوئیچ به sudo-rs
جایگزینی نسخه sudo در C، با sudo-rs

استفاده از Dracut برای initramfs
به جای initramfs-tools، از Dracut به عنوان ابزار تولید initial RAM filesystem

بهبود در رمزگذاری کامل دیسک با پشتیبانی TPM
امکان استفاده از TPM برای رمزگذاری کامل دیسک

تغییرات در Coreutils → Rust Coreutils
انتقال اجزای پایه‌ای مانند Coreutils به نسخه‌های نوشته‌شده در Rust

تغییرات دیگر قابل توجه
– حذف ابزار Startup Applications؛ مدیریت برنامه‌های خودکار در بخش Settings
– پشتیبانی RISC-V محدود به شبیه‌ساز QEMU
– تقویت پشتیبانی NVIDIA روی Wayland و بهینه‌سازی تجربه دسکتاپ

@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
🔢 دستور nl در لینوکس - شماره‌گذاری هوشمند خطوط فایل‌ها

دستور nl (مخفف number lines) برای چاپ محتوای فایل با شماره‌گذاری خودکار خطوط استفاده میشه، اما بر خلاف cat -n، می‌تونه فقط خطوط واقعی (غیر خالی) رو شماره‌گذاری کنه،
📘 مثال پایه‌ای
nl notes.txt
nl -b a file.txt # شماره گذاری همه خطوط
nl -s ": " file.txt # جدا کننده سفارشی
nl -i 10 example.txt
nl -nrz -w3 -s". "
nl -nln

⚙️ آپشن‌های مهم و حرفه‌ای
-b a همه‌ی خطوط را شماره‌گذاری کن (حتی خالی‌ها)
-b t فقط خطوط غیر خالی را شماره‌گذاری کن (پیش‌فرض)
-n ln شماره در سمت چپ (Left)
-n rn شماره در سمت راست (Right)
-n rz سمت راست با صفر پر شود (مثلاً 001، 002)
-w N عرض شماره‌ها را مشخص کن (مثلاً -w 3)
-s SEP تعیین جداکننده بین شماره و متن (مثلاً `-s "

📚 مثال‌های کاربردی و 🔥 ترفندهای ترکیبی و خلاقانه
ls | nl -s ". "  # شماره برای یک دستور دیگر
grep "error" logfile | nl شماره برای تطابق

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور strings در لینوکس
استخراج رشته‌های متنیِ قابل‌چاپ از داخل فایل‌های باینری 😎
کاربرد؟
🔥مهندسی معکوس،پیدا کردن نام توابع، پیام‌های خطا، library names.
🔥کشف URLها، توکن‌ها
🔥بررسی فایل‌های خراب یا بدافزار (اولین قدم قبل از دیباگ عمیق).

🔹 مثال‌های پایه
strings a.out              # استخراج همه رشته‌ه 
strings /bin/ls | less # خروجی طولانی
strings -n 6 file.bin # رشته‌های طول
strings -t x file.bin # offset به صورت hex
strings -f file1 file2 # قبل خروجی نام فایل

⚙️ آپشن‌های مهم
-n <num> یا --bytes=<num> : حداقل طول رشته .
-t <o|d|x> : نمایش offset رشته
-e <encoding> : تعیین encoding
-f : چاپ نام فایل قبل از خروجی.
-a : اسکن تمام بخش‌ها .
🔥 ترفندهای ترکیبی و خلاقانه
strings binary | grep -E 'https?://|https://'  # URL
strings binary | grep -iE 'token|key|password|passwd' # توکن
strings -t x binary | grep -i 'API_KEY' # offset

#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
📄 دستور diff و cmp در لینوکس
هر دو ابزار برای مقایسه فایل‌ها به‌کار می‌روند، ولی هدف و سطح جزئیاتی که می‌دهند فرق دارد:
‏diff برای نمایش اختلافات متنی (خط‌به‌خط) و تولید پچ (patch) مناسب است.
‏cmp برای مقایسه بایت‌به‌بایت و یافتن اولین بایت/آفست متفاوت طراحی شده.
کاربرد پایه
diff file1.txt file2.txt # مقایسه فایل
cmp file1.bin file2.bin
diff -r dirA dirB # مقایسه دایرکتوری

‏--brief → کم‌حرف
‏--color=auto یا استفاده از colordiff → خروجی رنگی
کاربرد هاشون خاص بود، ننوشتم شما اگر ایده ای دارید در کامنت بنویسید به پست اضافه کنم 💐


#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command