50以上の必須Linuxコマンド:包括的なガイド

0 株式
0
0
0
0

導入

 

この包括的なLinuxコマンドガイドで、Linuxシステムの潜在能力を最大限に引き出しましょう。経験豊富な管理者でも初心者でも、これらのコマンドを習得することは、効率的なサーバー管理、スクリプト作成、トラブルシューティングに不可欠です。このチュートリアルでは、ファイル管理、プロセス制御、ユーザーアクセス、ネットワーク設定、システムデバッグなど、最もよく使われる強力なコマンドを学習します。.

50以上の必須Linuxコマンドを習得し、Linuxのパワフルな使い手を目指しましょう。初心者から上級者まで、これらのコマンドはあらゆる作業に役立つツールとなるでしょう。.


前提条件

これらのコマンドはUbuntuサーバー上で実行しますが、このチュートリアルは最新のLinuxディストリビューションであればどれでも実行できます。このチュートリアル用のUbuntuサーバーをセットアップするには、Ubuntuで初めてサーバーをセットアップするためのガイドに従ってください。.

  1. ls – Linux でディレクトリを一覧表示するために最もよく使用されるコマンド。.
  2. pwd – Linux で作業ディレクトリを印刷するコマンド。.
  3. cd – ディレクトリ間を移動するための Linux コマンド。.
  4. mkdir – Linux でディレクトリを作成するために使用されるコマンド。.
  5. mv – Linux でファイルを移動または名前変更します。.
  6. cp – mv に似ていますが、Linux でファイルをコピーするためのものです。.
  7. rm – ファイルまたはディレクトリを削除します。.
  8. touch – 空のファイルを作成します。.
  9. ln – 他のファイルへのシンボリックリンク(ショートカット)を作成します。.
  10. clear – ターミナル画面をクリアします。.
  11. cat – ターミナルにファイルの内容を表示します。.
  12. echo – コマンドに続くテキストを出力します。.
  13. less – ターミナルにページ化された出力を表示する Linux コマンド。.
  14. man – すべての Linux コマンドのマニュアル ページにアクセスします。.
  15. uname – オペレーティング システムに関する基本情報を取得する Linux コマンド。.
  16. whoami – アクティブなユーザー名を取得します。.
  17. tar – Linux でファイルを抽出および圧縮するコマンド。.
  18. grep – 出力内の文字列を検索します。.
  19. head – 上から指定された行数を返します。.
  20. tail – 下から指定された行数を返します。.
  21. diff – 2 つのファイル間の違いを見つけます。.
  22. cmp – 2 つのファイルが同じかどうかを確認できます。.
  23. comm – diff 関数と cmp 関数を組み合わせます。.
  24. sort – 出力時にファイルの内容をソートする Linux コマンド。.
  25. export – Linux の環境変数をエクスポートします。.
  26. zip – Linux でファイルを Zip します。.
  27. unzip – Linux でファイルを解凍します。.
  28. ssh – Linux の Secure Shell コマンド。.
  29. service – サービスを開始および停止する Linux コマンド。.
  30. ps – アクティブなプロセスを表示します。.
  31. kill と killall – プロセス ID または名前に基づいてアクティブなプロセスを強制終了します。.
  32. df – ディスクファイルシステム情報を表示します。.
  33. mount – Linux でファイルシステムをマウントします。.
  34. chmod – ファイルの権限を変更するコマンド。.
  35. chown – ファイルまたはフォルダーの所有権を付与するコマンド。.
  36. ifconfig – ネットワーク インターフェイスと IP アドレスを表示します。.
  37. traceroute – 宛先に到達するまでのすべてのネットワーク パスをトレースします。.
  38. wget – インターネットから直接ファイルをダウンロードします。.
  39. ufw – ファイアウォール コマンド。.
  40. iptables – 他のファイアウォール ツールが通信するためのベース ファイアウォール。.
  41. apt、pacman、yum、rpm – ディストリビューションに応じたパッケージ マネージャー。.
  42. sudo – Linux で権限を上げるコマンド。.
  43. cal – カレンダーのコマンドラインを表示します。.
  44. エイリアス – 頻繁に使用するコマンドのカスタム ショートカットを作成します。.
  45. dd – 主に起動可能な USB フラッシュ ドライブを作成するために使用されます。.
  46. whereis – コマンドのバイナリ、ソース、およびマニュアル ページを検索します。.
  47. whatis – コマンドの用途を確認します。.
  48. top – アクティブなプロセスとそのシステム使用状況をリアルタイムで表示します。.
  49. useradd および usermod – 新しいユーザーを追加するか、既存のユーザー データを変更します。.
  50. passwd – 既存のユーザーのパスワードを作成または更新します。.

