network

    sudo lsof -t -i:8000    //مشاهده PID روی پورت

    ls -l /proc/<PID>/cwd //یافتن دایرکتوری کامند برای اجرا       /usr/local/projects/data-aggrigator/cmd/server

    ls -l /proc/<PID>/exe //یافتن دایرکتوری فایل اگزکیوت        /tmp/go-build2963007683/b001/exe/main

    ip route // مشاهده دیفالت گیت وی

    nslookup //  مشاهده اینکه DNS درست کار می کند ، پیدا کردن IP هاست نیم ها همچنین domain name میدیم و ip میگیریم
    
  • مشاهده پرت های باز tcp udp

          sudo apt install net-tools
          netstat -tulpn
    
  • گاهی برنامه توی محیط گرافیکی gnome مشکل میخوره برای بستنش ابتدا باید ps رو پیدا کنیم

ps aux | grep totem

  • با دستور ifconfig می توان اطلاعات کلی ماشین مانند default gateway , netmask ,inet را دید همچنین شبکه اصلی ماشین enp4s0 را دید همچنین شبکه های محلی مانند داکر هم قابل رویت است

              ifconfig
      
    

sudo kill -9 $(sudo lsof -t -i:8000)

  • restart network
sudo systemctl restart NetworkManager

scp root@1.2.3.4:/root/pcfilename.rar ./

مشاهده سایز فولدر

sudo du -hs volumes

پیدا کردن گنده ترین فایل ها

find -type f -exec du -Sh {} + | sort -rh | head -n 5
  • keyring

به جای اینکه هر بار پسورد برای یه سری چیزا مانند vscode , wi fi ,ssh رو بخواهیم بزنیم

یه بار این پسورد رو میزنیم و تا زمانی که لاگین هستیم ، نیازی به وارد کردن پسورد نیست

  • GPG

یه ابزار برای رمز نگاری نامتقارن هست و با این دستور میشه کلید عمومی و خصوصی تولید کرد

gpg --gen-key

  • sudo su -

اگر برید روت باید shell رو عوض کرد

sudo chsh -s $(which zsh) root

cloud-init

برای اجرای دستورات در سیستم عامل مانند تعریف یوزر ، ساخت کرونتب و اجرای بش اسکریپت و تمامی دستوراتی که با دسترسی سودو نیاز به اجرا هست . می توان گفت پس از اینیت کردن سیستم عامل ، با استفاده از cloud-init می توان دستوراتی در سیستم عامل اجرا کرد

cloud-init status

env

در صورتی که مقدار env را در ترمینال export کنیم ، بعد از ریلود شدن ، پاک می شن و برای ماندگاری باید در bash ذخیره کینم و در پایان، بش را source کنیم ، همچنین می توان برای استفاده همه ی یوزر ها ، در آدرس زیر ذخیره کرد

/etc/environment

Package managers

ابزاری برای نصب برنامه و پیش نیاز ها و مدیریت آن ،برای دبیان apt هست و برای فدورا yum

service manager

برای استارت و استاپ شدن سرویس ها مثل systemd , همچنین برای اینکه دستی سرویسی رو استاپ یا ریاستارت کنیم از دستور systemctl استفاده میکنیم همچنین با دستور enable , desable مشخص میکنیم که بعد از بوت شدت ، اتوماتیک استارت شود

Ansible

می تونه همزمان به کلی یرور وصل شه و یه دستور رو اگزکیوت کنه ، مثلا بجای اینکه ssh بزنیم به تک تک سرورا و شکن ست کنیم …

Terraform

کانفیگ ها ی اولیه برای اینکه سرور بیاد بالا

limit docker

می تونیم بر بروی کانتینر ها لیمیت بزاریم

—cpus _ تعداد هسته هایی که در اختیار قرار میدیم رو مشخص می کنیم

CPU CFS scheduler period مطالعه شود

1000 milisecond در اختیار میزاریم

CPU CFS quota on the container مطالعه شود

Cpu realtime scheduler vs cpu cfs scheduler

shell

  • Bash

