Contents

Shellでよく使うコマンド一覧

   Feb 11, 2023     8 min read

基本的な操作

コマンド用途詳細
cdディレクトリの移動詳細をみる
lsディレクトリの中身を確認する詳細をみる
treeディレクトリ構造を確認する詳細をみる
clear画面をクリアする詳細をみる
helpコマンドの一覧や詳細を表示する詳細をみる



ファイル操作関連

コマンド用途詳細
コマンドオプション 
catファイルの内容を確認する詳細をみる
touchファイルのタイムスタンプを変更する・ファイルを作成する詳細をみる
vimファイルの内容を編集するエディターを起動詳細をみる
mvファイルの移動、もしくはディレクトリ名の変更詳細をみる
cpファイルをコピーする詳細をみる
mkdirディレクトリを新規作成詳細をみる
rmファイルを削除する詳細をみる
rmdirディレクトリを削除する詳細をみる
renameファイルやディレクトリ名の変更詳細をみる



ネットワーク系

コマンド用途詳細
ifconfigPCのIPアドレス等の情報を確認する詳細をみる
ping指定したIPアドレスとの通信確認詳細をみる
traceroute通信相手までの経路確認詳細をみる



その他

コマンド用途詳細
startコマンドプロンプトを別ウィンドウで開始詳細をみる
exitコマンドプロンプトを閉じる詳細をみる
date日付の表示、設定をする。詳細をみる
chcpコマンドプロンプトの文字コードを確認、設定する。詳細をみる



コマンド使用方法

cd

  • 指定したパスに移動する
    cd [移動したいディレクトリーパス]
    
  • 現在のディレクトリから一つ上位のディレクトリに移動する
    cd ../
    
  • 現在のディレクトリからドライブ直下に直接移動する
    cd --
    
  • 今いるディレク(HOGE1)の一つ階層が上の別のフォルダー(HOGE2)へ移動
    cd ../hoge2
    

    ll

  • フォルダーの中身を確認する。
    ls
    
  • 長いフォーマットで表示する。
    ls -l
    ll
    

    ※llコマンドでも可能
    【Linux】llコマンド(ls -lコマンド)の表示の見方

  • ドットファイル(隠しファイル)を表示する。
    ls -a
    ll -al
    


  • 並べ替え関係のオプション

    短いオプション長いオプション意味
    -t ファイルの更新日が新しい順に表示する(「-lc」が併せて指定されている場合は「ctime」順、「-lu」が併せて指定されている場合は最終アクセス日順で表示)
    -S ファイルサイズの大きい順に並べる
    -–group-directories-first先にディレクトリの一覧を表示してからファイルを一覧表示する(「–sort=none」「-U」と併用した場合は無効)
    -–sort=WORD名前順の代わりに「WORD」で指定した順で並べ替える(例:「–sort=time」で更新日順。WORDが「none」は「-U」相当、「extension」は「-X」相当、「size」は「-S」相当、「time」は「-t」相当、「version」は「-v」相当)
    -v 自然な数字(version)順でソートする
    -X 拡張子のアルファベット順にソートする
    -r–reverse並び順を反転させる
    -U ファイルを並べ替えず、ディレクトリに含まれている要素順で表示する
    -f ファイルを並べ替えず、ディレクトリ情報のままで表示する(「-aU」が有効になり、「–color」が無効になる)

tree

※デフォルト状態では、treeコマンドは利用できません。

clear

  • 画面の表示内容をクリアする
    clear
    

help

  • コマンドの一覧を表示する。
    help
    
  • コマンドの使い方を表示する。
    help [コマンド名]
    

cat

  • ファイルの中身を確認
    cat [オプション] [ファイル名]
    
  • catコマンドでファイルの中身を連結させる
    cat hoge1.txt hoge2.txt
    
  • catコマンドの主なオプションたち | オプション | 説明 | | ———- | ——————————– | | -n | 行番号を表示する | | -b | 空白行を飛ばして行番号を表示する | | -A | 非表示文字を表示する | | -s | 連続した空白行を1行にする | | -E | 各行の最後に”$”を付加する |

touch

  • ファイルhoge.datのタイムスタンプを現在にする (ファイルが存在しない場合新規作成される)
    touch hoge.dat
    
  • ファイルの新規作成 (ファイルが存在する場合タイムスタンプが現在に更新される)
    touch hoge1.dat
    
  • ファイルhoge1.datのタイムスタンプを2022年9月20日20:30に指定する
    touch -d "2022-9-20 20:30" a.dat
    
  • ファイルを新規作成しない
    touch -c [ファイル名]
    
  • 他のファイルのタイムスタンプに合わせる
     touch -r [既存のファイル名] [変更する対象ファイル名]
    
  • ctimeのみを現在に変更する
     touch -m [対象ファイル名]
    

vim

  • vimの起動
    vim
    
  • 特定のファイルを開きたい場合
    vim test.txt
    
  • vimの操作方法・使い方 冗長になるため以下別紙で解説
    vimの使い方

