ウェブサイト検索

中級者のための知っておくべき20の高度なLinuxコマンド


あなたは最初の記事「初心者のための便利なコマンド」が非常に役立つと感じたかもしれませんが、これは新しいユーザーのために意図されていました。この文章は中級者および上級者向けに調整されています。

検索のカスタマイズ、プロセスの理解とその終了方法、Linuxターミナルを生産性のために最適化すること、Unix系環境でのC、C++、Javaプログラムのコンパイルなどのトピックを扱っています。

21. find コマンド

findコマンドは、指定されたディレクトリ内のファイルを検索するために使用され、親ディレクトリから始めてサブディレクトリへと階層的に移動します。

find -name *.sh 

-name オプションは検索を大文字と小文字を区別します。-iname オプションを使用すると、拡張子の大文字と小文字のパターンが異なるファイルを大文字と小文字を区別せずに検索できます。

* はワイルドカードで、.sh 拡張子を持つすべてのファイルを検索します。出力をカスタマイズするために、ファイル名やファイル名の一部を使用できます。

find -iname *.SH

以下のコマンドは、現在のディレクトリおよびそのサブディレクトリ(マウントされたデバイスを含む)内の全てのファイルの拡張子が「.tar.gz」であるものを検索するために使用されます。

find -name *.tar.gz 

22. grepコマンド

grepコマンドは、指定されたファイル内で与えられた文字列や単語に一致する行を検索します。

この場合、‘tecmint‘ユーザーを‘/etc/passwd‘ファイル内で検索するために使用されます。

grep tecmint /etc/passwd 

-iオプションは、“TECMINT”という文字列を(大文字と小文字を区別せずに)‘/etc/passwd‘ファイル内で検索するために使用されます。

grep -i TECMINT /etc/passwd 

-rオプションは、“127.0.0.1”という文字列を‘/etc/hosts‘ファイル内で再帰的に検索するために使用されます。

grep -r "127.0.0.1" /etc/hosts 

23. 男の命令

そのコマンドはシステムのマニュアルページであり、コマンドのすべての可能なオプションとその使用法に関するオンライン文書を提供します。

ほとんどすべてのLinuxコマンドには、それに対応するマニュアルページがあります。例えば、次の「man cat」(catコマンドのマニュアルページ)や「man ls」(lsコマンドのマニュアルページ)は、指定されたコマンドのマニュアルページを表示します。

man cat
man ls

24. psコマンド

psコマンドは、ユニークなIDであるPIDを持つ実行中のプロセスの状態を表示します。

ps

すべてのプロセスの状態をプロセスIDとPIDとともにリストするには、オプション-Aを使用してください。

ps -A

ps コマンドは、どのプロセスが実行されているかを知りたいとき、またはプロセスを強制終了させるために PID が必要になることがある場合に非常に便利です。grep コマンドと組み合わせて、カスタマイズされた出力を見つけることができます。

ps -A | grep -i ssh

ここではpsがgrepコマンドとパイプラインで接続されて、私たちの必要に応じたカスタマイズされた関連出力を見つけます。

25. キルコマンド

Linuxにおけるkillコマンドは、応答しないプロセスや無関係なプロセスを効率的に終了させるために重要です。プロセスを終了させると再起動が必要になることが多いWindowsとは異なり、Linuxではシステム全体を再起動せずにプロセスを終了させて再起動することができます。

例えば、反応しない‘firefox‘ プログラムを終了する必要がある場合、ps コマンドと grep を組み合わせてプロセスのPIDを見つけ、次に ‘kill‘ コマンドを使用してプロセスを停止することができます。

ps -A | grep -i firefox
kill 69881

プロセスを再実行するたびに、またはシステムを起動するたびに、各プロセスの新しいpidが生成されます。現在実行中のプロセスとそのpidについては、コマンドpsを使用することで確認できます。

同じプロセスを終了させる別の方法があります。

pkill apache2

kill コマンドは、シグナルを送信するために ジョブ ID/プロセス ID を必要とするのに対し、pkill ではパターンを使用したり、プロセスの所有者を指定するオプションがあります。

26. whereisコマンド

whereisコマンドは、コマンドのバイナリ、ソース、およびマニュアルページを見つけるために使用されます。

例えば、コマンド「ls」や「kill」のバイナリ、ソース、およびマニュアルページを見つけるためには。

whereis ls 
whereis kill

whereis コマンドは、バイナリが手動で編集されるためにインストールされている場所を知るために便利です。

27. systemctl コマンド

systemctlコマンドは、サービスまたはプログラムの開始、停止、再起動、有効化、無効化、およびステータスの確認を制御します。

sudo systemctl start sshd
sudo systemctl stop sshd
sudo systemctl restart sshd
sudo systemctl enable sshd
sudo systemctl disable sshd
sudo systemctl status sshd

28. エイリアス コマンド

