Notes of Basic Linux Part-2 Files, Directories, FS

Notes of Basic Linux Part-2 Files, Directories, FS

2012-03-03. Category & Tags: Vbird, Linux, Commands, 鸟哥

see also jlevy/the-art-of-command-line (multi-language)

Organised 2017 March.
Notes from 2012 April.
多年前(2012)写的“鸟哥的Linux 私房菜”学习笔记。 - Chapters 6~9 -ing
基本的命令应该没什么变化吧。

第6章、Linux文件权限与目录配置 #

user, group #

Linux文件权限概念 #

Linux文件属性 (ls -al) #

*首位类型: 
    d: Dir  
    -: 正规文件(regular file )
        ASCII/plain text; binary; data(eg: last 才能读 /ar/log/wtmp)  
    l: Link  
    b: Block dev, 可供储存的接口设备(可随机存取装置)  
    c: Character dev, 串行端口设备,例如键盘、鼠标(一次性读取装置)  
    s: Socket, 常见于 /var/run  
    p: Pipe, FIFO. see: man fifo. 在解决多程序同时存取一个文件所造成的错误。  
*时间: 最后修改时间

Note: 中文时间乱码: 用『LANG=en_US』来修改语系. /etc/sysconfig/i18n

改变属性与权限: chgrp, chown, chmod #

*chgrp [-R] toGrpName file/folderName  
*chown [-R] toOwnName:togrpname file/foldername  
*chmod [-R] [a]-x ./foldername  
    Owner; Group; Others; All(default).

目录与文件之权限意义. OBS:目录, 即文件名列表. 文件名与目录有强烈的关连 #

r (read contents in directory) 
#OBS: 不可以了解内部属性 vs=> x
w (modify contents of directory)  
#异动该目录结构列表的权限  
#eg:删除已经存在的文件与目录(不论该文件的权限为何!)  
#OBS:即使他人的某dir在自家dir下, 如果不能清空其列表, 那么也就不能删除此目录了.  
x (access directory)  
#即, 能否cd进入此目录, 
#OBS: 含各列表项目属性 vs=> r

eg: 如果知道内部文件名, 即使没有目录的r权限, 也可以了解某文件属性 (查看文件属性 只与 目录属性的x权限有关, 与文件的属性的权限无关)

Linux文件种类与扩展名 #

*基本上,Linux系统上的文件名真的只是让你了解该文件可能的用途而已, 真正的执行与否仍然需要权限的规范才行!  
*Ext2/Ext3文件系统时,针对文件的档名长度限制为:  
    单一文件或目录的最大容许文件名为 255 个字符;  
    包含完整路径名称及目录 (/) 的完整档名为 4096 个字符。

Linux目录配置 #

很难用纯文本记录, [请看原网站](http://bit.ly/linuxFhs) 

Linux目录配置的依据–FHS:/, /usr, /var #

目录树(directory tree) #

绝对路径与相对路径 #

CentOS 的观察: lsb_release #

第七章、Linux 文件与目录管理 #

目录与路径 #

0. 相对路径与绝对路径  
0. 目录的相关操作: cd, pwd, mkdir, rmdir  
0. 关於运行档路径的变量: $PATH

文件与目录管理 #

0. 文件与目录的检视: ls  
0. 复制、删除与移动: cp, rm, mv  
0. 取得路径的文件名称与目录名称

文件内容查阅: #

0. 直接检视文件内容: cat, tac, nl  
0. 可翻页检视: more, less  
0. 数据撷取: head, tail  
0. 非纯文字档: od  
0. 修改文件时间与建置新档: touch

文件与目录的默认权限与隐藏权限 #

文件默认权限:umask #

文件隐藏属性: chattr, lsattr #

文件特殊权限:SUID, SGID, SBIT, 权限配置 #

*reSetUserID 
#reSet执行者的 x 权限 (x时候的UID)  
    OBS:  
        仅对 *二进制* 可执行程序有效, 对于普通可执行(例如bash文本文件)无效  
        x文件者在 x 前必须已经拥有 x 权限, x时候UserID才会被reSet  
*reSetGroupID  
#文件  的reSetGroupID, reSet执行者的 x 权限 
#文件夹的reSetGroupID, reSet进入者的 w 权限 
    OBS:  
        常用于专案/项目管理  
        x*二进制*文件 者在 x 前必须已经拥有对文件  的 x 权限, x时候UserID才会被reSet  
        w 文件夹列表  者在 w 前必须已经拥有对文件夹的 w 权限. // 文件的 owner和grp是 *文件* 属性, 但由w *文件夹列表* 者的属性决定  
*sTicky-bit  
#限制 w文件夹列表 者的 w 权限(删除权限)

观察文件类型:file #

命令与文件的搜索 #

命令档名的搜索:which #

文件/文件内容搜索:whereis, locate, find #

文件 file/cmd: #

locate for files/filenames
apt install locate && updatedb

whereis for binary, source, and manual page files for a command (with fixed paths)

which for the pathnames of the files (or links) which would be executed in the current environment by searching the $PATH

find is similar to locate w/o a database, but much slower:
find / -name "config.php"

[ref]

文本文件内容 file content: #

rg (RipGrep) > ag (The Silver Searcher) > ack > grep

e.g.:

apt install ripgrep  
rg 'pypi.org/simple' -l

apt install silversearcher-ag  
ag "Search query" -l

apt install ack  
ack 'text-to-find-here' -l

# hint: postfix " 2>/dev/null " to ignore errors

ref1, ref2

compressed file content: #

grep, zgrep, bzgrep, xzgrep, zipgrep, deepgrep (for tgz & zip)
zcat archive.gz | fgrep [pattern]
pdfgrep, ssgrep …

[ref]

极重要!权限与命令间的关系: #

重点回顾 #

本章习题 #

参考数据与延伸阅读 #

针对本文的建议 #