ファイルとディレクトリのコマンド

指示説明
lsディレクトリの内容を一覧表示します。.ls
CDディレクトリを変更します。.cd /path/to/directory
パスワード現在のディレクトリを表示します。.パスワード
mkdir新しいディレクトリを作成します。.mkdir 新しいディレクトリ
rmdir空のディレクトリを削除します。.rmdir 空のディレクトリ
rmファイルまたはディレクトリを削除します。.rm ファイル.txt
触る空のファイルを作成します。.new_file.txt をタッチします。
c.p.ファイルまたはディレクトリをコピーします。.cp file.txt /path/to/destination
動画ファイルを移動または名前を変更します。.mv file.txt /path/to/new_location
ファイルの内容を表示します。.猫ファイル.txt
ナノ / vimターミナルでファイルを編集します。.ナノファイル.txt
探すディレクトリ階層内のファイルを検索します。.find . -name "file.txt""
グレップパターンを使用してテキストを検索します。.grep "パターン" ファイル.txt
タールファイルをアーカイブして圧縮します。.tar -cvf archive.tar file1.txt file2.txt
DFファイルシステムのディスク使用量を表示します。.DF
デュディレクトリ/ファイルのサイズを表示します。.du -sh /path/to/directory
chmodファイルの権限を変更します。.chmod 755 ファイル.txt
チョーンファイルの所有者を変更します。.chown ユーザー:グループ ファイル.txt
マウントファイルシステムをマウントします。./dev/sdb1 /mnt をマウントする
アンマウントファイルシステムをアンマウントします。.アンマウント /mnt

ネットワークコマンド

指示説明使用例
ピンホストへの接続をテストします。.google.com にping
ifconfig /ip aネットワーク インターフェイスを表示します。.ifconfig または IPアドレス
ネットスタット /ssネットワーク接続を表示します。.netstat -tuln または ss -トゥルン
wgetHTTP/FTP 経由でファイルをダウンロードします。.wget http://example.com/file.zip
カールURL 構文を使用してデータを転送します。.curl -O http://example.com/file.zip
nc (ネットキャット)ネットワークのデバッグとデータ転送。.nc -zv 192.168.1.1 80
tcpdumpネットワーク パケットをキャプチャして分析します。.tcpdump -i eth0
iptablesファイアウォール ルールを構成します。.iptables -A 入力 -p tcp --dport 22 -j 受け入れ
トレースルートパケットがネットワーク ホストに到達するまでのパスをトレースします。.トレースルート example.com
nslookupDNS をクエリしてドメイン名または IP アドレスのマッピングを取得します。.nslookup example.com
SSHリモート ホストに安全に接続します。.SSH ユーザー@example.com

プロセスおよびシステム監視コマンド

指示説明コマンド例
追伸実行中のプロセスを表示します。.ps aux
トップ動的プロセス ビューアー。.トップ
hトップトップの強化版です。.hトップ
殺すプロセスにシグナルを送信します。.殺す
キラール名前でプロセスを強制終了します。.キラール
稼働時間システムの稼働時間と負荷。.稼働時間
だれだ現在ログインしているユーザー。.だれだ
環境環境変数を表示します。.環境
ストレイスプロセスのシステムコールをトレースします。.strace -p
システムctlsystemd サービスを管理します。.systemctl ステータス
ジャーナルctlシステム ログを表示します。.ジャーナルctl -xe
無料メモリ使用量を表示します。.無料 -h
vmstat仮想メモリの統計を報告します。.vmstat 1
iostatCPU および I/O 統計を報告します。.iostat
lsofプロセスごとに開いているファイルを一覧表示します。.lsof
dmesgカーネル リング バッファ メッセージを出力します。.dmesg

