بیش از ۵۰ دستور ضروری لینوکس: یک راهنمای جامع

0 اشتراک گذاری
0
0
0
0

مقدمه

 

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

بیش از ۵۰ دستور ضروری لینوکس را خواهید آموخت که شما را به یک کاربر قدرتمند لینوکس تبدیل می‌کند. از مقدماتی تا پیشرفته، این دستورات به ابزارهای مورد استفاده شما برای انجام هر کاری که پیش می‌آید تبدیل می‌شوند.


پیش‌نیازها

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

  1. ls – پرکاربردترین دستور در لینوکس برای فهرست کردن دایرکتوری‌ها.
  2. pwd – دستور چاپ دایرکتوری کاری در لینوکس.
  3. cd – دستور لینوکس برای پیمایش در دایرکتوری‌ها.
  4. mkdir – دستور مورد استفاده برای ایجاد دایرکتوری‌ها در لینوکس.
  5. mv – انتقال یا تغییر نام فایل‌ها در لینوکس.
  6. cp – کاربرد مشابه mv اما برای کپی کردن فایل‌ها در لینوکس.
  7. rm – حذف فایل‌ها یا دایرکتوری‌ها.
  8. touch – ایجاد فایل‌های خالی/خالی.
  9. ln – ایجاد لینک‌های نمادین (میانبرها) به فایل‌های دیگر.
  10. clear – پاک کردن صفحه نمایش ترمینال.
  11. cat – نمایش محتویات فایل در ترمینال.
  12. echo – چاپ هر متنی که پس از دستور می‌آید.
  13. less – دستور لینوکس برای نمایش خروجی‌های صفحه‌بندی شده در ترمینال.
  14. man – دسترسی به صفحات راهنما برای همه دستورات لینوکس.
  15. uname – دستور لینوکس برای دریافت اطلاعات اولیه در مورد سیستم عامل.
  16. whoami – دریافت نام کاربری فعال.
  17. tar – دستور استخراج و فشرده‌سازی فایل‌ها در لینوکس.
  18. grep – جستجوی یک رشته در یک خروجی.
  19. head – برگرداندن تعداد مشخص شده خطوط از بالا.
  20. tail – برگرداندن تعداد مشخص شده خطوط از پایین.
  21. diff – یافتن تفاوت بین دو فایل.
  22. cmp – به شما امکان می‌دهد بررسی کنید که آیا دو فایل یکسان هستند یا خیر.
  23. comm – عملکرد diff و cmp را ترکیب می‌کند.
  24. sort – دستور لینوکس برای مرتب‌سازی محتوای یک فایل هنگام خروجی گرفتن.
  25. export – متغیرهای محیطی را در لینوکس صادر می‌کند.
  26. zip – فایل‌های زیپ در لینوکس.
  27. unzip – فایل‌ها را در لینوکس از حالت زیپ خارج می‌کند.
  28. ssh – دستور Secure Shell در لینوکس.
  29. service – دستور لینوکس برای شروع و توقف سرویس‌ها.
  30. ps – نمایش فرآیندهای فعال.
  31. kill و killall – فرآیندهای فعال را بر اساس شناسه یا نام فرآیند از بین می‌برد.
  32. df – نمایش اطلاعات سیستم فایل دیسک.
  33. mount – سیستم فایل‌ها را در لینوکس mount می‌کند.
  34. chmod – دستور تغییر مجوزهای فایل.
  35. chown – دستور اعطای مالکیت فایل‌ها یا پوشه‌ها.
  36. ifconfig – نمایش رابط‌های شبکه و آدرس‌های IP.
  37. traceroute – ردیابی تمام مسیرهای شبکه برای رسیدن به مقصد.
  38. wget – دانلود مستقیم فایل‌ها از اینترنت.
  39. ufw – دستور فایروال.
  40. iptables – فایروال پایه برای سایر ابزارهای فایروال برای ارتباط با.
  41. apt، pacman، yum، rpm – مدیران بسته به توزیع.
  42. sudo – دستور افزایش امتیازات در لینوکس.
  43. cal – مشاهده خط فرمان تقویم.
  44. alias – ایجاد میانبرهای سفارشی برای دستوراتی که مرتباً استفاده می‌کنید.
  45. dd – عمدتاً برای ایجاد فلش مموری‌های USB قابل بوت استفاده می‌شود.
  46. whereis – یافتن صفحات باینری، منبع و راهنمای یک دستور.
  47. whatis – یافتن اینکه یک دستور برای چه چیزی استفاده می‌شود.
  48. top – مشاهده فرآیندهای فعال به صورت زنده با میزان مصرف سیستم آنها.
  49. useradd و usermod – اضافه کردن یک کاربر جدید یا تغییر داده‌های کاربر موجود.
  50. passwd – ایجاد یا به‌روزرسانی رمزهای عبور برای کاربران موجود.

دستورات فایل و دایرکتوری

