博客作业-N22第二周

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

答:

cp 复制文件

[root@localhost network-scripts]# cp ifcfg-eno16777736 ifcfg-eno.bak

[root@localhost network-scripts]# ls

ifcfg-eno16777736  ifdown-post      ifup-eth     ifup-sit

ifcfg-eno.bak      ifdown-ppp       ifup-ib      ifup-Team

ifcfg-lo           ifdown-routes    ifup-ippp    ifup-TeamPort

ifdown             ifdown-sit       ifup-ipv6    ifup-tunnel

ifdown-bnep        ifdown-Team      ifup-isdn    ifup-wireless

ifdown-eth         ifdown-TeamPort  ifup-plip    init.ipv6-global

ifdown-ib          ifdown-tunnel    ifup-plusb   network-functions

ifdown-ippp        ifup             ifup-post    network-functions-ipv6

ifdown-ipv6        ifup-aliases     ifup-ppp

ifdown-isdn        ifup-bnep        ifup-routes

mv  移动或重命名

[root@localhost network-scripts]# mv ifcfg-eno.bak /root/

[root@localhost network-scripts]# ls /root

1                ifcfg-eno.bak         mysystem  模板  图片  下载  桌面

anaconda-ks.cfg  initial-setup-ks.cfg  公共      视频  文档  音乐

rm  删除文件 ·

[root@localhost ~]# rm -rf /

rm: 在"/" 进行递归操作十分危险

rm: 使用 –no-preserve-root 选项跳过安全模式

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

命令执行状态返回值内容和示例:通过返回值来判断输出结果是否成功,返回值为0则成功,非0则失败(1-255)

例如:挂载光盘到/mnt目录

[root@localhost ~]# mount /dev/cdrom /mmnt

mount: 挂载点 /mmnt 不存在

[root@localhost ~]# echo $?

32

###

返回值为非0,失败

[root@localhost ~]# mount /dev/cdrom /mnt

mount: /dev/sr0 写保护,将以只读方式挂载

[root@localhost ~]# echo $?

0

###

返回值为0,成功

命令行展开:在root家目录创建 

/root/mysystem/

|– bin

|– etc

|   `– sysconfig

|       `– network-scripts

|– sbin

|– usr

|   |– bin

|   |– lib

|   |– lib64

|   |– local

|   |   |– bin

|   |   |– etc

|   |   |– lib

|   |   `– sbin

|   `– sbin

