تکنولوژی

چگونه جستجوی سریع با تایپ اولین حروف را در اوبونتو ۱۸.۰۴ فعال کنیم؟

توسعه‌دهندگان GNOME در سال ۲۰۱۳ قابلیت Type-Ahead یا به بیان دیگر جستجوی سریع با تایپ اولین حروف را از فایل منیجر معروف Nautilus حذف کردند. این ویژگی مفید به کاربران لینوکس امکان تایپ کردن چند حرف ابتدایی نام یک فولدر یا فایل برای انتخاب کردن سریع فایل‌ها و فولدرهایی که با حروف تایپ شده آغاز می‌شوند را می‌داد و در واقع بدون استفاده از قابلیت Search، دسترسی سریع به فولدرها و فایل‌ها امکان‌پذیر می‌شد.

در این مقاله به روش فعال کردن این ویژگی مفید در فایل منیجر ناتیلوس و در لینوکس Ubuntu 18.04 می‌پردازیم. با ما باشید.

قابلیت Type-Ahead در لینوکس و ویندوز چیست؟

در ویندوز و لینوکس زمانی که می‌خواهید فایلی را در فولدری که حاوی تعداد زیادی فایل است، پیدا کنید، اگر بررسی کردن تک‌تک نام‌ها وقت‌گیر باشد، معمولاً ابزار جست‌وجو کار را ساده و سریع می‌کند اما به جای استفاده از ابزار سرچ، می‌توان از حرف یا حروف ابتدایی نام فایل و فولدر استفاده کرد.

به عنوان مثال اگر در فولدر Downloads‌ ویندوز، فایلی به اسم it-planet ذخیره کرده‌اید و می‌خواهید سریعاً آن را پیدا کنید، کافی است ترتیب فایل‌ها را بر حسب نام تنظیم کنید و سپس حرف i کیبورد را فشار دهید. به این ترتیب اولین فایلی که نام آن با i شروع شده، انتخاب می‌شود و با اسکرول کردن و یا استفاده از کلیدهای جهت بالا یا پایین کیبورد، فایل‌های مجاور را چک کرد تا به فایل موردنظر رسید.

اما یک روش جالب‌تر این است که نرم‌افزار کمکی نصب کنید تا بتوان علاوه بر اولین حرف، حروف بعدی را نیز تایپ کرد. به عنوان مثال با تایپ کردن i و سپس t، اولین فایلی که حروف ابتدایی نام آن it است، انتخاب می‌شود و می‌توان موارد مشابه بعدی را به سرعت بررسی کرد..

در محیط ویندوز می‌توانید از نرم‌افزارهایی مثل Listary برای پیدا کردن فایل‌ها با تایپ کردن چند حرف ابتدایی استفاده کنید و در لینوکس اوبونتو نیز روش ساده‌ای برای فعالسازی این قابلیت در فایل منیجر معروف Nautilus‌ وجود دارد که در ادامه به آن می‌پردازیم.

روش فعال کردن قابلیت Type-Ahead‌ در اوبونتو ۱۸.۰۴

در نسخه‌های قدیمی‌تر لینوکس اوبونتو، توسعه‌دهندگان پچی برای اضافه کردن قابلیت Type-Ahead‌ اضافه کرده بودند و این رویه تا انتشار نسخه‌ی ۱۷.۱۰ لینوکس اوبونتو ادامه داشت. در نسخه‌های بعدی با حذف شدن میز کار Unity، پچ اضافه شده نیز کنار گذاشته شده و در نتیجه نمی‌توان چند حرف ابتدای فایل‌ها و فولدرها را تایپ کرد و سپس با فشار دادن کلیدهای جهت بالا و جهت پایین کیبورد، فایل‌ها و فولدرهای قبلی و بعدی که همین حروف در ابتدای نامشان وجود دارد، را به سرعت انتخاب کرد.

و اما برای بازگردانی قابلیت مفید تایپ-اهد، یک روش ساده این است که به جای نرم‌افزار مدیریت فایل Nautilus‌ از فایل منیجرهای قدرتمند دیگر مثل Caja یا Nemo استفاده کنید که هر دو دارای این ویژگی مفید هستند.

روش دوم این است که یکی از PPAهای جانبی که در حقیقت نسخه‌ای سفارشی از ناتیلوس است را نصب و استفاده کنید. توجه داشته باشید که قرار است به جای فایل منیجر اصلی Ubuntu 18.04 که Nautilus 3.26‌ است از فایل منیجر کاستوم استفاده کنید که شاید عاری از باگ و مشکلات امنیتی نباشد.

و اما روش کار:

ابتدا برای اضافه کردن PPA موردبحث به سیستم عامل، ترمینال لینوکس را از بخش Activities اجرا کنید و دستورات زیر را تایپ کرده و کلید Enter را پس از هر یک فشار دهید:

sudo add-apt-repository ppa:lubomir-brindza/nautilus-typeahead

sudo apt update

پس از تأیید اضافه شدن PPA موردبحث، اوبونتو به صورت خودکار منابع سیستم را نوسازی می‌کند. به محض تکمیل شدن نوسازی، دستور زیر را در ترمینال تایپ کرده و اجرا کنید تا ناتیلوس به نسخه‌ی کاستم ارتقا یابد:

sudo apt dist-upgrade

پس از انجام ارتقا، تمام پنجره‌های باز Nautilus‌ را ببندید و سپس آن را از نو اجرا کنید. اکنون قابلیت جستجوی سریع با تایپ اولین حروف، فعال است.

چگونه فایل منیجر Nautilus اصلی را در اوبونتو نصب و استفاده کنیم؟

برای برگرداندن نسخه‌ی اصلی و رسمی ناتیلوس در لینوکس اوبونتو ۱۸.۰۴، ترمینال را اجرا کنید و دستورات زیر را وارد کرده و کلید اینتر را فشار دهید:

sudo apt install ppa-purge

sudo ppa-purge ppa:lubomir-brindza/nautilus-typeahead

به این ترتیب ناتیلوس به حالت پیش‌فرض و اصلی برمی‌گردد که در حال حاضر قابلیت Type-Ahead در آن فعال نیست.


سلام دوستان من یک سالی هست که به صورت جدی در ابونتو فعالیت میکنم منظورم اینه که قبلا کار های اصلیم روی ویندوز بود و هر از گاهی به لینوکس سر میزدم. از سال پیش تصمیم گرفتم به صورت جدی ورود کنم به این قضیه و ابونتو رو یه بار دیگه نصب کردم و گفتم این یه سال باید به صورت جدی توی لینوکس فعالیت کنم اولش برام سنگین بود ولی هرچی بیشتر با لینوکس کار کردم و با محیط ور رفتم و کانفیگ های خودم رو انجام دادم خیلی بیشتر علاقه مند شدم تقریبا الان دیگه به جز کار با فتوشاپ به ویندوزم اصلا سر نمیزنم. خلاصه اینکه بعد از 1 سال فعالیت جدی، تصمیم گرفتم کلا ویندوز رو بزارم کنار و از لینوکس استفاده کنم(قبلش هم کنار بود در اصل ولی خب روی سیستمم هر دو رو نصب داشتم و کندی سرعت داشتم). هر چند امروز دردسر های عجیبی در نصب ابونتو داشتم و نمی خوام در موردش صحبت کنم ولی در انتها بعد از بالا آمدن لینوکس تصمیم گرفتم لیست کار هایی که انجام میدم رو یه جایی بنویسم که برای دفعه بعدی داشته باشم و بعدش هم تصمیم گرفتم توی ویرگول بزارم شاید علاوه بر من به درد کسی بخوره البته شما هم میتونید پیشنهاد بدید که چه چیز هایی رو بهتره نصب کنم یا تغییر بدم

1) مشکل لینوکس با cpu skylake و Realtek rtl8723be wireless

مدل لپتاب من ASUS X541U هست که از Realtek rtl8723be wireless استفاده میکنه و حالا به چه علتی نمیدونم ولی لینوکس با وایرلس این لپتاب مشکل داره و باعث میشه خطایی رو تولید کنه که بعد از یکی دوبار بالا اومدن لینوکس فضای خطای گراب پر میشه و باعث میشه سیستم بالا نیاد بعد از گشت و گذار های فراوان فهمیدم می تونم این مشکل به این صورت حل کنم با بروزرسانی فایل گراب درون:

/etc/default/grub

و تغییر خط

GRUB_CMDLINE_LINUX_DEFAULT=&quotquiet splash&quot
// to
GRUB_CMDLINE_LINUX_DEFAULT=&quotquiet splash pci=noaer&quot

و پس از ذخیره تغییرات دستور زیر را اجرا کنید:

sudo update-grub

2) اجرای دستورات زیر برای اپدیت و بروزرسانی

sudo apt update;
sudo apt upgrade;

3) افزودن زبان فارس به کیبورد

از اصلی ترین کار هایی که باید انجام بدیم اینه که زبان فارسی رو به کیبورد مون اضافه کنیم. طبق تصاویر می تونید جلو برید اگر ظاهر ابونتو من یکمی فرق میکنه نگران نباشید با من ادامه بدید خودتون دلیلش رو متوجه میشید :

بر روی settings کلیک کنید
به قسمت Region & Language بروید و بر روی + کلیک کنید
به قسمت Region & Language بروید و بر روی + کلیک کنید
بر روی سه نقطه(more) کلیک کنید
بر روی سه نقطه(more) کلیک کنید
به احتمال زیاد زبان Persian رو توی این لیستی که نشون میده پیدا نمیکنید و باید بر روی Other کلیک کنید
به احتمال زیاد زبان Persian رو توی این لیستی که نشون میده پیدا نمیکنید و باید بر روی Other کلیک کنید
و حالا دنبال Persian بگردید و بر روی Persian کلیک کنید و دکمه Add رو بزنید
و حالا دنبال Persian بگردید و بر روی Persian کلیک کنید و دکمه Add رو بزنید

و حالا می توانید با دکمه ‍‍‍super + space زبان کیبورد خود رو عوض کنید

4) نصب کدک و یه سری ابزار های لازم که open-source نیستند

این پکیج شامل یه سری پکیج های تقریبا میشه گفت لازم هست(به خاطر کدک هاش میگم) که به خاطر دلایل copyright به صورت پیش فرض درون توزیع ابونتو نیست برای اطلاعات بیشتر می تونید به این صفحه مراجعه کنید.

sudo apt-get install ubuntu-restricted-extras

4) نصب پکیج های git و curl و …

یه سری پکیج ها تقریبا بین هر توسعه دهنده ای ضرور هست و اینکه شما الان نصب کنی یه بعد از اینکه یه ابزاری را بخوای نصب کنی بفهمی لازم که اینا رو نصب کنی فرقی نمیکنه. البته من در کنازش synaptic هم نصب کردم اگه می خواید بدونید چی هست:

نرم افزار Synaptic یک مدیریت برنامه برای لینوکس میباشد که دارای یک محیط گرافیکی کاربر پسند میباشد که کار را برای کابران ساده میکند و با استفاده از آن میتوانند نرم افزار های لینوکس را به راحتی نصب و یا به روز رسانی کنند.

