1. 程式人生 > ># Linux 命令列基礎

# Linux 命令列基礎

linux 命令列基礎

shell是什麼

1. shell

當我們說的命令列時,我們實際上指的是shell。shell是一個接受由鍵盤輸入的命令,並將其傳遞給作業系統來執行的程式。幾乎所有的Linux發行版都提供shell程式,改程式來自於稱之為bash的GNU專案。bash是Bourne Again Shell的首字母縮寫。即是sh的增強版本,sh是最初的unix shell程式。

2. 終端模擬器

當使用圖形使用者介面時,需要另一種叫做終端模擬器(terminal)的程式與shell互動。在linux下面有很多不同的終端給你選擇使用。

3. 在終端的第一次輸入

  1. 開打終端,mac,linux都有不同終端。

  2. 如何在終端中簡單檢視是普通使用者還是超級使用者

    1. 在終端中看到的是 $表示 普通使用者執行命令

      ![](…/…/pics/linux/basic_linux/螢幕快照 2018-09-04 下午11.01.35.png)

    2. 在終端中看到的是 #表示 超級使用者許可權正在執行命令 ![](…/…/pics/linux/basic_linux/螢幕快照 2018-09-04 下午11.03.14.png)

4. history

  1. 在終端中輸入history來檢視命令歷史記錄

大部分Linux發行版會記錄500條命令(最近的)

$ history
  1. 我們也可以使用上下鍵來獲取歷史記錄

  2. 我們可以使用! 來獲取歷史命令

    1. !+num 使用! 加上history裡面的命令號碼,就可以快捷的打出命令來
    2. !his 他會自動補全上一次的命令,就像正則匹配一樣,比如這個命令就會補全我們剛才輸入的history命令

5. date cal 檢視日期函式

  1. 使用date來檢視日期

    $ date
    
  2. 使用cal來獲取日曆

    $ cal
    

6. exit 結束會話

  1. exit在本地輸入會退出終端程式
  2. exit在ssh登入中會退出遠端ssh,但是不會退出程式

