N26—第二周博客作业

一、Linux常用管理命令

    1、cp命令:复制

        cp 源文件 目标文件

[root@localhost ~]# cp /etc/fstab /tmp
cp: overwrite ‘/tmp/fstab’? y

    如果目标文件中存在同名的文件,将会提示你是否覆盖,按下“y”键则覆盖。

[root@localhost ~]# cp /etc/vimrc /etc/fstab /etc/exports /tmp/

    此命令为复制多个文件到指定目录,其中/tmp/为目标文件

[root@localhost ~]# cp -r /etc/ /tmp/cc/

    此命令为递归复制,意思就是讲/etc/目录下的所有文件,以及子目录里的文件全部复制到/tmp/cc/ 目录之下。

命令一:lrwxrwxrwx.  1 root root       14 Dec 22 18:01 system-release -> centos-release
命令二:[root@localhost ~]# cp /etc/system-release /tmp/aa/
命令三:[root@localhost ~]# ls -l /tmp/aa/
-rw-r--r--. 1 root root 38 Jan  6 07:20 system-release

    此命令为复制符号链接所指向的源文件到目录/tmp/aa目录下,通过命令三查看system-release的属性前面没有标注l(l代表此文件为软连接)

命令一:[root@localhost ~]# cp -d /etc/system-release /tmp/aa/
命令二:[root@localhost ~]# ll /tmp/aa/
total 0
lrwxrwxrwx. 1 root root 14 Jan  6 07:22 system-release -> centos-release

    此命令为复制符号链接,而非文件的本身,通过命令二查看,此文件属性前有l参数,并且文件名字后面有指向源文件的符号标识"->"

    2、mv命令:移动命令

        mv 源文件 目标文件

[root@localhost ~]# mv aaa /tmp/

将文件aaa移动到/tmp目录下,此时工作目录中已经没有aaa这个文件

命令一:[root@localhost ~]# mv aaa /tmp/
mv: overwrite ‘/tmp/aaa’? 
命令二:[root@localhost ~]# mv aaa -f /tmp/

当目标文件中存在与源文件相同的文件名时,会提示是否覆盖该文件,如命令一所示;此时,如果在命令中加上-f参数则不会提示是否覆盖而是直接覆盖,如命令二所示。

    

    3、rm命令:删除命令

    rm 路径名/文件名

rm后接路径名可直接删除该文件,删除时会提示你是否删除,加上-f参数则不会提示,加上-rf参数则会删除该目录下所有文件以及子目录所有的文件。

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

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

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

           命令一: [root@localhost tmp]# ~
            -bash: /root: Is a directory
            
           命令二:[user1@localhost tmp]$ ~
            -bash: /home/user1: Is a directory

        命令一展示的为root用户的家目录:/root;命令二展示的为user1用户的家目录:/home/user1

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

例如:/tmp/{a,b} 相当于/tmp/a /tmp/b

root@localhost tmp]# ls -l /tmp/{aaa,bbb}
/tmp/aaa:
total 0

/tmp/bbb:
total 0

    此命令分别列出了/tmp/aaa目录和/tmp/bbb目录下的信息。

    2、bash的基础特性:命令的执行状态结果

命令执行的状态结果:

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

成功:0

失败:1-255

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

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

命令一:[root@localhost tmp]# touch 111
[root@localhost tmp]# echo $?
0

命令二:[root@localhost tmp]# ls 222
ls: cannot access 222: No such file or directory
[root@localhost tmp]# echo $?
2

命令三:
[root@localhost tmp]# cp 222
cp: missing destination file operand after ‘222’
Try 'cp --help' for more information.
[root@localhost tmp]# echo $?
1

        命令一为正常执行,返回值为0.命令二和命令三为执行错误,返回值分别为2和1.

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

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

[root@localhost tmp]# touch {a_,b_}{c,d}
[root@localhost tmp]# ls -l
total 0
-rw-r--r--. 1 root root 0 Jan  6 07:58 a_c
-rw-r--r--. 1 root root 0 Jan  6 07:58 a_d
-rw-r--r--. 1 root root 0 Jan  6 07:58 b_c
-rw-r--r--. 1 root root 0 Jan  6 07:58 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@localhost tmp]# mkdir -pv /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}}

