一 實時日誌跟蹤 主動刷新,確保看到最新的檔案內容。 格式: tail -f 文件名全稱 默認狀況下它顯示文件的最後十行。 如: cd/app/log/passage tail -f passage.log 實時日誌跟蹤 tail -f -n 100 catalina.out 從最後的100行開始顯示 二。vim 文件編輯器 vim test.txt 解釋:若是沒有該文件 則創建該文件 並進入命令模式 若是有的話直接進入命令模式 按下 i 鍵 進入編輯輸入模式 輸入內容 按下ESC鍵 返回到命令模式 輸入 :wq 文件保存並退出 ,若是不保存 則 :q 便可 強制保存退出 :wq! vim 三種操做狀態,分別是命令模式、插入模式和底線命令模式 三。文件刪除 文件刪除 格式 : rm 文件名 四。刪除目錄及其下全部文件、文件夾 rm -rf命令 -r 就是向下遞歸,無論有多少級目錄,一併刪除 -f 就是直接強行刪除,不做任何提示的意思 如: rm -rf /var/log/httpd/access/ 將會刪除access目錄及其下全部文件、文件夾 如: rm -f /var/log/httpd/access.log 將會強制刪除 access.log這個文件 rm -rf * #刪除當前目錄下全部文件,排除 delete.bat rm -rf `ls *.|egrep -v delete.bat` rm -rf *.log rm -rf session/Fixco* 五。刪除空的目錄 rmdir dir1 刪除一個叫作 'dir1' 的目錄 建立目錄 : mkdir 文件名稱 建立不存在的多及目錄 : mkdir -p t/t/t/tt/ 六。文本文件查看和鏈接工具。 cat cat 是一個文本文件查看和鏈接工具。查看一個文件的內容,用cat比較簡單,就是cat 後面直接接文件名。 好比: cat passage.properties 另外一種方式 格式 more 例子: more 'NollPointerException' datashift.log > temp.log more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示, 按 b 鍵就會往回(back)一頁顯示,並且還有搜尋字串的功能 。more命令從前向後讀取文件,所以在 例子 輸入 :200 就能夠滾動必定的頁數 或者 :100 啓動時就加載整個文件。 如 :more config.ada.php | grep 'kong@chinascopefinancial.com' 查看config.ada.php全部內容,並顯示kong@chinascopefinancial.com的地方 grep 'data/000592.csv:2016-01-27' 1.txt 或: cat config.ada.php | grep 'kong@chinascopefinancial.com' 七. 定向輸出到文件 格式 > more datashift.log |grep '開始導入: 基金投資前十名股票' > temp.log > 是定向輸出到文件,若是文件不存在,就建立文件;若是文件存在,就將其清空; 如:ping 192.168.120.204 > test.log 在後臺ping遠程主機。並輸出文件到test.log; 這種作法也使用於一個以上的檔案監視。用Ctrl+c來終止。 輸出內容追加到目標文件中 格式 >> 如: echo '測試隱患' >> test.log 會在 test.log文件最後最佳 測試隱患這句話 八。查看進程狀態 格式 ps ps命令用來列出系統中當前運行的那些進程。ps命令列出的是當前那些進程的快照, 就是執行ps命令的那個時刻的那些進程,若是想要動態的顯示進程信息,就可使 用top命令。 如: ps -ef|grep passage 或: ps aux | grep passage 查看passage包的進程情況 例子: ps aux | grep csf-webai ps aux | grep 4775 九. 殺死進程 kill XXX 如: kill -9 324 十. 上傳本地文件到linux 格式 : rz -be 此時會打開對話框 ,選好以後,會自動上傳到所在的目錄 從Linux 下載文件到本地目錄 格式: sz filename #下載一個文件 sz filename #下載多個文件 sz filename1 filename2 #下載dir目錄下的全部文件,不包含dir下的文件夾 sz dir 十一. 文件移動 格式 : mv 如: mv test.log ../addr 如: mv mongodb-linux-i686-2.0.7 /usr/local/mongodb 把 test.log 移動到 上級目錄addr下 十二. 修更名字 如: 把deploy_csf_weui.sh 修改爲 deploy_csf_webai.sh mv deploy_csf_weui.sh deploy_csf_webai.sh 十三. 搜索文件中匹配符 格式 grep 'bytes' *log 格式 more 'bytes' *log 在當前目錄下,在全部以log結尾的文件中查找有bytes的地方 從根目錄開始查找webaideploy.sh的文件。 find / -name webaideploy.sh 想要在當前目錄及子目錄中查找全部的‘ *.log‘文件,能夠用: find . -name "*.log" -print 十四. zip 壓縮和解壓 1.如: unzip mongodb-win32-i386-2.6.5.zip 把mongodb-win32-i386-2.6.5.zip 解壓到當前目錄下 2.如: zip -r xiaoma.zip mongodb-win32-i386-2.6.5 把mongodb-win32-i386-2.6.5 文件壓縮成爲 xiaoma.zip 或: zip -r abc123.zip abc 123.txt 把目錄下面的abc文件夾和123.txt壓縮成爲abc123.zip tar 解壓 1 如:tar -zxvf server-user-service-1.0.0.0.dist.tar.gz 把 server-user-service-1.0.0.0.dist.tar.gz 解壓到當前目錄 解壓war包 jar -xvf game.war 解壓到當前目錄 十五. 複製指定目錄下的所有文件到另外一個目錄中 格式: cp -r 源文件或目錄 目標文件或目錄 將目錄/usr/men下的全部文件及其子目錄複製到目錄/usr/zh中 > cp -r /usr/men /usr/zh 十六. 賦予權限 創建sh 文件 touch test.sh 賦予文件權限 chmod u+x test.sh 給你一個目錄下的全部文件賦予權限 chmod 777 -R 名稱 如: 給 apache-tomcat-8.0.32 下全部文件賦予權限 chmod 777 -R apache-tomcat-8.0.32 十七. telnet 例子: telnet 192.168.1.108 3306 十八.文件太大處理辦法 查找 vi data_w.log 查看日誌(上下鍵) 摁下 / 的鍵 輸入 關鍵字 進行查找 Ctrl+b 返回上一屏; Ctrl+f 向下滾動一屏; 文件的尾部 less data_w.log 查看日誌(上下鍵) shift+G 鍵 直接滾到尾部 十九. 腳本啓動與中止 例子 腳本 名字 deploy.sh 啓動 ./deploy.sh 或者 sh deploy.sh 若是後臺運行的話,能夠加個& 如 ./deploy.sh & 或者 sh deploy.sh & 中止 sh cloud.sh stop &表明在後臺運行 nohup 意思是不掛斷運行命令,當帳戶退出或終端關閉時,程序仍然運行 例如:nohup java -jar sam-service-mongo-0.0.1.jar > ./run.log 2>&1 & // 此爲spring-boot啓動方法 註釋: bash -x webaideploy.sh csf bash -x start.sh debug 模式運行 能看到具體的報錯信息 二十.搜索進程中包含invest的 ps aux | grep invest 二十一.查看端口是否被佔用 netstat -anoptl | grep 端口號 演示 查看8120端口是否被佔用 [root@localhost invest]# netstat -anoptl | grep 8120 tcp 0 0 0.0.0.0:8120 0.0.0.0:* LISTEN 20430/java off (0.00/0/0) 查看具體端口8120 是被那個應用程序使用 ps aux | grep 20430 二十二. 查看當前目錄總用多大空間 du -sh 二十三. 查看磁盤使用狀況 df -h 二十四. linux下自動下載工具 wget是一個從網絡上自動下載文件的自由工具。它支持HTTP,HTTPS和FTP協議,可使用HTTP代理. 如: wegt http://download.oracle.com/otn-pub/java/jdk/ 二十五.【主機名】 一.查看linux的主機名 hostname 二.修改linux的主機名 hostname 修改後的名稱 如:hostname localhost 這樣修改有個問題 每次重啓的時候還會還原 若是永久修改的話就要配置文件 vim /etc/sysconfig/network 修改以下 HOSTNAME = localhost 而後重啓一下 reboot -h now 刪除全部的進程,而不是平穩地終止它們 備註: shutdown -r now是當即中止而後從新啓動, 安全地關閉或重啓Linux系統,它在系統關閉以前給系統上的全部登陸用戶提示一條警告信息。 三.主機名跟ip進行綁定 vim /etc/hosts 在文件中增長一行 192.168.0.130 localhost 二十六.【防火牆 】 一.查看防火牆是否關閉: service iptables status 二.關閉防火牆 service iptables stop 三.查看防火牆是不是自動運行 chkconfig --list 備註: [root@localhost maven]# chkconfig --list | grep iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off 若是有一個爲on 說明是自動啓動的,沒有off說明沒有自動啓動 四.關閉防火牆自動運行 chkconfig iptables off 驗證 chkconfig --list | grep iptables 二十七.【 linux使用yum命令】 1.列出全部已安裝的軟件包 命令:yum list installed 2.列出全部已安裝的有關docker的安裝包 命令:yum list installed | grep docker 結果 docker-engine.x86_64 17.03.0.ce-1.el7.centos @dockerrepo 3.卸載(刪除安裝的軟件包) 命令:yum -y remove docker-engine.x86_64 4.獲取指定軟件包信息 命令:yum info 軟件包 例如: yum info docker.x86_64 獲取docker.x86_64的軟件包信息 二十八.【使用sz命令下載文件時,超過4G下載不了,解決方案】 1.分拆爲多個文件的命令: 764_xb_18_4_9.iso 待下載的文件 將764_xb_18_4_9.iso文件才分爲2G的多個小文件 cat 764_xb_18_4_9.iso | split -b 2G - 764_xb_18_4_9.iso. 備註:764_xb_18_4_9.iso.是拆分後文件的前綴,默認分拆後文件名稱爲764_xb_18_4_9.iso.aa,ab,ac...類推 例如:764_xb_18_4_9.iso 待下載的文件 764_xb_18_4_9.iso.aa 拆分的第一個小文件 764_xb_18_4_9.iso.ab 拆分的第二個小文件 764_xb_18_4_9.iso.ac 拆分的第三個小文件 2.下載多個小文件 sz 764_xb_18_4_9.iso.a* 3.合併下載的文件 cat 764_xb_18_4_9.iso.a* > 764_xb_18_4_9.iso 備註:拆分合並命令window,linux均可以進行 腳本調用 sh ./webai/bin/stop.sh 文件搜索 find / -name file1 從 '/' 開始進入根文件系統搜索文件和目錄 【系統管理命令】 who 顯示在線登錄用戶 clear 清屏 hostname 顯示主機名 top 動態顯示當前耗費資源最多進程信息 df 查看磁盤大小 df -h 帶有單位顯示磁盤信息 ifconfig 查看網絡狀況 ping 測試網絡連通 netstat 顯示網絡狀態信息 kill 殺死進程,能夠先用ps 或 top命令查看進程的id,而後再用kill命令殺死進程。 history 查看輸入的歷史命令 vi filename :打開或新建文件,並將光標置於第一行首 vi filename....filename :打開多個文件,依次進行編輯 Linux查看文件夾大小 du -sh 查看當前文件夾大小 du -sh * | sort -n 統計當前文件夾(目錄)大小,並按文件大小排序 查看目錄下有多少個文件及文件夾需在終端輸入 ls | wc -w Linux經常使用命令大全 date 顯示系統日期 cal 2007 顯示2007年的日曆表 date 041217002007.00 設置日期和時間 - 月日時分年.秒 clock -w 將時間修改保存到 BIOS 關機 (系統的關機、重啓以及登出 ) shutdown -h now 關閉系統(1) init 0 關閉系統(2) telinit 0 關閉系統(3) shutdown -h hours:minutes & 按預約時間關閉系統 shutdown -c 取消按預約時間關閉系統 shutdown -r now 重啓(1) reboot 重啓(2) logout 註銷 top 查看cpu消耗 【文件和目錄 】 cd /home 進入 '/ home' 目錄 cd .. 返回上一級目錄 cd ../.. 返回上兩級目錄 cd 進入我的的主目錄 cd ~user1 進入我的的主目錄 cd - 返回上次所在的目錄 pwd 顯示工做路徑 ls 查看目錄中的文件 ls -F 查看目錄中的文件 ls -l 顯示文件和目錄的詳細資料 ls -a 顯示隱藏文件 ls *[0-9]* 顯示包含數字的文件名和目錄名 tree 顯示文件和目錄由根目錄開始的樹形結構(1) lstree 顯示文件和目錄由根目錄開始的樹形結構(2) mkdir dir1 建立一個叫作 'dir1' 的目錄 mkdir dir1 dir2 同時建立兩個目錄 mkdir -p /tmp/dir1/dir2 建立一個目錄樹 rm -rf dir1 刪除一個叫作 'dir1' 的目錄並同時刪除其內容 rm -rf dir1 dir2 同時刪除兩個目錄及它們的內容 mv dir1 new_dir 重命名/移動 一個目錄 cp file1 file2 複製一個文件 cp -a /tmp/dir1 . 複製一個目錄到當前工做目錄 cp -a dir1 dir2 複製一個目錄 ln -s file1 lnk1 建立一個指向文件或目錄的軟連接 ln file1 lnk1 建立一個指向文件或目錄的物理連接 touch -t 0712250000 file1 修改一個文件或目錄的時間戳 - (YYMMDDhhmm) file file1 outputs the mime type of the file as text iconv -l 列出已知的編碼 iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding. find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick) 【文件搜索 】 find / -name file1 從 '/' 開始進入根文件系統搜索文件和目錄 find / -user user1 搜索屬於用戶 'user1' 的文件和目錄 find /home/user1 -name \*.bin 在目錄 '/ home/user1' 中搜索帶有'.bin' 結尾的文件 find /usr/bin -type f -atime +100 搜索在過去100天內未被使用過的執行文件 find /usr/bin -type f -mtime -10 搜索在10天內被建立或者修改過的文件 find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 結尾的文件並定義其權限 find / -xdev -name \*.rpm 搜索以 '.rpm' 結尾的文件,忽略光驅、捷盤等可移動設備 locate \*.ps 尋找以 '.ps' 結尾的文件 - 先運行 'updatedb' 命令 whereis halt 顯示一個二進制文件、源碼或man的位置 which halt 顯示一個二進制文件或可執行文件的完整路徑 【打包和壓縮文件 】 bunzip2 file1.bz2 解壓一個叫作 'file1.bz2'的文件 bzip2 file1 壓縮一個叫作 'file1' 的文件 gunzip file1.gz 解壓一個叫作 'file1.gz'的文件 gzip file1 壓縮一個叫作 'file1'的文件 gzip -9 file1 最大程度壓縮 rar a file1.rar test_file 建立一個叫作 'file1.rar' 的包 rar a file1.rar file1 file2 dir1 同時壓縮 'file1', 'file2' 以及目錄 'dir1' rar x file1.rar 解壓rar包 unrar x file1.rar 解壓rar包 tar -cvf archive.tar file1 建立一個非壓縮的 tarball tar -cvf archive.tar file1 file2 dir1 建立一個包含了 'file1', 'file2' 以及 'dir1'的檔案文件 tar -tf archive.tar 顯示一個包中的內容 tar -xvf archive.tar 釋放一個包 tar -xvf archive.tar -C /tmp 將壓縮包釋放到 /tmp目錄下 tar -cvfj archive.tar.bz2 dir1 建立一個bzip2格式的壓縮包 tar -xvfj archive.tar.bz2 解壓一個bzip2格式的壓縮包 tar -cvfz archive.tar.gz dir1 建立一個gzip格式的壓縮包 tar -xvfz archive.tar.gz 解壓一個gzip格式的壓縮包 zip file1.zip file1 建立一個zip格式的壓縮包 zip -r file1.zip file1 file2 dir1 將幾個文件和目錄同時壓縮成一個zip格式的壓縮包 unzip file1.zip 解壓一個zip格式壓縮包 查看文件內容 cat file1 從第一個字節開始正向查看文件的內容 tac file1 從最後一行開始反向查看一個文件的內容 more file1 查看一個長文件的內容 less file1 相似於 'more' 命令,可是它容許在文件中和正向操做同樣的反向操做 head -2 file1 查看一個文件的前兩行 tail -2 file1 查看一個文件的最後兩行 tail -f /var/log/messages 實時查看被添加到一個文件中的內容 返回頂部索引 ^ 文本處理 cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合併一個文件的詳細說明文本,並將簡介寫入一個新文件中 cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合併一個文件的詳細說明文本,並將簡介寫入一個已有的文件中 grep Aug /var/log/messages 在文件 '/var/log/messages'中查找關鍵詞"Aug" grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"開始的詞彙 grep [0-9] /var/log/messages 選擇 '/var/log/messages' 文件中全部包含數字的行 sed 's/stringa1/stringa2/g' example.txt 將example.txt文件中的 "string1" 替換成 "string2" sed '/^$/d' example.txt 從example.txt文件中刪除全部空白行 sed '/ *#/d; /^$/d' example.txt 從example.txt文件中刪除全部註釋和空白行 echo 'esempio' | tr '[:lower:]' '[:upper:]' 合併上下單元格內容 sed -e '1d' result.txt 從文件example.txt 中排除第一行 sed -n '/stringa1/p' 查看只包含詞彙 "string1"的行 sed -e 's/ *$//' example.txt 刪除每一行最後的空白字符 sed -e 's/stringa1//g' example.txt 從文檔中只刪除詞彙 "string1" 並保留剩餘所有 sed -n '1,5p;5q' example.txt 查看從第一行到第5行內容 sed -n '5p;5q' example.txt 查看第5行 sed -e 's/00*/0/g' example.txt 用單個零替換多個零 cat -n file1 標示文件的行數 cat example.txt | awk 'NR%2==1' 刪除example.txt文件中的全部偶數行 echo a b c | awk '{print $1}' 查看一行第一欄 echo a b c | awk '{print $1,$3}' 查看一行的第一和第三欄 paste file1 file2 合併兩個文件或兩欄的內容 paste -d '+' file1 file2 合併兩個文件或兩欄的內容,中間用"+"區分 sort file1 file2 排序兩個文件的內容 sort file1 file2 | uniq 取出兩個文件的並集(重複的行只保留一份) sort file1 file2 | uniq -u 刪除交集,留下其餘的行 sort file1 file2 | uniq -d 取出兩個文件的交集(只留下同時存在於兩個文件中的文件) comm -1 file1 file2 比較兩個文件的內容只刪除 'file1' 所包含的內容 comm -2 file1 file2 比較兩個文件的內容只刪除 'file2' 所包含的內容 comm -3 file1 file2 比較兩個文件的內容只刪除兩個文件共有的部分 ********************************************************************************************************* 經常使用指令 ls 顯示文件或目錄 -l 列出文件詳細信息l(list) -a 列出當前目錄下全部文件及目錄,包括隱藏的a(all) mkdir 建立目錄 -p 建立目錄,若無父目錄,則建立p(parent) cd 切換目錄 touch 建立空文件 echo 打印內容 cat 查看文件內容 cp 拷貝 mv 移動或重命名 rm 刪除文件 -r 遞歸刪除,可刪除子目錄及文件 -f 強制刪除 find 在文件系統中搜索某文件 grep 在文本文件中查找某個字符串 rmdir 刪除空目錄 tree 樹形結構顯示目錄,須要安裝tree包 pwd 顯示當前目錄 ln 建立連接文件 more、less 分頁顯示文本文件內容 head、tail 顯示文件頭、尾內容 ctrl+alt+F1 命令行全屏模式 關機/重啓機器 shutdown -r 關機重啓 -h 關機不重啓 now 馬上關機 halt 關機 reboot 重啓 vim使用 vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。 命令模式下: :q 退出 :q! 強制退出 :wq 保存並退出 :set number 顯示行號 :set nonumber 隱藏行號 文件權限管理 三種基本權限 R 讀 數值表示爲4 W 寫 數值表示爲2 X 可執行 數值表示爲1 http://blog.sina.com.cn/s/blog_64e166580100vwk2.html $# 是傳給腳本的參數個數 $0 是腳本自己的名字 $1 是傳遞給該shell腳本的第一個參數 $2 是傳遞給該shell腳本的第二個參數 $@ 是傳給腳本的全部參數的列表 $0 Shell自己的文件名 $1~$n 添加到Shell的各參數值。$1是第1參數、$2是第2參數…。 如新建一個test.sh 簡單的腳本 touch test.sh #!/bin/sh echo "shell自己的文件名 --->$0" echo "第1個參數 $1" echo "第2個參數 $2" 賦予腳本執行權限 # chmod +x test.sh 執行腳本 # ./test.sh aa bb 這裏aa就是傳遞的第一個參數 bb就是傳遞的第二個參數 顯示結果 shell自己的文件名 --->./test.sh 第1個參數 aa 第2個參數 bb 首行中的符號#!告訴系統其後路徑所指定的程序便是解釋此腳本文件的Shell程 序。 若是首行沒有這句話,在執行腳本文件的時候,將會出現錯誤。後續的部分就是主程序 #-z 是爲空的意思 參數1爲空的時候會進入 if [ -z $1 ]; then echo "參數是空的" else echo "參數打印 -> $1" fi ######################################################################################### #!/bin/sh DEPLOY_TYPE="svn" #-a 和 -o 表示邏輯與和邏輯或 if [ -z $1 ]; then echo "參數數空的" elif [ $1 = "svn" -o $1 = "war" ];then echo "參數打印 --> $1" else echo "什麼都沒有" fi echo $DEPLOY_TYPE echo "這裏開始調用腳本" sh /xiaolei/test.sh SERVICE=$1 case $SERVICE in "csf") echo "當前參數是 $SERVICE" ;; "nlp") echo "當前參數是 $SERVICE" ;; *) echo "參數必須是 csf nlp" ;; esac #-邏輯非 ! 參數爲空進入 if [ ! -n "$1" ];then echo "空的" fi # 若是目錄不存在則建立 (多級目錄) link_workdir = /usr/local/test if [ ! -d $link_workdir ]; then mkdir -p $link_workdir fi ######################################################################################### [ -f "$file" ] 判斷$file是不是一個文件 [ $a -lt 3 ] 判斷$a的值是否小於3,一樣-gt和-le分別表示大於或小於等於 [ -x "$file" ] 判斷$file是否存在且有可執行權限,一樣-r測試文件可讀性 [ -n "$a" ] 判斷變量$a是否有值,測試空串用-z [ "$a" = "$b" ] 判斷$a和$b的取值是否相等 [ cond1 -a cond2 ] 判斷cond1和cond2是否同時成立,-o表示cond1和cond2有一成立 ######################################################################################### 文件表達式 if [ -f file ] 若是文件存在 if [ -d ... ] 若是目錄存在 if [ -s file ] 若是文件存在且非空 if [ -r file ] 若是文件存在且可讀 if [ -w file ] 若是文件存在且可寫 if [ -x file ] 若是文件存在且可執行 整數變量表達式 if [ int1 -eq int2 ] 若是int1等於int2 if [ int1 -ne int2 ] 若是不等於 if [ int1 -ge int2 ] 若是>= if [ int1 -gt int2 ] 若是> if [ int1 -le int2 ] 若是<= if [ int1 -lt int2 ] 若是< -eq -ne -lt -nt只能用於整數,不適用於字符串 字符串變量表達式 If [ $a = $b ] 若是string1等於string2 字符串容許使用賦值號作等號 if [ $string1 != $string2 ] 若是string1不等於string2 if [ -n $string ] 若是string 非空(非0),返回0(true) if [ -z $string ] 若是string 爲空 if [ $sting ] 若是string 非空,返回0 (和-n相似) 條件表達式引用變量要帶$ if [ $a = $b ] ;then echo equal else echo no equal fi if [ -z "$JHHOME" -a -d $HOME/$num ] 若是變量$JHHOME爲空,且$HOME/$num目錄存在 then JHHOME=$HOME/$num 則賦值 fi #!/bin/sh ######################################################################################### #!/bin/sh for((i = 1; i<5; i++)) do echo "$i" done echo "執行完畢" 顯示結果 1 2 3 4 執行完畢 ######################################################################################### echo "------------------" for key in num parm a b do echo $key done echo "-----------------" 顯示結果 ------------------ num parm a b ----------------- ######################################################################################### echo "argume:$@" for key in $@ do echo $key done