7. 目錄導航 pwd cd ls

  1. 檔案目錄樹

    和其他系統一樣,linux系統的也是通過資料夾將目錄進行一個層次的劃分,資料夾有一個最頂層的目錄,叫做根目錄。他包含了檔案和資料夾,然後這些資料夾再包含子檔案和資料夾依次類推。這種結構我們稱為檔案系統樹

    在linux中,不管你有多少個儲存裝置,通常只有一個檔案系統樹。

    檔案的根目錄用 / 表示

    在linux中我們可以使用

    $ tree /
    

    來檢視 / 目錄的下面的結構

  2. pwd 檢視當前工作(所在)目錄

    $ pwd
    
  3. ls 列出當前工作目錄和檔案和目錄

    $ ls
    
  4. 更改當前工作目錄

    1. cd 命令:就像我們windows一樣,我們也可以在linux裡面去切換所在的資料夾,cd 後面跟上目錄的名稱就可以直接切換到某個目錄

      $ cd /Users/canvas/Desktop/project/web_font_notes
      
    2. 絕對路徑: 上述所使用的方式是使用了絕對路徑,絕對路徑是指從根目錄開始 以 /號為目錄的層級分割,一層層的到達所指的目錄。 比如上面所說的:

    /Users/canvas/Desktop/project/web_font_notes
    
    1. 相對路徑: 既然有絕對路徑,那麼就有相對路徑,就是相對本工作目錄的其他目錄所在的位置,比如找到本目錄所屬的上級../目錄或者目錄下面的某個目錄./
  5. 快捷命令

    回到剛才所在的目錄
    cd -
    到使用者的根目錄下面
    cd ~
    到xx使用者的根目錄下面
    cd ~username
    
  6. linux使用者目錄

    我們知道 linux的根目錄是 /,linux是一個多使用者的系統,每一個使用者都有自己的獨立的空間, ~代表進入到本使用者獨立的空間中(根目錄),一般 Linux的使用者空間是存在於 /home/下面的

  7. 更多的ls擴充套件命令

    1. ls 可以直接顯示本檔案下面的檔案

      canvasdeMBP:web_font_notes canvas$ ls
      06_js_anwser.html		class_question_and_anwser	home_work_and_anwser
      
    2. ls 後面跟上檔案路徑可以檢視那個資料夾中的子檔案

      canvasdeMBP:web_font_notes canvas$ ls ./css/
      
      css_basic	css_cases	css_layout	test
      
      
    3. 可以使用長格式來獲取更多的細節(相當於擴充套件的命令)

      canvasdeMBP:web_font_notes canvas$ ls -l
      
      -rw-r--r--   1 canvas  staff  2308  8 27 16:29 06_js_anwser.html
      

    -rw-r–[email protected] 1 canvas staff 4305 9 13 21:17 README.md drwxr-xr-x 2 canvas staff 64 9 3 18:37 bootstrap

     ```
    

8. 命令的選項和引數

大部分命令是可以通過引數來使命令有不同的效果的,大致的命令格式如下:

command -options arguments

就像上面的命令一樣 加上命令的選項

canvasdeMBP:web_font_notes canvas$ ls -lt
total 40
[email protected]  1 canvas  staff  4305  9 13 21:17 README.md
drwxr-xr-x  10 canvas  staff   320  9 13 21:14 jquery
drwxr-xr-x   8 canvas  staff   256  9 13 16:56 js
drwxr-xr-x   6 canvas  staff   192  9 13 08:58 css
drwxr-xr-x   3 canvas  staff    96  9  9 22:10 sources

t表示以時間順序來檢視子檔案,lt-l-t的聯合使用,表示以長格式輸出,並且以時間來排序

也可以使用長格式來輸出

canvasdeMBP:web_font_notes canvas$ ls -lt -reverse

 8 -rw-r--r--   1 canvas  staff  2308  8 27 16:29 06_js_anwser.html
 0 drwxr-xr-x   2 canvas  staff    64  9  3 18:37 bootstrap
 0 drwxr-xr-x   5 canvas  staff   160  9  5 14:42 pics
 0 drwxr-xr-x   4 canvas  staff   128  9  5 14:46 class_question_and_anwser

長格式中 -reverse是長格式的寫法,就像 -l也可以寫-long的方式表達

所以說 命令可以使用長格式或者短格式來輸出,有些版本的linux可能需要 --long來表示長格式

9. ls命令顯示的解釋

當輸入 ls -l之後,會顯示如下

canvasdeMBP:web_font_notes canvas$ ls -lt -reverse

 8 -rw-r--r--   1 canvas  staff  2308  8 27 16:29 06_js_anwser.html
 0 drwxr-xr-x   2 canvas  staff    64  9  3 18:37 bootstrap
 0 drwxr-xr-x   5 canvas  staff   160  9  5 14:42 pics
 0 drwxr-xr-x   4 canvas  staff   128  9  5 14:46 class_question_and_anwser

欄位 含義
-rw-r–r-- 第一個字元 -表示檔案 如果是d表示資料夾 後面的rw等等表示的是本使用者,使用者組,其他使用者對這個檔案或者資料夾的使用許可權
1 檔案硬連結數目
canvas 檔案所有者
staff 檔案所屬使用者組
2308 以位元組數顯示檔案大小
18:37 檔案的上次修改時間
pics 檔案的名稱

ls命令含義總結:

引數 描述
-a –all 列出目錄下的所有檔案,包括以 . 開頭的隱含檔案
-l 除了檔名之外,還將檔案的許可權、所有者、檔案大小等資訊詳細列出來
-d –directory 將目錄象檔案一樣顯示,而不是顯示其下的檔案
-h –human-readable 以容易理解的格式列出檔案大小 (例如 1K 234M 2G)
-t 以檔案修改時間排序

10. file用法

在探索linux系統的時候,知道檔案的型別是很有用的,我們在windows上面一般是通過檢視檔名的字尾來知曉檔案的型別的meinv.jpg, 但是在linux上面,檔案的名字和檔案本身的型別並不掛鉤,所以不管是什麼型別的檔案我們都可以隨便的起名字。但是我們可以通過file這個命令來檢視檔案的型別

canvasdeMBP:bin canvas$ file lzma
lzma: Mach-O 64-bit executable x86_64

通過上面我們可以看到,檔案的型別是可執行的64位程式

11. less命令的使用

less命令可以幫我們檢視檔案裡面的內容

我們可以直接去less一個檔案

less lzcmp

當我們less的時候,使用 j向下翻 k向上翻 q退出 這和vim編輯器有點類似

12. linux 預設目錄說明

  1. /系統根目錄
  2. /bin包含系統啟動和執行所需要的二進位制檔案(binary)
  3. /dev裝置節點特殊目錄。核心將它能夠識別的所有裝置存放在這個目錄(linux一切皆檔案 裝置也要看成檔案)
  4. /etc一般的配置檔案都在裡面
  5. /home由於Linux是多使用者的 所以每個使用者都有自己獨立空間,普通的使用者只有許可權在這裡建立檔案。
  6. liblinux 核心系統使用的共享庫檔案
  7. /lost+found當系統崩潰時,該目錄用於恢復分割槽。(嚴重的問題)
  8. /media可移除媒體裝置掛載點。比如usb驅動 cd-rom等。當裝置插入計算機後,會自動的掛載到這個目錄節點下面
  9. /mnt早期linux系統中 /mnt 目錄包含手動掛載可移除的裝置掛載點
  10. /opt安裝可選軟體,一般使用者自己下載的軟體放在這裡
  11. /rootroot賬戶的主目錄
  12. /sbin系統二進位制檔案。重要的系統檔案。為超級使用者預留的
  13. /tmp提供使用者存放各種臨時系統檔案的目錄 可以配置每次重啟系統時清空這個目錄
  14. /usr包含普通使用者使用的所有程式和相關檔案
  15. /usr/bin目錄中放置了一些Linux發行版安裝的可以執行程式。儲存成千上萬個程式
  16. /usr/lib/usr/bin中使用的共享庫
  17. /usr/local由原始碼編譯好的程式通常安裝在/usr/local/bin中
  18. /usr/sbin更多的管理員程式
  19. /var存放有可能改變的目錄,比如說系統日誌

操作檔案和目錄 cp mv …

  1. mkdir

    說明: mkdir是用來建立目錄的

    可以一次性建立一個資料夾或者多個資料夾

    
    $ mkdir dir1   
    
    $ mkdir dir1 dir2 dir3
    

    命令引數:

    引數 描述
    -m --mode=模式 設定許可權<模式>
    -p --parents 可以是一個路徑名稱。若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄
    -v --verbose 每次建立新目錄都顯示資訊

    遞迴建立多個目錄

    $ mkdir -p testmkdir/testmkdir
    

    建立許可權為 777 的目錄

    $ mkdir -m 777 -p test/test1
    
  2. cp命令

    說明: cp命令是用來複制檔案或者目錄的

    複製檔案到哪個檔案

    $ cp file1 fil2
    
    

    複製檔案到xx檔案裡面

    $cp file1 file2 dir2
    

    複製資料夾到另一個資料夾中

    cp -r dir1 dir3
    

    複製資料夾到資料夾,區別在於 test_dir1不存在會建立新的資料夾

    $ cp -r dir1 test_dir1
    

    複製檔案中的所有檔案到另一個資料夾中

    cp dir/* dir3
    

    擴充套件選項

    意義
    -a 複製檔案和目錄,以及它們的屬性,包括所有權和許可權。 預設情況下,複本具有使用者所操作檔案的預設屬性。
    i 在重寫已存在檔案之前,提示使用者確認。如果這個選項不指定, cp 命令會預設重寫檔案。
    -r 遞迴地複製目錄及目錄中的內容。當複製目錄時, 需要這個選項(或者-a 選項)。
    u 當把檔案從一個目錄複製到另一個目錄時,僅複製 目標目錄中不存在的檔案,或者是檔案內容新於目標目錄中已經存在的檔案。
    -v 顯示翔實的命令操作資訊
    -n 不要覆蓋已存在的檔案(使前面的 -i 選項失效)
  3. mv命令 移動檔案或者資料夾

    mv的命令和cp命令有許多的相似

    擴充套件選項

    引數 描述
    i 在重寫已存在檔案之前,提示使用者確認。如果這個選項不指定, cp 命令會預設重寫檔案。
    u 當把檔案從一個目錄移動到另一個目錄時,僅移動 目標目錄中不存在的檔案,或者是檔案內容新於目標目錄中已經存在的檔案。
    -v 顯示翔實的命令操作資訊
    -f 如果目標檔案已經存在,不會詢問而直接覆蓋

    移動檔案到哪個檔案

    $ mv file1 file2
    
    

    移動目錄到哪個目錄

    $cp dir1 dir2
    

    移動目錄或檔案到到哪個目錄下

    $cp file dir2
    
  4. rm命令

    說明: rm刪除檔案 這是一個危險的命令 因為linux沒有回收站 所以當你刪除了檔案是不能後悔的

    意義
    i 在刪除之前,提示使用者確認。
    -r 遞迴地刪除目錄及目錄中的內容
    -f 忽視不存在的檔案,不顯示提示資訊
    -v 顯示翔實的命令操作資訊

    刪除檔案

    rm file1 file2
    

    刪除資料夾

    rm -r dir1
    
    小心 rm! 不要使用 rm / 這樣會把你的系統毀掉

ln 檔案連結 (硬連結|硬連結)

  1. 硬連結

    $ ln file link
    

硬連結和符號連結比起來,硬連結是最初 Unix 建立連結的方式,而符號連結更加現代。 在預設情況下,每個檔案有一個硬連結,這個硬連結給檔案起名字。當我們建立一個 硬連結以後,就為檔案建立了一個額外的目錄條目

硬連結有兩個重要侷限性:

  1. 一個硬連結不能關聯它所在檔案系統之外的檔案。這是說一個連結不能關聯 與連結本身不在同一個磁碟分割槽上的檔案。
  2. 一個硬連結不能關聯一個目錄

一個硬連結和檔案本身沒有什麼區別

  1. 符號連結

    $ ln -s file link
    

建立符號連結是為了克服硬連結的侷限性。符號連結生效,是通過建立一個 特殊型別的檔案,這個檔案包含一個關聯檔案或目錄的文字指標。

  1. 連結實戰
>連結檔案

	```
	ln -s  file2 ln_file2
	```
>連結資料夾

	```
	ln -s dir4 ln_dir4
	cd ln_dir4
	```

顯示命令

  1. 概覽:

    1. type – 說明怎樣解釋一個命令名
    2. which – 顯示會執行哪個可執行程式
    3. man – 顯示命令手冊頁
    4. apropos – 顯示一系列適合的命令
    5. info – 顯示命令 info
    6. whatis – 顯示一個命令的簡潔描述
    7. alias – 建立命令別名
  2. 到底什麼是命令

    1. 是一個可執行程式,就像我們所看到的位於目錄/usr/bin 中的檔案一樣。 屬於這一類的程式,可以編譯成二進位制檔案,諸如用 C 和 C++語言寫成的程式, 也可以是由指令碼語言寫成的程式,比如說 shell,perl,python,ruby,等等
    2. 是一個內建於 shell 自身的命令。bash 支援若干命令,內部叫做 shell 內部命令 (builtins)。例如,cd 命令,就是一個 shell 內部命令。
    3. 是一個 shell 函式。這些是小規模的 shell 指令碼,它們混合到環境變數中。
    4. 是一個命令別名。我們可以定義自己的命令,建立在其它命令之上。
  3. type-顯示命令的型別

    說明: type 命令是 shell 內部命令,它會顯示命令的類別,給出一個特定的命令名(做為引數)。

    $ type cd
    
    cd is a shell builtin
    
    $ type ls
    ls is hashed (/bin/ls)
    
    
    
  4. 定位

    1. which - 顯示一個可執行程式的位置

      在 PATH 變數指定的路徑中搜索可執行檔案的所在位置。它一般用來確認系統中是否安裝了指定的軟體。

      說明:有時候在一個作業系統中,不只安裝了可執行程式的一個版本。然而在桌面系統中,這並不普遍, 但在大型伺服器中,卻很平常。為了確定所給定的執行程式的準確位置,使用 which 命令

      rimideiMac-10:ln_dir4 admin$ which ls
      /bin/ls
      
      

      (某些系統中)這個命令只對可執行程式有效,不包括內部命令和命令別名,別名是真正的可執行程式的替代物

    2. whereis 命令

      whereis 命令主要用於定位可執行檔案、原始碼檔案、幫助檔案在檔案系統中的位置。whereis 命令還具有搜尋原始碼、指定備用搜索路徑和搜尋不尋常項的能力。

      whereis 命令查詢速度非常快,這是因為它根本不是在磁碟中漫無目的亂找,而是在一個數據庫中(/var/lib/mlocate/)查詢。這個資料庫是 Linux 系統自動建立的,包含有本地所有檔案的資訊,並且每天通過自動執行 updatedb 命令更新一次。也正是因為這個資料庫要每天才更新一次,就會使得 whereis 命令的搜尋結果有時候會不準確,比如剛新增的檔案可能搜不到。

    3. locate

      locate 命令跟 whereis 命令類似,且它們使用的是相同的資料庫。但 whereis 命令只能搜尋可執行檔案、聯機幫助檔案和原始碼檔案,如果要獲得更全面的搜尋結果,可以使用 locate 命令。

  5. help 幫助文件

    rimideiMac-10:ln_dir4 admin$ help cd
    cd: cd [-L|-P] [dir]
        Change the current directory to DIR.  The variable $HOME is the
        default DIR.  The variable CDPATH defines the search path for
        the directory containing DIR.  Alternative directory names in CDPATH
        are separated by a colon (:).  A null directory name is the same as
        the current directory, i.e. `.'.  If DIR begins with a slash (/),
        then CDPATH is not used.  If the directory is not found, and the
        shell option `cdable_vars' is set, then try the word as a variable
        name.  If that variable has a value, then cd to the value of that
        variable.  The -P option says to use the physical directory structure
        instead of following symbolic links; the -L option forces symbolic links
        to be followed.
    
    

    注意表示法:出現在命令語法說明中的方括號,表示可選的專案。一個豎槓字元 表示互斥選項。 這種表示法說明,cd 命令可能有一個”-L”選項或者”-P”選項,進一步,可能有引數“dir”

    1. 許多可執行程式支援一個”—help”|-h選項,這個選項是顯示命令所支援的語法和選項說明

      	rimideiMac-10:ln_dir4 admin$ python --help
      	usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
      	Options and arguments (and corresponding environment variables):
      	-b     : issue warnings about str(bytes_instance), str(bytearray_instance)
      	         and comparing bytes/bytearray with str. (-bb: issue errors)
      	-B     : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x
      	-c cmd : program passed in as string (terminates option list)
      	-d     : debug output from parser; also PYTHONDEBUG=x
      	-E     : ignore PYTHON* environment variables (such as PYTHONPATH)
      	-h     : print this help message and exit (also --help)
      	-i     : inspect interactively after running script; forces a prompt even
      	         if stdin does not appear to be a terminal; also PYTHONINSPECT=x
      	-I     : isolate Python from the user's environment (implies -E and -s)
      	-m mod : run library module as a script (terminates option list)
      	-O     : remove assert and __debug__-dependent statements; add .opt-1 before
      	         .pyc extension; also PYTHONOPTIMIZE=x
      	-OO    : do -O changes and also discard docstrings; add .opt-2 before
      	         .pyc extension
      	-q     : don't print version and copyright messages on interactive startup
      	-s     : don't add user site directory to sys.path; also PYTHONNOUSERSITE
      	-S     : don't imply 'import site' on initialization
      
      
    2. 一些程式不支援”—help”選項

      rimideiMac-10:ln_dir4 admin$ ls --help
      

    ls: illegal option – - usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file …] ```

  6. man -顯示程式手冊頁

    rimideiMac-10:ln_dir4 admin$ man ls
    

    手冊文件的格式有點不同,一般地包含一個標題,命令語法的綱要,命令用途的說明, 和命令選項列表,及每個選項的說明。然而,通常手冊文件並不包含例項,它打算 作為一本參考手冊,而不是教材。

  7. apropos

    rimideiMac-10:ln_dir4 admin$ apropos mkdir
    mkdir(1)                 - make directories
    mkdir(2), mkdirat(2)     - make a directory file
    
  8. whatis -顯示非常簡潔的命令說明

    
    rimideiMac-10:ln_dir4 admin$ whatis mkdir
    mkdir(1)                 - make directories
    mkdir(2), mkdirat(2)     - make a directory file
    
    
  9. info - 顯示程式 Info 條目

