馬哥教育網絡班21期-第二周課程作業

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

cp即copy的簡寫,我們可以用它來復制一些文件即將,源文件的數據流復制到目的文件中。和下面要講的rm,mv,一樣都是一些非?;A的命令。關于這個命令,我們有個小竅門,那就是根據 ls file這個命令是否執行成功來判斷file文件是否存在。

關于cp,我們有一些要點要注意:

cp SRC DEST #此時SRC只有一個,且為文件

如果DEST是文件,且存在,則將源文件的內容覆蓋至DEST。如果此時為root用戶,那么默認alias cp=cp -i,
所以會出現詢問是否覆蓋文件的提醒,而此時如果是其他用戶,則默認覆蓋,不會提醒,所以得謹慎使用。如果不存在,那就簡單了,系統直接創建一個文件,然后
將源文件數據流覆蓋至DEST中。就這么簡單。

如果DEST是目錄,且存在那么就在指定目錄下創建與源文件同名的文件,并將數據流填充至新文件中。若目錄不存在,則直接報錯。

如果SRC是目錄,那么DEST必須為目錄,且必須必須使用 -r  選項。即遞歸選項,因為目錄里面也會有目錄,必須要使用遞歸選項才能正確的將SRC及其子目錄復制到DEST。注意SRC目錄是什么結構,那么在DEST中就是什么結構。

cp  SRC…   DEST  #SRC有多個文件。且必須文件。

DEST必須是目錄,且要存在,若不存在,則直接報錯。

關于cp已經說了很多廢話,但是還是要繼續介紹一些關于cp短選項,希望各位客官不要厭煩。

        -r:  遞歸,將該目錄下的所有子目錄一起復制,上面說過這事SRC為目錄是必須使用的選項

        -i: 交互式命令,也已經說過了,就是當要覆蓋一個已存在文件時,出現提醒,并讓你確認。

        -a:  歸檔,相當于 -dR –preserve=all

             -d:  –no-deference    –preserve=links

             –preserve[=ATTR_LIST]    保存文件元數據屬性

              mode: 權限

              ownership:  屬主屬組

              timestamp:  時間戳

              links; 鏈接

              。。。

              all: 所有元數據屬性

       -p: –preserve=mode, ownership,  timestamp

       -f:  force  強制復制,若已存在一個同名文件,但該文件的權限不允許復制,則刪除該文件,然后重新創建一個同名的文件。

cp講的差不多了,那么就來講講rm嗎,它是文件移動命令。它和cp很相似。以下是mv的三種形式。

       mv [OPTION]… [-T] SOURCE DEST
       mv [OPTION]… SOURCE… DIRECTORY
       mv [OPTION]… -t DIRECTORY SOURCE…

mv也有一些有趣的短選項:

       -i: 交互式: 在覆蓋文件時,發出提醒,并等待用戶響應。

       -f: 強制性: 在覆蓋前,不發出提示,直接覆蓋。

下面就是rm,rm的作用是刪除文件或目錄。很簡單,只要文件存在就可以了,介紹一些簡單的選項吧。

       -i: 交互式,每刪除一個文件都詢問一次,并等待回答。

       -f: 強制執行,即不詢問就執行

       -r: 遞歸刪除,即刪除文件,目錄即目錄中所有的內容。

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

關于命令行展開的用法,主要是以下三點:

1.   ~: 展開為當前用戶家目錄;

2,  ~USERNAME:展開為指定用戶的家目錄;

3,  /tmp/a/{x,y}:  展開為/tmp/a/x 和/tmp/a/y

[root@promote ~]# cd ~
[root@promote ~]# cd ~test
[root@promote test]# mkdir -pv /tmp/a/{x,y}
mkdir: created directory ‘/tmp/a’
mkdir: created directory ‘/tmp/a/x’
mkdir: created directory ‘/tmp/a/y’

命令執行狀態返回值只有兩種情況:

成功:0

失?。?1-255

$? 為上一條命令的執行狀態返回值,我們要與執行返回值相區分。

[root@promote test]# mkdir -pv /tmp/b
mkdir: created directory ‘/tmp/b’
[root@promote test]# echo $?
0
[root@promote test]# mkdir -v /tmp/b
mkdir: cannot create directory ‘/tmp/b’: File exists
[root@promote test]# echo $?
1

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

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

touch /tmp/{a,b}_{c,d}

(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,bin},var/{lock,log,run}}

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

文件的元數據信息有:屬主,屬組,時間戳

ls -l

可查看文件的元數據信息

屬主指創建該文件時的用戶

屬組至創建該文件的用戶組

時間戳分為三種,即訪問時間,修改時間,改變時間。

訪問時間 :  access time (atime)
是指最后一次訪問文件的時間,修改時間:  modify time(mtime). 是指最后一次修改文件內 容的時間,改變時間:  change
time(ctime)是指最后一次修改文件屬性的時間。我們要重點注意一點,那就是只要訪問時間或修改時間改變了,改變時間也一定改變。

我們可以用stat目錄來查看時間戳,這個命令本意是查看的是文件的屬性,而時間戳就是文件的屬性。關于它我們還有另一個很神奇的命令,那就是touch,它可以用來改變文件的時間戳,將其變為當前時間。

touch   -a   FILENAME

touch   -m  FILENAME

當然我們也可以使用-t選項指定時間。注意-t選項一定要與時間相連。

