中レベルのユーザー向けに知っておくべき 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 コマンドは、指定されたファイル内で、指定された文字列または単語との一致を含む行を検索します。
この場合、「/etc/passwd」ファイル内の「tecmint」ユーザーを検索するために使用されます。
grep tecmint /etc/passwd
-i
オプションは、「/etc/passwd」 ファイル内で文字列「TECMINT」(大文字と小文字を区別しない)を検索するために使用されます。
grep -i TECMINT /etc/passwd
-r
オプションは、「/etc/hosts」 ファイル内の文字列「127.0.0.1」を再帰的に検索するために使用されます。
grep -r "127.0.0.1" /etc/hosts
23.マンコマンド
man コマンドはシステムのマニュアル ページャーで、コマンドとその使用法で可能なすべてのオプションに関するオンライン ドキュメントを提供します。
ほとんどすべての Linux コマンドには、対応するマニュアル ページが付属しています。たとえば、次の 'man cat' (cat コマンドのマニュアル ページ) と 'man ls' (コマンド ls のマニュアル ページ) は、指定されたコマンドのマニュアル ページを表示します。 。
man cat
man ls
24. psコマンド
ps コマンドは、 実行中のプロセスのステータスをPIDと呼ばれる固有のIDで示します。
ps
すべてのプロセスのステータスをプロセス ID および PID とともに一覧表示するには、オプション -A
を使用します。
ps -A
ps コマンドは、実行中のプロセスを知りたい場合や、プロセスを強制終了するために時々 PID が必要になる場合がある場合に非常に便利です。これを grep コマンドと組み合わせて使用すると、カスタマイズされた出力を見つけることができます。
ps -A | grep -i ssh
ここでは、ps が grep コマンドでパイプライン処理され、必要に応じてカスタマイズされた関連する出力が検索されます。
25.killコマンド
Linux の kill コマンドは、応答しないプロセスや無関係なプロセスを効率的に終了するために非常に重要です。プロセスを強制終了した後に再起動が必要になることが多い Windows とは異なり、Linux ではシステム全体を再起動せずにプロセスを強制終了して再起動できます。
たとえば、「firefox」プログラムが応答しない場合に終了する必要がある場合は、ps コマンドと grep を使用して、プロセス PID を確認し、「kill」 コマンドを使用してプロセスを停止します。
ps -A | grep -i firefox
kill 69881
プロセスを再実行するかシステムを起動するたびに、プロセスごとに新しいpidが生成され、次のコマンドを使用して現在実行中のプロセスとそのpidについて知ることができます。 「追伸」。
同じプロセスを強制終了する別の方法もあります。
pkill apache2
kill コマンドでは、シグナルを送信するためのジョブ ID/プロセス ID が必要ですが、pkill にはオプションがあります。パターンの使用、プロセス所有者の指定など。
26. whereis コマンド
whereis コマンドは、 コマンドのバイナリ、ソース、およびマニュアル ページを見つけるために使用されます。
たとえば、コマンド「ls」および「<」のバイナリ、ソース、およびマニュアル ページを見つけるには、strong> 殺す」。
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. aliasコマンド
エイリアス コマンドは、長いコマンドまたは頻繁に使用されるコマンドに名前を割り当てることができる組み込みのシェル コマンドです。
私はスペースを含む 5 文字で構成される「ls -l」コマンドを頻繁に使用します。したがって、'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コマンド
echo コマンドは、名前が示すように、標準出力にテキストをエコーします。これはシェルとは何の関係もなく、シェルは echo コマンドの出力を読み取りません。
ただし、対話型スクリプトでは、エコーによって端末を介してユーザーにメッセージが渡されます。これは、スクリプト作成、対話型スクリプトでよく使用されるコマンドの 1 つです。
echo "linux-console.net is a very good website"
linux-console.net is a very good website
ターミナルにパーソナライズされたウェルカム メッセージを表示する小さな対話型 bash スクリプトを作成してみましょう。
#!/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 コマンドは、Web からファイルを非対話型 (つまり、バックグラウンドで動作できる) ダウンロードするための無料のユーティリティです。 HTTP、HTTPS、FTP プロトコル、およびHTTP プロキシをサポートします。
たとえば、「Server-Health.sh」という名前のファイルを Web サイトからダウンロードするには、次のコマンドを使用します。
wget https://linux-console.net/wp-content/scripts/Server-Health.sh
37. マウントコマンド
mount コマンドは、それ自体をマウントしないファイルシステムをマウントするために使用されます。デバイスをマウントするには root 権限が必要です。
まず、ファイルシステムを接続した後に「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」がマウントされるファイルシステムです。この操作を実行するにはルートになり、すべてのファイル システムがマウントされている /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」は出力を「a.out」ではなく「Hello」ファイルに送信します。
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 は世界で頻繁に使用されているプログラミング言語の 1 つで、高速、安全、信頼性が高いと考えられています。現在の Web ベースのサービスのほとんどは 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 に関するあまり知られていない事実についての興味深いトピックについては、近々またお話しする予定です。