說明:GNU 專案提供了一個命令程式手冊頁的替代物,稱為 “info”。info 內容可通過 info 閱讀器 程式讀取。info 頁是超級連結形式的,和網頁很相似。

	info ls

info 程式讀取 info 檔案,info 檔案是樹型結構,分化為各個結點,每一個包含一個題目。 info 檔案包含超級連結,它可以讓你從一個結點跳到另一個結點。一個超級連結可通過 它開頭的星號來辨別出來,把游標放在它上面並按下 enter 鍵,就可以啟用它。

  1. alias 建立你自己的命令

    說明: alias 可以用於 自己建立一個屬於自己的命令,語句結構 alias name=‘string’

    rimideiMac-10:ln_dir4 admin$ ll
    -bash: ll: command not found
    rimideiMac-10:ln_dir4 admin$ alias ll='ls -l'
    rimideiMac-10:ln_dir4 admin$ ll
    total 0
    drwxr-xr-x  5 admin  staff  170  9 19 09:51 dir5
    -rw-r--r--  1 admin  staff    0  9 19 09:43 test2
    
    rimideiMac-10:ln_dir4 admin$ type ll
    ll is aliased to `ls -l'
    

重定向

  1. 說明 : I/O 重定向。“I/O”代表輸入/輸出, 通過這個工具,你可以重定向命令的輸入輸出,命令的輸入來自檔案,而輸出也存到檔案。 也可以把多個命令連線起來組成一個強大的命令管道

  2. 配合io使用的命令

    cat - 連線檔案

    sort - 排序文字行

    uniq - 報道或省略重複行

    grep - 列印匹配行

    wc - 列印檔案中換行符,字,和位元組個數

    head - 輸出檔案第一部分

    tail - 輸出檔案最後一部分

  3. 標準輸入,輸出,和錯誤

    與 Unix 主題“任何東西都是一個檔案”保持一致,程式,比方說 ls,實際上把他們的執行結果 輸送到一個叫做標準輸出的特殊檔案(經常用 stdout 表示),而它們的狀態資訊則送到另一個 叫做標準錯誤的檔案(stderr)。預設情況下,標準輸出和標準錯誤都連線到螢幕,而不是 儲存到磁碟檔案。除此之外,許多程式從一個叫做標準輸入(stdin)的裝置得到輸入,預設情況下, 標準輸入連線到鍵盤。

    I/O 重定向允許我們可以更改輸出走向和輸入來向。一般地,輸出送到螢幕,輸入來自鍵盤, 但是通過 I/O 重定向,我們可以改變輸入輸出方向。

  4. 重定向標準輸出

    使用 > 把本來應該輸出到螢幕上面的資訊輸出到文字上面


	```
	rimideiMac-10:ln_dir4 admin$ ls / > test1.txt
