尚觀課程-1.Shell基礎
Shell程式的特點:
1.簡單易學
2.解釋性語言:不需要編譯即可執行
檢視系統預設SHELL echo $SHELL
目錄操作
1.Alt + .
2.按下Esc 後按 .
3.!$
4 . cd -
切換當前目錄和上次使用的目錄
Shell指令碼程式有兩種執行方式:
1、互動式執行
2、作為程式檔案執行。
通常採用第二種方式較多
互動式指令碼
[root@localhost ~]# for filename in `ls /etc/`
> do
> if echo "$filename" | grep "xml"
> then
> echo "$filename"
> fi
> done
指令碼
#!/bin/bash
#for迴圈開始
for filename in `ls /etc/ `
do
#如果檔名包含xml
if echo "$filename" | grep "xml"
then
#輸出檔名
echo "$filename"
fi
done
修改檔案許可權
使用者可以通過chmod命令修改檔案的許可權屬性。
chmod [options] filename
[root@localhost chapter1]# chmod u+x ex1-2.sh
[root@localhost chapter1]# ll
total 4
-rwxr--r-- 1 root root 116 Dec 18 23:11 ex1-2.sh
Shell指令碼的基本元素
對於一個基本的Shell程式來說,應該擁有以下基本元素:
1)第1行的“#!/bin/bash”。
2)註釋:說明某些程式碼的功能。
3)可執行語句:實現程式的功能。
輸出Hello World
#!/bin/bash
#輸出字串
echo "Hello Bash Shell!"
[root@localhost chapter1]# chmod +x ex1-5.sh
[root@localhost chapter1]# ./ex1-5.sh
Hello, Bash Shell!
指定命令直譯器
命令直譯器用來解釋並執行當前指令碼檔案中的語句,語法:
#!path
例如:#!/bin/bash
Shell註釋
單行註釋
通過在程式碼中增加註釋可以提高程式的可讀性。傳統的Shell只支援單行註釋,其表示方法是一個井號“#”,從該符號開始一直到行尾都屬於註釋的內容。
例如:
#comment1
#comment2
#comment3
...
多行註釋
使用者還可以通過其他的一些變通的方法來實現多行註釋,其中,最簡單的方法就是使用冒號“:”配合here document,語法如下:
:<<BLOCK
....註釋內容
BLOCK
#!/bin/bash
:<<BLOCK
本指令碼的作用是輸出一行字串
This is Comment
BLOCK
echo "Hello world!"
如何執行Shell指令碼
在Linux中,如果要執行某個Shell指令碼,使用者可以通過3種方式來實現。這3種方式分別為:
授予使用者執行該指令碼檔案的許可權,使得該指令碼能夠直接執行。
通過呼叫Shell指令碼直譯器來執行。
通過source命令來執行。
例如:
[root@localhost chapter1]# /bin/bash ex1-5.sh
Hello, Bash Shell!
無執行許可權使用指令碼
[root@localhost chapter1]# bash ex1-5.sh
Hello, Bash Shell!
[root@localhost chapter1]# sh ex1-5.sh
Hello, Bash Shell!
[root@localhost chapter1]# source ex1-5.sh
Hello, Bash Shell!
[root@localhost chapter1]# . ex1-5.sh
Hello, Bash Shell!
有執行許可權使用指令碼
[root@localhost chapter1]# ./ex1-5.sh
Hello, Bash Shell!
[root@localhost chapter1]# chapter1/ex1-5.sh
Hello, Bash Shell!
各類引號的區別
Shell語言中一共有3種引號,分別為
單引號(’ ‘)單引號括起來的字元都作為普通字元出現
雙引號(” “)雙引號括起來的字元,除“$”、“\”、“’”和“””這幾個字元仍是特殊字元並保留其特殊功能外,其餘字元仍作為普通字元對待,
反引號()。反引號括起來的字串被Shell解釋為命令,在執行時,Shell首先執行該命令,並以它的標準輸出結果取代整個反引號(包括兩個反引號)部分
反引號``等價於$()
用法為
[root@qzw ~]# echo "user is `whoami` "
user is root
[root@qzw ~]# echo "user is $(whoami)"
user is root
相關文章
- 基礎課程
- Flow-3D基礎課程3D
- Python基礎課程筆記5Python筆記
- 3、Pico Robot 基礎開發課程
- 開源 | Python基礎入門課程Python
- 尚矽谷_初級_java基礎Java
- 某課網「vue.js 入門基礎」課程札記Vue.js
- 人工智慧-數學基礎視訊課程-唐宇迪-專題視訊課程人工智慧
- OpenGL Android課程四:介紹紋理基礎Android
- HTML/CSS基礎課程筆記————CSS結束篇HTMLCSS筆記
- Java基礎回顧(牛客網專案課程)Java
- 開源 | Python基礎入門(視訊)課程Python
- 【網路安全基礎課程】DDOS攻擊方式有哪些?
- Linux運維課程可以零基礎學習嗎?Linux運維
- 釋出 ROS 機器人課程 | 免費 | 零基礎ROS機器人
- wordpress建站基礎教程-黃棒清-專題視訊課程
- 圖觀™應用編輯器 零基礎入門課(第三講)
- 圖觀™應用編輯器 零基礎入門課(第四講)
- 圖觀™應用編輯器 零基礎入門課(第五講)
- 圖觀™應用編輯器 零基礎入門課(第六講)
- C語言基礎課程 第二課 HelloWorld不為菜鳥所知的祕密C語言
- 資源 | Intel釋出AI免費系列課程3部曲:機器學習基礎、深度學習基礎以及TensorFlow基礎IntelAI機器學習深度學習
- 基礎課程之遊戲學遊戲
- Laravel 開發入門課程基礎頁面實現總結Laravel
- Swoft 基礎到微服務篇 (第二章課程大綱)微服務
- Python常用函式有哪些?Python基礎入門課程Python函式
- 學習python有關統計基礎部分課程總結Python
- Android 基礎知識課程助您輕鬆構建應用Android
- 尚矽谷2022版Java課程體系,霸氣來襲Java
- Linux課程可以零基礎學習嗎?該如何學習?Linux
- Swoft 基礎到微服務篇 (第一章課程大綱)微服務
- Linux支援的檔案系統有哪些?Linux基礎課程Linux
- 0基礎如何學習Python課程?就業前景怎麼樣?Python就業
- 官方零基礎入門 Jetpack Compose 的中文課程來啦!Jetpack
- ARM第一節基礎課
- MySQL資料庫基礎學習筆記(整理自蘇勇老師的MySQL基礎課程視訊)MySql資料庫筆記
- 《HTML+CSS基礎入門課程》上線“中國職業培訓線上”HTMLCSS
- 怎麼學習新夢想的零基礎學Python課程Python