لینوکس و شبکه

لینوکس و شبکه
طبقه بندی موضوعی
آخرین مطالب
  • ۹۸/۱۲/۱۴
    bond
  • ۹۸/۱۰/۲۰
    GIT
  • ۹۸/۱۰/۱۴
    DISK

۹ مطلب با کلمه‌ی کلیدی «لینوکس» ثبت شده است

۲۰
دی

نکات:

  • محیط استیج یعنی وضعیت آماده کامیت کردن

  • هد یکی از کامیت‌ها یا تغییرات پایداری است که در یک شاخه وجود دارد. معمولا آخرین کامییتی است که کرده ایم
  • نمایش تغییرات بر اساس برنامه diff -u انجام می‌گیرد.
  • اول همه فایل‌های untracked هستند یعنی گیت مواظب آنها نیست و بعد آن را add می‌کنیم و در اینصورت گیت آنها را میفهمد و مواظبت می‌کند یعنی میروند در محیط stage و بعدا آن را کامیت می‌کنیم و با این کار به محیط پایدار خواهند رسید
  • وقتی از یک سایتی یک پروژه راکلون می‌کنیم اسم کامیت پایدار (معمولا HEAD) آن پروژه را می‌گذاریم origin و همچنان اسم آخرین نسخه پایدار سیستم خودم هم master خواهد بود

دستورات:

ایجاد پروژه و اقدامات اولیه

  • ساختن یک پروژه گیت خالی که یک فولدر مخفی ایجاد می‌کند
$ git init

 

  • کلون کردن یک پروژه در سیستم خود
$ git clone <URL.git>

 

  • از پروژه فعلی یک ریپوزیتوری در سرور ایجاد کن و اسم آن را بگذار اوریجین و آدرس آن را هم باید ادمین سرور گیت به ما بدهد
$ git remote add origin URL

 

نمایش وضعیت و لاگ

  • نمایش وضعیت فایل‌های موجود در پوشه ای که گیت آن پوشه را در اختیار گرفته است:
$ git status

 

  • مشاهده کارهایی که کردید
$ git log --stat --summary

 

  • مشاهده کارهایی که کردید با تفاوت دیف‌ها:
$ git log -p

 

  • نمایش تغییرات کنونی با تغییرات هِد
$ git diff HEAD

 

  •  فایل‌های محیط استیج چه تغییراتی داشته اند.-تفاوت هد و استیج را نشان می‌دهد
$ git diff --staged
$ git diff --color

 

  • نشان دادن تغییرات یک کامیت
$ git show <Hash Of Commit>

 

  •  نمایش جزییات یک تگ که بعنوان ورژن شناخته می‌شود:
$ git show <tag name>

 

  • وضعیت را در سرور گیت نشان میدهد(باید بررسی شود)
$ git remote

 

 

اقدامات در stage و unstage

  • یک فایل را از استیج بیرون بیاور
$ git reset file

 

  • بازگشت به آخرین تغییرات در آن فایل-با این کار فایل اصلی که در هد است جایگزین فایلی می‌شود که در آن تغییرات اشتباه داده بودید
$ git checkout -- <FILE>

 

  • حذف فایل stage شده موجود و تبدیل به unstage
$ git rm --cached <FileNames>

 

  • حذف فولدر  stage شده موجود و تبدیل به unstage
$ git rm --cached -r <FOLDER>

 

  • پاک کردن یک فایل از گیت و فایل‌سیستم
$ git rm <file>

 

 

 

کامیت و تگ

  • افزودن یک تغییر در استیج :
$ git add <File>

 

  • افزودن یک تغییر در استیج:
$ git add -A

 

  • انتقال تغییرات از استیج به کامیت:
$ git commit -m "message"

 

  • بازگشت به آخرین کامیت(اگر استیج نشده باشد یعنی دستور اَد زده نشده باشد)
$ git checkout -- filename

 

  • بازگشت به آخرین کامیت درصورتی که دستور اَد زده شده باشد
$ git reset HEAD filename

 

  • نکته: tag می‌تواند به ما بگوید که کدام کامیت است که قابلیت ارائه به مشتری را دارد. یعنی مدیر پروژه در ذهن خودش حفظ نکند که کدام ورژن شماره یک است و کدام شماره نسخه دوم از برنامه است. معمولا شرکت‌ها برای اینکه یک release از محصول بدهند در کامیت مطلوب یک تگ میزنند که تحت عنوان ورژن شماره خاص از محصول شناخته بشود.
  • نکته: تگ بر روی کامیت زده می‌شود
  • نمایش تگ‌ها
$ git tag

 

  • زدن تک به آخرین کامیت  :
$ git tag -a v2.0.1 -m " توضیحات در باره این تگ"

 

 

  • به یک کامیت قدیمی یک تگ اختصاص دادیم:
$ git tag -a v1.3.9 <Hash Of custom commit> -m "توضیحات درباره تک"

 

  • نمایش تمام تگ‌هایی که در اول آن کاراکتر "وی" قرار دارد:
$ git tag -l "v*"

 

  • نکته: اگر تغییر از نوع ایجاد تگ باشد، گیت آن را نمی‌فهمد. یعنی دستور git status ایجاد تگ را گزارش نمی‌دهد.(در نتیجه در دستور پوش هم چیزی به سرور اضافه نخواهد شد)
  • تگ مورد نظر را به شاخه اوریجین در سرور اضافه  کند
$ git push origin <TagName>

 

  • تگ‌ها را به شاخه اوریجین در سرور گیت اضافه کن:
$ git push origin --tags
  • رفتن به یک تگ(یعنی کامیتی که در آن تگ زده شده) در پروژه(نکته: اگر به یک تگ checkout کردیم برای ایجاد تغییرات باید یک برنچ ایجاد نماییم و تغییرات را به آن اعمال نماییم.)
$ git checkout <Tag name>

 

  • پروژه ای که از سایت گرفتم را تغییر دادم. این تغییرات در شاخه مَستر سیستم خودم انجام گرفته است. اگر بخواهم این تغییرات را در برنچ اصلی سایت قرار بدهم باید از این دستور کمک بگیرم
$ git push origin master

 

  • آخرین تغییراتی که در سایت وجود دارد که با نام اوریجین شناخته می‌شود را بگیرد و در شاخه مَستر سیستم خودم اَعمال کن
$ git pull origin master

 

  • تغییرات مستر را به شاخه اوریجین که در سرور است اضافه کن:
$ git push origin master

 

 

برنچ

  • نمایش تمامی برنچ‌های موجود
$ git branch

 

  • ساختن یک برنج جدید:
$ git branch <Name>

 

  • رفتن به برنچ دیگر(بکش بیرون اون رو):
$ git checkout <branchName>

 

  • پاک کردن یک برنچ:
$ git branch -d <BranchName>

 

  • برنجی که هِد در آن است را با برنج ذکر شده یکی می‌کند:
$ git merge <branchName>

 

  • تنها مشاهده تغییرات سرور آنلاین(ریموت)- نکته: تغییرات به لوکال منتقل نمی‌شود
$ git fetch origin 

 

 

کار با merge

  • پس از اینکه با دستور fetch‌ صحت تغییرات مخزن آنلاین را مشاهده کردیم،‌ آن را با دستور زیر از مخزن آنلاین به لوکال منتقل می‌کنیم.(حتما باید نام برنج آورده بشود)
$ git merge origin/master

 

 

کار با blame

  • نکته: وقتی یک باگ در یک فایل پیدا می‌کنیم git blame اجازه می‌دهد که آن را گردن یکی بیاندازید.
  • تاریخچه تغییرات فایل را نشان می‌دهد
$ git blame <FileName>

 

  • تاریخچه تغییرات لاین هشتم از فایل را نشان می‌دهد
$ git blame <FileName> -L8

 

  • تاریخچه تغییرات لاین هشتم تا لاین دهم از فایل را نشان می‌دهد(نفر آخری که تغییرات را ایجاد کرده است)در پروژه
$ git blame <FileName> -L8,10

 

 

 

برخی تنظیمات ساختاری خود گیت

  • می‌توانیم توسط دستورات زیر نام کاربری یا ایمیل یا دیگر موارد را برای گیت فعلی تنظیم نماییم