rimideiMac-10:ln_dir4 admin$ let test1.txt
	```
	
	但是 當我們得到一個錯誤的輸出時候,這個時候程式就不會把資訊寫入文字
	
	```
	rimideiMac-10:ln_dir4 admin$ ls /bin/ac > test2
ls: /bin/ac: No such file or directory
	```
	
	重定向錯誤輸出的話我們需要使用
	
	```
	rimideiMac-10:ln_dir4 admin$ ls /bin/ac 2> test2
	```

	現在的bash給我們提供了一種方法 同時提供重定向錯誤和標準輸出
	
	```
	rimideiMac-10:ln_dir4 admin$ ls /bin/ac &> test2
	```
  1. cat (concatenate)- 連線檔案

    cat 命令讀取一個或多個檔案,然後複製它們到標準輸出,就像這樣:

    rimideiMac-10:ln_dir4 admin$ cat test1.txt 
    Applications
    Library
    Network
    System
    Users
    Volumes
    bin
    cores
    data
    dev
    etc
    home
    installer.failurerequests
    net
    private
    sbin
    tmp
    usr
    var
    
    
    引數 描述
    n 對輸出的所有行編號,由 1 開始對所有輸出的行數編號
    -s 有連續兩行以上的空白行,就代換為一行的空白行

    tac 將 cat 反寫過來,所以它的功能就跟 cat 相反,cat 是由第一行到最後一行連續顯示在螢幕上,而 tac 則是由最後一行到第一行反向在螢幕上顯示出來

  2. 管道線

    1. 使用方式: 命令可以從標準輸入讀取資料,然後再把資料輸送到標準輸出,命令的這種能力被 一個 shell 特性所利用,這個特性叫做管道線。使用管道操作符”|”(豎槓),一個命令的 標準輸出可以管道到另一個命令的標準輸入:

      rimideiMac-10:ln_dir4 admin$ ls / |less
      

      把ls的標準輸出管道到less的標準輸入

      可以使用xargs 把輸出的命令改成一行或者安裝自己的指定行數列印

      ls / | xargs
      
      ls / | xargs -n 4
      

      -n 每行列印多少個

    2. 過濾器:

      管道線經常用來對資料完成複雜的操作。有可能會把幾個命令放在一起組成一個管道線。 通常,以這種方式使用的命令被稱為過濾器。過濾器接受輸入,以某種方式改變它,然後 輸出它。第一個我們想試驗的過濾器是 sort。想象一下,我們想把目錄/bin 和/usr/bin 中 的可執行程式都聯合在一起,再把它們排序,然後瀏覽執行結果:

      rimideiMac-10:ln_dir4 admin$ ls /bin/ /usr/bin/ | sort | less
      

      因為我們指定了兩個目錄(/bin 和/usr/bin),ls 命令的輸出結果由有序列表組成, 各自針對一個目錄。通過在管道線中包含 sort,我們改變輸出資料,從而產生一個 有序列表。

    3. uniq - 報道或忽略重複行

    uniq 命令經常和 sort 命令結合在一起使用。uniq 從標準輸入或單個檔名引數接受資料有序 列表(詳情檢視 uniq 手冊頁),預設情況下,從資料列表中刪除任何重複行。所以,為了確信 我們的列表中不包含重複句子(這是說,出現在目錄/bin 和/usr/bin 中重名的程式),我們新增 uniq 到我們的管道線中:

     ```
     rimideiMac-10:ln_dir4 admin$ ls /bin/ /usr/bin/ | sort |uniq | less
     ```
     >在這個例子中,我們使用 uniq 從 sort 命令的輸出結果中,來刪除任何重複行
    
  3. grep wc

    1. grep

      說明: grep 是個很強大的程式,用來找到檔案中的匹配文字。

      比如說,我們想在我們的程式列表中,找到檔名中包含單詞“zdiff”的所有檔案。這樣一個搜尋, 可能讓我們瞭解系統中的一些程式與檔案壓縮有關係。

      rimideiMac-10:~ admin$ ls /bin/ /usr/bin/ | sort | grep zdiff |less
      
      $ grep 'root' /etc/passwd
      

      將/etc/passwd 檔案中出現 root 的行取出來

      $ grep -v 'root' /etc/passwd
      

      將/etc/passwd 檔案中未出現 root 的行取出來

    2. wc 統計的工具,主要用來顯示檔案所包含的行、字和位元組數

      描述
      統計位元組數
      統計行數
      統計字元數,這個標誌不能與 -c 標誌一起使用
      統計字數,一個字被定義為由空白、跳格或換行字元分隔的字串
      列印最長行的長度
	
canvasdeMBP:project canvas$ cat test.py | wc -c
  165847
canvasdeMBP:project canvas$ cat test.py | wc -l
    1380
canvasdeMBP:project canvas$ cat test.py | wc -m
  165847
canvasdeMBP:project canvas$ cat test.py | wc -w
   12420
canvasdeMBP:project canvas$ cat test.py | wc -m
  165847
   12420
canvasdeMBP:project canvas$ cat test.py | wc -l
		
  1. head / tail -列印檔案開頭部分/結尾部分

    說明:

    有時候你不需要一個命令的所有輸出。可能你只想要前幾行或者後幾行的輸出內容。 head 命令列印檔案的前十行,而 tail 命令列印檔案的後十行。預設情況下,兩個命令 都列印十行文字,但是可以通過”-n”選項來調整命令列印的行數。

    它們也能用在管道線中:

	rimideiMac-10:log admin$ head -n 5 fsck_hfs.log
	rimideiMac-10:log admin$ tail -n 5 fsck_hfs.log
	
	rimideiMac-10:log admin$ ls /usr/bin | tail -n 5

tail 有一個選項允許你實時的瀏覽檔案。當觀察日誌檔案的進展時,這很有用,因為 它們同時在被寫入。

	tail -f /var/log/system.log

高階鍵盤技巧

  1. clear - 清空螢幕

  2. history - 顯示歷史列表內容

  3. ! 回顧歷史命令

  4. 表9-1: 游標移動命令

按鍵 行動
Ctrl-a 移動游標到行首。
Ctrl-e 移動游標到行尾。
Ctrl-f 游標前移一個字元;和右箭頭作用一樣。
Ctrl-b 游標後移一個字元;和左箭頭作用一樣。
Alt-f 游標前移一個字。
Alt-b 游標後移一個字。
Ctrl-l 清空螢幕,移動游標到左上角。clear 命令完成同樣的工作。

許可權

  1. 說明:

    1. Unix 傳統中的作業系統不同於那些 MS-DOS 傳統中的系統,區別在於它們不僅是多工系統,而且也是 多使用者系統。這到底意味著什麼?它意味著多個使用者可以在同一時間使用同一臺計算機。然而一個 典型的計算機可能只有一個鍵盤和一個監視器,但是它仍然可以被多個使用者使用。例如,如果一臺 計算機連線到一個網路或者因特網,那麼遠端使用者通過 ssh(安全 shell)可以登入並操縱這臺電腦。 事實上,遠端使用者也能執行圖形介面應用程式,並且圖形化的輸出結果會出現在遠端的顯示器上。 X 視窗系統把這個作為基本設計理念的一部分,並支援這種功能。

    2. Linux 系統的多使用者效能,不是最近的“創新”,而是一種特性,它深深地嵌入到了 Linux 作業系統的 設計過程中。想一下 Unix 系統的誕生環境,這會很有意義。多年前,在個人電腦出現之前,計算機 都是大型的,昂貴的,集中化的。一個典型的大學計算機系統,例如,是由坐落在一座建築中的一臺 大型中央計算機和許多散佈在校園各處的終端機組成,每個終端都連線到這臺大型中央計算機。 這臺計算機可以同時支援很多使用者。

  2. 許可權系統中的命令

    1. id – 顯示使用者身份號

    當用戶建立帳戶之後,系統會給使用者分配一個號碼,叫做使用者 ID 或者 uid,然後,為了符合人類的習慣,這個 ID 對映到一個使用者名稱。系統又會給這個使用者 分配一個原始的組 ID 或者是 gid

    rimideiMac-10:log admin$ id
    uid=503(admin) gid=20(staff) groups=20(staff),703(com.apple.sharepoint.group.3),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),701(com.apple.sharepoint.group.1),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)
    

    uid 是使用者的獨立id gid是使用者所屬的使用者組 後面的groups是表示這個系統中的使用者組有哪些

  3. chmod – 更改檔案模式

    1. 數字的意義

    許可權模式

    ctal Binary File Mode
    0 000
    1 001 —x
    2 010 -w-
    3 011 -wx
    4 100 r—
    5 101 r-x
    6 110 rw-
    7 111 rwx

    當我看到如下,就能分析出來 檔案的所有者 admin有 讀寫 使用者組staff對檔案有 讀 其他使用者對檔案有讀許可權

    -rw-r--r--  1 admin  staff    0  9 19 09:48 file2
    

    更改檔案或者目錄的許可權

    rimideiMac-10:test admin$ chmod 600 file2 
    
    

    迴圈遞迴的改變資料夾和檔案裡面的許可權

    rimideiMac-10:test admin$ chmod -R 777 dir4
    
    
    1. 符號表示法

    chmod 命令符號表示法

    符號 意義
    u “user”的簡寫,意思是檔案或目錄的所有者。
    g 使用者組。
    o “others” 的簡寫,意思是其他所有的人。
    a “all” 的簡寫,是“u”,“g”,和 “o” 三者的聯合。

    chmod 符號表示法例項

    命令 意義
    u+x 為檔案所有者新增可執行許可權。
    u-x 刪除檔案所有者的可執行許可權。
    +x 為檔案所有者,使用者組,和其他所有人新增可執行許可權。等價於 a+x。
    o-rw 除了檔案所有者和使用者組,刪除其他人的讀許可權和寫許可權。
    go=rw 給群組的主人和任意檔案擁有者的人讀寫許可權。如果群組的主人或全域性之前已經有了執行的許可權,他們將被移除。
    u+x,go=rw 給檔案擁有者執行許可權並給組和其他人讀和執行的許可權。多種設定可以用逗號分開。

    u代表 使用者 g 代表使用者組 o代表其他人

    示例:

    $ rimideiMac-10:test admin$ chmod u+x dir4
    $ rimideiMac-10:test admin$ chmod u-x dir4
    
    

    刪除許可權是對檔案所屬的目錄有w許可權

    1. su – 以另一個使用者的身份來執行 shell

    2. sudo – 以另一個使用者的身份來執行命令

    3. chown – 更改檔案所有者

      chown 命令被用來更改檔案或目錄的所有者和使用者組。使用這個命令需要超級使用者許可權。

      chown 引數例項

    引數 結果
    bob 把檔案所有者從當前屬主更改為使用者 bob。
    bob:users 把檔案所有者改為使用者 bob,檔案使用者組改為使用者組 users。
    :admins 把檔案使用者組改為組 admins,檔案所有者不變。
    bob: 檔案所有者改為使用者 bob,檔案使用者組改為,使用者 bob 登入系統時,所屬的使用者組。
    $ rimideiMac-10:test admin$ chown canvas  file2
    
     passwd – 更改使用者密碼
     
     只要輸入 passwd 命令,就能更改你的密碼。shell 會提示你輸入你的舊密碼和你的新密碼:
    
    			$ passwd
    

程序

  1. 說明:

    通常,現在的作業系統都支援多工,意味著作業系統(給使用者)造成了一種假象,(讓使用者覺得) 它同時能夠做多件事情,事實上,它是快速地輪換執行這些任務的。Linux 核心通過使用程序,來 管理多工。通過程序,Linux 安排不同的程式等待使用 CPU。

    有時候,計算機變得呆滯,執行緩慢,或者一個應用程式停止響應。在這一章中,我們將看一些 可用的命令列工具,這些工具幫助我們檢視程式的執行狀態,以及怎樣終止行為不當的程序。

  2. 程序是怎樣工作的

    當系統啟動的時候,核心先把一些它自己的程式初始化為程序,然後執行一個叫做 init 的程式。init, 依次地,再執行一系列的稱為 init 指令碼的 shell 指令碼(位於/etc),它們可以啟動所有的系統服務。 其中許多系統服務以守護(daemon)程式的形式實現,守護程式僅在後臺執行,沒有任何使用者介面。 這樣,即使我們沒有登入系統,至少系統也在忙於執行一些例行事務。

    一個程式可以發動另一個程式,這個事實在程序方案中,表述為一個父程序建立了一個子程序。

    核心維護每個程序的資訊,以此來保持事情有序。例如,系統分配給每個程序一個數字,這個數字叫做 程序 ID 或 PID。PID 號按升序分配,init 程序的 PID 總是1。核心也對分配給每個程序的記憶體進行跟蹤。 像檔案一樣,程序也有所有者和使用者 ID,有效使用者 ID,等等。

  3. ps – 報告當前程序快照

    rimideiMac-10:test admin$ ps
      PID TTY           TIME CMD
     4506 ttys000    0:00.04 -bash
     4533 ttys001    0:00.25 -bash
     
    

    上例中,列出了兩個程序,程序 4506 和程序 4533,各自代表命令 bash 和 ps。正如我們所看到的, 預設情況下,ps 不會顯示很多程序資訊,只是列出與當前終端會話相關的程序。

    1. 如果給 ps 命令加上選項,我們可以得到更多關於系統執行狀態的資訊:

      rimideiMac-10:test admin$ ps x
        PID   TT  STAT      TIME COMMAND
        385   ??  S      0:06.06 /usr/sbin/cfprefsd agent
        386   ??  S      0:09.18 /usr/libexec/UserEventAgent (Aqua)
        388   ??  S      1:19.98 /usr/sbin/distnoted agent
      
      

      加上 “x” 選項(注意沒有開頭的 “-” 字元),告訴 ps 命令,展示所有程序,

      STAT表示程序的狀態

    狀態 意義
    R 執行。這意味著,程序正在執行或準備執行。
    S 正在睡眠。 程序沒有執行,而是,正在等待一個事件, 比如說,一個按鍵或者網路資料包。
    D 不可中斷睡眠。程序正在等待 I/O,比方說,一個磁碟驅動器的 I/O。
    T 已停止. 已經指示程序停止執行。稍後介紹更多。
    Z 一個死程序或“殭屍”程序。這是一個已經終止的子程序,但是它的父程序還沒有清空它。 (父程序沒有把子程序從程序表中刪除)
    < 一個高優先順序程序。這可能會授予一個程序更多重要的資源,給它更多的 CPU 時間。 程序的這種屬性叫做 niceness。具有高優先順序的程序據說是不好的(less nice), 因為它佔用了比較多的 CPU 時間,這樣就給其它程序留下很少時間。
    N 低優先順序程序。 一個低優先順序程序(一個“好”程序)只有當其它高優先順序程序執行之後,才會得到處理器時間。
  4. 另一個流行的選項組合是 “aux”(不帶開頭的”-“字元)。這會給我們更多資訊:

    rimideiMac-10:test admin$ ps aux
    
    USER               PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
    admin              432 100.0  0.3  4566564  27932   ??  R    日03下午 201:51.72 /System/Library/CoreServices/Dock.app/Contents/MacOS/Dock
    admin              113  99.3  0.4  4563544  31160   ??  Rs   日03下午 655:29.85 /System/Library/CoreServices/loginwindow.app/Contents/MacOS/login
    admin             5119   1.6  1.8  4983908 147960   ??  S     3:02下午   0:29.01 /Applications/Google Chrome.app/Contents/Versions/68.0.3440.106/G
    _windowserver      174   0.9  0.7  5638312  59348   ??  Ss   日03下午  20:16.25 /System/Library/PrivateFrameworks/SkyLight.framework/R
    

    這個選項組合,能夠顯示屬於每個使用者的程序資訊。

    意思
    SER 使用者 ID. 程序的所有者。
    CPU 以百分比表示的 CPU 使用率
    MEM 以百分比表示的記憶體使用率
    SZ 虛擬記憶體大小
    SS 程序佔用的實體記憶體的大小,以千位元組為單位。
    TART 程序執行的起始時間。若超過24小時,則用天表示。
  	3. 查詢某個程式特定的程式
  		rimideiMac-10:test admin$ ps -ef|grep redis
  503   540     1   0 日03下午 ??         0:08.94 /usr/local/opt/redis/bin/redis-server 0.0.0.0:6379  
  503  5403  4533   0  3:27下午 ttys001    0:00.00 grep redis

    4. top – 顯示任務
	雖然 ps 命令能夠展示許多計算機執行狀態的資訊,但是它只是提供,ps 命令執行時刻的機器狀態快照。 為了看到更多動態的資訊,我們使用 top 命令:
	$ top

	5. bg – 
	 把一個任務放到後臺執行
	在後臺執行程式 也可以使用 & 執行
	
	6. kill – 給一個程序傳送訊號
		kill 9527

	
	7. shutdown – 關機或重啟系統

網路系統

1. 說明:

當談及到網路系統層面,幾乎任何東西都能由 Linux 來實現。Linux 被用來建立各式各樣的網路系統和裝置, 包括防火牆,路由器,名稱伺服器,網路連線式儲存裝置等等

2. ping - 傳送 ICMP ECHO_REQUEST 軟體包到網路主機 最基本的網路命令是 ping。這個 ping 命令傳送一個特殊的網路資料包,叫做 IMCP ECHO_REQUEST,到 一臺指定的主機。大多數接收這個包的網路裝置將會回覆它,來允許網路連線驗證。

注意:大多數網路裝置(包括 Linux 主機)都可以被配置為忽略這些資料包。通常,這樣做是出於網路安全 原因,部分地遮蔽一臺主機免受一個潛在攻擊者地侵襲。配置防火牆來阻塞 IMCP 流量也很普遍

    rimideiMac-10:test admin$ ping www.baidu.com
	PING www.a.shifen.com (180.97.33.108): 56 data bytes
	64 bytes from 180.97.33.108: icmp_seq=0 ttl=54 time=37.258 ms
	64 bytes from 180.97.33.108: icmp_seq=1 ttl=54 time=37.536 ms
	64 bytes from 180.97.33.108: icmp_seq=2 ttl=54 time=37.661 ms

一旦啟動,ping 命令會持續在特定的時間間隔內(預設是一秒)傳送資料包,直到它被中斷(按下組合鍵 Ctrl-c)

3. traceroute - 列印到一臺網路主機的路由資料包 這個 traceroute 程式(一些系統使用相似的 tracepath 程式來代替)會顯示從本地到指定主機 要經過的所有“跳數”的網路流量列表

    rimideiMac-10:test admin$ traceroute www.baidu.com
	traceroute: Warning: www.baidu.com has multiple addresses; using 180.97.33.108
	traceroute to www.a.shifen.com (180.97.33.108), 64 hops max, 52 byte packets
	 1  * * *
	 2  10.4.0.2 (10.4.0.2)  2.873 ms  1.298 ms  4.211 ms
	 3  1.163.70.125.broad.cd.sc.dynamic.163data.com.cn (125.70.163.1)  24.743 ms  3.445 ms
	    100.64.0.1 (100.64.0.1)  2.700 ms
	 4  220.167.87.201 (220.167.87.201)  44.881 ms  7.184 ms  3.658 ms
	 5  171.208.199.181 (171.208.199.181)  3.891 ms
	    171.208.199.237 (171.208.199.237)  6.653 ms
	    171.208.199.205 (171.208.199.205)  3.264 ms
	 6  202.97.66.194 (202.97.66.194)  36.510 ms
	    202.97.122.213 (202.97.122.213)  39.014 ms
	    202.97.29.253 (202.97.29.253)  31.803 ms
	 7  202.102.73.150 (202.102.73.150)  42.186 ms
	    202.102.69.250 (202.102.69.250)  34.208 ms
	    202.102.73.150 (202.102.73.150)  38.738 ms

對於那些沒有提供標識資訊的路由器(由於路由器配置,網路擁塞,防火牆等 方面的原因),我們會看到幾個星號

4. netstat - 列印網路連線,路由表,介面統計資料,偽裝連線,和多路廣播成員

程式被用來檢查各種各樣的網路設定和統計資料。通過此命令的許多選項,我們 可以看看網路設定中的各種特性。使用“-ie”選項(或者ifconfig),我們能夠檢視系統中的網路介面:

```
rimideiMac-10:test admin$ ifconfig 

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP> inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=201<PERFORMNUD,DAD> gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 stf0: flags=0<> mtu 1280 XHC20: flags=0<> mtu 0 en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV> ether ac:87:a3:2a:ef:b5 nd6 options=201<PERFORMNUD,DAD> media: autoselect (none) status: inactive en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether b8:09:8a:c7:ac:e5 inet6 fe80::8a1:d9f6:338c:5833%en1 prefixlen 64 secured scopeid 0x6 inet 10.2.1.64 netmask 0xfffff800 broadcast 10.2.7.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect status: active