[root@ ~] # touch -a -t  201606130101.01 /tmp/fstab
[root@ ~]# stat /tmp/fstab
File: `/tmp/fstab'
Size: 595           Blocks: 8          IO Block: 4096   regular file
Device: ca01h/51713d    Inode: 396687      Links: 1
Access: (0600/-rw——-)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-06-13 01:01:01.000000000 +0800
Modify: 2016-06-13 01:01:01.000000000 +0800
Change: 2016-06-30 10:23:01.113221976 +0800

再強調一點,只要atime或mtime 改變了,則ctime必改變。因為時間戳也是文件的屬性。

神奇的地方來了,雖然touch是用來改變時間戳的,但它卻可以用來創建文件。好玩吧!  touch FILENAME

如果不想創建文件,加個-c選項就可以了。

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

定義別名:

alias cd="cd /root"

引用另一個變量:

[root@promote ~]# echo `date` > time.out
[root@promote ~]# cat time.out 
Thu Jul 7 00:32:54 CST 2016

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

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

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

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

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

ls /etc/[^[:alpha:]][[:alpha:]]*

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

[root@promote tmp]# touch tfile-`date +%F-%H-%M-%S`
[root@promote tmp]# ls tfile*
tfile-2016-07-07  tfile-2016-07-07-10-58-08

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

[root@promote tmp]# \cp -r /etc/p*[^[:digit:]] ./mytest1/

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

[root@promote tmp]# \cp -r /etc/*.d ./mytest2/
[root@promote tmp]# ls ./mytest2/
auto.master.d      dracut.conf.d  logrotate.d     profile.d  rc.d           sysctl.d
bash_completion.d  exports.d      modprobe.d      rc0.d      request-key.d  tmpfiles.d
binfmt.d           gdbinit.d      modules-load.d  rc1.d      rsyslog.d      usb_modeswitch.d
cgconfig.d         grub.d         my.cnf.d        rc2.d      rwtab.d        xinetd.d
chkconfig.d        init.d         oddjobd.conf.d  rc3.d      sane.d         yum.repos.d
cron.d             ipsec.d        pam.d           rc4.d      setuptool.d
depmod.d           ld.so.conf.d   popt.d          rc5.d      statetab.d
dnsmasq.d          libibverbs.d   prelink.conf.d  rc6.d      sudoers.d

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

[root@promote tmp]# \cp -r /[lmn]* ./mytest3/
[root@promote tmp]# ls ./mytest3/
lib  lib64  media  mnt

原創文章,作者:21期-揚州-藍,如若轉載,請注明出處:http://www.www58058.com/21926

(0)
21期-揚州-藍21期-揚州-藍
上一篇 2016-07-07
下一篇 2016-07-07

相關推薦

  • linux基礎(第二天)

    一、終端:ternimal     COMMAND:tty     串行終端:/dev/ttyS#      物理終端:/dev/console 鍵盤顯示器 單一用戶     虛擬終端:/d…

    Linux干貨 2016-07-26
  • 一位老it工程師的忠告,新手進來學習,老手進來體會,收獲很大。

    諸位,咱當電子工程師也是十余年了,不算有出息,環顧四面,也沒有看見幾個有出息的!回顧工程師生涯,感慨萬千,愿意講幾句掏心窩子的話,也算給咱們師弟師妹們提個醒,希望他們比咱們強! [1]好好規劃自己的路,不要跟著感覺走!根據個人的理想決策安排,絕大部分人并不指望成為什么院士或教授,而是希望活得滋潤一些,爽一些。那么,就需要慎重安排自己的軌跡。從哪個行業入手,逐…

    Linux干貨 2015-02-26
  • Linux用戶組管理

    馬哥網絡教育21期+第三周練習 用戶及用戶組 用戶配置文件     用戶:UID,/etc/passwd     組:GID,/etc/group 密碼配置文件     用戶:/etc/shadow    &n…

    Linux干貨 2016-09-02
  • DNS相關配置

    DNS基礎概念: DNS全稱為Domain Name System。它作為將域名和IP地址相互映射的得一個分布式數據庫,能夠使人更方便的訪問互聯網 DNS使用TCP和UDP得53號端口 BIND是DNS得實現方式之一 named是bind程序得運行的進程名 named進程的主要運行者是named用戶,為了安全起見,它的程序也應該以named用戶運行 配置正向…

    Linux干貨 2017-05-30
  • Linux中/etc/passwd、/etc/shadow文件字段的含義以及用處

        今天本人學習到了兩個個Linux中非常重要的文件,它們承載著Linux用戶的相關信息,如果在賬號方面出現一些密碼相關的問題,就可以來找這兩個文件查看和分析一番。     他們分別是/etc/passwd和/etc/shadow兩個文件,他們都存放于/etc目錄中,都可以使用cat命令來查看其內容。  …

    Linux干貨 2016-01-14
  • find命令、歸檔壓縮工具、xargs、exec、tar、xz、cpio

    find命令、歸檔壓縮工具、xargs、exec、tar、xz、cpio find命令 Linux中的文件查找工具常見的有locate和find以及whereis.他們適用于不同的場合,如whereis只能用于搜索程序的二進制文件、源代碼文件和man手冊等相關文件,find和local能夠查找磁盤上的所有文件(不包括proc和sys目錄下的虛擬文件)。fin…

    Linux干貨 2016-08-18

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-07 19:14

    寫的很好,排版也很棒,加油

欧美性久久久久