はじめに
この記事はLinux(当環境はDebianを使用)で自分がよく使うコマンドの備忘録です。
自分用の備忘録として書いているため、自分があまり使わないものについては書いていません。 その点ご了承願います。
内容については随時更新していく予定です。
目次
- はじめに
- 目次
- Linuxコマンドチートシート
- ファイル・ディレクトリ操作
- 権限操作
- システム関連
- セキュリティ関連
- 文字列検索・操作
- シェル関連
- その他
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,3
、1-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 - 文字コードの変換
$ iconv -f EUC-JP -t UTF-8 ファイルパス
date - 現在日時の表示
$ date
logout / exit - ログアウト(logoutはログインシェルの時のみログアウト可能)
$ exit