N25第二周作業

第二周作業

一、Linux上的文件管理類命令有哪些,其常用的使用方法以及相關實例演示

演示用結構

 [root@centos01 yanshi]# tree -a /tmp/yanshi/
 
/tmp/yanshi/

├── a
│   └── 1
├── b
│   └── 2
└── c

    └── 3

cp:將源文件復制至目標文件,或將多個源文件復制至目標目錄。

使用方法:

  • cp [選項]…(-t)源文件…目標

  • 如果目標不存在:新建DEST,并將SRC中內容填充至DEST中;

[root@centos01 yanshi]# pwd

/tmp/yanshi

[root@centos01 yanshi]# cp a/1 b

[root@centos01 yanshi]# ls b

1  2
  • 如果目標存在:如果DEST是文件則將SRC中的內容覆蓋至DEST中;此時建議為cp命令使用-i選項;

[root@centos01 yanshi]# cp -i a/1 b

cp:是否覆蓋"b/1"? y

[root@centos01 yanshi]# ls b

1  2
  • 如果DEST是目錄:在DEST下新建與原文件同名的文件,并將SRC中內容填充至新文件

[root@centos01 yanshi]# cp b/2 c/

[root@centos01 yanshi]# ls c 

2  3
  • cp [選項]…源文件(多個)…目錄

  • 如果源文件為多個文件,則目標必須存在,且為目錄,其它情形均會出錯

[root@centos01 yanshi]# cp c/2 c/3 a/

[root@centos01 yanshi]# ls a

1  2  3

[root@centos01 yanshi]# cp c/2 c/3 d/

cp: 目標"d/" 不是目錄
  • cp [選項]… -t 目錄 文件…目標

此時使用選項:-r(遞歸復制)

  • 如果目標不存在:則創建指定目錄,復制SRC目錄中所有文件至DEST中;

[root@centos01 yanshi]# cp -r c d 

[root@centos01 yanshi]# ls d/

2  3
  • 如果目標存在
    目標是文件:報錯;
    目標是目錄:在目標目錄創建一個與源目錄名字相同的目錄并把數據導入其中

[root@centos01 yanshi]# cp -r c a/1

cp: 無法以目錄"c" 來覆蓋非目錄"a/1"

[root@centos01 yanshi]# cp -r c a

[root@centos01 yanshi]# ls a

1  2  3  c

[root@centos01 yanshi]# ls a/c

2  3

常用選項:
-i:交互式
-r, -R: 遞歸復制目錄及內部的所有內容;
-a: 歸檔,相當于-dR –preserv=all
-d:–no-dereference –preserv=links
–preserv[=ATTR_LIST]
mode: 權限
ownership: 屬主屬組
timestamp: 時間戳
links:連接屬性
xattr:擴展屬性
context:安全上下文
all:以上所有
-p: –preserv=mode,ownership,timestamp
-v: –verbose:顯示詳細信息
-f: –force:強制

mv: move,移動文件

使用方法:

  • mv [選項]… [-T] 源文件 目標文件(若目標存在且為文件,則只覆蓋其中內容,名字不變)

[root@centos01 tmp]# cd yanshi

[root@centos01 yanshi]# mv a/1 b/2

mv:是否覆蓋"b/2"? y

[root@centos01 yanshi]# ls b 

2
  • mv [選項]… 源文件… 目錄

[root@centos01 yanshi]# mv b/2 c/

[root@centos01 yanshi]# ls c 

2  3
  • mv [選項]… -t 目錄 源文件…

[root@centos01 yanshi]# touch 1

[root@centos01 yanshi]# ls

1  a  b  c

[root@centos01 yanshi]# mv 1 a b

[root@centos01 yanshi]# ls

b  c

[root@centos01 yanshi]# ls b 

1  a

rm: remove,刪除

  • 使用方法:rm [OPTION]… FILE…

[root@centos01 yanshi]# ls b 

1  a

[root@centos01 yanshi]# rm b/1

rm:是否刪除普通空文件 "b/1"?y

[root@centos01 yanshi]# ls b 

a

[root@centos01 yanshi]# cd /

[root@centos01 /]# rm -rf /tmp/yanshi/

[root@centos01 /]# ls /tmp/yanshi

ls: 無法訪問/tmp/yanshi: 沒有那個文件或目錄

常用選項:
-i: 交互式
-f: 強制刪除
-r: 遞歸
rm -rf

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

  • 命令的執行結果狀態

    • 成功

    • 失敗

  • bash使用特殊變量$?保存最近一條命令的執行狀態結果:

    • 1-255:失敗

    • 0:成功

  • 程序執行有兩類結果:

    • 程序的執行狀態結果;

    • 程序的返回值;

  • 命令行展開

    • ~USERNAME:展開為指定用戶的主目錄

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

    • /tmp/{1,2}/3 = /tmp/1/3, /tmp/1/3

    • /tmp/{1,2} = /tmp/1, /tmp/2

    • ~: 展開為用戶的主目錄

[root@centos01 /]# mkdir -p /tmp/cl/{1,2}

[root@centos01 /]# tree /tmp/cl

/tmp/cl

├── 1
└── 2

三:請使用命令行展開功能來完成以下練習(咳!題目就不打了)

  • 第一小題

[root@centos01 /]# mkdir /tmp/{a,b}_{c,d}

[root@centos01 /]# ls /tmp/

1  2  a_c  a_d  b_c  b_d  beifen  cl  keyring-s3kIrK  orbit-gdm  orbit-root  pulse-H1wCMLNcXyJa  pulse-s2Fn1pYsBx3W  pulse-uRDqWcz2n2en  virtual-root.TdFWCr  yum.log
  • 第二小題

[root@centos01 /]# mkdir -p /tmp/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}}

[root@centos01 /]# tree /tmp/mylinux/

/tmp/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
    

24 directories, 0 files

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

  • 元數據是用來描述數據的數據,使信息的描述和分類可以實現格式化,從而為機器處理創造了可能。

[root@centos01 /]# stat /tmp/mylinux/

  File: "/tmp/mylinux/"
  
  Size: 4096      	Blocks: 8          IO Block: 4096   目錄
  
Device: fd00h/64768d	Inode: 534289      Links: 14

Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2016-12-14 01:53:51.445997820 +0800

Modify: 2016-12-14 01:53:47.721989299 +0800

Change: 2016-12-14 01:53:47.721989299 +0800

其中各參數的含義:
File:文件的路徑
Size: 文件大小
Blocks: 這個文件使用的塊的總數
IO Block:這個文件的IO塊大小
普通文件:表示文件的類型
Device:十六進制設備號,設備數量的小數
Inode:Inode號是一個獨特的號碼,操作系統用inode號碼來識別不同的文件
Links:到文件的鏈接數
Access(0644/-rw-r–r–):文件的權限
Uid:文件所有者的UID和用戶名
Gid:文件所有者的GID和組名
access time:表示我們最后一次訪問(僅僅是訪問,沒有改動)文件的時間
modify time:表示我們最后一次修改文件的時間
change time:表示我們最后一次對文件屬性改變的時間,包括權限,大小,屬性等等

  • 如何修改文件的時間戳信息
    三個時間戳:
    access time:訪問時間,簡寫為atime,讀取文件內容
    modify time: 修改時間, mtime,改變文件內容(數據)
    change time: 改變時間, ctime,元數據發生改變
    使用touch [OPTION]… FILE…
    -a: 只修改 atime
    -m: 只修改 mtime
    -t STAMP:指定具體時間的格式
    [[CC]YY]MMDDhhmm[.ss]
    -c: 如果文件不存,則不予創建

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

  • 別名:

通過alias實現:
alias:顯示當前shell進程所有可用的命令別名
alias 別名=‘原命令’  (為避免空格,原命令兩端加入單引號)
注意:在命令行中定義的別名,僅對當前shell進程有效,如果想永久有效,需修改配置文件
僅對當前用戶:~/.bashrc
對所有用戶有效:/etc/bashrc
修改配置文件后不會像在命令行中一樣立即生效,不關閉當前shell進程的情況下,需重新讀取配置文件
bash進程:source /….或.  /……
注:修改別名前確認不要和別的命令相沖突,可使用tab補全試一試

  • 管道:COMMAND1 | COMMAND2 | COMMAND3 |…

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

[root@centos01 /]# ls -d /var/l*[0-9]*[a-z]

ls: 無法訪問/var/l*[0-9]*[a-z]: 沒有那個文件或目錄

[root@centos01 /]# mkdir /var/ls33b

[root@centos01 /]# ls -d /var/l*[0-9]*[a-z]

/var/ls33b

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

[root@centos01 /]# ls -d /etc/[0-9]*[^0-9] 

ls: 無法訪問/etc/[0-9]*[^0-9]: 沒有那個文件或目錄

[root@centos01 /]# mkdir /etc/9854a

[root@centos01 /]# ls -d /etc/[0-9]*[^0-9] 

/etc/9854a

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

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

ls: 無法訪問/etc/[^[:alpha:]][[:alpha:]]*: 沒有那個文件或目錄

[root@centos01 /]# mkdir /etc/5adjoayud

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

/etc/5adjoayud

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

[root@centos01 /]# touch /tmp/tfile-$(date +%F-%H-%M-%S)

[root@centos01 /]# ls /tmp/t*

/tmp/tfile-2016-12-14-04-01-09

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

cp -rf /etc/p*[^0-9] /tmp/mytest1

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

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

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

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

原創文章,作者:Net25_青梅煮茶,如若轉載,請注明出處:http://www.www58058.com/63680

(0)
Net25_青梅煮茶Net25_青梅煮茶
上一篇 2016-12-14
下一篇 2016-12-14

相關推薦

  • 運維必備技能之磁盤管理

    磁盤分區的三個工具 1、fdisk交互式工具         fdisk /dev/sdb進入交互界面         交互式界面的幾個常用命令        …

    Linux干貨 2017-03-14
  • UEFI與GPT(7.3課上作業)

    一、UEFI:統一可擴展固件接口 1、什么是UEFI         統一可擴展固件接口(Unified Extensible Firmware Interface,UEFI)是一種PC系統規格,用來定義操作系統與系統固件之間的軟件界面,作為BIOS的替代方案。UEFI負責加電自…

    Linux干貨 2016-07-12
  • 正則 grep查找find(xargs)練手

    1、顯示當前系統上root、fedora或user1用戶的默認shell; ~]# grep -E "^(root|fedora|user1)\>" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello(); ~]# gre…

    Linux干貨 2016-10-24
  • 路由配置注意事項

    路由配置注意事項 在把linux主機當做路由的時候,切記把轉發功能打開,防火墻關閉,否則到頭來一場空。 紅臉主機: 黃臉主機: 路由A: [root@localhost network-scripts]# ip route 192.168.240.0/24 via 10.0.0.11 dev eth1 172.16.0.0/16 dev eth0 proto…

    2017-05-03
  • linux系統的路由功能

    1、概要    大家應該都明白,不同網段的報文包傳播,是需要路由的轉發轉發功能的,那么,一個linux操作系統能不能充當路由器呢?下面不妨來驗證一下。 2、網絡拓撲 3、實現過程    <1>倆個centos6分別充當Router1和Router2。并添加足夠的網卡。    <2&…

    Linux干貨 2016-09-06
  • 關于TCP/IP與OSI模型基礎學習

    關于TCP/IP與OSI模型基礎學習 §·OSI七層模型介紹 OSI(Open system interconnection 開放系統互聯),七層網絡模型稱為開放式系統互聯參考模型 ,是一個邏輯上的定義,一個規范,它把網絡從邏輯上分為了7層。每一層都有相關、相對應的物理設備,比如路由器,交換機。OSI 七層模型是一種框架性的設計方法 ,建立七層模型的主要目的…

    Linux干貨 2016-09-05

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-16 23:42

    贊~總結的內容是沒啥問題,其中解決的方法不止一種~建議多進行擴展一下~繼續加油~

欧美性久久久久