网络N22期-第二周作业

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

常用文件管理类命令有cp、mv、rm。

# cp命令:文件复制命令

    cp [OPTION]… [-T] SOURCE DEST 单文件复制

    cp [OPTION]… SOURCE… DIRECTORY 多源文件复制

    cp [OPTION]… -t DIRECTORY SOURCE… 多源文件复制的另一种方式

常用选项:

    -i:交互之前提醒用户确认

    -f:强行覆盖

    -r:递归复制目录;即复制文件及目录

    -d:复制链接文件本身,而非复制其链接的源文件

    -a:相当于 –drarchive用于实现归档

    –preserv=

             Mode:权限

             Ownetship:属主和属组

             Timestamps:时间戳

             Xattr:扩展属性

             Links:符号链接

             All:上述所有属性

单文件复制演示:

[root@localhost ~]# cp /var/log/boot.log /tmp/copytest/
[root@localhost ~]# ls /tmp/copytest/
boot.log

多源复制演示:

[root@localhost ~]# cp /var/log/{btmp,dmesg} /tmp/copytest
[root@localhost ~]# ls /tmp/wangxg
 boot.log btmp dmesg

# mv命令:文件移动或文件重命名命令

    如果目标文件在同一目录则重命名,反之则移动文件。

    mv [OPTION]… [-T] SOURCE DEST

    mv [OPTION]… SOURCE… DIRECTORY

    mv [OPTION]… -t DIRECTORY SOURCE…

   常用选项:(没有-r选项,自身就带有-r功能)

    -i:交互式;

     -f:force

移动演示:

[root@localhost tmp]# mv a.txt ./test
[root@localhost tmp]# ls ./test
a.txt

#rm命令:文件删除命令

    rm [OPTION] [file…]

常用选项: 

    -r:递归删除

    -f:强制删除

删除演示

[root@localhost ~]# rm -rf /tmp/log/

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

命令执行的状态结果:

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

          成功:0

          失败:1-255

     命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;(echo $? 只能返回最近一次命令的返回值)

     命令正常执行时,有的还回有命令返回值:根据命令及其功能不同,结果各不相同;

     引用命令的执行结果:

          $(COMMAND)

         或`COMMAND`(反引号)

    示例

[root@localhost tmp]# mkdir test1
[root@localhost tmp]# echo $?
0
[root@localhost tmp]# mkdir test1
mkdir: cannot create directory ‘test1’: File exists
[root@localhost tmp]# echo $?
1

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

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

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

示例

[root@localhost tmp]# mkdir /tmp/test/{a,b}
[root@localhost tmp]# ls /tmp/test
a  b

3、请使用命令行展开功能来完成以下练习:

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

   (2)创建/tmp/mylinux目录下的

mylinux
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── local
│   ├── bin
│   └── sbin
├── proc
├── sbin
├── sys
├── tmp
├── usr
└── var
    ├── lock
    ├── los
    └── run

[root@localhost tmp]# mkdir /tmp/{a,b}_{c,d}
[root@localhost tmp]# ls /tmp
a_c
a_d
b_c
b_d
[root@localhost tmp]# mkdir -p /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,los,run}}[root@localhost tmp]# tree /tmp/mylinux
/tmp/mylinux
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── local
│   ├── bin
│   └── sbin
├── proc
├── sbin
├── sys
├── tmp
├── usr
└── var
    ├── lock
    ├── los
    └── run

24 directories, 0 files

4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

元数据包含信息:

    access time:访问时间,简写为atime,读取文件内容

    modify time: 修改时间, mtime,改变文件内容(数据)

    change time: 改变时间, ctime,元数据发生改变

查看方式:

    stat – display file or file system status(显示文件或文件系统的状态)   

示例

[root@localhost tmp]# stat /tmp
  File: ‘/tmp’
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 917505      Links: 61
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:tmp_t:s0
Access: 2016-08-18 23:28:54.938103787 +0800
Modify: 2016-08-18 23:36:47.413110055 +0800
Change: 2016-08-18 23:36:47.413110055 +0800
 Birth: -

修改文件的时间戳信息:

    touch [OPTION]… FILE…

    -c: 指定的文件路径不存在时不予创建;

-a: 仅修改access time;

-m:仅修改modify time;

-t STAMP(改为指定时间)

  [[CC]YY]MMDDhhmm[.ss]

示例

[root@localhost tmp]# touch -a 2014-10-12 12:21:36 /tmp/test
[root@localhost tmp]# stat /tmp/test
  File: ‘/tmp/test’
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 917620      Links: 4
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2016-08-18 23:49:10.259119910 +0800
Modify: 2016-08-18 23:26:10.544101606 +0800
Change: 2016-08-18 23:49:10.259119910 +0800
 Birth: -
