N22-第二周作業

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

    cp復制命令:

    -i:若目標文件存在,提示是否覆蓋目標文件,此選項為已寫入alias里,使用時為默認選項

    [root@localhost ~]# ls /tmp/test/

    fstab  issue  passwd

    [root@localhost ~]# cp /etc/fstab /tmp/test/

    cp: overwrite ‘/tmp/test/fstab’? n     (輸入'y'為覆蓋,‘n’為拒絕覆蓋)

    -r:遞歸復制目錄

    [root@localhost ~]# cp -r /etc /tmp/

    [root@localhost ~]# ls /tmp/

    etc  fstab  test

    -d:若源文件為鏈接文件,則復制鏈接文件本身而非文件本身

    [root@localhost ~]# ln -s /tmp/fstab /tmp/fstab.link    (在/tmp目錄下創建文件fstab的鏈接文件fstab.link)

    [root@localhost ~]# ll /tmp    (查看源文件和鏈接文件屬性)

    total 12

    drwxr-xr-x. 76 root root 4096 Aug 20 11:57 etc

    -rw-r–r–.  1 root root  617 Aug 20 11:40 fstab

    lrwxrwxrwx.  1 root root   10 Aug 20 12:06 fstab.link -> /tmp/fstab    (第一個字符‘l’表示此文件是鏈接文件)

    drwxr-xr-x.  2 root root   43 Aug 20 11:35 test

   (不加選項‘-d’)

    [root@localhost ~]# cp /tmp/fstab.link ./ 

    [root@localhost ~]# ll

    total 12

    -rw——-. 1 root root 958 Aug  6 06:17 anaconda-ks.cfg

    -rw-r–r–. 1 root root 617 Aug 20 12:11 fstab.link    (可見復制的為源文件本身屬性,并非鏈接文件本身,因為第一字符為‘-’)

    -rw-r–r–. 1 root root  23 Aug 20 11:09 issue.txt

    (加選項‘-d’)

    [root@localhost ~]# cp -d /tmp/fstab.link ./fstab.link2

    [root@localhost ~]# ll

    total 12

    -rw——-. 1 root root 958 Aug  6 06:17 anaconda-ks.cfg

    -rw-r–r–. 1 root root 617 Aug 20 12:11 fstab.link

    lrwxrwxrwx. 1 root root  10 Aug 20 12:17 fstab.link2 -> /tmp/fstab    (復制的是鏈接文件本身屬性,并非源文件本身,第一個字符為‘l’)

    -rw-r–r–. 1 root root  23 Aug 20 11:09 issue.txt

    -p:連同文件屬性一起復制,而非使用默認屬性

    查看源文件issue屬性

    [root@localhost ~]# ll /etc/issue    

    -rw-r–r–. 1 root root 23 Dec  9  2015 /etc/issue

    不加選項-p

    [root@localhost ~]# cp /etc/issue /tmp/issue1

    [root@localhost ~]# ll /tmp/issue1

    -rw-r–r–. 1 root root 23 Aug 20 12:35 /tmp/issue1    (與源文件屬性不一樣,創建的時間變了)

    加上選項-p

    [root@localhost ~]# cp -p /etc/issue /tmp/issue2

    [root@localhost ~]# ll /tmp/issue2

    -rw-r–r–. 1 root root 23 Dec  9  2015 /tmp/issue2    (文件屬性與源文件屬性一致)

    -a:相當于‘-pdr’組合,這里就不演示了

    mv:文件或目錄移動和重命名 

    [root@localhost ~]# mv /etc/issue  /tmp/    (移動/etc/issue文件到/tmp目錄下)

    [root@localhost ~]# ll /etc/issue

    ls: cannot access /etc/issue: No such file or directory    (查詢不到/etc/issue文件信息)

    [root@localhost ~]# ll /tmp/issue

    -rw-r–r–. 1 root root 23 Dec  9  2015 /tmp/issue    (已經移動到/tmp/目錄下了)

    將/tmp/issue重命名

    [root@localhost ~]# ls /tmp/

    issue

    [root@localhost ~]# mv /tmp/issue /tmp/issue2

    [root@localhost ~]# ls /tmp/

    issue2

    補充:mv目錄時,不用加‘-r’選項

          多源移動時,最后的目標文件必須是目錄

          同時也擁有‘-i’選項,詢問是否覆蓋

    rm:刪除文件或目錄命令

    刪除/tmp目錄下的issue2文件

    [root@localhost ~]# ls /tmp/

    issue2

    [root@localhost ~]# rm /tmp/issue2

    rm: remove regular file ‘/tmp/issue2’? y    (同時選項‘-i’也是默認的)

    [root@localhost ~]# ls /tmp/

    -f:強制刪除,不會提示用戶

    強制刪除/tmp目錄下的fstab文件

    [root@localhost ~]# ls /tmp/

    fstab

    [root@localhost ~]# rm -f /tmp/fstab    (此處沒有詢問用戶是否刪除)

    [root@localhost ~]# ls /tmp

    -r:遞歸刪除目錄

    刪除/tmp/test/目錄

    [root@localhost ~]# ls /tmp/

    test

    [root@localhost ~]# rm -r /tmp/test/

    rm: remove directory ‘/tmp/test’? y

    [root@localhost ~]# ls /tmp/

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

   命令返回值狀態:

   返回值0:執行成功

   [root@localhost ~]# ll

    total 4

    -rw——-. 1 root root 958 Aug 13 07:46 anaconda-ks.cfg

   [root@localhost ~]# echo $?

    0    (返回值0)

   返回值(1-255):執行失敗

   [root@localhost ~]# ll -d /home/test

   ls: cannot access /home/test: No such file or directory

   [root@localhost ~]# echo $?

    2    (返回值1-255之間的數字)

   命令行展開:

   返回用戶主目錄

    [root@localhost ~]# cd /etc/sysconfig/network-scripts/

    [root@localhost network-scripts]# cd ~

    [root@localhost ~]# 

    在/tmp下創建test1,test2,test3目錄

    [root@localhost ~]# mkdir /tmp/{test1,test2,test3}

    [root@localhost ~]# ls /tmp

    ks-script-cR5LUy  test1  test2  test3  yum.log

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

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

    [root@localhost ~]# touch /tmp/{a_{c,d}},b_{c,d}}

    [root@localhost ~]# ls /tmp/

    a_c}  a_d}  b_c  b_d  ks-script-cR5LUy  mylinux  yum.log

 (2)創建/tmp/mylinux目錄下的:

/tmp/mylinux

├── bin

├── boot

│   └── grup

├── 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@localhost ~]# mkdir – p /tmp/mylinux/{bin,boot/grup,/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@localhost ~]# tree -d /tmp/mylinux

/tmp/mylinux

├── bin

├── boot

│   └── grup

├── 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@localhost ~]# stat /etc/passwd

    File: ‘/etc/passwd’

    Size: 1040       Blocks: 8          IO Block: 4096   regular file

    Device: fd00h/64768d Inode: 12075       Links: 1

    Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)

    Context: system_u:object_r:passwd_file_t:s0

    Access: 2016-08-14 18:12:30.456000517 -0400

    Modify: 2016-08-13 07:45:37.605912316 -0400

    Change: 2016-08-13 07:45:37.606912316 -0400

    Birth: –

    File——文件名

    Size——文件大小,默認單位(B)

    Blocks——文件所占塊的數量

    IO Block—— 文件系統的Block大小,默認單位(B)

    regular file——文本文件

    Device: fd00h/64768d——指明存儲文件的設備

    Inode: 12075 ——文件的inode值

    Links: 1——文件被硬鏈接的數量

    Access: (0644/-rw-r–r–)——文件的訪問權限

    Uid: (    0/    root)——文件所有者

    Gid: (    0/    root)——文件所屬組 

    Access: 2016-08-14 18:12:30.456000517 -0400——文件最近的訪問時間

    Modify: 2016-08-13 07:45:37.605912316 -0400——文件最近的修改時間

    Change: 2016-08-13 07:45:37.606912316 -0400——文件屬性最近的改變時間

修改文件的時間戳信息:

    先查看test文件當前時間戳信息:

    [root@localhost ~]# stat ./test

    Access: 2016-08-15 11:19:03.849323742 -0400

    Modify: 2016-08-15 11:19:03.849323742 -0400

    Change: 2016-08-15 11:19:03.849323742 -0400

    修改test文件的atime時間戳:

    [root@localhost ~]# touch -a –date="2004-10-08 13:23:45" ./test

    再查看test文件的狀態:

    [root@localhost ~]# stat ./test

    Access: 2004-10-08 13:23:45.000000000 -0400  (時間修改為上面命令里指定的時間)

    Modify: 2016-08-15 11:19:03.849323742 -0400

    Change: 2016-08-15 11:34:58.463263349 -0400

    修改test文件的mtime時間戳:

    [root@localhost ~]#  touch -m –date="2005-09-15 10:20:23" ./test

    查看一下:

    [root@localhost ~]# stat ./test

    Access: 2004-10-08 13:23:45.000000000 -0400

    Modify: 2005-09-15 10:20:23.000000000 -0400   (時間已改變)

    Change: 2016-08-15 11:47:10.994217005 -0400

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

    定義命令別名:alias命令

    定義‘lld’為‘ls -ld’命令的別名

    [root@localhost ~]# alias "lld=ls -ld"

    [root@localhost ~]# lld /etc

    drwxr-xr-x. 76 root root 8192 Aug 15 09:27 /etc

    在命令中引用另一個命令的執行結果

    進入當前內核的模塊目錄:

    [root@localhost ~]# cd /lib/modules/$(uname -r)/kernel/

    [root@localhost kernel]# pwd

    lib/modules/3.10.0-327.el7.x86_64/kernel

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

    [root@localhost ~]# ls /var/l*[0-9]*[a-z]

    ls: cannot access /var/l*[0-9]*[a-z]: No such file or directory

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

    [root@localhost ~]# ls /etc/[0-9]*[^[:digit:]]

    ls: cannot access /etc/[0-9]*[^[:digit:]]: No such file or directory

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

    [root@localhost ~]# ls /etc/[^[:alpha:]][[:alpha:]]*

    ls: cannot access /etc/[^[:alpha:]][[a-z]]*: No such file or directory

