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

相关推荐

  • 第五天03条件判断与循环

           选择执行     选择执行:注意:if语句可嵌套                           单分支       &n…

    Linux干货 2016-08-18
  • grep与正则表达式

    grep与正则表达式 grep与正则表达式 grep 正则表达式 grep 使用语法:grep [-abcEFGhHilLnqrsvVwxy][-C<显示列数>][-e<范本样式>][-f<范本文件>][范本样式][文件或目录…]  功能说明:查找指定文件或标准输入里符合条件的字符串 常用选项 -a…

    Linux干货 2016-11-05
  • Linux程序包管理

    Linux程序包管理 RPM包基础 RPM YUM 编译安装 概述 Linux上的程序包管理,是我们的必备技能,本文将从三个视角:rpm、yum、源码编译来浅析Linux的程序包管理。首先,我们来看下本文的主要内容: – 程序包的命名- RPM: 程序包管理器    安装、卸载、升级、查询…

    Linux干货 2016-08-29
  • 马哥Linux第二周学习笔记

    文件管理,用户管理,权限管理

    Linux干货 2017-12-23
  • 编程语言编年史

          我们都知道,编程语言是一组用来定义计算机程序的语法规则。它是一种被标准化的交流语言,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。之所以有那么多种不同的编程语言存在的原因是…

    Linux干货 2017-03-30
  • N25-第1周博客作业

    计算机概述及命令 一、计算机原理及其组成功能 计算机作为一个整体,由软件和硬件两大部分组成:  (1)计算机硬件系统。        计算机的硬件系统结构有哈佛结构和冯·诺伊曼结构两种。 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内…

    Linux干货 2016-12-03

评论列表(1条)

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

    非常的棒,继续加油。