在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

shell腳本基礎知識匯總1

jf_78858299 ? 來源:阿Q正磚 ? 作者:阿Q正磚 ? 2023-02-15 10:48 ? 次閱讀

1.shell腳本基礎

1.1 shell環境

shell分類

Shell 編程JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。

Linux 的 Shell 種類眾多,常見的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)
  • ……

Mac系統默認的是zsh環境,ubuntu下默認的shell環境是bash環境,可以通過執行命令查看:

# ubuntu終端
xq@ubuntu:~$ echo $SHELL
/bin/bash


# mac電腦終端
?  ~ echo $SHELL
/bin/zsh

一般系統都會內置幾種shell,可以通過命令chsh修改系統默認的shell環境,在下次打開終端生效,修改示例如下:

# 查看系統中已安裝的shell類型
xq@ubuntu:~$ cat /etc/shells 
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/bin/zsh
/usr/bin/zsh


# 切換默認的shell環境到zsh
xq@ubuntu:~$ chsh -s /bin/zsh


# 切換默認的shell環境到bash
xq@ubuntu:~$ chsh -s /bin/bash

shell配置文件

我們開發環境用的最多的就是bash和zsh了,下面就介紹這兩個shell為例介紹對應的配置文件。

Bash的配置文件

  • /etc/profile:為系統的每個用戶設置環境信息,當用戶第一次登錄時會執行該文件里的命令。默認會直接調用/etc/bashrc。該文件的改動需要重啟才能生效。
  • /etc/bashrc:為每一個運行bash shell的用戶執行此文件。當bash shell被打開時,會讀取并執行該文件中的命令。所以修改該文件后,重新打開Shell即可生效。
  • ~/.bash_profile:和/etc/profile類似,但是只對當前用戶生效。
  • ~/.bashrc:和/etc/bashrc類似,但是只對當前用戶生效。
  • ~/.bash_logout:當每次退出bash shell時,執行該文件。
  • ~/.bash_history:保存了歷史命令。在Shell為Bash時,每次敲擊命令時,都會保存在這個文件里

加載順序:/etc/profile、/etc/bashrc、 /.bash_profile、 /.bashrc

Zsh的配置文件

  • ~/.zshenv:存放的環境變量配置項在任何場景下都能被讀取,這里通常把$PATH等變量寫在這里,這樣無論是在交互shell,或者運行程序都會讀取此文件。個人理解對標Bash的profile。
  • ~/.zprofile:和.zlogin類似,但是是在.zshrc之前加載。
  • ~/.zshrc:在交互式shell中會讀取并執行該文件,包含設置別名、函數、選項、鍵綁定等命令。對標bashrc。
  • ~/.zlogin:在login shell的時候讀取。
  • ~/.zlogout:退出終端的時候讀取,用于做一些清理工作。對標bash_logout。
  • ~/.zsh_history:保存了歷史命令。在Shell為Zsh時,每次敲擊命令時,都會保存在這個文件里。

加載順序:zshenv、zprofile、zshrc、zlogin

1.2 shell腳本

由于bash腳本使用場景更廣泛,如android源碼build目錄中各種shell腳本,下面就以bash腳本為例進行講述。

shell沒有官方的ide支持,可以通過vscode + shellman插件來實現高效編寫。shellman插件有進行命令與模版提示的功能。

腳本文件一般以.sh結尾(擴展名并不影響腳本執行),文件第一行指定運行的shell解釋器類型。

#! 是一個約定的標記,它告訴系統這個腳本需要什么解釋器來執行,即使用哪一種 Shell。

#!/bin/bash
echo "Hello World !"

還有一種指定shell解釋器的寫法是通過env來聲明

#!/usr/bin/env bash
echo "Hello World !"

運行方式

  • 作為可執行程序

以腳本中聲明的shell解釋器運行,示例如下:

chmod +x ./test.sh  #使腳本具有執行權限
./test.sh  #執行腳本
  • 作為解釋器參數

這種運行方式是,直接運行解釋器,其參數就是 shell 腳本的文件名,會忽略腳本中指定的解釋器信息

如:

# 以zsh解析運行
zsh test.sh
# 以bash解析運行
bash test.sh

調試

shell腳本不能像android studio里面可以打斷點方式調試,但是可以通過特定方式把執行過程都打印出來來排查問題。

對整個腳本加調試可以通過在指定解釋器的地方添加-x參數

#!/usr/bin/env bash -x
echo "Hello World !"

或者

bash -x test.sh

如果是針對特定的代碼塊加調試可以通過下面的方式實現:

set -x
調試內容
set +x

示例代碼如下:

set -x
echo "hello"
echo "world"
set +x


# 輸出結果,帶+的為執行過程打印
+ echo hello
hello
+ echo world
world
+ set +x
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11411

    瀏覽量

    212206
  • PHP
    PHP
    +關注

    關注

    0

    文章

    454

    瀏覽量

    27097
  • 編輯器
    +關注

    關注

    1

    文章

    812

    瀏覽量

    31593
  • Shell腳本
    +關注

    關注

    0

    文章

    36

    瀏覽量

    8133
