💯

Mac Terminal コマンド

2021/05/22に公開

コマンドまとめ

uname

OSの情報を表示する
書式:uname [オプション]

  • -m・・・プロセッサのハードウェア名を表示
  • -n・・・ネットワークのホスト名を表示

echo

文字列を画面に表示する
書式:echo [オプション] 文字列

ls

ディレクトリの一覧を表示する
書式:ls [オプション] [パス]

  • -a・・・隠しファイルを含めて全てのファイルを表示する
  • -A・・・「.」「..」以外の全てのファイルを表示する
  • -d・・・ディレクトリそのものの情報を表示する
  • -F・・・ディレクトリの場合には「/」を、シンボリックの場合には「@」を、実行可能ファイルの場合には「*」を表示する
  • -G・・・ファイルやディレクトリを色分けして表示する
  • -h・・・サイズの単位を表示する
  • -l・・・詳細情報を表示する
  • -r・・・逆順に表示する
  • -S・・・サイズ順にソートして表示する
  • -t・・・修正時刻順にソートして表示する
  • -s・・・サイズを表示する(単位はブロック数)
  • -k・・・「-s」オプションと同時に指定するとサイズをkバイトで表示する
  • -i・・・ノード番号を表示する
  • -@・・・拡張属性の属性名を表示する(-lオプションと組み合わせて使用する)
  • -ie・・・ACLs(Access Control Lists)によるアクセス権限の内容を確認する

cd

カレントディレクトリを移動する
書式:cd 移動先のディレクトリ

pwd

カレントディレクトリのパスを表示する
書式:pwd

cat

ファイルの中身を表示する
書式:cat [オプション] ファイルのパス

  • -n・・・行番号を表示する

history

過去に実行したコマンドの一覧を表示する
書式:history [コマンド数]

  • !ヒストリ番号 と入力することで、昔に実行したコマンドを発行する
  • !! で直前に実行したコマンドを発行する

touch

ファイルの更新日時を更新する
書式:touch ファイルのパス

cp

ファイルをコピーする
書式:cp [オプション] コピー元のファイルのパス コピー先のファイルのパス

  • -r・・・ディレクトリの階層構造を保ったままコピーする
  • -i・・・コピー先にファイルが存在していた場合に、上書き確認する

mv

ファイルを移動する
書式:mv 元のファイルのパス 新たなファイルのパス

  • リネームの用途でも使える

ln

リンクを作成する
書式:ln [オプション] 元のファイルのパス リンクファイルのパス

  • -s・・・シンボリックリンク(Windowsでいうショートカット)を作成する
  • オプションをつけずに実行するとハードリンク(異なる名前で同じファイルの実態を示す機能)が作成される

mkdir

ディレクトリを作成する
書式:mkdir [オプション] [ディレクトリのパス]

  • -p・・・途中のディレクトリを含めて作成する

rmdir

ディレクトリを削除する
書式:rmdir [オプション] ディレクトリのパス

rm

ファイルを削除する
書式:rm [オプション] 削除するファイルのパス

  • -i・・・ファイルを削除して良いかを確認する
  • -r・・・ディレクトリごとファイルを削除する
  • -f・・・書き込みが許可されている場合でも、確認を行わずに削除する

xattr

拡張属性を操作する
書式:xattr [オプション] ファイルのパス

  • -l・・・拡張属性の内容を16進数で表示する
  • -d・・・指定した拡張属性を削除する

open

GUIアプリでファイルを開く
書式:open [オプション] ファイルのパス

  • -a・・・アプリケーションを指定してファイルを開く

less

テキストファイルをページ単位で表示する
書式:less [オプション] ファイルのパス

ファイルの先頭部分を表示する
書式:head [-n 行数] ファイルのパス

tail

ファイルの最後の部分を表示する
書式:tail [-n 行数] ファイルのパス

  • -f・・・コマンドは終了せずに、ファイルが増えるにしたがって表示が更新される

man

マニュアルを表示する
書式:man [オプション] コマンド

  • セクション番号を指定してマニュアルを開くこともできる。
  • ex.) man 2 mkdir

apropos

コマンドを検索する
書式:apropos キーワード

その他のコマンド

リダイレクション

  • 「>」・・・標準出力の切り替え
  • 「>>」・・・標準出力の切り替え(ファイルの末尾に追記)
  • 「<」・・・標準入力の切り替え
  • 「2>」・・・標準エラー出力の切り替え
  • 「2>>」・・・標準エラー出力の切り替え(ファイルの末尾に追記)
  • 「>&」・・・標準出力と標準エラー出力の切り替え

パイプ

  • コマンドの間に「|」を記述する
  • コマンドの標準出力を別のコマンドの標準入力に繋ぐことができる

tee

データを標準出力とファイルに書き出す
書式:tee ファイルのパス

wc

文字数を数える
書式:wc [オプション] テキストファイルのパス

sort

テキストファイルの行を並べ替える
書式:sort [オプション] ファイルのパス

  • -k・・・指定したフィールドから行末までが比較される
  • -t・・・区切り文字を指定する(デフォルトは空白またはタブ)
  • -n・・・数値の順に並び替える
  • -r・・・降順に並び替える
  • -u・・・重複行を表示しない

uniq

隣接した重複行を削除する
書式:uniq [オプション] ファイルのパス

  • c・・・重複回数を表示する

tr

文字を置換する
書式:tr 置換される文字 置換後の文字

  • -d・・・指定した文字を削除する

grep

指定した文字列を含む行を取り出す
書式:grep [オプション] 文字列 ファイルのパス

  • -c・・・マッチした行数を表示する
  • -i・・・アルファベットの大文字と小文字の区別をしない
  • -n・・・行番号を表示する
  • -r・・・サブディレクトリを含めて全てのファイルを検索する
  • -v・・・マッチしな買った行を表示する
  • -x・・・行全体とマッチする行のみを表示する
  • 正規表現を使うことでより柔軟な検索が可能
    • grepで使用できるのは「基本正規表現」
    • egrepでは「拡張正規表現」が使える
    • fgrepでは正規表現は使えない(純粋な文字列検索のみ)

find

ファイルを検索する
書式:find [オプション] 起点となるパス [検索条件]

  • -name・・・ファイル名を指定して検索する
  • -amin・・・n分前にアクセスされたファイルを検索する
  • -atime・・・n日前にアクセスされたファイルを検索する
  • -empty・・・空のファイルを検索する
  • -group・・・指定したグループに属するファイルを検索する
  • -mmin・・・n分前にファイルの中身が修正されたファイルを検索する
  • -mtime・・・n日前にファイルの中身が修正されたファイルを検索する
  • -newer・・・指定したファイルより後に修正されたファイルを検索する
  • -perm・・・指定したパーミッションが設定されているファイルを検索する
  • -size・・・指定したサイズのファイルを検索
    • +:指定したサイズ以上
    • -:指定したサイズ以下
  • -type・・・指定したタイプのファイルを検索
    • b:ブロック型スペシャルファイル
    • c:キャラクタ型スペシャルファイル
    • d:ディレクトリ
    • f:通常のファイル
    • l:シンボリックリンク
  • exec・・・検索されたファイルのパスを引数にして、別のコマンドを実行する
    • exec コマンド {} \;
  • ok・・・検索されたファイルのパスを引数にして、別のコマンドを確認しながら実行する
    • ok コマンド {} \;

xargs

指定したコマンドの引数を標準入力から受け取る
書式:xargs [オプション] コマンド

mdfind

Spotlight検索を行う
書式:mdfind [オプション] キーワード

  • -name・・・ファイル名で検索する
  • -onlyin・・・特定のディレクトリ以下を検索する
  • -live・・・検索が終わった後も、監視を続ける
  • -count・・・検索条件にマッチした数を表示する
  • "属性名==文字列"を指定することで、メタデータで検索できる

nano

nanoエディタを起動する
書式:nano [オプション] [ファイルのパス]

vim

vimエディタを起動する
書式:vim ファイルのパス

