第二周的作業

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

命令:ls

NAME:用于列出目錄的內容;

SYNOPSIS:ls [OPTION]… [FILE]…

FILE:

如果FILE是個文件的話,則顯示文件名;

如果FILE是個目錄的話,則列出目錄的內容;

OPTION:

-l:顯示長格式的信息,一共包含了7個字段的信息;

-rw-r–r– 1 root root 0 Sep  8 15:28 1.txt

字段1:-rw-r–r–

mode bit,模式位

第1位表示文件的類型,常規文件是-,目錄文件是d,等等;

第2位至第10位,3位1組,表示相關用戶對此文件鎖擁有的權限,第一組表示文件所有者,第二組表示文件所有組,第三組表示其他人;

字段2:1

硬鏈接的數量

字段3:root

文件的所有者

字段4:root

文件的所有組

字段5:0

文件的大小

字段6:Sep  8 15:28

文件的修改時間的時間戳

字段7:1.txt

文件名

-a:顯示所有文件,包含隱藏文件;

-A:同-a,但是不顯示.和..文件;

-h,–human-readble:對文件大小的單位換算,但是換算后的結果不精確;

-r,–reverse:排序時逆序顯示;

-R,–recursive:遞歸顯示子目錄;

-d:如果參數是個目錄的話,可以查看目錄的屬性,結合-l選項使用;

命令:mkdir

NAME:創建目錄

SYNOPSIS:mkdir [OPTION]… DIRECTORY…

OPTION:

-p:按需創建父目錄;

-v:verbose,顯示詳細過程;

-m MODE:創建目錄時給定權限;

注意:mkdir創建的是目標目錄,如果目標目錄的父目錄或其他上級目錄不存在,則默認情況下創建失?。?/p>

命令:rmdir

NAME:刪除一個空目錄

SYNOPSIS:rmdir [OPTION]… DIRECTORY…

必須是空目錄,由于此特性,所以此命令很少使用

OPTION:

-p:刪除目標目錄以及它的上級目錄,舉個例子:

rmdir -p a/b/c等同于rmdir a/b/c a/b a

命令:touch

NAME:修改文件的時間戳

SYSNOPSIS:touch [OPTION]… FILE…

當該命令不添加任何的OPTION,并且FILE是新的文件名的時候,默認情況下,它會創建一個空內容的新文件;

不過該命令主要還是用于修改時間戳的,這次的作業是講文件管理類命令,所以修改時間戳這塊,這里就不說了;

命令:cp

在操作系統中,復制的本質是創建一個空文件,讀取源文件并寫入到空文件中。

NAME:復制文件和目錄

SYNOPSIS:

SOURCE表示源文件,DEST表示目標文件;

單源復制:

cp [OPTION]… [-T] SOURCE DEST

如果DEST不存在,則事先創建DEST,并復制源文件的數據至DEST中;

如果DEST存在:

如果DEST是非目錄文件,則會覆蓋目標文件;

如果DEST是目錄文件,則在DEST目錄下創建一個與源文件同名文件并復制

多源復制:

cp [OPTION]… SOURCE… DIRECTORY

cp [OPTION]… -t DIRECTORY SOURCE…

注:第二種多源復制很少使用,用第一種即可。

如果DEST不存在:error;

如果DEST存在:

如果DEST是非目錄文件,error;

如果DEST是目錄文件,則分別復制多個源文件至目標目錄下,并保持原名;

OPTION:

-i:interactive,交互式的,若需要覆蓋,提醒用戶確認;

-f:force,若需要覆蓋,不提醒用戶,強制覆蓋;

-R,-r:recursive,遞歸復制目錄;

-d,–no-dereference –preserve=links:在默認情況下,如果SOURCE是一個字符鏈接文件的話,cp會將字符鏈接文件參考的文件的數據復制到DEST中,復制之后的文件就不再是一個鏈接文件了;而如果加上此參數的話,那么會保留鏈接文件本身的參考信息,復制后的DEST仍會是一個鏈接文件;

–preserve:保留源文件的指定屬性,包括權限mode、時間戳timestamp、歸屬ownship、上下文context、擴展屬性xattr、字符鏈接links、以上所有all,多個屬性之間,使用逗號分隔;

-a,–archive:等同于-dR –preserve=all,用于實現歸檔做備份;

命令:rm

NAME:刪除文件或者目錄

SYNOPSIS:rm [OPTION]… FILE…

OPTION:

-f, –force:強制刪除,不提示;

-i:每次刪除之前都要提示;

-r, -R, –recursive:遞歸刪除,用于刪除一個目錄的時候;

命令:mv

NAME:移動或者重命名文件

大部分用法和機制,類似于cp命令;

mv的SOURCE如果是一個目錄的話,無需加類似-r的遞歸選項;

如果SOURCE和DEST在同一路徑下,則mv的功能由mv變為rename

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

命令執行狀態返回值和命令行展開都屬于bash的基礎特性

命令執行狀態返回值:

bash通過狀態返回值來輸出此結果:

成功:0

失敗:1~255

命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;

命令行展開:

~:自動展開為當前用戶的家目錄或者指定的用戶的家目錄

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

例如:/tmp/{a,b}等同于/tmp/a和/tmp/b

具體的演示,我們在下面那題來操作看看就知道了。