[root@localhost tmp]# man touch
[root@localhost tmp]# touch -a -t 1410122321.30 /tmp/test
[root@localhost tmp]# stat /tmp/test
  File: ‘/tmp/test’
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d	Inode: 917620      Links: 4
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2014-10-12 23:21:30.000000000 +0800
Modify: 2016-08-18 23:26:10.544101606 +0800
Change: 2016-08-18 23:54:24.504124079 +0800
 Birth: -

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

(1)alias命令用于定义命令别名

    获取所有可用别名的定义:

    ~]# alias

定义别名:

~]# alias NAME='COMMAND'

  注意:仅对当前shell进程有效

撤销别名:

~]# unalias NAME

示例

[root@localhost tmp]# alias cls=clear
[root@localhost tmp]# alias
alias cls='clear'
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost tmp]# unalias cls
[root@localhost tmp]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

注意:仅在当前shell进程有效!)即:有时间限定、有位置限制

永久有效设置方法:写入文件内。

文件类型一:仅对当前用户有效~/.bashrc

文件类型二:对所有用户有效:/etc/bashrc

需要重新读取配置文件生效:source /.bashrc或者./.bashrc

(2)命令引用方法

$(COMMAND)

或者‘COMMAND’

6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)

[root@localhost ~]# ls /var/l*[[:digit:]]*[[:lower:]]

7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

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

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

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

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

[root@localhost ~]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
[root@localhost ~]# ls /tmp/tfile*
/tmp/tfile-2016-08-19-00-20-19

10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中

[root@localhost ~]# cp -rf /etc/p*[^[:digit:]] /tmp/mytest1
[root@localhost ~]# ls /tmp/mytest1/
pam.d    pbm2ppa.conf  plymouth      popt.d   prelink.conf.d  profile.d  purple
passwd   pinforc       pm            postfix  printcap        protocols  python
passwd-  pki           pnm2ppa.conf  ppp      profile         pulse

11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

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

12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

[root@localhost ~]# cp /etc/[lmn]*.conf /tmp/mytest3
[root@localhost ~]# ls /tmp/mytest3
ld.so.conf     libuser.conf  logrotate.conf  mke2fs.conf  nfsmount.conf  ntp.conf
libaudit.conf  locale.conf   man_db.conf     mtools.conf  nsswitch.conf  numad.conf

原创文章,作者:haoqiqiuzhi,如若转载,请注明出处:http://www.178linux.com/37480

(0)
上一篇 2016-08-22 09:29
下一篇 2016-08-22 09:29

相关推荐

  • 文件查找命令(find、locate)

    在文件系统上查找符合条件的文件: 实现工具:locate, find locate: 依赖于事先构建好的索引库; 系统自动实现(周期性任务); 手动更新数据库(updatedb); 工作特性: 查找速度快; 模糊查找; 非实时查找; locate [OPTION]… PATTERN… -b:只匹配路径中的基名; -c:统计出共有多少个符合条件的文件;…

    Linux干货 2016-11-06
  • 实战keepalived高可用集群解决方案

    Keepalived定义      Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免单点故障。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给…

    2017-05-16
  • linux基础学习之进程管理和任务计划

    内容:   进程相关概念(用户空间、内核空间,进程、线程)   进程及系统相关工具(ps、top、pgrep、pidof、kill)   调整nice值(nice、renice)   作业管理(jobs、fg、bg、kill,&)   计划任务(at、crontab) 一、进程相关概念 内核的功用:进…

    Linux干货 2016-09-07
  • 一起学DNS系列(十五)DNS查询工具之NSLOOKUP的使用

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/259092    上一节里我们讨论了有关DIG工具的用法,本节将对windows下nslookup工具的一些主要命令进行描述。  …

    2015-03-17
  • Javascript 装载和执行

    一两个月前在淘宝内网里看到一个优化Javascript代码的竞赛,发现有不少的人对Javascript的执行和装载的基础并不懂,所以,从那天起我就想写一篇文章,但一直耽搁了。自上篇《浏览器渲染原理简介》,正好也可以承前启后。 首先,我想说一下Javascript的装载和执行。通常来说,浏览器对于Javascript的运行有两大特性:1)载入后马上执行,2)执…

    Linux干货 2016-07-10
  • N25期–第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; fdisk /dev/sda n p 2 enter +10G w partx -a /dev/sda (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; mke2fs -t ext4 -…

    Linux干货 2017-02-20

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-22 14:15

    写的很好,排版也很棒,加油,3大题2小题跟要求不一样