whoami

自分のユーザ名を表示する
書式:whoami

alias

コマンドに別名をつける
書式:alias 別名=コマンド

  • 引数なしで実行すると、現在設定されているエイリアスの一覧を表示

unalias

エイリアスを削除する
書式:unalias エイリアス名

unset

変数を削除する
書式:unset 変数名

  • 引数なしでsetコマンドを実行すると、現在設定されている組み込みシェル変数の一覧が表示される

printenv

環境変数の一覧を表示する
書式:printenv [変数名]

  • 引数を指定しないで実行した場合、全ての環境変数を表示

export

環境変数を設定する
書式:export 変数名

source

現在のシェル環境で環境設定ファイルやシェルスクリプトを実行する
書式:source ファイルのパス

type

コマンドの種類を表示する
書式:type [オプション] コマンド

sudo

スーパーユーザの権限でコマンドを実行する
書式:sudo コマンド

chmod

パーミッションを設定する
書式:chmod パーミッション パス

  • パーミッションは3桁の8進数、または記号で設定する
    • ユーザの指定
      • u・・・所有者
      • g・・・所有グループ
      • o・・・その他のユーザ
      • a・・・全て
    • オペレータの指定
      • +・・・許可を加える
      • -・・・許可を取り消す
      • =・・・設定する(元の設定はクリアする)
    • アクセス権の指定
      • r・・・読み出し
      • w・・・書き込み
      • x・・・実行

sips

画像フォーマットを変換する
書式:sips -s format フォーマット 入力ファイルのパス --out 出力ファイルのパス

file

ファイルの種類を表示する
書式:file ファイルのパス

brew

Homebrewを操作する
書式:brew サブコマンド

  • doctor・・・Homebrewの環境を診断する
  • help・・・サブコマンドの一覧を表示する
  • install・・・パッケージをインストールする
  • uninstall・・・パッケージを削除する
  • options・・・パッケージのインストール時に指定できるオプションを表示する
  • list・・・インストールすみパッケージの一覧を表示する
  • home・・・パッケージのwebサイトを表示する
  • outdated・・・最新ではないパッケージを一覧表示する
  • search・・・パッケージを検索する
  • upgrade・・・インストール済みのパッケージを最新のものに更新する
  • update・・・Homebrew本体を更新する
  • cat・・・フォーミュラファイルの中身を表示する

tree

ファイルの階層構造を表示する
書式:tree ディレクトリのパス

nkf

文字エンコーディング/改行コードを変換する
書式:nkf オプション ファイルのパス

lv

テキストファイルをページごとに表示する
書式:lv テキストファイルのパス

wget

ファイルをダウンロードする
書式:wget [オプション] URL

ImageMagicコマンド

  • convert・・・イメージのフォーマットやサイズなどを変換したりフィルタリングしたりする
  • mogify・・・複数のイメージを同時に変換する
  • import・・・ウィンドウの画像をキャプチャする
  • montage・・・イメージの一覧を作成する
  • composite・・・イメージを合成する
  • animate・・・引数で指定したイメージを順に切り替えて表示する
  • identify・・・イメージ情報を表示する
  • conjure・・・MSL(Magick scripting language)で記述されたスクリプトを実行する

configure

システムを調べて、コンパイラやライブラリを探し出し、その環境にあったMakefileを作成する
書式:./configure

make

Makefileの設定にしたがってコンパイルなどの処理を行う
書式:make

  • Makefileが保存されたディレクトリで実行する

bg

一時停止中のジョブをバックグラウンドジョブにする
書式:bg [%ジョブ番号]

jobs

現在実行されているジョブの一覧を表示する
書式:jobs [オプション]

fg

指定したジョブをフォアグラウンドジョブにする
書式:fg [%ジョブ番号]

ps

プロセスの一覧を表示する
書式:ps [オプション]

top

プロセスを監視する
書式:top [オプション]

kill

ジョブ/プロセスにシグナルを送る
書式1:kill [-シグナル名] %ジョブ番号
書式2:kill [-シグナル名] プロセスID

  • オプションなしの場合はTERMシグナルが送られる
  • -KILLを指定すると、KILLシグナルが送られ、強制終了する

