BONSAI 道 - 千里の道も一歩から

決してITに強いわけではないけれどITしてみたいので投稿します。

Linuxコマンドチートシート

はじめに

この記事はLinux(当環境はDebianを使用)で自分がよく使うコマンドの備忘録です。

自分用の備忘録として書いているため、自分があまり使わないものについては書いていません。 その点ご了承願います。

内容については随時更新していく予定です。

目次

Linuxコマンドチートシート

ファイル・ディレクトリ操作

ls - ファイル一覧の表示

カレントディレクトリのファイル一覧の表示

$ ls

オプション

-a ドットファイル(隠しファイル)も表示

-l 詳細情報も表示

-F ファイル種別も表示

cd - カレントディレクトリの変更

Change Directoryの略

カレントディレクトリをホームディレクトリに変更

$ cd ~

1つ前の作業ディレクトリに戻る

$ cd -

pwd - カレントディレクトリのパスを表示

Print Working Directoryの略

$ pwd

mv - ファイルの移動、ファイル名の変更

ファイルの移動

$ mv 移動元のファイルパス 移動先のディレクトリパス

オプション

-i 上書き時に確認する

cp - ファイルをコピーする

$ cp コピー元のファイルパス コピー先のファイルパス

オプション

-r ディレクトリをコピーする

-i 上書き時に確認する

mkdir - ディレクトリを作成

$ mkdir ディレクトリパス

オプション

-p 深いディレクトリを一気に作成する

touch - ファイルのタイムスタンプを更新する、ファイルの作成

$ touch ファイルパス

rm - ファイル・ディレクトリの削除

$ rm ファイルパス

オプション

-r ディレクトリの削除

-i 削除時に確認する

rmdir - 空のディレクトリの削除

$ rmdir 空のディレクトリのパス

ln - リンクを張る

ハードリンクを張る

$ ln ファイルパス リンク名

オプション

-s シンボリックリンクを張る

cat - ファイルの内容を表示、ファイルの内容を連結して表示

$ cat ファイルパス

オプション

-n 行番号を付加する

less - ファイルの内容をスクロールして表示

$ less ファイルパス

which - コマンドパスの表示

$ which コマンド名

権限操作

su - ユーザーを変更する

スーパーユーザーの環境に初期化してスーパーユーザーに変更

$ su -

sudo - コマンドを別のユーザとして実行する

スーパーユーザー権限でコマンドを実行

$ sudo コマンド名

visudo - /etc/sudoersの編集

$ sudo visudo

chmod - パーミッションを変更する

ファイルの所有者に実行権限を付与

$ chmod u+x ファイルパス

chown - ファイルの所有者を変更する

$ chown ユーザー名 ファイルパス

useradd - 新規ユーザーの作成

$ useradd ユーザー名

オプション

--create-home or -m ユーザーのホームディレクトリが存在しなければホームディレクトリを作成する

--no-create-home or -M ユーザーのホームディレクトリを作成しない

システム関連

apt - パッケージ操作

パッケージのアップデートをチェック

$ sudo apt update

パッケージのアップデートを実行

$ sudo apt upgrade

パッケージのインストール・リポジトリの情報の登録

$ sudo apt install パッケージ名

パッケージのアンインストール

$ sudo apt remove パッケージ名

パッケージのインストール状況を調べる

$ sudo apt list --installed

更新に伴い、必要のなくなったパッケージを削除する

sudo apt autoremove

セキュリティ関連

ufw - ファイアウォールの設定

内容の確認

$ sudo ufw status

全てのポートへの接続を禁止

$ sudo ufw default deny

ポートの解放

$ sudo ufw allow ポート番号

ファイアウォールの有効化

$ sudo ufw enable

ファイアウォールの設定の再読み込み

$ sudo ufw reload

ssh - リモートマシンにSSHでログインし、リモートマシン上でコマンドを実行する

$ ssh ログインユーザー名@IPアドレス

オプション

-p ポート番号 ポート指定

-i 秘密鍵ファイル 秘密鍵を指定

scp - リモートマシンとローカルマシン、あるいはリモートマシン同士でファイルをコピーする

$ scp コピー元ファイルパス ログインユーザー名@IPアドレス:コピー先ファイルパス
$ scp ログインユーザー名@IPアドレス:コピー元ファイルパス コピー先ファイルパス

オプション

-P ポート番号 ポート指定

-i 秘密鍵ファイル 秘密鍵を指定

