馬哥教育網絡班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

                            失?。?-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 10:47
下一篇 2016-12-12 10:50

相關推薦

  • 學習試題演練

    1.寫一個腳本實現:提示用戶給出自己的選擇隨后顯示對應的信息。 區分大小寫: if [[ "$option" =~ [Dd][Ii][Ss][Kk] ]];then 2.根據id號來判斷用戶類型,若沒有則提示沒有此用戶 0:管理員 1-999:系統用戶 1000+:登陸用戶 不得不提下: bash -n usertype.sh 前期擅用是…

    Linux干貨 2016-08-21
  • Linux用戶、組管理和正則表達式的基礎命令

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何權限 [root@localhost skel]# cp -r /etc/skel /home/tuser1 [root@localhost skel]# ls -al /home/tuser1 total 12 drwxr-xr-x.…

    Linux干貨 2017-07-20
  • btrfs文件系統常用命令使用

    Btrfs,也可稱為B-tree,Butter FS,Better FS,是CentOS7中一種新型的文件系統。 核心特性: 1.多物理卷支持,可由多個物理卷(pv)組成,支持raid,以聯機添加刪除 2.支持寫實復制(Copy on Write,Cow) 復制一份修改,改好之后用指針替換,出錯時指回原本文件。而不是就地修改 3.數據及元數據校驗碼:chec…

    Linux干貨 2016-03-07
  • 進程及任務管理

    進程概念 內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等 Process: 運行中的程序的一個副本,是被載入內存的一個指令集合     進程ID(Process ID,PID)號碼被用來標記各個進程     UID、GID、和SELi…

    Linux干貨 2016-09-09
  • ?RAID使用手冊

    RAID使用手冊 RAID演示

    Linux干貨 2016-09-02
  • 【N25第四周作業】grep

    文本處理工具: Linux上文本處理三劍客: grep, egrep, fgrep:文本過濾工具(模式:pattern)工具; grep:基本正則表達式,-E,-F egrep:擴展正則表達式, -G,-F grep:不支持正則表達式, sed:stream editor, 流編輯器;文本編輯工具; awk:…

    Linux干貨 2016-12-18

評論列表(1條)

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

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

欧美性久久久久