馬哥教育網絡班21期+第2周課程練習

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

    文件管理類命令:pwd,cd,ls,mkdir,rmdir,tree

1、目錄相關命令:pwd,cd

(1)查看用戶當前工作目錄:pwd

例:

[root@zabbix ~]# pwd   #COMMAND 回車
/root           #顯示出當前工作的目錄

(2)cd用法

cd 或者cd ~:回當前用戶的主目錄

例:
[root@zabbix ~]# cd /home/  #進入home目錄
[root@zabbix home]# cd ~    #cd ~回當前用戶的主目錄
[root@zabbix ~]# pwd        #顯示當前用戶工作主目錄命令
/root

cd ~USERNAME :切換至指定用戶的主目錄

例:
[root@zabbix ~]# useradd zabbix #添加一個新用戶
[root@zabbix ~]# su zabbix        #切換至指定用戶
[zabbix@zabbix root]$ pwd        #顯示當前用戶工作主目錄命令
/root                            #雖然是/root但是普通用戶無法在/root下讀寫,只能切換至/home/USERNAME目錄下。

cd  -:在上一個目錄和當前目錄之間來回切換

例:
[root@zabbix ~]# cd /home/        #切換至指定用戶
[root@zabbix home]# cd -        #切換到上一個目錄
/root                    
[root@zabbix ~]# cd -            #切換到上一個目錄
/home

.:當前目錄

例:
[root@zabbix home]# pwd    #顯示出當前工作的目錄
/home
[root@zabbix home]# cd .    #切換當前目錄         
[root@zabbix home]# pwd        #顯示出當前工作的目錄
/home

..:上一個目錄

例:
[root@zabbix ~]# cd /etc/yum.repos.d/ #切換至/etc/yum.repos.d/目錄
[root@zabbix yum.repos.d]# pwd           #顯示當前工作目錄
/etc/yum.repos.d
[root@zabbix yum.repos.d]# cd ..    #切換到上一個目錄
[root@zabbix etc]# pwd                #顯示當前工作目錄
/etc

                       

2、ls:list 顯示指定路徑下的文件列表

用法:ls [OPTION]… [DIR]…
-a ,all :顯示所有文件,包括隱藏文件
例:

[root@zabbix ~]# ls -a   #不加任何路徑顯示當前目錄下的所有文件,包括隱藏文件(點開頭的文件為隱藏文件)
.         .esd_auth        install.log         .Xauthority
..         .gconf           install.log.syslog 
.abrt       .gconfd          .local              
anaconda-ks.cfg   .gnome2          .mozilla            
.bash_history   .gnome2_private  .mysql_history      
.bash_logout    .gnote           .nautilus           
.bash_profile   .gnupg           .pulse              
.bashrc      .gstreamer-0.10  .pulse-cookie       
.cache       .gtk-bookmarks   .ssh                
.config      .gvfs            .tcshrc
.cshrc       .ICEauthority    .viminfo
.dbus       .imsettings.log  .vnc

-l:長格式,

[root@zabbix ~]# ls -l #顯示長格式的文件,包
例:
總用量 100
-rw-------. 1 root root  1452 6月  21 14:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 46478 6月  21 14:01 install.log
-rw-r--r--. 1 root root 10033 6月  21 13:57 install.log.syslog

-h    –humman-readable:單位換算

例:
[root@zabbix ~]# ls -lh  #可看到單位轉換
總用量 100K
-rw-------. 1 root root 1.5K 6月  21 14:01 anaconda-ks.cfg
-rw-r--r--. 1 root root  46K 6月  21 14:01 install.log
-rw-r--r--. 1 root root 9.8K 6月  21 13:57 install.log.syslog

-d: 顯示目錄自身的相關屬性;通常是與-l一起使用

例:
[root@zabbix ~]# ls -d            
.
[root@zabbix ~]# ls -ld    #顯示/root目錄本身情況
dr-xr-x---. 28 root root 4096 6月  27 10:09 .

-r,–reverse:逆序顯示

