顯示具有 bash 標籤的文章。 顯示所有文章
顯示具有 bash 標籤的文章。 顯示所有文章

2009年11月2日 星期一

Bash - 常用指令

# 若發生奇怪的錯誤可能是bash 被換成 dash
$ sudo dpkg-reconfigure dash  (answer no)
     # or sudo rm /bin/sh   sudo ln -s /bin/bash /bin/sh
     # see more information: wiki.ubuntu.com/DashAsBinSh
     
     # 15 - 顯示man的位置
$ which man

     # 14 - 查看檔案大小
$ ls -alh

     # 13 - 查看檔案格式
$ file ray.env.sh

     # 12 - 查看系統訊息
$ uname -a     

     # 11 - 變數
$ ws=~/Desktop/test_shell_script
$ cd $ws

     # 10 - 化名/取消化名
$ alias lm='ls -al |more'
$ lm
$ unalias lm
$ alias cls='clear'
$ alias dir='ls -l'
$ alias gogogo='sudo apt-get install'
$ alias raywork='~/Desktop/test_shell_script'

     # 9 - 直接看檔案內容
$ cat ray.sh

     # 8 - 指令搜尋的順序
$ type -a ls

     # 7 - 壓縮/解壓縮, 打包
$ bzip2 -k-z ray.sh        #保留原檔並壓成ray.sh.bz2
$ bzip2 -k-d ray.sh.bz2    #保留原檔並解壓成ray.sh
$ unzip NERD_tree.zip      #解壓
$ unzip -l NERD_tree.zip   #看壓縮檔案內容
$ unzip -c NERD_tree.zip   #看壓縮說明檔
$ tar -jcv -f filename.tar.bz2  dirname        #壓縮打包
$ tar -jtv -f filename.tar.bz2                 #查詢內容物
$ tar -jxv -f filename.tar.bz2  -C  dirname   #解壓到dirname

     # 6 - 斷字元的改變
$ dos2unix -k ray_dos.sh  # ^M$ 改成$
$ unix2dos -k ray_unix.sh # $ 改成 ^M$
$ dos2unix -kn ray_dos.sh ray_unix.sh  #保留原檔,新檔為ray_unix.sh

     # 5 - 歷史記錄
$ history
$ !22   #選第22個

     # 4 - 用source 來執行檔案/腳本,就可以執行於父程序中
$ source ray.env.sh

     # 3 - 找檔案,建議是先換成root來找. 
$ find / -name "ray.sh" | less
$ fine / -type d -name ".vim" | less #找目錄
$ su

     # 2 - 改變user登入
$ su  

     # 1 - 變成執行檔/改變檔案權限
$ chomd 770 ray.sh  


[參考]
[1] Unix vs DOS 指令對照表
[2] 鳥哥的Linux私房菜

2009年10月22日 星期四

[2009-10-22-4] Shell scripts - 6/49大樂透

#!/bin/bash
#file name: ray.sh
#2009-10-09, RayZ, demo cases/notes using bash

#第一行可以讓這個file變成執行檔,方法是
#chomd 770 ray.sh
#./ray.sh 
# or 是一般文字檔就必須sh ray.sh

#--------------以下是手動在 bash 下執行

#0 若發生奇怪的錯誤可能是bash 被換成 dash
#$    sudo dpkg-reconfigure dash  (answer no)
       # or sudo rm /bin/sh   sudo ln -s /bin/bash /bin/sh
       # see more information: wiki.ubuntu.com/DashAsBinSh

#1 變數
#$   ws=~/Desktop/test_shell_script
#$   cd $ws

#2 化名/取消化名
#$   alias lm='ls -al |more'
#$   lm
#$   unalias lm
#$   alias cls='clear'
#$   alias dir='ls -l'
#$   alias gogogo='sudo apt-get install'
#$   alias raywork='~/Desktop/test_shell_script'

#3 直接看
#$   cat ray.sh

#4 指令搜尋的順序
#$   type -a ls

#5 壓縮/解壓縮, 打包
#$   bzip2 -k-z ray.sh   #保留原檔並壓成ray.sh.bz2
#$   bzip2 -k-d ray.sh.bz2    #保留原檔並解壓成ray.sh
#$   unzip NERD_tree.zip  #解壓
#$   unzip -l NERD_tree.zip #看壓縮檔案內容
#$   unzip -c NERD_tree.zip #看壓縮說明檔
#$   tar -jcv -f filename.tar.bz2  dirname  #壓縮打包
#$   tar -jtv -f filename.tar.bz2  #查詢內容物
#$   tar -jxv -f filename.tar.bz2  -C  dirname   #解壓到dirname

