第二周作业

 一、描述Linux发行版的系统目录名称命名规则以及用途。

/:根目录,Linux系统中只有一个根

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录

/bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

/lib:基本共享库文件和内核模块文件(/lib/modules)

/Sbin 供系统管理使用的工具程序

/etc:配置文件目录(纯文本文件);init.d下存放了各种软件的启动脚本

/home/:普通用户家目录

/root:管理员的家目录

/dev:设备文件及特殊文件存储位置;任何设备与接口设备都是以文件的形式存放在此目录,通过访问目录下的文件,就等于访问某个设备,这就相当于是设备的入口,类似有/dev/null,/dev/zero,dev/tty,/dev/sd*,/dev/lp*,/dev/hd*等设备文件;

/tmp:临时文件存储位置;所有用户都可以访问

/usr: universal shared, read-only data;全局共享只读数据,整个目录都是只读

/usr: universal shared, read-only data

                       bin:保证系统拥有完整功能而提供的应用程序

                       sbin:

                        lib:32位使用

                        lib64:只存在64位系统

                        include: C程序的头文件(header files)

                        share:结构化独立的数据,例如doc, man等

                        local:第三方应用程序的安装位置

/var: variable data files常态性变动的文件,包括缓存(cache)、登录文件(logfile)以及某些软件运行所产生的文件,包括程序文件(lock file,run file),也许有MySQL数据库的文件等。/var/的子目录包括

/run:运行中的进程相关的数据;通常用于存储进程的pid文件;

/lib64:专用于x86_64系统上的辅助共享库文件存放位置

/mnt:临时文件系统挂载点

/opt:专用于为/opt下的应用程序存储可变数据

/srv:系统上运行的服务用到的数据

cache: 应用程序缓存数据目录

lock: 锁文件

log: 日志目录及文件

/proc:用于输出内核与进程信息相关的虚拟文件系统

/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置文件系统结构

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


用stat命令可以查看文件的元数据信息:
[root@centos7 ~]# stat /etc/passwd

  File: ‘/etc/passwd’                                            

  Size: 2411            Blocks: 8          IO Block: 4096  regular file           

Device: 807h/2055d      Inode: 15400      Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)  Gid: (    0/    root)

Context: system_u:object_r:passwd_file_t:s0

Access: 2019-12-03 18:56:07.043999729 +0800

Modify: 2019-10-10 17:04:43.584059518 +0800

Change: 2019-10-10 17:04:43.586059518 +0800

Birth: -

[root@centos7 ~]# ^C

file:表示文件

Size:表示文件大小     Blocks:表示文件占了多少个数据块    IO Blocks :表示文件所占数据块的块大小

Device:表示硬件,既说明该文件在硬盘的那个柱面                   inode:表示文件的节点号          Links:表示文件的链接数   

Access:表示文件的权限            Uid:表示文件所属主                  Gid:表示文件所属主组

context:安全上下文

Access: 2019-12-03 18:56:07.043999729 +0800             表示文件上一次访问时间

Modify: 2019-10-10 17:04:43.584059518 +0800              表示文件上一次修改时间

Change: 2019-10-10 17:04:43.586059518 +0800             表示文件上一次属性更改的时间

修改文件的时间戳信息:

可以使用touch命令更改文件的时间戳

touch [OPTION]... FILE...

-a change only the access time                修改文件访问时间

  -c, --no-create        do not create any files

  -d, --date=STRING      parse STRING and use it instead of current time

  -f                    (ignored)

  -h, --no-dereference  affect each symbolic link instead of any referenced

                        file (useful only on systems that can change the

                        timestamps of a symlink)

  -m                    change only the modification time               改变文件修改时间

  -r, --reference=FILE  use this file's times instead of current time          文件使用此文件的时间而不是当前时间

  -t STAMP              use [[CC]YY]MMDDhhmm[.ss] instead of current time       指定文件的时间

      --time=WORD        change the specified time:

                          WORD is access, atime, or use: equivalent to -a

                          WORD is modify or mtime: equivalent to -m

      --help    display this help and exit

      --version  output version information and exit

三、总结软连接和硬连接区别,并用实例操作说明。

1:软链接inod号不一样,而硬链接inod号一直

2:软链接的连接数与硬链接的链接数不一样,软连接不会增加链接数,而硬链接会增加链接数

3:软链接支持跨分区创建,而硬链接不支持跨分区创建

4:创建方式不一样

5:文件类型不一样

6:软链接是不同文件,而硬链接是同一个文件多个名字