例:
[root@zabbix ~]# ls -l  #正常排序
總用量 100
-rw-------. 1 root root  1452 6月  21 14:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 46478 6月  21 14:01 install.log
-rw-r--r--. 1 root root 10033 6月  21 13:57 install.log.syslog
[root@zabbix ~]# ls -lr #逆排序
總用量 100
-rw-r--r--. 1 root root 10033 6月  21 13:57 install.log.syslog
-rw-r--r--. 1 root root 46478 6月  21 14:01 install.log
-rw-------. 1 root root  1452 6月  21 14:01 anaconda-ks.cfg

-R,–recursive :遞歸

例:
[root@zabbix ~]# ls  -lR /home/  #顯示遞歸
/home/:
總用量 4
drwx------. 4 zabbix zabbix 4096 6月  27 09:57 zabbix
/home/zabbix:
總用量 0

3、mkdir 創建文件夾

用法:mkdir [OPTION]… DIRECTORY…
-p, –parents 如果已存在文件夾不會報錯,且如果已存在相同文件夾名則不會作任何提示

例:
[root@zabbix ~]# mkdir /tmp/test  #沒有帶參數建立一個文件夾
[root@zabbix ~]# mkdir /tmp/test  #沒有帶參數重新建立一個相同文件夾
mkdir: 無法創建目錄"/tmp/test": 文件已存在    #報錯誤
[root@zabbix ~]# mkdir -p /tmp/test #無報錯

 -v, –verbose 顯示創建時消息

 例:
[root@zabbix ~]# mkdir -v /tmp/test2 #創建test2加-v會出現創建消息
mkdir: 已創建目錄 "/tmp/test2"

花括號展開命令:

例:
[root@zabbix ~]# mkdir -p -v /tmp/{x,y}_{a,b}#使用花括號創建文件目錄
mkdir: 已創建目錄 "/tmp/x_a"
mkdir: 已創建目錄 "/tmp/x_b"
mkdir: 已創建目錄 "/tmp/y_a"
mkdir: 已創建目錄 "/tmp/y_b"

4、rmdir 移除文件命令 (只能刪除空的文件夾,如有文件無法刪除)

rmdir [OPTION]… DIRECTORY…
-v –verbose,顯示刪除時信息

例:
[root@zabbix ~]# rmdir -v /tmp/test2 #刪除一個空的文件夾
rmdir: 正在刪除目錄 "/tmp/test2"

-p, –parents 移除空的文件夾(非空目錄無法刪除)

例:
[root@zabbix ~]# ll /tmp/  #顯示/tmp下所有目錄
總用量 32
drwxr-xr-x. 2 root root 4096 6月  27 15:45 x_a
drwxr-xr-x. 2 root root 4096 6月  27 15:32 x_a.txt
drwxr-xr-x. 2 root root 4096 6月  27 15:45 x_b
drwxr-xr-x. 2 root root 4096 6月  27 15:32 x_b.txt
drwxr-xr-x. 2 root root 4096 6月  27 15:45 y_a
drwxr-xr-x. 2 root root 4096 6月  27 15:32 y_a.txt
drwxr-xr-x. 2 root root 4096 6月  27 15:45 y_b
drwxr-xr-x. 2 root root 4096 6月  27 15:32 y_b.txt
[root@zabbix ~]# rmdir -p -v /tmp/{x,y}_{a,b} #刪除/tmp下花括號展開的空目錄
rmdir: 正在刪除目錄 "/tmp/x_a"
rmdir: 正在刪除目錄 "/tmp"
rmdir: 刪除目錄 "/tmp" 失敗: 目錄非空
rmdir: 正在刪除目錄 "/tmp/x_b"
rmdir: 正在刪除目錄 "/tmp"
rmdir: 刪除目錄 "/tmp" 失敗: 目錄非空
rmdir: 正在刪除目錄 "/tmp/y_a"
rmdir: 正在刪除目錄 "/tmp"
rmdir: 刪除目錄 "/tmp" 失敗: 目錄非空
rmdir: 正在刪除目錄 "/tmp/y_b"
rmdir: 正在刪除目錄 "/tmp"
rmdir: 刪除目錄 "/tmp" 失敗: 目錄非空

