|
|
| 356行目: |
356行目: |
| VBoxManage setproperty machinefolder <VirtualBoxの仮想マシンディレクトリのフルパス> | | VBoxManage setproperty machinefolder <VirtualBoxの仮想マシンディレクトリのフルパス> |
| </syntaxhighlight> | | </syntaxhighlight> |
| <br><br>
| |
|
| |
| == .bashrcファイルの設定 ==
| |
| ~/.bashrcファイルに以下の設定を記述する。<br>
| |
| # ~/.bashrcファイル
| |
|
| |
| # Ctrl+Dでシェルを終了しない
| |
| set -o ignoreeof
| |
|
| |
| # 既存のファイルをリダイレクトで上書きしない
| |
| set -o noclobber
| |
|
| |
| # ディレクトリ名だけで実行する時、cdコマンドの引数で指定したものとして実行する
| |
| shopt -s autocd
| |
|
| |
| # コマンドの重複を履歴に残さない
| |
| export HISTCONTROL=ignoredups
| |
|
| |
| # 空白から始めたコマンドを無視
| |
| export HISTCONTROL=ignorespace
| |
|
| |
| # コマンド履歴に残さないコマンド群
| |
| HISTTIMEFORMAT='%Y%m%d %T ';
| |
| export HISTTIMEFORMAT
| |
|
| |
| # エイリアスの設定
| |
| alias cd='cd -P'
| |
| alias rm='rm -i'
| |
| alias cp='cp -i'
| |
| alias mv='mv -iv'
| |
| alias ls='ls -hlF --color=auto'
| |
| alias cat='cat -n'
| |
| alias less='less -n'
| |
| alias clear='clear && echo -en "\e[3J"'
| |
| alias en='LANG=C LANGUAGE=C LC_ALL=C'
| |
| alias lgrep='ls -ahlF | grep'
| |
| alias igrep='sudo zypper search -i --detail'
| |
| alias repoclean='sudo zypper clean -a && sudo zypper --gpg-auto-import-keys refresh && sudo zypper refresh'
| |
| alias nano='nano -lmS'
| |
| alias snano='sudo nano -lmS'
| |
| alias skate='kdesu /usr/bin/kate'
| |
| alias startnw=' sudo systemctl stop wickedd wicked; sudo systemctl start NetworkManager'
| |
| alias startwicked=' sudo systemctl stop NetworkManager; sudo systemctl start wickedd wicked'
| |
| alias kde=' echo <パスワード> | sudo -S systemctl restart graphical.target'
| |
| alias gnome=' echo <パスワード> | sudo -S systemctl restart graphical.target'
| |
| alias udesktop='update-desktop-database $HOME/.local/share/applications'
| |
|
| |
| # KDE Plasmaを使用している場合
| |
| alias plasma=' /usr/bin/kquitapp5 plasmashell; plasmashell > /dev/null 2>&1 & disown; sleep 2; exit'
| |
| #alias plasma=" killall plasmashell; plasmashell > /dev/null 2>&1 & disown"
| |
|
| |
| # VS Codeをインストールしている場合
| |
| alias scode='code --user-data-dir='<VSCodeのプロジェクトディレクトリ>''
| |
|
| |
| alias suse='cat /etc/SUSE-brand'
| |
| alias sshpi='ssh <ユーザ名>@<ホスト名またはIPアドレス> -p <ポート番号> -i <暗号鍵のフルパス名>' # Raspberry Pi向けSSH接続の設定
| |
| alias sshxrea='sshpass -p <パスワード> ssh <ユーザ名>@<ホスト名> -p <ポート番号>' # XREA向けSSH接続の設定
| |
|
| |
| # KVMをインストールしている場合
| |
| alias startkvm='sudo systemctl restart libvirtd'
| |
| alias stopkvm='sudo systemctl stop libvirtd && sudo systemctl stop libvirtd.socket && sudo systemctl stop libvirtd-admin.socket && sudo systemctl stop libvirtd-ro.socket'
| |
|
| |
| # FreeRDPをインストールしている場合
| |
| alias rwin10='/home/ユーザ名/FreeRDP/freerdp-nightly/bin/xfreerdp /u:<仮想マシンのユーザ名> /p:<パスワード> /w:1536 /h:960 /sound:latency:400 /drive:suse,<共有するディレクトリ> /v:192.168.122.130'
| |
| alias r2016='/home/ユーザ名/FreeRDP/freerdp-nightly/bin/xfreerdp /u:<仮想マシンのユーザ名> /p:<パスワード> /w:1536 /h:960 /sound:latency:400 /drive:suse,<共有するディレクトリ> /v:192.168.122.131'
| |
|
| |
| # SUSEが仮想マシンの場合
| |
| alias mhgfs='sudo vmhgfs-fuse -o allow_other .host:/Common /mnt/hgfs'
| |
| alias uhgfs='sudo fusermount -u /mnt/hgfs'
| |
|
| |
| # コマンド履歴に残さないコマンド群
| |
| # SUSEがホストの場合
| |
| export HISTIGNORE="fg*:bg*:history*:cd*:ls*:cat*:less*:more*:grep*:lgrep*:igrep*:startkvm:stopkvm:repoclean*:suse:which*:clear:man*:repoclean:startx*:exit:"
| |
| # SUSEが仮想マシンの場合
| |
| export HISTIGNORE="fg*:bg*:history*:cd*:ls*:cat*:less*:more*:grep*:lgrep*:igrep*:startkvm:stopkvm:repoclean*:suse:which*:clear:man*:repoclean:startx*:exit:mhgfs:uhgfs"
| |
|
| |
| # プロンプトの表示形式
| |
| PS1='\e[0;31m\u\e[0m@\e[0;32m\h\e[0m(\t) [Path \w] \n> '
| |
|
| |
| # 変数FIGNOREのカスタマイズ
| |
| # ディレクトリ名およびファイル名を設定する場合、補完対象から除外される
| |
| export FIGNORE=.svn:${FIGNORE}
| |
|
| |
| # mkdirとcdを同時実行
| |
| function mkcd()
| |
| {
| |
| if [ "$#" -eq 0 ]; then
| |
| echo "Too few arguments!"
| |
| elif [ "$#" -eq 1 ]; then
| |
| if [ -d $1 ]; then
| |
| echo "$1 already exists!"
| |
| cd $1
| |
| else
| |
| mkdir -p $1 && cd $1
| |
| fi
| |
| else
| |
| echo "Too many arguments!"
| |
| fi
| |
| }
| |
|
| |
| # カレントディレクトリに存在するディレクトリとファイルの検索
| |
| function lgrep()
| |
| {
| |
| if [ "$#" -eq 0 ]; then
| |
| echo "Please specify Regular Expression."
| |
| elif [ "$#" -eq "1" ]; then
| |
| OLDIFS=$IFS
| |
| IFS=$'\n\t'
| |
|
| |
| for OBJECT in $(\ls -A --group-directories-first | \grep -iE "$1")
| |
| do
| |
| ls -AdhlF $OBJECT
| |
| done
| |
| unset OBJECT
| |
|
| |
| echo ""
| |
|
| |
| IFS=$OLDIFS
| |
| else
| |
| echo "Too many arguments!"
| |
| fi
| |
| }
| |
|
| |
| # パターンにマッチするファイル内容を検索する
| |
| function datagrep()
| |
| {
| |
| if [ "$#" -eq 2 ]; then
| |
| local IFS_BACKUP=$IFS
| |
| IFS=$''
| |
|
| |
| for OBJECT in $(\find . -type f -name "${1}" -print0 | \xargs -0 \grep -inE "${2}")
| |
| do
| |
| echo "${OBJECT}"
| |
| done
| |
|
| |
| echo ""
| |
|
| |
| IFS=$IFS_BACKUP
| |
| elif [ "$#" -eq 3 ]; then
| |
| # 第1引数で指定したディレクトリが存在するか確認する
| |
| if [ ! -d "$1" ]; then
| |
| echo "Not Exist Directory $1" 1>&2
| |
| return 1
| |
| fi
| |
|
| |
| local IFS_BACKUP=$IFS
| |
| IFS=$''
| |
|
| |
| # 現在のカレントディレクトリを一時的に保存する
| |
| local CURRENTDIR=$(\pwd)
| |
|
| |
| # 第1引数で指定したディレクトリに移動する
| |
| cd "${1}";
| |
|
| |
| # 第2引数で指定したパターンを使用して検索する
| |
| for OBJECT in $(\find . -type f -name "${2}" -print0 | \xargs -0 \grep -inE "${3}")
| |
| do
| |
| echo "${OBJECT}"
| |
| done
| |
|
| |
| # カレントディレクトリに戻る
| |
| cd "${CURRENTDIR}"
| |
|
| |
| echo ""
| |
|
| |
| IFS=$IFS_BACKUP
| |
|
| |
| unset -v OBJECT
| |
| else
| |
| echo "Specify Arguments." 1>&2
| |
| fi
| |
|
| |
| return 0
| |
| }
| |
|
| |
| # manコマンドの結果をfirefoxで閲覧
| |
| function manh()
| |
| {
| |
| if [ "$#" -eq 0 ]; then
| |
| echo "Too few arguments!"
| |
| elif [ "$#" -eq "1" ]; then
| |
| man --html=firefox $1 &
| |
| else
| |
| echo "Too many arguments!"
| |
| fi
| |
| }
| |
|
| |
| # KVMの起動
| |
| function startkvm()
| |
| {
| |
| local KVM_STATUS=$(sudo systemctl status libvirtd | grep "Active:" | grep -ie "dead")
| |
| if [ -n "KVM_STATUS" ]; then
| |
| sudo systemctl start libvirtd
| |
| fi
| |
|
| |
| local NETWORK_STATUS=$(sudo virsh net-info default | grep -ie "起動中" -ie "Active" | grep -ie "no")
| |
| if [ -n "$NETWORK_STATUS" ]; then
| |
| sudo virsh net-start default
| |
| fi
| |
| }
| |
|
| |
| # KVMの停止
| |
| function stopkvm()
| |
| {
| |
| local NETWORK_STATUS=$(sudo virsh net-info default | grep -ie "起動中" -ie "Active" | grep -ie "yes")
| |
| if [ -n "$NETWORK_STATUS" ]; then
| |
| sudo virsh net-destroy default
| |
| fi
| |
|
| |
| local KVM_STATUS=$(sudo systemctl status libvirtd | grep "Active:" | grep -ie "running")
| |
| if [ -n "KVM_STATUS" ]; then
| |
| sudo systemctl stop libvirtd libvirtd.socket libvirtd-admin.socket libvirtd-ro.socket
| |
| fi
| |
| }
| |
|
| |
| # Apache2とMySQLの起動
| |
| function startlamp()
| |
| {
| |
| local APACHE2_STATUS=$(sudo systemctl status apache2 | grep -ie "Active:" | grep -ie "dead")
| |
| if [ -n "APACHE2_STATUS" ]; then
| |
| sudo systemctl start apache2
| |
| fi
| |
|
| |
| local MYSQL8_STATUS=$(sudo systemctl status mysql | grep -ie "Active:" | grep -ie "dead")
| |
| if [ -n "MYSQL8_STATUS" ]; then
| |
| sudo systemctl start mysql
| |
| fi
| |
| }
| |
|
| |
| # Apache2とMySQLの停止
| |
| function stoplamp()
| |
| {
| |
| local APACHE2_STATUS=$(sudo systemctl status apache2 | grep "Active:" | grep -ie "running")
| |
| if [ -n "APACHE2_STATUS" ]; then
| |
| sudo systemctl stop apache2
| |
| fi
| |
|
| |
| local MYSQL8_STATUS=$(sudo systemctl status mysql | grep "Active:" | grep -ie "running")
| |
| if [ -n "MYSQL8_STATUS" ]; then
| |
| sudo systemctl stop mysql
| |
| fi
| |
| }
| |
|
| |
| # 環境変数PATHの設定
| |
| function SetPATH()
| |
| {
| |
| OLDIFS=${IFS}
| |
| IFS=$':'
| |
|
| |
| BEFORE_HOME='$HOME'
| |
| AFTER_HOME=${HOME}
| |
| PATH_NAME=$(echo ${1//${BEFORE_HOME}/${AFTER_HOME}})
| |
|
| |
| SLASH=$(echo ${PATH_NAME: -1:1})
| |
| if [ ${SLASH} = "/" ]; then
| |
| LENGTH="${#PATH_NAME}"
| |
| let LENGTH=${LENGTH}-1
| |
| PATH_NAME=$(echo ${PATH_NAME:0:${LENGTH}})
| |
| fi
| |
|
| |
| if [ ! -d ${PATH_NAME} ]; then
| |
| echo "No Exist Directory"
| |
| return 1
| |
| fi
| |
|
| |
| EXIST_FLAG=0
| |
| for VALUE in ${PATH}
| |
| do
| |
| if [ ${VALUE} = ${PATH_NAME} ]; then
| |
| EXIST_FLAG=1
| |
| break
| |
| fi
| |
| done
| |
|
| |
| if [ ${EXIST_FLAG} -eq 0 ]; then
| |
| export PATH="$PATH_NAME:$PATH"
| |
| elif [ ${EXIST_FLAG} -eq 1 ]; then
| |
| echo "Already Exist ${PATH_NAME} in PATH " 1>&2
| |
| fi
| |
|
| |
| unset -v OLDIFS SLASH LENGTH BEFORE_HOME AFTER_HOME PATH_NAME EXIST_FLAG VALUE
| |
|
| |
| IFS=${OLDIFS}
| |
|
| |
| return 0
| |
| }
| |
|
| |
| function SetLIBRARY()
| |
| {
| |
| OLDIFS=${IFS}
| |
| IFS=$':'
| |
|
| |
| BEFORE_HOME='$HOME'
| |
| AFTER_HOME="$HOME"
| |
| PATH_NAME=$(echo ${1//${BEFORE_HOME}/${AFTER_HOME}})
| |
|
| |
| SLASH=$(echo ${PATH_NAME: -1:1})
| |
| if [ ${SLASH} = "/" ]; then
| |
| LENGTH="${#PATH_NAME}"
| |
| let LENGTH=${LENGTH}-1
| |
| PATH_NAME=$(echo ${PATH_NAME:0:${LENGTH}})
| |
| fi
| |
|
| |
| if [ ! -d ${PATH_NAME} ]; then
| |
| echo "No Exist Directory"
| |
| return 1
| |
| fi
| |
|
| |
| EXIST_FLAG=0
| |
| for VALUE in ${PATH}
| |
| do
| |
| if [ ${VALUE} = ${PATH_NAME} ]; then
| |
| EXIST_FLAG=1
| |
| break
| |
| fi
| |
| done
| |
|
| |
| if [ ${EXIST_FLAG} -eq 0 ]; then
| |
| export LD_LIBRARY_PATH="$PATH_NAME:$LD_LIBRARY_PATH"
| |
| elif [ ${EXIST_FLAG} -eq 1 ]; then
| |
| echo "Already Exist ${PATH_NAME} in PATH " 1>&2
| |
| fi
| |
|
| |
| unset -v OLDIFS SLASH LENGTH BEFORE_HOME AFTER_HOME PATH_NAME EXIST_FLAG VALUE
| |
|
| |
| IFS=${OLDIFS}
| |
| }
| |
|
| |
| # 環境変数PATHの重複を削除する
| |
| function DeleteDuplicate()
| |
| {
| |
| if typeset -A &>/dev/null; then # 連想配列が使用できるか確認する
| |
| # 使える場合
| |
| typeset -A _paths
| |
| typeset _results
| |
|
| |
| while read -r _p
| |
| do
| |
| if [[ -n ${_p} ]] && (( ${_paths["${_p}"]:-1} )); then
| |
| _paths["${_p}"]=0
| |
| _results=${_results}:${_p}
| |
| fi
| |
| done <<<"${PATH//:/$'\n'}"
| |
|
| |
| PATH=${_results/:/}
| |
|
| |
| unset -v _p _paths _results
| |
| else
| |
| # 使えない場合はawkを使用する
| |
| typeset _p=$(awk 'BEGIN{RS=":";ORS=":"} !x[$0]++' <<<"${PATH}:")
| |
| PATH=${_p%:*:}
| |
|
| |
| unset -v _p
| |
| fi
| |
| }
| |
| <br><br> | | <br><br> |
|
| |
|