Unix、Linuxでよく使われるコマンド(継続蓄積)

コマンド

chomd の基本構文

chmodは、Unix および Linux オペレーティング システムのコマンドです用于改变文件或目录的权限文件所有者Linux では、各ファイルまたはディレクトリのアクセス許可を、 、所有者所在的用户组、および の3 つの異なるユーザー レベルに設定できます其他用户

chmodの基本的な構文は次のとおりです。

chmod [options] mode file

このコマンドでは次のようになります。

  • options: これはオプションのパラメータであり、主にコマンドの動作を定義するために使用されます。たとえば、-Rこのオプションを使用すると、ディレクトリとそのサブディレクトリのアクセス許可を再帰的に変更できます。
  • mode: これは、設定する権限であり、数字 (777 など) または記号 (u+x など) で表すことができます。
  • file: これは、アクセス許可を変更するファイルまたはディレクトリの名前です。

chmodコマンドは 3 つの数字を使用して権限を示し、各数字は異なるユーザー グループを表します。

  • 最初の数字は文件所有者権限を表します。
  • 2 番目の数字は同一用户组中的其他用户権限を表します。
  • 3 桁目は其他所有用户許可を表します。

各数値は、3 つのアクセス許可 (読み取り、書き込み、実行) のバイナリ表現の合計です。

  • 读权限被表示为4
  • 写权限被表示为2
  • 执行权限被表示为1

したがって、权限的数字表示可以从0(无权限)到7(读、写和执行权限)たとえば、给文件所有者全部权限给同一用户组的用户读和执行权限、が必要な場合は给其他所有用户只给读权限、パターンを に設定できます754

それが基本的なchmodコマンドです。ファイルとディレクトリのアクセス許可の変更は、慎重に行う必要がある作業です。アクセス許可の設定が正しくないとセキュリティ上の問題が発生する可能性があるため、注意してください。

chmod コマンドのオプションとモード部分

chmod注文options金額はmode非常に重要です。それぞれを詳しく見てみましょう。

1. オプション

optionschmodコマンドの動作を定義します。一般的なものをいくつか示しますoptions

  • -Rまたは--recursive:指定されたディレクトリ、すべてのサブディレクトリおよびファイルの権限を再帰的に変更しますこのオプションが指定されていない場合、chmod指定されたパスにある単一のファイルまたはディレクトリのアクセス許可のみが変更されます。

  • -fOR --silentOR --quiet: エラーメッセージを表示しません。

  • -vまたは--verbose: 実行時に詳細な出力を提供します。

  • --reference=RFILE: 権限を RFILE の権限と同じに変更します。

2. モード

modeセクションでは、設定する権限を定義します。数字 (例: 777) または記号 (例: u+x) で表すことができます。

  • 数値モード: 各権限 (読み取り、書き込み、実行) は数値で表されます。

    • 4 は読み取り許可を表します。
    • 2は書き込み許可を表します。
    • 1は実行許可を表します。

    これらの値を合計すると、所有者、グループ、およびその他のユーザーの権限を表す 3 桁の数字になります。たとえば、755 は、所有者が読み取り/書き込み/実行権限 (7=4+2+1) を持ち、グループと他のユーザーが読み取りと実行権限 (5=4+1) のみを持っていることを意味します。

  • シンボリック モード: このモードでは、文字と特殊記号を使用して権限を定義します。主な要素は次のとおりです。

    • ug、 はoそれぞれユーザー (所有者)、グループ、その他を表します。

    • +-および は=、それぞれ権限の追加、権限の削除、および特定の権限の設定に使用されます。

    • rwおよび は、xそれぞれ読み取り、書き込み、および実行のアクセス許可を表します。

    たとえば、u+xユーザー (ファイルの所有者) に実行権限を追加することを意味し、g-wグループから書き込み権限を削除することを意味し、o=rその他のユーザーに読み取り専用権限を設定することを意味します。

chmodコマンドの例

もちろん、chmodコマンドの例をいくつか示します。

  1. ファイル (myfile.txt など) のアクセス許可を、所有者には読み取りと書き込み (6)、グループ内のユーザーには読み取りと書き込み (6)、その他のユーザーには読み取り専用 (4) に設定します。
