linux私房菜笔记 - 第六章 - linux文件与目录管理

6.1 目录与路径

cd 切换目录 change directory
pwd 显示当前目录 -P 真实目录非连接目录 print working directory
mkdir 建立一个新目录
rmdir 删除空目录

记不得具体目录名可以tab查

建立目录一层一层建立(没有上一层会报错)或者

mkdir -p ./test1/test2/test3/test4 逐层建立目录
mkdir -m 711 指定目录权限 否则umask

删除目录rmdir

rmdir [-p] 目录名称,-p逐级删除,但是只能删除空目录

$PATH是查找命令的地方,每个用户能用的命令不一样,执行以排在前面的路径里那个为准

echo $PATH 显示查找路径
PATH="${PATH}:/root" 增加路径

本目录不要放到PATH里,印其安全问题

6.2 文件与目录管理

查看

ls [-aAdfFhilnrRSt] [color设置time设置] 文件名 默认本目录
-a 全部文件
-d 目录本身
-l 详细信息
-- full-time 详细时间输出
-- time={atime,ctime} 显示时间是改变属性时间还是access时间

复制

cp [-adfilprsu] 源文件 目标文件
-a 相当于 -dr --preserve=all
-d 若源文件为链接文件,复制链接文件的属性而非源文件
-i 目标文件已经存在会问是不是要覆盖
-p 带属性复制(备份常用默认属性不用这个)
-r 递归复制
-l 硬连接
-s 符号链接 快捷方式

符号链接:file->sourse
硬链接 -l 属性符号与连接前属性权限一样 link数(ls -l 查)变多与inode有关

复制时必须要有读权限

删除

rm [-fir] 文件或目录
-f 强制执行
-I 询问是否操作
-r 递归删除
通配符 含义 实例
* 匹配 0 或多个字符 a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, axyzb, a012b, ab。
? 匹配任意一个字符 a?b a与b之间必须也只能有一个字符, 可以是任意字符, 如aab, abb, acb, a0b。
[list] 匹配 list 中的任意单一字符 a[xyz]b a与b之间必须也只能有一个字符, 但只能是 x 或 y 或 z, 如: axb, ayb, azb。
[!list]或[^list] 匹配 除list 中的任意单一字符 a[!0-9]b a与b之间必须也只能有一个字符, 但不能是阿拉伯数字, 如axb, aab, a-b。
[c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] a[0-9]b 0与9之间必须也只能有一个字符 如a0b, a1b... a9b。
[!c1-c2]或[^c1-c2] 匹配不在c1-c2的任意字符 a[!0-9]b 如acb adb
{string1,string2,...} 匹配 sring1 或 string2 (或更多)其一字符串 a{abc,xyz,123}b 列出aabcb,axyzb,a123b

带-的文件名避免被当作参数 用./

移动 / 重命名

mv [-fiu] source destination 同cp

重命名rename还可以使用正则表达式

rename [options] expression replacement file...

Given the files foo1, ..., foo9, foo10, ..., foo278, the commands
rename foo foo0 foo?
rename foo foo0 foo??
will turn them into foo001, ..., foo009, foo010, ..., foo278. And
rename .htm .html *.htm
will fix the extension of your html files.

获取路径名 / 文件名

basename 路径
dirname 路径

6.3 文件内容查看

内容查看

cat [-AbEnTv]
-n 打印行号
还有些打印特殊字符的

tac 反向打印

做显示设计,行号数量

nl -b a -n rz -w 3 \m #空行也列出行号 行号在最右方显示补0 共3位数

翻页查看

more 文件名
less 文件名

more
空格:翻页
回车:下一行
/字符串 查找
:f:显示行数
q:离开
less
pageup/pagedown
/向下搜索
?向上搜索
n重复搜索
N反向重复

数据截取

head -n 20 file.txt
tail -n 20 file.txt
tail -f 20 varfile.txt #不断有数据写入的

使用管道,上一个命令出来的数据作为输入被下一个命令执行

cat -n file.txt | head -n 20 | tail -n 10

非纯文本

od [-t type] 文件
a 默认字符
c ascii字符
dfox 十进制、浮点数、八、十六进制

echo password | od -t oCc

修改文件与创建新文件

同一行执行多个命令,中间用 ; 隔开
touch命令

touch filename.txt #新建文件,时间设为当前
touch -d "2 days ago" file.txt #修改时间为2天前(atime/mtime)
--time= 含义
atime 读取时间
ctime 状态改变时间:权限、属性
mtime 修改时间

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

  • linux传统文件系统为ext2, ext3, ext4 可用chattr lsattr来设置和查看隐藏属性
  • xfs (centos7) 只支持部分属性

文件或目录默认权限:umask

查看

umask 以数字形式显示
umask -S 以文字形式显示
  • 每位含义:0002 四位数,第一位特殊权限,第二位 - 第四位对应 owner group other 拿掉的权限
  • 文件与目录不同:文件默认最大666,拿掉执行权限(不需要);目录默认最大777,需要执行

e.g. 0002 文件 -rw-rw-r-- 目录 drwxrwxr-x

文件隐藏属性

chattr #修改隐藏属性
e.g. 
chattr +i #添加i属性
chattr -i #去掉i属性

lsattr #查看隐藏属性

常用

i 不能删除改名设置连接新增内容,仅限root
a 只能增加数据不能删除或修改,常用于log,仅限root

隐藏属性的设置通常与系统安全性有关

文件特殊权限:SUID、SGID、SBIT

如若文件拥有者不具备设置SUID、SGID、SBIT位置的原有属性,则设置后对应位置会变成大写的ST,没有任何作用

set UID
特征:文件拥有者的x属性变为s属性

  • 仅对二进制程序有效
  • 执行者有x权限
  • 该权限在执行的过程中有效
  • 执行者具有拥有者的权限

e.g. root有/etc/shadow的权限,这个里面存储密码,普通用户不能使用cat命令读取,因为cat没有s权限,你还是以普通用户去操作/etc/shadow。但是普通用户可以改自己的密码,因为执行/usr/bin/passwd会暂时获得root权限

Set GID

特征:可以针对文件或目录设置,用户组的x权限变为s

文件:

  • 仅限二进制程序
  • 执行者有x权限
  • 执行者会暂时获得用户组支持

目录:

  • 用户建立的新文件的用户组与此目录的用户组相同

Sticky Bit
特征:只针对目录有效,用户有wx权限,所有人的x变为t
e.g. /tmp下用户只能对自己建立的文件或目录进行删除、更名、移动等操作,但无法删除他人文件。root可以操作全部文件

设置

chmod 4755 filename
chmod u=rwxs,go=x filename
SUID - 4
SGID - 2
SBIT - 1

观察文件类型

用途:文件类型(ASCII/二进制),动态链接库信息,压缩方式,兼容硬件平台

6.5 命令与文件查找

用途:改某个软件配置,不同发行版配置放在哪不一定,但是配置文件名一定,可以通过配置文件名找找配置文件放在哪

脚本文件的查找

which 命令
-a 列出所有而不仅仅是第一个
type 命令
  • case 1: 列出命令地址
  • case 2: 列出命令别名和地址
  • case 3: 遇到bash内嵌指令找不到,因为它本质上是从path路径中查找

文件的查找

whereis(特定目录)和locate(数据库)快且常用,找不到再用find,慢但检查文件系统,全

whereis [-bmsu] 文件名或目录
可以指定找可执行文件或说明文件
locate [-iclSr] keyword
查的多,centos默认每天更新,root可updatedb更新
find [PATH] [option] [action]
find ~/Desktop -mtime +4
option:
与时间有关的 -atime -mtime -ctime -newer
与用户名有关的 -uid -gid -usr -group -nouser -nogroup
与文件权限/名称有关的 -name (正则表达式/可精确查找)+/-size -type(-type fbcdlsp)
-perm mode / -mode / /mode 精确,全部包含,有即可

-nouser -nogroup的解释:用户被删除,编译程序
额外操作

find /usr/bin /usr/sbin -perm 7000 -exec ls -l {} \;
#{}是-exec前部分找到的内容";"序号被"\"转义
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352