马哥教育-第二周作业

问题一:文件管理类命令

常规命令:mkdir、rmdir、stat、touch、copy、mv、rm

(1).mkdir  创建目录:

注意:路径基名方为命令的作用对象;基名之前的路径必须得存在;

-p:自动按需创建父目录;

-v:显示创建过程;

-m 参数:直接给定所需权限;

例子:问题:创建 /tmp/x ; /tmp/x/y1 ; /tmp/x/y1/a ; /tmp/x/y1/b ; /tmp/x/y2

[root@localhost ~]# mkdir -pv /tmp/x/{y1/{a,b},y2}

mkdir: created directory `/tmp/x'

mkdir: created directory `/tmp/x/y1'

mkdir: created directory `/tmp/x/y1/a'

mkdir: created directory `/tmp/x/y1/b'

mkdir: created directory `/tmp/x/y2'

[root@localhost ~]# tree /tmp/x

/tmp/x

|– y1

| |– a

| `– b

`– y2

 

(2).rmdir  仅用于删除空目录

-p:删除某目录后,如果其父目录为空,则一并删除之;

例子:删除空目录 testdir

[root@localhost ~]# rmdir testdir

 

(3).stat  查看文件状态

例子:查看目录 x 的信息

[root@localhost tmp]# stat x

文件: `x'

大小: 4096 块: 8 IO 块: 4096 目录

设备: fd00h/64768d Inode: 622755 硬链接: 4

权限: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

最近访问: 2016-11-22 23:26:19.000000000 +0800

最近更改: 2016-11-22 20:30:04.000000000 +0800

最近改动: 2016-11-22 20:30:04.000000000 +0800

 

[root@localhost tmp]# stat x

File: `x'

Size: 4096 Blocks: 8 IO Block: 4096 directory

Device: fd00h/64768d Inode: 622755 Links: 4

Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2016-11-22 23:26:19.000000000 +0800

Modify: 2016-11-22 20:30:04.000000000 +0800

Change: 2016-11-22 20:30:04.000000000 +0800

 

(4).touch  更改元数据信息

用法:

改变access(最近访问时间)和modify(最近更改时间)两个时间。

touch file:把三个时间都改为此刻的时间。

-a:只改访问时间(access);

-m:只改修改时间(modified);

-t:指定时间;

例子:修改文件b的元数据,三个时间戳都相同

[root@localhost ~]# stat b

  File: `b'

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

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

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

Access: 2016-12-11 09:21:57.000000000 +0800

Modify: 2016-11-24 10:24:18.000000000 +0800

Change: 2016-11-24 10:24:18.000000000 +0800

[root@localhost ~]# touch b

[root@localhost ~]# stat b

  File: `b'

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

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

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

Access: 2016-12-11 09:22:24.000000000 +0800

Modify: 2016-12-11 09:22:24.000000000 +0800

Change: 2016-12-11 09:22:24.000000000 +0800

 

(5).copy 文件复制

用法:

注意:复制文件只是复制文件的数据而不是元数据,但是可以保留元数据的信息。

单源复制:目录是否存在都可以

多源复制:目录必须是存在的

-i:提醒用户操作确认

-f:强行覆盖

-r:递归复制目录

-p:保留源数据

-a:用于实现归档,做备份

–preserv=

mode:权限

ownership:属主和属组

timestamps:时间戳

context:安全标签

xattr:扩展属性

links:符号链接

all:上述所有属性

例子1:复制单个文件

[root@localhost ~]# cp /etc/issue /root/test1

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 4

-rw-r–r– 1 root root 74 Dec 11 09:37 issue

例子2:复制多个文件

[root@localhost ~]# cp a.sh b.sh c.sh /root/test1

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 16

-rwxr-xr-x 1 root root 199 Dec 11 09:39 a.sh

-rw-r–r– 1 root root  64 Dec 11 09:39 b.sh

-rwxr-xr-x 1 root root  91 Dec 11 09:39 c.sh

-rw-r–r– 1 root root  74 Dec 11 09:37 issue

例子3:复制目录

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

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 20

-rwxr-xr-x 1 root root  199 Dec 11 09:39 a.sh

-rw-r–r– 1 root root   64 Dec 11 09:39 b.sh

-rwxr-xr-x 1 root root   91 Dec 11 09:39 c.sh

drwxr-xr-x 6 root root 4096 Dec 11 09:42 gconf

-rw-r–r– 1 root root   74 Dec 11 09:37 issue

 

(6).mv 移动或者重命名

例子:

[root@localhost test1]# ll

-rw-r–r– 1 root root   74 Dec 11 09:37 issue

[root@localhost test1]# mv issue issue.20161211

[root@localhost test1]# ll

-rw-r–r– 1 root root   74 Dec 11 09:37 issue.20161211

 

(7).rm:删除

-r:递归删除目标目录下的文件

-f:强制删

 

问题二:bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示

1.  bash的基础特性:命令的执行状态结果

bash通过状态返回值来输出此结果;

成功:0

失败:1-255

命令执行完成之后,其状态返回值保存于bash的特殊变量$中

eg

[root@localhost ~]# echo $?

0

[root@localhost ~]# echo $?

2

注意:命令正常执行时,有的还会有命令返回值。

引用命令的执行结果:

$(command)或'command'

eg

[root@localhost ~]# mkdir $(date +%H-%M-%S)

[root@localhost ~]# echo $?

0

[root@localhost ~]# ls

21-09-03

注:上述就是把date命令的返回值作为参数给了 mkdir 命令。

2.  bash的基础特性之:命令行展开

~:自动展开为用户的家目录,或指定的用户的家目录;

{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;

eg

创建 /tmp/x ; /tmp/x/y1 ; /tmp/x/y1/a ; /tmp/x/y1/b ; /tmp/x/y2

[root@localhost ~]# mkdir -pv /tmp/x/{y1/{a,b},y2}

mkdir: created directory `/tmp/x'

