一般的に使用される Linux コマンドを 1 つの記事で詳しく説明

よく使用されるシステムコマンド

  1. echo [オプション] [出力コンテンツ]: コンテンツの出力に使用されます

    1. -n: 出力後に行末の改行記号を解除します(つまり、内容の出力後に改行しません)。

    [root@linuxprobe network-scripts]# echo this is a test
    this is a test
    [root@linuxprobe network-scripts]# echo "the root path is $HOME"
    the root path is /root

  2. ifconfig はネットワーク デバイスの表示と構成に使用されます

  3. ctrl+c: 現在のプログラムの実行を強制的に中断します。

  4. ctrl+z: タスクを中止します (一時停止の意味) が、タスクは終了しておらず、まだ処理中であり、一時停止状態が維持されているだけです。

  5. top: 各プロセスの CPU 使用率を表示するコマンド。デフォルトでは、CPU 使用率で並べ替えられます。

作業ディレクトリ切り替えコマンド

  1. pwd は、ユーザーが現在いるディレクトリを表示します。

  2. cd ユーザーは作業パスを切り替えます。

    1. cd - 最後にいたディレクトリに戻ります

    2. cd .. 上位ディレクトリに入る

    3. cd ~ 現在のユーザーのホームディレクトリに戻ります

  3. ls はディレクトリ内のファイル情報を表示します

    1. ls -a すべてのファイルを表示します (隠しファイルを含む)

    2. ls -l ファイルの属性、サイズ、その他の情報を表示します

テキスト編集コマンド

  1. cat : プレーン テキスト ファイル (内容が少ない) を表示します

    1. cat -n はテキストコンテンツを表示するときに行番号を表示します

  2. 詳細 プレーン テキスト ファイルを表示します (コンテンツが多い場合は、スペース バーまたは Enter キーを使用してページをめくることができます)

  3. head プレーンテキスト文書の最初の N 行を表示します

    [root@linuxprobe ~]# head -20 initial-setup-ks.cfg
    #version=RHEL7
    # X Window System configuration information
    xconfig  --startxonboot
    ​
    # License agreement
    eula --agreed

  4. tail プレーン テキスト ドキュメントの最後の N 行を表示するか、コンテンツを継続的に更新します

    1. tail -n 20 ファイル名: ドキュメント内のデータの最後の 20 行を表示します。

      [root@linuxprobe ~]# tail -20 initial-setup-ks.cfg
      # Partition clearing information
      clearpart --none --initlabel 
      ​
      %packages

    2. tail -f filename: ファイルの内容を継続的に更新します。

      [root@linuxprobe ~]# tail -f /var/log/messages
      Feb  8 20:09:03 linuxprobe dbus[1039]: [system] Successfully activated service 'org.freedesktop.PackageKit'
      Feb  8 20:10:01 linuxprobe systemd: Starting Session 3 of user root.
      Feb  8 20:10:01 linuxprobe systemd: Started Session 3 of user root.

  5. tr ユーザーはテキスト ファイル内の文字列を置き換えます

    [root@linuxprobe ~]# cat anaconda-ks.cfg|tr [a-z] [A-Z]
    #VERSION=RHEL7
    # SYSTEM AUTHORIZATION INFORMATION
    AUTH --ENABLESHADOW --PASSALGO=SHA512
  6. wc ユーザーは、指定されたテキストの行数、単語数、およびバイト数をカウントします。

    1. wc -l は行数のみを表示します

    2. wc -w は単語数のみを表示します

    3. wc -c はバイト数のみを表示します

    [root@linuxprobe ~]# wc -l /etc/passwd
    38 /etc/passwd
  7. stat ファイルの特定のストレージ情報と時刻を表示します。

  8. Cut [parameter] text: 列ごとにテキスト文字列を抽出するために使用されます。

    [root@linuxprobe ~]# head -n 2 /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    [root@linuxprobe ~]# cut -d: -f1 /etc/passwd
    root
    bin
    daemon
    adm

  9. diff は、複数のテキスト間の差異を比較するために使用されます。

    1. diif -brief は 2 つのファイルが同じかどうかを確認するために使用されます

    2. diff -c 複数のファイル間の差異を詳細に比較します。

