N28-第二周作业

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
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
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

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

常用命令:

pwd:printing working directory(显示工作目录)

示例:

[root@cuikedong ~]# pwd

/root

[root@cuikedong ~]#

 

cd:change directory(切换目录)

cd [/PATH/TO/SOMEDIR]

cd后不加任何命令,表示切换回家目录;

注意:bash中,~表示家目录;

cd ~:切换回自己的家目录

cd ~USERNAME(用户名):切换至指定用户的家目录;

cd -:在上一次所在目录与当前

相关的环境变量

$PWD:当前工作目录

$OLDPWD:上一次的工作目录

示例:

[root@cuikedong ~]# cd /etc/sysconfig

[root@cuikedong sysconfig]# pwd

/etc/sysconfig

[root@cuikedong sysconfig]#

 

ls:list,列出指定目录下的内容

ls [OPTION]… [FILE]…

-a:显示所有文件,包括隐藏文件;

-A:显示除.和..之外的所有文件;

-l:–long,长格式列表,即显示文件的详细属性信息;

例: -rw-r–r–. 1 root root 8957 11月 20 21:06 boot.log

-:文件类型:-,d,b,c,l,s,p

rw-r–r–

rw-:文件属主的权限:

r–:文件属组的权限:

r–:其他用户(非属主、属组)的权限:

1:数字表示文件被硬链接的次数:

root:文件的属主:

root:文件的属组:

8957:数字表示文件的大小,单位是字节:

11月 20 21:06:文件最近一次被修改的时间:

boot.log:文件名:

-h,–human-readable(人类易读):对文件大小单位换算:换算后的结果可能会非精确值:

-d:查看目录自身而非其内部的文件列表:

-r:reverse,逆序显示:

-R:recursive,递归显示(子目录下的所有内容):

示例:

[root@cuikedong sysconfig]# ls -l

总用量 104

-rw-r–r–. 1 root root  400 11月 13 20:01 anaconda

-rw-r–r–. 1 root root  483 11月 13 20:00 authconfig

drwxr-xr-x. 2 root root   43 11月 13 19:52 cbq

-rw-r–r–. 1 root root   46 8月   4 05:27 chronyd

drwxr-xr-x. 2 root root    6 8月   4 07:57 console

-rw-r–r–. 1 root root  150 8月  23 05:43 cpupower

……………………………………………

 

cat:concatenate:文件文本查看工具:

cat /etc/fstab

cat /etc/passwd

cat [OPTION]… [FILE]…

-n:给显示的文本行统一编号:

-E:显示行结束符$:

示例:

[root@cuikedong sysconfig]# cat -n anaconda

1 # This file has been generated by the Anaconda Installer 21.48.22.121-1

2

3[WelcomeLanguageSpoke]

4visited = 1

5

6[OSCAPSpoke]

7visited = 1

8

9[NetworkSpoke]

10visited = 1

………………

 

tac:concatenate:文件文本查看工具:

tac /etc/fstab

tac /etc/passwd

tac [OPTION]… [FILE]…

-n:给显示的文本行统一编号:

-E:显示行结束符$:

示例:

[root@cuikedong ~]# tac /etc/fstab

/dev/mapper/centos_cuikedong-swap swap                    swap    defaults        0 0

/dev/mapper/centos_cuikedong-home /home                   xfs     defaults        0 0

UUID=e8437b00-9547-480d-a63a-0e5cbcda3683 /boot                   xfs     defaults        0 0

/dev/mapper/centos_cuikedong-root /                       xfs     defaults        0 0

#

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

# Accessible filesystems, by reference, are maintained under ‘/dev/disk’

#

# Created by anaconda on Mon Nov 13 19:51:58 2017

# /etc/fstab

#

[root@cuikedong ~]# cat /etc/fstab

#

# /etc/fstab

# Created by anaconda on Mon Nov 13 19:51:58 2017

#

# 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_cuikedong-root /                       xfs     defaults        0 0

UUID=e8437b00-9547-480d-a63a-0e5cbcda3683 /boot                   xfs     defaults        0 0

/dev/mapper/centos_cuikedong-home /home                   xfs     defaults        0 0

/dev/mapper/centos_cuikedong-swap swap                    swap    defaults        0 0

注:cat与tac显示内容顺序相反

 

file:查看文件内容类型:

file[FILE]……….

示例:

[root@cuikedong ~]# file /etc/passwd

/etc/passwd: ASCII text

 

mkdir:make directory (创建目录)

mkdir [OPTION]… DIRECTORY…

-p:自动按需创建父目录:

-v verbose:显示创建的详细过程:

-m MODE:直接给定权限:

注意:路径基名方为命令的作用对象: 基名之前的路径必须的存在:

示例:

[root@cuikedong /]# mkdir /etc/cuicui

[root@cuikedong /]# ls -l /etc

……………………………………………..

-rw-r–r–.  1 root root      841 6月   7 2013 csh.login

drwxr-xr-x.  2 root root       17 12月 10 12:08 cui

drwxr-xr-x.  2 root root        6 12月 10 13:14 cuicui

drwxr-xr-x.  4 root root       78 11月 13 19:53 dbus-1

[root@cuikedong /]#

 

rmdir:remove empty directories(删除空目录)

rmdir [OPTION]… DIRECTORY…

-p:删除某目录后,如果其父目录为空,则一并删除之:

-v:显示过程:

示例:

[root@cuikedong /]# rmdir /etc/cuicui

[root@cuikedong /]# ls -l /etc

……………………………………………

-rw-r–r–.  1 root root      841 6月   7 2013 csh.login

drwxr-xr-x.  2 root root       17 12月 10 12:08 cui

drwxr-xr-x.  4 root root       78 11月 13 19:53 dbus-1

……………………………………………

[root@cuikedong /]#

 

tree命令:

tree [options] [directory]

-L level:指定要显示的层级:

示例:

[root@cuikedong /]# tree -L 1 /

/

├── bin -> usr/bin

├── boot

├── dev

├── etc

├── home

├── lib -> usr/lib

├── lib64 -> usr/lib64

├── media

├── mnt

├── opt

├── proc

├── root

├── run

├── sbin -> usr/sbin

├── srv

├── sys

├── tmp

├── usr

└── var

 

19 directories, 0 files

[root@cuikedong /]#

 

 

文件查看类命令:cat,tac,head,tail,more,less

分屏查看命令:more和less

more命令:

more FILE

特点:翻屏至文件尾部后自动退出:

less命令:(man 本身就是调用less命令)

less FILE

head命令:

查看文件的前n行:

head [options] FILE

-n #(#=1,2,3,……..)

-#

示例:

[root@cuikedong ~]# head -n3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

tail命令:

查看文件后的n行:

tail [options] FILE

-n #(#=1,2,3,……..)

-#

-f:查看文件尾部内容结束后不退出,跟随显示新增的行:(查看新增日志时候会用)

示例:

[root@cuikedong ~]# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

………………………………..

gdm:x:42:42::/var/lib/gdm:/sbin/nologin

gentoo:x:1001:1001::/home/gentoo:/bin/bash

slakware:x:1002:1002::/home/slakware:/bin/tcsh

slackware:x:1003:1003::/home/slackware:/bin/tcsh

docker:x:1004:1004::/home/docker:/bin/bash

[root@cuikedong ~]# tail -n3 /etc/passwd

slakware:x:1002:1002::/home/slakware:/bin/tcsh

slackware:x:1003:1003::/home/slackware:/bin/tcsh

docker:x:1004:1004::/home/docker:/bin/bash

 

stat命令:状态(查看文件的元数据)

stat – display file or file system status

用法:

stat FILE,,,,,,

Linux中每一个文件:两类数据

元数据:metadata(例如书的目录)

数据:data(例如书的正文)

时间戳:

access time (最近访问):2017-11-14 20:07:30.941647159 +0800 (读取数据流)

modify time(最近更改):2017-11-27 20:14:05.372243896 +0800 (改动的数据)

change time(最近改动):2017-11-27 20:14:05.372243896 +0800 (改动的元数据)

示例:

[root@cuikedong ~]# stat /etc/cui/aaa

文件:”/etc/cui/aaa”

大小:105        块:8          IO 块:4096   普通文件

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

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

环境:unconfined_u:object_r:etc_t:s0

最近访问:2017-12-10 12:11:10.395401753 +0800

最近更改:2017-12-10 12:10:16.098348565 +0800

最近改动:2017-12-10 12:10:16.098348565 +0800

创建时间:-

[root@cuikedong ~]#

 

touch命令:创建新的空文件,改变已有文件的时间戳属性:

手动更改时间戳( change time不能手动指定)

touch – change file timestamps

touch [OPTION]… FILE…

-c:指定的文件路径不存在时不予创建:

-a:仅修改access time

-m:仅修改modify time

-t STAMP

[[CC]YY]MMDDhhmm[.ss]

例如:~]# touch -m -t 0212010303.03 /tmp/functions

结果:最近更改:2002-12-01 03:03:03.000000000 +0800

示例:

[root@cuikedong ~]# touch /etc/cui/aaa

[root@cuikedong ~]# ls /etc/cui

aaa

[root@cuikedong /]# file /etc/cui/aaa

/etc/cui/aaa: empty

[root@cuikedong /]#

 

文件管理工具:cp,mv,rm

cp命令:copy

源文件:目标文件:

单源复制: cp [OPTION]… [-T] SOURCE DEST

多源复制 :cp [OPTION]… SOURCE… DIRECTORY

cp [OPTION]… -t DIRECTORY SOURCE…

 

单源复制: cp [OPTION]… [-T] SOURCE DEST

如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中: 如果DEST存在:

如果DEST是非目录文件:则覆盖目标文件:

如果DEST是目录文件:则现在DEST目录下创建一个与源文件同名的文件,并复制其属性和数据流至目标文件:

 

多源复制 :cp [OPTION]… SOURCE… DIRECTORY

cp [OPTION]… -t DIRECTORY SOURCE…

如果DEST不存在:错误:

如果DEST存在:

如果DEST是非目录文件:错误:

如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名:

常用选项:

-i:交互式复制,即覆盖之前提醒用户确认:

-f:强制覆盖目标文件:

-r,-R:递归复制目录:

-d:复制符号链接本身,而非其指向的源文件:

-a:-dR –preserve=all,archive,用于实现归档:

–preserve=

mode:权限

ownership:属主和属组

timestamps:时间戳

context:安全标签

xattr:扩展属性

links:符号链接

all:上述所有属性

示例:

[root@cuikedong /]# ls /var

adm    crash  empty  gopher    lib    lock  mail  opt       run    tmp

cache  db     games  kerberos  local  log   nis   preserve  spool  yp

注:/var没有文件“aaa”

[root@cuikedong /]# cp /etc/cui/aaa /var

[root@cuikedong /]# ls /var

aaa  cache  db     games   kerberos  local  log   nis  preserve  spool  yp

adm  crash  empty  gopher  lib       lock   mail  opt  run       tmp

[root@cuikedong /]#

 

mv命令:move

mv [OPTION]… [-T] SOURCE DEST

mv [OPTION]… SOURCE… DIRECTORY

mv [OPTION]… -t DIRECTORY SOURCE…

常用选项:

-i:交互式:

-f:force

示例:

[root@cuikedong /]# mv /var/aaa /tmp

[root@cuikedong /]# ls /tmp

aaa

systemd-private-70e2d125bf6b49fc9c16a25e6f383f7f-chronyd.service-JrJZ6h

systemd-private-70e2d125bf6b49fc9c16a25e6f383f7f-vgauthd.service-o3ZUMJ

systemd-private-70e2d125bf6b49fc9c16a25e6f383f7f-vmtoolsd.service-IHRY0T

[root@cuikedong /]# ls /var

adm    crash  empty  gopher    lib    lock  mail  opt       run    tmp

cache  db     games  kerberos  local  log   nis   preserve  spool  yp

[root@cuikedong /]#

 

rm命令:remove

rm [OPTION]… FILE…

常用选项:

-i:interactive

-f:force

-r:recursive

删除目录:rm -rf /PATH/TO/DIR

危险操作:rm -rf /*(清楚根目录下的所有内容)

注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录:(模拟回收站)

示例:

[root@cuikedong /]# rm -r /tmp/aaa

rm:是否删除普通空文件 “/tmp/aaa”?y

[root@cuikedong /]# ls /tmp

systemd-private-70e2d125bf6b49fc9c16a25e6f383f7f-chronyd.service-JrJZ6h

systemd-private-70e2d125bf6b49fc9c16a25e6f383f7f-vgauthd.service-o3ZUMJ

systemd-private-70e2d125bf6b49fc9c16a25e6f383f7f-vmtoolsd.service-IHRY0T

[root@cuikedong /]#

 

which命令:

which – shows the full path of (shell) commands.

使用格式:

which [options] [–] programname […]

–skip-alias:显示时,不显示别名:

示例:

[root@cuikedong ~]# which man

/bin/man

[root@cuikedong ~]# which cat

/bin/cat

 

whereis命令:

whereis – locate the binary, source, and manual page files for a command

whereis [options] name…

-b:仅搜索二进制程序路径:

-m:仅搜索使用手册文件路径:

示例:

[root@cuikedong ~]# whereis -m man

man: /usr/share/man/man1/man.1.gz

[root@cuikedong ~]# whereis -m ls

ls: /usr/share/man/man1/ls.1.gz

[root@cuikedong ~]# whereis -m cat

cat: /usr/share/man/man1/cat.1.gz

[root@cuikedong ~]#

 

who命令:

who – show who is logged on

who [OPTION]…

-b:系统最近一次启动的时间

-d:显示死亡进程:

-l:显示登录进程:

-u:显示谁登录的:

-r:运行级别:

w命令:增强版的who命令

w – Show who is logged on and what they are doing.

示例:

[root@cuikedong ~]# who

cuikedong tty1         2017-12-10 10:40

cuikedong pts/0        2017-12-10 10:43 (192.168.0.101)

[root@cuikedong ~]#

 

tr命令:

COMMAND | tr [OPTION]… SET1 [SET2]

把输入的数据当中的字符,凡是在SET1定义范围内出现的,通通对位转换为SET2出现的字符

 

用法1:tr  SET1  SET2  >  /PATH/FROM/SOMEFILE

用法2:tr  -d  SET1  <  /PATH/FROM/SOMEFILE

注意:不修改原文件

示例:

[root@cuikedong ~]# head -n3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@cuikedong ~]# head -n3 /etc/passwd | tr ‘a-z’ ‘A-Z’

ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH

BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN

DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN

[root@cuikedong ~]#

 

tee命令:

COMMAND | tee /PATH/TO/SOMEFILE

前一个命令的数据流输出到屏幕上,并保存到另一个指明文件中,且分发到后一个命令中去:

示例:

[root@cuikedong ~]# head -n3 /etc/passwd | tee /etc/cui/aaa

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@cuikedong ~]# cat /etc/cui/aaa

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@cuikedong ~]#

 

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

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

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

成功:0

失败:1~255

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

~]# echo $?

示例:

[root@cuikedong /]# ls /

bin   dev  home  lib64  mnt  proc  run   srv  tmp  var

boot  etc  lib   media  opt  root  sbin  sys  usr

[root@cuikedong /]# echo $?

0

注:显示值为“0”命令执行成功

[root@cuikedong /]# lss /

-bash: lss: 未找到命令

[root@cuikedong /]# echo $?

127

注:显示值为“127”命令执行失败

 

命令正常执行时,有的还会有命令返回值:

根据命令其功能不同,结果各不相同:

 

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

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

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

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

示例:

创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b?

解答:

[root@cuikedong /]# mkdir -pv /tmp/x/{y1/{a,b},y2}

mkdir: 已创建目录 “/tmp/x”

mkdir: 已创建目录 “/tmp/x/y1”

mkdir: 已创建目录 “/tmp/x/y1/a”

mkdir: 已创建目录 “/tmp/x/y1/b”

mkdir: 已创建目录 “/tmp/x/y2”

[root@cuikedong /]# tree /tmp

/tmp

└── x

├── y1

│   ├── a

│   └── b

└── y2

[root@cuikedong /]#

 

创建a_c,a_d,b_c,b_d:

解答:

[root@cuikedong /]# mkdir -v /tmp/{a,b}_{c,d}

mkdir: 已创建目录 “/tmp/a_c”

mkdir: 已创建目录 “/tmp/a_d”

mkdir: 已创建目录 “/tmp/b_c”

mkdir: 已创建目录 “/tmp/b_d”

[root@cuikedong /]# ls -l /tmp

总用量 0

drwxr-xr-x. 2 root root  6 12月 10 15:06 a_c

drwxr-xr-x. 2 root root  6 12月 10 15:06 a_d

drwxr-xr-x. 2 root root  6 12月 10 15:06 b_c

drwxr-xr-x. 2 root root  6 12月 10 15:06 b_d

 

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

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

解答:

[root@cuikedong /]# mkdir -v /tmp/{a,b}_{c,d}

mkdir: 已创建目录 “/tmp/a_c”

mkdir: 已创建目录 “/tmp/a_d”

mkdir: 已创建目录 “/tmp/b_c”

mkdir: 已创建目录 “/tmp/b_d”

[root@cuikedong /]# ls -l /tmp

总用量 0

drwxr-xr-x. 2 root root  6 12月 10 15:06 a_c

drwxr-xr-x. 2 root root  6 12月 10 15:06 a_d

drwxr-xr-x. 2 root root  6 12月 10 15:06 b_c

drwxr-xr-x. 2 root root  6 12月 10 15:06 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@cuikedong /]# 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@cuikedong /]# 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

[root@cuikedong /]#

 

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

解答:

stat命令:状态(查看文件的元数据)

用法:

stat FILE,,,,,,

示例:

[root@cuikedong ~]# stat /tmp/cui

文件:”/tmp/cui”

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

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

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

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2017-12-10 18:45:55.186935129 +0800

最近更改:2017-12-10 18:45:55.186935129 +0800

最近改动:2017-12-10 18:45:55.186935129 +0800

创建时间:-

修改时间戳

touch命令:手动更改时间戳

touch – change file timestamps

touch [OPTION]… FILE…

-c:指定的文件路径不存在时不予创建:

-a:仅修改access time

-m:仅修改modify time

-t STAMP

[[CC]YY]MMDDhhmm[.ss]

示例:

[root@cuikedong ~]# stat /tmp/cui

文件:”/tmp/cui”

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

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

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

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2017-12-10 18:45:55.186935129 +0800

最近更改:2017-12-10 18:45:55.186935129 +0800(跟改前)

最近改动:2017-12-10 18:45:55.186935129 +0800

创建时间:-

[root@cuikedong ~]# touch -m -t 201808080808.08 /tmp/cui

[root@cuikedong ~]# stat /tmp/cui

文件:”/tmp/cui”

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

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

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

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2017-12-10 18:45:55.186935129 +0800

最近更改:2018-08-08 08:08:08.000000000 +0800(更改后)

最近改动:2017-12-10 18:58:07.301294741 +0800

创建时间:-

 

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

解答:

定义别名:

~]# alias NAME=‘COMMAD’

注意:仅对当前shell进程有效

示例:

[root@cuikedong ~]# alias p=’pwd’

[root@cuikedong ~]# alias

alias p=’pwd’

[root@cuikedong ~]# p

/root

 

引用命令的执行结果:

$(COMMAND)

或‘COMMAND’

bash的基础特性:引用

强引用:”

弱引用:“”

命令引用:“(反引号)

示例:

[root@cuikedong ~]# touch /tmp/cui-`date +%Y-%m-%d-%H-%M-%S`  (命令引用)

[root@cuikedong ~]# ls /tmp

cui

cui-2017-12-10-19-21-41

[root@cuikedong ~]#

 

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

解答:

[root@cuikedong /]# ls -d /var/l*[0-9]*[[:lower:]]

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

解答:

[root@cuikedong /]# ls -d /etc/[0-9]*[^0-9]

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

解答:

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

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

解答:

[root@cuikedong ~]#  touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`

[root@cuikedong ~]# ls /tmp

mylinux

tfile-2017-12-10-17-22-13

x

[root@cuikedong ~]#

 

 

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

解答:

[root@cuikedong ~]# mkdir /tmp/mytest1

[root@cuikedong ~]# cp -r /etc/p*[^0-9] /tmp/mytest1

[root@cuikedong ~]# ls -l /tmp/mytest1

总用量 28

drwxr-xr-x.  2 root root 4096 12月 10 18:15 pam.d

-rw-r–r–.  1 root root 1473 12月 10 18:15 passwd

-rw-r–r–.  1 root root 1430 12月 10 18:15 passwd-

drwxr-xr-x. 10 root root  116 12月 10 18:15 pki

drwxr-xr-x.  2 root root   28 12月 10 18:15 plymouth

drwxr-xr-x.  5 root root   52 12月 10 18:15 pm

drwxr-xr-x.  2 root root    6 12月 10 18:15 popt.d

drwxr-xr-x.  2 root root  154 12月 10 18:15 postfix

drwxr-xr-x.  3 root root  123 12月 10 18:15 ppp

drwxr-xr-x.  2 root root   78 12月 10 18:15 prelink.conf.d

-rw-r–r–.  1 root root  233 12月 10 18:15 printcap

-rw-r–r–.  1 root root 1795 12月 10 18:15 profile

drwxr-xr-x.  2 root root  232 12月 10 18:15 profile.d

-rw-r–r–.  1 root root 6545 12月 10 18:15 protocols

drwxr-xr-x.  2 root root   79 12月 10 18:15 pulse

drwxr-xr-x.  2 root root   35 12月 10 18:15 python

 

 

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

解答:

[root@cuikedong ~]# mkdir /tmp/mytest2

[root@cuikedong ~]# cp -r /etc/*.d /tmp/mytest2

[root@cuikedong ~]# ls -l /tmp/mytest2

总用量 4

drwxr-xr-x.  2 root root  223 12月 10 18:26 bash_completion.d

drwxr-xr-x.  2 root root    6 12月 10 18:26 binfmt.d

drwxr-xr-x.  2 root root    6 12月 10 18:26 chkconfig.d

drwxr-xr-x.  2 root root   39 12月 10 18:26 cron.d

drwxr-xr-x.  2 root root   23 12月 10 18:26 depmod.d

drwxr-xr-x.  2 root root    6 12月 10 18:26 dracut.conf.d

drwx——.  2 root root  182 12月 10 18:26 grub.d

lrwxrwxrwx.  1 root root   11 12月 10 18:26 init.d -> rc.d/init.d

drwxr-xr-x.  2 root root    6 12月 10 18:26 krb5.conf.d

drwxr-xr-x.  2 root root   74 12月 10 18:26 ld.so.conf.d

drwxr-xr-x.  2 root root  114 12月 10 18:26 logrotate.d

drwxr-xr-x.  2 root root   24 12月 10 18:26 modprobe.d

drwxr-xr-x.  2 root root    6 12月 10 18:26 modules-load.d

drwxr-xr-x.  2 root root   31 12月 10 18:26 my.cnf.d

drwxr-xr-x.  2 root root   70 12月 10 18:26 oddjobd.conf.d

drwxr-xr-x.  2 root root 4096 12月 10 18:26 pam.d

drwxr-xr-x.  2 root root    6 12月 10 18:26 popt.d

drwxr-xr-x.  2 root root   78 12月 10 18:26 prelink.conf.d

drwxr-xr-x.  2 root root  232 12月 10 18:26 profile.d

lrwxrwxrwx.  1 root root   10 12月 10 18:26 rc0.d -> rc.d/rc0.d

lrwxrwxrwx.  1 root root   10 12月 10 18:26 rc1.d -> rc.d/rc1.d

lrwxrwxrwx.  1 root root   10 12月 10 18:26 rc2.d -> rc.d/rc2.d

lrwxrwxrwx.  1 root root   10 12月 10 18:26 rc3.d -> rc.d/rc3.d

lrwxrwxrwx.  1 root root   10 12月 10 18:26 rc4.d -> rc.d/rc4.d

lrwxrwxrwx.  1 root root   10 12月 10 18:26 rc5.d -> rc.d/rc5.d

lrwxrwxrwx.  1 root root   10 12月 10 18:26 rc6.d -> rc.d/rc6.d

drwxr-xr-x. 10 root root  127 12月 10 18:26 rc.d

drwxr-xr-x.  2 root root   25 12月 10 18:26 rsyslog.d

drwxr-xr-x.  2 root root   23 12月 10 18:26 rwtab.d

drwxr-xr-x.  2 root root    6 12月 10 18:26 statetab.d

drwxr-x—.  2 root root    6 12月 10 18:26 sudoers.d

drwxr-xr-x.  2 root root   28 12月 10 18:26 sysctl.d

drwxr-xr-x.  2 root root    6 12月 10 18:26 tmpfiles.d

drwxr-xr-x.  2 root root    6 12月 10 18:26 xinetd.d

drwxr-xr-x.  2 root root  187 12月 10 18:26 yum.repos.d

 

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

解答:

[root@cuikedong ~]# mkdir /tmp/mytest3

[root@cuikedong ~]# cp -r /etc/{l,m,n}*.conf /tmp/mytest3

[root@cuikedong ~]# ls -l /tmp/mytest3

总用量 36

-rw-r–r–. 1 root root   28 12月 10 18:33 ld.so.conf

-rw-r—–. 1 root root  191 12月 10 18:33 libaudit.conf

-rw-r–r–. 1 root root 2391 12月 10 18:33 libuser.conf

-rw-r–r–. 1 root root   19 12月 10 18:33 locale.conf

-rw-r–r–. 1 root root  662 12月 10 18:33 logrotate.conf

-rw-r–r–. 1 root root 5171 12月 10 18:33 man_db.conf

-rw-r–r–. 1 root root  936 12月 10 18:33 mke2fs.conf

-rw-r–r–. 1 root root 1746 12月 10 18:33 nsswitch.conf

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89881

(0)
爱溜达爱溜达
上一篇 2017-12-11 16:53
下一篇 2017-12-11

相关推荐

  • 使用lxc搭建虚拟机

        使用lxc可以帮助我们搭建轻量级的虚拟机,这种虚拟机的对资源要求不高,非常适合在硬件条件受限时建立多台虚拟机的情况,有助于我们完成需要多节点参与的实验环境。     下面来演示lxc的搭建过程: 一、确保NetworkManager服务是停止的。 二、将宿主机的网卡模拟为…

    Linux干货 2015-06-17
  • 第七周小练习

    1.创建一个10G分区,并格式为ext4文件系统 (1)要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl (2)挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 fdisk /dev/sdb n p 1 +10G w mke2fs -t&nbs…

    Linux干货 2017-01-05
  • LVM work!!!

    1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录.     (1)查看分区大小 [root@localhost ~]# lsblk NAME   MAJ…

    Linux干货 2016-09-01
  • shell脚本编程进阶

    一些常用的编程语句,

    2017-12-23
  • 新鲜出炉的一篇好PPT,MySQL Optimizer团队力作

    新鲜出炉的一篇好PPT,MySQL Optimizer团队Senior Principal Software Engineer Øystein同学亲自操刀完成的《How to Analyze and Tune MySQL Queries for Better Performance》内容值得期待,有实现分析,有实战用例。有需要的朋友可以点击下载! 下载地址:…

    Linux干货 2015-02-27
  • N26-第九周作业-邢岩

    马哥门徒-N26-邢岩 相信自己、勤奋努力、不断总结!shell脚本练习需要重复、重复、再重复!那么,我就继续来写、写、写。 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #******************************…

    Linux干货 2017-04-03

评论列表(2条)

  • 马哥教育
    马哥教育 2018-01-02 21:43

    完成的非常好 回答的很全面,加油,再接再励。

    • 爱溜达
      爱溜达 2018-01-03 22:46

      @马哥教育谢谢老师夸奖,继续努力