```

>第一個,叫做 eth0,是 因特網介面,和第二個,叫做 lo,是內部迴環網路介面,它是一個虛擬介面,系統用它來 “自言自語” eth1 內網地址
  1. wget - 非互動式網路下載器

    wget www.baidu.com
    

ssh

  1. rsa加密演算法

    rsa演算法是一種非對稱的加密演算法,他的最大特點就是公鑰加密,私鑰解密

  2. ssh-keygen 使用ssh-keygen生成一對公鑰私鑰對

  3. ssh 登入格式

    ssh [email protected] -p port

  4. scp使用方式

    scp [email protected] -p port:檔案路徑 檔案路徑

查詢檔案

1.locate – 通過名字來查詢檔案

locate 程式快速搜尋路徑名資料庫,並且輸出每個與給定字串相匹配的檔名。比如說, 例如,我們想要找到所有名字以“zip”開頭的程式。因為我們正在查詢程式,可以假定包含 匹配程式的目錄以“bin/”結尾。

    [
            
           

相關推薦

# Linux 命令基礎

linux 命令列基礎 shell是什麼 1. shell 當我們說的命令列時,我們實際上指的是shell。shell是一個接受由鍵盤輸入的命令,並將其傳遞給作業系統來執行的程式。幾乎所有的Linux發行版都提供shell程式,改程式來自於稱之為bash的GNU

Linux命令操作基礎練習

linux是支援多國語言的,terminal在預設的情況下,無法支援以中文編碼輸出資料的.這個時候,我們就得將支援語系改為英文,才能以英文顯示出正確的訊息 1,顯示目前所支援的語系

Git命令基礎(第一課) - 檢視版本和配置使用者資訊(Linux)

檢視版本和配置使用者資訊 檢視版本 or 確認是否安裝成功 配置 User 資訊 檢視版本 or 確認是否安裝成功 $ git --version 配置 User 資訊 // 配

帶你玩轉Linux命令基礎入門篇)

一、學習前準備 幫助文件 Tab 補全 Tab 補全是非常有用的一個功能,可以用來自動補全命令或檔名,省時準確。 未輸入狀態下連按兩次 Tab 列出所有可用命令 已輸入部分命令名或檔名,按 Tab 進行自動補全,多用你就肯定會喜歡的了。

Linux命令基礎

範例 inux 常用 options 開關 管理 連續 管理員 linux文件系統 介紹一些基本的linux常用命令以及技巧 參考書目:鳥哥的Linux私房菜 開關機 數據同步寫入磁盤:sync 重啟:reboot(立即重啟)shutdown -r now (立刻重啟)

linux 命令基礎

編輯模式 根目錄 小寫 文件操作 all 名詞 linu 登錄 提示 命令行基礎 一些名詞 「圖形界面」 「命令行」 「終端」 「shell」 「bash」 安裝使用 Windws: 安裝git, 打開 gitbash Linux 打開終端

linux命令學習

awk ~ 匹配符 在pattern部分進行欄位匹配操作。文中包含bin的很多,但要找到以:分割後,第五個匹配bin的使用者名稱,相當於用:將每行分割成陣列,索引5值匹配,則將第一個打印出來 awk -F: '$5 ~ /bin/{print $1}' /etc/passwd awk NR條件語

如何在Linux 命令終端分屏

下面介紹兩種終端分屏工具:screen和tmux   一、使用screen分屏(只能上下分屏,不能左右分屏) (1)安裝工具 在ubuntu系統中使用sudo apt-get install screen 安裝screen工具 (2)使用工具 1,輸入命令scree

RF工具自定義linux命令命令執行程式碼及資料庫訪問

之前寫了幾次資料庫連線和linux命令列執行的程式碼,在此儲存下。 另考慮到python2的中文編碼問題,註釋等都用簡單英文,見諒~  import paramiko class Excsshcmd(): ssh = paramiko.SSHClient()

Linux 命令中使用 tcpdump 抓包

tcpdump 是一款靈活、功能強大的抓包工具,能有效地幫助排查網路故障問題。 以我作為管理員的經驗,在網路連線中經常遇到十分難以排查的故障問題。對於這類情況,tcpdump 便能派上用場。 tcpdump 是一個命令列實用工具,允許你抓取和分析經過系統的流量資料包。它通常被用作於網路故障分析工具以及安全

Linux命令使用matplotlib,報錯_tkinter.TclError: no display name and no $DISPLAY environment variable問題解決

問題 我在Linux命令列使用Python的matplotlib,報錯 File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 1466, in title return gca().set_titl

服務計算 - 3 Golang開發Linux命令實用程式 - selpg

文章目錄 Golang開發Linux命令列實用程式 - selpg 1. 介紹 2. 設計與實現 2.1 設計思路 2.2 功能模組劃分與實現 4 參考文獻

Linux命令內容

    命令列內容: 一般模式 移動游標 【ctrl】+【f】 螢幕【向前】移動一頁 【ctrl】+【b】 螢幕【向後】移動一頁 0 這是數字0:移動到這一行的最前面字元處

mongodb linux 命令部分命令

shell相關命令 輸入help可以看到基本操作命令: 連線 ./mongo --port 8000 --host 10.130.161.16   第二種連線方式 mongo IP:埠/資料庫名 -u 使用者名稱 -p 密碼   退出 exit

linux-命令快捷方式使用

CTRL+P   命令向上翻滾 CTRL+N   命令向下翻滾 CTRL+U  命令列中刪除游標前面的所有字元 CTRL+D  命令列中刪除游標後面的一個字元 CTRL+H  命令列中刪除游標前面的一個字元 CTRL+F  命令列中游標向後移動 CTRL+B  命令列中游標向前移動 C

服務計算3 開發 Linux 命令實用程式

文章目錄 概述 1.解析引數 2.命令列的'<','>','|'符號 3.執行命令列的命令 4.總結 概述 本次作業參考潘老師的部落格 https://pmlpml.github.io/ServiceComput

Linux命令與shell指令碼程式設計大全(二)

十一、處理使用者輸入 命令列引數 讀取引數: $0是程式名,$1是第一個引數,$2是第二個引數,以此類推,直到第9個引數$9。當引數個數超過10以後,需要在變數數字周圍加上花括號,如${10},如果輸入到命令列的引數是字串且含有空格,需要使用引號。 #! /bin/bash echo

Linux命令與shell指令碼程式設計大全(一)

一、基本 bash shell命令 建立檔案 : touch 連結檔案:符號連結:是一個實實在在的檔案,兩個通過符號連結在一起的檔案,彼此的內容並不相同。使用ln -s命令。 硬連結:會建立獨立的虛擬檔案,其中包含了原始檔案的資訊及位置。但他們從根本上而言是同一個檔案。原始檔案必須事

Linux命令與shell指令碼程式設計大全(三)

十二、呈現資料 輸入和輸出     標準檔案描述符                  0 STDIN 標準輸入   &n

linux 命令不顯示路徑了,而顯示為-bash-4.1#的兩種解決辦法

問題描述: linux的命令列介面顯示的不是路徑,而是-bash-4.1#: 原因分析: 出現這個問題的原因是因為沒有配置.bash_profile的問題,或者是我們不小心清空或刪除了.bash_profile檔案。 解決方法 方法一:修改 ~/.bash_profile檔案 1、修改~/.bas