エイリアスコマンドは、長いコマンドやよく使うコマンドに名前を付けることができる組み込みシェルコマンドです。

私は頻繁に「ls -l」コマンドを使用します。これはスペースを含めて5文字で構成されています。したがって、私はそれに「l」というエイリアスを作成しました。

alias l='ls -l'

動作するかどうか確認してみてください。

l

エイリアス 'l' を削除するには、以下の ‘unalias‘ コマンドを使用します。

unalias l

「l」がまだエイリアスであるかどうかをチェックします。

l

l: command not found

特定の重要なコマンドに別の重要なコマンドのエイリアスを作成することで、Linuxコマンドに少しの楽しさを加えること。

alias cd='ls -l' (set alias of ls -l to cd)
alias su='pwd'   (set alias of pwd to su)

さあ、友達がディレクトリを変更しようとしてcdコマンドを入力したときに、代わりにディレクトリ一覧が表示されるというユーモアを想像してみてください。同様に、もし彼が「su」を試みたら、作業ディレクトリの場所しか見ることができません。

後述のように、後でunaliasコマンドを使用してエイリアスを削除することができます。

29. dfコマンド

df コマンドはファイルシステムのディスクスペースの使用状況に関する情報を表示するために使用されます。各マウントされたファイルシステムの合計、使用済み、利用可能なスペースを表示します。

df -h

-hオプションは、人間が読める形式でディスクスペースの使用状況を表示するために使用され、システム上の各マウントされたファイルシステムのサイズをギガバイト(GB)やメガバイト(MB)で示します。

コマンド30

duコマンドは、特定のファイルやディレクトリが占めるディスクスペースの合計、及びそのサブディレクトリが使用するスペースを含む、ファイルやディレクトリのディスクスペース使用量を表示するために使用されます。

du -h

コマンドの -h オプションは、ファイルの使用状況を人間が読みやすい形式で表示するために使用され、サイズはギガバイト(GB)およびメガバイト(MB)で示されます。

31. rmコマンド

rmコマンドはremoveの略で、ファイルシステムからファイルやディレクトリを永久に削除するために使用されます。

ファイルを削除する基本的な構文は:

rm file

ディレクトリを削除するための基本構文は次のとおりです:

rm -rf directory

-r(再帰的にディレクトリとその内容を削除)および -f(確認のためのプロンプトなしでファイルを強制的に削除)です。

"rm -rf" コマンドは破壊的なコマンドです。誤って間違ったディレクトリで実行すると、すべてのファイルとディレクトリ自体が永久に失われます。

32. エコーコマンド

エコーコマンドは、その名前が示すように、標準出力にテキストをエコーします。シェルとは何の関係もなく、シェルはエコーコマンドの出力を読みません。

しかし、インタラクティブスクリプトでは、エコーがメッセージをターミナルを介してユーザーに伝えます。これは、スクリプトやインタラクティブスクリプティングで一般的に使用されるコマンドの一つです。

echo "linux-console.net is a very good website" 

linux-console.net is a very good website

ターミナルに個別のウェルカムメッセージを表示する小さなインタラクティブなバッシュスクリプトを作成しましょう。

#!/bin/bash

echo "Welcome to the Interactive Welcome Script!"
echo "----------------------------------------"

Prompt the user to enter their name
echo "Please enter your name:"
read name

Display a personalized welcome message
echo "Hello, $name! Welcome to the interactive script. Have a great day!"

このスクリプトをファイルに保存します。たとえば、welcome_script.shのようにし、コマンドを使用してスクリプトを実行可能にします。

chmod +x welcome_script.sh

次に、ターミナルに入力して実行できます。

./welcome_script.sh

33. passwd コマンド

passwdコマンドは、sudo権限で実行されたときに自分のパスワードまたは他のユーザーのパスワードを変更するために使用されます。

例えば、現在のユーザーのパスワードを変更するには、次のように入力します。

passwd

sudo権限がある場合は、ユーザー名を指定して別のユーザーのパスワードを変更できます。

sudo passwd username

34. lprコマンド

lpr コマンドは印刷ジョブをプリンターに送信するために使用されます。それはファイルをプリンターの印刷キューに送信し、ユーザーがコマンドラインからドキュメントを印刷できるようにします。

lpr document.txt

'lpq'コマンドを使用すると、プリンターの状態(稼働中かどうか)と、印刷待ちのジョブ(ファイル)を確認できます。

35. cmp コマンド

cmp コマンドは、任意のタイプの 2 つのファイルを比較し、その結果を標準出力に書き出します。既定では、cmpはファイルが同じ場合に 0 を返します; 異なる場合、最初の違いが発生したバイトおよび行番号が報告されます。

cmp コマンドの例を示すために、2 つのファイルを考えてみましょう:

cat file1.txt

Hi My name is Tecmint
cat file2.txt

Hi My name is tecmint [dot] com