ユーザーと権限の管理コマンド

指示説明コマンド例
パスワードユーザーのパスワードを変更します。.パスワード
ユーザーの追加 / ユーザーの追加新しいユーザーを追加します。.ユーザーを追加 または ユーザー追加
deluser / userdelユーザーを削除します。.妄想者 または ユーザーデル
ユーザーモッドユーザーアカウントを変更します。.ユーザーモッド -aG
グループグループメンバーシップを表示します。.グループ
須藤コマンドを root として実行します。.須藤
変化ユーザーのパスワード有効期限情報を変更します。.-l を変更する
idユーザーの ID 情報を表示します。.id
新しいグループ新しいグループにログインします。.新しいグループ

ファイル転送および同期コマンド

指示説明コマンド例
アイテム番号: SCP-1811SSH 経由でファイルを安全にコピーします。.scp ユーザー@リモート:/ファイルへのパス /ローカル/宛先
rsyncファイルとディレクトリを効率的に同期します。.rsync -avz /local/directory/ user@remote:/path/to/destination
FTPファイル転送プロトコルを使用してファイルを転送します。.ftp ftp.example.com
sftpSSH ファイル転送プロトコルを使用してファイルを安全に転送します。.sftp ユーザー@リモート:/ファイルへのパス
wgetWeb からファイルをダウンロードします。.wget http://example.com/file.zip
カールサーバーとの間でデータを転送します。.curl -O http://example.com/file.zip

テキスト処理コマンド

指示説明コマンド例
awkパターンのスキャンと処理。.awk '{print $1}' ファイル.txt
sedテキストのフィルタリング/変更のためのストリーム エディター。.sed 's/old/new/g' ファイル.txt
カットテキスト行からセクションを削除します。.カット -d':' -f1 /etc/passwd
選別テキストの行を並べ替えます。.ソートファイル.txt
グレップテキスト内のパターンを検索します。.grep 'パターン' ファイル.txt
トイレ単語、行、文字数を数えます。.wc -l ファイル.txt
ペーストファイルの行を結合します。.file1.txt と file2.txt を貼り付けます
参加する共通フィールドで 2 つのファイルの行を結合します。.ファイル1.txt とファイル2.txt を結合
ファイルの最初の部分を出力します。.head -n 10 ファイル.txt
しっぽファイルの最後の部分を出力します。.tail -n 10 ファイル.txt

便利なシェルコマンドとショートカット

指示説明コマンド例
エイリアスコマンドのショートカットを作成します。.エイリアス ll='ls -la''
ユニエイリアスエイリアスを削除します。.ユニアス ll
歴史以前入力したコマンドを表示します。.歴史
クリアターミナル画面をクリアします。.クリア
リブートシステムを再起動します。.リブート
シャットダウンシステムの電源をオフにします。.今すぐシャットダウン
日付システムの日付と時刻を表示または設定します。.日付
エコーテキストの行を表示します。.「Hello, World!」をエコーします。"
寝る指定された時間だけ遅延します。.睡眠5
時間コマンド実行の継続時間を測定します。.時間 ls
時計定期的にプログラムを実行し、出力を全画面に表示します。.ウォッチ -n 5 df -h

それでは、それぞれのコマンドについてもう少し詳しく見ていきましょう。それぞれのコマンドについては既に多くの記事が公開されています。皆様の便宜を図るため、既存の記事へのリンクを追加し、新しいトピックを取り上げ次第、記事を更新していきます。.


Linuxのlsコマンド

lsコマンドは、現在の作業ディレクトリ内のファイルとディレクトリを一覧表示するために使用されます。これは、最もよく使用されるLinuxコマンドの1つであり、知っておく必要があります。.

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‎ میزان استفاده از حافظه را در قالبی قابل خواندن توسط انسان نمایش می‌دهد.


     

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    あなたも気に入るかもしれない