九.在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件

    [root@localhost ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)

    [root@localhost ~]# ls /tmp

    ks-script-cR5LUy  mylinux  tfile-2016-08-15-13-41-55  tfile-2016-08-15-13-42-31  yum.log

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

    [root@localhost ~]# mkdir /tmp/mytest1

    [root@localhost ~]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1

    [root@localhost ~]# ls /tmp/mytest1

    pam.d  passwd  passwd-  pki  plymouth  pm  popt.d  postfix  ppp  prelink.conf.d  printcap  profile  profile.d      protocols  python

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

    [root@localhost ~]# mkdir /tmp/mytest2

    [root@localhost ~]# cp -r /etc/*.d /tmp/mytest2

    [root@localhost ~]# ls /tmp/mytest2

    bash_completion.d  cron.d     dracut.conf.d  ld.so.conf.d  modules-load.d  popt.d          rc0.d  rc3.d  rc6.d         rwtab.d     sysctl.d    yum.repos.d        binfmt.d           depmod.d   grub.d           logrotate.d   my.cnf.d           prelink.conf.d  rc1.d  rc4.d  rc.d        statetab.d  tmpfiles.d    chkconfig.d        dnsmasq.d  init.d                    modprobe.d       pam.d     profile.d       rc2.d  rc5.d  rsyslog.d     sudoers.d   xinetd.d

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

    [root@localhost ~]# mkdir /tmp/mytest3

    [root@localhost ~]# cp -r /etc/[l,m,n]*.conf /tmp/mytest3

    [root@localhost ~]# ls /tmp/mytest3

    ld.so.conf  libaudit.conf  libuser.conf  locale.conf  logrotate.conf  man_db.conf  mke2fs.conf  nsswitch.conf

    

    

  

 

        

    

   

 

        

   

  

 

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

(0)
heianyangguoheianyangguo
上一篇 2016-08-20
下一篇 2016-08-20

相關推薦

  • Net22-第一周作業-linux基礎知識

    1、描述計算機的組成及其功能。    計算機硬件由五大部件組成,分別是運算器、控制器、存儲器、輸入和輸出設備組成。 其中,運算器和控制器合稱為cpu,接受指令,加工數據。 存儲器又分為內存和外存(硬盤、U盤等等),這里指的是內存,給cpu提供數據和指令。 輸入設備對數據進行輸入,如鼠標,鍵盤等。 輸出設備對計算結果進行顯示或者打印等,如顯…

    Linux干貨 2016-08-22
  • TCP三次握手與四次揮手

                                                      &nbsp…

    2017-09-04
  • N25-第6周

    vim:    模式化的編輯器        基本模式:            編輯模式,命令模式,            輸入模式       &n…

    Linux干貨 2017-02-13
  • 計算機運維基礎知識 Linux版

    計算機系統由硬件系統和軟件系統組成 第一代計算機   電子管時代 第二代計算機   晶體管時代 第三代計算機   集成電路時代 第四代計算機   大規模集成電路時代 1964年,世界第一代計算機ENICA。用來計算彈道軌跡。 馮諾依曼  計算機之父 運算器,控制器,存儲器,輸入設備,輸出設備。 巨型計算機,大…

    Linux干貨 2016-08-04
  • 第九周

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現;   1 #!/bib/bash   2 #   3 a=0   4 x=0   5 y=…

    Linux干貨 2017-05-25
  • vim編輯器

    vim基礎的認識

    2017-11-26

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-22 14:07

    寫的很好,排版還可以在漂亮一點,加油,3大題2小題在看看原題的要求

欧美性久久久久