ファイルディレクトリ管理コマンド

  1. タッチすると空のファイルが作成されるか、ファイルの時刻が設定されます

    1. touch ファイル名: 空のファイルを作成します

    2. touch -a は読み取り時間のみを変更します

    3. touch -m は変更時間のみを変更します

    4. touch -d は読み取り時間と変更時間の両方を変更します

  2. mkdir は空のディレクトリを作成します

    1. mkdir -p はネストされたフォルダーを再帰的に作成します

      [root@linuxprobe ~]# mkdir -p a/b/c
      [root@linuxprobe ~]# cd a
      [root@linuxprobe a]# ls
      b

  3. cp [オプション] ソースファイル ターゲットファイル: ファイルまたはディレクトリをコピーします

    1. cp -p 元のファイル属性を保持します

    2. cp -d ファイルがリンクの場合、リンクされたファイルの属性が保持されます。

    3. cp -r 再帰的連続コピー、ディレクトリに使用

    4. cp -i 対象ファイルが存在する場合、上書きするかどうかを尋ねます

    5. cp -a は -pdr と同等です (pdr は上記のオプション パラメータです)

      [root@linuxprobe ~]# cp hello-world.txt first-test.txt
      [root@linuxprobe ~]# ls
      a  anaconda-ks.cfg  Desktop  Documents  Downloads  first-test.txt  hello-world.txt 
       
  4. mv [オプション] ソース ファイル [宛先パス|宛先ファイル名]: ファイルの切り取りまたはファイル名の変更に使用されます。

    [root@linuxprobe ~]# mv first-test.txt second.txt
    [root@linuxprobe ~]# ls
    a  anaconda-ks.cfg  Desktop  Documents  Downloads  hello-world.txt  initial-setup-ks.cfg  linuxtest  Music  Pictures  Public  second.txt

  5. rm はファイルまたはディレクトリを削除するために使用されます

    1. rm -f ファイルを強制的に削除します (デフォルトでは、削除するかどうかを尋ねられます)

    2. rm -r はディレクトリを再帰的に削除します

    [root@linuxprobe ~]# rm second.txt 
    rm: remove regular empty file ‘second.txt’? n
    [root@linuxprobe ~]# ls
    a  anaconda-ks.cfg  Desktop  Documents  Downloads  hello-world.txt  initial-setup-ks.cfg  linuxtest  Music  Pictures  Public  second.txt  Templates  Videos
    [root@linuxprobe ~]# rm -f second.txt 
    [root@linuxprobe ~]# ls
    a  anaconda-ks.cfg  Desktop  Documents  Downloads  hello-world.txt  initial-setup-ks.cfg  linuxtest  Music  Pictures  Public  Templates  Videos

  6. file はファイルの種類を表示するために使用されます

    [root@linuxprobe ~]# file anaconda-ks.cfg 
    anaconda-ks.cfg: ASCII text
    [root@linuxprobe ~]# file /dev/sda
    /dev/sda: block special

パッケージ化、圧縮、検索コマンド

  1. tar [オプション] [ファイル]: ファイルのパック、圧縮、または解凍

    1. tar -c は圧縮ファイルを作成します

    2. tar -x は圧縮ファイルを解凍します

    3. tar -t 圧縮パッケージ内のファイルを表示します

    4. tar -z (Gzip 圧縮または解凍)

    5. tar -j (bzip2 圧縮または解凍)

    6. tar -v は圧縮または解凍プロセスを表示します

    7. tar -f ターゲットファイル名

    8. tar -p は、元のファイルの権限と属性を保持します。

    9. tar -P は絶対パスを使用して圧縮します

    10. tar -C は解凍ディレクトリを指定します

    例: /etc ディレクトリを gzip 形式で圧縮し、etc.tar.gz という名前を付けます。

    [root@linuxprobe ~]# tar -czvf etc.tar.gz /etc
    tar: Removing leading `/' from member names
    /etc/
    /etc/fstab
    /etc/crypttab
    /etc/mtab
    /etc/fonts/
    ......
    [root@linuxprobe ~]# ls
    a  anaconda-ks.cfg  Desktop  Documents  Downloads  etc.tar.gz  hello-world.txt
      

    上記でパッケージ化された圧縮ファイルを指定したディレクトリ /root/etc に解凍します。

    [root@linuxprobe ~]# tar -czvf etc.tar.gz /etc
    tar: Removing leading `/' from member names
    /etc/
    /etc/fstab
    /etc/crypttab
    /etc/mtab
    /etc/fonts/
    /etc/fonts/conf.d/
    ......

  2. grep [オプション] [ファイル]: テキスト内のキーワード検索を実行し、一致した結果を表示するために使用されます。

    1. -b 実行可能ファイル (バイナリ) をテキスト ファイル (txt) として検索します

    2. -c は見つかった行数のみを表示します

    3. -大文字と小文字を無視します

    4. -n は行数を表示します

    5. -v 逆選択。キーワードにヒットしない行を実際にリストします。

      [root@linuxprobe ~]# grep /sbin/nologin /etc/passwd
      bin:x:1:1:bin:/bin:/sbin/nologin
      daemon:x:2:2:daemon:/sbin:/sbin/nologin
      adm:x:3:4:adm:/var/adm:/sbin/nologin
      lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

  3. find [検索パス] 検索条件操作: 指定した条件に従ってファイルを検索します。

    1. -name 一致する名前

    2. -perm 一致権限

    3. -user が所有者と一致する

    4. -group はすべてのグループに一致します

    5. -mtime -n +n は、変更されたコンテンツの時刻と一致します (-n は入力された期間内を意味し、+n は n 日前を意味します)

    6. -atime -n +n はアクセス時間に一致します

    7. --type b/d/c/p/l/f はファイル タイプに一致します (文字はデバイス、ディレクトリ、キャラクタ デバイス、パイプ、リンク ファイル、テキスト ファイルを順に表します)

    8. -prune ファイルを無視する

    9. 検索結果をさらに処理するための -exec コマンド

    [root@linuxprobe ~]# find /etc -name "host*" -print
    /etc/avahi/hosts
    /etc/host.conf
    /etc/hosts
    /etc/hosts.allow