7:软连接可以对文件和目录创建,而硬链接只能对文件创建

8:软链接删除原始文件时,软链接失效,硬链接删除原始文件时,还可以通过硬链接访问

9:创建软链接时,原始文件写相对路径时需写相对于软链接文件的路径

[root@centos7 data]# ll -i /etc/b.txt.bak

198 lrwxrwxrwx. 1 root root 11 Dec  3 19:36 /etc/b.txt.bak -> /data/b.txt

[root@centos7 data]# ll -i /data/b.txt       

70 -rw-r--r--. 1 root root 13 Dec  1 14:35 /data/b.txt

[root@centos7 data]# ll -i /data/a.txt

71 -rw-r--r--. 2 root root 13 Dec  1 14:45 /data/a.txt

[root@centos7 data]# ll -i /data/cwxd/a.txt.bak

71 -rw-r--r--. 2 root root 13 Dec  1 14:45 /data/cwxd/a.txt.bak

[root@centos7 data]#

[root@centos7 data]# ln -s /data/b.txt /etc/b.txt.bak           创建软连接

[root@centos7 data]# ln a.txt /data/cwxd/a.txt.bak             创建硬链接

[root@centos7 data]# ln /data/ ./cwxd/data.bak

ln: ‘/data/’: hard link not allowed for directory                                针对目录创建硬链接失败             

[root@centos7 data]# ln -s /data/ /data/cwxd/data.bak                 针对目录创建软连接成功

[root@centos7 cwxd]# ll

total 4

-rw-r--r--. 2 root root 13 Dec  1 14:45 a.txt.bak

lrwxrwxrwx. 1 root root  6 Dec  3 19:51 data.bak -> /data/

[root@centos7 data]# ln -s b.txt cwxd/b.txt.bak                                      原始文件写相对路径时需写相对于软链接文件的路径

[root@centos7 data]# ll cwxd/b.txt.bak

lrwxrwxrwx. 1 root root 5 Dec  3 20:12 cwxd/b.txt.bak -> b.txt

[root@centos7 data]# ln -s ../b.txt cwxd/b.txt.bak3

[root@centos7 data]# ll cwxd/b.txt.bak3

lrwxrwxrwx. 1 root root 8 Dec  3 20:15 cwxd/b.txt.bak3 -> ../b.txt

[root@centos7 data]#


[root@centos7 data]# rm -rf a.txt                                         软链接删除原始文件时,软链接失效,硬链接删除原始文件时,还可以通过硬链接访问

[root@centos7 data]# cat cwxd/a.txt.bak

a

bb

ccc

ddd

[root@centos7 data]# cat cwxd/b.txt.bak3

a

bb

ccc

ddd

[root@centos7 data]# rm -rf b.txt

[root@centos7 data]# cat cwxd/b.txt.bak3

cat: cwxd/b.txt.bak3: No such file or directory

[root@centos7 data]#


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

文件系统操作命令–目录

1》ls 查看文件或目录的工具

用法:ls [选项]… [文件]…

【选项】

-l 出文件名之外,列出文件的类型、权限、所有者、所属组、文件大小、修改时间等详细信息

-a 不隐藏任何以. 开始的项目

-A 列出除. 及.. 以外的任何项目(不列出“.”当前目录及“..”父目录)

-R 递归列出目录内容,若目录下有项目(文件或目录),则以下之文件皆依序列出

-n 类似 -l,但列出UID 及GID 号

-F 在列出的文件名称后加一个符号,去区分文件类型;例如*代表可执行文件;/代表是目录;@代表链接文件;普通文件之后不加符号

注意:ls -l命令可以缩写为ll

例:[root@centos7 data]# ll -a /data/

total 12

drwxr-xr-x.  3 root root  76 Dec  3 20:18 .

dr-xr-xr-x. 18 root root  236 Dec  3 19:28 ..

-rw-r--r--.  1 root root    6 Dec  1 14:21 a.txt.orig

drwxr-xr-x.  2 root root  92 Dec  3 20:15 cwxd

-rw-r--r--.  1 root root  131 Dec  1 14:44 diff.log

-rw-r--r--.  1 root root    0 Oct 28 15:38 f1

-rw-r--r--.  1 root root 2411 Dec  3 19:29 passwd

[root@centos7 data]# ll -A /data/

total 12

-rw-r--r--. 1 root root    6 Dec  1 14:21 a.txt.orig

drwxr-xr-x. 2 root root  92 Dec  3 20:15 cwxd

-rw-r--r--. 1 root root  131 Dec  1 14:44 diff.log

