Linux学习随记(二)

一、文件与目录相关命令

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

  • SUID权限仅对二进制程序有效
  • 执行者对该程序有X的可执行权限
  • 本权限仅在该程序的执行过程中有效
  • 执行者具有该程序所有者(owner)的权限

(2)SGID

  • SGID对二进制程序和目录有用
  • 程序执行者对该程序具有X的权限
  • 执行中在程序执行过程中获得该程序用户组的权限
  • 用户如果在目录下具有w权限,则用户在该目录下创建的文件的用户组与此目录的用户组相同

(3)SBIT

  • 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 解压的目录位置

 

你可能感兴趣的:(Linux)