リダイレクトコマンド

コンセプト

標準入力(STDIN、ファイル記述子 0):

デフォルトでは、入力はキーボードから行われますが、他のファイルやコマンドから入力することもできます。

標準出力(STDOUT、ファイル記述子は 1):

デフォルトの出力は画面に出力されますが、ファイルに出力することもできます。

エラー出力(STDERR、ファイル記述子は 2):

デフォルトの画面出力

リダイレクトコマンド

  1. 入力リダイレクト

    1. command <file: ファイルをコマンドの標準入力として使用します

    2. コマンド << Decomposer: 標準入力から読み取り、区切り文字が見つかるまで停止します

    3. コマンド <file1>file2: file1 はコマンドへの標準入力として機能し、標準出力は file2 に送られます。

  2. 出力リダイレクト

    1. コマンド > ファイル: ファイルへの標準出力 (元のファイルの内容をクリア)

    2. コマンド 2 > ファイル: エラーをファイルに出力します (元のファイルの内容をクリアします)

    3. コマンド >> ファイル: ファイルへの標準出力 (元のファイルの内容を追加)

    4. コマンド 2 >> ファイル: エラーをファイルに出力します (元のファイルの後に追加します)

    5. Command>>File2>&1: 標準出力とエラー出力をファイルに書き込みます (元のコンテンツに追加した後)

    6. コマンド &>> ファイル: e と同じ機能

    標準出力モードの場合、ファイル記述子 1 は省略して書き込めませんが、エラー出力用のファイル記述子 2 は記述する必要があります。

    例: 情報をファイルに出力する

    [root@linuxprobe ~]# man bash > hello.txt
    [root@linuxprobe ~]# cat hello.txt 
    BASH(1)                                                                 General Commands Manual                                                                 BASH(1)
    ​
    NAME
           bash - GNU Bourne-Again SHell
    [root@linuxprobe ~]# echo "welcome to my world" > hello.txt 
    [root@linuxprobe ~]# cat hello.txt 
    welcome to my world
    [root@linuxprobe ~]# ls -l etc.tar.gz
    -rw-r--r--. 1 root root 8596806 Feb 13 14:50 etc.tar.gz
    [root@linuxprobe ~]# ls -l etc.tar.gz > hello.txt 
    [root@linuxprobe ~]# cat hello.txt 
    -rw-r--r--. 1 root root 8596806 Feb 13 14:50 etc.tar.gz

    エラーメッセージをファイルに書き込む

    [root@linuxprobe ~]# ls -l linuxprobe
    ls: cannot access linuxprobe: No such file or directory
    [root@linuxprobe ~]# ls -l linuxprobe 2 > hello.txt 
    ls: cannot access linuxprobe: No such file or directory
    ls: cannot access 2: No such file or directory
    [root@linuxprobe ~]# ls -l linuxprobe 2> hello.txt 
    [root@linuxprobe ~]# cat hello.txt 
    ls: cannot access linuxprobe: No such file or directory

  3. パイプコマンド

    1. コマンド A | コマンド B: コマンド A によって出力された通常のデータをコマンド B の標準入力として扱います

    例:ログイン制限されているユーザーを検索し、テキスト行数をカウントする

    [root@linuxprobe ~]# grep "/sbin/nologin" /etc/passwd | wc -l
    33

  4. コマンドラインのワイルドカード

    1. *: 0 個以上の文字の一致を表します

    2. ?: 単一の文字に一致します

    3. [0-9]: 0 ~ 9 の単一の数字と一致します。

    4. [abc]: a、b、c の 3 文字のいずれかと一致します。

    [root@linuxprobe ~]# ls -l /dev/sda*
    brw-rw----. 1 root disk 8, 0 Feb 13  2022 /dev/sda
    brw-rw----. 1 root disk 8, 1 Feb 13  2022 /dev/sda1
    brw-rw----. 1 root disk 8, 2 Feb 13  2022 /dev/sda2
    [root@linuxprobe ~]# ls -l /dev/sda?
    brw-rw----. 1 root disk 8, 1 Feb 13  2022 /dev/sda1
    brw-rw----. 1 root disk 8, 2 Feb 13  2022 /dev/sda2
    [root@linuxprobe ~]# ls -l /dev/sda[0-9]
    brw-rw----. 1 root disk 8, 1 Feb 13  2022 /dev/sda1
    brw-rw----. 1 root disk 8, 2 Feb 13  2022 /dev/sda2
    [root@linuxprobe ~]# ls -l /dev/sda[135]
    brw-rw----. 1 root disk 8, 1 Feb 13  2022 /dev/sda1

  5. よく使用されるエスケープ文字

    1. \: バックスラッシュの後の変数を単純な文字列にします

    2. ": 中のすべての変数を単純な文字列にエスケープします。

    3. "": エスケープせずに変数の属性を保持します。

    4. ``: コマンド実行後の結果を返す

    [root@linuxprobe ~]# PRICE=5
    [root@linuxprobe ~]# echo "Price is $PRICE"
    Price is 5
    [root@linuxprobe ~]# echo "Price is \$$PRICE"
    Price is $5
    [root@linuxprobe ~]# echo `uname -a`
    Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux

  6. 重要な環境変数

    1. HOME: ユーザーのホームディレクトリ

    2. SHELL: ユーザーが使用しているシェルインタープリタの名前

    3. HISTSIZE: 出力されたコマンド履歴レコードの数

    4. HISTFILESIZE: 保存された履歴コマンド レコードの数

    5. MAIL: 電子メールの保存アドレス

    6. LANG: システム言語、言語ファミリー名

    7. RANDOM: 乱数を生成します

    8. PS1: Bash インタープリタ プロンプト

    9. PATH: インタプリタがユーザー実行コマンドを検索するパスを定義します。

    10. エディター: ユーザーのデフォルトのテキストエディター

    [root@linuxprobe ~]# echo $HOME
    /root
    [root@linuxprobe ~]# su - linuxprobe
    su: user linuxprobe does not exist
    [root@linuxprobe ~]# echo $HOME
    /root
    [root@linuxprobe ~]# su - snow
    Last login: Sun Feb  6 19:28:32 CST 2022 on :0
    [snow@linuxprobe ~]$ echo $HOME
    /home/snow

