欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    【注】本文譯自:https://www.developer.com/open-source/an-introduction-to-bash-scripting-developer-com/

    幻想自己是計算機科學家、業余愛好者或技術書呆子嗎?然后在某個時候,您將或應該考慮在您的數字工作區中使用 Bash 腳本。

    Bash (Bourne Again Shell) 是一個解釋器,負責處理Unix系統命令行上的命令。它是由 Brian Fox 編寫的免費軟件,并于 1989 年發布的免費軟件,作為 Sh(Bourne Shell)的替代品。Bash 被開發人員、數據科學家、系統管理員、網絡工程師和任何其他在日常工作中嚴重依賴 Unix 操作系統的人使用。一般來說,Bash 腳本用于自動化計算機科學家可能承擔的日常補救任務。簡而言之,shell 腳本只不過是存儲在一個文件(如列表)中的一系列命令。

    您可以在 Linux 和 MacOS 機器上使用 Bash,甚至可以通過適用于 Linux 的 Windows 子系統在 Windows 10 機器上使用。Bash 通常在文本窗口中運行,用戶可以在其中鍵入命令讓計算機執行操作。該語言還可用于從文件讀取和執行命令,稱為 shell 腳本。Shell 腳本本身就是一種編程語言,與任何其他語言一樣,Bash 是一種可以以多種方式使用的工具。

    如果您之前見過運行 Linux 操作系統(或類 Unix 環境)的機器,您可能也見過終端控制臺。終端是用戶使用某些命令與 shell 解釋器進行交互的方式。諸如 cd 導航文件目錄,ls 列出當前目錄中的文件,以及 nano 編輯文件等命令。

    Unix 中的 Bash 終端示例

    在終端中使用 Bash 代碼,它將由 Bash 解釋器運行。ls 之類的命令是位于 /bin 目錄中的二進制可執行文件。 當 shell 收到該命令時(當您在終端中鍵入它并按 Enter 鍵時),它會執行 ls 文件并為用戶列出當前目錄中的文件。使用命令 ls /bin 以路徑 /bin 作為選項執行二進制 ls,列出 /bin 目錄中的文件。執行 ls -al 會運行帶有標志 -a -l 作為選項的 ls 命令,列出當前目錄路徑中的所有文件和目錄以及有關這些項目的詳細信息。

    touch 是另一個這樣的二進制可執行文件,用戶可以在終端中使用的命令。 此命令的輸出是一個新文件,用戶輸入的名稱作為選項。 例如,用戶可以編寫 touch hello.txt,輸出將是一個文件 hello.txt

    如何運行多個 Bash 命令

    要運行多個 Bash 命令并讓它們一次執行,用戶可以將這些命令保存在單個文件中,以便用 bash 執行。假設您在 Unix/類 Unix 環境中工作,讓我們考慮一下我們之前討論過的內容。

    打開命令終端后,首先使用您喜歡的文本編輯器,例如 nano vi。寫入:

    nano make_a_file.txt

    然后,寫出以下內容:

    #create a file
    touch hello.txt
    
    #list files from this directory
    ls -al

    保存并退出文件,并使用以下命令語法之一運行新腳本:

    sh make_a_file.txt

    ./make_a_file.txt

    bash make_a_file.txt

    如果執行該文件時出錯,請通過輸入以下內容繼續為您剛剛編寫的腳本文件設置可執行權限:

    chmod +x hello.sh

    如果您遵循了這個示例,那么您剛剛創建了一個包含多個 Bash 命令的文件。Bash 解釋器將按順序運行這些命令并忽略以哈希符號 # 開頭的行,因為這些行是注釋。運行該文件會產生一個文件列表的終端輸出,其中將包含一個 hello.txt,之前沒有。

    通常,一個 Bash 腳本文件以包含 .sh 擴展名的格式保存,這表明該文件是一個 shell 腳本。但是,當文件以“she-bang”或“hashbang”開頭時,我們可以像二進制文件一樣執行它。

    在創建腳本時,我們應該考慮到每個二進制 shell 文件都以俗稱的“she-bang”(也稱為 sh-bang 或 hashbang)開頭。這是腳本標題的開始,第一行代碼指示您將使用哪個 shell。在制作腳本時,我們有多種選擇可供選擇,包括 shell (sh)C ShellZ Shell 等。在這種情況下,我們將繼續使用 Bash 來滿足我們的腳本需求。She-bang 是腳本開頭的一組符號“#”“!”。我們知道井號 (#) 表示一行是注釋。 然而,使用 she-bang,類 Unix 系統的程序解釋器會將第一行的其余部分解析為解釋器指令。在這種情況下,在寫入 #!/bin/bash 時,哈希符號和感嘆號作為程序加載器的指示符,指示它使用位于 /bin/bash 目錄的 Bash Shell 程序。

    如何在 Bash 中創建變量

    像大多數其他 Unix shell 一樣,Bash 具有變量、管道、文件名通配符、here 文檔、命令替換和控制流。Bash 還支持交替(它與 C shell 共享)、命令行完成以及信號處理和基本調試。有了這些特性,bash 成為 Unix 和類 Unix 系統的默認命令解釋器也就不足為奇了。

    像其他編程語言一樣,我們可以在使用 Bash 編寫腳本時聲明變量。但是,與其他語言不同,Bash 不需要關鍵字來聲明變量或為其分配數據類型。Bash 沒有類型系統,僅將變量保存為字符串值。但是,Bash 可以根據某些操作(例如算術運算)自動將變量轉換為合適的類型。要寫入變量并為其填充值,請以 VARIABLE=VALUE 格式寫入內容,確保不包含空格。下面是一個示例,展示了如何在 Bash 中創建變量:

    #!/bin/bash
    
    #write a variable
    NAME=“William”
    
    #use that variable
    echo “Hello $NAME”

    用戶還可以通過用戶輸入來填充變量:

    #!/bin/bash
    
    echo “Hello $1, that is a $2 name”

    在終端中:

    ~$bash name.sh “William” “great”
    Hello William, that is a great name

    還可以使用 read 之類的命令在運行時使用用戶輸入的變量:

    #!/bin/bash
    
    echo “What is your name?”
    
    read name
    
    echo “Hello $name”

    在終端中:

    ~$bash name.sh
    What is your name?
    ~$William
    Hello William

    Bash 中的 if 語句

    我們還可以為附加功能實現 if 語句。

    #!/bin/bash
    
    echo “Who is there?”
    
    read name
    
    if [ $name ]
    echo “Hello $name”
    else
     echo “Must’ve been my imagination”
    fi

    在終端中:

    ~$bash name.sh
    Who is there?
    ~$
    Must’ve been my imagination

    如何在 Bash 中創建備份管理腳本

    其他需要考慮的項目包括設置備份管理腳本。這可以是一個簡單的項目,可以開始并在以后重新訪問。有了這個,您可以制作一個簡單的腳本,針對一個或多個文件和文件夾使用 tar 庫進行壓縮,并將其放置在您選擇的新備份目錄中。以下腳本是一個基本的備份腳本,它為需要備份的文件創建一個 .Zip 文件,并根據創建日期對它們進行標記:

    #!/bin/bash
    
    #get the month, day, and year of the current date
    TIME_OF_BACKUP=`date +%m-%d-%y`
    
    #create a backup file using the current date in its name
    DESTINATION=/path/[BACKUP FOLDER]-$TIME_OF_BACKUP.tar.gz
    
    #the folder that contains the files that we want to backup
    TARGET_FOLDER=/path/[TARGET FOLDER]
    
    #create the backup
    tar -cpzf $DESTINATION $TARGET_FOLDER

    作為獎勵,您可能希望通過為備份腳本添加計劃執行來增加此項目的一些復雜性,并增加自動化級別。為此,您可以使用 crontab 程序和命令庫。如果您需要安裝 cron,請確保在繼續安裝 cron 之前更新您當前的包庫。

    sudo apt-get update
    sudo apt-get install cron

    成功安裝后,您可以繼續使用 cron 庫來安排腳本的執行。

    crontab -e

    這將打開 /etc/crontab 文件,并允許您編寫如下命令來安排腳本的執行:

    @weekly /path/backup_script.sh

    我不會進一步討論您可以使用 crontab 做什么,因為它不在本文的范圍內。

    通過本入門指南,您將對什么是 Bash、什么是腳本以及 Bash 中的腳本有什么了解。你可以用 Bash 做很多事情,而且你不需要了解很多關于編程的知識,就可以將不同的 Linux 應用程序和工具拼湊在一起,并制作一些有用的東西。Bash 腳本是一個非常有用的工具,希望您能從這篇文章中獲得靈感,讓您的想法自動化。

    WSL掛載Windows磁盤

    在Linux系統中我們可以使用fdisk -l來查看磁盤,使用mount /dev/sdxxxx等命令來掛載磁盤,但是這些命令在WSL系統下是有些變化的,我們需要使用指定的命令進行掛載/卸載磁盤

    sudo mount -t drvfs G: /mnt/e
    # 此處的-t作用為指定掛載類型,使用G:形式的windows盤符而不使用/dev/sdxxx因為WSL系統為模擬層,而非真實系統,所以WSL下是沒有/dev/sdxxx形式的磁盤的
    # 同樣,卸載的命令使用的是umount,基本和Linux相同

    WSL程序重啟

    若想要重啟WSL程序,則需要使用管理員權限運行cmd/powshell程序,再執行以下命令進行重啟

    # WSL-Ubuntu18.04 LTS 重啟方法
    # 以管理員權限運行cmd
    $ net stop LxssManager  //停止
    $ net start LxssManager //啟動

    開機自啟服務

    使用VBS編寫腳本 使WSL 開機自啟動一些服務

    wls_rclocal.vbs

    Set ws=WScript.CreateObject("WScript.Shell")
    cmd="C:\Windows\System32\bash.exe -c ""bash /home/init.sh"""
    ' 運行命令不顯示cmd窗口
    ws.Run cmd, 0, false
    Set ws=Nothing
    WScript.quit

    將這個VBS腳本放入到啟動文件夾中 開機自啟 自動執行 /home/init.sh shell 腳本

    然后去編寫你自己的shell 腳本, 如下:

    #! /bin/bash
    
    # 啟動ssh服務(主要為第一個sudo執行的腳本需要輸入密碼,所以第一個為特殊服務)
    sudo -S service ssh start <<EOF
     這里是你的密碼
    EOF
    
    # 下面是你需要啟動的服務
    sudo service nginx start
    sudo service php7.1-fpm start
    sudo service php7.2-fpm start
    sudo service redis-server start
    sudo service mysql start
    
    # 運行bash.exe不退出
    while true
    do
        sleep 600
    done

    wsl2 改變系統文件存放位置

    # 查看WSL分發版本
    wsl -l --all -v
    # 導出分發版為tar文件到d盤【假設上一步獲取到的wsl為Ubuntu】
    wsl --export Ubuntu d:\wsl-ubuntu.tar
    # 注銷當前分發版
    wsl --unregister Ubuntu
    # 重新導入并安裝WSL在d:\wsl-ubuntu
    wsl --import Ubuntu d:\wsl-ubuntu d:\wsl-ubuntu.tar --version 2
    # 設置默認登陸用戶為安裝時用戶名
    ubuntu2004 config --default-user <用戶名>
    # 如果此命令報錯了,不要慌,先去 C:\Users\<用戶名>\AppData\Local\Microsoft\WindowsApps 目錄看下是不是有個ubuntu2004.exe文件,如果是叫其他名字的話直接更換為其他名字即可
    # 若還是報錯,則說明此目錄沒有在PATH變量中,直接進入到此目錄進行執行即可
    # 刪除tar文件(可選)
    del d:\wsl-ubuntu20.04.tar
    # 停止Linux子系統
    wsl -t Ubuntu
    # 切換WSL為新的Linux子系統【假設切換的系統為UbuntuE】
    wslconfig /setdefault UbuntuE
    

    wsl2 配置錯誤導致無法提權時

    有時我們需要使用 sudo / su 等進行提權,以便我們能使用普通用戶身份,但有時我們修改了配置時,導致執行 sudo 出錯,或者 su 出錯,甚至沒有配置 root 密碼時,我們可以在 WindowsPowerShell 中執行以下命令用以切換用戶進行恢復配置文件

    echo "修改默認用戶為root,此處的debian.exe修改成響應的wsl子系統名稱即可"
    debian.exe config --default-user root
    echo "修改完以后再將用戶切換回來"
    debian.exe config --default-user xxxx
    echo "其他錯誤可以使用run方法進行快速編輯修復"
    debian.exe run df -h

    wsl2 IP地址查看

    # 查看Windows系統的IP
    $ nameserver 172.22.176.1
    # 查看WSL2系統的IP
    # 如果有其他網卡請自行切換,一般都是用的eth0網卡
    $ ip addr | grep inet | grep eth0 | cut -d " " -f 6 | cut -d "/" -f 1

    debian 系統TAB補全

    1. 安裝補全插件
    $ sudo apt-get install bash-completion
    1. 編輯配置文件 ~/.bashrc
網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有