$ git config --global user.name برخی تنظیمات
$ git config --global user.name "Your Full Name"
$ git config --global user.email you@somewhere.com

 

 

 

 

 

    • behrooz mohamadi nsasab
    ۱۰
    بهمن

    یک تجربه: در دبیان ۹ برای اینکه firmware کارت شبکه یو اس بی رو بشناسانیم از روش زیر استفاده میکنیم



    add to /etc/apt/source.list
    deb http://ftp.fr.debian.org/debian jessie main contrib non-free
    deb http://httpredir.debian.org/debian/ stretch main contrib non-free

    sudo apt-get install debian-reference
    apt-get update && apt-get install firmware-iwlwifi
    sudo apt-get update && apt-get install firmware-iwlwifi
    sudo apt-get update && sudo apt-get install firmware-iwlwifi
    sudo apt-get install modplug-tools 
    sudo apt-get install modprobe
    sudo apt-get install modprob
    sudo apt-get install kmod
    sudo apt-get install wicd
    sudo  apt-get install firmware-realtek
    sudo  apt-get install firmware-iwlwifi 
    sudo  apt-get install firmware-linux
    sudo  apt-get install amd64-microcode firmware-linux-nonfree firmware-misc-nonfree

    • behrooz mohamadi nsasab
    ۱۰
    ارديبهشت

    از طریق دستورات زیر میتوانیدتمامی خروجی شل های یک سرور را مشاهده نمایید:

    باید دستورات زیر را در آخر bashrc یوزر خود بیافزایید.


    export PS1="\u@\h[\t] [\w]-[\$?]\$ "

    if [ "$SHLVL" = 1 ]; then /usr/bin/script   -afq /var/log/Terminal/Terminal_$(date +%Y%m%d-%H%M%S).log;  fi;

    • behrooz mohamadi nsasab
    ۱۰
    ارديبهشت
    برای تغییر سرخط در لینوکس از دستور زیر در bashrc ویا در profile قرار دهید(لینک):
    /t   :     time
    /$? :     exit code
    /u   :     user
    \h   :     hostname
    \$   :     $ or #

    export PS1="\u@\h[\t] [\w]-[\$?]\$ "
    behrooz@viratech[14:54:04] [~]-[0]$




    • behrooz mohamadi nsasab
    ۱۴
    مهر

    مرکز اصلی سیستم عامل با حجم بسیار کوچک است که مدیریت کلی سیستم عامل را برعهده داشته و بصورت مستقیم با سخت‌افزار در ارتباط است.

    کرنل وظیفه مدیریت سخت‌افزار و تخصیص منابع و حافظه, فایل ها و اجزای جانبی را دارد. همچنین آغازگر برنامه‌های کاربردی می باشد.

     Kernel مستقیما با سخت افزار در ارتباط بوده و I/O Management  و Process  Management و Device  Management و  File  Management و Memory  Management را انجام میدهد.

    به بیان دیگر  هر Application یا برنامه کاربردی بر روی سیستم عامل برای ارتباط با سخت‌افزار نیازمند رابطی است که این رابط را کرنل برقرار میکند

    • behrooz mohamadi nsasab
    ۱۴
    مهر

    فراهم آوردن ابزاری برای دسترسی افراد کم توان به سیستم عامل(در کل کامپیوتر های شخصی و حتی سرور ها)

    AccessX: (معلولیت‌های جسمی) ابزار دسترسی به X (یعنی محیط گرافیکی) مثل موسو و کیبورد
    Visual Settings: معلولیت های بینایی
    text-to-speech (TTS): خواندن نوشته‌ها
    تمام محیط های x ابزاری را برای افراد کم توان در نظر دارند

    بعنوان مثال در گنوم:موارد زیر موجود است(در آدرس Settings > Universal Access):

    High Contrast
    Zoom
    Large text
    Screen Reader
    Screen Keyboard (show a keyboard on screen)
    Visual Alerts (instead Beeps, flash the screen )
    Sticky Keys (Press shift, then press a -> capital A)
    Slow Keys (do not repeat keys after pressing a key for few seconds)
    Bounce Keys (if you hit a key twice fast, it won't accept the second one)
    Mouse Keys (Arrow keys on number path will work as a mouse)
    Simulate Secondary Click (by holding down the click)
    Hover click (click by waiting on a button)
    TTS

    نکته:ابزاری مانند برنامه‌های  Orca ویا Emacspeak میتوانند نوشته‌ها را برای افراد کم توان بخوانند(TTS)
    نکته: برنامه GOK(Gnome On Screen Keyboard) در گنوم صفحه‌کلید مجازی ایجاد مینماید.

    • behrooz mohamadi nsasab
    ۲۴
    شهریور

    برای تعیین سطح دسترسی، اجازه داشتن و یا اجازه نداشتن، از فایل های زیر استفاده نمایید:

    /etc/cron.allow

    /etc/cron.deny

    و نیز:

    /etc/at.allow

    /etc/at.deny

    برای تعیین مجوز این فایل‌ها را بسازید.(پیشفرض وجود ندارند)

    Allow:ONLY users mentioned in this file are allowed to run this service. All other users will be denied
    Deny: Everybody can use the service except the users mentione


    • behrooz mohamadi nsasab
    ۲۴
    شهریور

    گاهی پیش می‌آید که یک یوزر بنا بر نیاز، دستور را با مالکیت یوزر خود اجرا نماید.

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


    ۱− باید در داخل یوزر خود لاگین نموده و از دستور زیر برای زمان گذاری اقدام نماید

    crontab -e

    ۲− فایل زیر را با یک ادیتور باز کرده

    vim /etc/crontab

    و با فرمت زیر

    m  h  dom mon dow  USER    command and arguments

    برای زمان گذاری اقدام نماید


    ۳− در مسیر زیر

    /etc/cron.d/

    یک فایل ایجاد کرده و با فرمت

    m  h  dom mon dow  USER    command and arguments

    برای زمان گذاری اقدام نماید


    ۴−

    • behrooz mohamadi nsasab
    ۲۴
    شهریور

    اجرای یک دستور تنها یکبار

    برنامه‌ریزی یک دستور در یک دقیقه بعد

    at now + 1 min


    برنامه‌ریزی یک دستور در روز بعد در زمان اکنون

    at tomorrow


    نکته:باید برای خروج ctrl+d رابفشرید

    نکته:دستورات در شل بنام sh اجرا خواهند شدیعنیbin/sh/
    مشاهده تمام کارهای موجود در صف انتظار

    atq


    حذف یک کار موجود در صف انتظار برحسب شماره آن

    atrm 3

    • behrooz mohamadi nsasab