chmod 664 myfile.txt
  1. ディレクトリとそのサブディレクトリの権限を再帰的に変更します。たとえば、ディレクトリ mydir とそのサブディレクトリのアクセス許可を、所有者 (7) に対して読み取り/書き込み/実行、グループ内のユーザーに対して読み取り/書き込み (6)、その他のユーザーに対して読み取り専用 (4) に設定するには、次のようにします。
chmod -R 764 mydir
  1. シンボリック モードを使用して権限を変更します。たとえば、所有者 (u) に (+) 実行 (x) 権限を追加するには、次のコマンドを使用します。
chmod u+x myfile.txt
  1. 複数のユーザー グループの権限を同時に変更することができます。たとえば、所有者およびグループ ユーザーに実行権限を追加するには、次のように記述できます。
chmod u+x,g+x myfile.txt

または次のように簡略化されます。

chmod +x myfile.txt

これにより、所有者、グループ ユーザー、およびその他のユーザーに実行権限が追加されます。

  1. ユーザー グループの特定の権限をキャンセルします。たとえば、グループ ユーザー (g) の書き込み (w) 権限をキャンセルします。
chmod g-w myfile.txt
  1. 所有者に読み取り、書き込み、および実行のアクセス許可を設定し、他のユーザーにはアクセス許可を与えません。
chmod 700 myfile.txt
  1. すべてのユーザーのファイル (myfile.txt など) に対するすべてのアクセス許可を削除する場合は、次のコマンドを使用できます。
chmod 000 myfile.txt
  1. スクリプト (script.sh など) があり、すべてのユーザーがそれを実行できるようにしたい場合は、次のように設定できます。
chmod 755 script.sh

このように、所有者は読み取り、書き込み、および実行のアクセス許可を持ちますが、グループ ユーザーと他のユーザーは読み取りと実行のアクセス許可のみを持ちます。

  1. 所有者にファイルに対するすべてのアクセス許可を与え、他のユーザーには何も許可しない場合は、次のように設定できます。
chmod 700 myfile.txt
  1. 次の表記を使用して、所有者に書き込み権限を追加します。
chmod u+w myfile.txt
  1. グループ ユーザーおよび他のユーザーから実行権限を削除します。
chmod go-x myfile.txt
  1. ファイル所有者のアクセス許可を読み取りと書き込みに設定し、グループ ユーザーのアクセス許可を読み取り専用に設定し、他のユーザーにはアクセス許可を与えないようにします。
chmod 640 myfile.txt
  1. ディレクトリとそのすべてのサブディレクトリおよびファイルのアクセス許可を変更する場合は、-R オプションを使用できます。たとえば、所有者に完全なアクセス許可を与え、グループ ユーザーとその他のユーザーには読み取りと実行のアクセス許可のみを与えるには、次のようにします。
chmod -R 755 mydir

障害者

pwdUnix、Linux環境におけるコマンドで、正式名称は「print working directory」で、現在の作業ディレクトリのフルパスを表示します。

pwdコマンドに引数が指定されていない場合、コマンドは現在の作業ディレクトリのパスを出力します。たとえば、新しいターミナルまたはコマンド ライン インターフェイスを初めて開くと、次のようにホーム ディレクトリが表示されることがあります。

$ pwd
/Users/yourusername

現在の作業ディレクトリを変更した場合、pwdコマンドにより現在の場所が表示されます。たとえば、cdコマンドを使用して というディレクトリに入り、コマンドをDocuments実行すると、次のように表示されます。pwd

$ cd Documents
$ pwd
/Users/yourusername/Documents

これがpwdコマンドの基本的な使い方です。これは、ファイル システム内のどこにいるかを理解するのに役立つ非常に便利なコマンドです。

catファイルの内容を表示、作成、リンクするために Unix および Linux システムで一般的に使用されるコマンドです。正式名称は「concatenate」で、接続するという意味です。

ファイルの内容を表示する

これはcat最も基本的な使用法で、たとえば、ファイル myfile.txt の内容を表示する場合です。

$ cat myfile.txt

ファイル myfile.txt の内容全体がコマンド ライン ウィンドウに出力されます。

新しいファイルを作成する

cat新しいファイルの作成にも使用できます。たとえば、新しいファイルを作成し、そこにテキストを書き込むことができます。

$ cat > newfile.txt

その後、テキストの入力を開始できます。完了したら、Ctrl+D を押して入力を終了すると、入力したテキストを含む newfile.txt という名前のファイルが作成されたことがわかります。

リンクファイルの内容

catこのコマンドは元々、複数のファイルの内容を連結するために設計されました。たとえば、file1.txt と file2.txt という 2 つのファイルがあり、これら 2 つのファイルの内容を含む新しいファイルを作成したい場合は、次のコマンドを使用できます。

$ cat file1.txt file2.txt > combined.txt

combined.txt ファイルには、file1.txt と file2.txt の内容が含まれています。

ファイルに追加する

既存のファイルを上書きするのではなく、末尾に何かを追加したい場合は、「>>」演算子を使用できます。たとえば、file1.txt の内容の後に file2.txt の内容を追加するとします。

$ cat file2.txt >> file1.txt

ファイル file1.txt には、元の内容とそれに続く file2.txt の内容が含まれています。

行番号を表示

このオプションを使用すると-n、出力の各行の先頭に行番号が付加されます。これは、長いファイルを表示するときに便利です。

$ cat -n myfile.txt

触る

touchこれは、新しい空のファイルを作成したり、既存のファイルまたはディレクトリのタイムスタンプを変更したりするために使用される、一般的に使用される Unix および Linux コマンドです。2 つの使用法については、以下で詳しく説明します。

新しい空のファイルを作成する

新しい空のファイルを作成するには、作成するファイルの名前をtouchコマンドの引数として指定するだけです。たとえば、myfile.txtという名前の新しいファイルを作成する場合は、次のように入力します。

$ touch myfile.txt

ファイルがすでに存在する場合、touchコマンドは効果がありません。ファイルが存在しない場合は、touch新しい空のファイルが作成されます。

ファイルまたはディレクトリのタイムスタンプを変更する

touchコマンドを使用して、ファイルまたはディレクトリのアクセス時刻と変更時刻を更新することもできます。ファイルまたはディレクトリに対してコマンドを使用するとtouch、これら 2 つのタイムスタンプが現在時刻に更新されます。

たとえば、myfile.txtファイルのタイムスタンプを更新できます。

$ touch myfile.txt

touch複数のファイルまたはディレクトリのタイムスタンプをコマンドに引数として渡すことで、それらのタイムスタンプを同時に変更することもできます。

$ touch file1.txt file2.txt directory1

これらのファイルまたはディレクトリが存在しない場合は、touch存在しないファイル名ごとに新しい空のファイルが作成されることに注意してください。

特定のタイムスタンプを持つファイルを作成する

-tオプションを使用して、特定のタイムスタンプを持つファイルを作成できます。たとえば、myfile.txt変更日を 2023 年 1 月 1 日に設定した名前のファイルを作成するには、次のようなコマンドを使用します。

$ touch -t 202301011200 myfile.txt

このコマンドは、myfile.txt のタイムスタンプを 2023 年 1 月 1 日の 12:00 に作成または変更します。

touchこれらのコマンドの使用法は、スクリプトやその他のツールでファイルやディレクトリを作成および管理するのに役立ちます。

rm

rmcommand は、Unix および Linux でファイルとディレクトリを削除するために使用される基本的なコマンドです。rmコマンドの使用例の詳細をいくつか示します。

ファイルの削除

ファイルを削除するには、ファイル名をrm引数としてコマンドに渡すだけです。たとえば、myfile.txtという名前のファイルを削除するには、次のように入力します。

$ rm myfile.txt

複数のファイルを削除する

複数のファイルを削除する場合は、すべてのファイル名をrm引数としてコマンドに一緒に渡すことができます。たとえば、3 つのファイルfile1.txt、 、file2.txtおよびを削除するには、次のように入力します。file3.txt

$ rm file1.txt file2.txt file3.txt

ディレクトリを削除する

デフォルトでは、rmこのコマンドはディレクトリを削除しません。ディレクトリを削除しようとすると、エラー メッセージが表示されます。ディレクトリを削除するには、-r( または--recursive) オプションを使用します。たとえば、mydirという名前のディレクトリを削除するには、次のように入力します。

