最近の歴史のある時期に、SFオタクは、すべてのスターウォーズの毎年恒例のお祝いを始めました。 5月4日、ジェダイの祝福についてのしゃれ、「力があなたと共にありますように」。ほとんどのLinuxユーザーはおそらくジェダイではありませんが、フォースを使用する方法はまだあります。もちろん、ヨーダがルークに男Xウイングファイターと入力するように指示しただけでは、映画はそれほどエキサイティングではなかったかもしれません。 または人力 。または、彼が「RTFM」と言った場合(もちろん、フォースマニュアルを読んでください)。
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
多くのLinuxコマンドには-fがあります オプションは、あなたがそれを推測したことを意味します、力!コマンドを実行すると、失敗したり、追加の入力を求められたりすることがあります。これは、変更しようとしているファイルを保護するための取り組みであるか、デバイスがビジーであるかファイルがすでに存在することをユーザーに通知するための取り組みである可能性があります。
プロンプトに煩わされたくない場合、またはエラーを気にしない場合は、力を使用してください!
コマンドのforceオプションを使用してこれらの保護を無効にすることは、一般に破壊的であることに注意してください。したがって、ユーザーは細心の注意を払い、自分が何をしているかを確実に理解する必要があります。力を使うと結果が出る可能性があります!
以下は、forceオプションを備えた4つのLinuxコマンドと、それを使用する方法と理由の簡単な説明です。
cp
cp コマンドはcopyの略で、ファイルまたはディレクトリをコピー(または複製)するために使用されます。マニュアルページでは、 cpの強制オプションについて説明しています。 として:
-f, --force
if an existing destination file cannot be opened, remove it
and try again
この例は、読み取り専用ファイルを使用している場合に使用します。
[alan@workstation ~]$ ls -l
total 8
-rw-rw---- 1 alan alan 13 May 1 12:24 Hoth
-r--r----- 1 alan alan 14 May 1 12:23 Naboo
[alan@workstation ~]$ cat Hoth Naboo
Icy Planet
Green Planet
Hothというファイルをコピーする場合 ナブーへ 、 cp Naboo 以降、コマンドはそれを許可しません 読み取り専用です:
[alan@workstation ~]$ cp Hoth Naboo
cp: cannot create regular file 'Naboo': Permission denied
しかし、力を使うことによって、 cp プロンプトは表示されません。 両方の内容と権限 すぐにナブーにコピーされます :
[alan@workstation ~]$ cp -f Hoth Naboo
[alan@workstation ~]$ cat Hoth Naboo
Icy Planet
Icy Planet
[alan@workstation ~]$ ls -l
total 8
-rw-rw---- 1 alan alan 12 May 1 12:32 Hoth
-rw-rw---- 1 alan alan 12 May 1 12:38 Naboo
大野!彼らがナブーに防寒着を持っていることを願っています。
ln
ln コマンドは、ファイル間のリンクを作成するために使用されます。マニュアルページでは、 lnの強制オプションについて説明しています。 として:
-f, --force
remove existing destination files
レイア姫がJavaアプリケーションサーバーを保守していて、すべてのJavaバージョンが保存されているディレクトリを持っているとします。次に例を示します:
leia@workstation:/usr/lib/java$ ls -lt
total 28
lrwxrwxrwx 1 leia leia 12 Mar 5 2018 jdk -> jdk1.8.0_162
drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162
drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144
ご覧のとおり、Java Development Kit(JDK)にはいくつかのバージョンがあり、最新のものを指すシンボリックリンクがあります。彼女は、次のコマンドを含むスクリプトを使用して、新しいJDKバージョンをインストールします。ただし、forceオプションがないと、またはrootユーザーが実行しない限り機能しません:
tar xvzmf jdk1.8.0_181.tar.gz -C jdk1.8.0_181/
ln -vs jdk1.8.0_181 jdk
タール コマンドは.gzファイルを指定されたディレクトリに抽出しますが、 ln リンクがすでに存在するため、コマンドはリンクのアップグレードに失敗します。その結果、リンクは最新のJDKを指さなくなります:
leia@workstation:/usr/lib/java$ ln -vs jdk1.8.0_181 jdk
ln: failed to create symbolic link 'jdk/jdk1.8.0_181': File exists
leia@workstation:/usr/lib/java$ ls -lt
total 28
drwxr-x--- 2 leia leia 4096 May 1 15:44 jdk1.8.0_181
lrwxrwxrwx 1 leia leia 12 Mar 5 2018 jdk -> jdk1.8.0_162
drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162
drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144
彼女はlnを強制することができます forceオプションと他の1つを渡すことにより、リンクを正しく更新するには、 -n 。 -n リンクがディレクトリを指しているため、が必要です。これで、リンクは再び最新のJDKを指します:
leia@workstation:/usr/lib/java$ ln -vsnf jdk1.8.0_181 jdk
'jdk' -> 'jdk1.8.0_181'
leia@workstation:/usr/lib/java$ ls -lt
total 28
lrwxrwxrwx 1 leia leia 12 May 1 16:13 jdk -> jdk1.8.0_181
drwxr-x--- 2 leia leia 4096 May 1 15:44 jdk1.8.0_181
drwxr-xr-x 8 leia leia 4096 Mar 5 2018 jdk1.8.0_162
drwxr-xr-x 8 leia leia 4096 Aug 28 2017 jdk1.8.0_144
パス/usr / lib / java / jdkでJDKを検索するようにJavaアプリケーションを構成できます。 Javaが更新されるたびに変更する必要はありません。
rm
rm コマンドは「remove」の略です(他の一部のオペレーティングシステムには del があるため、削除と呼ばれることがよくあります) このアクションのコマンド)。マニュアルページでは、 rmの強制オプションについて説明しています。 として:
-f, --force
ignore nonexistent files and arguments, never prompt
読み取り専用ファイルを削除しようとすると、 rmのプロンプトが表示されます :
[alan@workstation ~]$ ls -l
total 4
-r--r----- 1 alan alan 16 May 1 11:38 B-wing
[alan@workstation ~]$ rm B-wing
rm: remove write-protected regular file 'B-wing'?
yのいずれかを入力する必要があります またはn プロンプトに応答し、 rmを許可します 続行するコマンド。強制オプションを使用する場合は、 rm プロンプトは表示されず、すぐにファイルが削除されます:
[alan@workstation ~]$ rm -f B-wing>
[alan@workstation ~]$ ls -l
total 0
[alan@workstation ~]$
rmでの最も一般的な力の使用 ディレクトリを削除することです。 -r (再帰的)オプションは rmに通知します ディレクトリを削除します。 forceオプションと組み合わせると、プロンプトなしでディレクトリとそのすべてのコンテンツが削除されます。
rm 特定のオプションを指定したコマンドは、悲惨な結果を招く可能性があります。何年にもわたって、オンラインフォーラムは、ユーザーがシステムを完全に消去するというジョークやホラーストーリーでいっぱいになりました。この悪名高い使用法はrm-rf * 。これにより、使用されている場所にプロンプトが表示されることなく、すべてのファイルとディレクトリがすぐに削除されます。
userdel
userdel コマンドはuserdeleteの略で、ユーザーを削除します。マニュアルページでは、 userdelの強制オプションについて説明しています。 として:
-f, --force
This option forces the removal of the user account, even if the
user is still logged in. It also forces userdel to remove the
user's home directory and mail spool, even if another user uses
the same home directory or if the mail spool is not owned by the
specified user. If USERGROUPS_ENAB is defined to yes in
/etc/login.defs and if a group exists with the same name as the
deleted user, then this group will be removed, even if it is
still the primary group of another user.
Note: This option is dangerous and may leave your system in an
inconsistent state.
オビ=ワンがムスタファーの城に到着したとき、彼は何をしなければならないかを知っていました。彼はダースのユーザーアカウントを削除する必要がありましたが、ダースはまだログインしていました。
[root@workstation ~]# ps -fu darth
UID PID PPID C STIME TTY TIME CMD
darth 7663 7655 0 13:28 pts/3 00:00:00 -bash
[root@workstation ~]# userdel darth
userdel: user darth is currently used by process 7663
Darthは現在ログインしているため、Obi-Wanはforceオプションを使用して userdelを実行する必要があります。 。これにより、ログインしていてもユーザーアカウントが削除されます。
[root@workstation ~]# userdel -f darth
userdel: user darth is currently used by process 7663
[root@workstation ~]# finger darth
finger: darth: no such user.
[root@workstation ~]# ps -fu darth
error: user name does not exist
ご覧のとおり、指 およびps コマンドは、ユーザーDarthが削除されたことを確認します。
他の多くのコマンドには強制オプションがあります。シェルスクリプトでは、1つの場所の力が非常に役立ちます。 cronジョブやその他の自動化された操作でスクリプトを使用するため、プロンプトを回避することが重要です。そうしないと、これらの自動化されたプロセスが完了しません。
上で共有した4つの例が、特定の状況で力の使用がどのように必要になるかを理解するのに役立つことを願っています。コマンドラインまたは自動化スクリプトの作成で使用する場合は、forceオプションを十分に理解している必要があります。誤用は、単一のマシンだけでなく、インフラストラクチャ全体に壊滅的な影響を与える可能性があります。