一.文件与目录管理
1.【“.”代表此层目录】
【“. .”代表上一层目录】
【“-”代表前一个工作目录】
【“~”代表目前用户身份所在的主文件夹】
【“~account”代表account这个用户的主文件夹】
根目录的上层目录就是自己
2. cd [绝对路径/相对路径]:切换目录
cd=cd ~
3. pwd [-P]:显示目前所在目录(注意大写哦)
-P表示显示文件的正确路径,而非是连接路径
如:一个连接文件(类似windows下的快捷方式)mail在/var/mail下,而他的真正路径是/spool/mail
仅仅在/var/mail目录下用pwd,显示:/var/mail;
若用pwd -P,结果显示:/spool/mail
4.mkdir [-mp] 目录名称:新建新目录
-m:配置文件权限,无视默认权限
-p:递归创建目录
注:m后面必须跟上权限内容
如:mkdir -pm a=rwx test
5. rmdir [-p] 目录名称:删除目录(仅能删除空的目录)
-p:递归删除空的子目录
如:/test2/test2-1下有文档111.txt,则rmdir -p test2就回失败,提示目录非空,此时若要删除,可用rm -r test2
6.查看文件与目录:ls [-aAdfFhilnrRSt] 目录名称
-a:全部文件,包括隐藏文件
-A:除了 . 与 . . 两个目录外的全部文件,包括隐藏文件
-d:仅列出目录本身
-f:直接列出结果,但不排序
-F:根据文件、目录等信息附加上数据结构,如:*表示可执行文件,/表示目录,=表示socket文件,|表示FIFO文件
-h:将文件容量以较易读的方式列出
-i:列出inode号码
-l:列出文件属性与权限等信息
-n:列出UID与GID
-r:倒序
-R:列出包含子目录
-S:以文件容量大小排序
-t:依时间排序
--color=never / always / auto 不显示文件颜色 / 显示颜色 / 自动判断显示颜色
--full-time:以完整时间模式显示
--time={atime,ctime}:输出访问时间或改变权限属性时间
7.复制:cp [-adfilprsu] 源文件 目标文件
cp [options] source1 source2 source3 ... directory
-a:相当于-pdr,整个数据特性
-d:若源文件为连接文件的属性,则复制连接文件属性而非文件本身
-f:强制,若目标文件已存在且无法开启,则删除后再试
-i:若目标文件已存在,覆盖前会询问
-l:硬连接的连接文件创建,而非复制文件本身
-p:连同文件属性一起复制
-r:递归复制
-s:复制为符号链接文件,即快捷方式文件
-u:若目标文件比源文件旧才更新
默认下,cp的源文件与目标文件权限不同
8.移除:rm [-fir]文件或目录
-f:force,忽略不存在的文件,不会出现警告
-i:删除前询问
-r:递归删除
9.移动/改名:mv [-fiu] source destination
mv [options] source1 source2 source3...directory
-f:强制,目标文件已存在,不会询问直接覆盖
-i:询问覆盖
-u:若目标文件已存在,且source比较新,才更新
10.取得文件名:basename
11.取得目录名称:dirname
12.文件内容查阅:
(1)直接查看内容:cat [-AbEnTv]
-n:打印出行号
-A:列出一些特殊字符,而不是空白而已;
-b:列出行号,针对非空白行;
-E:将结尾的断行字符$显示出来;
-T:将[Tab]键以^I显示;
-v:列出一些看不出来的特殊字符;
(2)反向列示:tac
(3)添加行号打印:nl [-bnw]
(4)可翻页查看:more/less
more只能向下翻页,less可上下翻页
(5)取出前几行:head [-n number] 文件
-n:后接数字,表示显示几行
(6)取出后几行:tail [-n number] 文件
-n:后接数字,表示显示几行
-f:表示持续减持后门所接的文件名,等到按下ctrl -c才结束tail的检测
13.修改文件时间/创建新文件:touch [-acdmt] 文件
-a:仅修改访问时间为当前时间atime;
-c:仅修改文件的状态时间,若该文件不存在,则不会创建新文件ctime;
-d:修改日期;
-m:仅修改文件的更新时间mtime;
-t:修改文件的时间,格式为[YYMMDDhhmm];
注:(1)touch不加任何参数,默认修改所有时间为当前时间;
(2) -a,-c,-m,仅仅将对应时间修改为系统当前时间;
如:当前时间为2014年7月27日17时10分,用户主文件夹下,存在(drwxrwxr-x. 2 yonghu yonghuzu 4096 7月 27 15:11 aaa2),该文件状态如下
[yonghu@CentOS yonghu]$ stat aaa2
File: "aaa2"
Size: 4096 Blocks: 8 IO Block: 4096 目录
Device: 801h/2049d Inode: 664366 Links: 2
Access: (0775/drwxrwxr-x) Uid: ( 500/ yonghu) Gid: ( 500/ yonghuzu)
Access: 2014-07-27 16:20:50.318822795 +0800
Modify: 2014-07-27 15:11:01.837315104 +0800
Change: 2014-07-27 15:11:01.837315104 +0800
仅仅修改atime为前一天的17点10分,可用命令
[yonghu@CentOSyonghu]$touch -at 201407261701 aaa2【ps:at顺便不可换,t后门要跟需改的时间】
[yonghu@CentOS yonghu]$ stat aaa2
File: "aaa2"
Size: 4096 Blocks: 8 IO Block: 4096 目录
Device: 801h/2049d Inode: 664366 Links: 2
Access: (0775/drwxrwxr-x) Uid: ( 500/ yonghu) Gid: ( 500/ yonghuzu)
Access: 2014-07-26 17:01:00.000000000 +0800
Modify: 2014-07-27 15:11:01.837315104 +0800
Change: 2014-07-27 17:02:46.720823557 +0800
14.文件默认权限:umask [-S]
-S:以符号类型方式显示权限
如:[yonghu@CentOS yonghu]$ umask 【ps:看后面3组数字】
0002
[yonghu@CentOS yonghu]$ umask -S
u=rwx,g=rwx,o=rx
(1)若用户创建文件,默认权限为:-rw-rw-rw-,也就是最大为666;
若用户创建目录,默认权限为:drwxrwxrwx,即为777;
umask后产生的结果的数字表示默认值需减掉的权限,如例子中002,表示user和group并没拿掉任何权限,others的权限被拿掉了w这个权限;
(2)umask 022,表示新建的文件用户自己具有w权限,而group和others只有r的权限;
如:[root@www ~]# umask 002
[root@www ~]#touch test1
[root@www ~]#mkdir test2
[root@www ~]# ll
-rw-r--r--1 root root 0 Sep 27 00:25 test1
drwxr-xr-x root root 4096 Sep 27 00:25 test2
15.文件隐藏属性
(1)设置文件隐藏属性:chattr [+-=] [ASacdistu] 文件或目录名称
+:增加某一个特殊参数,其他原本存在的参数则不动;
-:删除某一个特殊参数,其他原本存在的参数则不动;
=:仅有后面接的参数;
a:当设置 a 之后,该文件只能增加数据,而不能删除和修改数据,只有root才可设置此属性;
i:当设置 i 之后,可让该文件不可被更改,只有root才可设置此属性;
(2)显示文件隐藏属性:lsattr [-adR] 文件或目录
-a:将文件隐藏的属性显示出来;
-d:如果接的是目录,仅列出目录本身的属性;
-R:连同子目录的数据一起显示;
16.查看文件类型:file 文件
17.寻找“执行文件”:which [-a] command
-a:所有由PATH目录中可找到的命令均列出;
18.寻找特定文件:whereis [-bmsu] 文件或目录名
locate [-ir] keyword
-i:忽略大小写;
-r:后接正则表达式的显示方式;
find [PATH] [option] [action]
(1)与时间有关的参数:-atime,-ctime,-mtime;
-mtime n:n为数字,表示在n天之前的“一天内”被更改的文件;
-mtime +n:表示在n天之前(不含n天本身)被更改的文件名;
-mtime -n:表示在n天之内(含n天本身)被更改的文件名;
-newer file:file为一个存在的文件,列出比file还要新的文件名;
(2)与用户/用户组名有关的参数:
-uid n:n表示用户账号ID,即UID;
-gid n:n表示GID;
-user name:name表示账号名;
-group name:name表示用户组名;
-nouser:寻找文件的所有者不存在/etc/passwd中的用户;
-nogroup:寻找文件的所有用户组不存在/etc/group中的文件;
(3)与文件权限及名称有关的参数:
-name filename:查找文件名为filename的文件;
-size [+-]SIZE:查找比SIZE还要大(+)或小(-)的文件,SIZE规格有:c表示byte,k表示1024bytes;
-type TYPE:查找文件类型为TYPE的;
-perm mode:查找文件权限刚好为mode的文件;
-perm -mode:查找文件权限必须要全包括mode的权限的文件;
-perm +mode:查找文件权限包含任一mode的权限的文件;
whereis 严格来讲是从你环境变量的路径中查找目标 ;
locate则是从 updatedb命令生成的数据库中查找目标。