mv

  • ファイルを移動する
    mv [ファイル1] [ディレクトリ]
    mv [ファイル1] [ファイル2] [ファイル3] [ディレクトリ]
    
  • ファイル名を変更する
    mv [ファイル名] [変更したいファイル名]
    
  • mvコマンドの主なオプション

    短いオプション長いオプション意味
    -f–force移動先に同名ファイルがあっても確認せずに上書きする
    -i–interactive上書き前に確認する
    -n–no-clobber既存のファイルを上書きしない
    -u–update移動先にある同名ファイルのタイムスタンプが同じ、または新しい場合は移動しない
    -t ディレクトリ名–target-directory=ディレクトリ名「-t」で指定したディレクトリに移動する
    -T–no-target-directory移動先(最後の引数)がディレクトリでも特別扱いしない(「cp」コマンド[応用編その1]参照)
    –strip-trailing-slashes移動元ファイルの最後にあるスラッシュ(/)を取り除く 
    -b–backup=方法上書きされるファイルのバックアップを作る(「ln」コマンド参照)
    [方法]:「numbered」または「t」の時は番号の添え字、「simple」または「never」の時は、ファイル名の末尾に「~」または「-S」オプションか環境変数で指定した文字を付けるシンプルなバックアップ(「-b」と同じ)、「existing」または「nil」の時は既にあるファイルに従う(ない場合はで「simple」と同じ)
    -S–suffix=接尾辞バックアップファイルを作る際の、ファイル名末尾に付ける文字(無指定時は、「~」1文字、または環境変数「SIMPLE_BACKUP_SUFFIX」に従う)
    -v–verbose経過を表示する

cp

  • ファイルをコピーする
    cp [コピー元ファイル名] [コピー先ファイル名]
    
  • 複数のファイルをコピーする
    cp [コピー元ファイル名A]  [コピー元ファイル名B] [コピー先ディレクトリ]
    
  • ディレクトリをコピーする
    cp -r [コピー元ディレクトリ] [コピー先ディレクトリ]
    
  • 構成情報をそのままコピーする
    cp -p [コピー元ファイル名] [コピー先ファイル名]
    
  • 使われるオプション | オプション | 説明 | |——-|————————————————-| | -a | ファイルモード・所有者情報、属性などをできるかぎりコピーする | | -f | コピー先ファイルに同じファイル名が合った場合、警告なしでコピーする | | -i | すでに同じファイルがある場合、ファイルの上書き確認を行う | | -p | 元ファイルのモードや所有者情報、タイムスタンプなどをコピー先ファイルにコピー | | -r | ディレクトリをコピーする。配下にサブディレクトリがある場合は、そのディレクトリごとコピーされる | | -v | コピーの詳細な情報が表示される |

mkdir

  • ディレクトリーを作成する
    mkdir [ディレクトリ名]
    
  • 複数のディレクトリを作成する
    mkdir [作成したいディレクトリ名A] [作成したいディレクトリ名B] [作成したいディレクトリ名C]
    
  • 階層ディレクトリを作成する
    mkdir -p [親ディレクトリ名]\[子ディレクトリ名]
    
  • パーミッションを指定しディレクトリを作成する
      mkdir -m [パーミッション指定] [ディレクトリ名]
    

    [パーミッション指定] = [所有ユーザ] + [所有グループ] + [その他のユーザ]

    • パーミッションの一覧
      1. Execution
      2. Write
      3. Execution + Write
      4. Read
      5. Read + Write
      6. Read + Execution
      7. Read + Write + Execution


  • 使われるオプション | オプション | 説明 | |——-|———————–| | -m | 指定したパーミッションでディレクトリを作成 | | -p | 階層ディレクトリを作成 | | -v | ディレクトリ作成時に詳細を表示する |

rm

  • ファイルを削除する
    rm [ファイル名]
    
  • すべてのファイルを削除 ワイルドカードを使う
    rm *
    
  • ファイル名の一部を指定して削除 ( ワイルドカードを使う)
    rm hoge*.dat
    
  • ディレクトリを削除
    rm -r [ディレクトリ名]
    