-rw-r--r--. 1 root root    0 Oct 28 15:38 f1

-rw-r--r--. 1 root root 2411 Dec  3 19:29 passwd

[root@centos7 data]# ll -R /data/

/data/:

total 12

-rw-r--r--. 1 root root    6 Dec  1 14:21 a.txt.orig

drwxr-xr-x. 2 root root  92 Dec  3 20:15 cwxd

-rw-r--r--. 1 root root  131 Dec  1 14:44 diff.log

-rw-r--r--. 1 root root    0 Oct 28 15:38 f1

-rw-r--r--. 1 root root 2411 Dec  3 19:29 passwd

/data/cwxd:

total 4

-rw-r--r--. 1 root root 13 Dec  1 14:45 a.txt.bak

lrwxrwxrwx. 1 root root  5 Dec  3 20:12 b.txt.bak -> b.txt

lrwxrwxrwx. 1 root root  7 Dec  3 20:13 b.txt.bak2 -> ./b.txt

lrwxrwxrwx. 1 root root  8 Dec  3 20:15 b.txt.bak3 -> ../b.txt

lrwxrwxrwx. 1 root root  6 Dec  3 19:51 data.bak -> /data/

[root@centos7 data]#

2》cd 更改目录,切换目录 

用法:cd 目标目录 

注意:cd 命令之后不可以跟文件 

【选项】: 

例:[root@centos7 data]# cd ~

[root@centos7 ~]# cd -

/data

[root@centos7 data]# cd ./

[root@centos7 data]# cd ../

[root@centos7 /]#

3》pwd 显示当前所处的目录,目前所在的目录 

【选项】: 

pwd -P 显示实际的工作目录,而非使用链接路径

[root@centos7 mail]# pwd

/var/mail

4》mkdir 创建目录

【选项】:

mkdir 只能在已存在的目录下创建目录

mkdir -p 帮助你直接将所需的目录递归创建起来。(在一个不存在的上级目录里面创建目录)

5》rmdir 删除空目录

【选项】:

rmdir 只能删除空目录

rmdir -p 递归删除空目录

6》rm 删除文件或目录

【选项】:

rm 只能删除文件

rm -r 删除目录及目录下的项目(文件和目录)

rm -f 不提示强制删除

例:[root@centos7 data]# mkdir -p 11/22/33/44

[root@centos7 data]# tree -d

.

├── 11

│   └── 22

│      └── 33

│          └── 44

└── cwxd

    └── data.bak -> /data/

6 directories

[root@centos7 data]#

[root@centos7 data]# rmdir -p 11/22/33/44

[root@centos7 data]# tree -d           

.

└── cwxd

    └── data.bak -> /data/

2 directories

[root@centos7 data]#

[root@centos7 data]# rm passwd

rm: remove regular file ‘passwd’? y

[root@centos7 data]#

7》mv 移动文件或目录 或改名

mv 原文件路径 目标文件路径 移动

选项:

-f 不提示并覆盖文件

-n 不覆盖已存在文件

-b 覆盖之前把原文件做备份,备份的文件在文件名之后有个~符号

-u 只有原文件比覆盖的文件新的时候才可以覆盖文件;旧文件不能覆盖新文件

例:[root@centos7 data]# mv f1 f2

[root@centos7 data]# ll

total 8

-rw-r--r--. 1 root root  6 Dec  1 14:21 a.txt.orig

drwxr-xr-x. 2 root root  92 Dec  3 20:15 cwxd

-rw-r--r--. 1 root root 131 Dec  1 14:44 diff.log

-rw-r--r--. 1 root root  0 Oct 28 15:38 f2

[root@centos7 data]# mv f2 cwxd/f2

mv: overwrite ‘cwxd/f2’?

[root@centos7 data]# ll f2

-rw-r--r--. 1 root root 9 Dec  3 20:54 f2

[root@centos7 data]# mv -b f2 cwxd/

mv: overwrite ‘cwxd/f2’? y

[root@centos7 data]# ll

total 12

-rw-r--r--. 1 root root    6 Dec  1 14:21 a.txt.orig

drwxr-xr-x. 2 root root  113 Dec  3 20:55 cwxd

-rw-r--r--. 1 root root  131 Dec  1 14:44 diff.log

-rw-r--r--. 1 root root 2411 Dec  3 20:49 passwd

[root@centos7 data]# ll cwxd/f2

-rw-r--r--. 1 root root 9 Dec  3 20:54 cwxd/f2