命令二:
root@localhost tmp]# tree /tmp/
/tmp/
└── mylinux
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │       └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   ├── bin
    │   ├── local
    │   └── sbin
    └── var
        ├── lock
        ├── log
        └── run

25 directories, 0 files

    命令一为建造目录的命令,命令二为测试输出的结果。

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

任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode…)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。

[root@localhost tmp]# stat aaa
  File: ‘aaa’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 137         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-01-06 08:13:50.820953499 -0500
Modify: 2017-01-06 08:13:50.820953499 -0500
Change: 2017-01-06 08:13:50.820953499 -0500
 Birth: -

根据stat命令来查看元数据信息;

[root@localhost tmp]# touch -at 1011142221 aaa
[root@localhost tmp]# stat aaa
  File: ‘aaa’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 137         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2010-11-14 22:21:00.000000000 -0500
Modify: 2017-01-06 08:34:02.258938821 -0500
Change: 2017-01-06 08:46:13.858929957 -0500
 Birth: -

仅修改aaa文件访时间戳的访问时间为10年14号22点21

[root@localhost tmp]# touch -mt 1411142221 aaa
[root@localhost tmp]# stat aaa
  File: ‘aaa’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 137         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2010-11-14 22:21:00.000000000 -0500
Modify: 2014-11-14 22:21:00.000000000 -0500
Change: 2017-01-06 08:47:58.272928692 -0500
 Birth: -

仅修改aaa文件的最近改动时间为2014年11月14日22点21分

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

   1、定义命令的别名

    alias 别名='命令'

[root@localhost tmp]# alias mm='rm /tmp/*'
[root@localhost tmp]# ls /tmp/
0811142234.50  101142234  12:11       22:21:48  bbb  mylinux
0911142234.50  11         2016-12-24  aaa       ddd  oct
[root@localhost tmp]# mm
rm: remove regular empty file ‘/tmp/0811142234.50’? y
rm: remove regular empty file ‘/tmp/0911142234.50’? y
rm: remove regular empty file ‘/tmp/101142234’? y
rm: remove regular empty file ‘/tmp/11’? y
rm: remove regular empty file ‘/tmp/12:11’? y
rm: remove regular empty file ‘/tmp/2016-12-24’? y
rm: remove regular empty file ‘/tmp/22:21:48’? y
rm: remove regular empty file ‘/tmp/aaa’? y
rm: remove regular empty file ‘/tmp/bbb’? y
rm: remove regular empty file ‘/tmp/ddd’? y
rm: cannot remove ‘/tmp/mylinux’: Is a directory
rm: remove regular empty file ‘/tmp/oct’? y

 定义mm为命令'rm /tmp/*'命令的别名,执行mm命令时等于执行'rm /tmp/*'命令

       

    2、通过`命令`能引用命令执行的结果

[root@localhost tmp]# echo `cat /etc/fstab`
# # /etc/fstab # Created by anaconda on Thu Dec 22 18:00:27 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 # /dev/mapper/centos-root / xfs defaults 0 0 UUID=7ee15b3b-c6b1-4fb6-88d4-442348105d29 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sdb1 /mydata ext4 noatime,noexec 0 0

此命令为在屏幕输出'cat /etc/fstab'的执行结果

六、var目录下以l开头,中间有数字,小写字母结尾的文件或目录

[root@localhost tmp]# ls -ld /var/l*[1-9]*[a-z]
-rw-r--r--. 1 root root 0 Jan  6 09:22 /var/l123aafa
-rw-r--r--. 1 root root 0 Jan  6 09:16 /var/l2a

七、/etc目录下以任意数字开头,非数字结尾的目录或文件

[root@localhost tmp]# ls -ld /etc/[1-9]*[![:digit:]]
-rw-r--r--. 1 root root 0 Dec 26 02:25 /etc/123a

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

[root@localhost tmp]# ls -ld /etc/[^[:alpha:]][:alpha:]*
-rw-r--r--. 1 root root 0 Jan  6 09:42 /etc/1a555

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