5、tree:顯示樹狀格式目錄的內容

用法:tree [option]…[directory …]
-d:只顯示目錄

例:
[root@zabbix ~]# mkdir -p /tmp/test/test1  #在/tmp下創建兩個目錄
[root@zabbix ~]# cp /etc/fstab /tmp/test/test1/ #復制/etc/fstab文件到/tmp/test/test1/下
[root@zabbix ~]# tree /tmp/ #沒有帶數時顯示/tmp下所有目錄和文件
/tmp/
└── test
    └── test1
        └── fstab
2 directories, 1 file
[root@zabbix ~]# tree -d /tmp/  #帶參數-d則顯示test,test1兩個目錄
/tmp/
└── test
    └── test1
2 directories

-L level 指定顯示的層級數目

例:
[root@zabbix ~]# tree -L 2 /tmp/ #指定顯示第二層的目錄和文件
[root@zabbix ~]# tree -L 2 /tmp/
/tmp/
└── test
    ├── fstab
    ├── passwd
    └── test1
2 directories, 2 files

-P pattern 只顯示由指定pattern匹配到的路徑;
例:

[root@zabbix ~]# tree -P /tmp
.
├── \345\205\254\345\205\261\347\232\204
├── \346\250\241\346\235\277
├── \350\247\206\351\242\221
├── \345\233\276\347\211\207
├── \346\226\207\346\241\243
├── \344\270\213\350\275\275
├── \351\237\263\344\271\220
└── \346\241\214\351\235\242
8 directories, 0 files

6、文件管理命令:cat,tac,more,less,tail,head
(1)cat:顯示連續的文件內容
cat [OPTION]… [FILE]…

例:
[root@zabbix ~]# cat /tmp/test/fstab 
#
# /etc/fstab
# Created by anaconda on Tue Jun 21 13:40:50 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=909f7903-9d00-4b31-ac57-52756e978e75 /                       ext4    defaults        1 1
UUID=0efeb056-4b43-40f2-8be1-0135ce8c9544 /boot                   ext4    defaults        1 2
UUID=fd109fb9-4c5c-44d1-ac75-9ad22dff3c60 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

-E:顯示行結束符$

例:
[root@zabbix ~]# cat -E /tmp/test/fstab 
$
#$
# /etc/fstab$
# Created by anaconda on Tue Jun 21 13:40:50 2016$
#$
# Accessible filesystems, by reference, are maintained under '/dev/disk'$
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info$
#$
UUID=909f7903-9d00-4b31-ac57-52756e978e75 /                       ext4    defaults        1 1$
UUID=0efeb056-4b43-40f2-8be1-0135ce8c9544 /boot                   ext4    defaults        1 2$
UUID=fd109fb9-4c5c-44d1-ac75-9ad22dff3c60 swap                    swap    defaults        0 0$
tmpfs                   /dev/shm                tmpfs   defaults        0 0$
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0$
sysfs                   /sys                    sysfs   defaults        0 0$
proc                    /proc                   proc    defaults        0 0$

-n:對顯示出的每一行進行編號

例:
[root@zabbix ~]# cat -n /tmp/test/fstab 
     1    
     2    #
     3    # /etc/fstab
     4    # Created by anaconda on Tue Jun 21 13:40:50 2016
     5    #
     6    # Accessible filesystems, by reference, are maintained under '/dev/disk'
     7    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
     8    #
     9    UUID=909f7903-9d00-4b31-ac57-52756e978e75 /                       ext4    defaults        1 1
    10    UUID=0efeb056-4b43-40f2-8be1-0135ce8c9544 /boot                   ext4    defaults        1 2
    11    UUID=fd109fb9-4c5c-44d1-ac75-9ad22dff3c60 swap                    swap    defaults        0 0
    12    tmpfs                   /dev/shm                tmpfs   defaults        0 0
    13    devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
    14    sysfs                   /sys                    sysfs   defaults        0 0
    15    proc                    /proc                   proc    defaults        0 0

