質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.28%

  • Linux

    2804questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    2073questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • bash

    485questions

    bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

bash コマンドの履歴の設定について

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 65

pipi

score 118

お疲れ様です。

linuxのコマンド履歴を1000→5000へ変更し、さらにコマンドを実行した日時を
historyコマンドで表示する様にしたいと思っているのですが、bashの設定ファイルは、
/etc/profile
/etc/bashrc
~/.bash_profile
~/.bash_logout
~/.bashrc

などと、たくさんあり、色々なサイトを調べたのですが、結局どのファイルを変更すれば
よいのか分からない状態です。

取り敢えずは、/etc/profile内の46行目にあるHISTSIZE=1000を5000にすれば良いのでしょうか?また、実行した日時を表示するためには、/etc/profile内のどこ(何行目あたり)に以下をの
記述を記載すれば良いのでしょうか?

HISTTIMEFORMAT='%F %T '
cat -n /etc/profile
     1    # /etc/profile
     2    
     3    # System wide environment and startup programs, for login setup
     4    # Functions and aliases go in /etc/bashrc
     5    
     6    # It's NOT a good idea to change this file unless you know what you
     7    # are doing. It's much better to create a custom.sh shell script in
     8    # /etc/profile.d/ to make custom changes to your environment, as this
     9    # will prevent the need for merging in future updates.
    10    
    11    pathmunge () {
    12        case ":${PATH}:" in
    13            *:"$1":*)
    14                ;;
    15            *)
    16                if [ "$2" = "after" ] ; then
    17                    PATH=$PATH:$1
    18                else
    19                    PATH=$1:$PATH
    20                fi
    21        esac
    22    }
    23    
    24    
    25    if [ -x /usr/bin/id ]; then
    26        if [ -z "$EUID" ]; then
    27            # ksh workaround
    28            EUID=`/usr/bin/id -u`
    29            UID=`/usr/bin/id -ru`
    30        fi
    31        USER="`/usr/bin/id -un`"
    32        LOGNAME=$USER
    33        MAIL="/var/spool/mail/$USER"
    34    fi
    35    
    36    # Path manipulation
    37    if [ "$EUID" = "0" ]; then
    38        pathmunge /usr/sbin
    39        pathmunge /usr/local/sbin
    40    else
    41        pathmunge /usr/local/sbin after
    42        pathmunge /usr/sbin after
    43    fi
    44    
    45    HOSTNAME=`/usr/bin/hostname 2>/dev/null`
    46    HISTSIZE=1000
    47    if [ "$HISTCONTROL" = "ignorespace" ] ; then
    48        export HISTCONTROL=ignoreboth
    49    else
    50        export HISTCONTROL=ignoredups
    51    fi
    52    
    53    export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
    54    
    55    # By default, we want umask to get set. This sets it for login shell
    56    # Current threshold for system reserved uid/gids is 200
    57    # You could check uidgid reservation validity in
    58    # /usr/share/doc/setup-*/uidgid file
    59    if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    60        umask 002
    61    else
    62        umask 022
    63    fi
    64    
    65    for i in /etc/profile.d/*.sh ; do
    66        if [ -r "$i" ]; then
    67            if [ "${-#*i}" != "$-" ]; then 
    68                . "$i"
    69            else
    70                . "$i" >/dev/null
    71            fi
    72        fi
    73    done
    74    
    75    unset i
    76    unset -f pathmunge


宜しくお願い致します。


アドバイスいただきました通り、.bashrcに以下の2つを追記し解決できました。

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

HISTSIZE=10000
HISTTIMEFORMAT='%y/%m/%d %H:%M:%S ';
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

設定ファイルは、上記の他に、/etc/profile.d/*.shにもあります。

/etc/profile ~/.bash_profile は、ログインシェルの場合にだけ実行されます。
/etc/bashrc ~/.bashrcは、ログインシェルでない対話型シェルの場合にだけ実行されます。
/etc/profile.d/*.shは、/etc/profile/etc/bashrcの両方から参照されて実行されます。

ログインシェルかどうかによって、実行されるファイルが異なるので、
1.全ユーザーの設定を変更したいのなら、/etc/profile.d/local.shなどを作って、そこに書くと良いかと思います。

2.自分だけの設定を変更したいのなら、CentOSのデフォルトの~/.bash_profileだと、~/.bashrcを読み込んで実行するように書いてあるので、~/.bashrcに書いておくと、どちらのケースでも実行されます。
~/.bash_profileから~/.bashrcを読み込むように書かれていない場合は両方に書くことになります)

記述する場合は、ファイルのどこでも良いです。
デフォルトの物に追記する場合は、自分の記述は末尾にまとめる方があとで分かりやすいと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

/etc/profileは全ユーザ共通の設定を行うファイルです。
/etc配下にあることからわかるように、一般ユーザの権限で書き換えることはできません。
ユーザが自分の環境設定を行う場合は、~/.profileや~/.bashrcに書くことで、システムの設定値を上書きしたり、独自の設定を追加することができます。
~/.profileはログイン時にのみ読まれるファイルです。
~/.bashrcはbashをコマンドとして起動する場合に読まれるファイルです。
ですので、どんな場合にも反映したい設定は、~/.bashrcに書くとよいでしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.28%

関連した質問

同じタグがついた質問を見る

  • Linux

    2804questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    2073questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • bash

    485questions

    bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。