خیلی از فیچر هارو نداره ، اتوکامپلیت نداره بعد از باز کردن بش ، بدون اینکه کی لاگین کردن از .bashrc می خونه و اصطلاحا می گن interactive non-login

  • Zsh

کلی فانکشن داره ، اتو کامپلیت خوبی داره ، میشه اکتنشن اضافه کرد بهش ،
چیزایی که تو bashrc داریم:

Export path= آدرس یه فایل باینری

Env

مقادیری در لینوکس به صورت کی ولیو ، اطلاعات زیر درونش است :

• System and user paths

• API keys and credentials

• Software configurations

• Default settings for shell and commands

  • Printenv / env

دستور بالا تمام مقادیر را نمایش میدهد

ذخیره به صورت موقت : اکسپورت در ترمینال ذخیره به صورت پایدار :

nano /etc/environment و اجرا source /etc/environment البته در آدرس زیر هم میشه ~/.profile or ~/.bashrc

می تونیم توی دایرکتوری زیر هم چند فایل بسازیم /etc/profile.d/*.sh

standard streams

  • stdout توی سیستم عامل یه ابزاره که می شه با اون توی ترمینال یا کنسول استریم کرد . همچنین باید این میشناسن : descriptor 1 .

  • stderr برای چاپ ارور توی استریم می ریزن . همچنینdescriptor 2. شناسایی میشه

signals

  • SIGINT - Interrupt

شمارش ۲ هست ، زمانی که ماربر کنترل سی بزنه ، زمانی که کار بر بخواد گریسفول بیاد بیرون ، ما باید در این صورت تسک و برنامه ها رو کیلن آپ کنیم ،

  • SIGTERM - Termination

شماره ۱۵ ، زمانی که یه برنامه بخواد برنامه ما رو ببنده ، مانند بالایی است با این تفاوت که از سمت پروسس دیگه میاد

history | grep -- "--dev-url"
  • با این دستور می شه هر چند دقیقه یه اسکرین بر اساس مموری سیستم عامل انداخت تا بعد از کرش کردن یا ترکیدن بدونیم چی عامل بوده

      atop -r /path/to/your/logfile -m
    

Cgroup

وظیفه دسته بندی چند تسک و پروسس با این انجام میشه ، همچنین برای گدیریت کردن و ایجاد محدودیت برای تسک ها(وظیفه محدودیت و کنترل با subservice است)

Arm

داستان طولانی داره ،یه ایده هست به نام risk میگه به جای اینکه cpu کلی دستورات متنوع بتونه انجام بده ، یه سری دستور محدود ولی با سرعت بالا و مصرف برق کمتر جرا کنه ، و پیچیدگی دستورات بیفته سمت زبان های برنامه نویسی یا اسمبلی و یکی از خروجی های این ایده ، arm بود و توی اپل اولین بار اومد و لپ تاپاش دیگه داغ نمیکردن ، arm یه سری قوانین و دستورات محدوده

  • یکی از دلایلی که با یوزر root در لینوکس سخته کار کردن ، اینه که ما خیلی از تنظیمات رو روی یوزر خودمون می کنیم مثل zshrc یا config هایی که توی آدرس ~/ انجام میدیم ، اگر بخواهیم با روت کار کنیم تمامی کانفیگ ها رو باید از /home/mostafa/ بخونیم چون که ~ در روت و یوزر عادی فرق داره

compilition

بعد از این که یه تولز رو توی لینوکس نصب میکنیم مثل kubectl ، بعد از زدن تب دوست داریم به جای دیدن فایل های اون دایرکتوری ، دستورات کیوب رو ببینیم ، برای همین کامپلیشن اون رو راه اندتزی میکنیم ، آموزشش حتما سرچ زده بشه و کد اینجا گذاشته بشه

  • root fs vs boot fs در سیستم عامل

اگه اینو بفهمیم ، می فهمیم تفاوت ویرشوال ماشین و کانتینر و اینکه الپاین چجوری با ۷ مگ ، ران میشه و برای ایمیج ویندوز ۲ گیگ و برای نصب رو ویندوز باید wsl

توی

kernel داره