一、文件与目录相关命令
1. cd: 切换目录
. : 代表此层目录
.. : 上一层目录
- :前一个工作目录
~ :当前用户主文件夹
~account : account用户的主文件夹
2. pwd: 显示当前目录
3.mkdir: 新建一个目录
mkdir -mp 目录名称
参数:
-m : 配置文件夹的权限
-p : 递归创建目录
范例:新建权限为rwx--x--x的目录
mkdir -m 711 test
4.rmdir: 删除一个空的目录
rmdir -p 目录名称
参数:
-p:递归删除上层空目录
5.cp: 复制文件或目录
cp [-adfilprsu] 源文件 目标文件
cp [options] source1 source2 ... directory
参数:
-a : 相当于-pdr
-d : 若源文件为链接文件,则复制链接文件属性而非文件本身
-f : 强制,若目标文件已存在则覆盖
-i :覆盖前询问
-p : 连同文件的属性一起复制,而非使用默认属性
-r : 递归复制
-s : 复制为链接文件,即“快捷方式”
-u : 若目标文件比源文件旧才复制
6. rm : 删除文件或目录
rm [-fir] 文件或目录
参数:
-f : 强制删除
-i :互动模式,删除前询问用户
-r : 递归
7 mv : 移动目录或文件
mv [-fiu] 源文件 目标问题
mv [options] source1 source2 ... directory
8. basename: 获取文件名
dirname: 获取文件所在目录名称
二、文件查看命令
1. cat : 将文件内容显示在屏幕上。
tac : 反向显示文件内容,与cat相反
nl : 添加行号显示
more : 按页显示,但无法向前翻页,只能向后翻
less : 按页显示
head : 前几行
tail : 后几行
2. touch : 修改文件时间或创建新文件
touch [-acdmt] 文件
参数:
-a : 仅修改访问时间
-c : 仅修改文件的创建时间,如果文件不存在则不会创建文件
-d : 后面接可修改的日期而不用当前的日期,也可使用--date="日期或时间"
-m : 修改更新时间
-t : 后面接欲修改的时间而不是目前时间,格式为YYMMDDhhhmm
范例:
touch -d "2 days ago" bashrc
3. 文件目录默认权限: umask, umask是文件建立要去掉的权限, 如umask为0022, 则新建文件的默认权限为755
命令:umask
结果: 0022
命令: umask -S
结果: u=rwx,g=rx,o=rx
设置umask的命令
umask 002
4. 文件隐藏属性chattr, lsattr
chattr [+-=] [ASacdistu] 文件或目录名称
参数:
+ : 增加某个特殊参数, - :删除某个特殊参数 = :赋值
A : 访问文件时不会修改atime
a : 文件的内容只能新增,不能删除也无法修改
i : 文件无法删除,改名
lsattr [-adR] 文件或目录
参数:
-a : 将隐藏文件的属性也显示出来
-d : 仅列出目录本身的属性,而非文件
-R :连同子目录的数据也列出来
5. 文件特殊权限:SUID,SGID,SBIT
(1)SUID
(2)SGID
(3)SBIT
当用户在该目录下创建文件或目录时,仅用户本身和root才有权利删除创建的文件或目录。
同样适用chmod设置SUID,SGID,SBIT权限,只不过在原有权限的基础上再加上3位二进制
chmod 4755 test <= test文件的权限修改为 -rwsr-xr-x
chmod 6755 test <= test文件的权限修改为 -rwsr-sr-x
6. 文件查询
(1)which 查询可执行文件
这个命令根据PATH环境变量设置的路径去查询"可执行文件"的文件名,不在其中的则查不到
(2)whereis 查找特定文件
whereis [-bmsu] 文件或目录名
参数:
-b : 二进制文件
-m : 在manual路径下的文件
-s : 只找source源文件
-u : 查找不在上述三个选项当中的其他特殊文件
(3)locate 部分匹配查找:依据/var/lib/mlocate内的数据库记载,找出用户输入关键字相关的文件名,可使用updadedb命令更新数据库记载
locate [-ir] keyword
参数:
-i : 忽略大小写差异
-r : 后面可接正则表达式
(4)find
find [PATH] [option] action
参数:
1. 与时间有关的参数:共有-atime, -ctime, -mtime
例:find / -mtime +2 <= 2天之前修改过的文件
find / -mtime -2 <= 2天内修改的文件
find / -mtime 2 <= 从现在倒数第2天修改的问题
2. 与用户和用户组有关的参数 -user, -group
3. 文件权限和文件名有关的参数
-name filename : 文件名为filename的文件
-size [+-]SIZE : 大于或小于SIZE的文件,如 -size +50k
-type TYPE : 文件类型,TYPE的值有:f(一般文件)、b(c)(设备文件)、d(目录)、l(链接文件)、
s(Socket)
-perm [+-]mode : 文件权限,无+-:权限等于mode, + : 权限是mode的子集, - : 包含全部mode
4. 可进行的操作action
-exec command : command用来处理查找到的结果,默认为print
例: find / -perm +7000 -exec ls -l {} \;
上述命令中 {} 表示find查询到的结果, \; 表示整个命令结束。
三、文件压缩与打包
1. gzip :默认会删除原文件
gzip [-cdtv#] 文件名
zcat 文件名.gz <= 如果压缩的是文本文件,zcat可直接读取gz文件内容
参数:
-c : 将压缩过程输出到屏幕中
-d : 解压
-v : 显示原文件/压缩文件的压缩比等信息
-# :压缩等级,-1 最快,压缩比最差,-9 最慢,压缩比最好,默认-6
指定压缩后的文件名会保留原文件
gzip -9 -c man.config > man.config.gz
2. bzip2
bzip2 [-cdkzv#] 文件名
bzcat 文件名.bz2
参数:
-k : 保留原文件
-z : 压缩
3. tar 打包命令:gzip和bzip2仅针对单个文件进行压缩
压缩 : tar -jcv [-f 新建的文件名] 文件或目录
查看 : tar -jtv -f 压缩文件名
解压 : tar -jxv -f 压缩文件名 -C 解压的目录位置