收藏 人收藏

    評論

    相關推薦

    shell腳本進階】幾個常用的shell進階腳本

    shell腳本進階】幾個常用的shell進階腳本
    的頭像 發表于 09-19 08:59 ?2108次閱讀
    【<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>進階】幾個常用的<b class='flag-5'>shell</b>進階<b class='flag-5'>腳本</b>

    Shell基礎知識(上)

    shell腳本在日常的Linux系統管理工作中是必不可少的。如果不會寫shell腳本,你就不算是一個合格的管理員。目前,很多單位在招聘Linux系統管理員時,
    發表于 11-14 09:24 ?605次閱讀

    基礎知識匯總!!!

    基礎知識匯總
    發表于 11-07 18:14

    Shell腳本編程實驗

    指示燈每隔一秒交替閃亮10次按照圖中的腳本一字一句輸入就行了,其中Shell基礎知識一點都不清楚的話多百度下吧,上面有很多相關知識。這里我就腳本
    發表于 10-22 18:25

    嵌入式和物聯網的shell腳本學習指南之shell腳本入門免費下載

    本文檔的主要內容詳細技術的是嵌入式和物聯網的shell腳本學習指南之shell腳本入門免費下載。
    發表于 09-11 17:15 ?20次下載
    嵌入式和物聯網的<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>學習指南之<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>入門免費下載

    shell腳本最簡明的教程

    Shell腳本,就是利用Shell的命令解釋的功能,對一個純文本的文件進行解析,然后執行這些功能,也可以說Shell腳本就是一系列命令的集合
    的頭像 發表于 10-16 11:27 ?5023次閱讀
    <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>最簡明的教程

    華為EMC基礎知識匯總資源下載

    華為EMC基礎知識匯總資源下載
    發表于 06-04 11:10 ?131次下載

    109個實用shell腳本分享

    Shell腳本,就是利用Shell的命令解釋的功能,對一個純文本的文件進行解析,然后執行這些功能,也可以說Shell腳本就是一系列命令的集合
    的頭像 發表于 03-16 08:58 ?2806次閱讀

    Linux開發_Makefile規則與Shell腳本語言

    介紹Linux下Makefile編程知識點,Shell腳本知識點。
    的頭像 發表于 09-17 15:40 ?1490次閱讀

    shell腳本基礎知識匯總2

    Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。 Linux 的 Shell 種類眾多,常見的有:
    的頭像 發表于 02-15 10:48 ?767次閱讀

    shell腳本基礎知識匯總3

    Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。 Linux 的 Shell 種類眾多,常見的有:
    的頭像 發表于 02-15 10:49 ?879次閱讀

    shell腳本基礎知識匯總4

    Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。 Linux 的 Shell 種類眾多,常見的有:
    的頭像 發表于 02-15 10:49 ?761次閱讀

    shell腳本基礎知識

    shell腳本是一個文件,里面存放的是特定格式的指令,系統可以使用腳本解析器翻譯或解析指令并執行(無需編譯),shell腳本的本質是
    的頭像 發表于 04-17 15:00 ?1241次閱讀

    Linux Shell腳本經典案例分享

    ? 作為一名 Linux 運維工程師,會寫好的腳本不僅能提高工作效率,還能有更多的時間做自己的事。最近在網上沖浪的時候,發現大家對Shell腳本都有“心結”,要么覺得自己寫出來不好看,要么根本無從下手。 下面分享249個真實
    發表于 06-16 14:03 ?743次閱讀
    Linux <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>經典案例分享

    樹莓派新手必看!在樹莓派上編寫和運行 Shell 腳本

    在本教程中,我將討論Shell腳本基礎知識、它們的用途以及如何在RaspberryPi上編寫和運行Shell腳本。什么是
    的頭像 發表于 03-25 09:28 ?148次閱讀
    樹莓派新手必看!在樹莓派上編寫和運行 <b class='flag-5'>Shell</b> <b class='flag-5'>腳本</b>!
    主站蜘蛛池模板: 久操福利 | 亚洲系列_1页_mmyy11 | 91拍拍在线观看 | 人人玩人人干 | 亚洲日本中文字幕天天更新 | 色多多福利网站老司机 | 岛国大片在线播放 | 97色在线视频| 亚洲卡1卡2卡新区网站 | 亚洲黄网站wwwwww | 日本网络视频www色高清免费 | 四虎免费大片aⅴ入口 | 欧美操bb| 伊人啪啪| 天天操中文字幕 | 免费一级毛毛片 | 亚洲国产成人久久精品影视 | 成年片免费网址网站 | 欧美在线精品一区二区三区 | 亚洲一区二区三区免费视频 | 四虎.com| 夜夜摸天天操 | 手机看片免费福利 | 三级电影在线观看视频 | 波多野结衣一级毛片 | 精品国产免费人成高清 | 免费观看一级特黄三大片视频 | 最新合集丨新片速递 | 毛片免费观看 | 夜夜艹天天干 | 国产精品美女一级在线观看 | 黄网站色视频免费观看 | 亚洲精品视频区 | 午夜国产在线观看 | 亚洲aⅴ久久久噜噜噜噜 | 久久精品国产精品亚洲红杏 | 欧美午夜性春猛xxxx | 亚洲色图久久 | 91福利免费视频 | 操农村妇女 | 免费在线公开视频 |