من بعضی موقع ها تو این محیط گرافیکی راحت تر یه پکیج رو پیدا میکنم برای حذف البته کم پیش میاد ولی پیش میاد?

sudo apt install curl make git build-essential synaptic

5) نصب zsh

اصلا بدون zsh نمیشه زندگی کرد?. zsh (زی شل z shell) یه شل سبک تر از bash هست و بهتون توصیه میکنم به همراه oh-my-zsh نصب کنید. oh-my-zsh این قابلیت رو فراهم میکنه که تم و اسکریپت و پلاگین های زیادی را رو zsh بالا بیارید و کار خودتون هنگام توسعه راحت کنید من نحوه نصب و پلاگین هایی رو که خودم نصب کردم را اینجا بهتون میگم.

می تونید برای اطلاعات بیشتر و نحوه نصب و انواع روش های نصبش به این ریپازیتوری مراجعه کنید
اگه git و curl رو تو مرحله 4 نصب نکردید لازمه اینجا نصب کنید(اصلا این ترتیبا بی حکمت نیست).

sudo apt install zsh && sh -c “$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)”

ممکنه همون اول که یه عکس از ترمینال من دیدید تعجب کنید که چرا دستوراتم رنگی هست باید بگم به خاطر نصب یکی از پلاگین های oh-my-zsh هست برای دیدن لیست کامل پلاگین های zsh می تونید به این لینک مراجعه کنید با کلیک کردن بر روی هر پلاگین اطلاعات اون پلاگین رو بخونید و اگه نیاز داشتید به oh-my-zsh اضافه کنید.

من اینجا پلاگین هایی که خودم نصب کردم رو میزارم و یه توضیحاتی میدم درموردشون ولی شما می توانید تو اینترنت در مورد oh-my-zsh و zsh به فارسی و انگلیسی جستجو کنید و اطلاعات بیشتری بدست بیارید توی یوتیوب هم زیاد از این دست فیلم ها ریخته شده که اومدن zsh شون را کانفیگ کردند و پیشنهاد میکنم برید ببینید. نصب اکثر پلاگین ها راحت هست و باید فایل زیر را تغییر بدید و در قسمت پلاگین ها اسم پلاگینتون رو بنویسید و بعدش source کنید.

~/.zshrc

الف) پلاگین z:

پلاگین کاربردی هست این پلاگین میاد لیست دایرکتوری هایی که رفتید رو تو حافظه اش نگهداری میکنه و مثلا دفعه بعد که ترمینال بازشد کافیه قسمتی از اسم اون دایرکتوری رو بنویسید و بعد از زدن تب ادرس کاملش رو قرار بده به عنوان نمونه:

اسم یکی از پوشه های من هست که قسمتیش رو من نوشتم
که بعد از زدن تب آدرس کاملش رو به من نشون داد و بعد از enter به اون دایرکتوری منتقل شدم که میتونه توی سرعت جابه جایی تون در لینوکس کمک کنه

ب) پلاگین zsh-autosuggestions:

این پلاگین میاد یه تاریخچه ای از دستوراتی که انجام دادید رو قرار میده و چون معمولا شما یه سری دستورات را زیاد میزنید می تونه بدردتون بخوره مثلا در تصویر زیر میبینید من یه قسمت از دستورم رو زدم و ادامه اش رو پیشنهاد داد که می تونید با زدن علامت جهت نما(به سمت راست <-) کاملش کنید

چون نحوه نصبش یکمی فرق میکنه اینجا می نویسم ولی شما کامل لیست پلاگین ها رو بخونید و فایل کانفیگ مرا در انتها ببینید و بعد این دستورات را انجام بدید البته راهنمای کاملش رو میتونید تو این ریپازیتوری پیدا کنید.‍‍‍

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
// put in your ~/.zshrc
plugins=(zsh-autosuggestions)

ج) پلاگین sudo:

بعضی موقع ها شما یه دستوری رو مینویسید و یادتون میاد که باید sudo قبلش قرار بدهید با اضافه کردن این پلاگین بعد از زدن دوبار esc خودش اول دستورتون تو ترمینال قرار میده به همین راحتی?.

د) پلاگین docker:

این پلاگین کمک میکنه موقع استفاده از docker یه autocomplete تمیزتر و بهتری را داشته باشید مانند شکل زیر:

و) پلاگین zsh-syntax-highlighting:

این پلاگین کمک میکنه دستوراتی که در ترمینال میزنید به صورت رنگی نمایش دهد و همچنین یه کمک فوق العاده ای که این قضیه داره اگه دستوری رو نشناسه قرمز نشون میده که سریعتر متوجه اون دستوری میشوید تا اینکه یه پیغام بعد از اجرای دستور تو لینوکس بنویسه که not recognized

دمو این هم می تونید توی تصاویر های قبلی که فرستادم مشاهده کنید. جهت اطلاعات بیشتر و نحوه ی نصب به این لینک مراجعه کنید. در ادامه فایل کانفیگ خودم رو قرار میدم که هم یه reference باشه برای خودم و همچنین شما مشاهده کنید البته یه سری تغییرات نسبت به فایل پیش فرض وجود دارد که در ادامه این مقاله بعضی هاشون رو گفتم مثلا من اومدم alias برای zshconfig و zshsource نوشتم که راحت تر باشم.

export ZSH=&quot/home/shirejoni/.oh-my-zsh&quot
ZSH_THEME=&quotrobbyrussell&quot
plugins=(
git
z
zsh-autosuggestions
sudo
docker
)
source $ZSH/oh-my-zsh.sh
alias zshconfig=&quotvim ~/.zshrc&quot
alias zshsource=&quotsource ~/.zshrc&quot
export PATH=$PATH:/usr/local/go/bin
alias ls='lsd'
alias l='ls -l'
alias la='ls -a'
alias lla='ls -la'
alias lt='ls --tree'
# fzf Configuration
source /usr/share/doc/fzf/examples/key-bindings.zsh
source /usr/share/doc/fzf/examples/completion.zsh
export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border'
source /home/shirejoni/Programs/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

که مشاهده میکنید من برای نصب پلاگین هایی که بالا معرفی کردم همه رو درون plugin قرار دادم البته auto-suggestions یکمی فرق میکرد که اون بالا دستوراتش رو گفتم میزنید و درون plugins هم قرار میدید برای zsh-syntax-highlighting هم میتونید این دستورات زیر را انجام بدید:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
echo &quotsource ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh&quot >> ${ZDOTDIR:-$HOME}/.zshrc

6) نصب vim

اگه با ویم آشنایی ندارید به احتمال زیاد یه نگاه ما قبل تاریخ به این ادیتور دارید در حالی که اینجوری نیست و باید بگم همین الان اگه به ریپازیتوری vim یا neovim نگاه بندازید می فهمید که همین چند ساعت پیش یا نهایتا یک روز گذشته بروزرسانی شده و باید بگم ویم فوق العاده قوی هست و اون چیزی که فکر میکنید فرق میکنه و از اونجایی که من رو ابزار هایی که استفاده میکنم خیلی حساس هستم مطمئن باشید با دقت و بررسی کامل دارم این نظر رو میگم در ادامه متوجه میشید من حتی درون IDEA های Jetbrains هم از vimidea استفاده میکنم چرا که ویم در نوشتن فوق العاده سریعتر هست به خاطر شورت کات ها و امکاناتی که معرفی میکنه خلاصه سرتون رو درد نیارم یکمی در مورد ویم جستجو کنید یاد بگیرید تو یوتیوب ویدئو درموردش زیاد هست و من اگه بخوام به جز نصب ویم، کانفیگ های ویم رو اینجا قرار بدم طول مقاله 2 3 برابر میشه ترجیح میدم یه سری لینک بگم که ازشون برای کانفیگ استفاده کنید البته قبلش باید خود ویم رو یاد بگیرید، ویم نهایتا یه هفته طول میکشه ولی ارزشش رو داره.

این دو تا چنل یوتیوب رو هم من پیشنهاد میکنم که هم آموزش vim میدهند و همچنین کانفیگ vim را انجام میدهند:

1 – کانال ChrisAtMachine

2- کانال ThePrimeagen

برای نصب ویم می تونید دستور زیر رو توی ترمینال بزنید البته من neovim رو ترجیح میدم که از همون اینترنت یا کانال هایی که بالا معرفی شد می تونید متوجه بشید چرا و چه تفاوت هایی دارند

sudo apt install vim

6) نصب دیسکورد

دیسکورد یه برنامه کاربردی برای من هست و من تقریبا اکثر تماس هایی که میشه یا نیاز به screen share هست از این برنامه استفاده میکنم هر چند که چنل های خوب برنامه نویسی هم زیاد داره.
می تونید از سایت دیسکورد فایل deb رو دانلود کنید و به این صورت نصب کنید. البته اسم فایل شما به احتمالا فرق میکنه.

sudo dpkg -i discord-0.0.13.deb

7) نصب نرم افزار های فشرده سازی و extract کردن zip و rar

دیگه لزوم این ابزار ها رو میدونیم و می تونید با استفاده از این دستور آنها رو نصب کنید:

sudo apt install zip unzip rar unrar

8) نصب مدیا پلیر VLC

مدیا پلیر vlc پر استفاده ترین مدیا پلیر لینوکس هست و اونم به نظر من خاطر پشتیبانی کاملی که از انواع فرمت های ویدیویی و صوتی دارد البته یه ویدیو پلیر خوب دیگه هم هست، به اسم Celluloid و برای کار باهاش بیشتر باید شورت کات هاش رو یاد بگیرید. چه خوب میشد گزینه های خوبی مثل PotPlayer یا KMPlayer برای لینوکس بودند. دلیلم هم به خاطر UI/UX بهتری که این ابزار ها دارند.

sudo apt install vlc

9) نصب فونت شبنم | Shabnam

فونت عالی و اپن سورس و رایگان شبنم، کار آقای صابر راستی کردار هست درسته که فونت وزیرشون محبوب تر هست ولی من این فونت رو خیلی دوست دارم و شما می تونید به این صفحه بروید و دیگر فونت های ایشون رو ببینید. ولی منم سعی میکنم در ادامه یه دموی از فونت هاشون را نشون بدم و بعد میرم سراغ نصب فونت شبنم.

– فونت وزیر

لینک صفحه فونت | لینک ریپازیتوری

– فونت شبنم

لینک صفحه فونت | لینک ریپازیتوری

– فونت ساحل

لینک صفحه فونت | لینک ریپازیتوری

– فونت صمیم

لینک صفحه فونت | لینک ریپازیتوری

– فونت گندم

لینک صفحه فونت | لینک ریپازیتوری

– فونت پرستو

لینک صفحه فونت | لینک ریپازیتوری

– فونت وزیر کد

لینک صفحه فونت | لینک ریپازیتوری

– فونت تنها

لینک صفحه فونت | لینک ریپازیتوری

برای نصب فونت شبنم می تونید فایل زیپش را از صفحه فونت، دریافت کنید و درون home تون در پوشه .fonts قرار بدید البته فراموش نکنید درون فایل منیجر پیش فرض ابونتو برای نمایش فایل های hidden باید ctrl + h رو زد و فایل ها و دایرکتوری هایی که . اولشون هستند hidden هستند.