CommandDescriptionExample
lsList directory contents.ls
cdChange directory.cd /path/to/directory
pwdShow current directory.pwd
mkdirCreate a new directory.mkdir new_directory
rmdirRemove an empty directory.rmdir empty_directory
rmDelete files or directories.rm file.txt
touchCreate an empty file.touch new_file.txt
cpCopy files or directories.cp file.txt /path/to/destination
mvMove or rename files.mv file.txt /path/to/new_location
catDisplay file contents.cat file.txt
nano / vimEdit files in terminal.nano file.txt
findSearch for files in a directory hierarchy.find . -name "file.txt"
grepSearch text using patterns.grep "pattern" file.txt
tarArchive and compress files.tar -cvf archive.tar file1.txt file2.txt
dfShow disk usage of file systems.df
duShow directory/file size.du -sh /path/to/directory
chmodChange file permissions.chmod 755 file.txt
chownChange file owner.chown user:group file.txt
mountMount a filesystem.mount /dev/sdb1 /mnt
umountUnmount a filesystem.umount /mnt

دستورات شبکه

CommandDescriptionSample Usage
pingTest connectivity to a host.ping google.com
ifconfig / ip aDisplay network interfaces.ifconfig or ip a
netstat / ssShow network connections.netstat -tuln or ss -tuln
wgetDownload files via HTTP/FTP.wget http://example.com/file.zip
curlTransfer data using URL syntax.curl -O http://example.com/file.zip
nc (Netcat)Network debugging and data transfer.nc -zv 192.168.1.1 80
tcpdumpCapture and analyze network packets.tcpdump -i eth0
iptablesConfigure firewall rules.iptables -A INPUT -p tcp --dport 22 -j ACCEPT
tracerouteTrace the path packets take to a network host.traceroute example.com
nslookupQuery DNS to obtain domain name or IP address mapping.nslookup example.com
sshSecurely connect to a remote host.ssh [email protected]

دستورات نظارت بر فرآیند و سیستم

CommandDescriptionExample Command
psShow running processes.ps aux
topDynamic process viewer.top
htopEnhanced version of top.htop
killSend a signal to a process.kill <PID>
killallKill processes by name.killall <process_name>
uptimeSystem uptime and load.uptime
whoamiCurrent logged-in user.whoami
envDisplay environment variables.env
straceTrace system calls of a process.strace -p <PID>
systemctlManage systemd services.systemctl status <service_name>
journalctlView system logs.journalctl -xe
freeDisplay memory usage.free -h
vmstatReport virtual memory statistics.vmstat 1
iostatReport CPU and I/O statistics.iostat
lsofList open files by processes.lsof
dmesgPrint kernel ring buffer messages.dmesg

دستورات مدیریت کاربر و مجوز

CommandDescriptionExample Command
passwdChange user password.passwd <username>
adduser / useraddAdd a new user.adduser <username> or useradd <username>
deluser / userdelDelete a user.deluser <username> or userdel <username>
usermodModify user account.usermod -aG <group> <username>
groupsShow group memberships.groups <username>
sudoExecute commands as root.sudo <command>
chageChange user password expiry information.chage -l <username>
idDisplay user identity information.id <username>
newgrpLog in to a new group.newgrp <group>

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

CommandDescriptionExample Command
scpSecurely copy files over SSH.scp user@remote:/path/to/file /local/destination
rsyncEfficiently sync files and directories.rsync -avz /local/directory/ user@remote:/path/to/destination
ftpTransfer files using the File Transfer Protocol.ftp ftp.example.com
sftpSecurely transfer files using SSH File Transfer Protocol.sftp user@remote:/path/to/file
wgetDownload files from the web.wget http://example.com/file.zip
curlTransfer data from or to a server.curl -O http://example.com/file.zip

دستورات پردازش متن

CommandDescriptionExample Command
awkPattern scanning and processing.awk '{print $1}' file.txt
sedStream editor for filtering/modifying text.sed 's/old/new/g' file.txt
cutRemove sections from lines of text.cut -d':' -f1 /etc/passwd
sortSort lines of text.sort file.txt
grepSearch for patterns in text.grep 'pattern' file.txt
wcCount words, lines, and characters.wc -l file.txt
pasteMerge lines of files.paste file1.txt file2.txt
joinJoin lines of two files on a common field.join file1.txt file2.txt
headOutput the first part of files.head -n 10 file.txt
tailOutput the last part of files.tail -n 10 file.txt

دستورات کاربردی و میانبرهای Shell

CommandDescriptionExample Command
aliasCreate shortcuts for commands.alias ll='ls -la'
unaliasRemove an alias.unalias ll
historyShow previously entered commands.history
clearClear the terminal screen.clear
rebootReboot the system.reboot
shutdownPower off the system.shutdown now
dateDisplay or set the system date and time.date
echoDisplay a line of text.echo "Hello, World!"
sleepDelay for a specified amount of time.sleep 5
timeMeasure the duration of command execution.time ls
watchExecute a program periodically, showing output fullscreen.watch -n 5 df -h

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


دستور ls در لینوکس

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

root@ubuntu:~# ln -s <source path> <link name>

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


دستور pwd در لینوکس

