馬哥教育網絡班25期-第2周作業

一、Linux文件管理類命令:

(1)ls

            list 用來顯示目錄列表

            語法: ls [OPTION]… [FILE]..

            常見的opotion選項:

                -l:-long 顯示整個目錄下所有文件和目錄或單個文件的詳細信息。

                -a:–all 顯示出所有文件和目錄,包括'.'和'..'在內的所有隱藏文件。

                -A: –almost-all  顯示出所有文件和目錄,但是除了'.'和'..'之外的所有隱藏文件。

                -h:–human-readable 打印出人們可快速理解的文件大小,即對文件大小進行換算。

                -i:–inode   打印出文件i節點編號

                -d:–directory  列出目錄本身的信息信息

                -r:–reverse    逆序排列

                -R:–recursive  遞歸排列

                -t:按照文件和目錄的更改時間排序

                -Z :  –context   查看安全上下文,對配置selinux時生效

(2)cat

            concatenate,是一個文本文件查看和連接工具。

            語法:cat [OPTION]… [FILE]…

            常見的opotion選項:

                -n 或 –number 由 1 開始對所有輸出的行數編號

                -b 或 –number-nonblank 和 -n 相似,只不過對于空白行不編號

                -s 或 –squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行

                

(3)tac

            tac實際就是cat反過來寫。

(4)head

            

            語法:head  [OPTION]…[FILE]…

            常見的opotion選項:

                -n #  顯示開頭#行信息

                -#    等于head -n #,默認開頭10行

(5)tail

    

            語法:tail [OPTION]…[FILE]…

            常見的opotion選項:

                -n # 顯示結尾#行信息

                -#  等于tail -n #,默認結尾10行

                -f  查看文件尾部內容結束后不退出,跟隨顯示新增的行

(6)cp

            copy 拷貝

                

             單源復制: cp [opotion]… [-T] SOURCE DEST

            多源復制: cp [opotion]… SOURCE … DIRECTORY

                                cp [opotion]… -t DIRECTORY SOURCE

            單源復制:

                如果dest不存在,則事先創建此文件,并復制源文件的數據流到dest中

                如果dest存在:

                        如果dest是非目錄文件,則覆蓋目標文件

                        如果dest是目錄文件,則先在dest目錄下創建一個與源文件同名的文件,并復制其數據流

           多源復制:

                如果dest不存在,錯誤

                如果dest存在:

                        如果dest是非目錄文件,錯誤

                        如果dest是目錄文件:分別復制每個文件至目標目錄中,并保持原名

                        

                        常用選項:

                                -i:交互式復制,及覆蓋之前提醒用戶確認

                                -f:強制覆蓋目標文件

                                -r:遞歸復制目標

                                -d:復制符號鏈接本身,而非其指向的源文件

                                -a:-dR –preserver=all,archive  用于實現歸檔

                                –preserve=

                                            mode:權限

                                            owership:屬主和屬組

                                            timestamp:時間戳

                                            context:安全標簽

                                            xattr:擴展屬性

                                            links:符號鏈接

                                            all:上述全部屬性

(7)mv

            move

                mv [opotion]… [-T] SOURCE DEST

                mv [opotion]… SOURCE… DIRECTORY

                mv [opotion]… -t DIRECTORY SOURCE…    

                常用選項

                        -i:交互式

                        -f:force