vimエディタ

Vim 操作の 3 つのモード

  1. コマンドモード: カーソルの移動、コピー、貼り付け、削除、テキストの検索などを制御します。

  2. 入力モード: 通常のテキスト入力

  3. 最終行モード: ドキュメントを保存または終了し、編集環境を設定します。

a/i は、それぞれカーソルの 1 桁後ろの入力モードとカーソルの現在位置に切り替えます。

o カーソルの下に空行を作成します

Vim でよく使用されるコマンド

  1. コマンドモードでよく使うコマンド

    1. dd はカーソル下の行を削除します

    2. 5dd はカーソル位置の 5 行を削除します。

    3. yy はカーソルが置かれている行全体をコピーします

    4. 5yy はカーソルから 5 行をコピーします

    5. n は、検索コマンドで見つかった次の文字列を表示します。

    6. N は、検索コマンドで見つかった前の文字列を表示します。

    7. u 前の操作を元に戻す

    8. p 以前に削除した (dd) またはコピーした (yy) データをカーソルの後ろに貼り付けます

  2. 最終行モードでよく使用されるコマンド

    1. :w保存

    2. :q 終了

    3. :q! 強制終了 (ドキュメントへの変更を破棄)

    4. :wq! 強制的に保存して終了します

    5. :set nu は行番号を表示します

    6. :set nonu は行番号を表示しません

    7. :コマンド実行変更コマンド

    8. :整数でこの行にジャンプします

    9. ?String テキストの下から上に文字列を検索します。

    10. /string は、テキストを上から下に向かって文字列を検索します。

参考文献

  1. 初心者向けチュートリアル
  2. 「Linux はこう学ぶべきだ」Liu Xun

おすすめ

転載: blog.csdn.net/weixin_40709965/article/details/122932373