`– var

     |– cache

     |– log

                

[root@localhost ~]# mkdir -pv mysystem/{bin,etc/sysconfig/network-scripts,sbin,usr/{bin,lib,lib64,local/{bin,etc,lib,sbin},sbin},var/{cache,log}}

mkdir: 已创建目录 "mysystem"

mkdir: 已创建目录 "mysystem/bin"

mkdir: 已创建目录 "mysystem/etc"

mkdir: 已创建目录 "mysystem/etc/sysconfig"

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

mkdir: 已创建目录 "mysystem/sbin"

mkdir: 已创建目录 "mysystem/usr"

mkdir: 已创建目录 "mysystem/usr/bin"

mkdir: 已创建目录 "mysystem/usr/lib"

mkdir: 已创建目录 "mysystem/usr/lib64"

mkdir: 已创建目录 "mysystem/usr/local"

mkdir: 已创建目录 "mysystem/usr/local/bin"

mkdir: 已创建目录 "mysystem/usr/local/etc"

mkdir: 已创建目录 "mysystem/usr/local/lib"

mkdir: 已创建目录 "mysystem/usr/local/sbin"

mkdir: 已创建目录 "mysystem/usr/sbin"

mkdir: 已创建目录 "mysystem/var"

mkdir: 已创建目录 "mysystem/var/cache"

mkdir: 已创建目录 "mysystem/var/log"

[root@localhost ~]# tree /root/mysystem

/root/mysystem

├── bin

├── etc

│   └── sysconfig

│       └── network-scripts

├── sbin

├── usr

│   ├── bin

│   ├── lib

│   ├── lib64

│   ├── local

│   │   ├── bin

│   │   ├── etc

│   │   ├── lib

│   │   └── sbin

│   └── sbin

└── var

    ├── cache

    └── log

18 directories, 0 files

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

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

[root@localhost ~]# mkdir -pv /tmp/{a_c,a_d,b_c,b_d}

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

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

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

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

[root@localhost ~]# tree /tmp

/tmp

├── a_c

├── a_d

├── anaconda.log

├── b_c

├── b_d

├── hogsuspend

├── hsperfdata_root

├── hsperfdata_zhouchenming

├── ifcfg.log

├── ks-script-cDx2Fd

├── packaging.log

├── program.log

├── sensitive-info.log

├── ssh-Dl5iJSKqllmA

│   └── agent.3372

├── storage.log

├── systemd-private-964ff6c7e72046388caf9c6e002e207e-colord.service-05E8Y3

│   └── tmp

├── systemd-private-964ff6c7e72046388caf9c6e002e207e-cups.service-SWcuSl

│   └── tmp

├── systemd-private-964ff6c7e72046388caf9c6e002e207e-rtkit-daemon.service-1y0FzG

│   └── tmp

├── systemd-private-964ff6c7e72046388caf9c6e002e207e-vmtoolsd.service-stzVyR

│   └── tmp

│       └── vmware-root

├── tracker-extract-files.0

├── tracker-extract-files.1000

├── yum.log

└── yum_save_tx.2016-08-20.09-13.c8w99O.yumtx

18 directories, 11 files

 

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

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

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/local/bin"

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

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

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

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

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

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

/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

24 directories, 0 files

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

文件的元数据有文件明、大小、块、IO块、设备权限、UID、GID、环境、最近访问、最近更改和最近改动,创建时间

使用stat命令查看时间戳信息,修改时间戳使用touch命令

修改时间戳,例如:

[root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-eno16777736  /tmp/1

[root@localhost ~]# stat 1

  文件:"1"

  大小:0         块:0          IO 块:4096   普通空文件

设备:fd00h/64768d Inode:207658590   硬链接:1

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

环境:unconfined_u:object_r:admin_home_t:s0

最近访问:2016-08-20 13:58:34.684521722 +0800

最近更改:2016-08-20 13:58:34.684521722 +0800

最近改动:2016-08-20 13:58:34.684521722 +0800

创建时间:-

修改文件1的modify time时间为2011年12月2日4时22分  

例如:

[root@localhost ~]# touch -t 1112020422 1

[root@localhost ~]# stat 1

  文件:"1"

  大小:0         块:0          IO 块:4096   普通空文件

设备:fd00h/64768d Inode:207658590   硬链接:1

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

环境:unconfined_u:object_r:admin_home_t:s0

最近访问:2011-12-02 04:22:00.000000000 +0800

最近更改:2011-12-02 04:22:00.000000000 +0800

最近改动:2016-08-20 14:07:12.228713850 +0800

创建时间:-

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

使用alias命令定义别名

[root@localhost ~]# alias stop=cp

[root@localhost ~]# alias 

alias cp='cp'

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 stop='cp'

alias which='alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde'

在命令中引用另一个命令的执行结果

[root@localhost ~]# touch tfile$(date +%b-%h-%m-%s)

[root@localhost ~]# ls

anaconda-ks.cfg  initial-setup-ks.cfg  tfile8月-8月-08-1471686677  公共  模板  视频  图片  文档  下载  音乐  桌面

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

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

/var/lib  /var/log

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

[root@localhost ~]# ls -d /etc/?[^0-9]

/etc/hp  /etc/pm

[root@localhost ~]# ls -d /etc/?[^[:digit:]]

/etc/hp  /etc/pm

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

[root@localhost ~]# ls -d /etc/[^a-z][a-z]*

/etc/1yky2y

[root@localhost ~]# ls -d /etc/[^[:alpha:]]*[a-z]

/etc/1yky2y

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

[root@localhost tmp]# touch tfile$(date +%Y-%m-%H-%M-%S)

[root@localhost tmp]# ll

总用量 168

-rw-r–r–.  1 root         root           1828 8月  19 08:48 anaconda.log

prw——-.  1 root         root              0 8月  20 09:17 hogsuspend

drwxr-xr-x.  2 root         root              6 8月  20 09:20 hsperfdata_root

drwxr-xr-x.  2 zhouchenming zhouchenming      6 8月  19 08:48 hsperfdata_zhouchenming

-rw-r–r–.  1 root         root              0 8月  19 08:43 ifcfg.log

-rwx——.  1 root         root            827 8月  19 08:36 ks-script-cDx2Fd

drwxr-xr-x. 14 root         root           4096 8月  20 17:33 mylinux

-rw-r–r–.  1 root         root              0 8月  19 08:43 packaging.log

-rw-r–r–.  1 root         root              0 8月  19 08:43 program.log

-rw-r–r–.  1 root         root              0 8月  19 08:43 sensitive-info.log

drwx——.  2 root         root             23 8月  20 09:17 ssh-Dl5iJSKqllmA

-rw-r–r–.  1 root         root              0 8月  19 08:43 storage.log

drwx——.  3 root         root             16 8月  20 09:16 systemd-private-964ff6c7e72046388caf9c6e002e207e-colord.service-05E8Y3

drwx——.  3 root         root             16 8月  20 09:16 systemd-private-964ff6c7e72046388caf9c6e002e207e-cups.service-SWcuSl

drwx——.  3 root         root             16 8月  20 09:16 systemd-private-964ff6c7e72046388caf9c6e002e207e-rtkit-daemon.service-1y0FzG

drwx——.  3 root         root             16 8月  20 09:16 systemd-private-964ff6c7e72046388caf9c6e002e207e-vmtoolsd.service-stzVyR

-rw-r–r–.  1 root         root              0 8月  20 17:59 tfile2016-08-17-59-35

drwx——.  2 root         root              6 8月  20 17:51 tracker-extract-files.0

drwx——.  2 zhouchenming zhouchenming      6 8月  19 08:48 tracker-extract-files.1000

-rw——-.  1 root         root              0 8月  19 08:25 yum.log

-rw——-.  1 root         root         159513 8月  20 09:13 yum_save_tx.2016-08-20.09-13.c8w99O.yumtx

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

[root@localhost ~]# cp -a /etc/p*[a-z] /tmp/mytest1

[root@localhost ~]# ll /tmp/mytest1

总用量 52

drwxr-xr-x. 2 root root 4096 8月  19 08:36 pam.d

-rw-r–r–. 1 root root 2336 8月  19 08:48 passwd

-rw-r–r–. 1 root root 1362 6月  10 2014 pbm2ppa.conf

-rw-r–r–. 1 root root 2872 6月  10 2014 pinforc

drwxr-xr-x. 9 root root   91 8月  19 08:28 pki

drwxr-xr-x. 2 root root   27 8月  19 08:30 plymouth

drwxr-xr-x. 5 root root   49 8月  19 08:25 pm

-rw-r–r–. 1 root root 6300 6月  10 2014 pnm2ppa.conf

drwxr-xr-x. 2 root root    6 6月  10 2014 popt.d

drwxr-xr-x. 2 root root 4096 8月  19 08:32 postfix

drwxr-xr-x. 3 root root 4096 8月  19 08:28 ppp

drwxr-xr-x. 2 root root  101 8月  19 08:28 prelink.conf.d

-rw-r–r–. 1 root root  233 6月   7 2013 printcap

-rw-r–r–. 1 root root 1750 6月   7 2013 profile

drwxr-xr-x. 2 root root 4096 8月  19 08:32 profile.d

-rw-r–r–. 1 root root 6545 6月   7 2013 protocols

drwxr-xr-x. 2 root root   75 8月  19 08:29 pulse

drwxr-xr-x. 2 root root   22 8月  19 08:30 purple

drwxr-xr-x. 2 root root   34 8月  19 08:26 python

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

[root@localhost mytest2]# cp -a /etc/*.d /tmp/mytest2

[root@localhost mytest2]# ls

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 tmp]# cp /etc/l*.conf /etc/m*.conf /etc/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

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

评论列表(1条)

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

    写的很好,排版还可以在漂亮一点,加油,最后一个尝试用命令展开来写