N25-Bazinga-第二周作業


1.Linux文件管理類命令

命令 功能 命令 功能
pwd 顯示當前目錄 ls 顯示目錄下的內容
cd 改變所在目錄 cat 顯示文件的內容
grep 在文件中查找字符串 cp 復制文件
touch 創建文件 mv 移動文件
rm 刪除文件 rmdir 刪除目錄
1.1 pwd命令
該命令的英文解釋為print working directory(打印工作目錄)。輸入pwd命令,Linux會輸出當前目錄。

1.2 cd命令
cd命令用來改變所在目錄。

cd /      轉到根目錄中 
cd ~     轉到/home/user用戶目錄下 
cd /usr 轉到根目錄下的usr目錄中-------------絕對路徑 
cd test 轉到當前目錄下的test子目錄中-------相對路徑

1.3 ls命令
ls選項 含義
-a 列舉目錄中的全部文件,包括隱藏文件
-l 列舉目錄中的細節,包括權限、所有者、組群、大小、創建日期、文件是否是鏈接等
-f 列舉的文件顯示文件類型
-r 逆向,從后向前地列舉目錄中內容
-R 遞歸,該選項遞歸地列舉當前目錄下所有子目錄內的內容
-s 大小,按文件大小排序
-h 以人類可讀的方式顯示文件的大小,如用K、M、G作單位
ls -l examples.doc 列舉文件examples.doc的所有信息
1.4 cat命令
cat命令可以用來合并文件,也可以用來在屏幕上顯示整個文件的內容。
cat snow.txt 該命令顯示文件snow.txt的內容,ctrl+D退出cat。

1.5 grep命令
grep命令的最大功能是在一堆文件中查找一個特定的字符串。
grep money test.txt
以上命令在test.txt中查找money這個字符串,grep查找是區分大小寫的。

1.6 touch命令
touch命令用來創建新文件,他可以創建一個空白的文件,可以在其中添加文本和數據。
touch newfile 該命令創建一個名為newfile的空白文件。

1.7 cp命令
cp命令用來拷貝文件,要復制文件,輸入命令:
cp <source filename> <target filename>
cp t.txt Document/t    該命令將把文件t.txt復制到Document目錄下,并命名為t。
cp選項 含義
-i 互動:如果文件將覆蓋目標中的文件,他會提示確認
-r 遞歸:這個選項會復制整個目錄樹、子目錄以及其他
-v 詳細:顯示文件的復制進度
1.8 mv命令

mv命令用來移動文件。
mv選項 說明
-i 互動:如果選擇的文件會覆蓋目標中的文件,他會提示確認
-f 強制:它會超越互動模式,不提示地移動文件,屬于很危險的選項
-v 詳細:顯示文件的移動進度
mv t.txt Document    把文件t.txt 移動到目錄Document中。

1.9 rm命令

rm命令用來刪除文件。
rm選項 說明
-i 互動:提示確認刪除
-f 強制:代替互動模式,不提示確認刪除
-v 詳細:顯示文件的刪除進度
-r 遞歸:將刪除某個目錄以及其中所有的文件和子目錄

rm t.txt 該命令刪除文件t.txt

1.10 rmdir命令

rmdir命令用來刪除目錄。

2.bash的工作特性,相關示例

2.1.bash特性之一:命令別名

 #alias NAME='COMMAND'

2.2.bash的特性之二:命令歷史

命令語法格式:

 history [-c] [-d OFFSET] [n]
 history -anrw [FILENAME]
 history -ps VALUE [VALUE…]
常用參數
    -c: 清空命令歷史;
    -d offset(偏移量):刪除指定命令歷史,offset為history顯示出來的命令數字;
    -r: 從文件讀取命令歷史至歷史列表中;
    -w:把歷史列表中的命令追加至歷史文件中;
    history #:顯示最近的#條命令;

2.3.bash特性之三:快捷鍵

     Ctrl+a:跳轉至命令行行首;
     Ctrl+e:跳轉至命令行行尾;
     Ctrl+u:刪除行首至光標所在處之間的所有字符;
     Ctrl+k:刪除光標所在處至行尾的所有字符;
     Ctrl+l:清屏,相當于clear;

2.4.bash的特性之四:命令補全和路徑補全

    1.命令查找和補全機制:
             (1) 查找內部命令;

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

             (3) 給定開頭的部分字符串如果能惟一標識某命令程序文件,則直接補全;

             不能惟一標識某命令程序文件,再擊tab鍵一次,會給出列表;
    2.路徑補全:

             在給定起始路徑下,以對應路徑下的打頭字串逐一匹配起始路徑下每個文件:
             TAB按鍵;如果能惟一標識,則直接補全;否則,再一次tab,給出列表;
   3.命令行展開

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

               {}:花括號展開??沙休d一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;