دستور pwd به شما امکان می‌دهد دایرکتوری کاری فعلی را در ترمینال خود چاپ کنید. این یک دستور بسیار ابتدایی است و هدف خود را به خوبی برآورده می‌کند.

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


دستور cd در لینوکس

هنگام کار با ترمینال، جابجایی در دایرکتوری‌ها تقریباً یک ضرورت است. دستور cd یکی از دستورات مهم لینوکس است که باید بدانید و به شما در پیمایش در دایرکتوری‌ها کمک می‌کند. کافیست cd و به دنبال آن directory را تایپ کنید، همانطور که در زیر نشان داده شده است.

root@ubuntu:~# cd <directory path>

همانطور که در دستور بالا می‌بینید، من به سادگی cd /etc/ را تایپ کردم تا به دایرکتوری /etc بروم. ما از دستور pwd برای چاپ دایرکتوری کاری فعلی استفاده کردیم.


دستور mkdir در لینوکس

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

root@ubuntu:~# mkdir <folder name>

 

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


دستورات cp و mv

دستورات cp و mv معادل دستورات copy-paste و cut-paste در ویندوز هستند. اما از آنجایی که لینوکس واقعاً دستوری برای تغییر نام فایل‌ها ندارد، ما از دستور mv نیز برای تغییر نام فایل‌ها و پوشه‌ها استفاده می‌کنیم.

root@ubuntu:~# cp <source> <destination>

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

root@ubuntu:~# mv <source> <destination

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


دستور rm در لینوکس

در بخش قبلی، فایل Sample-Copy را حذف کردیم. دستور rm برای حذف فایل‌ها و پوشه‌ها استفاده می‌شود و یکی از دستورات مهم لینوکس است که باید آن را بدانید.

root@ubuntu:~# rm <file name>

برای حذف یک دایرکتوری، باید آرگومان -r را به آن اضافه کنید. بدون آرگومان -r، دستور rm دایرکتوری‌ها را حذف نمی‌کند.

علامت -r در دستور rm در لینوکس مخفف کلمه “recursive” است. وقتی با دستور rm استفاده شود، نه تنها فایل مشخص شده، بلکه تمام زیرشاخه‌های آن و فایل‌های درون آن زیرشاخه‌ها را نیز به صورت بازگشتی حذف می‌کند.


دستور touch در لینوکس

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

root@ubuntu:~# touch <file name>


دستور ln در لینوکس

برای ایجاد لینک به فایل دیگر، از دستور ln استفاده می‌کنیم. این یکی از مهمترین دستورات لینوکس است که اگر قصد دارید به عنوان مدیر لینوکس کار کنید، باید بدانید.

root@ubuntu:~# ln -s <source path> <link name>

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

به طور پیش‌فرض، دستور ln به جای پیوندهای نمادین یا نرم، پیوندهای سخت ایجاد می‌کند.


دستور clear در لینوکس

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

در اینجا مثالی از نحوه استفاده از دستور clear آورده شده است:

root@ubuntu:~# clear

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

همچنین می‌توانید از دستور clear در ترکیب با سایر دستورات مانند این استفاده کنید:

root@ubuntu:~# ls -l; clear

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


دستورات cat، echo و less

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

root@ubuntu:~# cat <file name>
root@ubuntu:~# echo <Text to print on terminal>

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

دستور less زمانی استفاده می‌شود که خروجی چاپ شده توسط هر دستوری بزرگتر از فضای صفحه نمایش باشد و نیاز به پیمایش داشته باشد. دستور less به کاربر اجازه می‌دهد تا خروجی را تجزیه کند و با استفاده از کلیدهای enter یا space در آن پیمایش کند.

روش ساده برای انجام این کار استفاده از عملگر pipe (|) است.

