همه چیزهایی که برای استفاده از لینوکس باید بدانید
لینوکس سیستم عامل اصلی من از سال 2019 است. در تکمیل پست هفته گذشته در مورد WSL، تصمیم گرفتم این سری از پستها را شروع کنم که همه چیزهایی را که برای استفاده از لینوکس، حتی در WSL، نیاز دارید، به شما آموزش میدهند.
همه چیزهایی که باید در موردش بدانم؟
هدف من در اینجا ساده است: ارائه تمام اطلاعات موجود برای شما (توسعه دهنده) تا شروع کنید و بتوانید در آن زمان از ابزار استفاده کنید. من قصد ندارم به همه چیز شما پاسخ دهم او می تواند یا باید بدانید، فقط لازم است
لینوکس چیست
به طور کلی، لینوکس برای توصیف سیستم عامل هایی که بر اساس هسته لینوکس هستند استفاده می شود، اما در اینجا به جزئیات نمی پردازیم. می توانیم آن را به عنوان یک در نظر بگیریم نوع یا تنظیم سیستم عامل هایی که اصل آنها در هسته که منبع باز است است. بنابراین، هر توزیع لینوکس نیز منبع باز است.
چه زمانی باید از لینوکس استفاده کنم؟
پاسخ شخصی من این است که همه باید سیستم عامل های مختلف را تست کنند، اما این برای یک پست جداگانه است. وقتی از کاربران لینوکس میپرسم که چرا این سیستمها را انتخاب میکنند، پاسخها این است:
1. سیستم منبع باز است
این واقعیت که منبع باز است به این معنی است که جامعه می تواند فعالانه به توسعه کمک کند، اشکالات را حل کند، عیوب را پیدا کند و عمدتاً سیستم را برای نیازهای خود گسترش دهد.
2. شخصی سازی
بعداً به طور خلاصه به آن اشاره خواهم کرد، اما هزاران سیستم مختلف مبتنی بر لینوکس وجود دارد. سیستم ها ممکن است در معماری، سیستم فایل، مدیریت بسته، نوع رابط گرافیکی، چیدمان عناصر UI، نرم افزاری که قبلاً نصب شده است، تفاوت هایی داشته باشند.
اکوسیستم لینوکس بسیار غنی است زیرا کاربران (و توسعه دهندگان) که از نحوه استفاده از رایانه خود راضی نیستند تصمیم می گیرند تغییراتی ایجاد کنند که تجربه آنها را بهبود بخشد.
3. جامعه (و نرم افزار و پشتیبانی آن)
جامعه لینوکس به طرز باورنکردنی فعال است. من فکر میکنم این از روی ضرورت است، زیرا برای مدت طولانی سیستم فقط توسط کاربران پیشرفته استفاده میشد (چه برای سفارشیسازی، برای سازگاری با نرمافزار، برای رفع اشکال). شما می توانید به دنبال چگونگی حل یک مشکل، نحوه نصب یک برنامه، نحوه نوشتن یک اسکریپت، حل چیزی با استفاده از خط فرمان باشید و اغلب اوقات نه تنها پاسخ، بلکه یک بحث و توضیح در مورد چگونگی آن پیدا خواهید کرد. کار می کند و جایی که می توانید جزئیات بیشتری را بیابید.
و به لطف جامعه، بسیاری از مشکلات رایج در نهایت تبدیل به یک بسته (اصولاً یک برنامه) می شود که اغلب اوقات به صورت رایگان توزیع می شود و منبع باز خود را دارد. حتی زمانی که برندها (مثلاً لاجیتک، اما فهرست بزرگ است) تصمیم میگیرند از دستگاههای خود – یا نرمافزاری که با آنها ارائه میشود – برای لینوکس پشتیبانی نکنند، احتمال زیادی وجود دارد که گزینهای را پیدا کنید (برای دستگاههای بیسیم از لاجیتک برای به عنوان مثال، من Solaar را توصیه میکنم که نه تنها نرمافزار سبکتری نسبت به نرمافزار رسمی است، بلکه اکثر گزینههای موجود را ارائه میدهد و حتی یک نماد در نوار وظیفه همراه با شارژ باتری دارد و زمانی که تمام میشود اعلانها را ارسال میکند.
4. امنیت
با طراحی، و (دوباره) توسط جامعه، لینوکس به سادگی امن تر از ویندوز در نظر گرفته می شود. تعداد کاربرانی که آسیبپذیریها را نظارت، شناسایی و برطرف میکنند به این معنی است که مشکلات بسیار سریع حل میشوند، علاوه بر این که یک سیستم کنترل دسترسی بسیار قوی دارند. این واقعیت که پایگاه کاربری کوچکتری نسبت به ویندوز دارد به این معنی است که هدف کمتری برای حملاتی مانند ویروسها یا بدافزارها خواهد بود که معمولاً برای کار بر روی ویندوز توسعه مییابند (اگرچه این بدان معنا نیست که شما آزاد خواهید بود. نگرانی های امنیتی).
5. عملکرد
لینوکس برای عملکرد به منابع بسیار کمی نیاز دارد، بنابراین توزیع هایی وجود دارند که بر صرفه جویی در منابع متمرکز هستند. به عنوان مثال، اوبونتو میت بر روی کامپیوترهایی با 1 گیگابایت رم، 10 گیگابایت فضای دیسک و پردازنده 1 گیگاهرتز، با یک رابط کامل و بدون “برش” از عملکرد اجرا می شود. با جستوجوی در اینترنت، نمونههای متعددی از این که چگونه مردم رایانههای قدیمی خود را با نصب لینوکس بر روی آنها «احیا» کردند، پیدا خواهید کرد.
6. استفاده در سرورها
لینوکس بیشترین استفاده را برای سرورها دارد، اساساً به دلایلی که در بالا ذکر شد.
از کجا شروع کنیم؟
خوب، اگر شما یک توسعه دهنده هستید، یک شروع خوب WSL است، که من قبلا نحوه راه اندازی آن را هفته گذشته توضیح دادم. در داخل WSL شما یک ترمینال خواهید داشت (که اساساً همان چیزی است که در یک سرور به آن دسترسی خواهید داشت) و اگرچه کاربران عادی نیازی به باز کردن خط فرمان برای چیزی ندارند (بسته به سیستمی که از آن استفاده می کنند)، با دانستن خط فرمان. ابزار می تواند بسیار مهم باشد.
اگر فقط می خواهید آن را آزمایش کنید، می توانید هر توزیع لینوکس را انتخاب کنید، یک USB قابل بوت با یک سیستم نصب ایجاد کنید و شروع به استفاده از آن کنید. با نصب ویندوز شما مشکلی ایجاد نمی کند و هیچ فایلی را در سیستم شما تغییر نمی دهد، بنابراین می توانید این کار را تقریباً در هر رایانه ای انجام دهید.
توصیه من این است که با هر گونه تغییری از اوبونتو شروع کنید، که پرکاربردترین سیستمی است که بیشترین جامعه و پشتیبانی را دارد. من بهخصوص از PopOS استفاده میکنم، اما میتوانید «طعمهای اوبونتو» را جستجو کنید و یکی را که بیشتر دوست دارید انتخاب کنید. اگر می خواهید تجربه ای نزدیک تر به آنچه در ویندوز دارید داشته باشید، سیستم عامل Zorin می تواند انتخاب خوبی باشد.
خط فرمان
خوب، من دستورات را در صورت نیاز یاد گرفتم، بنابراین تشخیص اینکه دقیقاً باید از چه چیزی استفاده کنید دشوار است. من قصد دارم محتوای سخنرانیای را که یک بار در مورد نکات ترمینال انجام دادهام، کپی کنم، و به عنوان الهامبخش پست 3 نکته پایانی برای مهندسان داده در وبلاگ DP6 بود.
دستوراتی که باید بدانید
در زیر ضروری ترین دستورات برای استفاده از سیستم آورده شده است. با آنها می آموزید که بین پوشه ها حرکت کنید و تمام مدیریت فایل های اولیه را انجام دهید. به عنوان یک امتیاز، بیشتر این دستورات بسیار معنایی هستند، بنابراین من توضیح انگلیسی معانی آنها را برای آنهایی که می شناسم قرار داده ام.
# Comandos que você precisa saber:
ls [path] -a -l -h -R # listing, lista os arquivos e diretórios. -a ou –all lista inclusive ocultos, -l informações extras e -h formata de forma legível (human readable)
cd [path] # change directory, serve para navegar entre as pastas. Para voltar uma pasta, use ..
cp [path ou file] [dest] -r # copy, copia o arquivo ou pasta para o destino. -r significa recursivo
mv [path ou file] [dest] -r # move, move o arquivo ou pasta para o destino. Pode ser usado para renomear
rm [path ou file] [dest] -r -f # remove, apaga arquivos ou diretórios
mkdir [path] # make directory, cria pastas
rmdir [path] -r # remove directory, apaga pastas
touch [file] # cria um arquivo vazio com nome informado no parâmetro [file]
nano [file] # editor de texto, sabia mais em https://www.vivaolinux.com.br/artigo/Introducao-ao-Linux-O-editor-de-texto-Nano
vi [file] # editor de texto, https://www.vivaolinux.com.br/artigo/Guia-rapido-VI
sudo [comando] # super user do, usado para executar o comando com permissão elevada
clear # limpa a interface do terminal
دستورات مفید
در اینجا برخی از دستورات برای برنامه های خاص تر، مانند دیدن بخشی از محتوای یک فایل، جستجوی یک فایل در داخل یک پوشه، تغییر محتوا به صورت دسته ای، بررسی آنچه در رایانه شما در حال اجرا است، دانلود فایل ها، مدیریت مجوزها و غیره وجود دارد.
head [file] -n=[num] # imprime as 10 primeiras linhas do arquivo, ou as [num] linhas
tail [file] -n=[num] # imprime as 10 últimas linhas do arquivo, ou as [num] linhas'
find # procurar por arquivos e diretórios
grep # procura um padrão (de texto ou regex) no arquivo ou na string
sed # stream editor, pode fazer transformações de texto no arquivo ou string
awk # procura um padrão (de texto ou regex) no arquivo ou na string, mas usa uma linguagem de processamento
top # lista os processos sendo executados no pc
env # lista ou cria variáveis de ambiente na seção do terminal
chmod # muda o acesso ou permissão do arquivo, ou diretório
chown # muda o proprietário do arquivo ou diretório
wget [options] [url] # Realiza requisições HTTP para a URL informada, para uma requisição simples não é necessário passar nenhum parâmetro adicional a URL, o comando possui vários parâmetros complementares
مهم ترین
هرگز – جدی، هرگز – از کپی کردن دستورات از منابع غیر رسمی بدون اینکه دقیقاً چه کاری انجام می دهید، دست بردارید. حتی در آموزشهای رسمی نصب ابزار، قبل از کپی کردن و اجرای آنها در رایانه، دستورات را بخوانید. خط فرمان ابزار بسیار قدرتمندی است و از لحظهای که اجازه میدهید (مثلاً هنگام اجرای چیزی با sudo)، هر تغییری میتواند ایجاد شود.
اگر نمی دانید یک دستور چه کاری انجام می دهد، می توانید از https://explainshell.com/ استفاده کنید که تمام بیت ها و قطعات یک دستور را توضیح می دهد.
همچنین، همیشه قبل از تایید هر چیزی، آنچه در ترمینال نوشته شده است را بخوانید. من همیشه دوست دارم ویدیوی Linux HATES ME را از کانال Linus Tech Tips مثال بزنم، جایی که او سعی کرد یک چالش برای استفاده از لینوکس به مدت 30 روز انجام دهد. در همان چند دقیقه اول استفاده سعی کرد استیم را نصب کند و وقتی نتوانست به خط فرمان متوسل شد. ترمینال توضیح داد که او کاری انجام می دهد که سیستم را خراب می کند و از او می خواهد که یک جمله کامل را به عنوان تأیید تایپ کند و او همچنان انجام داد. بعد از آن سیستم دیگر باز نشد. (اساسا او سعی کرد یک روز آن را نصب کند که Valve یک بسته نصب استیم خراب را آپلود کرد و سیستم سعی کرد همه چیز را برای جلوگیری از نصب آن انجام دهد)
اگر او از ویندوز استفاده می کرد و نمی توانست استیم را نصب کند، احتمالاً powershell را برای حل آن باز نمی کرد.
سوالات رایج
لینوکس یا ویندوز؟
بستگی دارد. سیستم عامل یک انتخاب شخصی است، بنابراین باید از سیستمی استفاده کنید که متناسب با نیاز شما باشد. اما من استدلال می کنم که مردم از ویندوز استفاده می کنند زیرا گزینه ای است که به آنها ارائه شده است، نه به این دلیل که نیازهای آنها را برآورده می کند. عجیب است که انتظار داشته باشیم همه افراد در دنیا به یک شکل از رایانه استفاده کنند، بنابراین من واقعاً فکر می کنم همه باید سیستم های مختلف زیادی را امتحان کنند. به همین ترتیب، بیشتر رابطهای لینوکس برای استفاده به روشهای بسیار متفاوتی نسبت به ویندوز طراحی شدهاند. همچنین اندروید لینوکس است و به عنوان نمونه ای از آن عمل می کند. اندروید هر برند متفاوت است. جزئیات مربوط به رابط، نحوه استفاده از آن، منوی اعلان ها. و امروزه طبیعی است که مردم یکدیگر را ترجیح دهند.
بهترین توزیع لینوکس چیست؟
بستگی دارد. باز هم، این یک انتخاب شخصی است. همانطور که قبلاً اشاره کردم، من اوبونتو را برای انجمن و پشتیبانی توصیه می کنم و از PopOS استفاده می کنم زیرا به خوبی با رابط کاربری سازگار شده ام و بهره وری بسیار بیشتری نسبت به ویندوز دارم.
آیا می توانم هر کاری را که می توانم در ویندوز در لینوکس انجام دهم؟
پاسخ کوتاه: خیر. پاسخ صحیح: بله، اگر شما (یا شخص دیگری) چیزی را توسعه دهید. همانطور که گفتم اکثر برندها نرم افزاری با پشتیبانی از لینوکس ارائه نمی دهند. برخی از بازیها مانند Valorant ضد تقلب خود را بر اساس هسته ویندوز دارند، بنابراین اجرای آن بر روی لینوکس غیرممکن است. برخی دیگر، مانند Fortnite، به سادگی از آن پشتیبانی نمی کنند. اگر علاقه مند به بازی در لینوکس هستید، Proton DB وضعیت همه بازی ها را در استیم دارد، اینکه آیا مردم می توانستند آنها را بازی کنند و چگونه.
کجا اطلاعات بیشتری پیدا کنیم
من عمدتا با 2 کانال یاد گرفتم:
هم برزیلی ها و هم با محتوای بسیار با کیفیت. Diolinux همچنین چندین دوره آموزشی برای اعضای کانال دارد و LinuxTIPS دارای آموزش Linux Essentials (به علاوه برخی از موارد پیشرفته تر) است که بسیار عالی است. به غیر از آن، من از مسائل github، سوالات stackoverflow و پستهای انجمن یاد گرفتم.
اگر توصیهای برای تولید محتوا دارید که در مورد لینوکس صحبت میکند، اینجا نظر بدهید!
نتیجه
حقیقت این است که برای اینکه بتوانید از لینوکس استفاده کنید نیازی به دانستن چیزهای زیادی ندارید. من اساساً با انتخاب یک توزیع، نصب و استفاده از آن شروع کردم. همانطور که با موانع روبرو شدم، چیزهای بیشتری یاد گرفتم، اما اغلب اوقات شما بدون نیاز به نگرانی زیاد، تجربه بسیار رضایت بخشی خواهید داشت.
نظر خود را درباره این نوع پست به من بگویید و اگر دوست دارید این یک ویدیوی YouTube شود! صرف نظر از نتیجه، پست هفته آینده در مورد Docker خواهد بود. من را در توییتر دنبال کنید تا بیشتر بدانید.
امیدوارم این برای کسی مفید بوده باشد، تا دفعه بعد!