Linux學習(Shell基礎)

頭像是我偶像發表於2017-05-23

一、Shell是什麼?

  • Shell是一個命令列直譯器,它為使用者提供了一個向Linux核心傳送請求以便執行程式的介面系統級程式,使用者可以用Shell來啟動、掛起、停止甚至是編寫一些程式;
  • Shell是一個功能相當強大的程式語言,易編寫,易除錯,奶油小生性較強。Shell是解釋執行的指令碼語言,Shell中可以直接呼叫Linux系統命令。

二、指令碼執行方式

2.1 echo輸入命令

echo [選項] [輸出內容]

當選項為-e時,表示支援反斜線控制的字元轉換

反斜線控制字元轉換表

控制字元 作用
\a 輸出警告音
\b 退格鍵,表示向左刪除鍵
\n 換行符
\r 回車符
\t 製表符,相當於Tab鍵
\v 垂直製表符
\0nnn 按照八進位制ASCII碼錶輸出字元,其中0為數字零,nnn是三位八進位制數
\xhh 按照十六進位制ASCII碼錶輸出字元,其中hh是兩位十六進位制數

* 舉例

[root@localhost zm]# echo "Hello everybody,my name is zixuan."
Hello everybody,my name is zixuan.
[root@localhost zm]# echo "Hello everybody,my name is\b zixuan."
Hello everybody,my name is\b zixuan.
[root@localhost zm]# echo -e "Hello everybody,my name is\b zixuan."
Hello everybody,my name i zixuan.
[root@localhost zm]# echo -e "Hello everybody,\nmy name is zixuan."
Hello everybody,
my name is zixuan.
[root@localhost zm]# echo -e "Hello everybody,\amy name is zixuan."
Hello everybody,my name is zixuan.
[root@localhost zm]# echo -e "Hello everybody,\vmy name is zixuan."
Hello everybody,
                my name is zixuan.
[root@localhost zm]# echo -e "Hello everybody,\rmy name is zixuan."
my name is zixuan.
[root@localhost zm]# echo -e "Hello \reverybody,my name is zixuan."
everybody,my name is zixuan.
[root@localhost zm]# echo -e "Hello everybody,\x67my name is zixuan."
Hello everybody,gmy name is zixuan.
[root@localhost zm]# echo -e "Hello everybody,\076my name is zixuan."
Hello everybody,>my name is zixuan.

2.2 指令碼

  1. 建立指令碼
    vi [指令碼名稱]
[root@localhost zm]# vi hello.sh
用vi編輯器開啟hell.sh檔案,在裡面寫入你想要執行的程式碼,然後儲存即可。
#!/bin/bash
echo -e "\e[1;34m hello world! \e[0m";
  1. 執行指令碼

    • 給檔案賦予執行許可權,然後直接執行

    • 通過Bash呼叫執行指令碼

[root@localhost zm]# chmod 755 hello.sh
[root@localhost zm]# ls -l
總用量 12
-rw-r--r--. 1 root root    0 522 10:52 abc
drwxr-xr-x. 2 root root 4096 522 10:46 first
-rwxr-xr-x. 1 root root   52 523 17:37 hello.sh
drwxr-xr-x. 2 root root 4096 522 10:46 second
[root@localhost zm]# ./hello.sh
 hello world! 
[root@localhost zm]# bash hello.sh
 hello world! 

問題一:

E325: ATTENTION
Found a swap file by the name ".hello.sh.swp"
  • 原因:之前在使用vi操作hello.sh時,出現了異常中斷,所以在當前目錄下就產生了一個.hello.sh.swp檔案,該檔案是以“.”開頭的,是隱藏檔案,我們直接用ls 命令是看不到的,需要使用ls -a才能看到;
  • 解決方法:在當前目錄下找到.hello.sh.swp檔案,然後將它刪除,就可以了。
[root@localhost zm]# ls
abc  first  hello.sh  second
[root@localhost zm]# ls -al
總用量 32
drwxr-xr-x. 4 root root  4096 5月  23 17:37 .
drwxr-xr-x. 5 root root  4096 5月  22 11:48 ..
-rw-r--r--. 1 root root     0 5月  22 10:52 abc
drwxr-xr-x. 2 root root  4096 5月  22 10:46 first
-rwxr-xr-x. 1 root root    52 5月  23 17:37 hello.sh
-rw-r--r--. 1 root root 12288 5月  23 17:30 .hello.sh.swp
drwxr-xr-x. 2 root root  4096 5月  22 10:46 second
[root@localhost zm]# rm .hello.sh.swp
rm:是否刪除普通檔案 ".hello.sh.swp"?y

相關文章