rmdir

  • ディレクトリを削除
    rmdir [ディレクトリ名]
    
  • 親ディレクトリも削除する
    rmdir -p [ディレクトリ]
    
  • ディレクトリが空ではないときに出るエラーを表示しない
    rmdir --ignore-fail-on-non-empty [ディレクトリ名]
    
  • rmコマンドとの違い

    mdirコマンドは一見rmコ`マンドの-rオプションが付与された動作と似ているが、空ではないディレクトリに関しての動作が異なる。

    a/b/c/d/eという多重のディレクトリ構造は、rmdir –r aのコマンドでは削除できず、rmdir –r a/b/c/d/eと最後のディレクトリまで記述しなければならない。

    さらにディレクトリcの中にファイルxがある場合は、一度のコマンド入力では削除できない。

    非常に誤解しやすいのだが、rmdirコマンドは、フォルダをゴミ箱に捨てるようなイメージと違い、親ディレクトリからその下層のディレクトリを一度に削除できない。

    その点、空ではないディレクトリの削除はrmコマンドの-rオプションの方が簡単ですが

    rmコマンドでは一度の操作で指定したすべてのディレクトリやその中のファイルを削除してしまう。きちんと確認しないと危険でもあるコマンド

    rmdirは削除の対象があくまでディレクトリなので、ファイルを間違って消すことはないので動作の違いを理解して、使用するケースに合わせて適切な削除のコマンドを選択しましょう。

rename

  • ファイルの名前変更
    rename [オプション] [置換前の文字列] [置換後の文字列] [該当ファイル]
    
  • ディレクトリの名前変更
    rename [オプション] [置換前の文字列] [置換後の文字列] [該当フォルダー]
    
  • 複数のファイル・ディレクトリを一括で名前変更
    rename [オプション] [置換前の文字列] [置換後の文字列] [該当ファイルA] [該当ファイルB] [該当ファイルC]
    
  • ワイルドカードを使用した複数ファイル・ディレクトリの一括名前変更(testから始まるファイルを変更する)
    rename [オプション] [置換前の文字列] [置換後の文字列] test*
    

ifconfig

  • ネットワークの接続状況の確認
      ifconfig
    
  • アダプタの指定
      ifconfig [アダプタ名]
    
  • アダプタの無効化
    ifconfig [アダプタ名]  down
    
  • アダプタの有効化
    ifconfig [アダプタ名]  up
    
  • IPアドレスの設定
    ifconfig [アダプタ名] [IPアドレス]
    
  • すべてのアダプタを表示する
    ifconfig -a
    
  • 各アダプタの通信状況を表示する
    ifconfig -s
    

ping

  • 導通確認
    ping [接続先IPアドレスまたはホスト名]
    
  • pingの回数を設定する
    ping -c [回数] [接続先IPアドレスまたはホスト名]
    
  • pingの間隔を設定する
    ping -i [間隔] [接続先IPアドレスまたはホスト名]
    
  • pingの試験するパケット内容を設定する
    ping -p [送信したいパケット内容] [接続先IPアドレスまたはホスト名]
    
  • pingの試験するパケットサイズを設定する
    ping -s [パケットサイズ] [接続先IPアドレスまたはホスト名]
    
  • pingの試験するTTLの数を設定する
    ping -t [TTLの数] [接続先IPアドレスまたはホスト名]
    

traceroute

  • 特定のホストへの経路を確認する
    traceroute [接続先IPアドレスまたはホスト名]
    
  • 応答時間の個数を指定する
    traceroute -q [回数] [接続先IPアドレスまたはホスト名]
    
  • TTLの最大値を指定して実行する
    traceroute -m [TTL最大値] [接続先IPアドレスまたはホスト名]
    
  • 経路を途中から表示する
    traceroute -f [表示を開始したい行数] [接続先IPアドレスまたはホスト名]
    

start

  • バッチファイルやアプリケーションを呼び出だす。
    start [呼び出したいバッチファイル・アプリケーション名]
    

exit

  • ログアウトする
    start [呼び出したいバッチファイル・アプリケーション名]
    

    exitコマンドを実行するショートカットキーはCtrl+D

date

  • 日時を表示する
    date
    
  • 指定した形式で日時を取得(date -d ‘1 day’)
    date -d '1 day'
    

    「’1 day’」の代わりに「tomorrow」を指定しても同様の結果を得ることができます

  • 日時を設定する
    date -s [設定日時]
    
  • 時刻をUTC(世界標準時)で扱う
    date -u
    
  • フォーマットを指定する
    「+」で始まるオプションでは日付や日時を表示するフォーマットを細かく設定することができます。
    date +"%Y%m%d%I%M%S"
    

    | 書式 | 説明 | |—-|——————————————————————–| | %Y | 西暦4桁(1970〜) | | %y | 西暦下2桁(00〜99) | | %m | 月(01〜12) | | %b | Jan~Dec | | %B | January 〜 December | | %d | 日(01〜31) | | %H | 時(00〜23) | | %I | 時(01〜12) | | %M | 分(00〜59) | | %S | 秒(00〜59) | | %s | UTCからの時刻(1970-01-01 00:00:00からの時刻) | | %a | 曜日(Sun, Mon, Tue, Wed, Thu, Fri, Sat) | | %A | 曜日(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday) | | %u | 曜日(1:月曜日 〜 7:日曜日) |

chcp

  • 現在の文字コードを確認する
    chcp
    
  • 文字コードを変更する
    chcp [文字コードIdentifier]
    

    | Identifier | .NET Name | Additional information | |————|———–|—————————————–| | 932 | shift_jis | ANSI/OEM Japanese; Japanese (Shift-JIS) | | 20127 | us-ascii | US-ASCII (7-bit) | | 51932 | euc-jp | EUC Japanese | | 65001 | utf-8 | Unicode (UTF-8) |