یا می تونید به جایی که دانلود کردید بروید و این دستورات رو درون ترمینال اجرا کنید. ترجیحا همون روش بالا رو برید ولی خب گفتم دستورات رو هم بنویسم اینجا و سعی کردم یه راهی باشه که برای همه راحت باشه دستورات کاملا ساده هستند ولی یکمی زیادند نمی شد تو دو تا دستور بهتون بگم به خاطر اینکه می خواستم برای کسی مشکلی پیش نیاد این روش رو رفتم. دستورات به این شکل هستند که ابتدا یه پوشه میسازیم و اکسترکت میکنیم درون پوشه مانند تصویر

mkdir shabnam-font
unzip shabnam-font-v5.0.1.zip -d shabnam-font

و حالا فونت های ttf رو درون یه پوشه جدا میریزیم که راحت باشیم برای انتقالشون:

cd shabnam-font
mkdir ttf-shabnam
mv Shabnam-*.ttf ttf-shabnam
mv Shabnam.ttf ttf-shabnam

و حالا در اصل داریم فونت ها رو نصب میکنیم:

mv ttf-shabnam/* ~/.fonts

می تونید برای cleanup هم این درستورات رو بزنید البته اگه درون پوشه shabnam-font هستید:

cd ../
sudo rm -r shabnam-font
sudo rm shabnam-font-v5.0.1.zip

۱۰) نصب tlp; برای افزایش طول عمر باطری

میگن طول عمر باطری رو افزایش میده ما که ندیدیم ولی نصب کردیم?:

sudo add-apt-repository ppa:linrunner/tlp
sudo apt install tlp tlp-rdw
sudo tlp start

۱۱) نصب دانلود منیجر XDM

هیچی که از نظر من IDM نمیشه ولی خب اینم عملش خوبه ولی فقط UI خوبی نداره همین. می تونید از این لینک دانلود کنید و نحوه extract و نصبش هم به این گونه هست:

tar -xvf xdm-setup-7.2.11.tar.xz
sudo ./install.sh

برای استفاده بهتر از xdm، افزونه مرورگرش رو نصب کنید

افزونه xdm برای فایرفاکس

افزونه xdm برای کروم

2 دانلود منیجر دیگه هم اینجا اضافه میکنم دانلود منیجر های uGet و Persepolis که توسط آقایان navid shaghozahi و ALi rh معرفی شده اند و پیشنهاد میکنم حتما یه نگاهی به این ها بندازید و گزینه مطلوبتان را نصب کنید.

– دانلود منیجر Persepolis:

پرسپولیس یک دانلود منیجر و رابط کاربری گرافیکی برای Aria2 میباشد که با پایتون نوشته شده است. که opern source هست و قابلیت های خیلی خوبی دارد و برای اطلاعات بیشتر و نصب آن به این لینک مراجعه کنید

– دانلود منیجر uGet:

یک دانلود منیجر open source دیگر هست که از سال ۲۰۰۳ تا الان در حال توسعه هست و با c نوشته شده است. برای نصب و اطلاعات بیشتر میتونید به این لینک مراجعه کنید.

۱۲) نصب Golang

از اون جایی که من به زبان golang علاقه مند هستم و قرار زبان اصلی من برای توسعه بشود اون رو نصب میکنم و خب نحوه نصبش رو نوشتم بهتون پیشنهاد میکنم به نگاهی به این زبان بندازید که واقعا Efficient و Productive هست. برای نصبش هم میتونید از این لینک استفاده کنید.

بعد از دانلود از سایت golang می توانید دستورات زیر رو اجرا کنید.

sudo tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version

البته من خط دوم رو همیشه درون .zshrc قرار میدهم که هنگام سورس شدن بتونم به go دسترسی داشته باشم.

درون zshrc

۱۳) نصب PHP و Apache و MySQL

خب PHP اولین زبان سمت سروری هست که من کار کردم و هنوز هم ازش استفاده میکنم و زبانی هست که دوستش دارم و میدونم حالا حالا هست و کاربرد داره. من برای نصبش آپاچی رو نصب میکنم و مواقعی هم که nginx نیاز دارم اون رو با داکر میارم بالا اینجوری راحت هستم.

sudo apt install apache2

و mysql رو نصب میکنم از اونجایی که من قبلا نصب کردم و الان فرصت نصب دوباره رو ندارم که اسکرین بگیرم ترجیح میدم از این لینک به نصبش بپردازید بعد از نصب همونجور که در لینک هم هست دستور زیر رو اجرا کنید و پاسخ های مناسب رو بهش بدید البته من چون رو دسکتاپ هستم سعی کردم کار خودم راحت تر باشه و validation password رو غیر فعال کردم و موارد دیگه هم درون لینک توضیح داده شده است

sudo mysql_secure_installation

من بعد از نصب از طریق sudo وارد mysql شدم و یه پسورد برای کاربر روت قرار دادم ببینید چون نسخه دسکتاپ هستیم این کار رو کردم تا راحت تر باشم در mysql-8 به صورت پیشفرض نمی تونید با پسورد وارد کاربر روت mysql بشد.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

خب بعد از نصب MYSQL میریم سراغ نصب PHP، از اونجایی که PHP8 تازه release شده هنوز ریپازیتوری PHP7.4 رو نشون میده ولی توصیه مکنم PHP8 رو نصب کنید. دستورات زیر ابتدا ریپازیتوری PHP رو به ابونتو اضافه میکنه و بعد نصب میکنه نیاز به sudo apt update نیست چون در ابونتو ۱۹ به بعد خودش صداش میزنه

sudo add-apt-repository ppa:ondrej/php
sudo apt install php8.0 php8.0-common php8.0-cli libapache2-mod-php8.0 -y
php -v # Show PHP version.
php -m # Show PHP modules loaded.
? php8

یه سری module هم نیاز هست نصب کنید به صورت زیر

sudo apt install php8.0-{bz2,curl,intl,mysql,gd,readline,xml}
sudo apt install php8.0-xdebug

من بعد از نصب php معمولا یه پوشه به اسم PHPProjects دارم که اونو رو دامین مجازی projects.test بالا میارم کارم رو راحت تر میکنه که نحوه انجامش هم به این صورت هست. که شما یه فایل درون ادرس زیر ایجاد میکنید و با ادیتور دلخواهتون باز کنید

و به صورت زیر کانفیگ کنید

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName projects.test
    ServerAlias www.projects.test
    DocumentRoot /home/shirejoni/Projects/PHPProjects
<Directory /home/shirejoni/Projects/PHPProjects>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

و حالا باید یکی از دستورات زیر رو به دلخواه بزنید بزنید تا یه نسخه لینک شده از فایلتون رو درون site-enabled قرار بدهد

sudo a2ensite your_domain
یا
 ln -s /etc/apache2/sites-available/projects.test.conf /etc/apache2/sites-enabled/projects.test.conf

و بعد اش درون فایل /etc/hosts ادرس دامین مجازی رو قرار بدید

و دستور زیر رو انجام دهید تا تغییرات اعمال شود

sudo systemctl restart apache2.service

در دستورتی که مراحل رو به درستی انجام داده باشید و خطای syntax نداشته باشید باید به راحتی درون مرورگر بازکنید البته من لیستی از پروژه ها اینجا دارم ولی شما میتونید رو یه پروژه خاص دامین مجازی ایجاد کنید.

این تغییر رو هم اعمال کنید درون آپاچی که فایل index.php رو به صورت پیش فرض قرار دهد. اون رو اول قرار بدید تا اولویت بیشتری داشته باشد.

نصب phpmyadmin هم خیلی راحت هست کافی هست از این لینک دانلود کنید و درون پوشه ای که می خواد قرار بدید من درون همون پوشه PHPProjects قرار میدم که از طریق projects.test دسترسی داشته باشم.

و طبق این لینک میتونید کانفیگ کنید البته از اون جایی که نسخه دسکتاپ هست و زیاد امنیتش مهم نیست من ترجیح دادم پسورد روت دیتابیسم رو مستقیم درون فایل بنویسم که راحت تر باشم به این صورت که شما فایل config.sample.inc.php به config.inc.php تغییر میدهید یا کپی میکنید. و به این صورت می نویسید:

۱۴) نصب Jetbrains IDEA

بریم سراغ محبوب ترین IDEA من، یعنی Jetbrains تقریبا من هر چیزی رو میخوام شروع میکنم میریم میبینم براش jetbrains کد ادیتور(اینجا منظورم همون IDEA) نوشته یا نه

نصب و کرک کردنشون یکیه و میتونید از سایت های پی سی دانلود (البته برای لینوکس نداره ولی کرکش رو من قبلا استفاده میکردم یکمی معمولا تاخیر داره تو انتشار ولی کرکش معتبر هست) و سافت 98 (برای لینوکس گذاشته و معمولا کرکاش کار میکنند) و دانلودلی
در ابتدا دانلود کنید و اکسترکت کنید حالا که XDM رو نصب دارید راحت تر هستید و میتونید سریعتر دانلود کنید. میتونید از محیط گرافیکی فایل منیجر برای این کار استفاده کنید ولی خب منم دستوراتش رو اینجا نشون دادم

mkdir jetbrains-goland-idea
unzip JetBrains.GoLand.2020.3.0.Linux.zip -d jetbrains-goland-idea
بعد از extract کردن فایل های زیر خواهید دید که میتونید فایل goland-2020.3.tar.gz رو در محلی دلخواه extract کنید من بعدش انتقال دادم به پوشه ~/Programs

که اگه بقیه فایل هایی که درون این پوشه هست رو نادیده بگیرید به این صورت هست

و حالا میتونید طبق ویدیو و راهنمای این سایت های دانلود کرک کنید معمولا همه شون از کرک zhile استفاده میکنند و روش یکسانی دارند پس اگر توضیحات یکیشون رو متوجه نشدید به اون یکی سایت برید مثلا الان ویدیو تصویری براش درون soft98 هست

حواستون باشه که کرک ها رو جدا دانلود کنید معمولا بروز می شوند البته اگر کرک تون کارنکرد از Terial Reset استفاده کنید که اونم میتونید یه تیک هست بزنید خودکار reset میکنه براتون و به همون راحتی کرک عمل میکنه(هرچند کرک کردن کار خوبی نیست ? ولی خودشون حق پرداخت رو من بستند منم کرک میکنم)

می تونید PHPStorm رو هم به این صورت نصب کنید البته من این دو چون ابزار کارم هستند نصب میکنم شما میتونید به سایت Jetbrains برید ببینید چه محصولاتی رو برای چه زبان داره.

من تقریبا IDEA رو کاستومایز میکنم بر اساس نیاز خودم و سعی کردم شورت کات های این IDEA یادبگیر ولی خب کاستومایز کردن و یادگیری اش با خودتون چون مبحث کاملا جدایی هست ولی خب تو اینترنت آموزش براش زیاد هست پلاگین هایی که نصب کردم رو اینجا میگم

من از تم Gruvbox استفاده میکنم قبلش از Material Theme UI استفاده میکردم الان با gruv بیشتر حال میکنم. که هر دو اینها برای کد ادیتور های معروف افزونه دارند و می تونید استفاده کنید.

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

اولی برای ایکون فولدر ها هست و دومی تم Grubbox Theme هست و در نهایت ideaVim که کمک می کنه ویم رو توی Jetbrains بیارید شما تا ویم رو نصب نکنید و کار نکنید باهاش نمیفهیمد چرا من این کار رو کردم وگرنه دلیلش رو متوجه میشید.

اینم یه نمای کالی از PHPStorm که ظاهرش بعد از customize کردن به این شکل خواهد بود

البته من یه سری کانفیگ هم برای ~/.ideavimrc نوشتم برای پلاگین ideavim هست برای راحتی خودم هست هم اینجا مینویسم که برای خودم مرجع باشه و هم دوستانی که تجربه کار با ویم داشتند ممکنه بخواند تو جت برین ازش استفاده کنند ممکنه بدردشون بخوره.

let mapleader=&quot,&quot
vnoremap < <gv
vnoremap > >gv
inoremap jk <Esc>
nnoremap <silent> <C-s> :w<CR>
nnoremap <silent> <C-Q> :wq!<CR>
nnoremap <leader>v :vsplit<CR>
nnoremap <leader>h :split<CR>
nnoremap <leader>q :close<CR>
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nnoremap <leader>v <C-W>v
nnoremap <leader>h <C-W>h
vnoremap <Tab> >gv
vnoremap <S-Tab> <gv

۱۵) نصب OBS Studio

نرم افزار معروف برای recording و streaming هست الان که دوران کرونا هست و نمیدونم تو چه زمانی دارید میخونید این مقاله رو ولی خب من بعضی کلاس های درسی رو ضبط میکنم چون معمولا اهل جزوه نیستم و همین ویدیو ها را با سرعت زیاد گوش میدم البته کاربرد های دیگه ای هم برام داره. نصبش هم خیلی ساده هست. می تونید از طریق این لینک راهنمای نصبش رو ببینید.

sudo apt install ffmpeg
# install obs studio
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt install obs-studio

و در نهایت نصب شد:

obs studio

۱۶) نصب Anki

نرم افزار Anki، یه نرم افزار عالی برای تثبیت اطلاعات در حافظه هست. من اگه جایی از کتابی، مقاله چیز جدیدی یاد بگیرم به انکی میفرستم تا حتما یادم بمونه اون مطلب. انکی یه نرم افزار که به صورت فلش کارت کار میکنه و از همون روش های معروف لایتنر استفاده میکنم. در وصفش همین بگم که خیلی از دانشجو های پزشکی برای حفظ مطالبشون از این نرم افزار استفاده میکنند و اینکه به ظاهر نرم افزار کاری نداشته باشید بر خلاف ظاهرش کاملا کاربردی هست و customizable و اینکه باید تو اینترنت سرچ کنید یه آموزشی در موردش ببینید تا راحت تر بتونید کار کنید باهاش برای نصبش از این لینک دانلود کنید.

tar xjf Downloads/anki-2.1.37-linux.tar.bz2
cd anki-2.1.37-linux
sudo ./install.sh

و پلاگین های که من در anki استفاده میکنم زیاد نیست این دو تا هستند:

  • افزونه Review Heatmap
  • افزونه Syntax Highlighting for Code

۱۷) نصب foxitreader یا okular

متاسفانه برای linux یه pdf reader با امکانات کامل و خوب نیست بلکه هر چی هست فقط نشون میدند امکانات درست حسابی که adobe یا foxitreader ویندوز ارائه میدهند، اینجا نیست و توی تحقیقات من شما می تونید از این دو نسخه استفاده کنید و خب حداقل بهتر از بقیه هستند.

نصب Okular:

sudo apt install okular

نصب foxitreader:

از سایتش نسخه لینوکس را دانلود میکنید و extract کنید و چون فایل run هست اجراش کنید مراحل نصب رو در پنجره باز شده ادامه بدید.

tar xvf Downloads/FoxitReader.enu.setup.2.4.4.0911.x64.run.tar.gz

و اجراش کنید.

۱۸) نصب نرم افزار foliate

برخلاف PDF، یه نرم افزار باحال برای فرمت epub هست و امکانات خوبی داره پیشنهاد میکنم بهش یه نگاه بندازید، منی که فقط PDF می خوندم بعد از این نرم افزار و امکاناتش الان ترجیحم فرمت epub هست در صورتی که نبود PDF ?.

sudo add-apt-repository ppa:apandada1/foliate
sudo apt install foliate

۱۹) نصب Node و Yarn

من علاوه بر برنامه نویسی بکند، برنامه نویسی فرانت اند هم با React انجام میدم و نیاز دارم Node رو نصب داشته باشم البته شما ممکنه بک اند و فرانت روبا نود انجام بدید که فرقی نمیکنه.

برای نصب نود می تونید بری توی این ریپازیتوری و نصب کنید و راهنمای کاملا واضحی داره:

Node.js LTS:

curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

Node.js Current:

curl -sL https://deb.nodesource.com/setup_current.x | sudo -E bash -
sudo apt-get install -y nodejs

یارن هم مانند npm یه پکیج منیجر هست که نسبت به npm سریعتر و خروجی با پیغام های واضح تر و بهتری دارد.

npm install -g yarn

۲۰) نصب ترمینال Alacritty

ترمینال Alacritty، سریعترین ترمینال موجود هست که تمرکزش بر روی سادگی و بهینه بودن هست ولی در عین حال Feature های خوبی داره و کانفیگ کردنش هم از طریق یه فایل yml هست.

sudo apt install alacritty

و من یه کانفیگ ساده ای انجام دادم و یکمی تمش رو تغییر دادید و تم gruvbox را قرار دادم. که فایل کامنفیگ رو میتونید به صورت پیش فرض در این مسیر قرار بدید:

~/.config/alacritty/alacritty.yml

کانفیگ نمونه که Alacritty قرار داده در این لینک هست و میتونید تغییر بدید. تغییرات من توی این لینک هست و بخاطر اینکه yml به space حساس هست و ویرگول درست نشون نمیداد توی یه gist قرار دادم. و خب ظاهر ترمینال رو که بالا دیدید نیاز به نمایش دوباره نیست.

فقط من فونت Fira code رو نصب کردم به همراه icon های nerd font که میتونید از این لینک دریافت کنید. که مثل شبنم دانلود کنیدو درون پوشه .fonts قرار بدید چون تکراری هست انجام نمیدم اینجا.

۲۱) نصب VMWare

همونجور که اون بالا گفتم من از ویندوز فقط فتوشاپش رو استفاده میکنم به خاطر همین تصمیم گرفتم از مجازی ساز استفاده کنم و با VMWare بالا بیاریم هر چند قبلش virtualbox رو امتحان کردم فایده نداشت vmware یه چیز دیگه است.

برای نصب میتونید از این لینک دانلود کنید و extract کنید و درون terminal اجرش کنید و مثل مراحل نصب معمولی نرم افزار ها ادامه بدید.

تصویری از VMWare

۲۲) تنظیم فونت ایتا

از جمله کار هایی که کردم این بود که فونت ایتا در لینوکس رو تغییر بدم برای تغییر این فونت باید به این آدرس بروید و اسم فونت تون رو بنویسید من شبنم رو نوشتم. به این آدرس بروید

.local/share/EitaaDesktop/edata/fc-custom-1.conf

و این فایل رو به این صورت قرار بدهید:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
        <match target=&quotpattern&quot>
                <test qual=&quotany&quot name=&quotfamily&quot>
                        <string>Shabnam</string>
                </test>
                <edit name=&quotfamily&quot mode=&quotassign&quot binding=&quotsame&quot>
                        <string>Shabnam</string>
                </edit>
        </match>
        <dir>~/.fonts</dir>
</fontconfig>

و اینم تصویری از ایتا با فونت شبنم فقط جهت حفظ حریم شخصی دوستانم مجبور بودم پروفایل و اسمشون رو خط بکشم

۲۳) تنظیم Theme:

در مورد تم چون کمی طولانی میشد تصمیم گرفتم همون ویدیویی که دیدم رو بهتون معرفی کنم تا اگه شما هم خوشتون اومد انجام بدید این محیط ابونتو من هست:

برای ایجاد همچین محیط هایی میتونید از این لینک هاکمک بگیرید:

How To Make Ubuntu Look Like macOS Big Sur

How to Make GNOME Desktop Look Like MacOS Big Sur

البته من اون قدر هم کشته مرده مک نیستم? فقط چون این تم از نظر نسبت به بقیه تم ها قشنگ تر بود نصب کردم سلیقه ها فرق میکنه.

۲۴) نصب VSCode:

من قبلا برای ادیت یه فایل تکی از sublime استفاده میکردم ولی خب دیدم vscode هم بد نیست تصمیم گرفتم از vscode استفاده کنم ولی هنوز برای پروژه از Jetbrains استفاده میکنم و خب تجربه زیادی با vscode ندارم ترجیح میدم فقط نصبش رو بگم و دوستانی که تو این زمینه تخصص دارند کانفیگش رو بگند.

می تونید از این لینک vscode را دانلود کنید و دستور زیر رو ترمینال بزنید تا نصب بشه

sudo dpkg -i code_1.52.0-1607640828_amd64.deb

و اینم محیط VS Code من ولی میگم کانفیگ خاصی انجام ندادم و ترجیح میدم چیزی در این باره نگم تا کسی که بهتر با این ادیتور کار کرده توضیح بده اینجا یا تحت مقاله ای جداکه انشالله باب بشه و بقیه دوستان هم تجربیاتشون رو به اشتراک بگذارند.

۲۵) نصب HTOP:

برنامه خیلی خوبیه که تحت ترمینال بالا میاد که اطلاعات کلی در مورد پرسس ها و سیستم مانیتورینگ میده. یه جورایی نسخه ارتقا یافته top هست.

اینم محیط htop:

۲۶) افزونه های مرورگر فایرفاکس من:

  • افزونه ی SaveFrom.net helper all-in-1: برای دانلود از یوتیوب هست البته از youtube-dl هم استفاده میکنم
  • افزونه BuiltWith: افزونه جامعی که اطلاعات کاملی از تکنولوژی صفحات میده
  • افزونه React Developer Tools: اگر توسعه دهنده React باشید این افزونه حتما بدردتون میخوره
  • افزونه Speedup: این افزونه باعث افزایش سرعت ویدیو های صفحات وب می شود مثلا در یوتیوب محدودیت تا 2 برابر هست ولی بعضی موقع ها بیشتر از این نیاز هست
  • افزونه Abadis Persian: دیکشنری Abadis که از اون دیکشنری هاست که من قبولش دارم مخصوصا تو کلمات تخصصی بهتر از خیلی از دیکشنری ها عمل میکنه. این افزونه کمک میکنه یه جستجو معمولی داشته باشید برای اطلاعات بیشتر هم به سایت خودش میفرسته
  • افزونه Simple Tab Groups: از اون افزونه های کاربردی هست من معمولا خیلی تب باز دارم و این کمک میکنه دسته بندی برای تب ها داشته باشم.
  • افزونه NoScript Security Suite: معمولا اسکریپتی نباید اجرا بشه مگر اینکه خودم بخوام این رو معمولا دوست ندارید ولی من استفاده میکنم

۲۷) Clean up

الان خوبه یه clearn up هم انجام بدید?

sudo apt autoremove

یه نکته ای هم که هست من برای اسکرین شات ها از اسکرین شات های خود ابونتو و همچنین از shutter استفاده میکنم:

Ubuntu screenshots:

shift + printscreen // بعد از اسکرین گرفتند درون فایل ذخیره میکنه
ctrl + shift + print screen // بعد از اسکرین گرفتند درون کلیپ بورد ذخیره میکنه

shutter:

محیط shutter
sudo add-apt-repository -y ppa:linuxuprising/shutter
sudo apt install shutter

به پایان رسید این مقاله و هنوز ما اول راهیم?
امیدوارم براتون مفید باشه من خودم تو دوران اولیه لینوکس خیلی به اینجور مقالات نیاز داشتم ولی خیلی پراکنده بود و اینجوری کامل و تحت یه مفهوم هیچ جا ندیدم خودم رو میگم و خب قرار بود یه جا یادداشت کنم reference باشه برام ولی تصمیم گرفتم به صورت مقاله در بیارم که اگه کسی هم خواست استفاده کنه بتونه. حتما نظراتتون رو اعلام کنید و دوستانی که تجربه دارند تو این زمینه در حدا امکان یه مقاله ای تو این زمینه بنویسند یا حداقل در نظرات بگند یا حداقل بگند من این مقاله رو کامل کنم ولی در کل تجربیاتتون رو به اشتراک بزارید ترجیحا یه مقاله کامل بنویسید خیلی خوب میشه لینکتون رو هم اینجا بزارید.
خسته نباشید.


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

اگر قصد شما از یادگیری لینوکس و دستورات آن مدیریت کامل یک سرور از راه دور می‌باشد شما باید به تمامی دستورات مدیریتی لینوکس مسلط باشید تا بتوانید بدون نیاز به محیط گرافیکی و فقط از طریق دستورات، یک یا چندین سرور را به طور همزمان مدیریت و کنترل کنید.

لینوکس بر خلاف سیستم‌عامل ویندوز انعطاف‌پذیری بسیار قدرتمندی در استفاده از دستورات برای مدیریت سرور را دارا می‌باشد، به طوری که با آگاهی از دستورات و بدون نیاز به محیط گرافیکی می‌توان یک سرور لینوکسی را از راه دور به طور کاملاً حرفه‌ای مدیریت کرد، کاری که برای یک سرور ویندوزی غیرممکن و یا بسیار بسیار سخت خواهد بود.

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

آنچه در این آموزش یاد خواهید گرفت

  • 1 آموزش دستورات لینوکس
  • 2 بخش دوم آموزش دستورات لینوکس
  • 3 جلسه سوم آموزش دستورات لینوکس
  • 4 جلسه چهارم آموزش دستورات Linux
  • 5 جلسه پنجم مدیریت بسته‌های RPM
  • 6 جلسه ششم ابزار yum و نحوه استفاده از آن
  • 7 جلسه هفتم مدیریت نصب پکیج‌ها در توزیع‌های دبیان بیس
  • 8 جلسه هشتم مشاهده محتویات فایل
  • 9 جلسه نهم ادیت و کار با فایل متنی
  • ۱۰ جلسه دهم آنالیز و تعمیر فایل سیستم
  • ۱۱ جلسه یازدهم بکاپ گیری و دستورات شبکه
  • ۱۲ جلسه دوازدهم دیواره آتش
  • ۱۳ جلسه سیزدهم نظارت و اشکال‌زدایی سیستم
  • ۱۴ جلسه آخر دستورات اضافی و الحاقی

آموزش دستورات لینوکس

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

tree-آموزش دستئرات لینوکس

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

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

قدم اول: کار با سیستم عامل لینوکس با آموزش نصب لینوکس آغاز می‌شود و توصیه ما با توجه به تجربیات چندین ساله در زمینه کار با سرورهای لینوکسی همین یادگیری کامل آموزش دستورات لینوکس و سپس در آینده گذراندن دوره تخصصی لینوکس برای مدیران سرور می‌باشد.

سعی می‌کنیم هر دستوری که آموزش می‌دهیم مثال بارز استفاده از آن در ویندوز را هم برای شما بگوییم تا به صورت کاملاً ملموس بتوانید کارایی هر دستور را درک کنید.

یکی از کارهایی که ابتدا باید در لینوکس با آن آشنا شوید نحوه‌ی باز کردن فایل‌ها می‌باشد، شما در ویندوز با رفتن روی آیتم موردنظر خود و دابل کلیک کردن، فایل مربوطه را باز می‌کردید، در لینوکس این عمل با دستور cat قابل انجام می‌باشد بدین شکل که ابتدا دستور cat را نوشته و سپس به دنبال آن مسیر فایل مربوطه را وارد می‌کنیم.

cat /etc/passwd
cat /proc/meminfo

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

cat /proc/cpuinfo
cat /proc/meminfo
cat /proc/swaps

دستور اول اطلاعات سی پیو، تعداد هسته‌ها – دستور دوم اطلاعات رم و دستور سوم اطلاعاتی در رابطه با مقادیر swap فایل به شما نمایش خواهد داد.

چنانچه بخواهید تاریخ و زمان تنظیم شده بر روی سرور خود را مشاهده کنید با دستور date خروجی تاریخ و زمان قابل دریافت می‌باشد.

date

date-دستورات لینوکس centos

برای نمایش تمامی اسلات های متصل شده به سیستم هم دستور زیر را می‌توانید استفاده کنید (صرفاً جهت یادآوری: اسلات ها همانند سخت‌افزارهای نصب شونده به صورت کارت هستند که در جایگاه‌های خاصی بر روی سرور تعبیه می‌شوند مثل کارت گرافیک در کیس سیستم‌های شخصی)

lspci

دستور زیر هم برای نمایش تعداد سخت‌افزارهای نوع usb متصل شده به لینوکس کاربرد دارد، مانند زمانی که شما در my computer سیستم‌عامل ویندوزی تعداد usb ها متصل شده به سیستم را بررسی می‌کنید.

lsusb

چنانچه بخواهید اطلاعاتی راجب نوع توزیع و ورژن و اطلاعات کرنل یا هسته لینوکس دریافت کنید می‌توانید از دستور زیر استفاده کنید.

uname –a

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

clock –w

نکته مهم: در لینوکس برای آشنایی بیشتر با هر دستور و همچنین نحوه استفاده از سوییچ‌ها از کامند man قبل از دستور استفاده کنید و راهنمای استفاده را دقیقاً مطالعه کنید تا اطلاعات بسیار کاملی را در رابطه با دستور کسب کنید.

برای مثال ما می‌خواهیم راهنمای دستور cat را دریافت کنیم به صورت زیر در محیط command line دستور را وارد می‌کنیم.

man cat

پایان جلسه اول آموزش دستورات لینوکس

 

بخش دوم آموزش دستورات لینوکس

بخش دوم آموزش دستورات لینوکس رو شروع می‌کنیم، در این قسمت می‌خواهیم یک سری دستورات مدیریت سخت‌افزار رو براتون شرح بدیم که توسط آن‌ها می‌توانید وضعیت روشن، خاموش و ریبوت سرور رو تحت کنترل داشته باشید.

اولین دستور init هستش که توسط آن می‌توانید مد کارکرد سرور رو تغییر بدید، 6 مد برای این دستور تعریف شده که 0 برای بردن سیستم به حالت shutdown مد 1 حالت single user هستش که معمولاً برای ریکاوری استفاده میشه، مد 2 حالت multi user مد 3 حالت multi user with networking مد 4 بلا استفاده و تعریف نشده، مد 5 حالت گرافیکی سیستم که لینوکس معمولاً در این حالت کار میکنه و با GUI بالا میاد و مد 6 هم بردن لینوکس به حالت ریبوت هستش مانند زمانی که شما دستور reboot رو وارد می‌کنید.

init 0
init 1
init 2
init 3
init 5
init 6

دستور بعدی logout هستش که توسط این دستور مانند زمانی که به صورت گرافیکی از ویندوز logout می‌کنید عمل میکنه

logout

دستور reboot هم که معلومه دقیقاً مانند ریستارت کردن در ویندوز عمل می کنه

reboot

دستور shutdown هم که سیستم رو خاموش میکنه ولی اگر با سوییچ‌های دیگه به کار بره میتونه عملکرد متفاوتی داشته باشه برای مثال دستور زیر سیستم رو ریبوت میکنه

shutdown -r now

خوب آموزش دستورات لینوکس رو ببریم سمت مدیریت و کنترل دایرکتوری‌های در لینوکس تا ببینیم چطور میتونیم با دایرکتوری‌ها کار کنیم.

دستور اول که یکی از مهم‌ترین دستورات و بسیار هم پرکاربرد هستش دستور cd هستش این دستور مخفف کلمات change directory هستش به این معنی که شما زمانی بخواهید تو لینوکس از یک مسیر به یک دایرکتوری دیگه برید از این دستور باید استفاده کنید.

در دستور زیر ما هر کجای لینوکس که باشیم با این دستور وارد دایرکتوری خانه میشیم شاید براتون سؤال باشه که این دایرکتوری چی هست خدمتتون باید بگم که این دایرکتوری اطلاعات مربوط به هر یوزر رو نگه‌داری میکند.

cd /home

در لینوکس برای رفتن به یک شاخه قبل‌تر مانند زدن دکمه back در ویندوز جلوی دستور cd ما .. می‌زاریم تا یک دایرکتوری به عقب‌تر برگردیم

cd ..

با زدن دستور زیر در محیط command line لینوکس نیز وارد home یوزر خودتان می‌شوید، چون دستورات رو به عنوان یوزر root وارد می‌کنید دایرکتوری home شما root/ خواهد بود.

cd ~

با دستور cp هم در لینوکس می‌توانید فایل یا دایرکتوری رو کپی کنید، مانند راست کلیک و copy کردن یک آیتم و سپس paste در ویندوز عمل می‌کند.

cp 1.txt /home/1.txt

دستور بالا که کاملاً مشخصه توسط دستور زیر هم یک دایرکتوری رو عیناً با محتویات داخلش کپی می‌کنیم یک جای دیگه

cp /music /music2

توسط دستور ls می‌توانید یک خروجی از دایرکتوری که در حال حاضر در آن هستید بگیرید و هر فایل و دایرکتوری موجود در این دایرکتوری را مشاهده کنید.

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

دستور ls دارای سوییچ‌های گوناگونی است که با زدن دستور man همان‌طور که توضیح دادم می‌توانید از آن‌ها استفاده کنید ولی دستور ls با سوییچ‌های زیر به طور کامل جواب تمامی نیازهای شما را خواهد داد

ls –lha
ls –lthra

اگر بخواهید در لینوکس یک دایرکتوری بسازید باید چیکار کنید؟ باید از دستور mkdir مخفف make directory استفاده کنید و سپس نام دایرکتوری را بدید در مثال زیر ما یک دایرکتوری با نام modireserver می‌سازیم.

mkdir modireserver

اگر بخواهید یک فایل یا یک دایرکتوری را کلاً در لینوکس جابه‌جا کنید مانند move در ویندوز از دستور mv استفاده می‌کنیم در مثال زیر من دایرکتوری modireserver رو منتقل می‌کنم به home به طور کامل

mv modireserver /home

اگر در لینوکس بخواهید ببینید در حال حاضر در چه دایرکتوری هستید از دستور pwd استفاده می‌کنیم با زدن این دستور لینوکس به شما دایرکتوری فعلی که در آن هستید رو به صورت absolute path نمایش خواهد داد.

pwd

توسط دستور rm می‌توانید فایل و دایرکتوری را از روی سرور حذف کنید، در استفاده از این دستور به شدت مراقب باشید چون در صورت اشتباه فایلهای سیستمی لینوکس رو پاک کنید دیگه هیچ کار نمیشه کرد و کلیه‌ی اطلاعات شما از بین خواهد رفت در دوره لینوکس برای مدیران سرور اشاره کردیم که چگونه از این دستور به صورت امن استفاده کنید.

rm modireserver

زمانی که دستور بالا را وارد کنید از شما سؤال خواهد شد که آیا مطمئن به حذف فایل هستید یا خیر و بعد تأیید این عمل انجام می‌شود ولی اگر بخواهید به صورت کامل و بدون هیچ سؤالی یک دایرکتوری را با محتویات داخل آن پاک کنید از سوییچ‌های این دستور به شکل زیر استفاده کنید.

rm –rf modireserver

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

touch test.txt

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

tree

پایان بخش دوم آموزش دستورات لینوکس

 

جلسه سوم آموزش دستورات لینوکس

برای سرچ در لینوکس هم دستورات قدرتمندی وجود دارد که شما توسط آن‌ها می‌توانید آیتم‌های متنوع از جمله فایل، یوزر، دایرکتوری و… را جستجو کنید. قدرتمندترین دستور موجود find می‌باشد که در ادامه به نحوه کاربرد آن خواهیم پرداخت.

برای پیدا کردن یک فایل در لینوکس از دستور find به همراه سوییچ name- به شکل زیر استفاده می‌کنیم.

find / -name filename

به جای filename نام فایل موردنظر خود را وارد کنید.

اگر به دنبال فایل‌هایی با پسوند خاصی می‌باشید می‌توانید به صورت زیر از دستور find استفاده کنید. توسط دستور زیر تمامی فایل‌هایی که پسوند آن‌ها txt. می‌باشد برای شما نمایش داده خواهند شد.

find / -name *.txt

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

و یا اگر به دنبال فایلی می‌گردید که آخرین بار ۳۰ روز قبل استفاده شده و تا زمان کنونی به آن دسترسی گرفته نشده باشد از دستور زیر می‌توانید استفاده کنید

find / -type f –atime 30

در دستور بالا با سوییچ type- فقط به دنبال فایلها هستیم و یک جور فیلتر ایجاد کردیم و توسط atime- نیز تمامی فایل‌های مسیر / که آخرین بار ۳۰ روز گذشته به آن‌ها دسترسی گرفته شده در خروجی نمایش داده خواهند شد.

دستور بعدی که از آن نیز برای جستجو استفاده می‌کنیم دستور locate هستش مزیت این دستور نسبت به find سرعت بیشتر آن در پیدا سرچ هستش ولی حتماً باید قبل استفاده دستور updated را بزنید تا دیتابیسی که از آن برای جستجو استفاده می‌کند آپدیت شود.

locate *.txt

برای نمایش مسیر یک فایل باینری در لینوکس نیز می‌توانید از دستور زیر استفاده کنید.

whereis ls

توسط این دستور ما در واقع به دنبال مسیر فایل باینری ls هستیم که اگر یادتون باشه ls خودش دستور لینوکسی هستش

دستور نهایی هم which هستش که کاربردی مانند whereis دارد

which ls

پایان بخش سوم آموزش دستورات لینوکس

 

جلسه چهارم آموزش دستورات Linux

دستور mount نیز برای مستقر کردن یک دایرکتوری و یا هارد دیسک به مسیر دیگری در لینوکس مورد استفاده می‌باشد. برای مثال شما زمانی که یک usb را به لینوکس خود متصل می‌کنید این سخت‌افزار به صورت یک پارتیشن توسط سیستم شناسایی خواهد شد و شما برای آنکه بتوانید از اطلاعات درون این دیسک در یک دایرکتوری مشخص شده توسط خودتان استفاده کنید می‌توانید یک دایرکتوری ابتدا ایجاد کرده و سپس usb را به آن mount کنید.

mount /dev/usb /root/myusb

برای خارج کردن پارتیشن از حالت استقرار هم از دستور زیر استفاده می‌کنیم.

umount /dev/usb

شما به عنوان مدیر سرور نیاز دارید تا مرتباً مقدار فضای استفاده شده و یا فضای خالی هارد سرور را بررسی کنید و در صورت لزوم مناسب‌ترین تمهیدات رو بی اندیشید توسط دستور df می‌توانید تمامی پارتیشن‌های مانت شده را به همراه مقدار فضای خالی آن‌ها مشاهده نمایید.

df –h

چنانچه بخواهید مقدار فضای استفاده شده توسط یک دایرکتوری خاص را بررسی کنید می‌توانید از دستور زیر استفاده کنید.

du –sh dirname

جای dirname نام دایرکتوری موردنظر خودتان را وارد نمایید.

در این بخش می‌رسیم به دستورات مدیریت کاربران که تماماً توسط مدیر سرور و با دسترسی root انجام میشه، مدیر میتونه توسط این دستورها در سرورهای لینوکسی یوزری ایجاد کرده، حذف و یا دسترسی‌های آن‌ها را محدود نماید.

توسط دستور زیر بر روی یک یوزر محدودیت زمانی اعمال می‌شود

chage -E 2005-12-31 user

به جای user نام کاربری موردنظر خود را وارد نمایید و طبق همیشه برای بررسی سوییچ‌ها می‌توانید از دستور man در ابتدای دستور استفاده کنید.

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

با دستور groupadd groupname می‌توانید این کار را انجام دهید فقط کافی است نام گروه کاربری موردنظر خود را جایگزین groupname کنید.

در هر زمان اگر بخواهید یک گروه را حذف نمایید دستور مشخصی بدین منظور در لینوکس برای آن در نظر گرفته شده است. توسط دستور groupdel به راحتی می‌توانید اقدام به این کار کنید.

groupdel groupname

گاهی مواقع هم نیاز هستش تا اطلاعات یک گروه کاربری مانند نام آن را تغییر دهید برای این منظور دستور groupmod تعیین شده است که با فرمت زیر می‌توانید از آن بهره‌مند شوید.

groupmod -n vpsroyal modireserver

در دستور بالا ما نام گروه را از vpsroyal به modireserver تغییر دادیم.

دستور پرکاربرد بعدی دستور passwd می‌باشد که توسط آن می‌توانید پسورد هر یوزر را تغییر بدید اگر با دسترسی روت وارد ناحیه ssh سرور شده باشید و این دستور را تنها وارد کنید در واقع دارید پسورد یوزر root رو تغییر میدید ولی چنانچه جلوی دستور نام کاربری را وارد کنید پسورد مشخصاً یوزر مربوطه تغییر خواهد کرد.

دستور مهم آخر نیز دستور اضافه کردن یوزر به سرور هستش که من کامل‌ترین سوییچ‌های انو هم استفاده کرده که در ادامه براتون هرکدومو شرح میدم

useradd -c  “comment here” -g adm -d /home/user -s /bin/bash user

توسط سوییچ c برای یوزر یک کامنت تعریف می‌کنیم که البته وجود اون ضروری نیستش، توسط سوییچ g یوزر رو به گروه مربوطه مرتبط می‌کنیم و با d خانه یوزر و محل قرارگیری فایل‌های هر یوزر رو مشخص می‌کنیم و توسط d نیز دسترسی کاربر به شل رو معلوم می‌کنیم.

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

chgrp adm file

توسط دستور بالا file را به گروه کاربری adm تغییر می‌دهیم.

دستور بسیار مهم و کاربردی بعدی دستور chmod می‌باشد توسط این دستور می‌توان پرمیژن هر فایل و یا دایرکتوری را تغییر داد. سه سمبلی که برای این دستور حتماً باید آن‌ها را یادبگیرید r به معنی read و عدد 4، w به معنی write و عدد 2 و x به معنی execute و عدد 1 می‌باشد.

زمانی که بخواهید به یک فایل فقط دسترسی خواندن داشته باشید با توجه به ترکیب بالا خروجی دستور می شود –r و عدد مربوطه ۴۰۰ خواهد شد یعنی chmod 400 file و بدین شکل می‌توانید ترکیب‌های دیگری برای این دستور نیز بسازید.

دستور بعدی chown می‌باشد مخفف change owner یا تغییر مالک، هر فایل و یا دایرکتوری به یک مالک و یک گروه اختصاص دارد شما توسط دستور مربوطه می‌توانید با فرمت زیر این دو مورد رو تغییر بدید

chown root:root file

چنانچه بخواهید به صورت تو در تو تمامی فایل‌ها و یا دایرکتوری‌های موجود در دایرکتوری موردنظر خود را تغییر مالک دهید از سوییچ R- به صورت زیر استفاده کنید.

chown –R root:root directory

فشرده‌سازی و خارج کردن فایل‌ها از حالت فشرده :

برای اکسترکت فایل‌های فشرده شده با پسوند bz2. از دستور bunzip2 به شکل زیر می‌توانید استفاده کنید.

bunzip2 file.bz2

برای فشرده کردن یک فایل با پسوند bzip2 از دستور زیر می‌توانید استفاده کنید.

bzip2 file

برای خارج کردن فایل از حالت فشرده با پسوند gz. از دستور زیر می‌توانید استفاده کنید.

gunzip file.gz

برای فشرده کردن فایل با پسوند gz از دستور زیر استفاده می‌شود.

gzip file

برای فشرده کردن یک فایل با حداکثر میزان فشردگی می‌توانید از دستور زیر استفاده کنید.

gzip -9 file

برای فشرده کردن یک فایل با پسوند rar نیز می‌توانید به فرمت زیر دستور را وارد کنید.

rar a file.rar file

برای خارج کردن یک فایل از حالت فشرده نیز می‌توانید به شکل زیر دستور را وارد نمایید.

rar x file.rar

ایجاد یک فایل با فرمت tar به صورت غیر فشرده

tar -cvf archive.tar file

برای خارج کردن یک فایل از حالت فشرده tar.gz. می‌توانید از دستور زیر استفاده کنید.

tar -xvfz archive.tar.gz

برای خارج کردن یک فایل از حالت فشرده با پسوند zip از دستور زیر می‌توانید استفاده کنید.

unzip file.zip

پایان جلسه چهارم

 

جلسه پنجم مدیریت بسته‌های RPM

در لینوکس‌های مبتنی بر توزیع ردهت بیس برای نصب بسته‌های نرم‌افزاری از پکیج‌های RPM استفاده می‌شود. بدین صورت که ابتدا شما باید فایل مربوط به نرم‌افزار خود را از اینترنت دانلود کرده و سپس توسط دستور زیر اقدام به نصب آن کنید.

rpm -ivh package

به جای package نام نرم‌افزار خود را به صورت کامل وارد کنید.

چنانچه بخواهید یک پکیج را بدون در نظر گرفتن پیش‌نیازهای آن نصب کنید می‌توانید از دستور RPM به صورت زیر استفاده کنید.

rpm -ivh -nodeeps package

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

rpm -U package

برای حذف یک بسته می‌توانید از دستور زیر استفاده کنید.

rpm -e package

از دستور زیر نیز می‌توانید برای نمایش تمامی پکیج‌های نصب شده بر روی سیستم استفاده کنید.

rpm –qa

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

rpm -qa | grep httpd

من در این مثال به دنبال پکیج httpd بودم

توسط دستور زیر می‌توانیم صحت سالم بودن تمامی بسته‌های نصب شده بر روی سیستم خود را بررسی کنیم.

rpm -qa gpg-pubkey

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

rpm2cpio package | cpio -id

پایان جلسه پنجم آموزش دستورات لینوکس

 

جلسه ششم ابزار yum و نحوه استفاده از آن

در این جلسه از آموزش دستورات لینوکس (Linux Commands) به نحوه بررسی و نصب دقیق پکیج‌ها بر روی توزیع‌های مبتنی بر ردهت خواهیم پرداخت، این جلسه یکی از پرکاربردترین بخش‌های دستورات لینوکس centos محسوب می‌شود.

در توزیع‌های ردهت بیس همانند centos یک دستور قدرتمند برای نصب و مدیریت پکیج‌ها با نام yum وجود دارد این ابزار همانند apt در توزیع‌های دبیان بیس عمل می‌کند شما توسط این دستور می‌توانید یک پکیج را جستجو، نصب و حتی حذف کنید.

توسط دستور زیر از سری دستورات لینوکس centos می‌توانید یک پکیج را به صورت اتوماتیک نصب نمایید این دستور بدین شکل عمل می‌کند که ابتدا به مخازن centos رجوع کرده و در صورت وجود نام پکیج در مخزن آن را بر روی لینوکس شما نصب و راه‌اندازی می‌کند.

yum -y install packagename

اگر پکیج در مخزن اصلی وجود نداشته باشد یا باید به صورت دستی آن را نصب کنید و یا در صورت وجود مخزن حاوی پکیج آن را بر روی لینوکس خود فعال کنید. برای مثال بسیاری از پکیج‌های مهم توسط مخزن epel بر روی لینوکس قابل نصب هستند که شما می‌توانید آن را با دستور زیر ابتدا بر روی لینوکس خود فعال کنید و بعد توسط دستور بالا آن را نصب کنید.

yum install epel-release

توسط دستور زیر تمامی پکیج‌هایی که بر روی لینوکس شما نصب هستند به آخرین ورژن آپدیت می‌شوند، استفاده از دستور زیر برای یک مدیر سرور به صورت دوره‌ای جز واجبات کار محسوب می‌شود.

yum -y update

سوییچ y- باعث می‌شود بعد از بررسی پکیج‌ها هنگام آپدیت جهت نصب از شما دوباره اجازه بازنویسی پرسیده نشود و تمامی کارها اتوماتیک و بدون وقفه انجام شوند.

برای حذف یک پکیج بعد از اینکه نام آن را یافتید باید توسط دستور زیر آن را حذف کنید. البته باید این را مدنظر داشته باشید فقط پکیج‌هایی توسط این دستور حذف می‌شوند که توسط دستور yum قبلاً نصب شده باشند.

yum remove packagename

اگر به دنبال نصب یک پکیج خاص هستید ولی نام دقیق آن را نمی‌دانید و هنگام استفاده از دستور نصب با ارور مواجه می‌شوید کافی است بعد از دستور yum search بخشی از نام پکیج را وارد کنید تا اسم دقیق آن برای شما در خروجی نمایش داده شود.

اگر در گذشته هنگام نصب یک پکیج با ارور مواجه شده باشید محتمل است در آینده هنگام نصب پکیج‌های جدید همان ارور قبلی برای شما رخ دهید در این مواقع باید توسط دستور yum clean all تمامی cache موجود بر روی لینوکس خود را پاک کرده و دوباره برای نصب اقدام کنید.

پایان جلسه ششم

 

جلسه هفتم مدیریت نصب پکیج‌ها در توزیع‌های دبیان بیس

توسط دستور dpkg می‌توان در توزیع‌های دبیان بیس مانند دبیان و اوبونتو به مدیریت بسته‌های نصبی پرداخت، توسط دستور زیر می‌توان یک پکیج را بر روی سیستم نصب و یا آپدیت نمود.

dpkg –i package.deb

مشخصاً باید به جای package.deb نام پکیجی که قصد نصب و یا آپدیت آن را دارید باید قرار دهید.

با استفاده از همین دستور و تنها با تغییر سوییچ به r- می‌توان یک پکیج را از روی سیستم حذف نمود، فرمت استفاده از این دستور به شکل زیر می‌باشد.

dpkg –r package

با استفاده از سوییچ l- می‌توان لیستی از تمام پکیج‌های نصب شده بر روی سیستم را در خروجی نمایش داد.

dpkg –l

چنانچه بخواهید یک پکیج نصب شده بر روی سیستم را درون این لیست جستجو کنید کافی است از دستور زیر استفاده کنید.

dpkg -l | grep httpd

توسط دستور بالا خروجی لیست شده را به ورودی دستور grep داده و می‌توانیم هر پکیجی را جستجو کنیم که در این مثال ما به دنبال وب سرور apache بودیم.

اگر بر روی سرور به یک فایلی برخورد کردید و خواستید که بدانید این فایل دقیقاً مربوط به کدام پکیج نصبی بوده است می‌توانید از دستور زیر استفاده کنید.

dpkg -S /bin/ping

پایان جلسه هفتم

 

جلسه هشتم مشاهده محتویات فایل

در لینوکس شما همواره به عنوان مدیر سرور نیاز خواهید داشت تا محتویات درون فایل‌ها را بررسی کنید و آن را بخوانید و یا ادیت کنید لینوکس انعطاف‌پذیری بسیار زیادی برای خواندن فایل‌ها با دستورات متنوع دارد یکی از مشهورترین آن‌ها دستور cat می‌باشد.

cat یکی از دستورات لینوکس centos است که توسط دستور cat شما همواره هر فایلی را با هر پسوندی می‌توانید باز کرده و محتویات آن را بخوانید و کاربرد دیگر دستور cat ادغام محتویات چند فایل به صورت همزمان باهم و نمایش خروجی آن هاست.

cat file

توسط دستور بالا تمامی محتویات داخل file در خروجی نمایش داده خواهد شد.

دستور بعدی head می‌باشد همان‌طور که از معنی آن هم مشخص است این دستور برای نماش بخش ابتدای یک فایل به کار می‌رود، برای مثال توسط دستور زیر ما فقط دو خط ابتدایی فایل را در خروجی نمایش می‌دهیم.

head -2 file

حالا اگر بخواهیم چند خط انتهایی فایل را نمایش دهیم باید از دستور tail استفاده کنید، قرینه دستور بالا را با less اجرا می‌کنیم و دو خط انتهایی فایل را مشاهده می‌کنیم.

tail -2 file

دستور less و more نیز قابلیت خواندن یک فایل را فراهم کرده با این تفاوت که more به صورت درصدی و جلو رونده بوده و less قابلیت رو به عقب و خواندن خط به خط را فراهم می‌کند و نسبت به more پرکاربردتر است.

پایان جلسه هشتم

 

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

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

echo hello world | awk '{print $1}'

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

اگر بخواهیم دو فایل را با هم مقایسه کنیم دستوری منحصراً برای این کار در لینوکس تعبیه شده است که می‌توان از آن استفاده کرد توسط دستور زیر ما دو فایل test1 و test2 را با هم مقایسه می‌کنیم.

diff test1 test2

دستور فوق‌العاده پرکاربرد و بی‌نظیر بعدی grep هستش که به کمک آن می‌توانید درون محتویات یک فایل جستجو کنید، برای مثال شما می‌خواهید درون یک دایرکتوری خاص هر فایلی که دورن آن عبارت modireserver آمده بود را پیدا کنید به راحتی توسط دستور grep و به شکل زیر می‌توانید این کار را انجام دهید.

grep modireserver /var/log/messages

البته در دستور بالا ما فقط درون فایل لاگ messages به دنبال عبارت modireserver بودیم شما می‌توانید از این دستور به شکل‌های بهینه‌تری استفاده کنید و سوییچ‌های مهم آن را باهم ترکیب کنید.

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

sed 's/string1/string2/g' example.txt

توسط دستور بالا ما عبارت string1 را به string2 درون فایل example.txt تبدیل کردیم

دستور آخر نیز sort بوده که به وسیله آن می‌توان خروجی چند فایل را به صورت مرتب شده بر اساس فاکتور دلخواه شما درآورد.

sort file1 file2 | uniq

با استفاده از دستور بالا دو فایل file1 و file2 با هم ترکیب شده و خروجی آن‌ها به صورت sort شده و البته با حذف خطوط تکراری نمایش داده می‌شود.

پایان جلسه نهم

 

جلسه دهم آنالیز و تعمیر فایل سیستم

در مواردی در لینوکس، فایل سیستم شما ممکن است دچار مشکل شود و شما به عنوان مدیر سیستم باید در سریع‌ترین زمان مشکلات موجود را رفع نمایید، یکی از دستوراتی که در این‌گونه موارد به کمک شما می‌آید دستور fsck می‌باشد که وظیفه چک و رفع مشکلات فایل سیستم را بر عهده دارد.

fsck /dev/sda1

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

دستور fsck خود یک دستور font-end برای دستور fsck.ext2,fsck.ext3,fsck.vfat و … می‌باشد که با توجه به نوع پارتیشن فرمت هارد شما آن را به صورت اتوماتیک شناسایی و اجرا می‌کند.

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

badblocks -v /dev/hda1

یکی دیگر از دستورات مدیریتی در لینوکس دستور mkfs می‌باشد که وظیفه پارتیشن‌بندی هارد را بر عهده دارد، استفاده از این دستور بدون سوییچ به شکل زیر بر روی hda1 پارتیشن فرمت ext2 را اجرا می‌کند.

mkfs /dev/hda1

استفاده از سوییچ‌های این دستور به شما قابلیت پارتیشن‌بندی هارد با انواع رایج فرمت‌ها را فراهم می‌سازد، برای مثال توسط دستور زیر فرمت FAT32 رو بر روی هارد اجرا می‌کنیم.

mkfs -t vfat 32 -F /dev/hda1

دستور آخر نیز mkswap می‌باشد یک دستور کم کاربرد ولی ضروری برای مدیران سیستم، این دستور به شما امکان پارتیشن‌بندی یک هارد را به منظور اختصاص دهی برای عملیات swap فراهم می‌کند، swap یک فضایی بر روی هارد است که اصولاً مقدار آن دو برابر رم سیستم است و نهایتاً 8 گیگ بوده و در مواقعی که رم موجود بر روی لینوکس قادر به پاسخگویی به درخواست‌ها نباشد با نوشتن اطلاعات قبلی روی رم روی فضای swap رم را برای پاسخگویی به درخواست‌های جدید خالی می‌کند که البته کند می‌باشد ولی برای استفاده‌های سروری ضروری است.

mkswap /dev/hda3

توسط دستور بالا پارتیشن سوم هارد اول را به swap اختصاص دادیم البته بحث مدیریت swap تخصصی بوده که سعی کردیم در دوره 0 تا ۱۰۰ لینوکس برای مدیران سرور آن را آموزش دهیم.

بعد از پارتیشن‌بندی هارد مربوط به swap باید آن را در فایل fstab تعریف کنید و توسط دستور swapon آن را به فضای موجود اختصاص دهید.

swapon /dev/hda3

بدیهی است توسط دستور swapoff می‌توانیم فضایی که برای عملیات swap اختصاص داده‌ایم را غیرفعال کنیم.

پایان جلسه دهم آموزش دستورات لینوکس

 

جلسه یازدهم بکاپ گیری و دستورات شبکه

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

find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2

در واقع شما با زدن یک دستور توانستید مجموعه‌ای از فایل‌های پراکنده log را به صورت یک فایل فشرده در سریعترین زمان ممکن در اختیار بگیرید که اگر این کار را دستی قصد داشتید انجام بدید زمان بسیار زیادی را فقط باید صرف پیدا کردن فایل‌ها می‌کردید.

توسط دستور زیر هم از طریق ssh یک سرور ثانویه، از هارد سرور هدف یک بکاپ تهیه می‌کنیم

dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz'

توسط دستور زیر هم می توانیم بکاپ موجود از دایرکتوری home/ را بازگردانی کنیم

restore -if /tmp/home0.bak

با دستور tar هم به شکل زیر می‌توان از یک دایرکتوری به طور کامل نسخه پشتیبان تهیه کرد.

tar -cvf backup.tar /home/user

در بررسی آموزش دستورات لینوکس به بخش شیرین دستورات شبکه می‌رسیم که می‌توانیم به واسطه آن‌ها رو شبکه کنترل دقیقی داشته باشیم

دستور اول وظیفه بردن کارت شبکه روی مد dhcp را بر عهده دارد

dhclient eth0

البته نام کارت شبکه را توسط دستور ifconfig پیدا می‌کنیم و توسط دستور بالا مد آن را تغییر می‌دهیم.

حال می‌توانیم توسط دستور ifconfig eth0 تنظیمات کارت شبکه خودمان را مشاهده کنیم و مقادیر ip و gateway و netmask را بررسی و حتی تغییر دهیم.

اگر بخواهیم کارت شبکه را از شبکه خارج کنیم می‌توانیم توسط دستور زیر موقتاً آن را غیرفعال کنیم.

ifdown eth0

حالا اگر بخواهیم کارت شبکه را به حالت اول برگردانیم و وارد شبکه کنیم می‌توانیم از دستور مخالف یعنی ifup eth0 استفاده کنیم.

دستور مهم و پرکاربرد بعدی netstat هستش که به واسطه آن می‌توان اتصالات شبکه را به طور دقیق ردیابی کرد این دستور به همراه سوییچ‌های آن قدرتمند و با ارزش است پس لزوماً باید با استفاده از man به کاربرد تمامی سوییچ‌های آن مسلط شوید.

netstat –tup

این دستور تمامی اتصالات شبکه و PID مربوط به هرکدام را نمایش می‌دهد.

در مبحث روتینگ و تنظیم gateway نیز از دستور route استفاده خواهیم کرد. استفاده از این دستور به همراه سوییچ n- تمامی اطلاعات مربوط به جداول روتینگ را نمایش می‌دهد.

route –n

حالا اگر بخواهیم آدرس gateway مربوط به یک کارت شبکه را تغییر دهیم می‌توانیم از دستور زیر استفاده کنیم.

route add -net 0/0 gw IP_Gateway

بدیهی است باید به جای gw IP_Gateway آدرس Ip مربوط به gateway دریافتی از سمت دیتاسنتر را وارد نمایید.

در لینوکس و در لابه‌لای آموزش دستورات لینوکس به یک دستور مهم و البته کاربردی در مواقع خاص می‌رسیم، توسط دستور زیر شما سرور و یا سیستم خودتان را به حالت مد routing می‌برید یعنی لینوکس شما همانند یک روتر قابلیت روت کردن پکتها را خواهد داشت.

echo "1" > /proc/sys/net/ipv4/ip_forward

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

tcpdump tcp port 80

توسط دستور بالا تمامی پکتهای مربوط به وب سرور بر بستر پروتکل tcp در خروجی نمایش داده خواهند شد.

پایان جلسه یازدهم

 

جلسه دوازدهم دیواره آتش

در لینوکس به صورت پیش‌فرض از یک فایروال قدرتمند به نام iptables بهره گرفته شده است، توسط این ابزار قدرتمند و البته با تسلط به دستورات آن می‌توان رول‌های بسیار قدرتمندی نوشت که جلوی بسیاری از حملات شبکه را گرفته و برای شما امنیت را به طور چشمگیری افزایش دهد.

طبق همیشه استفاده از man برای مشاهده سوییچ‌های کاربردی و راهنمای دستور استفاده می‌کنیم و بعد با استفاده از تمرین بر دستورات مسلط می‌شویم.

اولین دستور برای نمایش تمامی رول‌های مربوط به filter هستش که در خروجی برای شما لیست خواهد شد.

iptables -t filter –L

در واقع استفاده از دستور iptables به این فرمت برای گرفتن اطلاعات دیتابیس فایروال می‌باشد.

دستور iptables -t nat –F نیز تمامی رول‌های مربوط به nat را در خروجی نمایش می‌دهد.

دیواره آتش iptables دارای یکسری فرمت‌های مشخص بوده که با یادگیری چند نمونه از آن‌ها می‌توانید به راحتی قوانین متنوعی را بنویسید.

توسط دستور زیر ما اجازه‌ی اتصال telnet به ورودی را می‌دهیم.

iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT

یا توسط دستور زیر اجازه اتصال http به خروجی را مسدود می‌کنیم.

iptables -t filter -A OUTPUT -p tcp --dport http -j DROP

و یا حتی می‌توان بسته‌های یک میزبان را به یک مقصد و یا میزبان دیگر تحویل داد.

iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22

پایان جلسه دوازدهم

 

جلسه سیزدهم نظارت و اشکال‌زدایی سیستم

در این جلسه از آموزش دستورات لینوکس می‌رسیم به مبحث نظارت روی سخت‌افزار و اتصالات شبکه، یک مدیر سیستم باید توانایی بررسی و حل مشکلات سیستم را در مواقع ضروری داشته باشد ممکن است در مواقعی لود سرور بالا رفته و مشکلاتی از جمله down شدن سرویس‌ها را همراه داشته باشد و یا اتصالات و پکتهای بیشماری از سمت آدرس‌هایی محدودی به سمت سرور شما باعث اشغال منابع سرور شده و شما را زحمت بیندازد.

در این‌گونه از موارد شما باید توانایی این را داشته باشید که سریعاً وارد عمل شده مشکل را یافته و بهترین راهکار را جهت برون رفت اعمال کنید.

یکی از منابع مهم و همیشه درگیر در سیستم رم می‌باشد، شما باید مرتباً میزان خالی و پر بودن رم را بررسی کنید و در صورت لزوم به صورت سخت‌افزاری منابع را افزایش داده و یا برای خروج از overload شدن راهکاری پیدا کنید.

free –m

این دستور میزان فضای استفاده شده و فضای خالی رم را بر حسب مگابایت به شما نمایش می‌دهد.

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

kill -9 process_id

شما باید به جای process_id عدد مربوط به شماره PID آن پروسه را ابتدا پیدا کنید و سپس با جایگزینی آن را ببندید، برای پیدا کردن شماره پروسه‌ها می‌توانید از دستورات مختلفی همچون ps و یا top استفاده کنید.

توسط دستور زیر می‌توانید آخرین باری که سیستم راه‌اندازی مجدد شده را مشاهده کنید.

last reboot

لینوکس توسط کرنل و ماژول‌های که توسط آن راه‌اندازی می‌شود اجرا و کاربردی می‌شود در لینوکس توسط دستور زیر شما می‌توانید لیستی از ماژول‌های در حال اجرای روی سیستم را مشاهده کنید.

lsmod

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

lsof -p process_id

همان‌طور که قبل‌تر هم اشاره کردیم توسط دستور ps می‌توان پروسه‌های سیستمی را مشاهده کرد، این دستور توسط سوییچ‌های آن کاربردی می‌شود و نمونه‌ای از این دستور که نمایش تمامی برنامه‌های در حال اجرا را ممکن می‌کند به شکل زیر می‌باشد.

ps –eafw

شاید در مواقعی بخواهید وابستگی هر پروسه به دیگری را به صورت یک نمایش گرافیکی و درختی مشاهده کنید که لینوکس یک دستور برای این کار در نظر گرفته که می‌توانید از آن استفاده کنید.

pstree

دستور بسیار مهم بعدی دستور top هستش که به جرات می‌توان گفت تمامی مدیران سیستم به صورت روزانه از آن استفاده می‌کنند.

این دستور تمامی پروسه‌ها، میزان استفاده از منابع را به صورت در لحظه نمایش می‌دهد و ابزاری قدرتمند برای سنجش کارای و رفع مشکل سیستم است.

پایان جلسه سیزدهم

 

جلسه آخر دستورات اضافی و الحاقی

در لینوکس قابلیتی به نام alias وجود دارد که به واسطه آن می‌توانید برای دستورات عبارات معادل و کوتاه دلخواه در نظر بگیرید برای مثال توسط دستور زیر شما تعریف می‌کنید که هرگاه hh تایپ شد عملکردی مانند دستور history را داشته باش

alias hh='history'

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

gpg -c file1

توسط این دستور شما روی فایل یک کد رمزنگاری شده قرار می‌دهید.

در مواقعی نیاز دارید تا کتابخانه‌های استفاده شده یک برنامه را دقیقاً متوجه شوید تا از آن‌ها در برنامه‌نویسی خود استفاده کنید و یا حتی آن کتابخانه به خصوص را آپدیت کنید توسط دستور ldd /usr/bin/ssh به طور مثال می‌توانید تمامی کتابخانه‌های مورد استفاده دستور ssh را مشاهده کنیم.

دستور آخر نیز دستور who –a هستش که به واسطه آن می‌توان تمامی کاربرانی که در حال حاضر به سیستم متصل هستند، پروسه‌های فعال، پروسه‌های مرده، آخرین تغییرات روی ساعت و … را مشاهده کرد.

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

هرگونه سؤال و مشکلی در رابطه با این آموزش را زیر همین تایپک مطرح کنید. سعی می‌کنیم کمتر از ۲۴ ساعت پاسخ آن‌ برایتان ارسال کنیم.

آیا این مطلب برای شما مفید بود؟

میانگین امتیاز 5 / 5. تعداد آرا: ۶۱