[root@centos7 data]# ll cwxd/

total 8

-rw-r--r--. 1 root root 13 Dec  1 14:45 a.txt.bak

lrwxrwxrwx. 1 root root  5 Dec  3 20:12 b.txt.bak -> b.txt

lrwxrwxrwx. 1 root root  7 Dec  3 20:13 b.txt.bak2 -> ./b.txt

lrwxrwxrwx. 1 root root  8 Dec  3 20:15 b.txt.bak3 -> ../b.txt

lrwxrwxrwx. 1 root root  6 Dec  3 19:51 data.bak -> /data/

-rw-r--r--. 1 root root  9 Dec  3 20:54 f2

-rw-r--r--. 1 root root  0 Dec  3 20:52 f2~

8》df 查看所有已挂载磁盘使用情况 或使用

[root@centos7 data]# df

Filesystem    1K-blocks    Used Available Use% Mounted on

devtmpfs          915752      0    915752  0% /dev

tmpfs            931552      0    931552  0% /dev/shm

tmpfs            931552  10452    921100  2% /run

tmpfs            931552      0    931552  0% /sys/fs/cgroup

/dev/sda7      20961280  83760  20877520  1% /

/dev/sda3      20961280 3773040  17188240  19% /usr

/dev/sda5      20961280  766248  20195032  4% /var

/dev/sda2      20961280  33012  20928268  1% /data

/dev/sda1        508580  175748    332832  35% /boot

tmpfs            186312      12    186300  1% /run/user/42

tmpfs            186312      0    186312  0% /run/user/0

[root@centos7 data]# df -h

Filesystem      Size  Used Avail Use% Mounted on

devtmpfs        895M    0  895M  0% /dev

tmpfs          910M    0  910M  0% /dev/shm

tmpfs          910M  11M  900M  2% /run

tmpfs          910M    0  910M  0% /sys/fs/cgroup

/dev/sda7        20G  82M  20G  1% /

/dev/sda3        20G  3.6G  17G  19% /usr

/dev/sda5        20G  749M  20G  4% /var

/dev/sda2        20G  33M  20G  1% /data

/dev/sda1      497M  172M  326M  35% /boot

tmpfs          182M  12K  182M  1% /run/user/42

tmpfs          182M    0  182M  0% /run/user/0

文件系统操作命令–文件

1》Linux系统中使用以下命令来查看文件的内容

cat 由第一行开始显示文件内容

tac 由最后一行开始显示文件内容

more 一页一页查看文件内容(不可以向上翻一行,可以前后翻页(Ctrl+b、空格)、向下翻一行{回车键、Ctrl+m} )

less 与more相似,可以往前翻一行(可以前后翻页(空格、pgup键和pgdn键)、向上翻一行、向下翻一行(上下箭头键,回车))

tail 默认查看文件的后十行

head 默认查看文件的前十行

nl 查看文件内容,同时顺便的显示行号

2》stat 

显示文件的所有信息 ,甚至包括存储该文件的设备的设备号

3》touch:用于修改文件或目录的时间属性,包括存储时间、更改时间。如果文件不存在,则系统或建立一个新文件。 

创建空文件(衍生出来的)

4》echo 回显,打印输出到屏幕

5》输入输出重定向

五、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符(

[root@centos7 data]# cp /etc/profile /tmp/

[root@centos7 data]# ll /tmp/profile

-rw-r--r--. 1 root root 1819 Dec  3 21:04 /tmp/profile

[root@centos7 data]# vim /tmp/profile

:%s@^[[:space:]]\+@@

[root@centos7 data]# vim /tmp/profile

HOSTNAME=`/usr/bin/hostname 2>/dev/null`

HISTSIZE=1000

if [ "$HISTCONTROL" = "ignorespace" ] ; then

export HISTCONTROL=ignoreboth

else

export HISTCONTROL=ignoredups

fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

# By default, we want umask to get set. This sets it for login shell

# Current threshold for system reserved uid/gids is 200

# You could check uidgid reservation validity in

# /usr/share/doc/setup-*/uidgid file

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then

umask 002

else

umask 022

fi

for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do

if [ -r "$i" ]; then

if [ "${-#*i}" != "$-" ]; then

. "$i"

else

. "$i" >/dev/null

fi

fi

done

unset i

unset -f pathmunge

33 substitutions on 33 lines  

6、在vim中设置tab缩进为4个字符

[root@centos7 data]# set tabstop=4

[root@centos7 data]# vim passwd

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

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

你可能感兴趣的:(第二周作业)