网络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)
haoqiqiuzhihaoqiqiuzhi
上一篇 2016-08-22 09:29
下一篇 2016-08-22 09:29

相关推荐

  • 第四周作业(正则表达式)

    grep: Global search REgular expression and Print out the line.         作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查;打印匹配到的行;    &…

    Linux干货 2016-12-28
  • N_28正则表达式及vim编辑的一些知识

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ]# who | sort -nu | cut -d” ” -f1 2、取出最后登录到当前系统的用户的相关信息。 ]# who | tail -1 | cut -d” ” -f1 | id 3、取出当前系统上被用户当作其…

    Linux干货 2017-12-16
  • 文件权限管理–详解

    进程安全上下文 进程安全上下文:     进程对文件访问权限应用模型     进程的属主与文件的属主是否相同,如果相同则运行属主权限     进程的属主与文件的属主不相同,对比属组权限是否相同,相同则应用属组权限   &…

    Linux干货 2016-08-04
  • 第十六周作业

    1、源码编译安装LNMP架构环境;     安装nginx:      1)安装依赖包 ]# yum groupinstall “Development Tools” “Development Libraries” -y ]# yum install wget openssl-devel ncurses-de…

    2017-05-02
  • Linux三剑客之grep使用入门指南

    Linux的grep是一个具有强大功能的文本搜索工具,正确的学习和使用,能很大程度上提高工作效率,减轻运维工作所面临的压力。

    2017-09-09
  • 20160803普通权限与特殊权限及umask

    权限     任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限.即权限决定用户对文件或者目录的使用范围.在Linux系统中,root的权限是最高的,可操作的权限最大,通常情况下root账号只用于管理系统的重要信息,并不做日常维护工作,所以正确设定用户的权限对系统的安全性尤为重要. 普通权限: 文件目录只针对三类…

    Linux干货 2016-08-04

评论列表(1条)

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

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