2.5.bash的特性之五:命令行展開:

       1)、命令行展開;

                以某些bash能夠解釋的符號來代替命令中的某些參數。

                ~:展開為用戶的家目錄;
                        例1:切換至家目錄

                                cd ~;pwd
                                /root
                                {}:可承載一個以逗號分隔的列表,并將其展開為多個路徑;
                        例2:在/tmp/d目錄下創建f1,f2,f3三個文件

                                touch /tmp/d/f{1,2,3}

                                bash

2.6.bash特性之六:命令的執行狀態結果:

 1)、bash的基礎特性之狀態值返回:在bash中使用一個特殊的變量$?來保存上一個命令的執行狀態結果。

     0表示成功,
     1-255表示失敗

3. 使用命令行展開功能實現習題

3.1.創建tmp目錄下的:a_c,a_d,b_c,b_d;

 [root@localhost ~]# touch {a,b}{_c,_d}

[root@localhost ~]# ll
total 165716
-rw-r--r--. 1 root root       369 Nov 29 16:11 ab.lua
-rw-r--r--. 1 root root         0 Dec 10 10:20 a_c
-rw-r--r--. 1 root root         0 Dec 10 10:20 a_d
-rw-------. 1 root root      1048 Nov 23 10:05 anaconda-ks.cfg
-rw-r--r--. 1 root root         0 Dec 10 10:20 b_c
-rw-r--r--. 1 root root         0 Dec 10 10:20 b_d

3.2.創建/tmp/mylinux目錄下的以下目錄

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

[root@localhost home]#  mkdir  -p /tmp/mylinux/{bin,boot/grup,dev,etc/{rc.d/init.d,sysconfig/network-
scripts},lib/modules,lib6,proc,sbin,sys,tmp,usr/local/{bin,sbin},var,lock,log,run}

    [root@localhost home]# tree  /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grup
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts 
├── lib
│   └── modules
├── lib6
├── lock
├── log
├── proc
├── run
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin
└── var

4. 文件的元數據信息有哪些?分別代表什么含義?如何查看?如何修改時間戳信息?

元數據信息:文件名稱、屬主屬組、文件訪問權限、uid、gid、三個時間戳(centos7是四個)、inode號等等

訪問時間access time:讀一次這個文件的內容,這個時間就會更新。比如對這個文件運用 more、cat等命令。ls、stat命令都不會修改文件的訪問時間。

修改時間modify time:修改時間是文件內容最后一次被修改時間。比如:vi后保存文件。ls -l列出的時間就是這個時間。

狀態改變時間change time:是該文件的i節點最后一次被修改的時間,通過chmod、chown命令修改一次文件屬性,這個時間就會更新。

查看命令:stat filename

[root@localhost home]# stat /tmp/mylinux/
    File: ‘/tmp/mylinux/’
     Size: 4096         Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 137816826   Links: 17
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-12-10 10:45:11.942457078 +0800
Modify: 2016-12-10 10:43:07.978456374 +0800
Change: 2016-12-10 10:43:07.978456374 +0800
 Birth: -

修改時間戳信息:touch [option] filename

touch命令:

touch – change file timestamps

touch [OPTION]… FILE…

-c: 指定的文件路徑不存在時不予創建;

-a: 僅修改access time;

-m:僅修改modify time;

-t 指定時間:[[CC]YY]MMDDhhmm[.ss]

    [root@localhost home]# touch  -a /tmp/mylinux/      ---//修改訪問時間
    [root@localhost home]# stat /tmp/mylinux/
    File: ‘/tmp/mylinux/’
     Size: 4096         Blocks: 8          IO Block: 4096   directory
    Device: fd00h/64768d    Inode: 137816826   Links: 17    
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2016-12-10 10:50:46.963458981 +0800         ---//訪問時間已被修改
    Modify: 2016-12-10 10:43:07.978456374 +0800
    Change: 2016-12-10 10:50:46.963458981 +0800
     Birth: -

    [root@localhost home]#  touch  -m /tmp/mylinux/     ---//修改文件編輯時間
    [root@localhost home]# stat /tmp/mylinux/
     File: ‘/tmp/mylinux/’
     Size: 4096         Blocks: 8          IO Block: 4096   directory
    Device: fd00h/64768d    Inode: 137816826   Links: 17
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Context: unconfined_u:object_r:user_tmp_t:s0
    Access: 2016-12-10 10:50:46.963458981 +0800
    Modify: 2016-12-10 10:54:34.479460274 +0800         ---/文件編輯時間已被修改
    Change: 2016-12-10 10:54:34.479460274 +0800
    Birth: -

