2017年2月21日 星期二

read 從變數中讀取資料

A=a;
read r1 <<<$A;

B=b
r2=$(echo $B |while IFS= read -r r2;do :;echo $r2;done;);
echo = $r1 = $r2 =

A=$(echo -e "a1\nb1\n");
read r1 r2 <<<$A;
echo = $r1 = $r2 =


x1="1.2.3"
read a1 a2 a3<<<${x1//./ }
echo =$a1 =$a2 =$a3

x="1 2 3 4 5 6";
i=1;
while read -d " "; do :; eval "xx${i}=$REPLY";i=$(($i+1)); done <<<$x;
echo $xx1 $xx2 $xx3 $xx4;

Linux share library path 筆記

相關設定檔
/etc/ld.so.cache  
/etc/ld.so.conf   
/etc/ld.so.conf.d/

ldconfig (用來產生 /etc/ld.so.cache)
ldconfig -p 列出所有的share library

環境變數
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/lib

Linux S.M.A.R.T 摘要

查硬碟資訊
smartctl -i /dev/sda

開啟 S.M.A.R.T
smartctl -s on /dev/sda

查看健康狀態
smartctl -H /dev/sda

查看健康狀態(細項)
smartctl -A /dev/sda

進行一次自我檢測(在背景執行)
smartctl -t short /dev/sda

查看自我檢測執行進度
smartctl -a /dev/sda

Bash 檢查 kernel 版本


function kernelv(){
[ -f /proc/version ] && read _1 _2 v _3 < /proc/version || return 5;


v=${v%%-*};v=${v//./ };
read v1 v2 v3 <<<$v;
v1=${v1:-0};v2=${v2:-0};v3=${v3:-0};

[ "$1" == "" ] && { echo $v1.$v2.$v3; return 4; };
_v=${1//./ };
read _v1 _v2 _v3 <<<$_v;

_v1=${_v1:-0};_v2=${_v2:-0};_v3=${_v3:-0};

[ "$_v1" -gt "$v1" ] && { echo "gt"; return 1;  };
[ "$_v1" -lt "$v1" ] && { echo "lt"; return 2;  };
[ "$_v2" -gt "$v2" ] && { echo "gt"; return 1;  };
[ "$_v2" -lt "$v2" ] && { echo "lt"; return 2;  };
[ "$_v3" -gt "$v3" ] && { echo "gt"; return 1;  };
[ "$_v3" -lt "$v3" ] && { echo "lt"; return 2;  };
echo "eq"; return 0;
}

grub重新安裝摘要

grub-install  --boot-directory=DIR  /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

相關檔案
/etc/default/grub
/etc/grub.d/40_custom
/etc/fstab

Linux symbolic link 相關指令

readlink  -- 查詢 symbolic link 連結檔案
stat --- 查詢檔案屬性

2017年2月13日 星期一