2015.8.23做業 Linux命令學習

echo $?
這是一個shell的變量,意思就是返回上一步執行任務是否成功。
若是爲0 說是成功。
若是非0說明失敗。linux

command命令  ---SHELL內建命令shell

command命令調用指定的指令並執行,命令執行時不查詢shell函數。command命令只可以執行shell內部的命令。
command: usage: command [-pVv] command [arg ...]緩存

                     調用命令bash

參數: 指令:須要調用的指令及參數app

實例:使用command命令調用執行echo Linuxless

image

GUI:編輯器

        GNOME,KDE,XFCEide

CLI:函數

       狹義上的shell工具

/bin/bash

    shell可以提供給用戶操做系統的一個接口,可以將咱們輸入的命令與內核通訊,好讓內核能夠控制硬件來正確無誤的工做。shell中有不少中形式,好比bshell,CShell,KShell,TCSH等等,經過/etc/shells 中文件能夠查看當前系統中存在的shell形式。當咱們進行用戶登陸時,系統會自動檢查/etc/passwd目錄下的文件,取得當前系統中當前用戶使用的shell形式。

bash的基礎特性

(1)命令歷史

image
  -c:清空命令歷史
  -d OFFSET [n]: 刪除指定位置的命令
  -w:保存命令歷史至歷史文件中

-a: 當緩衝區中的歷史手動追加文件;

(2)命令別名

   alias/unalias

  (3)命令補全

  (4)路徑補全

(5)命令行展開

      ~,{}  

cd ~回到用戶家目錄,這得看你是用什麼用戶登陸了,若是是以root身份登陸,執行此命令後,回到/root/目錄下,若是是以其餘用戶等錄得話,則是回到/home/目錄下

!!是執行和顯示上一條命令的結果

image

imagecd不加任何參數,回到用戶家目錄

cd~USERNAME:切換指定用戶的家目錄

image

cd-:回到上一次所在目錄

image

pwd命令:printing working directory 顯示工做目錄

ls:list  列出指定路徑下的文件或目錄的屬性信息

ls [OPTION]... [FILE]...

     -l  使用長格式 顯示

         drwxr-xr-x. 2 root root  4096 8月  22 21:58 aaa

            d:文件類型

            rwxr-xr-x:權限,mode

            root: owner,屬主

            root: group,屬組

             8: size,默認爲字節

             8月  22 21:58:修改時間戳

     -d:顯示目錄自身屬性

    -h:human-readable   與-l 一塊兒,以易於閱讀的格式輸出文件大小

     -r:reverse,逆序顯示

     -R:recusive,遞歸        

     -a –all 顯示全部文件,包括.開頭的隱藏文件

      .:當前目錄

     ..:父目錄

     -A:列出除. 及.. 之外的任何項目

    -m:水平輸出文件列表

    -t:最近修改的文件顯示上面

   -n:打印文件的UID和GID

  -lh:列出可讀文件和文件夾的詳細信息

   -ld:顯示文件夾信息

   -lt:按時間列出文件和文件夾詳細信息

   -ltr: 按修改時間列出文件和文件夾的詳細信息

   -F:按特殊字符對文件進行分類

 

文件查看類命令:

       cat,tac命令:

cat命令鏈接文件並打印到標準輸出設備上,cat常常用來顯示文件的內容

    -n:有1開始對全部輸出的行數編號;

   -b :和-n類似,只不過對於空白行不編號

   -A:顯示不可打印字符,行尾顯示「$」

    -e: –vE

   -E:顯示行結束符

   -v:顯示非打印字符

tac命令用於將文件已行爲單位的反序輸出,即第一行最後顯示,最後一行先顯示。

-a:將內容追加到文件末尾

-i:忽略中斷信號。

相關示例:

[root@localhost www]# cat test
1234
abcd

[root@localhost www]# rev test
4321
dcba

[root@localhost www]# tac test
abcd
1234
 
文件內容類型查看命令: 