mkdir: created directory `/tmp/x/y1'

mkdir: created directory `/tmp/x/y1/a'

mkdir: created directory `/tmp/x/y1/b'

mkdir: created directory `/tmp/x/y2'

[root@localhost ~]# tree /tmp/x

/tmp/x

|– y1

| |– a

| `– b

`– y2

 

问题三:使用命令行展开完成以下练习

1.  创建/tmp目录下的:a_c,a_d,b_c,b_d

Eg

[root@localhost ~]# ls /tmp/     

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

[root@localhost ~]# ls /tmp/

a_c  a_d  b_c  b_d

2. 创建/tmp/mylinux下的目录结构

[root@localhost ~]# mkdir /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}} -pv

mkdir: 已创建目录 "/tmp/mylinux"

mkdir: 已创建目录 "/tmp/mylinux/bin"

mkdir: 已创建目录 "/tmp/mylinux/boot"

mkdir: 已创建目录 "/tmp/mylinux/boot/grub"

mkdir: 已创建目录 "/tmp/mylinux/dev"

mkdir: 已创建目录 "/tmp/mylinux/etc"

mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"

mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"

mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"

mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig/network-scripts"

mkdir: 已创建目录 "/tmp/mylinux/lib"

mkdir: 已创建目录 "/tmp/mylinux/lib/modules"

mkdir: 已创建目录 "/tmp/mylinux/lib64"

mkdir: 已创建目录 "/tmp/mylinux/proc"

mkdir: 已创建目录 "/tmp/mylinux/sbin"

mkdir: 已创建目录 "/tmp/mylinux/sys"

mkdir: 已创建目录 "/tmp/mylinux/tmp"

mkdir: 已创建目录 "/tmp/mylinux/usr"

mkdir: 已创建目录 "/tmp/mylinux/usr/local"

mkdir: 已创建目录 "/tmp/mylinux/usr/bin"

mkdir: 已创建目录 "/tmp/mylinux/usr/sbin"

mkdir: 已创建目录 "/tmp/mylinux/var"

mkdir: 已创建目录 "/tmp/mylinux/var/lock"

mkdir: 已创建目录 "/tmp/mylinux/var/log"

mkdir: 已创建目录 "/tmp/mylinux/var/run"

 

问题四:文件的元数据信息有哪些,分别表示什么含义

文件有两种数据

元数据:只是文件自身的属性信息。

数据:文件内容本身。

 

问题五:如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果

命令别名:alias

eg:

[root@localhost ~]# alias

alias cp='cp -i'

alias l.='ls -d .* –color=tty'

alias ll='ls -l –color=tty'

alias ls='ls –color=tty'

定义别名:

alias 原命令=别名命令,但是这个是临时的

撤销别名:

unalias 别名

永久定义别名:定义在~/.bashrc或者/etc/bashrc

 

命令练习: 

1.显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现一位任意字符的文件或目录;

[root@localhost ~]# ls -d /var/l?[[:lower:]]