(2)tac 從文件尾部行向首行讀取內容

例:
[root@zabbix ~]# tac /tmp/test/fstab 
proc                    /proc                   proc    defaults        0 0
sysfs                   /sys                    sysfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
UUID=fd109fb9-4c5c-44d1-ac75-9ad22dff3c60 swap                    swap    defaults        0 0
UUID=0efeb056-4b43-40f2-8be1-0135ce8c9544 /boot                   ext4    defaults        1 2
UUID=909f7903-9d00-4b31-ac57-52756e978e75 /                       ext4    defaults        1 1
#
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
# Accessible filesystems, by reference, are maintained under '/dev/disk'
#
# Created by anaconda on Tue Jun 21 13:40:50 2016
# /etc/fstab
#

參數同cat用法一樣。
(3)more: 從首部向尾部查看文件內容
用法:more [OPTION] FILE…
-d:顯示翻頁及退出提示

(4)less:多次的more從首部向尾部查看文件內容
用法:less [OPTIONS…] FILE…

(5)head:從文件首部行向尾部行讀取內容
用法:head [OPTION]… [FILE]…
-c #:指定獲取前#字節

例:
[root@zabbix ~]# head -c 100 /tmp/test/fstab
#
# /etc/fstab
# Created by anaconda on Tue Jun 21 13:40:50 2016
#
# Accessible filesystems, by ref[root@zabbix ~]#

-n #:指定獲取前#行

例:
[root@zabbix ~]# head -n 10 /tmp/test/fstab 
#
# /etc/fstab
# Created by anaconda on Tue Jun 21 13:40:50 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=909f7903-9d00-4b31-ac57-52756e978e75 /                       ext4    defaults        1 1
UUID=0efeb056-4b43-40f2-8be1-0135ce8c9544 /boot                   ext4    defaults        1 2

(6)tail:從文件內容尾部行行尾開始向首部行讀取內容
用法:tail [OPTION]… [FILE]…
-c #:指定獲取后#字節

例:
[root@zabbix ~]# cat /tmp/test/fstab 
#
# /etc/fstab
# Created by anaconda on Tue Jun 21 13:40:50 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=909f7903-9d00-4b31-ac57-52756e978e75 /                       ext4    defaults        1 1
UUID=0efeb056-4b43-40f2-8be1-0135ce8c9544 /boot                   ext4    defaults        1 2
UUID=fd109fb9-4c5c-44d1-ac75-9ad22dff3c60 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
[root@zabbix ~]# tail -c 10 /tmp/test/fstab 
      0 0

-n #:指定獲取后#行

例:
[root@zabbix ~]# tail -n 10 /tmp/test/fstab 
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=909f7903-9d00-4b31-ac57-52756e978e75 /                       ext4    defaults        1 1
UUID=0efeb056-4b43-40f2-8be1-0135ce8c9544 /boot                   ext4    defaults        1 2
UUID=fd109fb9-4c5c-44d1-ac75-9ad22dff3c60 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

-f:跟蹤顯示文件新追加的內容(此例可自己演示)

文件的時間戳管理工具:stat,touch

(1)stat 查看文件目錄或者文件狀態(包括訪問時間,修改時間,改變時間)
用法:stat [OPTION]… FILE…

例
[root@zabbix ~]# stat /tmp/test/fstab #文件
  File: "/tmp/test/fstab"
  Size: 805           Blocks: 8          IO Block: 4096   普通文件
Device: 802h/2050d    Inode: 2752519     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-06-29 09:30:52.535140726 +0800  #訪問時間戳
Modify: 2016-06-29 09:30:20.475144278 +0800     #修改時間戳
Change: 2016-06-29 09:30:20.475144278 +0800  #改變時間戳
[root@zabbix ~]# stat /tmp/test/     #目錄
  File: "/tmp/test/"
  Size: 4096          Blocks: 8          IO Block: 4096   目錄
Device: 802h/2050d    Inode: 2752515     Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-06-29 09:03:51.072146521 +0800
Modify: 2016-06-27 16:04:21.000000000 +0800
Change: 2016-06-29 03:50:04.148174081 +0800

(2)touch 改變時間戳時間
touch [OPTION]… FILE…
-a:only atime    #改變訪問時間
-m :only mtime    #改變修改時間
-t STAMP:    #設置時間點
        [[CC]YY]MMDDhhmm[.ss]
-c:如果文件不存在,則不創建

文件管理:cp,mv,rm

(1)cp 復制文件和文件目錄
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…

cp SRC DEST
SRC是文件
   如果目標不存在:新建DEST,并將SRC中內容填充至DEST中:
   如果目錄存在
    如果DEST 是文件 將SRC中的內容覆蓋至DEST中,此時建議為cp命令使用-i 選項:
    如果DEST 是目錄:在DEST下新建與原文件同名的文件,并將SRC中內容填充 至新文件中
        cp SRC … DEST
                SRC…:多個文件                
                    DEST必須存在,且為目錄,其它情形均會出錯;
        cp SRC  DEST
                SRC 是目錄
                    此時使用選項 -r

                    如果DEST不存在:則創建指定目錄,復制SRC目錄中所有文件至DEST中;
                    如果DEST存在:
                        如果 DEST是文件:報錯
                        如果DEST是目錄:
常用選項 :
-i:交互式(覆蓋時會提示)
例:
[root@zabbix ~]# cp /etc/networks /tmp/
[root@zabbix ~]# cp -i /etc/networks /tmp/
cp:是否覆蓋"/tmp/networks"?      #會提示文件覆蓋

-r,-R:遞歸復制目錄及內部的所有內容

例:
[root@zabbix ~]# cp -r /etc /tmp/
root@zabbix ~]# tree -d /tmp/etc/
/tmp/etc/
├── abrt
│   └── plugins
├── acpi
│   ├── actions
│   └── events
├── alsa
...

-a:歸檔,相當于-dR,–preserv=all
-d,–no-dereference –preserv=links
–preserv[=ATTR_LIST]
        mode:權限
        ownershi:屬主屬組
        timestamp:
        links
        xattr
        context
        all
-p:–preserv=mode,ownership,timestamp
-v:–verbose

例:
[root@zabbix ~]# cp -v /etc/fstab /tmp/test2  #顯示復制/etc/fstab變名為/tmp/test2
"/etc/fstab" -> "/tmp/test2"

 
(2)mv 移動(剪切)文件或目錄
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv  [OPTION]… -t DIRECTORY SOURCE…
常用選項:
-i:交互式
-f:強制

例:
[root@zabbix ~]# mv -ifv /tmp/test2 /tmp/test3/
"/tmp/test2" -> "/tmp/test3/test2"
[root@zabbix ~]# ls -l /tmp/test3/test2 
-rw-r--r--. 1 root root 805 6月  29 14:45 /tmp/test3/test2

(3)rm 移除(刪除)文件或目錄
rm [OPTION]… FILE…
常用選項:
-i:交互式
-f:強制刪除
-r:遞歸

例:
[root@zabbix ~]# rm -vrf /tmp/test3/*
已刪除"/tmp/test3/yp.conf"
已刪除"/tmp/test3/yum/pluginconf.d/fastestmirror.conf"
已刪除"/tmp/test3/yum/pluginconf.d/security.conf"
已刪除"/tmp/test3/yum/pluginconf.d/refresh-packagekit.conf"
已刪除目錄:"/tmp/test3/yum/pluginconf.d"
已刪除目錄:"/tmp/test3/yum/protected.d"
已刪除"/tmp/test3/yum/vars/infra"
已刪除目錄:"/tmp/test3/yum/vars"
已刪除"/tmp/test3/yum/version-groups.conf"
已刪除目錄:"/tmp/test3/yum"
已刪除"/tmp/test3/yum.conf"
已刪除"/tmp/test3/yum.repos.d/CentOS-Media.repo"
已刪除"/tmp/test3/yum.repos.d/CentOS-Debuginfo.repo"
已刪除"/tmp/test3/yum.repos.d/CentOS-Vault.repo"
已刪除"/tmp/test3/yum.repos.d/CentOS-fasttrack.repo"
已刪除"/tmp/test3/yum.repos.d/CentOS-Base.repo.bak"
已刪除目錄:"/tmp/test3/yum.repos.d"
...

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


命令的執行結果狀態:成功  或者 失敗
bash使用特殊變量$?保存最近一條命令的執行狀態結果;
0:成功
1-255:失敗
程序執行有兩類結果:程序的返回值 或 程序的執行狀態結果

例1:
[root@zabbix ~]# cat /etc/fstab  #讀取文件成功
#
# /etc/fstab
# Created by anaconda on Tue Jun 21 13:40:50 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=909f7903-9d00-4b31-ac57-52756e978e75 /                       ext4    defaults        1 1
UUID=0efeb056-4b43-40f2-8be1-0135ce8c9544 /boot                   ext4    defaults        1 2
UUID=fd109fb9-4c5c-44d1-ac75-9ad22dff3c60 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
[root@zabbix ~]# echo $?   #顯示執行結果
0
例2:
[root@zabbix ~]# cat /etc/fstabss  #讀取文件失敗
cat: /etc/fstabss: 沒有那個文件或目錄
[root@zabbix ~]# echo $?  #顯示失敗的返回值
1

命令行展開
~:展開為用戶的主目錄
~USERNAME:展開為指定用戶的主目錄

例:
[root@zabbix ~]# useradd test
[root@zabbix ~]# cd ~test
[root@zabbix test]# pwd
/home/test

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

例:
[root@zabbix test]# touch /tmp/{a,b}
[root@zabbix test]# ll /tmp/
總用量 32
-rw-r--r--.   1 root root     0 6月  29 15:08 a
-rw-r--r--.   1 root root     0 6月  29 15:08 b
drwxr-xr-x. 119 root root 12288 6月  28 03:38 etc
-rw-r--r--.   1 root root    58 6月  29 14:38 networks
drwxr-xr-x.   3 root root  4096 6月  29 14:36 test
drwxr-xr-x.   3 root root 12288 6月  29 14:57 test3

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

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

[root@zabbix test]# touch /tmp/{a,b}_{c,d}
[root@zabbix test]# ll /tmp/
總用量 0
-rw-r--r--. 1 root root 0 6月  29 15:09 a_c
-rw-r--r--. 1 root root 0 6月  29 15:09 a_d
-rw-r--r--. 1 root root 0 6月  29 15:09 b_c
-rw-r--r--. 1 root root 0 6月  29 15:09 b_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

[root@zabbix test]# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-srcipts},lib/modules,lib64,proc,sbin,sys,tmp,usr/lcoal/{bin,sbin},var/{lock,log,run}}
[root@zabbix test]# tree /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-srcipts
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── lcoal
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run

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

File:  #文件名稱
Size: #文件大小           
Blocks: #文件塊大小          
IO Block: 4096 #IO 塊大小  
指名是文件或目錄
Device:#設備信息
Inode: #inode號   
Links: 鏈接數
Access: 訪問時間戳
Modify:修改時間戳
Change:改變時間戳
使用stat 查看元數據信息,使用touch修改文件時間戳

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

命令別名(alias)

    通過alias命令實現:
            (1)alias
                顯示當前shell進程所有可用的命令別名;
            (2)alias NAME='VALUE'
                定義別名NAME,其相當于執行命令VALUE;
            注意:在命令行中定義的別名,僅對當前shell進程有產;如果想永久有效,需要配置文件
                僅對當前用戶有效:~/.bashrc
                對所有用戶有效:/etc/bashrc
                Note:編輯配置給出的新配置不會立即生效;
                bash進程重新讀取配置文件:
                    source /path/to/config_file
                    . /path/to/config_file
        撤消別名:unalias
            unalias [-a] name [name ...]
        Note:如果別名同原命令的名稱,則如果要執行原命令,可使用"\COMMAND"

        

通過管道命令引用另一個命令的執行結果
COMMAND1 | COMMAND2 | COMMAND3 …

例:
[root@zabbix ~]# cat /etc/passwd | head -n 10 #讀取文件中/etc/passwd 后顯示前10行后前10行后
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

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

 [root@zabbix ~]#ls /var/l*[0-9]*[[:lower:]]

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

[root@zabbix ~]#ls /etc/[0-9]*[^0-9]

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

[root@zabbix ~]#ls /etc/[^a-z][a-z]*

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

[root@zabbix ~]# touch /tmp/tfile-`date +%F-%H-%M-%S`

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

[root@zabbix ~]#mkdir -p /tmp/mytest1
[root@zabbix ~]#cp -rf /etc/p*[^0-9] /tmp/mytest1

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

[root@zabbix ~]#mkdir -p /tmp/mytest2
[root@zabbix ~]#cp -rf /etc/*.d /tmp/mytest2

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

[root@zabbix ~]#mkdir -p /tmp/mytest3
[root@zabbix ~]#cp -rf /etc/[l,m,n]*.conf /tmp/mytest3

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

(0)
Net21_LionNet21_Lion
上一篇 2016-07-04 11:27
下一篇 2016-07-04 11:27

相關推薦

  • http協議基礎(一)

    web服務:      Apache      Nginx      LVS      http協議 網站運維:      web站點      游戲網站web服務 高性能,高可用…

    Linux干貨 2017-04-18
  • bash腳本變量的使用

    bash腳本的變量使用詳解 變量的類型包括整數、字符串和數組,但在bash腳本編程中不需要指定類型就可以直接賦值,默認均為字符型,其參與運算會自動進行隱式類型轉換。 變量的賦值方式為:name='value',其中“=”兩邊一定不能有空格,如果變量值中包含有空格則需要使用引號引起來,需要注意的是強引用和弱引用的區分。此外變量的賦值也可以引…

    Linux干貨 2016-08-15
  • 第三周博客作業 net18期超子

    # 第三周博客作業      net18期超子 # 1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 who | cut -d" "  -f1 | sort -u 2、取出最后登錄到當前系統的用戶的相關信息。 lastlog -t 1 | head -n 2…

    2016-07-16
  • 基于NFS服務的mariadb數據庫實現

    實驗要求:     (1) nfs server導出/data/目錄;     (2) nfs client掛載/data/至本地的/mydata目錄;本地的mysqld或mariadb服務的數據目錄設置為/mydata, 要求服務能正常啟動,且可正常 存儲數據;   (3)用另一臺主機,…

    2017-06-11
  • 馬哥教育網絡班21期+第1周課程練習

    一、描述計算機的組成及其功能。 如圖, 計算機由五大部件組成(輸入設備,存儲器,控制器,運算器,輸出設備),其上層是操作系統,操作系統上運行應用程序(一般情況,也有可以直接運行在硬件上的應用程序,操作系統就是這樣的一款特殊應用程序)。 用戶通過輸入設備,輸入想要計算機執行的程序指令,操作系統通過中斷機制檢測到輸入設備的操作,讓控制器去控制后續的指令和數據流。…

    2016-07-12
  • 高級文件系統管理之磁盤配額及RAID的運用

    本章內容 設定文件系統配額 設定和管理軟RAID設備 一,概述 配置配額系統: 綜述 在內核中執行 以文件系統為單位啟用 磁盤配額最小單位是以文件系統為單位啟用,就是一個掛載點,而不能以目錄為單位 對不同組或者用戶的策略不同 根據塊或者節點進行限制 執行軟限制(soft limit) 硬限制(hard limit) 初始化 分區掛載選項:usrquota、g…

    Linux干貨 2016-09-07

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-04 13:43

    寫的很好,可以多關注一下排版問題,加油

欧美性久久久久