一、描述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