$ rm -r mydir

mydirこれにより、ディレクトリと、そのディレクトリに含まれるすべてのサブディレクトリとファイルが削除されます。

強制削除

ファイルまたはディレクトリをそれぞれのプロンプトを表示せずに削除する場合は、-f(または--force) オプションを使用します。たとえば、mydirディレクトリを強制的に削除するには、次のように入力します。

$ rm -rf mydir

mydirこれにより、ディレクトリとそれに含まれるすべてのサブディレクトリとファイルがプロンプトなしで削除されます。

rm注:ファイルまたはディレクトリを削除すると、復元することはできないため、コマンドには注意してください。-rまたはオプションを使用する場合は-f、削除するつもりのないファイルやディレクトリが削除される可能性があるため、特に注意してください。

CP

cpは、Unix および Linux 環境の のコマンドです复制文件和目录cpいくつかのコマンドの詳細な例を次に示します。

ファイルをコピーする

ファイルをコピーするには、コピー元のファイルの名前とコピー先のファイルの名前を指定する必要があります。たとえば、file1.txtという名前のファイルをコピーし、そのコピーに という名前を付ける場合はfile2.txt、次のコマンドを使用します。

$ cp file1.txt file2.txt

ディレクトリにコピーする

ファイルを別のディレクトリにコピーすることもできます。たとえば、というディレクトリfile1.txtにコピーする場合はmydir、次のコマンドを使用します。

$ cp file1.txt mydir

これにより、mydirディレクトリのコピーが作成されますfile1.txt

ディレクトリをコピーする

ディレクトリとそのすべての内容をコピーするには、再帰を表す-Rまたはオプションを使用する必要があります。-rたとえば、dir1という名前のディレクトリをコピーし、そのコピーに という名前を付ける場合はdir2、次のコマンドを使用します。

$ cp -R dir1 dir2

これにより、ディレクトリ内のすべてのファイルとサブディレクトリdir2を含むディレクトリが作成されます。dir1

ファイル属性をコピーして保存する

ファイルまたはディレクトリをコピーし、所有者、グループ、アクセス許可などの元の属性を保持するには、-pオプションを使用できます。たとえば、file1.txtそのプロパティをコピーして保存したい場合は、次のコマンドを使用できます。

$ cp -p file1.txt file2.txt

これらは、cpコマンドの一般的な使用法の一部です。cpこのコマンドは常にソース ファイルまたはディレクトリのコピーを作成し、ソース ファイルまたはディレクトリを移動または削除しないことに注意してください。

MV

mvUnix/Linux オペレーティング システムでファイルまたはディレクトリを移動または名前変更するコマンドです。mvコマンドを使用した例をいくつか示します。

  1. ファイルの名前を変更します。

    ファイルをある名前から別の名前に変更する場合は、mvコマンドを使用できます。たとえば、oldname.txtファイルの名前を に変更する場合はnewname.txt、次のコマンドを入力します。

    mv oldname.txt newname.txt
    

    oldname.txtこのコマンドを実行すると、ファイルは存在しなくなり、新しいファイルが表示されたことがわかりますnewname.txt

  2. ファイルを移動します。

    mvコマンドでは、ファイルをある場所から別の場所に移動することもできます。たとえば、file.txtファイルを現在のディレクトリからdirectory1そのディレクトリに移動する場合は、次のコマンドを入力します。

    mv file.txt directory1/
    

    このコマンドを実行すると、ファイルがfile.txtカレントディレクトリからdirectory1ディレクトリに移動されます。

  3. ファイルを移動して名前を変更します。

    mvコマンドを使用すると、ファイルの移動中にファイルの名前を変更することもできます。たとえば、file.txtファイルをdirectory1ディレクトリに移動し、その名前を に変更する場合はnewname.txt、次のコマンドを入力します。

    mv file.txt directory1/newname.txt
    

    このコマンドを実行すると、ファイルは現在のディレクトリからディレクトリfile.txtに移動され、名前が に変更されますdirectory1newname.txt

mvこのコマンドは、ターゲット ファイルまたはディレクトリが既に存在する場合、デフォルトで上書きすることに注意してください。これを望まない場合は、-i(ie --interactive) オプションを使用して、ターゲット ファイルが存在する場合にmvコマンドがそれを上書きするかどうかを尋ねることができます。例えば:

mv -i oldname.txt newname.txt

この場合、newname.txtファイルがすでに存在する場合、mvコマンドはそれを上書きするかどうかを尋ねます。


ディレクトリの移動と名前変更は、ファイルの移動と名前変更と同じ方法で、mvコマンドを使用して実行します。以下にいくつかの例を示します。

  1. ディレクトリを移動します:

    ディレクトリをある場所から別の場所に移動する場合は、mvコマンドを使用できます。たとえば、directory1現在の場所からdirectory2(directory2既に存在すると仮定して) に移動する場合は、次のコマンドを使用できます。

    mv directory1 directory2/
    

    これがディレクトリ配下にdirectory1移動しdirectory2、パスは になりますdirectory2/directory1

  2. ディレクトリの名前を変更します。

    mvコマンドを使用してディレクトリの名前を変更することもできます。たとえば、directory1名前を に変更する場合はdirectory3、次のコマンドを使用できます。

    mv directory1 directory3
    

    このコマンドを実行すると、directory1名前が に変更されdirectory3directory1元のファイルとサブディレクトリはすべて変更されませんが、パス名が変更されますdirectory3

  3. ディレクトリを移動して名前を変更します。

    mvコマンドを使用すると、ディレクトリの移動中にディレクトリの名前を変更できます。たとえば、ディレクトリdirectory1に移動して名前を に変更する場合は、次のコマンドを入力します。directory2directory3

    mv directory1 directory2/directory3
    

    このコマンドを実行すると、ディレクトリdirectory1に移動され、名前が に変更されますしたがって、新しいパスは になりますdirectory2directory3directory2/directory3

同様に、ターゲット ディレクトリが既に存在する場合、mvコマンドはそれを上書きします。これを望まない場合は、-i(ie --interactive) オプションを使用して、ターゲット ディレクトリが存在する場合にmvコマンドが上書きするかどうかを尋ねることができます。例えば:

mv -i directory1 directory3

この場合、directory3すでに存在する場合、mvコマンドはそれを上書きするかどうかを尋ねます。

mkdir

mkdirは、新しいディレクトリを作成するために Unix および Linux 環境で一般的に使用されるコマンドです。以下に、mkdirいくつかのコマンドの詳細な例を示します。

新しいディレクトリを作成する

基本的なmkdirコマンドは、新しいディレクトリを作成するためのものです。たとえば、mydirという新しいディレクトリを作成する場合は、次のコマンドを使用します。

$ mkdir mydir

これにより、現在の作業ディレクトリの下に という名前の新しいディレクトリが作成されますmydir

複数のディレクトリを作成する

一度に複数のディレクトリを作成することもできます。たとえば、dir1とという名前の 2 つのディレクトリを作成する場合はdir2、次のコマンドを使用します。

$ mkdir dir1 dir2

これにより、現在の作業ディレクトリの下に 2 つの新しいディレクトリと が作成されdir1ますdir2

ネストされたディレクトリを作成する

マルチレベルのディレクトリ (つまり、ディレクトリのディレクトリ) を一度に作成したい場合は、-p(または--parents) オプションを使用できます。たとえば、 という名前のサブディレクトリdir1を含むという名前のサブディレクトリを含むという名前のディレクトリを作成できます。dir2dir2dir3

$ mkdir -p dir1/dir2/dir3

これらのディレクトリがすでに存在する場合、mkdir -pエラーは表示されず、そのまま残ります。

ディレクトリのアクセス許可を設定する

ディレクトリの作成中に、ディレクトリのアクセス許可を設定することもできます。たとえば、mydirという名前の新しいディレクトリを作成し、そのアクセス許可を設定する755場合 (つまり、所有者は読み取りと実行が可能、グループは読み取りと実行が可能、他のユーザーは読み取りと実行が可能)、次のコマンドを使用できます。

$ mkdir -m 755 mydir

上記はmkdirコマンドの基本的な使用法の一部です。このコマンドを使用すると、ファイル システムに新しいディレクトリとサブディレクトリを簡単に作成できます。

おすすめ

転載: blog.csdn.net/Waldocsdn/article/details/131206061