(8)rm

            remove

                    rm [opotion]… file…

                    

                    常用選項;

                            -i:interactive

                            -f:force

                            -r:recursive

                            刪除目錄  rm -rf /PATH/TO/DIR

                            危險操作:rm -rf /*

                            特別提醒bash編程中可能會遇見災難性的bug,自己踩過的坑:

                                    #!/bin/bash

                                    read -p "test file" file

                                    rm -rf /${file}

                                    file變量如果為空,那結果就是rm -rf /,所以安全的編程建議 rm -rf /${file:?var file is emple}

(9)mkdir

            

                 mkdir [opotion]… dirctory…

                        -p:自動按需創建父目錄

                                eg:mkdir -p /a/b/c

                                           mkdir  /a

                                           mkdir  /a/b

                                           mkdir  /a/b/c

                        -v:verbose,顯示詳細過程

                        -m MODE:直接給定權限

                                            mkdir -m 700 /test    則test目錄的權限應該為  drwx______

                        注意:路徑基名方為命令的作用對象,基名之前的的路徑必須存在

(10)rmdir

                rmdir [opotion]…directory…

                        -p:刪除某個目錄后,如果其父目錄為空,則一并刪除之:

                                eg:rmdir /a/b/c    如果刪除c后b目錄為空則刪除b,如果刪除b后a目錄為空則刪除a

                        -v:顯示過程

(11)more和less

                

                  分屏查看命令:more和less

                more命令

                        more file

                        特點:翻屏至文件尾部后自動退出

                less命令

                        less file    

                        特點:翻屏至文件尾部后不會退出,按q退出

(12)install

                    install命令和cp命令類似,都可以將文件/目錄拷貝到指定的地點。但是,install允許你控制目標文件的屬性。

                

                        install [opotion]… [-T] SOURCE DEST

                        install [opotion]… SOURCE… DIRECTORY

                        install [opotion]… -t DIRECTORY SOURCE…

                                    常見的opotion選項:

                                            -d:所有參數都作為目錄處理,而且會創建指定目錄的所有主目錄

                                                    eg:install -d a/b/c  與 mkdir -p a/b/c 相同

                                            -D: 創建<目的地>前的所有主目錄,然后將<來源>復制至 <目的地>

                                                    eg: install -D x a/b/c 與 mkdir a/b && cp x a/b/c  相同

                                            -m: –mode=模式  自行設定權限模式

二、bash的基本特性

(1)命令歷史:shell進程會其會話中保存此前用戶提交執行過的命令

            history

                定制history的功能,可通過環境變量實現:

                HISTSIZE:shell進程可保存的命令歷史的條數

                HISTFILE:持久存儲的文件

                HISTFILESIZE:持久存儲歷史命令的文件大小

                    -c  情空命令歷史

                    -d offset 刪除指定命令歷史

                    -w 把歷史命令寫入文件

                    -r 從文件讀取命令歷史到列表中

                調用歷史命令

                    !#  調用歷史#號命令

                    !!    調用上個命令

                    !string 調用最近string開頭的命令

                調用上一條命令的最后一個參數

                    快捷鍵 esc,.

                    字符串 !$

                控制命令歷史記錄的方式:

                    環境變量:HISTCONTROL

                    ignoredups:忽略重復的命令

                    ignorespace:忽略以空白字符開頭的命令

                    ignoreboth:以上兩者同時生效

(2)命令補全:

                shell程序在接受到用戶執行的請求,分別完成之后,最左側的字符串會被當作命令:

                命令處理機制:

                        查找內部命令

                        根據PATH環境變量中設定的目錄,自左而右逐個搜索目錄下的文件名

                  給定的打頭字符串如果唯一標識某個命令程序文件,則直接補全

                        不能唯一標示某命令程序文件,再敲擊tab健一次,會給出列表

(3)路徑補全:

                    在給定的起始路徑下,以對路徑的打頭字符串逐一匹配起始路徑下每個文件:

                    tab:

                            如果能唯一標示,則直接補全

                            否則,再一次tab,給出列表

(4)命令行展開:

                    ~:自動展開為用戶的家目錄,或指定的用戶的家目錄:

                    {}: 可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑

(5)命令的執行狀態結果

                    命令執行的狀態結果:

                            bash通過狀態的返回來輸出此結果:

                            成功:0

                            失敗:1-255

                            命令的執行完成之后,其狀態返回值保存與bash的特殊標量$?中

                            命令正常的執行時,有的還回有命令返回值:

                            根據命令及其功能不同,結果各不相同:

(6)bash的基于特性:引用

                     強引用:''

                     弱引用:""

                    命令引用:“

(7)bash基礎特性:快捷鍵

                    ctrl+a:跳轉至命令行首

                    ctrl+e:跳到命令行尾

                    ctrl+u: 刪除行首至光標所在處之間的所有字符

                    ctrl+k:刪除行尾至光標所在處之間的所有字符

                    ctrl+l:清屏,相當于clear

                          

三、命令行展開聯系練習:

1、創建/tmp目錄下的:a_c,a_d,b_c,b_d

mkdir -p {a,b}_{c,d}

2、創建/tmp/mylinux目錄下的:

../mylinux/
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run

 mkdir -pv {bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

四、文件的元數據:

(1)文件的元數據包括文件大小,數據塊大小,文件類型,設備號,inode節點號,權限,屬主屬組,安全上下文,atime,mtime,ctime。

        

        stat [opotion]…[file]

圖片.png

      stat -L file   跟隨符號鏈接到真正的文件或目錄

圖片.png  

    stat  -f /bin  顯示該文件系統的狀態

圖片.png

touch 修改文件的時間戳        

            語法:touch [OPTION]… FILE…

                    -a:僅修改文件的訪問時間戳(atime)

                    -c:當需要修改的文件不存在時不創建文件

                    -m:僅修改文件的修改時間戳(mtime)

                    -t:修改時間戳

                            eg: touch -t 201612112205.10 test

五、定義命令別名及引用另一個命令的執行結果:

    alias 定義別名

            alias la=‘ls -a’

            可以通過alias命令進行當前虛擬終端下定義的命令別名,如果需要需要定義該用戶的命令別名,將命令寫入改用戶家目錄下的~/.bashrc下,如果需要定義系統的命令別名/etc/bashrc下

    引用命令

~]$ echo $(date)

~]$ echo `date`

六、練習

(1)顯示/var目錄下所有以1開頭,以一個小寫字母結尾,且中間至少出現一位數字(可能有其他字符)的文件或目錄。

        ls /var/1*[[:digit:]]*[[:lower:]]

(2)顯示/etc目錄下,以任意的數字開頭,且以非數字結尾的文件或目錄。

        ls /etc/[[:digit:]]*[^[:digit:]]

(3)顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其他任意長度任意字符的文件或目錄。

        ls /etc/[^[:alpha:]][[:alpha:]]*

(4)在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22

        touch tfile-$(date +%Y-%m-%d-%H-%M-%S)

(5)復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中

        cp -r /etc/p*[^[:digit:]] /tmp/mytest1/

(6)復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中

        cp -r /etc/*\.d /tmp/mytest2

(7)復制/etc目錄下所有以1或m或n開頭,以.conf結尾的文件到/tmp/mytest3中

        cp /etc/{1,m,n}*\.conf   /tmp/mytest3

原創文章,作者:N25_隨心,如若轉載,請注明出處:http://www.www58058.com/63149

(0)
N25_隨心N25_隨心
上一篇 2016-12-12
下一篇 2016-12-12

相關推薦

  • cut,sort,head,tail,uniq基本使用

    1.列出當前系統上所有已經登錄的用戶的用戶名,同一個用戶登錄多次,則顯示一次[root@localhost ~]# who|cut -d” ” -f1|uniqgordenroot2.取出最后登錄到當前系統的用戶的相關信息。[root@localhost ~]# last|head -1|cut -d’ ‘ -…

    Linux干貨 2017-09-04
  • Linux運維學習歷程-第十一天-bash邏輯運算、測試類型和腳本語句

    概述:本篇重點介紹linux當中默認設立了類型,bash的邏輯運算、測試類型和腳本語句,本篇內容極其重要,望小伙伴們在日后的學習中用心學習 一、邏輯運算 變量:   本地變量、環境變量、局部變量、位置參數變量、特殊變量   變量賦值:name=value,export name=value,declare -x nam…

    Linux干貨 2016-08-24
  • linux中的磁盤陣列(RAID)

    RAID: Redundant Arrays of Inexpensive Disks  Independent 提高IO能力: 通過磁盤并行讀寫實現 提高耐用性能: 磁盤冗余來實現 級別: 多塊磁盤組織在一起的工作方式有所不同: RAID是的方式: 外接式磁盤陣列: 通過擴展卡提供適配能力 內接式RAID: 主板集成RAID控制器 Softwar…

    Linux干貨 2016-08-29
  • M20-1 8月3號 –權限、用戶和組的管理

    一、權限管理:            ls -l                  rwxrwxrwx:               &nb…

    Linux干貨 2016-08-08
  • ansible之Playbook中tags使用

    示例:httpd.yml– hosts: websrvsremote_user: roottasks:– name: Install httpdyum: name=httpd state=present – name: Install configure filecopy: src=files/httpd.conf des…

    Linux干貨 2018-01-14
  • PHP異常處理詳解

    PHP異常處理詳解          異常處理(又稱為錯誤處理)功能提供了處理程序運行時出現的錯誤或異常情況的方法。   異常處理通常是防止未知錯誤產生所采取的處理措施。異常處理的好處是你不用再絞盡腦汁去考慮各種錯誤,這為處理某一類錯誤提供了一個很有效的方法,使編程效率大大提高。當異常被觸發時,通常會發生:&…

    Linux干貨 2015-06-02

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-16 17:17

    贊~總結的還是比較詳細的,前面的命令能簡單說下怎么使用會更好點~~加油~

欧美性久久久久