file命令用來探測給定文件的類型。file命令對文件的檢查分爲文件系統、魔法幻數檢查和語言檢查3個過程。

    -b:不輸出文件名(簡要模式)
    -c:詳細顯示指令執行過程,便於排錯或分析程序執行的情形

-f<名稱文件>:指定名稱文件,其內容有一個或多個文件名稱時,讓file依序辨識這些文件,格式爲每列一個文件名稱;

-L:直接顯示符號鏈接所指向的文件類別;

-m<魔法數字文件>:指定魔法數字文件;

-v:顯示版本信息;

-z:嘗試去解讀壓縮文件的內容。

[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text
[root@localhost ~]# file -b install.log
UTF-8 Unicode text <== 不顯示文件名稱
[root@localhost ~]# file -b -i install.log
text/plain; charset=utf-8 <== 顯示MIME類別

顯示符號連接的文件類型:

image

 

echo命令

顯示環境變量:

image

-e:讓控制字符生效 \b刪除前一個字符

image

-n:不進行換行

\n:new line 換行

which命令:

which [options] [--] programname [...]

--skip-alias 禁止列出別名


 

whereis COMMAND:
            顯示二進制程序、源碼文件以及幫助手冊的路徑;

    image

linux文件系統

     絕對路徑:/

      根文件系統:rootfs

      文件系統掛載:

      FSB:FHS(文件系統層級結構標準)

FHS:

         /boot:引導文件存放目錄,例如kernel(vmlinuz)、bootloader(grub,grub2)

      /bin binary,供用戶使用的基本命令:OS啓動即會用到程序

     /sbin :管理類的基本命令

     /lib:基本共享庫;內核模塊

   /lib64:X86_64系統的共享庫

   /etc:配置文件目錄

  /home/USERNAME:普通用戶主目錄的默認位置

/root:管理員的主目錄

/media:便捷式的移動設備;

/mnt:臨時文件系統掛載點

/opt: 可選目錄,第三方應用程序的默認安裝位置

/dev: devices,設備

   b: block devices

  c:character devices,linear access (線性訪問)l

/proc: 僞文件系統:用於輸出內核與進程的相關信息  是內存中有關係統進程的實時信息

/sys:僞文件系統:是有關係統內核以及驅動的實時信息

/srv:services,系統上運行服務用到中間數據

/tmp:臨時文件目錄

/usr:Universal Shared,Read-only data

   bin/

   sbin/

   lib/

   lib64/

   include:C 程序的頭文件:header files

  share:結構化的獨立數據

         doc,man

local:如今經常使用 的第三方程序 的安裝位置

    bin

    sbin

    lib

   lib 64

   etc

  share

/var: Variable data files

   cache:應用程序 的緩存數據

   lib:應用程序的狀態信息數據

   local:專用於爲/usr/local下的應用程序存儲可變數據

   lock:鎖文件

   log:日誌文件

   opt:專用於/opt

   spool:應用程序的數據池

   run:運行中的進程的相關數據,一般應用於守護進程 的pid文件。

/selinux

 

Linux下的文件類型:

      -(f):普通文件

     d:目錄文件

    b:塊設備文件

    c: 字符設備文件

   l: 符號連接文件

  p:命名管道文件

s:套接字文件

 

命令別名
        命令的另外一個引用符號,由bash程序維護;

        alias/unalias

            alias: 查看全部已經定義別名;
            alias NAME=COMMAND:定義別名;

                若是別名同原命令名,想直接執行原命令,則需使用\COMMAND

            unalias NAME: 撤消別名;

[root@localhost ~]# alias cls="clear"

 

目錄管理類命令:

mkdir,rmdir,tree,

(1) mkdir
        mkdir [OPTION] /PATH/TO/SOMEWHERE
            -p:建立父目錄
            -v: 顯示建立過程

練習:
            如何建立目錄:x_m, x_n, y_m, y_n?

               image

(2) rmdir
        rmdir /PATH/TO/SOMEWHERE

        刪除空目錄;

(3) tree   以樹狀圖列出目錄的內容
        tree [OPTION]... [DIR]
            -d:只層級目錄類型的文件;
            -L level: 只顯示幾個層級;

image


文本文件查看命令:
    
    cat, tac, more, less, tail, head

 

cat 命令,文件或標準輸入組合輸出到標準輸出

image

image

tac命令用於將文件已行爲單位的反序輸出,即第一行最後顯示,最後一行先顯示。

-a或——append:將內容追加到文件的末尾; -i或——ignore-interrupts:忽略中斷信號。

more,less

翻屏查看

more命令是一個基於vi編輯器文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容,支持vi中的關鍵字定位操做。more名單中內置了若干快捷鍵,經常使用的有H(得到幫助信息),Enter(向下翻滾一行),空格(向下滾動一屏),Q(退出命令)。 該命令一次顯示一屏文本,滿屏後停下來,而且在屏幕的底部出現一個提示信息,給出至今己顯示的該文件的百分比:--More--(XX%)能夠用下列不一樣的方法對提示作出回答: 按Space鍵:顯示文本的下一屏內容。 按Enier鍵:只顯示文本的下一行內容。 按斜線符|:接着輸入一個模式,能夠在文本中尋找下一個相匹配的模式。 按H鍵:顯示幫助屏,該屏上有相關的幫助信息。 按B鍵:顯示上一屏內容。 按Q鍵:退出rnore命令。

less命令文件內容查看 less命令的做用與more十分類似,均可以用來瀏覽文字檔案的內容,不一樣的是less命令容許用戶向前或向後瀏覽文件,而more命令只能向前瀏覽。用less命令顯示文件時,用PageUp鍵向上翻頁,用PageDown鍵向下翻頁。要退出less程序,應按Q鍵。語法 less(選項)(參數) 選項 -e:文件內容顯示完畢後,自動退出; -f:強制顯示文件; -g:不加亮顯示搜索到的全部關鍵詞,僅顯示當前顯示的關鍵字,以提升顯示速度; -l:搜索時忽略大小寫的差別; -N:每一行行首顯示行號; -s:將連續多個空行壓縮成一行顯示; -S:在單行顯示較長的內容,而不換行顯示; -x<數字>:將TAB字符顯示爲指定個數的空格字符。

head和tail

head命令用於顯示文件的開頭的內容。在默認狀況下,head命令顯示文件的頭10行內容。

-n<數字>:指定顯示頭部內容的行數; -c<字符數>:指定顯示頭部內容的字符數; -v:老是顯示文件名的頭信息; -q:不顯示文件名的頭信息。

tail命令用於輸入文件中的尾部內容。tail命令默認在屏幕上顯示指定文件的末尾10行。若是給定的文件不止一個,則在顯示的每一個文件前面加一個文件名標題。若是沒有指定文件或者文件名爲「-」,則讀取標準輸入。 注意:若是表示字節或行數的N值以前有一個」+」號,則從文件開頭的第N項開始顯示,而不是顯示文件的最後N項。N值後面能夠有後綴:b表示512,k表示1024,m表示1 048576(1M)。

image

 

時間戳管理工具:touch

touch命令有兩個功能:一是用於把已存在文件的時間標籤更新爲系統當前的時間(默認方式),它們的數據將原封不動地保留下來;二是用來建立新的空文件。

用法:touch [選項]... 文件...

-a            只更改訪問時間
  -c, --no-create    不建立任何文件
  -d, --date=字符串    使用指定字符串表示時間而非當前時間
  -f            (忽略)
  -h, --no-dereference        會影響符號連接自己,而非符號連接所指示的目的地
                (當系統支持更改符號連接的全部者時,此選項纔有用)
  -m            只更改修改時間
  -r, --reference=文件    使用指定文件的時間屬性而非當前時間
  -t STAMP        使用[[CC]YY]MMDDhhmm[.ss] 格式的時間而非當前時間
  --time=WORD        使用WORD 指定的時間:access、atime、use 都等於-a
            選項的效果,而modify、mtime 等於-m 選項的效果
      --help        顯示此幫助信息並退出
      --version        顯示版本信息並退出

請注意,-d 和-t 選項可接受不一樣的時間/日期格式。

實例

touch ex2       在當前目錄下創建一個空文件ex2,而後,利用ls -l命令能夠發現文件ex2的大小爲0,表示它是空文件。

 

文件管理命令:

   cp ,mv,rm


    複製命令:cp, copy
        cp [OPTION]... [-T] SOURCE DEST
           cp [OPTION]... SOURCE... DIRECTORY
           cp [OPTION]... -t DIRECTORY SOURCE...

           cp SRC DEST:
               SRC是文件:
                   若是DEST不存在:新建目標文件,並將SRC複製到目標文件;
                   若是DEST存在:
                       若是DEST是文件:用SRC的內容覆蓋至DEST文件中;
                       若是DEST是目錄:在DEST目錄中新一個與原文件同名的文件,將將SRC內容複製到新建的同名的目標文件中;

           cp SRC... DEST:
               若是DEST不存在:
                   是錯誤的;
               若是DEST存在:
                   若是DEST是文件:錯誤;
                   若是DEST是目錄:

           經常使用選項:
               -r, -R: 遞歸複製;
               -d: 不跟蹤符號連接;
               --preserve[=ATTR_LIST]:
                   mode, ownership, timestamps
                   context, links, xattr, all
               -a: -dR --preseve=all
               -i: interactive
               -f: force
               -v: 顯示過程

mv: move, 移動文件
       mv [OPTION]... [-T] SOURCE DEST
       mv [OPTION]... SOURCE... DIRECTORY
       mv [OPTION]... -t DIRECTORY SOURCE...

       經常使用選項:
           -i:交互式
           -f:強制

   rm: remove

rm命令能夠刪除一個目錄中的一個或多個文件或目錄,也能夠將某個目錄及其下屬的全部文件及其子目錄均刪除掉。對於連接文件,只是刪除整個連接文件,而原有文件保持不變。 注意:使用rm命令要格外當心。由於一旦刪除了一個文件,就沒法再恢復它。因此,在刪除文件以前,最好再看一下文件的內容,肯定是否真要刪除。rm命令能夠用-i選項,這個選項在使用文件擴展名字符刪除多個文件時特別有用。使用這個選項,系統會要求你逐一肯定是否要刪除。這時,必須輸入y並按Enter鍵,才能刪除文件。若是僅按Enter鍵或其餘字符,文件不會被刪除。
        rm [OPTION]... FILE...
            只刪除文件;
     經常使用選項:             

-d:直接把欲刪除的目錄的硬鏈接數據刪除成0,刪除該目錄;

-f:強制刪除文件或目錄;

-i:刪除已有文件或目錄以前先詢問用戶;

-r或-R:遞歸處理,將指定目錄下的全部文件與子目錄一併處理;

--preserve-root:不對根目錄進行遞歸操做;

-v:顯示指令的詳細執行過程。

刪除當前目錄下除隱含文件外的全部文件和子目錄

# rm -r *

應注意,這樣作是很是危險的!

文本編輯器:
    nano

bash的基礎特性(02)
    (1) glob
        文本名「通配」
            *:匹配任意長度的任意字符;
            ?:匹配任意單個字符;
                a*b: aab, ab, a123b;
                a?b:
            []: 匹配指定範圍內的任意單個字符;
                [0-9]
            [^]:匹配範圍外的任意單個字符;
                [^a-b]


練習:
    顯示/etc/目錄下,以非字母開頭,後面跟了一個字母及其它任意長度任意字符的文件或目錄;

解:

[root@localhost ~]# mkdir /tmp/c
[root@localhost ~]# cp -vr /etc/[^a-zA-Z]* /tmp/c
"/etc/123aaa" -> "/tmp/c/123aaa"
"/etc/[^a-z]aaa111222" -> "/tmp/c/[^a-z]aaa111222"

[root@localhost ~]# cd /tmp/c
[root@localhost c]# ls
123aaa  [^a-z]aaa111222

    複製/etc目錄下,全部以.d結尾的文件或目錄至/tmp/mageedu.com目錄中;

解:

[root@localhost ~]# mkdir /tmp/mageedu.com

[root@localhost ~]# cp -r /etc/*.d/tmp/mageedu.com/

[root@localhost ~]# ls /tmp/mageedu.com/

[root@localhost ~]# rm -rf/tmp/mageedu.com/

 


(2) 組合鍵

    Ctrl+l:清屏
    Ctrl+a: 切換至命令行首
    Ctrl+e:切換至命令行尾
    Ctrl+c:取消命令執行

    Ctrl+u:刪除光標所在處至行首的內容;
    Ctrl+k: 刪除光標所在處至行尾的內容;


(3) IO重定向和管道

    程序:指令+數據
        讀入數據:Input
        輸出數據:Output

    打開的文件都一個fd:file descriptor

    標準輸入:keyboard, 0, /dev/stdin
    標準輸出:monitor, 1, /dev/stdout
    標準錯誤輸出:monitor, 2, /dev/stderr

    I/O重定向:
        輸入重定向
        輸出重定向:
            COMMAND > NEW_POS, COMMAND >> NEW_POS
            >:覆蓋重定向;
            >>:追加劇定向;

            set -C
                若是覆蓋重定向目標文件存在,則禁止執行;
                >|
            set +C

        錯誤重定向:
            2>:覆蓋
            2>>:追加

    同時重定向標準輸出流和錯誤輸出流:
        COMMAND > /path/to/file.out 2> /path/to/file.err

        COMMAND > /path/to/file.out 2>&1

        COMMAND &> /path/to/file.out

    輸入重定向:
        <

        tr命令:
            tr [OPTION]... SET1 [SET2]
                -d: 刪除字符

    Here Document:<<
        cat >> /path/to/somefile << EOF

管道:
    COMMAND1 | COMMAND2 | ...

tee 命令

tee命令用於將數據重定向到文件,另外一方面還能夠提供一份重定向數據的副本做爲後續命令的stdin。簡單的說就是把數據重定向到給定文件和屏幕上。

-a 附加到文件-i 無視中斷--help 顯示幫助信息--version 顯示版本信息

[root@localhost ~]# tee 12 -a /tmp/12 <<EOF
> 1233233333

> EOF

[root@localhost c]# cat /tmp/12
1233233333

文件處理工具:
    wc, cut, sort, uniq

wc命令的功能爲統計指定文件中的字節數、單詞數、行數, 並將統計結果顯示輸出

    wc:word counts
        wc [OPTION]... FILE...
            -l: 顯示行數
            -w: 顯示單詞數

[root@localhost~]#cat/etc/passwd |ws –l  查看passwd文件有多少行

[root@localhost~]#echo「qqq www eee」 |wc –w  查看輸出有多少個單詞

[root@localhost~]#echo「21312123」 | wc –m  查看輸出有多少個字符

    cut:
        cut OPTION... [FILE]...
            -d: 指明分隔符;-d' ', -d:
            -f:指明要顯示的字段
                #:
                #-#:1-3
                #,#: 1,3,7

    sort命令:排序
        sort [OPTION]... [FILE]...
            -r: 逆序
            -f: 忽略字符大小寫
            -u: 排序後去重
            -t CHAR: 指明分隔符
            -k #: 字段
            -n: 表示以數值大小排序

最簡單排序:

image

 

    uniq命令:

uniq命令用於報告或忽略文件中的重複行,通常與sort命令結合使用。
        uniq [OPTION]... [FILE]...
            -c: 顯示每行重複的次數;
            -d: 只顯示重複過的行;
            -u: 只顯示未曾重複的行;

刪除重複行: uniq file.txt sort file.txt | uniq sort -u file.txt

只顯示單一行: uniq -u file.txt sort file.txt | uniq –u

統計各行在文件中出現的次數: sort file.txt | uniq –c

在文件中找出重複的行: sort file.txt | uniq -d

相關文章
相關標籤/搜索