ポート番号指定するときはssh-p ポート番号で小文字、scp-P ポート番号で大文字のオプションを指定すること

ssh-keygen - 鍵ペア(公開鍵と秘密鍵)の作成

$ ssh-keygen

pwgen - パスワード(ランダムな文字列)を生成する

12文字のパスワードを1つ生成

$ pwgen 12 1

文字列検索・操作

grep - ファイルの中から指定した内容を含む行を探す

global regular expression printの略

$ grep "検索文字列" ファイルパス

オプション

-r サブフォルダまで検索

-E 正規表現を指定

-i 大文字小文字の違いを無視(ignore case)

-v 指定した文字列を含まない行だけに絞り込む

cut - 入力された内容の各行から必要な部分だけを切り出す

行頭から3列目までを切り出す

$ cut -f 1-3 ファイルパス

オプション

--delimiter 区切り文字 or -d 区切り文字 区切り文字には任意の一文字を指定、区切り文字がタブ文字の場合は省略する

--fields 取り出す列位置 or -f 取り出す列位置 取り出す列位置は最初が1で複数の数字や範囲も指定可能、例えば 1,31-3など

sort - 入力された内容を昇順に並べ替える

$ sort ファイルパス

オプション

--reverse or -r 降順にソート

--field-separator or -t 区切り文字を指定

--key or -k 列番号を指定して列の内容での並べ替え

--number or -n 単純ソートから数値ソートに変更

--ignore-leading-blanks or -b 先頭の空白を無視する

uniq - 入力された内容の連続した重複を取り除く

$ sort ファイルパス | uniq

オプション

--count or -c 同じ内容が何回登場したかカウント

wc - 入力された内容の文字数や行数を数えてその結果を返す

Word Countの略

$ wc ファイルパス

オプション

--lines or -l 行数

--words or -w 単語数

--chars or -m バイト数

sed - 文字列の編集

Stream EDitorの略

ファイルの全行に渡って置換(一括置換)

$ sed -e "s/置換前文字列/置換後文字列/g" ファイルパス > 新しいファイルのファイルパス

1つのコマンド列の中でファイルを上書きするとファイルが消失してしまうので注意

オプション

--expression or -e 置換文字の指定をする、複数指定可能

head - 入力の先頭から10行だけを取り出す

$ head ファイルパス

オプション

-n 行数 出力する行数を変更

tail - 入力の末尾から10行だけを取り出す

$ tail ファイルパス

オプション

-n 行数 出力する行数を変更

-F ファイルに追加された内容をその都度出力

echo - 引数で指定した文字列の表示

ログインシェルの確認

$ echo $SHELL

シェル関連

chsh - ログインシェル自体の変更

ログインシェルをzshに変更

$ chsh -s /bin/zsh

clear - 端末の表示内容を消す

$ clear

printenv - 環境変数の一覧表示

$ printenv

source - ファイルからコマンドを読み込んで実行する(.コマンドと同じ)

$ source ファイルパス

type - シェルがどのコマンドを起動しているかを知る

$ type コマンド名

alias - エイリアスの設定確認、エイリアスの定義

エイリアスの設定確認

$ alias

エイリアスの定義

alias 定義名='実行内容'

unalias - エイリアスの削除

$ unalias 定義名

エイリアスかの確認、エイリアスを一時的に無効にする

エイリアスかの確認

$ type ls
ls is an alias for ls -F

エイリアスを一時的に無効にする

$ \ls
$ /bin/ls   # フルパス指定
$ command ls   # 明示的にコマンドを実行

その他

hostname - 実行したサーバーのホスト名を出力

$ hostname

crontab - 定期作業の自動実行

$ crontab -e

cronjobととして設定された作業はcrontabコマンドを実行したときのユーザー権限でのみ動作するのに注意

オプション

-l 設定済みのcronjobの一覧表示

-e 設定の編集

ip address show - IPアドレスを表示

$ ip address show

curl - Webアクセス

HTTPでGETリクエス

$ curl -X GET "URL"

HTTPでPOSTリクエス

$ curl -X POST "URL"

ダウンロード

$ curl -o 保存先ファイルのパス URL

自身のグローバルIPアドレスを表示

$ curl ifconfig.io

iconv - 文字コードの変換

文字コードEUC-JPからUTF-8に変換

$ iconv -f EUC-JP -t UTF-8 ファイルパス

date - 現在日時の表示

$ date

logout / exit - ログアウト(logoutはログインシェルの時のみログアウト可能)

$ exit