N28-第二周

1. Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
2. bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
3. 請使用命令行展開功能來完成以下練習:
(1) 創建/tmp目錄下的a_c、a_d、b_c、b_d。
(2) 創建/tmp/mylinux目錄下的bin、boot/grub、dev、etc/rc.d/init.d、etc/sysconfig/network-scripts、lib/modules、
lib64、proc、sbin、sys、tmp、usr/local/bin、usr/local/sbin、var/lock、var/log、var/run目錄。
4. 如何查看文件的元數據,其信息有哪些,分別表示什麼含意?如何修改文件的時間戳信息?
5. 如何定義一個命令的別名?如何在命令中引用另一個命令的執行結果?
6. 顯示/var目錄下所有以L小寫開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
7. 顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
8. 顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其他任意長度任意字符的文件或目錄。
9. 在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
10. 複製/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
11. 複製/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
12. 複製/etc目錄下所有以L小寫或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

1. Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示

cp、mv、rm。

1.1 cp

copy files and directories.

SYNOPSIS:

  1. 單源複製:cp [OPTION]… [-T] SOURCE DEST =>[-T]表示DEST是一般文件(-T,–no-target-directory:treat DEST as a normal file)
    1. SOURCE為一般文件
      1. 帶[-T],表示DEST是一般文件
        1. 如果DEST不存在,則事先創建此文件,並複製源文件的數據流至DEST中。
          1. 提示:可以在複製時直接改名。
            N28-第二周
        2. 如果DEST存在,則覆蓋目標文件。 =>危險操作,覆蓋後就無法恢復,所以最好帶”-i”選項
      2. 不帶[-T],表示DEST可能是一般文件也可能是目錄文件
        1. 如果DEST是一般文件,則情況同上面”1.SOURCE為一般文件/1.帶[-T],表示DEST是一般文件”。
        2. 如果DEST是目錄文件,則先在DEST目錄下創建一個與源文件同名的文件,並複製其數據流。
    2. SOURCE為目錄文件,則DEST必不能是一般文件,會報錯,沒有目錄複製到文件裡的,所以DEST必是目錄,且OPTION必須帶”-r”,它會複製目錄及目錄中的內容。
      1. 提示:可以在複製時直接改名。
        N28-第二周
  2. 多源複製:
    • cp [OPTION]… SOURCE… DIRECTORY
    • cp [OPTION]… -t DIRECTORY SOURCE… =>-t表示target(-t,–target-directory=DIRECTORY:copy all SOURCE arguments into DIRECTORY)
      1. 如果DIRECTORY不存在,會顯示錯誤。
      2. 如果DIRECTORY存在,
        1. 如果DIRECTORY是非目錄文件,顯示錯誤。
        2. 如果DIRECTORY是目錄文件,則分別複製每個文件至目標目錄中,並保持原名。

常用OPTION:

  • -i,–interactive:交互式複製,即覆蓋之前提醒用戶確認。
  • -f,–force:強制覆蓋目標文件。
  • -r,-R,–recursive:遞歸複製目錄,即複製目錄及目錄中的內容至目標位置。
  • -d:same as –no-dereference –preserve=links。-d是-P(也可以寫成–no-dereference)和–preserve=links(表示保留links屬性)的結合,意指複製符號鏈接本身,而非其指向的源文件。
    N28-第二周

    • 我測試了一下,其實cp -P就可以達到與cp -d一樣的效果,也就是說–preserve=links可以不用,然而我測cp –preserve=links卻達不到與cp -d的效果,反而是複製為一般文件。
      N28-第二周
      N28-第二周
  • -a,–archive:相等於-dR –preserve=all,用於實現歸檔,可以理解為做備份的。
  • –preserv=
    • mode:權限。
    • ownership:屬主和屬組。
    • timestamps:時間戳。
    • context:安全標籤。
    • xattr:擴展屬性。
    • links:符號鏈接。
    • all:上述所有屬性。

1.2 mv

move (rename) files.

SYNOPSIS:

  1. mv [OPTION]… [-T] SOURCE DEST
  2. mv [OPTION]… SOURCE… DIRECTORY
  3. mv [OPTION]… -t DIRECTORY SOURCE…

常用OPTION:

  • -i,interactive:交互式。
  • -f,–force:強制覆蓋。

1.3 rm

remove files or directories.

注意:儘量不要使用這個命令,因為太危險,我們可以養成習慣將要刪除的文件先移動到一個目錄(模擬回收站),待幾天後確定可以刪除再刪除。

SYNOPSIS:

  1. rm [OPTION]… FILE…

