Linuxのシェル
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*Linuxのシェル [#xa62f4cd]
*シェルの種類 [#gaf9a5d7]
**Bシェル系 [#aabee4f9]
-sh
--B Shell
--Bourne Shell
--UNIXの標準的なシェル
-[[bash]]
--Bourne-Again Shell
--Linuxディストリビューションの標準的なシェル
--shを改良したもの
-ash
--shのBSDライセンス版
-dash
--ashのLinux移植版
-ksh
--Korn Shell
--shを拡張したもの
--IBM AIXのデフォルトシェル
**Cシェル系 [#p5a2dc49]
-csh
--C Shell
--[[BSD]]系UNIXで採用されている
**その他 [#w583d9ec]
-[[zsh]]
--Z Shell
--機能が豊富なシェル
*プロンプトの記号 [#y1d4f606]
-#
--rootユーザ
-$
--一般ユーザ:bash、sh、ksh
-%
--一般ユーザ:zsh、tcsh、csh
*シェル について [#x282a9f2]
**ログインシェル [#s8a3982e]
-ログイン直後に起動されるシェルのこと
-ユーザのログインシェルの確認
cat /etc/passwd | grep <user-name>
echo $SHELL
**組み込みコマンド [#s2c9fbc3]
-ビルトインコマンド
-/usr/sbin や/usr/bin に存在しないコマンド
-if, for while, set, export など
-help で組み込みコマンドの一覧が表示される
**その他 [#kc7c3d41]
-chsh ※デフォルトのシェルを変更
-利用可能なシェルの確認
cat /etc/shells
*シェルの操作 [#s322cda3]
**コマンドの入力途中の操作 [#s073d834]
-補完機能
Tab ※入力補完を表示
-カーソル移動
--行頭・行末
Ctl + A ※行頭
Ctl + E ※行末
--1文字左・右
Ctl + B ※1文字左
Ctl + F ※1文字右
--1単語
Alt + B ※1単語左(Esc + B)
Alt + F ※1単語右(Esc + F)
-コマンドラインの編集
--1文字を削除
Ctl + D ※カーソルの1文字
Ctl + H ※カーソルの左の1文字
Ctl + / ※カーソルの左の1文字
--カーソル位置から左・右の文字を全て削除
Ctl + U ※カーソル位置から左の文字
Ctl + K ※カーソル位置から右の文字
-カーソル位置の単語の右部分を削除
Alt + D ※カーソル位置の単語の右部分(Esc + D)
--その他
Ctl + L ※画面をクリアしてカレント行を再表示
Ctl + _ ※直前の操作前の状態に戻す
**コマンドを実行中の操作 [#ofec13fb]
-実行制御
Ctl + C ※処理を中断
Ctl + Z ※処理を一時停止
Ctl + S ※画面への出力を停止し、キー入力を無効にする
Ctl + Q ※画面への出力を再開し、キー入力を有効にする
**ディレクトリの指定 [#j9167e95]
-~ ※ホームディレクトリ
cd ~
-~[ユーザ名] ※指定したユーザ名のホームディレクトリ
cd ~root
sudo ls ~root ※実行したユーザーがsudoを利用できるか確認
-~- ※直前のディレクトリ
cd ~-
-. ※カレントディレクトリ
df .
-.. ※1つ上のディレクトリ
cd ..
**コマンドの実行(単独) [#z6fc879c]
-環境変数PATHに指定されたディレクトリに存在するコマンド(...
<command>
-カレントディレクトリに存在するコマンド
./<command>
-フルパスを指定して実行
/<dir-path>/<command>
**コマンドの実行(複数) ※区切り文字で繋げる [#q8b93265]
-; ※1番目のコマンドの実行結果に関係なく2番目のコマンドを...
pwd;ls
-&& ※1番目のコマンドが正常終了した場合のみ、2番目のコマ...
ls test.txt && cat test.txt
-|| ※1番目のコマンドが正常終了しなかった場合のみ、2番目...
ls test.txt || touch test.txt
**コマンドの実行(複数) ※括弧で複数のコマンドをひとまとま...
-() ※新たにシェルを起動して実行する
(hostname;whoami) >> temp.log
TEMP=origin
(TEMP=edited;echo $TEMP) ※"edited"が出力
echo $TEMP ※"origin"が出力
-{} ※現在のシェル内でコマンドを実行する
{ hostname;whoami; } >> temp.log ※カッコとコマンドの間...
**引用符と文字列の扱い [#dd71ea2b]
-' (単一引用符、シングルクォーテーション)
--全て文字列として解釈する
--変数の記載も文字列として解釈される(変数の値が出力されな...
DATE=`date +%Y%m%d`
echo '$DATE' ※"$DATE"が出力される
-" (二重引用符、ダブルクォーテーション)
--文字列として解釈する
--変数の記載は変数として解釈される(変数の値が出力される)
--バッククォーテーション(`)でコマンドが記載されていれば、...
DATE=`date +%Y%m%d`
echo "today is $DATE" ※$DATEの部分は日付が出力される
echo "today is \$DATE" ※\(エスケープ文字)で$DATEは変数...
echo "today is `date + %Y%m%d`" ※コマンドの実行結果(日...
echo "today is $(date + %Y%m%d)" ※コマンドの実行結果(日...
*エイリアス [#sec9a171]
**alias [#n55bcc0d]
-エイリアスを登録
alias <command>
-登録されているエイリアスを確認
alias <command>='<register-command>'
**unalias [#vc09e97f]
-エイリアスを解除
unalias <command>
**その他 [#ma5357a7]
-エイリアスを無効にしてコマンドを実行
\<command>
*コマンド履歴の操作 [#i8b087d5]
-直近の履歴を遡って表示
--カーソルキー操作
↑ ※遡って表示
↓ ※逆順で表示
--ショートカットキー操作
Ctl + p ※遡って表示
Ctl + n ※逆順で表示
-直近の履歴を文字列検索して表示
--ショートカットキー操作
Ctl + R ※押下後に入力した文字列から直近のコマンドを検索...
-履歴を使ってコマンドを実行
--!<履歴番号> ※指定した履歴番号のコマンドを実行
--!<string> ※指定した文字列で始まる直近のコマンドを実行
--!?<string> ※指定した文字列を含む直近のコマンドを実行
--!! ※直前のコマンドを実行
*コマンド履歴の操作(Linuxコマンド) [#xf322274]
**history [#w022ef2f]
-history <件数>
history ※直近の環境変数HISTSIZE に設定された件数を出力
history 10 ※直近の10件を出力
*コマンド履歴の操作(インクリメンタルサーチモード) [#h44...
-Ctl + R
--インクリメンタルサーチモードに移る
--次のコマンドを検索
-Enter
--検出したコマンドを実行
-Esc
--検出したコマンドを表示した状態でインクリメンタルサーチ...
--その後、コマンドを編集して実行など
*シェルのオプション機能 [#yd4d5aa7]
-有効/無効
--set -o <option-name> ※有効
--set +o <option-name> ※無効
-設定の状態を表示
--set -o ※On/Offで表示
--set +o ※現在の設定状態をコマンドで表示
*関数 [#f083880c]
**function [#y15acfdb]
-独自の関数を定義する
--function 関数名() { <command>; }
--関数名() { <command>; }
関数名()
{
<command>
}
-定義されている関数の確認
set ※一覧の後ろの方に表示される
declare -f <関数名> ※指定した関数の定義を表示
declare -f ※定義されている関数の定義を一覧表示
declare -F ※定義されている関数の関数名を一覧表示
-定義されている関数の削除
unset <>
*シェルスクリプト [#y650ae70]
-「[[シェルスクリプト]]」参照
-「[[シェルスクリプト(bash)]]」参照
*設定ファイル [#r3a24b58]
**/etc/passwd [#p01fcf69]
***構成 [#c4cc3c4f]
-ユーザ名
-パスワード("x"はシャドーパスワード)
-ユーザID
-グループID
-コメント
-ホームディレクトリ
-ログインシェル
**/etc/shadow [#eb29d589]
-シャドウファイル
**構成 [#i4ade315]
-ユーザ名
-パスワード
--構成
---$ハッシュ関数(1:MD5、2 or 2a:Blowfish、5:SHA-256、6:S...
---$ソルト
---$ハッシュ値
--*:未設定
--!!:アカウントロック
-最終更新日
-次回変更可能になるまでの日数
-有効期限(過ぎると変更必須)
-期限切れの警告日(期限何日前に警告するか)
-無効化までの連続非ログイン日数
-アカウント失効までの連続非ログイン日数
-フラグ
**/etc/shells [#dcf77358]
-利用可能なシェル
*デフォルトシェル [#e5a89b8a]
**macOS [#a6ff4155]
-Mojave 以前は bash
-Catalina 以降は zsh
*セキュリティ関連 [#be812c7c]
-Shellshock
--Bashの[[脆弱性]]
*関連サイト [#q05ff0fb]
-/bin/false と /sbin/nologin と /etc/shells について~
https://littlebuddha.hatenadiary.org/entry/20090805/12494...
-さくらのクラウドシェル - さくらインターネット~
https://www.sakura.ad.jp/services/cloudshell/
-Macの「ターミナル」のキーボードショートカット -Apple~
https://support.apple.com/ja-jp/guide/terminal/trmlshtcts...
*関連用語 [#n74f29c4]
-[[Linuxコマンド]]
-[[ハッシュテーブル]]
終了行:
*Linuxのシェル [#xa62f4cd]
*シェルの種類 [#gaf9a5d7]
**Bシェル系 [#aabee4f9]
-sh
--B Shell
--Bourne Shell
--UNIXの標準的なシェル
-[[bash]]
--Bourne-Again Shell
--Linuxディストリビューションの標準的なシェル
--shを改良したもの
-ash
--shのBSDライセンス版
-dash
--ashのLinux移植版
-ksh
--Korn Shell
--shを拡張したもの
--IBM AIXのデフォルトシェル
**Cシェル系 [#p5a2dc49]
-csh
--C Shell
--[[BSD]]系UNIXで採用されている
**その他 [#w583d9ec]
-[[zsh]]
--Z Shell
--機能が豊富なシェル
*プロンプトの記号 [#y1d4f606]
-#
--rootユーザ
-$
--一般ユーザ:bash、sh、ksh
-%
--一般ユーザ:zsh、tcsh、csh
*シェル について [#x282a9f2]
**ログインシェル [#s8a3982e]
-ログイン直後に起動されるシェルのこと
-ユーザのログインシェルの確認
cat /etc/passwd | grep <user-name>
echo $SHELL
**組み込みコマンド [#s2c9fbc3]
-ビルトインコマンド
-/usr/sbin や/usr/bin に存在しないコマンド
-if, for while, set, export など
-help で組み込みコマンドの一覧が表示される
**その他 [#kc7c3d41]
-chsh ※デフォルトのシェルを変更
-利用可能なシェルの確認
cat /etc/shells
*シェルの操作 [#s322cda3]
**コマンドの入力途中の操作 [#s073d834]
-補完機能
Tab ※入力補完を表示
-カーソル移動
--行頭・行末
Ctl + A ※行頭
Ctl + E ※行末
--1文字左・右
Ctl + B ※1文字左
Ctl + F ※1文字右
--1単語
Alt + B ※1単語左(Esc + B)
Alt + F ※1単語右(Esc + F)
-コマンドラインの編集
--1文字を削除
Ctl + D ※カーソルの1文字
Ctl + H ※カーソルの左の1文字
Ctl + / ※カーソルの左の1文字
--カーソル位置から左・右の文字を全て削除
Ctl + U ※カーソル位置から左の文字
Ctl + K ※カーソル位置から右の文字
-カーソル位置の単語の右部分を削除
Alt + D ※カーソル位置の単語の右部分(Esc + D)
--その他
Ctl + L ※画面をクリアしてカレント行を再表示
Ctl + _ ※直前の操作前の状態に戻す
**コマンドを実行中の操作 [#ofec13fb]
-実行制御
Ctl + C ※処理を中断
Ctl + Z ※処理を一時停止
Ctl + S ※画面への出力を停止し、キー入力を無効にする
Ctl + Q ※画面への出力を再開し、キー入力を有効にする
**ディレクトリの指定 [#j9167e95]
-~ ※ホームディレクトリ
cd ~
-~[ユーザ名] ※指定したユーザ名のホームディレクトリ
cd ~root
sudo ls ~root ※実行したユーザーがsudoを利用できるか確認
-~- ※直前のディレクトリ
cd ~-
-. ※カレントディレクトリ
df .
-.. ※1つ上のディレクトリ
cd ..
**コマンドの実行(単独) [#z6fc879c]
-環境変数PATHに指定されたディレクトリに存在するコマンド(...
<command>
-カレントディレクトリに存在するコマンド
./<command>
-フルパスを指定して実行
/<dir-path>/<command>
**コマンドの実行(複数) ※区切り文字で繋げる [#q8b93265]
-; ※1番目のコマンドの実行結果に関係なく2番目のコマンドを...
pwd;ls
-&& ※1番目のコマンドが正常終了した場合のみ、2番目のコマ...
ls test.txt && cat test.txt
-|| ※1番目のコマンドが正常終了しなかった場合のみ、2番目...
ls test.txt || touch test.txt
**コマンドの実行(複数) ※括弧で複数のコマンドをひとまとま...
-() ※新たにシェルを起動して実行する
(hostname;whoami) >> temp.log
TEMP=origin
(TEMP=edited;echo $TEMP) ※"edited"が出力
echo $TEMP ※"origin"が出力
-{} ※現在のシェル内でコマンドを実行する
{ hostname;whoami; } >> temp.log ※カッコとコマンドの間...
**引用符と文字列の扱い [#dd71ea2b]
-' (単一引用符、シングルクォーテーション)
--全て文字列として解釈する
--変数の記載も文字列として解釈される(変数の値が出力されな...
DATE=`date +%Y%m%d`
echo '$DATE' ※"$DATE"が出力される
-" (二重引用符、ダブルクォーテーション)
--文字列として解釈する
--変数の記載は変数として解釈される(変数の値が出力される)
--バッククォーテーション(`)でコマンドが記載されていれば、...
DATE=`date +%Y%m%d`
echo "today is $DATE" ※$DATEの部分は日付が出力される
echo "today is \$DATE" ※\(エスケープ文字)で$DATEは変数...
echo "today is `date + %Y%m%d`" ※コマンドの実行結果(日...
echo "today is $(date + %Y%m%d)" ※コマンドの実行結果(日...
*エイリアス [#sec9a171]
**alias [#n55bcc0d]
-エイリアスを登録
alias <command>
-登録されているエイリアスを確認
alias <command>='<register-command>'
**unalias [#vc09e97f]
-エイリアスを解除
unalias <command>
**その他 [#ma5357a7]
-エイリアスを無効にしてコマンドを実行
\<command>
*コマンド履歴の操作 [#i8b087d5]
-直近の履歴を遡って表示
--カーソルキー操作
↑ ※遡って表示
↓ ※逆順で表示
--ショートカットキー操作
Ctl + p ※遡って表示
Ctl + n ※逆順で表示
-直近の履歴を文字列検索して表示
--ショートカットキー操作
Ctl + R ※押下後に入力した文字列から直近のコマンドを検索...
-履歴を使ってコマンドを実行
--!<履歴番号> ※指定した履歴番号のコマンドを実行
--!<string> ※指定した文字列で始まる直近のコマンドを実行
--!?<string> ※指定した文字列を含む直近のコマンドを実行
--!! ※直前のコマンドを実行
*コマンド履歴の操作(Linuxコマンド) [#xf322274]
**history [#w022ef2f]
-history <件数>
history ※直近の環境変数HISTSIZE に設定された件数を出力
history 10 ※直近の10件を出力
*コマンド履歴の操作(インクリメンタルサーチモード) [#h44...
-Ctl + R
--インクリメンタルサーチモードに移る
--次のコマンドを検索
-Enter
--検出したコマンドを実行
-Esc
--検出したコマンドを表示した状態でインクリメンタルサーチ...
--その後、コマンドを編集して実行など
*シェルのオプション機能 [#yd4d5aa7]
-有効/無効
--set -o <option-name> ※有効
--set +o <option-name> ※無効
-設定の状態を表示
--set -o ※On/Offで表示
--set +o ※現在の設定状態をコマンドで表示
*関数 [#f083880c]
**function [#y15acfdb]
-独自の関数を定義する
--function 関数名() { <command>; }
--関数名() { <command>; }
関数名()
{
<command>
}
-定義されている関数の確認
set ※一覧の後ろの方に表示される
declare -f <関数名> ※指定した関数の定義を表示
declare -f ※定義されている関数の定義を一覧表示
declare -F ※定義されている関数の関数名を一覧表示
-定義されている関数の削除
unset <>
*シェルスクリプト [#y650ae70]
-「[[シェルスクリプト]]」参照
-「[[シェルスクリプト(bash)]]」参照
*設定ファイル [#r3a24b58]
**/etc/passwd [#p01fcf69]
***構成 [#c4cc3c4f]
-ユーザ名
-パスワード("x"はシャドーパスワード)
-ユーザID
-グループID
-コメント
-ホームディレクトリ
-ログインシェル
**/etc/shadow [#eb29d589]
-シャドウファイル
**構成 [#i4ade315]
-ユーザ名
-パスワード
--構成
---$ハッシュ関数(1:MD5、2 or 2a:Blowfish、5:SHA-256、6:S...
---$ソルト
---$ハッシュ値
--*:未設定
--!!:アカウントロック
-最終更新日
-次回変更可能になるまでの日数
-有効期限(過ぎると変更必須)
-期限切れの警告日(期限何日前に警告するか)
-無効化までの連続非ログイン日数
-アカウント失効までの連続非ログイン日数
-フラグ
**/etc/shells [#dcf77358]
-利用可能なシェル
*デフォルトシェル [#e5a89b8a]
**macOS [#a6ff4155]
-Mojave 以前は bash
-Catalina 以降は zsh
*セキュリティ関連 [#be812c7c]
-Shellshock
--Bashの[[脆弱性]]
*関連サイト [#q05ff0fb]
-/bin/false と /sbin/nologin と /etc/shells について~
https://littlebuddha.hatenadiary.org/entry/20090805/12494...
-さくらのクラウドシェル - さくらインターネット~
https://www.sakura.ad.jp/services/cloudshell/
-Macの「ターミナル」のキーボードショートカット -Apple~
https://support.apple.com/ja-jp/guide/terminal/trmlshtcts...
*関連用語 [#n74f29c4]
-[[Linuxコマンド]]
-[[ハッシュテーブル]]
ページ名: