马哥教育网络班21期+第二周博客作业

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

Linux下常见的文件管理命令有:touch、cp、mv、rm、cat等

touch

描述:创建一个空文件,或者更新时间的时间戳

[root@zabbix wanwan]# touch wanwan02
[root@zabbix wanwan]# ls -l wanwan02
-rw-r--r-- 1 root root 0 Jul 13 11:24 wanwan02
[root@zabbix wanwan]# du -sh wanwan02
0wanwan02
说明:新创建的文件wanwan02为空文件
查看文件时间戳:
[root@zabbix wanwan]# stat wanwan02
  File: ‘wanwan02’
  Size: 0         Blocks: 0          IO Block: 4096   regular empty file
Device: 25h/37dInode: 627081291   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-13 11:24:45.095028777 +0800
Modify: 2016-07-13 11:24:45.095028777 +0800
Change: 2016-07-13 11:24:45.095028777 +0800
 Birth: -
使用touch命令修改wanwan02的时间戳:
[root@zabbix wanwan]# touch wanwan02
[root@zabbix wanwan]# stat wanwan02
  File: ‘wanwan02’
  Size: 0         Blocks: 0          IO Block: 4096   regular empty file
Device: 25h/37dInode: 627081291   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-13 11:25:27.058025219 +0800
Modify: 2016-07-13 11:25:27.058025219 +0800
Change: 2016-07-13 11:25:27.058025219 +0800
 Birth: -
对比之前的时间戳,可以发现已经变化了

cp

描述:复制文件与目录

选项:-r 递归,复制子文件与子目录,一般复制目录时使用

[root@zabbix wanwan]# ls
[root@zabbix wanwan]# cp /etc/passwd .
[root@zabbix wanwan]# ls
passwd
[root@zabbix log]# cp -r /var/log/samba/ /tmp/
[root@zabbix log]# ls -ld /tmp/
drwxrwxrwt 19 root root 500 Jul 13 13:14 /tmp/
[root@zabbix log]# ls -l /tmp/
total 12
drwxr-xr-x 14 root root  280 Jul  5 13:27 mylinux
-rw-r--r--  1 root root 7315 Jul 12 23:30 mysql_bak.log
drwxr-xr-x 14 root root  400 Jul 13 10:54 mytest1
drwxr-xr-x 33 root root  820 Jul 13 10:56 mytest2
drwxr-xr-x  2 root root  140 Jul 13 10:58 mytest3
-rw-r--r--  1 root root 2629 Jul  5 16:28 passwd
drwxr-xr-x  2 root root   40 Jun 27 17:26 python-build.20160627172622.20789
drwx------  4 root root 2380 Jul 13 13:14 samba
drwx------  2 root root   60 Mar 17 12:52 ssh-0CeK7US8msI8
drwx------  2 root root   60 May  3 17:15 ssh-cKDJ7FFBpQ4g
drwx------  2 root root   60 May  3 17:17 ssh-DY1nyXYKnMRR
drwx------  2 root root   60 May  5 09:11 ssh-Rte4UArLkDfW
drwx------  3 root root   60 May 27 09:23 systemd-private-a293e18c9e6f4755986a533a2b4227a0-httpd.service-lf1vFt
drwx------  3 root root   60 May  3 14:30 systemd-private-a293e18c9e6f4755986a533a2b4227a0-mariadb.service-3Xn9YD
drwx------  3 root root   60 May 27 09:05 systemd-private-a293e18c9e6f4755986a533a2b4227a0-munin-node.service-ys9n24
-rw-r--r--  1 root root    0 Jul 13 10:41 tfile-2016-07-13-10-41-40
-rw-r--r--  1 root root    0 Jul 13 10:41 tfile-2016-07-13-10-41-49
drwxr-xr-x  2 root root 2020 Jul  5 16:55 var
drwxr-xr-x  2 root root   60 Jul 13 13:13 wanwan
drwxr-xr-x  3 root root   60 Jun 27 13:35 zhang3

rm

描述:删除文件或目录

选项:-f 不提示,强制删除

      -i 删除前,提示是否删除

      -r 删除目录以及目录下的所有文件

[root@zabbix tmp]# cd wanwan/
[root@zabbix wanwan]# ls
passwd
[root@zabbix wanwan]# rm passwd 
rm: remove regular file ‘passwd’? yes
[root@zabbix wanwan]# ls
[root@zabbix tmp]# cd wanwan/
[root@zabbix wanwan]# ls
passwd
[root@zabbix wanwan]# rm passwd 
rm: remove regular file ‘passwd’? yes
[root@zabbix wanwan]# ls
[root@zabbix wanwan]# cp /etc/sysconfig/network .
[root@zabbix wanwan]# ls
network
[root@zabbix wanwan]# rm -rf network #删除文件前,没有任何提示
[root@zabbix wanwan]# ls

mv

描述:移动(重命名)文件或目录

[root@zabbix wanwan]# ls
passwd
[root@zabbix wanwan]# mv passwd passwd.org  #将passwd改名为passwd.org
[root@zabbix wanwan]# ls
passwd.org
[root@zabbix tmp]# mv tfile-2016-07-13-10-41-40 /wanwan/  #将/tmp目录下的tfile-2016-07-13-10-41-40剪切到/wanwan目录下
[root@zabbix tmp]# ls -l /wanwan/
total 410044
-rw-r--r-- 1 root root       254 Jun 22 14:21 adduser.sh
-rw-r--r-- 1 root root       167 Jul 12 14:28 checkup.sh
-rw-rw-r-- 1 root root         0 Jun 22 13:19 li4
-rw-r--r-- 1 root root    204101 Jun 27 10:43 li4.zip
-rw-r--r-- 1 root root       157 Jun 22 15:57 ping.sh
-rw-r--r-- 1 root root 209715200 Jun 27 10:42 test.iso
-rw-r--r-- 1 root root         0 Jul 13 10:41 tfile-2016-07-13-10-41-40
-rw-r--r-- 1 root root 209940480 Jun 27 10:48 wanwan.tar.gz
drwxr-xr-x 3 root root        29 Jun 27 10:45 zhang3
-rw-r--r-- 1 root root     10240 Jun 27 13:34 zhang3.tar

cat

描述:查看文件内容

选项:-b 显示行号,空白行不显示行号

      -n 显示行号,包括空白行

[root@zabbix wanwan]# cat -n passwd|head -10
     1root:x:0:0:root:/root:/bin/bash
     2bin:x:1:1:bin:/bin:/sbin/nologin
     3daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4
     5
     6
     7adm:x:3:4:adm:/var/adm:/sbin/nologin
     8
     9lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    10
[root@zabbix wanwan]# cat -b passwd|head -10
     1root:x:0:0:root:/root:/bin/bash
     2bin:x:1:1:bin:/bin:/sbin/nologin
     3daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4adm:x:3:4:adm:/var/adm:/sbin/nologin
     5lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

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

a、键入的命令到底有没有执行成功呢?我们输入 echo $? 来查看该命令执行状态的返回值。返回值为 0,表示成功执行。

b、echo $?如果返回值为0,则表示上一条命令执行成功

c、如果返回值是1-255的任何值,表明上一条命令执行失败

[root@zabbix ~]# pwd
/root
[root@zabbix ~]# echo $?
0
说明:pwd这条命令是执行成功的
[root@zabbix ~]# pwdd
-bash: pwdd: command not found
[root@zabbix ~]# echo $?
127
说明:由于根本不存在pwdd命令,返回值非0,说明失败

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

    ├── proc

    ├── sbin

    ├── sys

    ├── tmp

    ├── usr

    │?? └── local

    │??     ├── bin

    │??     └── sbin

    └── var

        ├── lock

        ├── log

        └── run

# mkdir -p /tmp/{a,b}_{c,d}
# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/networkscripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

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

元数据信息:用来描述一个文件的特征的系统数据,包括文件大小,inode数,连接数,访问权限,UID、GID以及三个时间戳,通常情况下,我们可以用stat命令来进行查看。

文件有三个时间戳,分别是:

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

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

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

[root@localhost ~]# stat /etc/passwd
  File: '/etc/passwd'
  Size: 2062      Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050dInode: 136839480   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2016-07-11 21:26:19.946999372 +0800
Modify: 2015-09-08 01:02:10.002179228 +0800
Change: 2015-09-08 01:02:10.002179228 +0800
 Birth: -
touch:
  -a只更改访问时间
  -c, --no-create不创建任何文件
  -m只更改修改时间
[root@localhost tmp]# stat passwd 
  文件:"passwd"
  大小:2062      块:8          IO 块:4096   普通文件
设备:802h/2050dInode:7104        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2016-07-12 15:53:50.400028573 +0800
最近更改:2016-07-12 15:53:50.400028573 +0800
最近改动:2016-07-12 15:53:50.400028573 +0800
创建时间:-
[root@localhost tmp]# touch -a passwd 
[root@localhost tmp]# stat passwd 
  文件:"passwd"
  大小:2062      块:8          IO 块:4096   普通文件
设备:802h/2050dInode:7104        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2016-07-12 15:54:20.547714007 +0800
最近更改:2016-07-12 15:53:50.400028573 +0800
最近改动:2016-07-12 15:54:16.468621271 +0800
创建时间:-
[root@localhost tmp]# touch -m passwd 
[root@localhost tmp]# file passwd 
passwd: ASCII text
[root@localhost tmp]# stat passwd 
  文件:"passwd"
  大小:2062      块:8          IO 块:4096   普通文件
设备:802h/2050dInode:7104        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2016-07-12 15:54:49.465370687 +0800
最近更改:2016-07-12 15:54:47.218319686 +0800
最近改动:2016-07-12 15:54:47.218319686 +0800

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

a、临时生效:

[root@localhost ~]# alias cls='clear'
[root@localhost ~]# alias cls
alias cls='clear'
[root@localhost ~]# cls
[root@localhost ~]# echo $?

b、永久生效:

说明:永久生效, 写入/etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile 四文件之一
[root@localhost ~]# echo "alias cls='clear'">>/etc/profile
[root@localhost ~]# echo $?
0
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $?
0
命令中引用另一个命令的执行结果:
[root@localhost ~]# echo "My directory is `pwd`"
My directory is /root
[root@localhost ~]# echo "My directory is $(pwd)"
My directory is /root

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

[root@localhost var]# ls -l 1*[0-9]*[^0-9]
-rw-r--r--. 1 root root 0 7月  12 16:08 15wk
-rw-r--r--. 1 root root 0 7月  12 16:08 188k

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

# ls -l /etc/[0-9]*[^0-9]
案例:
[root@localhost tmp]# cd /etc/
[root@localhost etc]# touch 9wanw
[root@localhost etc]# ls -l /etc/[0-9]*[^0-9]
-rw-r--r--. 1 root root 0 7月  12 16:05 /etc/9wanw
[root@localhost etc]# touch 8wan8
[root@localhost etc]# ls -l /etc/[0-9]*[^0-9]
-rw-r--r--. 1 root root 0 7月  12 16:05 /etc/9wanw

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

# ls /etc/[^a-zA-Z][a-zA-Z]*
[root@zabbix etc]# touch 1a11 2a3z
[root@zabbix etc]# ls -l /etc/[^a-zA-Z][a-zA-Z]*
-rw-r--r-- 1 root root 0 Jul 13 10:35 /etc/1a11
-rw-r--r-- 1 root root 0 Jul 13 10:35 /etc/2a3z

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

方法1:
[root@zabbix tmp]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
方法2:
[root@zabbix tmp]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
[root@zabbix tmp]# ls
mylinux                         systemd-private-a293e18c9e6f4755986a533a2b4227a0-httpd.service-lf1vFt
mysql_bak.log                     systemd-private-a293e18c9e6f4755986a533a2b4227a0-mariadb.service-3Xn9YD
passwd                          systemd-private-a293e18c9e6f4755986a533a2b4227a0-munin-node.service-ys9n24
python-build.20160627172622.20789          tfile-2016-07-13-10-41-40
ssh-0CeK7US8msI8                   tfile-2016-07-13-10-41-49
ssh-cKDJ7FFBpQ4g                   var
ssh-DY1nyXYKnMRR                   zhang3
ssh-Rte4UArLkDfW
说明:可以看到tfile开头的文件,就是我新创建的

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

# cp -rf /etc/p*[^0-9] /tmp/mytest1/

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

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

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

[root@zabbix ~]# cp -rf /etc/[l,m,n]*.conf /tmp/mytest3/
[root@zabbix ~]# ls /tmp/mytest3/
man_db.conf  mke2fs.conf  mongod.conf  nfsmount.conf  nsswitch.conf



原创文章,作者:Net21-冰冻vs西瓜,如若转载,请注明出处:http://www.178linux.com/24130

(0)
Net21-冰冻vs西瓜Net21-冰冻vs西瓜
上一篇 2016-07-16
下一篇 2016-07-16

相关推荐

  • 马哥教育网络班22期第五周博客作业

    正则表达式与grep 文本编辑工具     grep:是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来;     sed :是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用;     awk…

    Linux干货 2016-10-19
  • Linux Shell(脚本)编程入门

    为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。 下面,让我们一起来看看shell是如何工作的: 建…

    Linux干货 2017-08-05
  • Linux—文本处理(查看,统计,排序,抽取,合并,grep,基本正则表达式)

    Linux的文本管理有着众多的文本命令工具,这些工具基本可以满足不同的文本处理要求,很是灵活,掌握文本管理命令对系统的维护是必备基础技能。 1.文本查看命令:     (1)cat        语法:        cat [OPTION]… […

    Linux干货 2016-08-07
  • Linux 文件系统权限

    一、简述权限  文件系统的权限管理机制的建立,约束了用户对数据的操作。 1、对系统安全而言  管理员的操作权限非常大,足以破坏系统,权限机制将管理员与普通用户之间区分开,防止系统被随意破坏。 2、对用户而言  Linux是一个多用户的操作系统,不同用户间为了防止其他人破坏数据或访问数据,文件系统的权限管理是非常必要的。 二、文件…

    Linux干货 2016-08-04
  • 马哥教育网络班19期+第十周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) POST BIOS加电自检,检查CPU,内存等硬件是否正常, –>Bootsequence(BIOS) 通过引导次序,找到第一块有引导程序的设备,即完成。不管失败与否, –>Bootloader(MBR) 引导加载器程序,位于MBR前446字节,由…

    2016-07-21
  • LVM相关使用

    前言: LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分…

    Linux干货 2017-08-13

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-17 20:33

    写的很好,排版也很漂亮,加油