さて、2つのファイルを比較して、コマンドの出力を見てみましょう。

cmp file1.txt file2.txt 

file1.txt file2.txt differ: byte 15, line 1

36. wgetコマンド

wgetコマンドは、ウェブからファイルを非対話的(つまり、バックグラウンドで動作できる)にダウンロードするための無料ユーティリティです。HTTP、HTTPS、FTPプロトコル、及びHTTPプロキシをサポートしています。

たとえば、ウェブサイトから「Server-Health.sh」という名前のファイルをダウンロードするには、次のようにします:

wget https://linux-console.net/wp-content/scripts/Server-Health.sh

37. マウントコマンド

mountコマンドは自動でマウントされないファイルシステムをマウントするために使用されます。デバイスをマウントするには、ルート権限が必要です。

最初に、ファイルシステムを接続した後に「lsblk」を実行してデバイスを特定し、デバイスに割り当てられた名前をメモしてください。

lsblk 

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT 
sda      8:0    0 931.5G  0 disk 
├─sda1   8:1    0 923.6G  0 part / 
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0   7.9G  0 part [SWAP] 
sr0     11:0    1  1024M  0 rom  
sdb      8:16   1   3.7G  0 disk 
└─sdb1   8:17   1   3.7G  0 part

この画面から、私は4 GBのペンドライブを接続したことが明らかであり、そのため‘sdb1‘が私のマウントされるファイルシステムです。この操作を行うにはrootユーザーになる必要があり、すべてのファイルシステムがマウントされている/devディレクトリに移動してください。

su
cd /dev

参照用に関連する名前のディレクトリを作成してください。

mkdir usb

今、ファイルシステム「sdb1」をディレクトリ「usb」にマウントしてください。

mount /dev/sdb1 /dev/usb

今、ターミナルまたはX-windowsシステムから/dev/usbに移動し、マウントされたディレクトリからファイルにアクセスできます。

38. gccコマンド

gccは、Linux環境におけるc言語の組み込みコンパイラです。シンプルなcプログラムを作成し、デスクトップにHello.cとして保存してください(必ず.c拡張子を付けることを忘れないでください)。

#include <stdio.h>
int main()
{
  printf("Hello world\n");
  return 0;
}

次に、それをコンパイルして実行します。

gcc Hello.c
./a.out 

Hello world

Cプログラムをコンパイルすると、出力が自動的に新しいファイル「a.out」に生成され、Cプログラムをコンパイルするたびに同じファイル「a.out」が修正されます。

したがって、コンパイル中に出力ファイルを定義することは良いアドバイスです。これにより、出力ファイルを上書きするリスクがありません。

gcc -o Hello Hello.c

ここで「-o」は出力を「Hello」ファイルに送信し、「a.out」には送信しません。

39. g++ コマンド

g++は、最初のオブジェクト指向プログラミング言語であるC++の内蔵コンパイラです。シンプルなC++プログラムを作成し、デスクトップにAdd.cppとして保存します(必ず.cpp拡張子を付けることを忘れないでください)。

#include <iostream>

using namespace std;

int main() 
    {
          int a;
          int b;
          cout<<"Enter first number:\n";
          cin >> a;
          cout <<"Enter the second number:\n";
          cin>> b;
          cin.ignore();
          int result = a + b;
          cout<<"Result is"<<"  "<<result<<endl;
          cin.get();
          return 0;
     }

次に、それをコンパイルして実行します。


g++ Add.cpp
./a.out

Enter the first number:
...
...

C++プログラムをコンパイルすると、出力は自動的に新しいファイル「a.out」に生成され、C++プログラムをコンパイルするたびに同じファイル「a.out」が変更されます。

したがって、コンパイル中に出力ファイルを定義することは良いアドバイスです。これにより、出力ファイルを上書きするリスクがありません。

g++ -o Add Add.cpp
./Add

Enter the first number:
...
...

40. javaコマンド

Java は世界で非常に使用されているプログラミング言語の一つであり、迅速で安全かつ信頼性が高いと見なされています。今日のほとんどのウェブベースのサービスはJava上で動作しています。

次のテストをファイルに貼り付けて、tecmint.javaという名前のシンプルなJavaプログラムを作成します(‘.java‘という拡張子は必須です)。

class tecmint {
  public static void main(String[] arguments) {
    System.out.println("Tecmint ");
  }
}

次に、それをコンパイルして実行します。


javac tecmint.java
java tecmint

ほとんどすべてのディストリビューションにはgccコンパイラが付属しており、大多数のディストロにはG++およびJavaコンパイラが内蔵されていますが、一部にはない場合もあります。必要なパッケージはaptまたはyumでインストールできます。

貴重なコメントとここで見たい記事の種類をお忘れなく言及してください。私はすぐに、Linuxのあまり知られていない事実についての興味深いトピックで戻ってきます。

関連記事: