初心者向けの 10 の Linux コマンドライン トリック - パート 2
初めて Linux を使い始め、Windows のグラフィカル インターフェイスに慣れていたとき、Linux ターミナルが本当に嫌いだったことを覚えています。当時、私はコマンドを覚えるのが難しく、それぞれのコマンドを適切に使用するのが難しいと感じていました。時間が経つにつれて、Linux ターミナルの美しさ、柔軟性、使いやすさに気づき、正直に言うと、Linux ターミナルを使わない日はありません。今日は、Linux 初心者が Linux への移行を容易にするため、または単に新しいことを学ぶのに役立つ (できれば) いくつかの役立つトリックとヒントを共有したいと思います。
- Linux における 5 つの興味深いコマンドラインのヒントとテクニック – パート 1
- Linux ファイルタイプを管理するための 5 つの便利なコマンド – パート 3
この記事は、最小限のスキルで Linux ターミナルをプロのように使用するための便利なトリックをいくつか紹介することを目的としています。必要なのは、Linux ターミナルと、これらのコマンドをテストするための少しの自由時間だけです。
1. 適切なコマンドを見つける
正しいコマンドを実行することは、システムにとって非常に重要です。ただし、Linux には非常に多くの異なるコマンド ラインがあるため、覚えるのが難しいことがよくあります。では、必要なコマンドをどのように検索すればよいでしょうか?答えは適切です。実行する必要があるのは次のとおりです。
# apropos <description>
「説明」を、探しているコマンドの実際の説明に変更する必要があります。以下に良い例を示します。
# apropos "list directory"
dir (1) - list directory contents
ls (1) - list directory contents
ntfsls (8) - list directory contents on an NTFS filesystem
vdir (1) - list directory contents
左側にコマンドが表示され、右側にその説明が表示されます。
2. 前のコマンドを実行する
多くの場合、同じコマンドを何度も実行する必要があります。キーボードの上キーを繰り返し押すこともできますが、代わりに履歴コマンドを使用することもできます。このコマンドは、ターミナルの起動以降に入力したすべてのコマンドをリストします。
# history
1 fdisk -l
2 apt-get install gnome-paint
3 hostname linux-console.net
4 hostnamectl linux-console.net
5 man hostnamectl
6 hostnamectl --set-hostname linux-console.net
7 hostnamectl -set-hostname linux-console.net
8 hostnamectl set-hostname linux-console.net
9 mount -t "ntfs" -o
10 fdisk -l
11 mount -t ntfs-3g /dev/sda5 /mnt
12 mount -t rw ntfs-3g /dev/sda5 /mnt
13 mount -t -rw ntfs-3g /dev/sda5 /mnt
14 mount -t ntfs-3g /dev/sda5 /mnt
15 mount man
16 man mount
17 mount -t -o ntfs-3g /dev/sda5 /mnt
18 mount -o ntfs-3g /dev/sda5 /mnt
19 mount -ro ntfs-3g /dev/sda5 /mnt
20 cd /mnt
...
上記の出力からわかるように、実行したすべてのコマンドのリストが表示されます。各行には、コマンドを入力した行を示す番号が表示されます。次のコマンドを使用して、そのコマンドを呼び出すことができます。
!#
# は、コマンドの実際の番号に変更する必要があります。よりよく理解するには、以下の例を参照してください。
!501
以下と同等です:
# history
3. ミッドナイトコマンダーを使用する
cd、cp、mv、rm などのコマンドの使用に慣れていない場合は、真夜中の命令です。これは、マウスも使用できる使いやすいビジュアル シェルです。
F1 – F12 キーのおかげで、さまざまなタスクを簡単に実行できます。下部の凡例を確認してください。ファイルまたはフォルダを選択するには、[挿入] ボタンをクリックします。
つまり、真夜中のコマンドは「mc」と呼ばれます。システムに mc をインストールするには、次のコマンドを実行するだけです。
$ sudo apt-get install mc [On Debian based systems]
# yum install mc [On Fedora based systems]
以下は、Midnight Commander を使用する簡単な例です。次のように入力して mc を開きます。
# mc
次に、TAB ボタンを使用してウィンドウを左と右に切り替えます。 LibreOffice ファイルがあるので、それを「ソフトウェア」フォルダに移動します。
ファイルを新しいディレクトリに移動するには、キーボードのF6 ボタンを押します。 MC が確認を求めます。
確認すると、ファイルは新しい宛先ディレクトリに移動されます。
詳細: Linux で Midnight Commander ファイル マネージャーを使用する方法
4. 特定の時間にコンピュータをシャットダウンする
勤務時間が終了してから数時間後にコンピュータをシャットダウンする必要がある場合があります。以下を使用して、特定の時間にコンピュータをシャットダウンするように設定できます。
$ sudo shutdown 21:00
これにより、指定した特定の時間にコンピュータをシャットダウンするように指示されます。特定の時間が経過した後にシャットダウンするようにシステムに指示することもできます。
$ sudo shutdown +15
そうすれば、 システムは15 分でシャットダウンされます。
5. 既知のユーザーに関する情報を表示する
簡単なコマンドを使用して、Linux システム ユーザーとそのユーザーに関するいくつかの基本情報を一覧表示できます。単純に使用します:
# lslogins
これにより、次の出力が得られるはずです。
UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS
0 root 0 0 Apr29/11:35 root
1 bin 0 1 bin
2 daemon 0 1 daemon
3 adm 0 1 adm
4 lp 0 1 lp
5 sync 0 1 sync
6 shutdown 0 1 Jul19/10:04 shutdown
7 halt 0 1 halt
8 mail 0 1 mail
10 uucp 0 1 uucp
11 operator 0 1 operator
12 games 0 1 games
13 gopher 0 1 gopher
14 ftp 0 1 FTP User
23 squid 0 1
25 named 0 1 Named
27 mysql 0 1 MySQL Server
47 mailnull 0 1
48 apache 0 1 Apache
...
6. ファイルの検索
ファイルの検索は、思ったほど簡単ではない場合があります。ファイルを検索するための良い例は次のとおりです。
# find /home/user -type f
このコマンドは、/home/user にあるすべてのファイルを検索します。 find コマンドは非常に強力なコマンドであり、より詳細な検索を行うためにさらに多くのオプションを渡すことができます。指定したサイズより大きいファイルを検索する場合は、次のコマンドを使用できます。
# find . -type f -size 10M
上記のコマンドは、現在のディレクトリから10 MB を超えるすべてのファイルを検索します。マシンの I/O が高くなる可能性があるため、Linux システムのルート ディレクトリからコマンドを実行しないようにしてください。
私が find と使用する最も頻繁に使用される組み合わせの 1 つは「exec」オプションです。これを使用すると、基本的に find コマンドの結果に対していくつかのアクションを実行できます。
たとえば、ディレクトリ内のすべてのファイルを検索し、そのアクセス許可を変更したいとします。これは次のようにして簡単に実行できます。
# find /home/user/files/ -type f -exec chmod 644 {} \;
上記のコマンドは、指定されたディレクトリ内のすべてのファイルを再帰的に検索し、 見つかったファイルに対してchmod コマンドを実行します。将来的には、このコマンドのさらに多くの使用法が見つかると思います。今のところは、Linux の「find」コマンドと使用法の 35 の例を読んでください。
7. 1 つのコマンドでディレクトリ ツリーを構築する
おそらく、mkdir コマンドを使用して新しいディレクトリを作成できることはご存知でしょう。したがって、新しいフォルダーを作成したい場合は、次のようなものを実行します。
# mkdir new_folder
しかし、そのフォルダー内に 5 つのサブフォルダー を作成したい場合はどうすればよいでしょうか? mkdir を 5 回 連続して実行するのは良い解決策ではありません。代わりに、次のように -p オプションを使用できます。
# mkdir -p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}
最終的に、new_folder に 5 つのフォルダーが配置されるはずです。
# ls new_folder/
folder_1 folder_2 folder_3 folder_4 folder_5
8. ファイルを複数のディレクトリにコピーする
ファイルのコピーは通常、cp コマンドを使用して実行されます。ファイルのコピーは通常次のようになります。
# cp /path-to-file/my_file.txt /path-to-new-directory/
ここで、そのファイルを複数のディレクトリにコピーする必要があると想像してください。
# cp /home/user/my_file.txt /home/user/1
# cp /home/user/my_file.txt /home/user/2
# cp /home/user/my_file.txt /home/user/3
これは少し不合理です。代わりに、単純な 1 行コマンドで問題を解決できます。
# echo /home/user/1/ /home/user/2/ /home/user/3/ | xargs -n 1 cp /home/user/my_file.txt
9. 大きなファイルの削除
場合によっては、ファイルが非常に大きくなることがあります。管理スキルが不十分なために、1 つのログ ファイルのサイズが250 GB を超えたケースを見たことがあります。このような場合、削除する必要のあるデータが非常に大量にあるため、rm ユーティリティを使用してファイルを削除するだけでは十分ではない可能性があります。この操作は「重い」操作となるため、避けるべきです。代わりに、非常に単純な解決策を使用できます。
# > /path-to-file/huge_file.log
もちろん、パスとファイル名を、ケースに合わせて正確に変更する必要があります。上記のコマンドは、単に空の出力をファイルに書き込みます。より簡単に言うと、システムに高い I/O を引き起こすことなくファイルを空にします。
10. 複数の Linux サーバーで同じコマンドを実行する
最近、読者の 1 人が LinuxSay フォーラムで、SSH を使用して複数の Linux ボックスに対して 1 つのコマンドを同時に実行する方法について質問しました。彼のマシンの IP アドレスは次のようになっていました。
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
10.0.0.5
そこで、この問題の簡単な解決策を紹介します。上に示したように、サーバーの IP アドレスを list.txt という名前の 1 つのファイルの下に収集します。次に、次を実行できます。
# for in $i(cat list.txt); do ssh user@$i 'bash command'; done
上記の例では、「ユーザー」をログインに使用する実際のユーザーに変更し、「bash コマンド」を実行する実際の bash コマンドに変更する必要があります。 。この方法は、マシンに対して SSH キーによるパスワードなしの認証を使用している場合に、ユーザーのパスワードを何度も入力する必要がなくなるため、より効果的に機能します。
Linux ボックスの設定によっては、いくつかの追加パラメータを SSH コマンドに渡す必要がある場合があることに注意してください。
結論
上記の例は非常に単純なものであり、Linux の美しさの一部と、他のオペレーティング システムでははるかに時間がかかるさまざまな操作を簡単に実行できる方法を理解するのに役立つことを願っています。