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

相关推荐

  • RPM软件包管理器及前端工具yum

    目前在linux系统之上软件安装方式最常见的有两种,分别是: dpkg:这个机制最早是由Debian Linux社区所开发出来的,透过dpkg的机制,Debian提供的软件就能够简单的安装起来,同时还能提供安装后的软件资讯,实在非常不错。只要是衍生于Debian的其他linux发行版,大多使用dpkg这个机制来管理软件的,包括B2D、Ubuntu等等。 RP…

    Linux干货 2016-08-20
  • 对ssh的简单理解

    ssh:secure shell,protocol,22、tcp安全的远程登录 具体的软件实现:openssh:ssh协议的开源实现,centos默认安装dropbear:另一个开源实现ssh协议版本v1:基于crc-32做MAC,不安全;man-in-middle 已淘汰v2:双方主机协议选择安全的MAC方式基于DH算法做密钥交换,基于RSA或DSA实现身…

    2017-09-29
  • N26—第三周

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut -d ' ' -f 1 |sort -u l_cong root (unknown)   2、取出最后登录到当前系统的用户的相关信息。 [l_cong@localhost ~]$…

    Linux干货 2017-02-15
  • linux发展史——兽人永不为奴

      了解历史才能判断趋势。既然我们已经打算跳入运维这个坑,了解先烈的历史事迹是必须的。为什么说是必须的呢?现在我们处于一个知识时代,资本在追着知识跑,像海银资本这种vc都看不起中国的市场了,已经带着中国的资本在万恶资本主义的老美投资了。 1计算机硬件组成   操作系统成为了非常重要人类创造生产力的场所,很多人都开始追本…

    Linux干货 2016-10-14
  • mysql并发控制

    并发控制: 锁:Lock 1、锁类型 : 读锁:共享锁,可被多个读操作共享; 写锁:排它锁,独占锁; 2、锁粒度: 表锁:在表级别施加锁,并发性较低; 行锁:在行级另施加锁,并发性较高; 3、锁策略:在锁粒度及数据安全性之间寻求一种平衡机制; 存储引擎:级别以及何时施加或释放锁由存储引擎自行决定; MySQL Server:表级别,可自行决定,也允许显式请求…

    2016-11-18
  • 文本处理工具

    分页查看文件内容 less和more命令介绍 分页查看文件内容:less和more less:一页一页地查看文件或STDIN输出   # less FILE less的快捷键:     Ctrl+u:向上翻半屏     Ctrl+d:向下翻…

    Linux干货 2016-08-07