1. 概览:linux 下一切皆文件:

  文件目录:linux 中文件树只有一个(对应到windows中相当于只有一个盘符);文件&文件夹创建查看等操作,参考命令篇

  

2.特殊路径:

根目录: /
小家目录:~
上层目录:..
当前目录/相对路径的起始点: .
上次工作目录: -

3. 七种基本文件类型:

- : regular file 普通文件; 
  其中有数据文件,以特殊编码方式保存,需要特定程序读取,例如 /var/log/wtmp 需要last 命令读取;
d: directory    目录
l : link    链接
b : block  块设备,存储数据以供系统存取的接口设备,也就是硬盘
c : character 字符设备,串口设备, 键盘, 鼠标等
s : socket  套接字
p : pipe  管道

4. 用户目录: /home/username

/etc: 配置文件夹
  /etc/hosts : 远程主机快捷名
  /etc/shells : 所有shell 
  /etc/hostname :主机名
  /etc/os-release : OS release 信息
  /etc/sudoers  : 可以直接用visudo 打开, 存放sudo 权限用户相关信息
  /etc/passwd : 用户信息
  /etc/logind.defs : 新建用户规则文件

/etc/shadow : 密码信息

/etc/group : 组信息  

/etc/gshadow : 组密码

5. 软件安装位置

/usr/bin       :存放程序的可执行文件
/usr/lib       :库文件集中存放,方便共享
/usr/share    :存放程序需要的其他资源
/etc       :全局配置文件存放路径,例如有/etc/vim, /etc/zsh
~/.xx      :当前用户下配置文件在家目录下隐藏文件(夹); 例如 ~/.ssh, ~/.zshr

6.

/dev : 设备文件, 这个文件夹下将各类设备转换成文件形式;
  /dev/pts : 各个终端号存放的文件,可以将字符 重定向到某个终端口("hello" > 4),实现类似write 功能。

7. 动态文件夹:

/var/log/wtmp : 成功登陆用户相关信息
/var/log/btmp :失败登陆用户相关信息; btmp1: 前一个月失败登陆用户信息
/var/log/lastlog: 每个帐号最后登陆时间信息;

 8. 进程文件:

/proc/ :各类暂时文件,以及各种进程文

 9 库函数文件:

/lib/

 

文件属性 与 特殊权限

 linux 有两类用户,分别是root 和普通用户

  root: 超级管理员,拥有完全控制权,要慎重使用root 用户;

  普通用户: 可操作大部分命令

  具备sudo 权限的普通用户: 可以临时以root 权限操作

atime  : access time 内容被取用时,更新这个读取时间
ctime  : status/change time, 权限, 属性,所有者改动时,更新这个时间
mtime  : modify time  内容数据改动时,更新时间

stat 可以显示文件状态,包含上面的ACM 时间;
touch 命令可以更新上面的时间;

Linux文件还包含着隐藏属性:
  lsattr: 展示这些隐藏属性; 
  chattr: 更新隐藏属性
  chmod : 更改文件模式
  chgrp : 更改用户组
  chown : 更改用户

文件的特殊权限:这些都是针对非sudo 权限的用户,sudo 用户组权限也很大;
  具体更改这些权限操作,参开命令篇;   SUID: set_uid      SGID: set_gid      SBIT: sticky bit

 EXAM: 如果为 s 表示有原来有执行权限,S 原来是没有执行权限;
    下面分别是SUID 和 SGID 情形,当执行对应的二进制文件时候,会拥有对应的用户/组的权限;
    执行 write, 拥有当前组tty 权限 ==> 对应的/dev/pts 下面文件0,组用户有w 权限,可以写入信息;也就是write 命令实现的过程;

stick bit 示例,虽然其他组中拥有rwt 权限,但是并不能删除文件,只有创建者有权限删除;sudo 用户组可以突破这个权限;

 文件描述符:

    0. stdio
    1. stdout
    2. stderror
    三个宏定义, 定义 open, read, write 函数的头文件中
    0: STDIN_FINENO
    1: STDOUT_FILENO
    2: STDERR_FILENO
搭配上文件描述符,实现只保留成功信息;
find / -perm -o=rwt 2>/dev/null 1>11.txt  //其中 /dev/null 是文件回收站 2>/dev/null 其中必须没有空格
通过将错误的信息2放入回收站,有用信息放入文件,减少大量无用信息刷屏;

查找某个文件夹下特定后缀文件, 并统计行数, 字数
find /home/guigym/personal/ -name "*.c" -o -name "*.cpp" -exec cat {} \;    #打印出找到的文件内容,其中-o 是逻辑or 意思(-a 是逻辑 and);
cat `find /home/guigym/personal/ -name "*.c" -o -name "*.cpp"` | wc -w(-l, -m)   // 统计找到文件中字数/行数;

 

.ssh/id_rsa.pub :各类公钥文
posted on 2022-06-13 18:38  学海一扁舟  阅读(161)  评论(0编辑  收藏  举报