3、請使用命令行展開功能來完成以下練習:

   (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d

mkdir -pv {a,b}_{c,d}

第二周的作業1.png

   (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 /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}}

第二周的作業2.png

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

答:

1、元數據我也不太好確定,大概有這些內容,文件的大小、屬性、時間戳、塊大小等等用于描述此文件的相關屬性,不知道是否使用stat查出來的都算元數據。

2、查看的話,可以使用stat命令

NAME:顯示文件或文件系統的狀態;

第二周的作業3.png

File:文件名;Size:文件的大小,單位字節;Blocks:數據占用的塊數量;IO Block:塊大小,單位字節;regular file:說明文件類型;Device:設備ID之類的吧;Inode:inode節點的編號;Links:硬連接數;第一個Access:訪問的權限;Uid:所有者;Gid:所有組;第二個Access:文件被訪問的時間,一般是打開的時候就會記錄,但是如果頻繁打開的話,Linux默認不會修改此元數據;Modify:文件被修改的時間;Change:元數據改變的時間;

3、修改文件的時間戳信息,使用命令touch;

NAME:修改文件的時間戳

SYNOPSIS:touch [OPTION]… FILE…

OPTION:

-a:僅修改atime;

-m:僅修改mtime;

-t:指定時間戳,而不再是當前時間為時間戳;

[[CC]YY]MMDDhhmm[.ss]

ctime是無法指定的,因為ctime指的是元數據的改變時間,元數據是必定會被修改的;

第二周的作業4.png

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

定義一個別名

SYNOPSIS:alias ALIAS_COMMAND='COMMAND'

EXAMPLE:alias head='head -n 1'

取消一個別名的定義

SYNOPSIS:unalias ALIAS_COMMAND

EXAMPLE:unalias head

引用有兩種方式

$()和“

EXAMPLE:

useradd $(head -n 1 /tmp/user.txt)

useradd `head -n 1 /tmp/user.txt`

馬哥建議使用$()

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

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

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

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

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

ls -d /etc/[^[:alpha:]][a-z]*

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

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

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

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

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

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

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

cp -r /etc/[lmn]*.conf /tmp/mytest3/

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

(0)
N24_alongdidiN24_alongdidi
上一篇 2016-11-23
下一篇 2016-11-23

相關推薦

  • 初識shell腳本編程

    shell腳本基礎 shell腳本是包含一些命令或聲明,并符合一定格式的文本文件 一般格式要求: 1.首行shebang機制 #!/bin/bash #!/bin/python #!/usr/bin/perl 2.注釋信息 以#開頭,可寫明腳本用途,作者,版本,時間等 3.腳本正文內容, 創建shell腳本 以bash為例 第一行定格#!/bin/bash …

    Linux干貨 2016-08-15
  • LAMP搭建wordpress博客站點

    使用WordPress可以搭建功能強大的網絡信息發布平臺,但更多的是應用于個性化的博客。針對博客的應用,WordPress能讓您省卻對后臺技術的擔心,集中精力做好網站的內容。本文將教您如何通過LAMP搭建自己的wordpress博客站點。 LAMP聽起來很高大上,其實是集中技術合起來的稱呼: L:linux A:apache httpd M:mysql、ma…

    2017-06-01
  • 廉價磁盤陣列(RAID)與邏輯卷(lvm)

    RAID的作用介紹與LVM的創建分析   有計算機基礎常識的人們都能了解,現如今生產出來的存儲設備比如機械式磁盤,作為個體它的存儲容量是有上限的,雖然曾經有人開發出大容量磁盤,但是成本太高,無法在社會中普及應用。對于這種大型服務器系統迫切需要的功能,催生出了一個叫做廉價冗余磁盤陣列的技術,歪果仁將它稱為RAID。而后隨著歲月的發展,又產生了邏輯卷l…

    Linux干貨 2016-09-11
  • Clonezilla(再升龍)系統備份還原使用

      實驗一、單機Centos 系統利用Clonezilla手動備份和還原(VMware vSphere) 實驗二、利用Clonezilla+DRBL網絡備份和還原   一、簡介 DRBL(Diskless Remote Boot in Linux)中文名“企鵝龍”,是基于GNU GPL協議授權下的開源項目,可以實現客戶機的遠程啟動及多客戶…

    Linux干貨 2015-10-27
  • Liunx獲取信息幫助與man文檔章節的劃分

    首先要判斷命令的類型,可用 type COMMAND 來判斷命令 如果顯示結果為(….是 shell內嵌)即為shell內嵌命令,如需獲取幫助,使用 help COMMAND 即可; 下圖的例子是pwd是shell內嵌命令 內部命令屬于Shell的一部分,所以并沒有單獨對應的系統文件,只要Shell解釋器被運行,內部指…

    2017-07-02
  • DNS 及 bind的簡單配置

    bind的簡單配置 摘要:DNS  bind簡單配置        FQDN        http://www.www58058.com.  WWW是主機名  .178linux.COM.是私有域名&nbsp…

    Linux干貨 2015-10-18

評論列表(1條)

  • luoweiro
    luoweiro 2016-11-30 22:19

    使用$()和使用$xxx的差別在有一些地方還是很關鍵的,不如pig=2 $pigs 和 $(pig)s就是一個典型的例子

欧美性久久久久