




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 在前一章节里面我们认识了 Linux 系统下的文件权限概念以及目录的配置说明。在这个章节当中,我们就直接来进一步的操作与管理文件与目录。包括在不同的目录间变换、建立与删除目录、建立与删除文件,还有查找文件、查看文件内容等等第四章 Linux的文件与目录管理1 目录与路径1.1 相对路径与绝对路径 相对路径- 绝对路径-1)相对路径的用途 假设你写了一个软件, 这个软件共需要三个目录,分别是 etc, bin, man 这三个目录,然而由于不同的人喜欢安装在不同的目录之下, 假设甲安装的目录是 /usr/local/packages/etc, /usr/local/packages/bin 及
2、 /usr/local/packages/man ,不过乙却喜欢安装在 /home/packages/etc, /home/packages/bin, /home/packages/man 这三个目录中,请问如果需要用到绝对路径的话,那么是否很麻烦呢? 如果你喜欢将路径的名字写的很长,好让自己知道那个目录是在干什么的,例如: /data4/staiwan19961109/models-3/smoke 这个目录,而另一个目录在 /data4/staiwan19961109/models-3/cctm ,那么我从第一个要到第二个目录去的话,怎么写比较方便?2)绝对路径的用途 但是对于文件名的正确性
3、来说,绝对路径的正确度要比较好。 一般来说,建议:如果是在写程序 (shell scripts) 的条件下,务必使用绝对路径的写法。1.2 目录的相关操作 在进行目录相关操作前,需要知道一些比较特殊的目录:. 代表此层目录. 代表上一层目录- 代表前一个工作目录 代表“目前使用者身份”所在的主文件夹account 代表 account 这个用户的主文件夹例1:请问在Linux中,根目录有没有上层目录(.)存在?cd 切换目录语法:cd 相对路径或绝对路径 最重要的就是目录的绝对路径与相对路径,还有一些特殊目录的符号。问:Linux在什么地方已经指出了当前目录?例2:在终端连续输入以下命令,请问
4、分别进入什么目录中?rootubuntu:# cd ubunturootubuntu:# cd rootubuntu:# cdrootubuntu:# cd .rootubuntu:# cd rootubuntu:# cd /var/spool/mailrootubuntu:# cd ./mqueue pwd 显示目前所在目录语法: pwd -P-P:显示出当前的路径,而非使用连接的路径mkdir 建立新目录语法: mkdir -mp 目录名称-m :配置文件案的权限。直接设定,不需要看默认权限 (umask) -p :帮助你直接将所需要的目录递归建立起来!默认情况下,需要的目录得一层一层地创
5、建例3:在/tmp中创建一个test目录,同时建立如下目录: test1/test2/test3/test4 例4:新建权限为rwxxx的目录test2rmdir 删除“空”的目录语法: rmdir -p-p:连同上层“空”的目录也一起删除例5:将上例mkdir创建的目录(/tmp)删除掉 将所有目录下的东西都删除,可使用:rm r1.3 执行文件路径的变量:$PATH 我们知道查看文件属性的命令ls的完整文件名为:/bin/ls,那么,为什么可以再任何地方执行/bin/ls这个目录呢? 这是因为环境变量PATH的帮助。例如ls,系统会依照PATH的设置去每个PATH定义的目录下查询文件名为l
6、s的可执行文件,如果在PATH定义的目录中含有多个文件名为ls的可执行文件,那么先查询到的同名命令先被执行。 echo $PATH例6:用root的身份列出查询的路径 用ubuntu的身份列出查询的路径例7:假设你是root,如果你将ls由/bin/ls移动成为/root/ls,然后你自己本身也在/root目录下,请问(1)你能不能直接输入ls来执行(2)若不能,你该如何执行ls这个命令?(3)若要直接输入ls即可执行,又该如何进行?问:为什么PATH查询的目录不能加入本目录(.)?关于PATH需要了解的几件事:不同身份用户默认的PATH不同,默认能够随意执行的目录也不同;PATH是可以修改的
7、,一般用户可用通过修改PATH来执行某些位于/sbin或 /usr/sbin下的目录来查询;用绝对或相对路径直接指定某个命令的文件名来执行,比查询PATH来得正确;命令应该要放在正确的目录下,执行才能比较方便;本目录(.)最好不要放到PATH当中。2 文件与目录管理2.1 查看文件与目录ls -aAdfFhilRS 目录名称 ls -color=none,auto,always 目录名称 ls -full-time 目录名称 参数: -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来-A :全部的文件,连同隐藏文件,但不包括 . 与 . 这两个目录,一起列出来 -d :仅列出
8、目录本身,而不是列出目录内的文件数据 -f :直接列出结果,而不进行排序 (ls 预设会以档名排序!) -F :根据文件、目录等信息,给予附加数据结构,例如: *:代表可执行文件; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件; -h :将文件容量以人类较易读的方式(例如 GB, KB 等等)列出来; -i :列出 inode 位置,而非列出文件属性; -l :长数据串行出,包含文件的属性等等数据; -n :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在账号管理提到!) -r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
9、-R :连同子目录内容一起列出来; -S :以文件容量大小排序! -t :依时间排序 -color=never :不要依据文件特性给予颜色显示; -color=always :显示颜色 -color=auto :让系统自行依据设定来判断是否给予颜色 -full-time :以完整时间模式 (包含年、月、日、时、分) 输出 -time=atime,ctime :输出 access 时间或 改变权限属性时间 (ctime) 而非内容变更时间 (modification time) 2.2 复制、删除与移动cp 复制文件或者目录cp -adfilprsu 源文件(source) 目标文件(desti
10、nation)cp options source1 source2 source3 . directory参数:-a :相当于 -pdr 的意思;-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档文件本身;-f :为强制 (force) 的意思,若目标文件已经存在且无法开启,则删除后再尝试一次;-i :若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行-l :进行硬式连结 (hard link) 的连接文件创建,而非复制文件本身;-p :连同文件的属性一起复制过去,而非使用默认属性;-r :递归持续复制,用于目录的复制行为;-s :复制成
11、为符号连结文件 (symbolic link),亦即“快捷方式”文件;-u :若 destination 比 source 旧才更新 destination !注意:如果源文件有2个以上,则最后一个目的文件一定要是“目标”才行例8:用root身份将主文件夹下的 .bashrc 复制到 /tmp 下,并更名为 bashrc。例9:切换目录到/tmp,并将/var/log/wtmp复制到/tmp且查看属性。 在默认条件中,cp的源文件与目的文件的权限是不同的,目的文件的所有者通常会是命令操作者本身。例10:复制/etc/ 这个目录下所有内容到/tmp下面。例11:将例8中复制的bashrc创建一个
12、连接文件。例12:将例11中生成的bashrc_slink复制称为bashrc_slink_1与bashrc_slink_2所以,在复制时,您必须要清楚的了解到: 是否需要完整的保留来源文件的信息? 来源文件是否为软连接文件 (symbolic link file)? 来源文件是否为特殊的文件,例如 FIFO, socket 等? 来源文件是否为目录? rm 移除文件或者目录语法:rm -fir 文件或目录参数:-f :就是 force 的意思,强制移除;-i :互动模式,在删除前会询问使用者是否动作-r :递归删除,最常用在目录的删除,这是非常危险的参数!例13:将开始在/tmp中建立的ba
13、shrc 删除掉例14:通过通配符的帮忙,将/tmp下面开头为bashrc的文件名全部删除。例15:将cp范例中所创建的/tmp/etc/这个目录删除掉例16:删除一个带有-开头的文件mv 移动文件与目录、或更名语法:mv -fiu source destination mv options source1 source2 source3 . directory参数:-f :force 强制的意思,强制直接移动而不询问;-i :若目标档案 (destination) 已经存在时,就会询问是否覆盖!-u :若目标档案已经存在,且 source 比较新,才会更新 (update)例17:复制一个文
14、件,创建一个目录,将文件移动到目录mvtest例18:将刚才的目录名称重命mvtest2例19:再创建2个文件(bashrc1,bashrc2),再全部移动到/tmp/mvtest2当中3 文件内容查阅 如果我们要查阅一个文件的内容时,该如何是好呢?Linux中 最常使用的显示文件内容的指令可以说是 cat 与 more 及 less 了。此外,如果我们要查看一个很大型的文件 ( 好几百MB时 ),但是我们只需要后端的几行字而已,那么该如何是好? cat: 由第一行开始显示文件内容。 tac: 从最后一行开始显示,可以看出 tac 是 cat 的倒着写。 nl : 显示的时候,顺道输出行号。
15、more: 一页一页的显示文件内容 less : 与 more 类似,但是比 more 更好的是,它可以往前翻页。 head : 只看头几行 tail : 只看尾巴几行 od : 以二进制的方式读取文件内容。3.1 直接查看文件内容cat 语法:cat -AEnTv参数:-A :相当于 -vET 的整合参数,可列出一些特殊字符-E :将结尾的断行字符 $ 显示出来;-n :打印出行号;-T :将 tab 按键以 I 显示出来;-v :列出一些看不出来的特殊字符tac 反向列显示nl (添加行号打印)语法:nl -bnw 文件参数:-b :指定行号指定的方式,主要有两种:-b a :表示不论是否
16、为空行,也同样列出行号;-b t :如果有空行,空的那一行不要列出行号;-n :列出行号表示的方法,主要有三种:-n ln :行号在屏幕的最左方显示;-n rn :行号在自己字段的最右方显示,且不加 0 ;-n rz :行号在自己字段的最右方显示,且加 0 ;-w :行号字段的占用的位数。more 一页一页翻动 重点在最后一行,最后一行会显示出目前显示的百分比, 而且还可以在最后一行输入一些有用的指令。在 more 这个程序的运作过程中,你有几个按键可以按的: 空格键 (space):代表向下翻一页; Enter :代表向下翻一行; /字符串 :代表在这个显示的内容当中,向下搜寻字符串; :f
17、 :立刻显示出文件名以及目前显示的行数; q :代表立刻离开 more ,不再显示该文件内容。3.2 可翻页查看文件内容less 一页一页翻动 less 的用法比起 more 又更加的有弹性,怎么说呢?在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 pageup pagedown 等按键的功能来往前往后翻看文件 空格键 :向下翻动一页; pagedown:向下翻动一页; pageup :向上翻动一页; /字符串 :向下搜寻字符串的功能; ?字符串 :向上搜寻字符串的功能; n :重复前一个搜寻 (与 / 或 ? 有关!) N :反向的重复前一
18、个搜寻 (与 / 或 ? 有关!) q :离开 less 这个程序; 我们可以将输出的数据作一个最简单的选取,那就是取出前面 (head) 与取出后面 (tail) 文字的功能。 不过,要注意的是, head 与 tail 都是以行为单位来进行数据选取的。语法:head -n number 文件参数:-n :后面接数字,代表显示几行的意思例21: 显示/ect/passwd前面15行? 如果后面10行的数据都不打印,只打印/ect/passwd的前面几行,怎么实现?3.3 数据选取tail 取出后面几行语法:tail -n number 文件参数:-n :后面接数字,代表显示几行的意思例22:
19、 如果不知道/ect/passwd有多少行,只想列出12行以后的数据? 例23: 显示/ect/passwd第11行到第20行的数据?od 非纯文本文件od -t TYPE 文件参数:-t :后面可以接各种类型 (TYPE)的输出,例如:a :利用预设的字符来输出;c :使用 ASCII 字符来输出dsize :利用十进制来输出数据,每个整数占用 size bytes ;fsize :利用浮点数值来输出数据,每个数占用 size bytes ;osize :利用八进位来输出数据,每个整数占用 size bytes ;xsize :利用十六进制来输出数据,每个整数占用 size bytes ;例
20、24: 将/usr/bin/passwd的内容使用ASCII方式来输出 将/etc/issue这个文件的内容以八进制列出存储值与 ASCII的对照表 每个文件在 linux 下都会记录许多的时间参数,有三个主要的变动时间, 这三个时间的意义如下: modification time (mtime):当该文件的内容数据变更时,就会更新这个时间。 status time (ctime):当该文件的状态 (status)改变时,就会更新这个时间。 access time (atime):当该文件的内容被取用时,就会更新这个读取时间 (access)。3.4 修改文件时间或者创建新文件: touch
21、touch -acdmt 文件参数:-a : 仅修订 access time;-c : 仅修改时间,而不建立文件;-d : 后面可以接日期,也可以使用 -date=日期或时间-m :仅修改 mtime ;-t : 后面可以接时间,格式为YYMMDDhhmm例25:在/tmp下创建一个空白文档testtouch并查看时间例26:将/.bashrc复制成为bashrc,假设复制完全的属性,检查其时间。例27:修改上例中的bashrc文件,将时间调整为3天前例28:修改上例中的bashrc文件的时间改为2015/03/31 12:054 文件与目录的默认权限与隐藏权限前面的学习我们知道,一个文件有若
22、干个属性,包括 ( r, w, x ) 等基本属性,及是否为目录 (d) 文件 (-) 或者是连结文件 (l) 等等的属性!要修改属性的方法在前面也约略提过(?、?、?),这里再加强补充一下! 假设你的系统有个一般身份使用者 messi,他的群组为 users,他的家目录在 /home/messi,你想将你的 /.bashrc 复制给他(假设你是 root),可以怎么作? 某人想在 /tmp 底下建立一个目录,这个目录名称为 chapter ,并且,这个目录拥有者为 messi,群组为 users ,此外,任何人都可以进入该目录浏览文件,不过除了 messi之外,其它人都不能修改该目录下的文件
23、。4.1 文件默认权限: umask查看默认权限:umask或者umask S在默认权限的属性上,目录与文件是不一样的。各为多少?文件:-rw-rw-rw-目录:drwxrwxrwx例29:假设你的umask为003,请问该umask情况下,新建的文件与目录权限是什么?在umask中,新建文件和目录的umask为多少?例如,当umask为0022时,请新建文件和目录,并查看其权限4.2 文件隐藏属性: chattr,lsattr 文件的隐藏的属性对于系统有很大的帮助的, 尤其是在系统安全 (Security) 上面,很关键。下面我们就来看看如何设置与检查这些隐藏的属性。chattr +-=AS
24、acdistu 文件或目录名称 (设定文件的隐藏属性)参数:+ :增加某一个特殊参数,其它原本存在参数则不动。- :移除某一个特殊参数,其它原本存在参数则不动。= :设定一定,且仅有后面接的参数A :当设定了 A 这个属性时,这个档案(或目录)的存取时间 atime (access)将不可被修改,可避免例如手提式计算机容易有磁盘 I/O 错误的情况发生!S :这个功能有点类似 sync 的功能!就是会将数据同步写入磁盘当中!可以有效的避免数据流失!a :当设定 a 之后,这个文件将只能增加数据,而不能删除,只有 root才能设定这个属性。c :这个属性设定之后,将会自动的将此文件压缩,在读取的
25、时候将会自动解压缩,但是在储存的时候,将会先进行压缩后再储存(看来对于大文件似乎蛮有用的!)d :当dump(备份)程序被执行的时候,设定 d 属性将可使该文件(或目录)不具有dump功能i :这个 i 可就很厉害了!他可以让一个文件不能被删除、改名、设定连结也无法写入或新增资料!对于系统安全性有相当大的帮助。j :当使用 ext3 这个文件系统格式时,设定 j 属性将会使文件在写入时先记录在journal 中!但是当 filesystem 设定参数为 data=journalled 时,由于已经设定了日志了,所以这个属性无效!s :当文件设定了 s 参数时,他将会被完全的移除出这个硬盘空间。
26、u :与 s 相反的,当使用 u 来设定文件时,如果文件被删除,则数据内容其实还存在磁盘中。例30:请尝试在/tmp下面创建文件,并加入i的参数,尝试删除看看。lsattr 显示文件隐藏属性 lsattr -aR 文件或目录参数:-a :将隐藏文件的属性也秀出来;-R :连同子目录的数据也一并列出来;-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名。4.3 文件特殊权限: SUID,SGID,SBID我们前面一直提到关于文件的重要权限,那就是 rwx 这三个读、写、执行的权限。 但是,使用ls时,你会注意到了一件事,那就是,怎么我们的 /tmp 权限有些奇怪? 还有,那个 /us
27、r/bin/passwd 也怪怪的?怎么回事呢?Set UID 当s这个标志出现在文件所有者的x权限上时,此时就被称为Set UID,简称为SUID的特殊权限。SUID对于一个文件的特殊功能是什么? SUID权限仅对二进制程序有效; 执行者对于该程序需要具有x的可执行权限; 本权限仅在执行该程序的过程中有效; 执行者将具有该程序所有者的权限。SUID对于目录无效Set GID 当s这个标志在文件所有者的x项目为SUID,那么s在用户组的x时则称为Set GID,SGID。 SGID权限仅对二进制程序有效; 执行者对于该程序需要具有x的可执行权限; 执行者将具有该程序用户组的支持。 SGID可用
28、在目录上,设置SGID后,它将具有如下功能: 用户若对此目录具有r与x的权限时,该用户能够进入此目录; 用户在此目录下的有效用户组将会变成该目录的用户组; 用户若在此目录下具有w权限,则用户所创建的新文件的用户组与此目录的用户组相同。 SGID对于项目开发非常重要Sticky BitSBIT目前只针对目录有效,对于文件已经没有效果。SBIT对于目录的作用: 当用户对于此目录具有w、x权限,即具有写入的权限; 当用户在该目录下创建文件或目录时,仅有自己与root才有权利删除该文件;举例来说,我们的 /tmp 本身的权限是”drwxrwxrwt”, 在这样的权限内容下,任何人都可以在 /tmp 内
29、新增、修改文件,但仅有该文件/目录建立者与 root 能够删除自己的目录或文件。这个特性也是挺重要的。SID/SGID/SBIT 权限设置 如何配置文件使成为具有 SUID 与 SGID 的权限呢? 1) 数字更改权限法 在三个数字之前再加上一个数字的话,那最前的面数字就代表这几个属性。 4 为 SUID 2 为 SGID 1 为 SBIT例31:新建文件,设置隐藏权限思考:chmod 7666 test1;ls l test1 为什么会出现大写的S、 T2) 符号法SUID为u+sSGID为g+sSBIT为o+t例32:设置test1的权限为-rws-x-x ,在上述权限中加上SGID与SB
30、IT,并查看。5 命令与文件的查询 我们经常需要知道哪个文件放在哪里,才能够对该文件进行一些修改或者维护等操作。某些软件配置文件的文件名是不变的,但由于有不同的发行版,放置的目录则不同。5.1 脚本文件名的查询which (寻找“执行文件”) which -a command参数:-a :将所有可以找到的指令均列出,而不只第一个被找到的指令名称例33:分别用root与一般账号查询ifconfig这个命令的完整文件名,分析2次查询的结果是否一样?如果不一样,说明原因?因为which是根据用户所设置的PATH变量内的目录去查找可执行文件,所以,不同的PATH设置内容所找到的目录不一样。例34:请找
31、出cd这个命令的完整文件名。如果找不到,分析原因?因为cd是bash内置的命令。但是which默认是查找PATH内所规范的目录,所以当然一定找不到的。5.2 文件名查找 在 Linux 下也有相当优异的查找命令。通常 find 不很常用的,因为速度慢之外。通常我们都是先使用 whereis 或者是 locate 来检查,如果真的找不到了,才以 find 来查找。whereis(寻找特定文件)whereis -bmsu 文件或目录名参数:-b :只找 二进制的文件-m :只找在说明文件 manual 路径下的文件-s :只找 source 来源文件-u :查找不在上述三个选项中的其他特殊文件例3
32、5:请用不同身份找出ifconfig这个文件名 找出跟passwd有关的“说明文件“文件名思考:whereis到底是使用什么来查找的?为什么速度快? 数据库查找locatelocate-ir keyword参数:-i :忽略大小写的差异-r :后面可以接正则表达式的显示方式Locate:依据/var/lib/mlocate内的数据库记载,找出用户输入的关键字文件名updatedb:根据/etc/updatedb.conf的设置去查找系统硬盘内的文件名,并更新/var/lib/mlocate内的数据库文件findfind PATH option action参数:1. 与时间有关的参数:-ati
33、me n : n 为数字,意义为在 n 天之前的一天之内被 access 过的文件;-ctime n : n 为数字,意义为在 n 天之前的一天之内被 change 过状态的为背景;-mtime n : n 为数字,意义为在 n 天之前的一天之内被 modification 过的文件;-mtime n-mtime n : n 为数字,意义为在 n 天之前的一天之内被 改 过的文件;-mtime +n :列出n天之前(不含n天本身)被更改过的文件名;-mtime -n :列出n天之内(含n天本身)被更改过的文件名;-newer file : file 为一个存在的文件,意思是说,只要文件比 fi
34、le 还要新,就会被列出来。例36:将过去系统上面24小时内有改动的文件列出来例37:寻找/etc 下面的文件,如果文件日期比/etc/passwd新就列出来7654321nowfind相关时间参数的意义2. 与用户或用户组名有关的参数:-uid n :n 为数字,这个数字是使用者的账号 ID,亦即UID ,这个 UID 是记录在/etc/passwd 里面与账号名称对应的数字。-gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID,这个 GID 记录在/etc/group,-user name :name 为使用者账号名称喔!例如 messi-group name:name 为群组名称喔,例如 users ;-nouser :寻找文件的拥有者不存在 /etc/passwd 的人!-nogroup :寻找文件的拥有群组不存在于 /etc/group 文件当您自行安装软件时,很可能该软件的属性当中并没有文件拥有者,这是可能的!在这个时候,就可以使用 -nouser 与 -nogroup 搜寻。例38:查找home下面属于ubuntu的文件例39:查找系统中不属于任何人的文件3. 与文件权限及名称有关的参数:-name filename:搜寻文件名称为 filename 的文件;-size +-SIZE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中信息技术课堂教学方法的创新研究
- 2025光电车衣发电系统
- 中小学心理健康教育课程设计与实践知到课后答案智慧树章节测试答案2025年春浙江师范大学
- 三级人力资源管理师-三级人力资源管理师考试《理论知识》押题密卷6
- 三级人力资源管理师-《企业人力资源管理师(理论知识)》考前强化模拟卷6
- 山东省菏泽市东明县第一中学2024-2025学年高二下学期开学地理试题
- 2018高考人教政治二轮巩固练题(六)及解析
- 2018年普通高校招生全国统一考试仿真模拟(一)语文试题
- 甘肃省张掖市高台县一中2024-2025学年高三下学期第二次检测语文试题(原卷版+解析版)
- 2025届福建省漳州市高三下学期第三次检测历史试题 (原卷版+解析版)
- 临床护理技术操作常见并发症的预防与处理规范
- 《建筑施工塔式起重机安装、使用、拆卸安全技术规程》
- 风管工程量计算方法
- 2024年江苏连云港灌云县水务集团有限公司招聘笔试参考题库含答案解析
- 3×36000KVA锰硅合金直流炉1×6300KVA 精炼炉及配套 1×36000KVA富锰渣炉建设项目环评可研资料环境影响
- 《阿Q正传》《边城》联读课件 统编版高中语文选择性必修下册
- 间质性肺炎患者的护理健康评估
- 设计方案提资
- 【海信电器员工流失现状调查及其原因和完善策略10000字】
- 小学美术人教版三年级下册 .动物的花衣裳 教学课件
- 国资公司招聘总经理试题
评论
0/150
提交评论