Shell 其實就是一個解釋執行命令的程序,
所謂shell編程其實就是用一定的語法將各種基本的命令組合起來,讓shell程序去解釋執行。
如果對windows的dos有了解,可以這樣理解,其實shell腳本文件和.bat批處理文件差不多。
然而linux下的shell比起windows的dos強大很多,呵呵。
爲了安全起見,創建一個普通的賬號進行學習
]# useradd 17rumen
]# passwd 17rumen
然後使用 17rumen 這個用戶登陸linux
bash只是其中的一個shell,還有其他的shell ,例如: sh ,tcsh, ksh 等等
查看當前使用使用的shell
echo $SHELL
我現在使用 centos 5.5 linux 默認就是使用 bash shell
Ubuntu10.10同樣使用 bash ,以前的 redhat 9.0 應該也是的
//=====================================================
如何編寫一個 shell腳本 ? 使用 vi/vim 編輯器,
vi my_01.sh
echo "hello,開始學習shell腳本編程"
保存退出 :wq ,要輸入中文漢字,在putty設置 UTF-8 即可
但是這個腳本沒有權限執行,我們需要對這個文件添加一個權限
[17rumen@localhost ~]$ ./my_01.sh
-bash: ./my_01.sh: Permission denied
給當前用戶添加一個執行的權限
chmod u+x my_01.sh
bash my_01.sh
這樣就指定使用bash shell 來執行腳本
不過我們一般不這樣做, 我們一般在腳本文件最開頭指定 #!/bin/bash
//=====================================================
關於 PATH設置當前路徑 , 修改之前建議大家先做一個備份
[17rumen@localhost ~]$ my_01.sh
-bash: my_01.sh: command not found
[17rumen@localhost ~]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/17rumen/bin
echo $PATH
ls /bin
PATH=$PATH:.
這只是臨時的修改, 一旦重啓,重新登陸 就無效。
要永久性的修改, 就要對一個文件進行修改
vi /etc/profile 在最後添加下面兩行
PATH=$PATH:.
export PATH
保存退出
使用 source 命令, 讓profile馬上生效
source /etc/profile
學習內容: vi/vim 操作使用 直接輸入 vi 可以看到 版本信息 重點: [INSERT]輸入模式 和 命令模式 的切換 VIM - Vi IMproved 按 [Esc]鍵 切換到 命令模式 :w mytest.txt 保存文件名 :q! 強制退出 --------------------------------- 一般使用 vi + 一個文件名 編輯完畢就 :wq 保存並且退出 ------------------------------- 在網上看到一些命令大全 , 我這裏只演示一下 我常用的 輸入模式和命令模式的切換,配合一般鍵盤上的功能鍵, 例如 方向鍵、[Delete]鍵 等等,基本上可以操作 vi 對於要求不高的用戶,並不需要用太多一些命令。 對於我們學習shell腳本的來說, 一些簡單常用操作 已經足夠了, 插入文本類命令 刪除命令 搜索命令 屏幕翻滾類命令,上一頁 下一頁的顯示 顯示行號 //==================================================== 對於不同用戶設置不同的vim配置, 可以修改 ~/.vimrc 如果沒有這個文件,可以創建一個。 例如我想關閉語法高亮顯示,還有顯示行號 然後加入下面兩行 syntax off 搜索時候的高亮顯示:
version 7.0.237
:q 退出
我們新建一個文件 並且進行編輯
如果以後發現不夠用的話,可以查vi相關文檔。
i 在光標前
I 在當前行首
a 光標後
A 在當前行尾
x 刪除當前光標所在的字符
dd 刪除當前整行
/pattern 從光標開始處向文件尾搜索pattern
?pattern 從光標開始處向文件首搜索pattern
n 在同一方向重複上一次搜索命令
N 在反方向上重複上一次搜索命令
Ctrl+f: 向文件尾翻一屏
Ctrl+b: 向文件首翻一屏
:set nu
取消
:set nonu
set nu
set hlsearch
加上下面的語句就不會有高亮顯示:
set nohlsearch