記事ディレクトリ
コマンド
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. オプション
options
chmod
コマンドの動作を定義します。一般的なものをいくつか示しますoptions
。
-
-R
または--recursive
:指定されたディレクトリ、すべてのサブディレクトリおよびファイルの権限を再帰的に変更します。このオプションが指定されていない場合、chmod
指定されたパスにある単一のファイルまたはディレクトリのアクセス許可のみが変更されます。 -
-f
OR--silent
OR--quiet
: エラーメッセージを表示しません。 -
-v
または--verbose
: 実行時に詳細な出力を提供します。 -
--reference=RFILE
: 権限を RFILE の権限と同じに変更します。
2. モード
mode
セクションでは、設定する権限を定義します。数字 (例: 777) または記号 (例: u+x) で表すことができます。
-
数値モード: 各権限 (読み取り、書き込み、実行) は数値で表されます。
- 4 は読み取り許可を表します。
- 2は書き込み許可を表します。
- 1は実行許可を表します。
これらの値を合計すると、所有者、グループ、およびその他のユーザーの権限を表す 3 桁の数字になります。たとえば、755 は、所有者が読み取り/書き込み/実行権限 (7=4+2+1) を持ち、グループと他のユーザーが読み取りと実行権限 (5=4+1) のみを持っていることを意味します。
-
シンボリック モード: このモードでは、文字と特殊記号を使用して権限を定義します。主な要素は次のとおりです。
-
u
、g
、 はo
それぞれユーザー (所有者)、グループ、その他を表します。 -
+
、-
および は=
、それぞれ権限の追加、権限の削除、および特定の権限の設定に使用されます。 -
r
、w
および は、x
それぞれ読み取り、書き込み、および実行のアクセス許可を表します。
たとえば、
u+x
ユーザー (ファイルの所有者) に実行権限を追加することを意味し、g-w
グループから書き込み権限を削除することを意味し、o=r
その他のユーザーに読み取り専用権限を設定することを意味します。 -
chmodコマンドの例
もちろん、chmod
コマンドの例をいくつか示します。
- ファイル (myfile.txt など) のアクセス許可を、所有者には読み取りと書き込み (6)、グループ内のユーザーには読み取りと書き込み (6)、その他のユーザーには読み取り専用 (4) に設定します。
chmod 664 myfile.txt
- ディレクトリとそのサブディレクトリの権限を再帰的に変更します。たとえば、ディレクトリ mydir とそのサブディレクトリのアクセス許可を、所有者 (7) に対して読み取り/書き込み/実行、グループ内のユーザーに対して読み取り/書き込み (6)、その他のユーザーに対して読み取り専用 (4) に設定するには、次のようにします。
chmod -R 764 mydir
- シンボリック モードを使用して権限を変更します。たとえば、所有者 (u) に (+) 実行 (x) 権限を追加するには、次のコマンドを使用します。
chmod u+x myfile.txt
- 複数のユーザー グループの権限を同時に変更することができます。たとえば、所有者およびグループ ユーザーに実行権限を追加するには、次のように記述できます。
chmod u+x,g+x myfile.txt
または次のように簡略化されます。
chmod +x myfile.txt
これにより、所有者、グループ ユーザー、およびその他のユーザーに実行権限が追加されます。
- ユーザー グループの特定の権限をキャンセルします。たとえば、グループ ユーザー (g) の書き込み (w) 権限をキャンセルします。
chmod g-w myfile.txt
- 所有者に読み取り、書き込み、および実行のアクセス許可を設定し、他のユーザーにはアクセス許可を与えません。
chmod 700 myfile.txt
- すべてのユーザーのファイル (myfile.txt など) に対するすべてのアクセス許可を削除する場合は、次のコマンドを使用できます。
chmod 000 myfile.txt
- スクリプト (script.sh など) があり、すべてのユーザーがそれを実行できるようにしたい場合は、次のように設定できます。
chmod 755 script.sh
このように、所有者は読み取り、書き込み、および実行のアクセス許可を持ちますが、グループ ユーザーと他のユーザーは読み取りと実行のアクセス許可のみを持ちます。
- 所有者にファイルに対するすべてのアクセス許可を与え、他のユーザーには何も許可しない場合は、次のように設定できます。
chmod 700 myfile.txt
- 次の表記を使用して、所有者に書き込み権限を追加します。
chmod u+w myfile.txt
- グループ ユーザーおよび他のユーザーから実行権限を削除します。
chmod go-x myfile.txt
- ファイル所有者のアクセス許可を読み取りと書き込みに設定し、グループ ユーザーのアクセス許可を読み取り専用に設定し、他のユーザーにはアクセス許可を与えないようにします。
chmod 640 myfile.txt
- ディレクトリとそのすべてのサブディレクトリおよびファイルのアクセス許可を変更する場合は、-R オプションを使用できます。たとえば、所有者に完全なアクセス許可を与え、グループ ユーザーとその他のユーザーには読み取りと実行のアクセス許可のみを与えるには、次のようにします。
chmod -R 755 mydir
障害者
pwd
Unix、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
rm
command は、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
mv
Unix/Linux オペレーティング システムでファイルまたはディレクトリを移動または名前変更するコマンドです。mv
コマンドを使用した例をいくつか示します。
-
ファイルの名前を変更します。
ファイルをある名前から別の名前に変更する場合は、
mv
コマンドを使用できます。たとえば、oldname.txt
ファイルの名前を に変更する場合はnewname.txt
、次のコマンドを入力します。mv oldname.txt newname.txt
oldname.txt
このコマンドを実行すると、ファイルは存在しなくなり、新しいファイルが表示されたことがわかりますnewname.txt
。 -
ファイルを移動します。
mv
コマンドでは、ファイルをある場所から別の場所に移動することもできます。たとえば、file.txt
ファイルを現在のディレクトリからdirectory1
そのディレクトリに移動する場合は、次のコマンドを入力します。mv file.txt directory1/
このコマンドを実行すると、ファイルが
file.txt
カレントディレクトリからdirectory1
ディレクトリに移動されます。 -
ファイルを移動して名前を変更します。
mv
コマンドを使用すると、ファイルの移動中にファイルの名前を変更することもできます。たとえば、file.txt
ファイルをdirectory1
ディレクトリに移動し、その名前を に変更する場合はnewname.txt
、次のコマンドを入力します。mv file.txt directory1/newname.txt
このコマンドを実行すると、ファイルは現在のディレクトリからディレクトリ
file.txt
に移動され、名前が に変更されます。directory1
newname.txt
mv
このコマンドは、ターゲット ファイルまたはディレクトリが既に存在する場合、デフォルトで上書きすることに注意してください。これを望まない場合は、-i
(ie --interactive
) オプションを使用して、ターゲット ファイルが存在する場合にmv
コマンドがそれを上書きするかどうかを尋ねることができます。例えば:
mv -i oldname.txt newname.txt
この場合、newname.txt
ファイルがすでに存在する場合、mv
コマンドはそれを上書きするかどうかを尋ねます。
ディレクトリの移動と名前変更は、ファイルの移動と名前変更と同じ方法で、mv
コマンドを使用して実行します。以下にいくつかの例を示します。
-
ディレクトリを移動します:
ディレクトリをある場所から別の場所に移動する場合は、
mv
コマンドを使用できます。たとえば、directory1
現在の場所からdirectory2
(directory2
既に存在すると仮定して) に移動する場合は、次のコマンドを使用できます。mv directory1 directory2/
これがディレクトリ配下に
directory1
移動しdirectory2
、パスは になりますdirectory2/directory1
。 -
ディレクトリの名前を変更します。
mv
コマンドを使用してディレクトリの名前を変更することもできます。たとえば、directory1
名前を に変更する場合はdirectory3
、次のコマンドを使用できます。mv directory1 directory3
このコマンドを実行すると、
directory1
名前が に変更されdirectory3
、directory1
元のファイルとサブディレクトリはすべて変更されませんが、パス名が変更されますdirectory3
。 -
ディレクトリを移動して名前を変更します。
mv
コマンドを使用すると、ディレクトリの移動中にディレクトリの名前を変更できます。たとえば、ディレクトリdirectory1
に移動して名前を に変更する場合は、次のコマンドを入力します。directory2
directory3
mv directory1 directory2/directory3
このコマンドを実行すると、ディレクトリ
directory1
に移動され、名前が に変更されます。したがって、新しいパスは になります。directory2
directory3
directory2/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
を含むという名前のサブディレクトリを含むという名前のディレクトリを作成できます。dir2
dir2
dir3
$ mkdir -p dir1/dir2/dir3
これらのディレクトリがすでに存在する場合、mkdir -p
エラーは表示されず、そのまま残ります。
ディレクトリのアクセス許可を設定する
ディレクトリの作成中に、ディレクトリのアクセス許可を設定することもできます。たとえば、mydir
という名前の新しいディレクトリを作成し、そのアクセス許可を設定する755
場合 (つまり、所有者は読み取りと実行が可能、グループは読み取りと実行が可能、他のユーザーは読み取りと実行が可能)、次のコマンドを使用できます。
$ mkdir -m 755 mydir
上記はmkdir
コマンドの基本的な使用法の一部です。このコマンドを使用すると、ファイル システムに新しいディレクトリとサブディレクトリを簡単に作成できます。