MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
設定 - Bashのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
設定 - Bash
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Bash (Bourne Again Shell) は、GNU Projectが開発したUnix系シェルであり、多くのLinuxディストリビューション (RHEL, Debian, SUSE等) でデフォルトのシェルとして採用されている。<br> sh (Bourne Shell) の上位互換として設計されており、コマンドライン操作とシェルスクリプト実行の両方に使われる。<br> <br> Bashの設定ファイルには以下に示す種類がある。<br> ファイルの読み込み順序はシェルの種類によって異なる。<br> <br> * <u>/etc/profile</u> *: システム全体のログインシェル向け設定ファイル *: 全ユーザに適用される。 * <u>/etc/bash.bashrc</u> *: システム全体の対話シェル向け設定ファイル *: 全ユーザに適用される。 * <u>~/.bash_profile</u> *: ユーザ固有のログインシェル向け設定ファイル *: ログイン時に1回だけ読み込まれる。 * <u>~/.bashrc</u> *: ユーザ固有の対話シェル向け設定ファイル *: 新しい端末を開くたびに読み込まれる。 * <u>~/.bash_logout</u> *: ログインシェル終了時に実行される設定ファイル <br> ログインシェルは、<u>/etc/profile</u> と <u>~/.bash_profile</u> を読み込む。<br> 対話シェル (非ログイン) は、<u>/etc/bash.bashrc</u> と <u>~/.bashrc</u> を読み込む。<br> <br> 日常的なカスタマイズは、<u>~/.bashrc</u> に記述するのが一般的である。<br> <br> 設定を反映するには <code>source ~/.bashrc</code> または <code>exec bash</code> を実行、または、再ログインする。<br> <code>export</code> を付けた変数は子プロセスへ継承され、付けない変数は現在のシェルのみで有効となる。<br> <br> 設定ファイルを編集する前にバックアップを取ることを推奨する。<br> 構文エラーが発生するとログイン不能になる場合があるため、編集後は必ず動作確認を行うこと。<br> <br><br> == 重複する履歴を保存しない == 重複するコマンドは最新の1件のみに限定する。<br> <syntaxhighlight lang="sh"> # 重複履歴を無視 export HISTCONTROL=ignoredups </syntaxhighlight> <br><br> == 空白から始めたコマンドを保存しない == 履歴に保存したくないコマンドは空白から記述する。<br> <syntaxhighlight lang="sh"> # 空白から始めたコマンドを無視 export HISTCONTROL=ignorespace </syntaxhighlight> <br><br> == 頻繁に使うコマンドは保存しない == 頻繁に使うコマンドは履歴保存対象から外す。<br> <syntaxhighlight lang="sh"> export HISTIGNORE="fg*:bg*:history*:cd*:ls*:grep*" </syntaxhighlight> <br><br> == 履歴の保存件数を増加する == <syntaxhighlight lang="sh"> export HISTSIZE=10000 </syntaxhighlight> <br><br> == ヒストリに時刻を導入する == コマンド履歴にコマンドを使った時刻を導入することが出来る。<br> <syntaxhighlight lang="sh"> HISTTIMEFORMAT='%Y%m%d %T'; export HISTTIMEFORMAT </syntaxhighlight> <br><br> == 履歴ファイルの最大行数を設定する == HISTSIZEはメモリ内の履歴行数、HISTFILESIZEは履歴ファイル (~/.bash_history) の最大行数である。<br> 通常はHISTSIZEの2倍程度に設定する。<br> <br> <syntaxhighlight lang="sh"> export HISTSIZE=10000 export HISTFILESIZE=20000 </syntaxhighlight> <br><br> == シェル終了時に履歴を追記する == デフォルトではシェル終了時に履歴ファイルが上書きされ、複数ターミナル使用時に履歴が失われる場合がある。<br> histappendオプションを有効化することで、上書きでなく追記となる。<br> <br> <syntaxhighlight lang="sh"> shopt -s histappend </syntaxhighlight> <br><br> == 複数端末で履歴をリアルタイム共有する == PROMPT_COMMANDを利用して、コマンド実行のたびに履歴をファイルへ追記し、他端末からの履歴も読み込む。<br> これにより複数のターミナル間で履歴がリアルタイム共有される。<br> <br> <syntaxhighlight lang="sh"> shopt -s histappend PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r" </syntaxhighlight> <br><br> == 重複と空白始まりを同時に無視する == HISTCONTROLにignorebothを指定することで、ignoredupsとignorespaceの両方を同時に有効化できる。<br> <br> <syntaxhighlight lang="sh"> export HISTCONTROL=ignoreboth </syntaxhighlight> <br><br> == ディレクトリ名のみで移動する (autocd) == shoptのautocdを有効にすると、ディレクトリ名を入力するだけでcdコマンドを省略して移動できる。<br> <br> <syntaxhighlight lang="sh"> shopt -s autocd </syntaxhighlight> <br><br> == cdコマンドのタイプミスを補正する == cdspellを有効にすると、cd実行時のディレクトリ名のスペルミスを自動補正する。<br> dirspellは補完時のスペル補正である。<br> <br> <syntaxhighlight lang="sh"> shopt -s cdspell shopt -s dirspell </syntaxhighlight> <br><br> == ターミナルサイズの自動更新 == checkwinsizeを有効にすると、ターミナルをリサイズした際にLINESとCOLUMNS環境変数が自動更新される。<br> プロンプト表示崩れを防ぐ。<br> <br> <syntaxhighlight lang="sh"> shopt -s checkwinsize </syntaxhighlight> <br><br> == 再帰的なグロブパターンを有効化する == globstarを有効にすると、<code>**</code> パターンで任意の深さのディレクトリを再帰的にマッチできる。<br> 例えば <code>ls **/*.txt</code> と入力することで、全階層の .txt ファイルを列挙できる。<br> <br> <syntaxhighlight lang="sh"> shopt -s globstar </syntaxhighlight> <br><br> == グロブパターンの大文字小文字を無視する == nocaseglobを有効にすると、ファイル名展開で大文字小文字を区別しなくなる。<br> <br> <syntaxhighlight lang="sh"> shopt -s nocaseglob </syntaxhighlight> <br><br> == 拡張グロブパターンを有効化する == extglobを有効にすると、<code>?(pattern)</code>、<code>*(pattern)</code>、<code>+(pattern)</code> 等の拡張パターンが利用できる。<br> <br> <syntaxhighlight lang="sh"> shopt -s extglob </syntaxhighlight> <br><br> == プロンプトをカスタマイズする == PS1環境変数でプロンプト表示を変更できる。<br> エスケープシーケンス (\u: ユーザ名、\h: ホスト名、\w: カレントディレクトリ、\$: 一般ユーザは$、rootは#) を利用する。<br> <br> <syntaxhighlight lang="sh"> export PS1="\u@\h:\w\$ " </syntaxhighlight> <br> カラー化する場合は <code>\[\033[コード m\]</code> と <code>\[\033[0m\]</code> で囲む。<br> <code>\[</code> と <code>\]</code> で囲むのは、Bashがプロンプト幅を正しく計算するためである。<br> <br> <syntaxhighlight lang="sh"> export PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ " </syntaxhighlight> <br><br> == 継続行プロンプトを設定する == 複数行コマンド入力時の2行目以降のプロンプトはPS2で指定する。<br> <br> <syntaxhighlight lang="sh"> export PS2="> " </syntaxhighlight> <br><br> == エイリアスを設定する == 頻繁に使うコマンドの組み合わせはaliasで短縮できる。<br> <br> 代表的な例を以下に示す。<br> <br> <syntaxhighlight lang="sh"> alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' alias grep='grep --color=auto' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' </syntaxhighlight> <br><br> == PATHにディレクトリを追加する == 自作スクリプトやローカルツールのディレクトリをPATHに追加する。<br> <br> $HOME/binをPATHの先頭に追加する例を以下に示す。<br> <br> <syntaxhighlight lang="sh"> export PATH="$HOME/bin:$PATH" </syntaxhighlight> <br><br> == デフォルトエディタを指定する == EDITORとVISUAL環境変数で、git、visudo、crontab等が起動するデフォルトエディタを指定する。<br> export EDITOR=vim export VISUAL=vim <br><br> == ページャのカラー表示を有効化する == PAGERで使われるlessコマンドに、ANSIカラーコード表示を有効化する -R オプションを指定する。<br> export LESS='-R' <br><br> == ロケールを設定する == LANGとLC_ALLでロケール (言語、文字コード) を指定する。<br> 日本語UTF-8環境の例を以下に示す。<br> export LANG=ja_JP.UTF-8 export LC_ALL=ja_JP.UTF-8 <br><br> == bash-completionを有効化する == bash-completionパッケージをインストール後、.bashrcに以下を記述することでgit、docker、kubectl等のコマンド補完が利用できる。<br> if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi <br><br> == readlineをカスタマイズする (.inputrc) == ホームディレクトリに.inputrcを作成すると、Bashの行編集 (readline) の動作をカスタマイズできる。<br> 補完の大文字小文字無視や履歴のインクリメンタル検索等を設定できる。<br> <br> 以下は <u>~/.inputrc</u> の設定例である。<br> <br> <syntaxhighlight lang="sh"> $include /etc/inputrc set completion-ignore-case on set show-all-if-ambiguous on set colored-stats on "\C-p": history-search-backward "\C-n": history-search-forward </syntaxhighlight> <br><br> == lsコマンドのカラー表示を有効化する == <code>dircolors</code> コマンドで環境変数 <code>LS_COLORS</code> を生成し、<code>ls --color=auto</code> でファイル種別に応じた色表示を行う。<br> <br> <syntaxhighlight lang="sh"> if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' fi </syntaxhighlight> <br><br> == デフォルトファイル権限を設定する (umask) == umaskで新規作成ファイル・ディレクトリのデフォルト権限を設定する。<br> <br> 022を指定するとファイルは644、ディレクトリは755となる。<br> グループ共有環境では002 (ファイル664、ディレクトリ775) を使う。<br> <br> umask 022 <br><br> == アイドル時に自動ログアウトする (TMOUT) == TMOUTで無操作状態が続いた場合の自動ログアウトまでの秒数を指定する。<br> セキュリティ目的で利用する。<br> <code>readonly</code> 指定でユーザによる変更を禁止できる。<br> <br> <syntaxhighlight lang="sh"> export TMOUT=300 readonly TMOUT </syntaxhighlight> <br><br> == リソース制限を設定する (ulimit) == ulimitでプロセスのリソース使用上限を設定する。<br> <code>ulimit -a</code> で現在の制限を確認できる。コアダンプ無効化やオープンファイル数の上限変更等に利用する。<br> <br> <syntaxhighlight lang="sh"> ulimit -c 0 ulimit -n 4096 </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]
設定 - Bash
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse