第二周作业
1、描述linux目录结构以及目录结构命名规定
FHS全称(Filesystem Hierarchy Standard),中文意思是目录层次标准,是Linux的目录规范标准 FHS定义了两层规范: 第一层:“/”目录下的各个目录应该放什么文件数据,例如:/etc目录下放置系统的配置文件,例如:/etc/exports,/etc/hosts,而/bin和/sbin放
置程序及系统命令。 第二层:是针对/usr(unix software resource|Secondary hierarchy)和/var(Variable data)这两个目录的子目录来定义。例如:/var/log下
放置系统日志文件等 linux系统的目录结构最顶端是“/”,一切目录从根开始。 我们可以通过tree命令得到根(/)下的目录结构。 重要目录
-
/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。 -
/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 -
/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 -
/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。 -
/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 -
/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 -
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 -
/media:
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 -
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。 -
/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 -
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。 -
/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 -
/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 -
/srv:
该目录存放一些服务启动之后需要提取的数据。 -
/sys:
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
-
/tmp:
这个目录是用来存放一些临时文件的。 -
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 -
/usr/bin:
系统用户使用的应用程序。 -
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。 -
/usr/src:
内核源代码默认的放置目录。 -
/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 -
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
Linux 系统中,文件和目录的命名规则如下: 除了字符“/”之外,所有的字符都可以使用,但应避免使用 <、>、?、* 等。
应避免使用特殊字符作为普通文件的第一个字符,如果一个文件名中包含了特殊字符,例如空格,那么在访问这个文件时就需要使用引号将文件名括起来。 目录名或文件名的长度不能超过 255 个字符。 目录名或文件名是区分大小写的。如 DOG、dog、Dog 和 DOg ,是互不相同的目录名或文件名。 与 Windows 操作系统不同,文件的扩展名对 Linux 操作系统没有特殊的含义,换句话说,Linux 系统并不以文件的扩展名开分区文件类型。例如,dog.exe 只是一个文
件,其扩展名 .exe 并不代表此文件就一定是可执行文件。
2、显示/etc目录下,所有以.d结尾的文件或目录
find /etc -name "*.d" ls -d /etc/*.d
3、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
ls /etc/[m,n,r,p]*.conf
4、创建/app/rootdir目录,并复制/root下所有文件到该目录内, 要求保留原有权限
mkdir -p /app/rootdir
cp -a /root/. /app/rootdir/
5、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
mkdir -p /tmp/a{1/{a,b},2}
mkdir /tmp/{x,q}_{y,z}
6、总结用户、用户组管理命令并演示命令以及常见用法
1. useradd命令 useradd命令用于创建新的用户,格式为“useradd [选项] 用户名”。 参数作用 -d 指定用户的家目录(默认为/home/username) -e 账户的到期时间,格式为YYYY-MM-DD. -u 指定该用户的默认UID -g 指定一个初始的用户基本组(必须已存在) -G 指定一个或多个扩展用户组 -N 不创建与用户同名的基本用户组 -s 指定该用户的默认Shell解释器 2. groupadd命令 groupadd命令用于创建用户组,格式为“groupadd [选项] 群组名”。 3. usermod命令 usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”。 参数作用 -c 填写用户账户的备注信息 -d -m 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去 -e 账户的到期时间,格式为YYYY-MM-DD -g 变更所属用户组 -G 变更扩展用户组 -L 锁定用户禁止其登录系统 -U 解锁用户,允许其登录系统 -s 变更默认终端 -u 修改用户的UID 4. passwd命令 passwd命令用于修改用户密码、过期时间、认证信息等,格式为“passwd [选项] [用户名]”。 普通用户只能使用passwd命令修改自身的系统密码,而root管理员则有权限修改其他所有人的密码。 参数作用 -l 锁定用户,禁止其登录 -u 解除锁定,允许用户登录 --stdin 允许通过标准输入修改用户密码 -d 使该用户可用空密码登录系统 -e 强制用户在下次登录时修改密码 -S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 5. userdel命令 userdel命令用于删除用户,格式为“userdel [选项] 用户名”。 参数作用 -f 强制删除用户 -r 同时删除用户及用户家目录
7、文件权限,属主属组管理命令有哪些,并演示命令以及用法
chmod用来变更文件或目录的权限。 格式为chmod [选项] 文件名... 文件的三类用户: u :属主 g :属组 o :其他 a :所有 授权表示法:直接操作一类用户的一个权限位r,w,x; u+, u- chmod u+x,g+w f01 g+, g- o+, o- a+, a- 注意:用户仅能修改属主为自己的那些文件的权限; 从属关系管理命令:chown,chgrp chown 命令: 改变某个文件或目录的所有者和所属的组 格式为:chown [选项] 用户 文件名... 选项:-R:递归修改 chgrp 命令:用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。 格式为:chgrp [选项] 组 文件名... 注意:仅管理员可修改文件的属主和属组
8、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为 "Gentoo Distribution"
useradd gentoo -G bin,root -s/bin/csh -c "Gentoo Distribution"