!!!インストール *デスクトップまたはサーバ(GUI)としてインストール *kdump は無効 !!!サーバの設定 !!sudo の設定 su visudo パスワードを求める場合は以下をコメントイン %wheel ALL=(ALL) ALL パスワードを求めない場合は以下をコメントイン %wheel ALL=(ALL) NOPASSWD: ALL sudo の実行時は path が変わるので secure_path の行を探して、編集する。 !!backup sudo vi /usr/local/bin/backup #!/bin/sh if [ -e "$1" ]; then dir=. if [ "$2" != "" ]; then dir=$2 fi op= if [ -d "$1" ]; then op=-r fi tofile=$dir/$1_$(date +%Y%m%d_%H%M%S) cp -p $op $1 $tofile echo "backup to $tofile" fi !!yumの設定 !media の追加 sudo vi /etc/yum.repos.d/CentOS-Media.repo [media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ file:///media/cdrom/ file:///run/media/centos/CentOS%207%20x86_64/ file:///media/cdrecorder/ enabled=0 gpgcheck=0 # gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 !epelの利用 sudo yum install epel-release !nux-dextop の利用 sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm !他のリポジトリ http://everything-you-do-is-practice.blogspot.com/2017/09/centos-epel-ius-remi-centos-5x-centos.html !yum-cron http://pentan.info/server/linux/yum_updatesd.html https://www.hiroom2.com/2016/05/27/centos-7-%E8%87%AA%E5%8B%95%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%82%92%E3%81%99%E3%82%8B/ とりあえず、自動更新はしない方向で運用。 なので、yum-cronもyum-updatesdもインストールしない。 !!グラフィックドライバ オンボードのインテルチップを使う。 CentOSインストール時にドライバもインストールされるはず。 yum install xorg-x11-drv-intel !!SElinux を無効にする /etc/sysconfig/selinux の SELINUX=enforcing を SELINUX=disabled に変更。 !!ホスト名 hostnamectl set-hostname ホスト名 確認 hostnamectl /etc/hostname を直接書きなおしても良い。上記コマンドでこのファイルも編集される。 !!ネットワーク関連 !ネットワーク設定 NetworkManagerではマルチセッションが張れないなどの問題があるので、無効化して従来のnetworkで設定する。 [[NetworkManagerを無効にする]] !仮想ブリッジ virbr0 の無効化 [[仮想ブリッジ virbr0 の無効化と有効化]] !ファイアウォールの設定 firewalld を止めて、 iptablesコマンドを使う。 毎回起動時にiptablesコマンドで設定するので、iptables-servicesは不要だけど 一応入れておく。 yum install iptables-services systemctl disable firewalld systemctl enable iptables-services [[iptables でファイヤーウォール]] !SSH [[SSHサーバーの設定]] !DNS [[DNSサーバーの設定]] !DHCPサーバーの設定 [[DHCPサーバーの設定]] !sambaサーバーの設定 [[sambaサーバーの設定]] !!sendmailの設定 サービス等からメールを送信するためにsmtpとしてgmailを使う。 [[sendmailコマンドのsmtpサーバの設定]] !!ハードディスク監視 !HDDのスピンダウン設定 [[Linuxでアクセスの無いHDDをスピンダウンする]] !smartd の設定 [[LinuxでHDDのSMARTをモニタリングする]] !!locateの検索対象 /mnt などが検索対象外になっていることを確認する。 [[Linux で locateを使ってファイルを検索する]] !!バックアップジョブ !システムバックアップ [[システムバックアップ XFS]] !データバックアップ [[ディレクトリをバックアップする]] !crontabでスケジューリング crontab -e 夜中3時にバックアップ開始 00 03 * * * /mnt/sdb/backup/backup.sh または、 vim /etc/crontab 00 03 * * * root /mnt/sdb/backup/backup.sh !!時刻同期 CentOS7ではntpdではなく、chronyに変わった。 ntpdは不要。 systemctl status chronyd systemctl enable ntpd !!!デスクトップの設定 !!bashの設定 !.bashrc # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # 新しく作られたファイルのパーミッションがつねに 644 になるようにする umask 022 # core ファイルを作らせないようにする ulimit -c 0 # export GTK_IM_MODULE=ibus # export XMODIFIERS=@im=ibus # export QT_IM_MODULE=ibus # 非対話モードの場合は終了 if [[ ! "${PS1}" ]] ; then return fi ######################## # 環境ごとの設定 ######################## if [[ "${MSYSTEM}" ]] ; then export COPY_CLIP='eval nkf -s | clip' alias peco='percol' GIT_PROMPT=/usr/share/git/completion/git-prompt.sh export DISPLAY=localhost:0.0 elif [[ "$(uname)" == 'Darwin' ]]; then export COPY_CLIP='pbcopy' GIT_PROMPT=/usr/local/etc/bash_completion.d/git-prompt.sh if [ -f $(brew --prefix)/etc/bash_completion ]; then . $(brew --prefix)/etc/bash_completion fi else # elif [[ "$(expr substr $(uname -s) 1 5)" == 'Linux' ]]; then if [ -f /mnt/c/Windows/system32/clip.exe ]; then export COPY_CLIP='clip.exe' else export COPY_CLIP='xclip -i -sel clip' fi GIT_PROMPT=/usr/share/git-core/contrib/completion/git-prompt.sh fi ######################## # 基本的な設定 ######################## export PAGER='less -m -i' # EOF (Ctrl-D) 入力は 10回まで許可。 IGNOREEOF=10 # 履歴のサイズ HISTSIZE=1000 # 履歴ファイルを上書きではなく追加する。 shopt -s histappend # 実行するまえに必ず展開結果を確認できるようにする。 shopt -s histverify # 履歴の置換に失敗したときやり直せるようにする。 shopt -s histreedit #履歴の重複を削除 export HISTCONTROL=erasedups #ignoredups,ignorespace,erasedups bind '"\C-n": history-search-forward' bind '"\C-p": history-search-backward' ######################## # aliasの設定 ######################## alias less='less -i' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # alias for misc alias grep='grep --color' # alias for some shortcuts for different directory listings if [[ "$(uname)" == 'Darwin' ]]; then export LSCOLORS=gxfxcxdxbxegedabagacad alias ls='ls -G' else export LS_COLORS='di=01;36:ow=30;42' alias ls='ls -hF --color=auto --show-control-chars' fi alias ll='ls -l' alias la='ls -A' alias l='ls -CF' alias tig='tig --date-order' # alias cdd='cd $(find . -maxdepth 1 -type d | peco)' alias cdd='cd' _cdd() { _cd COMPREPLY=($((IFS=$'\n'; echo "${COMPREPLY[*]}") | peco)) } complete -F _cdd cdd ######################## # pecoで履歴をインクリメントサーチ ######################## peco-select-history() { declare l=$(HISTTIMEFORMAT= history | sort -k1,1nr | perl -ne 'BEGIN { my @lines = (); } s/^\s*\d+\s*//; $in=$_; if (!(grep {$in eq $_} @lines)) { push(@lines, $in); print $in; }' | peco --query "$READLINE_LINE") READLINE_LINE="$l" READLINE_POINT=${#l} } bind -x '"\C-r": peco-select-history' ######################## # git ######################## gitps1=true if [[ -r ${GIT_PROMPT} ]]; then . ${GIT_PROMPT} gitps1="__git_ps1" fi GIT_PS1_SHOWDIRTYSTATE=true GIT_PS1_SHOWUNTRACKEDFILES=true GIT_PS1_SHOWSTASHSTATE=true GIT_PS1_SHOWUPSTREAM=auto if [[ "${MSYSTEM}" ]] ; then export PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`${gitps1}`\[\033[0m\]\n$ ' else export PS1='[\u@\h \[\033[33m\]\W\[\033[36m\]$(${gitps1})\[\033[0m\]]\$ ' fi # デフォルト # '[\u@\h \W]\$ ' ######################## # ssh agent ######################## agent="$HOME/.ssh/agent" if [ -S "$SSH_AUTH_SOCK" ]; then case $SSH_AUTH_SOCK in /tmp/*/agent.[0-9]*) ln -snf "$SSH_AUTH_SOCK" $agent && export SSH_AUTH_SOCK=$agent esac elif [ -S $agent ]; then export SSH_AUTH_SOCK=$agent fi if [[ ! "${TMUX}" ]] && type -a tmux > /dev/null 2>&1; then tmux new-session fi !.bashrc(以前使っていたもの) http://www.unixuser.org/~euske/doc/bashtips/bashrc.html ## 新しく作られたファイルのパーミッションがつねに 644 になるようにする。 umask 022 ## core ファイルを作らせないようにする。 ulimit -c 0 export PAGER='less -m -i' export LS_COLORS='di=01;36' if [[ "${PS1}" ]] ; then # EOF (Ctrl-D) 入力は 10回まで許可。 IGNOREEOF=10 # 履歴のサイズ HISTSIZE=100 # 履歴ファイルを上書きではなく追加する。 shopt -s histappend # 実行するまえに必ず展開結果を確認できるようにする。 shopt -s histverify # 履歴の置換に失敗したときやり直せるようにする。 shopt -s histreedit #履歴の重複を削除 export HISTCONTROL=erasedups #ignoredups,ignorespace,erasedups bind '"\C-n": history-search-forward' bind '"\C-p": history-search-backward' # alias # for interactive operation alias less='less -i' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # alias for misc alias grep='grep --color' # alias for some shortcuts for different directory listings alias ls='ls -hF --color=always --show-control-chars' alias ll='ls -l' alias la='ls -A' alias l='ls -CF' # alias peco=percol # alias cdd='cd $(find . -maxdepth 1 -type d | peco)' fi # pecoで履歴をインクリメントサーチ # peco-select-history() { # declare l=$(HISTTIMEFORMAT= history | sort -k1,1nr | perl -ne 'BEGIN { my @lines = (); } s/^\s*\d+\s*//; $in=$_; if (!(grep {$in eq $_} @lines)) { push(@lines, $in); print $in; }' | peco --query "$READLINE_LINE") # READLINE_LINE="$l" # READLINE_POINT=${#l} # } # bind -x '"\C-r": peco-select-history' # git gitps1=true GIT_CONTRIB_DIR=/usr/share/git-core/contrib if [ -r ${GIT_CONTRIB_DIR}/completion/git-prompt.sh ]; then . ${GIT_CONTRIB_DIR}/completion/git-prompt.sh gitps1="__git_ps1" fi GIT_PS1_SHOWDIRTYSTATE=true GIT_PS1_SHOWUNTRACKEDFILES=true GIT_PS1_SHOWSTASHSTATE=true GIT_PS1_SHOWUPSTREAM=auto export PS1='[\u@\h \W$(${gitps1})]\$ ' # デフォルト # '[\u@\h \W]\$ ' !.inputrc [[inputrc]] !~/.ssh/config [[SSHクライアントの設定]] !!ウインドウマネージャの設定 !ログイン画面 もし、ログイン画面でユーザ名も入力させる(ユーザ名を選ばせない)場合は sudo -u gdm dbus-launch gsettings set org.gnome.login-screen disable-user-list true を実行する。 文字が小さい場合は、ログイン画面右上のアクセシビリティアイコンを選択して 大きな文字 を選択する。倍率は1.2倍固定だが以下のコマンドで倍率を変更できる。 ただし、大きな文字を選択し直すと1.2倍に戻ってしまう。 sudo -u gdm dbus-launch gsettings set org.gnome.desktop.interface text-scaling-factor '1.5' !GNOME3 [[CentOS7でGNOME3を使う]] !MATE [[CentOS7でMATEを使う]] !Xfce [[CentOS7でXfceを使う]] !ワークスペース毎の壁紙変更 [[Gnome でワークスペース毎に壁紙を変更する]] !クリップボードマネージャ [[Linux でクリップボード管理]] !tmux [[tmux]] !XMMS [[CentOS でxmmsを使う]] !VLC [[CentOS でvlc playerを使う]] !!プライバシーの設定 基本的にすべて無効 !!日本語入力 [[CentOSでMozcを使う]] {{category2 OS,Linux}}