📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

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>