[root@localhost tmp]# touch tfile-`date +%F-%H-%M-%S`
[root@localhost tmp]# ls -l /tmp
total 0
-rw-r--r--. 1 root root 0 Jan  6 09:49 tfile-2017-01-06-09-49-37

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

[root@localhost tmp]# cp -rd /etc/p*[^[:digit:]] /tmp/mytest1/
[root@localhost tmp]# ls -l /tmp/mytest1/
total 56
drwxr-xr-x. 2 root root 4096 Jan  6 09:57 pam.d
-rw-r--r--. 1 root root 3450 Jan  6 09:57 passwd
-rw-r--r--. 1 root root 3407 Jan  6 09:57 passwd-
-rw-r--r--. 1 root root 1362 Jan  6 09:57 pbm2ppa.conf
-rw-r--r--. 1 root root 2872 Jan  6 09:57 pinforc
drwxr-xr-x. 9 root root   91 Jan  6 09:57 pki
drwxr-xr-x. 2 root root   27 Jan  6 09:57 plymouth
drwxr-xr-x. 5 root root   49 Jan  6 09:57 pm
-rw-r--r--. 1 root root 6300 Jan  6 09:57 pnm2ppa.conf
drwxr-xr-x. 2 root root    6 Jan  6 09:57 popt.d
drwxr-xr-x. 2 root root 4096 Jan  6 09:57 postfix
drwxr-xr-x. 3 root root 4096 Jan  6 09:57 ppp
drwxr-xr-x. 2 root root  101 Jan  6 09:57 prelink.conf.d
-rw-r--r--. 1 root root  233 Jan  6 09:57 printcap
-rw-r--r--. 1 root root 1750 Jan  6 09:57 profile
drwxr-xr-x. 2 root root 4096 Jan  6 09:57 profile.d
-rw-r--r--. 1 root root 6545 Jan  6 09:57 protocols
drwxr-xr-x. 2 root root   75 Jan  6 09:57 pulse
drwxr-xr-x. 2 root root   22 Jan  6 09:57 purple
drwxr-xr-x. 2 root root   34 Jan  6 09:57 python

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

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

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

[root@localhost tmp]# 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

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

(0)
lafengjinzilafengjinzi
上一篇 2017-01-06
下一篇 2017-01-06

相关推荐

  • 关于文件权限管理了解和使用

                    文件权限管理   文件属性格式              文件属性操作 chown          设置文件的所有者…

    系统运维 2016-08-05
  • M20-1 8月5日 文本查看工具以及文本处理工

    一、文本查看工具:  cat,tac,rev cat用法:cat [option]..[FILE]..   cat选项:    -E:显示行结束符$    -n:对显示出的每一行进行编号    -A:显示所有控制符    -b:非空行编号   &nb…

    Linux干货 2016-08-08
  • 重定向、管道——Linux基本命令(9)

    1.     输出重定向 Linux默认输入是键盘,输出是显示器。可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,可以直接把一个已经写好的文件用‘<’指向这条命令,就直接可以统计这个文件的字符数等了。   STDOUT(标准输出)和STDERR(标准错误)可以被重…

    2017-07-20
  • 常用RAID级别浅析

    简介:    RAID为独立冗余磁盘阵列的简称,它可以通过软件或硬件技术把多个较小的磁盘整合成一个较大的磁盘。从而实现较大的 磁盘存储,容错及数据保护功能,较快的数据读写等功能. 实现方式:      硬件实现方式:通过bios参数调整来实现      软件实…

    2017-06-17
  • Mariadb数据库备份恢复系列(三):xtrabackup物理备份工具之增量备份

       实验三:利用xtrabackup+二进制日志实现增量备份和恢复数据库 本例中实现的是将所有的增量日志都通过apply-log的步骤同步到完全备份文件中,如果希望利用增量日志还原到固定某次增量备份的数据,则不能使用本例中方式对所有的备份都进行apply-log操作,如果希望利用增量日志还原到固定哪次增量备份的数据,则将最初的完全备份的数据、和期望还原到某…

    Linux干货 2016-11-24
  • 马哥教育网络班20期-第四周课程作业

    Table of Contents 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/h…

    Linux干货 2016-06-26

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-02 19:51

    非常的棒,继续加油。