5文件別名的定義,如何在命令中引用另一個命令的執行結果。

    alias NAME='COMMAND'      //只對當前shell進程有效,結束后得重新來再次定義
    unalias NAME              //撤銷別名

    例如:
    [root@localhost home]#   alias  cat='tac'
    [root@localhost ~]# cat ab.lua 
    end    print("not c")    -->output:not c
    else
          print("c")        --這個沒有執行
    if c then

    end
        print("not b")    --這個沒有執行
    else
         print("b")        -->output:b
    if b then

    end
        print("not a")    --這個沒有執行
    else
        print("a")        -->output:a
    if a then


    local c = nil
    local b = 0
    local a = true


    ab.lua
    撤銷別名cat之后我們再嘗試
    [root@localhost ~]#  unalias  cat
    [root@localhost ~]# cat ab.lua 
    ab.lua


    local a = true
    local b = 0
    local c = nil


    if a then
        print("a")        -->output:a
    else
        print("not a")    --這個沒有執行
    end

    if b then
        print("b")        -->output:b
    else
        print("not b")    --這個沒有執行
    end

    if c then
        print("c")        --這個沒有執行
    else
        print("not c")    -->output:not c
    end

    可以發現ab.lua在cat別名為tac生效時是以倒序列出文件內容的。

6.exercise

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

    ls -d /var/l*[0-9]*[[:lower:]]

6.2顯示/etc目錄下,以任意一位數字開頭,且以非數字結尾的文件或目錄
    ll -d /etc/[0-9]*[^0-9]

6.3顯示/etc目錄下,以非字母開頭,后面跟一個字母及其它任意長度任意字符的文件或目錄
    ll -d /etc/[^[:alpha:][:alpha:]]*

6.4在/tmp目錄下創建以tfile開頭,后跟當前日期或時間的文件,文件名形如:tfile-2016-05-27-9-32-22       
     touch /tmp/tfile-$(date +%F-%H-%M-%S) 

6.5復制/etc目錄下,所有以p開頭,以非數字結尾的文件或目錄至/tmp/mytest1目錄
    cp  -a /etc/p*^[0-9]  /tmp/mytest1

6.6復制/etc目錄下,所有以.d結尾的文件或目錄至/tmp/mytest2目錄下 
    cp  -a /etc/*.d      /tmp/mytest2

6.7復制/etc目錄下,所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄下

    cp  -a  /etc/[l,m,n]*.conf /tmp/mytest3

原創文章,作者:oranix,如若轉載,請注明出處:http://www.www58058.com/63589

(0)
oranixoranix
上一篇 2016-12-13 11:50
下一篇 2016-12-13 12:29

相關推薦

  • 文件查找命令(find、locate)

    在文件系統上查找符合條件的文件: 實現工具:locate, find locate: 依賴于事先構建好的索引庫; 系統自動實現(周期性任務); 手動更新數據庫(updatedb); 工作特性: 查找速度快; 模糊查找; 非實時查找; locate [OPTION]… PATTERN… -b:只匹配路徑中的基名; -c:統計出共有多少個符合條件的文件;…

    Linux干貨 2016-11-06
  • 8.3上課練習及課下作業

    練習 上課練習 1、 當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作? 能查看文件大小,不能進入此目錄,不能在此目錄創建文件 能看到目錄中的內容,不能查看目錄內的大小及屬性,僅能查看目錄的相關屬性 [xiaoming@localhost ~]$ ll -d qin drwxrwxrw-…

    Linux干貨 2016-08-05
  • 用戶、組

    用戶user:  令牌token,identity   Linux用戶:username/UID   管理員:root,0   普通用戶:1-65535  系統用戶:1-499(CENTOS6),1-999 對守護進程獲取資源進行權限分配  登錄用戶:500(CENTOS6)+,1000+…

    Linux干貨 2016-08-04
  • 常見RAID磁盤陣列組合簡介

    常見RAID磁盤陣列組合簡介    RAID,是Redundant Arrays of Inexpensive Disks的簡寫,磁盤陣列?,F今的計算機世界,最值錢的是什么?軟件、硬件?都不對,應該是承托在其之上的數據。對于我們來說,數據是無價的,硬件損壞了,可以重新購置。軟件損壞了,也可以重新安裝,但數據一旦丟失,就有可能再也找不回來了…

    Linux干貨 2016-06-01
  • 發送mail的幾種方法

    mail,顧名思義就是郵件。在這兩天上課中,接觸了發送mail的一些用法,課下自己在網上又查詢補充了一下,總結出來,增加印像。 為了顯示清晰,首先我們分別使用兩個用戶在不同的終端下登錄,一個超級管理員root,一個是剛剛創建的用戶zhangsan,看下圖: 首先先來看一下發送mail用到什么選項:  -s<郵件主題>:指定郵件的主題; …

    2017-07-20
  • LVS介紹及工作原理圖解

    一、LVS簡介 LVS是Linux Virtual Server的簡稱,也就是Linux虛擬服務器,是一個由章文嵩博士發起的自由軟件項目,官方站點是:http://www.linuxvirtualserver.org?,F在LVS已經是Linux標準內核的一部分,在Linux2.4內核以前,使用LVS時必須重新編譯內核以支持LVS功能模塊,但是從Linux2.…

    2017-12-06

評論列表(1條)

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

    贊,整體看下來都很棒~~加油~

欧美性久久久久