[root@localhost ~]# ls -d /var/l?[[:lower:]]

/var/lib /var/log

[root@localhost ~]# cd /var

[root@localhost var]# ls -d l?[[:lower:]]

lib log

注意:-d 的参数是只列出目录。

2.显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;

[root@localhost etc]# ls -d [[:digit:]]*[^[:digit:]]

3ab23y

[root@localhost etc]# ls -d [0-9]*[^0-9]

3ab23y

3.显示/etc目录下,以非字母开头,后面跟一个字母及其它任意长度任意字符的文件或目录;

[root@localhost etc]# ls -d [0-9][a-z]*

2fdsafsf

4.复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/xuef目录;

[root@localhost etc]# cp -r m*[^0-9] /tmp/xuef

[root@localhost etc]# cd /tmp/xuef

[root@localhost xuef]# ls

mail makedev.d mgetty+sendfax mke2fs.conf modprobe.d mtools.conf

mailcap man.config mime.types modprobe.conf motd multipath.conf

mail.rc maven minicom.users modprobe.conf~ mtab

5.复制/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件或目录至/tmp/man/目录下;

[root@localhost ~]# cp -r /usr/share/man/man[0-9] /tmp/man

[root@localhost man]# du -sh

25M

6.复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/man目录下;

[root@localhost man]# cp -r /etc/[mnrp]*.conf /tmp/xuef

7. 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名如tfile-2016-05-26-08-32-22

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

 

 

 

原创文章,作者:N25-笔头,如若转载,请注明出处:http://www.178linux.com/63177

(0)
上一篇 2016-12-11 10:03
下一篇 2016-12-11 10:41

相关推荐

  • Linux文件和目录管理

    Linux目录和文件管理 Linux文件信息详述 文件数据存储在块中 文件元数据存储在inode中 文件名和其对应的inode号码存储在目录项中 数据块的概念: 文件在硬盘上的最小存储单位叫做扇区,1扇区=512字节,操作系统读取硬盘的时候不会一个一个读,这样太慢,会一次连续读多个扇区,即一个读取一个“块”,常见的 1块=八个扇区=4kB inode的概念:…

    Linux干货 2016-11-04
  • Linux磁盘配额

    磁盘配额 什么是磁盘配额? 磁盘配额(Quota)是Linux系统中由于是多用户、多任务的环境,所以会有多用户共同使用一个硬盘空间的情况发生,如果其中少数几个用户大量占掉了磁盘空间的话,那肯定影响其他用户的使用权限。因此我们就需要对每个用户限制硬盘使用空间,来避免此种情况的发生,这就是磁盘配额。 Quota的一般用途: *针对WWW server,例如:每个…

    Linux干货 2016-09-01
  • linux 怎么使用帮助

    linux怎么使用帮助 Which命令 whatis命令 使用手册来获取帮助-man命令 通过info命令查看帮助 使用软件自带的帮助文档来获取帮助 通过在线文档获取帮助 使用网站和搜索 linux 怎么使用帮助 在linux中有很多命令,配置文件,很多命令选项和参数,我们不可能完全记住的,那工作中遇到怎么办,我们可以查看linux自带的帮助文档,或者利用搜…

    Linux干货 2016-09-05
  • Shell编程 详解特殊变量之位置参数

    今天我们来探讨shell编程的特殊变量:位置变量。 首先我创建了一个testargs.sh的小脚本: #!/usr/bin/env bash # # Author: jacky18676887374@aliyun.com # date: 20160813-19:30:59 # Vervion:&nb…

    Linux干货 2016-08-15
  • 自制一个简易linux

    虚拟机添加一块新的硬盘(大小自定义) 在磁盘上创建一个基本分区作为/boot分区(大小200M足够) 再创建一个基本分区作为基本根分区(这里我指定给了5G大小) 然后给分区创建文件系统(注;swap分区要使用mkswap命令) ]# mkdir /mnt/boot 创建挂载点(因为grub只识别/boot目录,所以要创建boot目录) ]# mount /d…

    Linux干货 2016-09-21
  • 编译安装dropbear

    ssh协议的另一个实现:dropbear 编译安装dropbear [root@centos6 ~]# tar xf dropbear-2013.58.tar.bz2  [root@centos6 ~]# cd dropbear-2013.58 [root@centos6&nbs…

    Linux干货 2016-09-28

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 15:53

    总结的很详细~能用markdown格式化输出会更好~加油。