常用OPTION:

  • -i,–interactive:交互式。
  • -f,–force:強制執行。
  • -r,-R,–recursive:遞歸刪除。
    • 注意:刪除目錄常用操作:rm -rf /PATH/TO/DIR =>切記危險操作,尤其是rm -rf /、rm -rf /*,千萬不能做。
    • 在CentOS 7的版本,執行”rm -rf /”會有提示而不讓你執行此操作。
      N28-第二周

2. bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示

2.1 命令執行狀態返回值

bash通過狀態返回值來輸出命令的執行狀態結果:

  1. 成功:0
  2. 失敗:1-255

命令執行完成之後,其狀態返回值會保存於bash的特殊變量”$?”中。
N28-第二周

2.2 命令行展開

~:自動展開為用戶的家目錄,或指定的用戶的家目錄。
2017-12-14_203547

{ }:可承載一個以逗號分隔的路徑列表,並能夠將其展開為多個路徑。比如/tmp/{a,b},相當於/tmp/a、/tmp/b。

3. 使用命令行展開功能來完成練習

3.1 創建/tmp目錄下的a_c、a_d、b_c、b_d。

2017-12-14_204405

3.2 創建/tmp/mylinux目錄下的bin、boot/grub、dev、etc/rc.d/init.d、etc/sysconfig/network-scripts、lib/modules、lib64、proc、sbin、sys、tmp、usr/local/bin、usr/local/sbin、var/lock、var/log、var/run目錄,如下圖:
2017-12-14_204405

2017-12-14_203547

4. 如何查看文件的元數據,其信息有哪些,分別表示什麼含意?如何修改文件的時間戳信息?

每一個文件都有兩類數據:

  1. 元數據:使用stat查看的就是元數據(metadata)。
  2. 數據:使用cat查看的就是數據(data)。

4.1 如何查看文件的元數據,其信息有哪些,分別表示什麼含意?

N28-第二周

4.2 如何修改文件的時間戳信息?

要更改atime、mtime、ctime的時間戳,只要對文件執行touch就會改變。

N28-第二周

touch命令:change file timestamps

  • SYNOPSIS:touch [OPTION]… FILE…
    • OPTION
      提示:都不加OPTION,修改所有時間戳。

      • -c,–no-create:如果FILE存在改時間戳,如果FILE不存在不創建新文件。
      • a:change only the access time。
        N28-第二周
      • -m:change only the modification time。
        N28-第二周
      • -t:use [[CC]YY]MMDDhhmm[.ss] instead of current time
        N28-第二周

5. 如何定義一個命令的別名?如何在命令中引用另一個命令的執行結果?

5.1 如何定義一個命名的別名?

定義別名:# alias NAME=’COMMAND’。 =>別名最好使用小寫字母

  • 注意:命令可以有別名,別名可以與原名相同(此時原名被隱藏)。
  • 注意:僅對當前shell進程有效。任何在進程中定義的東西隨進程中止而中止。
  • 小技巧:別名的命令,如果要跳脫別名,可以在命令前面加上”\”。
    N28-第二周

獲取所有可用別名的定義:# alias。 =>當前shell進程上有哪些別名

撤銷別名:# unalias NAME。

5.2 如何在命令中引用另一個命令的執行結果?

強引用:’ ‘,引號內內容不改變。

弱引用:” “,雙引號內的變量會轉換為變量的值。

命令引用:‵COMMAND ‵、$(COMMAND ),建議使用$(COMMAND)。
N28-第二周

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

# ls -d /var/l*[[:digit:]]*[[:lower:]]

提示:[[:digit:]]可以換成[0-9]

7. 顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。

# ls -d /etc/[[:digit:]]*[^[:digit:]]

提示:[[:digit:]]可以換成[0-9],[^[:digit:]]可以換成[^0-9]

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

# ls -d /etc/[^[:alpha:]][[:alpha:]]*

提示:[[:alpha:]]可以換成[a-z] or [A-Z] =>[a-z]與[A-Z]不區分大小寫

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

# touch /tmp/tfile-$(date +%F-%H-%M-%S)

提示:$(date +%F-%H-%M-%S)可以換成`date +%F-%H-%M-%S` =>` `是鍵盤tab上的”`”

10. 複製/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

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

提示:[^[:digit:]]可以換成[^0-9]

11. 複製/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。

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

12. 複製/etc目錄下所有以L小寫或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

# cp /etc/[lmn]*.conf /tmp/mytest3

提示:[lmn]可以換成[l,m,n]

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90025

(0)
上一篇 2017-12-13 16:05
下一篇 2017-12-14 00:45

相关推荐

  • 自动化系统安装之DHCP服务实现

    DHCP服务实现 dhcp的工作过程是基于UDP协议的,其中用到了UDP的67(服务器),68(客户端)端口 使用场景 自动化安装系统 解决IPV4资源不足的问题 同网段多dhcp服务 dhcp服务必须基于本地 先到先得 跨网段 RFC 1542 dhcpclient客户端向dhcpsercer服务器请求续约时,中间相隔多网段时,如果路由器是 RFC1542…

    2018-01-29
  • 我们都在前行的路上

    我们都在前行的路上         从0到1是一种突破,年少轻狂到心有余而力不足,力挽狂澜到恬淡人生需伏地脚踏实地地前行,漂泊在一线都市,立足我图网,途径百胜,一次机缘巧合转战阿里,对于一个工作6年的弄潮儿,他将所有经历的化作前行的动力和坚韧不拔的耐力,也许不经意,但却理所当然,…

    Linux干货 2016-11-03
  • 文本处理(1)

    文本处理工具最全整理上半部

    Linux干货 2018-03-15
  • N26-博客作业-week9

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i nologin_num=0,login_num=0 for i in $(cut -d: -f7 /etc/passwd); do if …

    Linux干货 2017-04-01
  • 数组、变量及bash的配置

    数组、变量及bash的配置 变量:存储单个元素的内存空间 数组:存储多个元素的内存空间,相当于多个变量集合 索引:编号从0开始,属于数值索引,索引为自定义格式即为关联数组(bash4.0之后支持) bash数组支持稀疏格式 数组的声明 普通数组declare –a 关联数组 declare –A 普通数组可以不声明直接使用,关联数组必须先声明再使用 数组的赋…

    Linux干货 2016-08-26
  • Linux下常用安全策略设置的六个方法

    安全第一”对于linux管理界乃至计算机也都是一个首要考虑的问题。加密的安全性依赖于密码本身而非算法!而且,此处说到的安全是指数据的完整性,由此,数据的认证安全和完整性高于数据的私密安全,也就是说数据发送者的不确定性以及数据的完整性得不到保证的话,数据的私密性当无从谈起! 1. 禁止系统响应任何从外部/内部来的ping请求攻击者一般首先通过ping命令检测此…

    Linux干货 2017-07-31