killall

プロセス名でシグナルを送る
書式:killall [-シグナル名] プロセス名

groups

属するグループを表示する
書式:groups

id

ユーザIDとグループIDを表示する
書式:id

chown

ファイルの所有者を変更する
書式:chown [オプション] ユーザ名 ファイルのパス

  • -R・・・ディレクトリの権限を丸ごと変更する

chgrp

ファイルの所有グループを変更する
書式:chgrp [オプション] ユーザ名 ファイルのパス

  • -R・・・ディレクトリの権限を丸ごと変更する

su

別のユーザに移行する
書式:su [-] ユーザ名

defaults

ユーザデフォルトを操作する
書式: defaults サブコマンド

  • read・・・ユーザデフォルトの値を表示する
  • write・・・ユーザデフォルトの値を変更する
  • delete・・・値を削除する
  • find・・・指定した文字列とマッチするキーや値を検索する

launchctl

サービスを制御する
書式:launchctl サブコマンド

  • bootstrap system・・・サービスの設定ファイルを読み込む
  • bootout system・・・サービスの設定ファイルを無効にする
  • enable system/・・・サービスを有効にする
  • disable system/・・・サービスを無効にする
  • kikstart [-k] system/・・・サービスを起動する(-kオプションを指定すると、再起動)
  • print-disabled system・・・システム内で無効なサービスの一覧を表示する

gzip

gzip形式で圧縮する
書式:gzip [オプション] ファイルのパス

gunzip

gzip形式の圧縮ファイルを展開する
書式:gunzip 圧縮ファイルのパス

bzip2

bzip2形式の圧縮ファイルを作成する
書式:bzip2 [オプション] 圧縮するファイルのパス

bunzip2

bzip2形式を圧縮ファイルを展開する
書式:bunzip2 [オプション] 圧縮ファイルのパス

tar

アーカイブを作成・展開する

  • tar -cvf アーカイブファイルのパス ファイルやディレクトリのパス・・・アーカイブを作成する
  • tar -tvf アーカイブファイルのパス・・・アーカイブの中の一覧を表示する
  • tar -xvf アーカイブファイルのパス・・・アーカイブを展開する

rsync

差分バックアップを実行する
書式:rsync [オプション] 元のディレクトリのパス バックアップ先のディレクトリのパス

ifconfig

ネットワークインタフェースの情報を表示する
書式:ifconfig [オプション] インタフェース名

ping

ホストの応答を調べる
書式:ping [オプション] ホスト

traceroute

目的のホストに到達するまでに通ったルータのホスト名またはIPアドレスを表示する
書式:traceroute [オプション] ホスト

host

指定したホストのIPアドレス/ホスト名を調べる
書式:host [オプション] ホスト

dns-sd

IPアドレスやホスト名を調べる

  • dns-sd -G v4 Bonjour名・・・Bonjour名からIPアドレスを調べる
  • dns-sd -B タイプ・・・サービスを提供しているホストを調べる

ssh

リモートログインを行う
書式:ssh [-l ユーザ名] ホスト名

  • ローカルホストにログインしているユーザと同じユーザでログインする場合、ユーザ名は省略可能

ssh-keygen

鍵ペアを作成する
書式:ssh-keygen [オプション]

  • -t・・・鍵のタイプを指定する
    • rsa1
    • rsa
    • dsa
    • ecdsa
    • ed22519

sftp

ftpと同じようにファイル転送を行う
書式:sftp ユーザ名@ホスト名またはIPアドレス

scp

ローカルホストとリモートホストの間でファイルをコピーする
書式:scp [オプション] コピー元のファイルのパス コピー先のパス

apachectl

Apacheを起動/停止する
書式:apachectl サブコマンド

  • configtest・・・設定ファイルの文法エラーをチェックする
  • start・・・Apacheを開始する
  • stop・・・Apacheを停止する
  • restart・・・Apacheを再起動する

Discussion