#6 斷字元的改變
#$   dos2unix -k ray_dos.sh  # ^M$ 改成$
#$   unix2dos -k ray_unix.sh # $ 改成 ^M$
#$   dos2unix -kn ray_dos.sh ray_unix.sh  #保留原檔,新檔為ray_unix.sh

#7 歷史記錄
#$   history
#$   !22   #選第22個

#8 用source 來執行檔案/腳本,就可以執行於父程序中
#$   source ray.env.sh


#9 找檔案,建議是先換成root來找. 
#$   find / -name "ray.sh" | less
#$   fine / -type d -name ".vim" | less # 找目錄
#$   su

#10 改變user登入
#    su

#11 改變檔案權限
#    chmod 770 ray.sh   


#--------------以下是bash file
#需要在 bash 下執行
#ex: vadmin@vadmin:~$ sh ray.sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
#把自定變數轉成環境變數
export PATH    

 
s1='demo case No. (1~10)'
echo -e "\n\n1) 在bash中輸入名字並印出全名 \
         \n2) 6/49大樂透 \
         \nq/Q) Exit \
         \n"
read -p "Select $s1: " democase


function exitfun(){
if [ "$democase" == "q" ] || [ "$democase" == "Q" ]; then
        echo -e "\nExit OK"
        exit 0
else
        echo " Error!! choose $s1 "
fi
}

case $democase in
     "1")
 #在bash中輸入名字並印出全名
 read -p "Please input your first name:  " firstname
 read -p "Please input your last name:   " lastname
 echo -e "\nYour full name is: $firstname $lastname "
 ;;
     "2")
        #RANDOM: 0~32767
        #6/49大樂透
        i=0
        while [ "$i" != "7" ]
        do
          i=$(($i+1))
          declare -i nu=$RANDOM*49/32768+1
          echo -n "$nu "          
        done                     
 ;;     
     *)
        exitfun;        
 ;;
esac

sh ray.sh


[參考]
[1] 鳥哥 - 學習Shell Scripts
[2] 鳥哥 - 如何改變檔案屬性與權限

[2009-10-22-4] BASH - mplayer 聽廣播


#!/bin/bash
#file name: broadcast.sh
#2009-09-24, RayZ, First script, 中廣音樂網

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
mplayer mms://bcr.media.hinet.net/RA000007

#執行成功的代碼
exit 0

若是沒裝mplayer, 就給它 sudo apt-get install mplayer 囉!!

2009年10月21日 星期三

[2009-10-21-3] BASH - alias 化名

#!/bin/bash
#file name: ray.env.sh
#2009-10-14, RayZ,

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
#把自定變數轉成環境變數
export PATH    


#0 若發生奇怪的錯誤可能是bash 被換成 dash
#$    sudo dpkg-reconfigure dash  (answer no)
       # or sudo rm /bin/sh   sudo ln -s /bin/bash /bin/sh
       # see more information: wiki.ubuntu.com/DashAsBinSh

#$ source ray.env.sh #可以成為父的shell, 若是用sh ray.env.sh只是子的shell

alias gogogo='sudo apt-get install'             #ORZ
alias raywork='cd ~/Desktop/test_shell_script'  #ORZ
alias py='python'                               #ORZ
alias lm='ls -al'                               #ORZ
  
cat ray.env.sh | grep '#ORZ' -n | cut -c -50  #抓出特定字再刪除第50以後的字元, 行號的個數。
其中,
cat(ConcAtenaTe/使連接): 把ray.env.sh 內容印到stdout(就是螢幕囉)。
grep(搜尋) '#ORZ' -n: 找出'#ORZ'字串並且列出行號, 類似google。
cut(剪去) -c -50: 保留50個字元, 其他移除,其中50個字元也包含 -n的行號字元。
另外,記得用$ source ray.env.sh #若用sh ray.env.sh則shell會認不到哦!
[參考]
[1] 鳥哥 - 命令別名設定
[2] 鳥哥 - 擷取命令