root@ubuntu:~# cat /boot/grub/grub.cfg | less


    دستور man در لینوکس

    دستور man یک دستور بسیار مفید لینوکس است که باید آن را بلد باشید. هنگام کار با لینوکس، بسته‌هایی که دانلود می‌کنیم می‌توانند قابلیت‌های زیادی داشته باشند. دانستن همه آنها غیرممکن است.

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

    در اینجا مثالی از نحوه استفاده از دستور man آورده شده است:

    • یک ترمینال باز کنید و دستور man ls را تایپ کنید تا صفحه راهنمای دستور ls نمایش داده شود.
    root@ubuntu:~# man ls

    این صفحه‌ای را نمایش می‌دهد که چیزی شبیه به این است:

    OutputLS(1) User Commands LS(1)
    
    NAME
             ls - list directory contents
    
    SYNOPSIS
             ls [OPTION]... [FILE]...
    
    DESCRIPTION
             List information about the FILEs (the current directory by default).
    
             Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
    
             Mandatory arguments to long options are mandatory for short options too.
    
             -a, --all
                    do not ignore entries starting with .
    
             -A, --almost-all
                    do not list implied . and ..
    
             -c with -lt: sort by, and show, ctime (time of last modification
             of file status information) with -l: show ctime and sort
             by name;
    ...

    دستورات uname و whoami

    دستورات uname و whoami به شما امکان دسترسی به برخی اطلاعات اولیه را می‌دهند که هنگام کار بر روی چندین سیستم مفید هستند.

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

    دستور whoami در لینوکس نام کاربری کاربر فعلی را برمی‌گرداند. این نام مخفف “who am I?” است و اغلب برای تعیین هویت کاربر فعلی در اسکریپت‌های شل یا ترمینال استفاده می‌شود.

    بیایید خروجی هر دو دستور و نحوه استفاده از آنها را ببینیم.

    root@ubuntu:~# uname -a

    پارامتر -a به همراه دستور uname مخفف “all” است. این دستور اطلاعات کامل را چاپ می‌کند. اگر پارامتر اضافه نشود، تنها چیزی که به عنوان خروجی دریافت خواهید کرد “Linux” است.


    دستورات tar، zip و unzip

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

    برای ایجاد یک آرشیو، از پارامتر -c و برای استخراج یک آرشیو، از پارامتر -x استفاده می‌کنیم. بیایید ببینیم چگونه کار می‌کند.

    #Compress
    root@ubuntu:~# tar -cvf <archive name> <files separated by space>
    #Extract
    root@ubuntu:~# tar -xvf <archive name>

    در خط اول، ما یک فایل بایگانی به نام Compress.tar با استفاده از New-File و New-File-Link ایجاد کردیم. در دستور بعدی، آن فایل‌ها را از بایگانی استخراج کرده‌ایم.

    بیایید در مورد دستورات zip و unzip صحبت کنیم. هر دو بسیار سرراست هستند. می‌توانید از آنها بدون هیچ پارامتری استفاده کنید و همانطور که در نظر گرفته شده است، کار خواهند کرد. بیایید مثالی را در زیر ببینیم.

    root@ubuntu:~# zip <archive name> <file names separated by space>
    root@ubuntu:~# unzip <archive name>

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


    دستور grep در لینوکس

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

    دستور grep مخفف عبارت “چاپ عبارت منظم جهانی” است که نشان دهنده توانایی آن در جستجوی عبارات منظم در چندین خط و فایل است.

    root@ubuntu:~# <Any command with output> | grep "<string to find>"

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


    دستورات head و tail

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

    دستورات head و tail به طور پیش‌فرض 10 خط اول یک فایل را نمایش می‌دهند. برای نمایش تعداد متفاوتی از خطوط، می‌توانید از گزینه -n و به دنبال آن تعداد خطوطی که می‌خواهید نمایش دهید استفاده کنید.

    در اینجا مثالی از استفاده از دستورات head و tail آورده شده است:

    root@ubuntu:~# head <file name>
    root@ubuntu:~# tail <file name>

    همانطور که می‌بینید، دستور head، 10 خط از بالای فایل را نشان داد.

    دستور tail، ده خط پایینی فایل را نمایش داد.

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


    دستورات diff، comm و cmp

    دستورات diff، comm و cmp همگی برای مقایسه فایل‌ها در سیستم‌عامل‌های مبتنی بر لینوکس و یونیکس استفاده می‌شوند. این دستورات می‌توانند برای شناسایی تفاوت‌های بین دو فایل، ادغام تغییرات و انجام سایر کارهای مقایسه فایل‌ها مورد استفاده قرار گیرند.

    root@ubuntu:~# diff <file 1> <file 2>

    همانطور که در بالا می‌بینید، ما یک متن کوچک با عنوان «این خط ویرایش شده است» به فایل New-File-Edited اضافه کرده‌ایم.

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

    root@ubuntu:~# cmp <file 1> <file 2>

    دستور cmp فقط شماره خط را به ما می‌گوید که متفاوت است. متن اصلی را نشان نمی‌دهد.

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

    root@ubuntu:~# comm <file 1> <file2>

    متنی که در سمت چپ تراز شده است، فقط در فایل ۱ وجود دارد. متن وسط‌چین فقط در فایل ۲ وجود دارد. و متن راست‌چین در هر دو فایل وجود دارد.

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

    هر سه این دستورها ابزارهای ضروری برای کار با فایل‌ها در سیستم‌عامل‌های مبتنی بر لینوکس و یونیکس هستند. با درک نحوه استفاده مؤثر از دستورات diff، comm و cmp، می‌توانید تفاوت‌های بین فایل‌ها را شناسایی کنید، تغییرات را ادغام کنید و سایر کارهای مقایسه فایل را انجام دهید.

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


    دستور sort در لینوکس

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

    نحوه کلی دستور sort به صورت زیر است:

    root@ubuntu:~# sort <filename>

    به طور پیش‌فرض، دستور sort سطرها را به ترتیب ASCII مرتب می‌کند، که می‌تواند هنگام مرتب‌سازی اعداد یا کاراکترهای خاص منجر به نتایج غیرمنتظره‌ای شود. برای مرتب‌سازی اعداد به ترتیب عددی، می‌توانید از گزینه -n استفاده کنید.

    در اینجا مثالی از استفاده از گزینه -n آورده شده است:

    root@ubuntu:~# sort -n file.txt

    دستور بالا سطرهای file.txt را به ترتیب عددی مرتب می‌کند.

    دستور sort همچنین می‌تواند برای مرتب‌سازی سطرها بر اساس فیلدهای خاص با استفاده از گزینه -k استفاده شود.

    در اینجا مثالی از استفاده از گزینه -k آورده شده است:

    root@ubuntu:~# sort -k 2 file.txt

    این دستور، سطرهای موجود در فایل file.txt را بر اساس فیلد دوم مرتب می‌کند.

    دستور sort ابزاری قدرتمند و انعطاف‌پذیر برای کار با فایل‌های متنی در سیستم‌عامل‌های مبتنی بر لینوکس و یونیکس است. با درک نحوه‌ی استفاده‌ی مؤثر از دستور sort، می‌توانید سطرهای فایل‌های متنی را مرتب کنید، سطرها را بر اساس فیلدهای خاص مرتب کنید و سایر عملیات مرتب‌سازی را انجام دهید.

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


    دستور export در لینوکس

    دستور export در سیستم‌عامل‌های مبتنی بر لینوکس و یونیکس برای تنظیم متغیرهای محیطی استفاده می‌شود. متغیرهای محیطی برای ذخیره اطلاعاتی که می‌توانند توسط فرآیندها یا دستورات استفاده شوند، استفاده می‌شوند.

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

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

    در اینجا مثالی از استفاده از دستور export آورده شده است:

    root@ubuntu:~# export <variable name>=<value>


    دستور ssh در لینوکس

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

    سینتکس اصلی دستور ssh به صورت زیر است:

    root@ubuntu:~ ssh username@remote-server

    این دستور با استفاده از نام کاربری، یک اتصال ssh به سرور راه دور برقرار می‌کند.

     


    دستور سرویس در لینوکس

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

    دستور service برای شروع، توقف، راه‌اندازی مجدد و بررسی وضعیت این سرویس‌ها استفاده می‌شود. این یک رابط کاربری برای دستور systemctl است که برای مدیریت مدیر سرویس systemd استفاده می‌شود.

    سینتکس اصلی دستور به صورت زیر است.

    root@ubuntu:~ service ssh status
    root@ubuntu:~ service ssh stop
    root@ubuntu:~ service ssh start

    همانطور که در تصویر مشاهده می‌کنید، سرور ssh روی سیستم ما در حال اجرا است.


    دستورات ps، kill و killall

    دستورات ps، kill و killall همگی برای مدیریت فرآیندها در لینوکس استفاده می‌شوند.

    دستور ps برای نمایش اطلاعات مربوط به فرآیندهای در حال اجرا در سیستم استفاده می‌شود. در اینجا چند نمونه از استفاده از دستور ps آورده شده است:

    نمایش لیست تمام فرآیندهای در حال اجرا:

    root@ubuntu:~ ps -ef

    نمایش لیستی از تمام فرآیندها برای یک شناسه فرآیند (PID) خاص:

    root@ubuntu:~ ps -p PID

    بیایید همه اینها را در عمل ببینیم:

    root@ubuntu:~ ps
    root@ubuntu:~ kill <process ID>
    root@ubuntu:~ killall <process name>

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

    با استفاده از نماد &، می‌توانیم یک فرآیند را به پس‌زمینه منتقل کنیم. همانطور که می‌بینید، یک فرآیند bash جدید با PID 14490 ایجاد شده است.

    حالا، برای کشتن یک فرآیند با دستور kill، می‌توانید kill را تایپ کنید و به دنبال آن PID (شناسه فرآیند) فرآیند را بنویسید.

    اما اگر شناسه فرآیند را نمی‌دانید و فقط می‌خواهید فرآیند را با نام آن از بین ببرید، می‌توانید از دستور killall استفاده کنید.

    متوجه خواهید شد که PID 14490 فعال مانده است. دلیلش این است که هر دو بار، فرآیند sleep را kill کردیم.


    دستورات df و mount

    هنگام کار با لینوکس، دستورات df و mount ابزارهای بسیار کارآمدی برای mount کردن سیستم فایل‌ها و دریافت جزئیات سیستم فایل هستند.

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

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

    root@ubuntu:~ mount /dev/cdrom /mnt
    root@ubuntu:~ df -h

    در مورد بالا، /dev/cdrom دستگاهی است که باید نصب شود. معمولاً یک دستگاه قابل نصب در داخل پوشه /dev قرار دارد. mnt پوشه مقصدی است که دستگاه باید در آن نصب شود. می‌توانید آن را به هر پوشه‌ای که می‌خواهید تغییر دهید، اما ما از /mnt استفاده کرده‌ایم زیرا پوشه پیش‌فرض سیستم برای نصب دستگاه‌ها است.

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


    دستورات chmod و chown

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

    دستور chmod برای تغییر مجوزهای یک فایل یا دایرکتوری و دستور chown برای تغییر مالکیت یک فایل یا دایرکتوری استفاده می‌شود.

    نحوه پیش‌فرض برای هر دو دستور chmod <parameter> filename و chown <user:group> filename است.

    root@ubuntu:~ chmod +x loop.sh
    root@ubuntu:~ chmod root:root loop.sh

    در مثال بالا، ما با دستور chmod مجوزهای اجرایی را به فایل loop.sh اضافه می‌کنیم. علاوه بر این، با دستور chown، آن را فقط برای کاربر root و کاربران درون گروه root قابل دسترسی کرده‌ایم.

    همانطور که متوجه خواهید شد، بخش ریشه (root) اکنون به www-data تغییر یافته است که کاربر جدیدی است که مالکیت کامل فایل را در اختیار دارد.


    دستورات ifconfig و traceroute

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

    دستور ifconfig لیستی از تمام رابط‌های شبکه به همراه آدرس‌های IP، آدرس‌های MAC و سایر اطلاعات مربوط به رابط را در اختیار شما قرار می‌دهد.

    root@ubuntu:~ ifconfig

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

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

    هنگام کار با traceroute، می‌توانید به سادگی آدرس IP، نام میزبان یا نام دامنه نقطه پایانی را مشخص کنید.

    root@ubuntu:~ traceroute <destination address>

    بدیهی است که localhost فقط یک گام (خود رابط شبکه) است. می‌توانید همین دستور را با هر نام دامنه یا آدرس IP دیگری امتحان کنید تا تمام روترهایی را که بسته‌های داده شما برای رسیدن به مقصد از آنها عبور می‌کنند، مشاهده کنید.


    دستور wget در لینوکس

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

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

    بیایید یک مثال بزنیم. سینتکس اصلی دستور wget به صورت زیر است:

    root@ubuntu:~ wget <link to file>

    یا،

    root@ubuntu:~ wget -c <link to file>

    آرگومان -c به ما امکان می‌دهد دانلودی که متوقف شده را از سر بگیریم.


    دستورات ufw و iptables

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

    UFW و IPTables رابط‌های فایروال برای فایروال netfilter هسته لینوکس هستند. IPTables مستقیماً قوانین فایروال را به Netfilter منتقل می‌کند در حالی که UFW قوانین را در IPTables پیکربندی می‌کند و سپس آن قوانین را به Netfilter ارسال می‌کند.

    چرا وقتی IPTables داریم به UFW نیاز داریم؟ زیرا IPTables برای یک تازه‌کار بسیار دشوار است. UFW کارها را بسیار آسان می‌کند. به مثال زیر توجه کنید که در آن سعی داریم پورت ۸۰ را برای وب‌سرور خود مجاز کنیم.

    root@ubuntu:~# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
    root@ubuntu:~# ufw allow 80

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


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

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

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

     

    آشنایی کامل با مدیریت بسته توزیع لینوکس شما، در دراز مدت کارها را برای شما بسیار آسان‌تر خواهد کرد. بنابراین حتی اگر یک ابزار مدیریت بسته مبتنی بر رابط کاربری گرافیکی (GUI) نصب کرده‌اید، قبل از اینکه به سراغ ابزار رابط کاربری گرافیکی (GUI) بروید، از ابزار مبتنی بر رابط خط فرمان (CLI) استفاده کنید. این دستورات را به لیست دستورات لینوکسی که باید بدانید اضافه کنید.

    دستور sudo در لینوکس

    «قدرت زیاد، مسئولیت زیاد به همراه دارد»

    این نقل قولی است که وقتی یک کاربر sudo-enabled (sudoer) برای اولین بار از دستور sudo برای افزایش امتیازات استفاده می‌کند، نمایش داده می‌شود. این دستور معادل ورود به سیستم به عنوان root است (بر اساس مجوزهایی که به عنوان sudoer دارید).

    non-root-user@ubuntu:~# sudo <command you want to run>
    Password:

     

    فقط کافی است دستور sudo را قبل از هر دستوری که نیاز به اجرای آن با امتیازات افزایش یافته دارید، اضافه کنید و تمام. استفاده از آن بسیار ساده است، اما اگر یک کاربر مخرب به sudoer دسترسی پیدا کند، می‌تواند یک خطر امنیتی اضافی نیز ایجاد کند.


    دستور cal در لینوکس

    آیا تا به حال خواسته‌اید تقویم را در ترمینال مشاهده کنید؟ ظاهراً افرادی هستند که می‌خواهند این اتفاق بیفتد، و خب، این هم از این.

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

    root@ubuntu:~# cal
    root@ubuntu:~# cal March 2024

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


    دستور alias

    آیا دستورهایی دارید که هنگام استفاده از ترمینال مرتباً اجرا می‌کنید؟ می‌تواند rm -r یا ls -l باشد، یا می‌تواند چیزی طولانی‌تر مانند tar -xvzf باشد.

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

    اگر دستوری را می‌شناسید که مرتباً اجرا می‌کنید، وقت آن است که یک alias ایجاد کنید.

    alias چیست؟ به زبان ساده، نام دیگری برای دستوری است که تعریف کرده‌اید.

    root@ubuntu:~# alias lsl="ls -l"
    OR
    root@ubuntu:~# alias rmd="rm -r"

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

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


    دستور dd در لینوکس

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

    دستور dd در لینوکس یک دستور همه‌کاره است که برای کپی و تبدیل سطح پایین داده‌ها استفاده می‌شود. این دستور مخفف “data-description” یا “data definition” است و می‌تواند برای کپی و تبدیل داده‌ها بین فرمت‌های مختلف فایل و دستگاه‌های ذخیره‌سازی استفاده شود.

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

    root@ubuntu:~# dd if=/dev/sdb of=/dev/sda

    آرگومان‌های if و of به معنای فایل ورودی و فایل خروجی هستند.

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


    دستورات whereis و whatis

    دستورات whereis و whatis در لینوکس برای جستجوی اطلاعات مربوط به برنامه‌ها و فایل‌ها استفاده می‌شوند.

    دستور whereis صفحات باینری، منبع و راهنما را برای یک دستور یا برنامه خاص پیدا می‌کند و دستور whatis توضیح کوتاهی از یک دستور یا برنامه را نمایش می‌دهد.

    root@ubuntu:~# whereis sudo
    sudo: /usr/bin/sudo /usr/lib/sudo /usr/share/man/man8/sudo.8.gz

    دستور whatis توضیحی در مورد اینکه یک دستور واقعاً چیست، به ما می‌دهد.

    root@ubuntu:~# whatis sudo
    sudo (8) - execute a command as another user

    دستور top در لینوکس

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

    دستور top مانند نسخه CLI از task manager در ویندوز است.

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

    این یک ابزار قدرتمند و انعطاف‌پذیر برای نظارت بر فعالیت سیستم و عیب‌یابی مشکلات عملکرد است.


    دستورات useradd و usermod

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

    دستورات useradd یا adduser دقیقاً همان دستوراتی هستند که adduser فقط یک پیوند نمادین به دستور useradd است. این دستور به ما امکان می‌دهد یک کاربر جدید در لینوکس ایجاد کنیم.

    root@ubuntu:~# useradd JournalDev -d /home/JD

    دستور بالا یک کاربر جدید به نام JournalDev با دایرکتوری خانه /home/JD ایجاد می‌کند.

    از سوی دیگر، دستور usermod برای تغییر کاربران موجود استفاده می‌شود. می‌توانید هر مقداری از کاربر، از جمله گروه‌ها، مجوزها و غیره را تغییر دهید.

    به عنوان مثال، اگر می‌خواهید گروه‌های بیشتری به کاربر اضافه کنید، می‌توانید تایپ کنید:

    root@ubuntu:~# usermod JournalDev -a -G sudo, audio, mysql

    دستور passwd در لینوکس

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

    در اینجا چند نمونه از استفاده از دستور passwd آورده شده است:

    • تغییر رمز عبور برای کاربر فعلی:
    root@ubuntu:~# passwd

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

    • تغییر رمز عبور برای یک کاربر خاص:
    root@ubuntu:~# passwd username

    به جای username، نام کاربری که می‌خواهید رمز عبورش را تغییر دهید را بنویسید.

    • کاربر را مجبور کنید در ورود بعدی رمز عبور خود را تغییر دهد:
    root@ubuntu:~# passwd -f username
    • تعیین تاریخ انقضا برای رمز عبور کاربر:
    root@ubuntu:~# passwd -e -n days -w warndays username

    به جای days تعداد روزهای قبل از انقضای رمز عبور و به جای warm days تعداد روزهای قبل از انقضای رمز عبور که به کاربر هشدار داده می‌شود را قرار دهید.

    اینها تنها چند نمونه از استفاده از دستور passwd در لینوکس هستند. با درک نحوه استفاده موثر از این دستور، می‌توانید حساب‌های کاربری را مدیریت کرده و از امنیت سیستم خود اطمینان حاصل کنید.


    خطاهای رایج و اشکال‌زدایی

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

    ۱. رفع خطاهای «Command not found»

    اگر خطای command not found را دریافت کردید، به این معنی است که دستوری که سعی در اجرای آن دارید توسط سیستم شناسایی نشده است. این می‌تواند به دلایل مختلف رخ دهد:

    1. این دستور روی سیستم شما نصب نشده است. می‌توانید آن را با استفاده از مدیر بسته خود (مثلاً apt، yum، dnf) نصب کنید.
      اگر دیدید:

      bash: xyz: command not found

      استفاده:

      which xyz
      

      اگر دستور نصب نشده است، نصب را امتحان کنید:

      apt-get install <package-name>
    2. دستور در مسیر سیستم شما نیست. می‌توانید دایرکتوری حاوی دستور را به مسیر سیستم خود اضافه کنید.
      export PATH=$PATH:/path/to/command
    3. شما اشتباه تایپی مرتکب شدید. دستور را برای هرگونه خطای املایی دوباره بررسی کنید.

    2. حل مشکلات مجوز با sudo

    اگر با مشکل مجوز مواجه شدید، می‌توانید از sudo برای اجرای دستور با امتیازات superuser استفاده کنید. برای مثال:

    sudo command_name

    3. مدیریت تداخل فایل‌ها

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

    1.استفاده از سیستم‌های کنترل نسخه (VCS): ابزارهایی مانند گیت می‌توانند با فراهم کردن امکان ادغام تغییرات و حل دستی تداخل‌ها، به مدیریت تداخل‌های فایل کمک کنند.

    git merge <branch_name>

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

    git add <resolved_file>
    git commit -m "Resolved merge conflict"

    2.مکانیسم‌های قفل‌گذاری: قفل‌گذاری فایل را پیاده‌سازی کنید تا از نوشتن همزمان چندین فرآیند روی یک فایل جلوگیری شود. از flock در لینوکس برای ایجاد قفل روی یک فایل استفاده کنید.

    ‎''''‎‏‎ ‎flock -x <file> -c "<command>"‎‏‎ ‎ ...

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

    mv temp_file target_file

    یا، از mv با -f (اجباری) یا cp با -i (تعاملی) استفاده کنید:

    mv -f file1 file2
    cp -i file1 file2

    ۴. اشکال‌زدایی گلوگاه‌های عملکرد

    گلوگاه‌های عملکرد می‌توانند به طور قابل توجهی بر کارایی سیستم شما تأثیر بگذارند. در اینجا چند مرحله برای اشکال‌زدایی و رفع آنها آورده شده است:

      1. شناسایی گلوگاه: از ابزارهایی مانند top، htop، vmstat و iostat برای نظارت بر عملکرد سیستم و شناسایی منبعی که باعث گلوگاه می‌شود (CPU، حافظه، ورودی/خروجی دیسک و غیره) استفاده کنید.
        top
      2. تحلیل گزارش‌ها: گزارش‌های سیستم و برنامه‌ها را برای هرگونه خطا یا هشداری که ممکن است نشان‌دهنده مشکلات عملکرد باشد، بررسی کنید.
        tail -f /var/log/syslog
      3. بهینه‌سازی کد: کد خود را برای بهبود عملکرد بررسی و بهینه‌سازی کنید. به دنبال الگوریتم‌های ناکارآمد، محاسبات غیرضروری و نشت حافظه باشید.
      4. برنامه خود را پروفایل کنید: از ابزارهای پروفایلینگ مانند gprof، perf یا valgrind برای تجزیه و تحلیل عملکرد برنامه خود و شناسایی توابع کند یا مشکلات حافظه استفاده کنید.
        gprof <فایل اجرایی> gmon.out
      5. مقیاس‌بندی منابع: اگر گلوگاه به دلیل محدودیت منابع است، مقیاس‌بندی سخت‌افزار خود یا استفاده از متعادل‌سازی بار را برای توزیع بار بین چندین سرور در نظر بگیرید.

    سوالات متداول

    ۱. پرکاربردترین دستورات لینوکس کدامند؟

    پرکاربردترین دستورات لینوکس شامل cd، ls، mkdir، rm، cp، mv، echo، cat، grep، find، man، sudo، apt-get، ssh، ping، df، du، free، top، ps، kill، killall، service، systemctl، reboot، shutdown، whoami، uname، uptime، history و clear است.

    ۲. چگونه می‌توانم تمام دستورات موجود در لینوکس را لیست کنم؟

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

    ۳. چگونه می‌توانم یک فایل را در لینوکس پیدا کنم؟

    شما می‌توانید با استفاده از دستور find یک فایل را در لینوکس پیدا کنید. سینتکس اصلی find <path> -name “<filename>” است، که <path> دایرکتوری است که می‌خواهید جستجو را از آنجا شروع کنید و <filename> نام فایلی است که به دنبال آن هستید. برای مثال، ‎/home/user -name “example.txt” را پیدا کنید.

    ۴. چگونه یک فرآیند را در لینوکس kill کنم؟

    شما می‌توانید با استفاده از دستور kill، یک فرآیند را در لینوکس kill کنید. ابتدا، باید شناسه فرآیند (PID) فرآیندی را که می‌خواهید kill کنید با استفاده از دستور ps یا top پیدا کنید. سپس، از دستور kill و به دنبال آن PID استفاده کنید. به عنوان مثال، kill 1234، که 1234 PID فرآیند است.

    ۵. تفاوت بین cp و mv چیست؟

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

    ۶. چگونه میزان استفاده از حافظه سیستم لینوکس خود را بررسی کنم؟

    شما می‌توانید میزان استفاده از حافظه سیستم لینوکس خود را با استفاده از دستور free بررسی کنید. این دستور مقدار کل حافظه فیزیکی و swap آزاد و استفاده شده در سیستم را نمایش می‌دهد. برای مثال، ‎free -h‎ میزان استفاده از حافظه را در قالبی قابل خواندن توسط انسان نمایش می‌دهد.


     

    [تعداد: 0   میانگین: 0/5]
    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    شاید دوست داشته باشید