溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux?Shell的常用操作有哪些

發(fā)布時間:2023-05-04 15:37:32 來源:億速云 閱讀:84 作者:iii 欄目:開發(fā)技術

這篇“Linux Shell的常用操作有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Linux Shell的常用操作有哪些”文章吧。

    Linux】1 Shell

    1. 語錄

    計算機不僅僅用來開發(fā)個網(wǎng)站或軟件,更是我們手中的利器,我們的tools。
    shell是我們與計算機交互的主要方式,可視化的圖形界面其實很受限,你只能通過預設的按鈕去做一些事情。

    2. Shell

    2.1 程序

    操作系統(tǒng)中通常都有一個”shell“,例如windows中的powershell。它們之間可能有些區(qū)別,但總的來說差不多。在windows系統(tǒng)中,也可以通過安裝Git,使用linux風格的git bash 。(windows 下的git bash有時也不太一樣,更建議真正的linux系統(tǒng))

    shell中可以通過輸入程序名來執(zhí)行程序,比如有個程序叫date,就之間輸入($是命令提示符,就像windows中的>)

    $ date
    Sat Mar 18 20:52:33     2023

    可以給程序傳遞參數(shù),例如程序echo的運行效果就是把傳遞給它的參數(shù)打印出來,

    $ echo hello
    hello

    此外,如果有多個參數(shù),參數(shù)之間是使用空格分開的,如果傳多單詞組成的參數(shù),可以使用\(轉義字符),例如下面其實只給echo傳了一個參數(shù),

    $ echo hello\ world
    hello world

    系統(tǒng)可以找到你輸入的程序,是通過 Path(路徑),可以查看環(huán)境變量中的所有路徑

    $ echo $PATH
    /c/Users/ThinkPad/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/mingw64/bin:/usr/bin:/c/Users/ThinkPad/bin:/c/Program Files/Common 
    ...(我省略了)

    在你輸入一個程序名,比如echo時,shell就會在系統(tǒng)的所有路徑的目錄中搜索該程序,你可以這樣查看一個程序所在的路徑

    $ which echo
    /usr/bin/echo

    補充:關于程序(命令)的參數(shù),我們使用-后面接單個字母,使用--后面接單詞。例如-a,--all。

    2.2 目錄

    程序默認會在當前目錄下運行。下面是一些常用的目錄操作

    命令介紹
    pwd(print work directory)打印當前目錄路徑
    ls列出當前目錄下的文件,使用-l參數(shù)將顯示更多詳細信息
    cd切換目錄到指定目錄,使用cd -可回到剛才所在的目錄,方便在兩個目錄間切換。.表示當前目錄,..表示父目錄,~表示用戶目錄,/開頭表示根目錄。

    通過--help參數(shù),可以查看某個命令的用法,例如

    $ ls --help

    想一想:ls -l列出的目錄列表及其信息,如何解讀?

    而操作文件需要權限,你需要擁有整條路徑的權限才能對文件進行相應的操作。下面是一些和文件操作有關的命令介紹。

    2.3 文件

    2.3.1 簡單文件操作

    你可以使用mv命令給文件重命名,即使它是move(移動)的意思。假設你在當前的目錄下已經(jīng)有個文件hello.txt,那么你可以使用命令

    $ mv hello.txt hello2.txt

    將它重命名為hello2.txtcp命令可以復制文件,它的意思是copy (很顯然),你可以接著剛才的命令使用

    $ cp hello2.txt hello.txt

    那么你的hello.txt文件又回來了!現(xiàn)在你有了兩個相同內容的文件,卻有著不一樣的名字。但估計你會覺得這有些多余,但好在你可以使用命令rm刪掉其中一個,就像下面這樣

    $ rm hello2.txt

    好了,現(xiàn)在我們又回到了剛剛開始的樣子,但我們剛剛的操作已經(jīng)在終端留下了雜亂的信息,使用clear命令清除它們!

    $ clear

    如果你想新建文件,可以使用touch命令,比如新建一個空hello2.txt文件

    $ touch hello2.txt

    有時你會感覺命令的名字有些奇怪,為什么創(chuàng)建文件要是touch?其實它就像前面的mv命令,重命名僅僅對它的一種使用方式,而它能做的不止于此,它其實可以將文件移動到你計算機的任何一個地方!

    touch是一個時間戳命令,當操作的文件不存在時就會自動新建一個文件——而不是它本身只有新建文件的功能。當你感到疑惑時可以使用touch --help看看幫助文檔。而我使用echo命令同樣達到新建文件的目的

    $ echo '' > hello3.txt

    它將新建一個空文件hello3.txt 。你可能看著這些linux命令就像回到了高中背單詞的時候,同一個單詞有著相互略微聯(lián)系的多種用法——也確實如此,單詞是語言的基礎。

    至于剛剛命令中的>>符號,相信大家一看就懂,我們后面也將會進一步介紹。

    2.3.2 重定向

    程序的輸出除了直接顯示到屏幕上,你也可以將它保存到文件里,而重定向可以幫你達成這個目標。這里有個流的概念,每個程序都有自己的輸入流與輸出流,程序從自己的輸入流中讀取數(shù)據(jù),并將運行結果寫入到輸出流中。而程序默認從鍵盤輸入獲取數(shù)據(jù),并將運行結果寫到屏幕上,我們將鍵盤輸入稱為標準輸入流,將屏幕稱為標準輸出流。而重定向將助你獲得修改程序輸入、輸出方向的能力——而不總是鍵盤和屏幕。

    echo命令將輸入流中的數(shù)據(jù)傳遞到輸出流,但我現(xiàn)在不想輸出到屏幕,我要將輸入的內容保存到文件里,那么可以使用>——重定向輸出流。

    $ echo hello > hello.txt

    想一想:為什么echo < hello.txt輸出為空?

    類似地可以使用<重定向輸入流。cat命令可以將文件輸入顯示到屏幕,如

    $ cat hello.txt
    hello

    現(xiàn)在我們通過重定向,可以將hello.txt文件的內容復制到另一個文件hello2.txt

    $ cat < hello.txt > hello2.txt
    $ cat hello2.txt
    hello

    cat程序從hello.txt中獲得輸入,并將輸出寫入了hello2.txt中&mdash;&mdash;而不是屏幕上。

    >重定向的輸出流是覆蓋模式,對應到文件操作中,就是先清空文件中原有的內容,然后寫入新內容。如果你是想在原來的基礎上添加一些內容,那么>>很適合你,它將以追加模式寫入新內容。

    $ echo world >> hello.txt
    $ cat hello.txt
    hello
    world
    命令介紹
    <重定向輸入流
    >重定向輸出流,以覆蓋模式寫入
    >>重定向輸出流,以追加模式寫入

    2.4 管道

    一個程序的輸出可以保存到文件里,也可以直接傳遞給另一個程序。將左側程序的輸出直接作為右側程序的輸入,這便是管道的作用,管道符為|。

    tail命令通過-n參數(shù),可以輸出它輸入中的最后n行。命令ls -l /會顯示出很多信息,那么通過下面的命令我可以只顯示其中最后兩行:

    $ ls -l / | tail -n 2
    -rw-r--r--  1 ThinkPad 197121   24183 Nov 28 12:20 unins000.msg
    drwxr-xr-x  1 ThinkPad 197121       0 Nov 28 12:20 usr/

    tee命令可以將輸入同時輸出到屏幕和指定的文件中,那么加上管道你可以像下面這樣

    $ echo linux1234 | tee hello.txt
    linux1234

    以上就是關于“Linux Shell的常用操作有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業(yè)資訊頻道。

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

    AI