linux文件与目录管理笔记

时间:2022-10-09 19:12:02
### Linux文件与目录管理  

----------

绝对路径: /
相对路径:不以/开头的
当前目录 .
上一个工作目录 -
用户主目录 ~ root账户的主目录是/root 其他用户是/home/账户名
cd ~leyi 切换到leyi账户的主目录,即/home/leyi pwd 显示当前目录
mkdir -p 111/222 创建多级目录 -p 参数
rmdir -p 111/222 当删除了222后111是空目录则222也会被删除
rmdir 仅能删除空目录 **ls 常用命令 **
-a 全部 -d 目录 -l 长数据串输出(包含权限和属性)
ls -l 的别名(alias) ll
蓝色是目录 白色是一般文件 **cp 复制文件或目录 **
-i 覆盖时询问(y/n) -r 递归复制 -p 复制文件连权限 用户 时间 一起复制 (备份时常用)
-a 相当于 -d -p -r -d如果源文件是链接文件复制链接文件而非文件本身
-s 创建软了链接(或者叫符号链接) -l hard link(硬链接或者叫实体链接) **硬链接文件和源文件一样,软链接相当于一个快捷方式 **
echo '1234'>1.txt
cp 1.txt ./s_link -s //软连接
cp 1.txt ./h_link -l //硬链接 **rm 删除文件或目录 **
-i 默认会提示 -r 递归删除 -f 强制删除
rm h* -rf 删除h开头的的文件 *为任意多个字符 **mv 移动文件和目录或者更改名字 **
mv 1.txt 2.txt 改名
mv 1.txt d 将1.txt移动到d目录
mv 1.txt 2.txt d 如果有多个来源文件或目录 则最后一个为目标目录 **basename(文件名) 和 dirname(目录名)**
mkdir 11/22/33/44.txt -p
basename 11/22/33/44.txt 返回 44.txt
dirname 11/22/33/44.txt 返回 11/22/33 **文件内容查看 **
cat 从文件第一行开始显示内容
tac 从最后一行开始显示内容,反着显示 (cat反着写)
more 一页一页的显示 more /etc/sudo.conf
less more的功能+可以翻页 less /etc/sudo.conf
enter或者space 翻页
q 退出查看
:f 查看当前行号和文件大小
/向下搜索的内容 可以搜索关键字 ?向上搜索关键字
pageDown pageUp Home End head 只看头几行 -n 自定义查看前多少行
head /etc/sudo.conf -n 5 查看前5行的数据
head /etc/sudo.conf -n -5 查看除了末尾5行的前面的所有数据
tail 只看尾几行
tail /etc/sudo.conf -n 5 查看后5行
通过管道符取5到10行
head /etc/sudo.conf -n 10 | tail -n 5
od -t a(ASCALL码输出) 非文本文件查看
od -t a /usr/bin/passwd **修改文件时间和创建文件 ** date 查看当前时间 mtime (modify time) 文件内容变更后的时间 ll默认显示这个时间
ll --time=mtime ??? 报错 ll 11.txt 就是显示的mtime
ctime (change time) 权限等更新后的时间
ll --time=ctime
atime (access time ) 文件被读取后的时间 (最后访问时间)
ll --time=atime 修改文件的内容后 mtime更新 ctime也改变了 mtime不更新
ll
echo '123'>11.txt
ll 修改权限后 ctime更新 mtime atime 不更新
ll --time=ctime 11.txt
chmod 777 11.txt
ll --time=ctime 11.txt 读取后 atime更新 ctime mtime 不更新
11 --time=atime 11.txt
cat 11.txt
11 --time=atime 11.txt **; 分号可以分割指令,一次写多个指令执行 **
ll;touch 1.txt;ll **touch 修改文件时间(只能修改mtime atime,不能修改ctime)或创建新文件 **
touch 11.txt 更新文件的所有时间 (mtime ctime atime)
touch -d '20180615' 11.txt
ll //mtime
ll --time=atime 11.txt //atime
ll --time=ctime 11.txt //ctime -c 修改 ctime -m 修改 mtime
-t -d 都是修改日期或者时间
touch -t 201806151430 11.txt **root账户把自己主目录的11.txt复制到leyi的主目录,除了leyi其他用户不能写**
cp ~/11.txt ~leyi
chown leyi.leyi ~leyi/11.txt
chmod go-x ~leyi/11.txt 或者 chmod 755 ~leyi/11.txt
ll ~leyi **文件和目录的默认权限 umask 0022 4位数 只看后三位**
数字代表被拿掉的权限 比如0022 代表被g拿掉了w o拿掉了w
umask -S 可以看到 u=rwx,g=rx,o=rx **文件的特殊属性(隐藏属性) **
chattr 只能在传统的ext2-4文件系统上使用
chattr [-+=] 减少 增加 设置 某个属性
chattr +i 11.txt 设置不能被改名删除修改文件,不能动的意思 (只有root账户可用)
chattr +a dir11 只能新增文件,不能删除修改文件 (只有root账户可用)
lsattr 显示特殊属性 -a 隐藏文件的也显示 -d 显示目录 -R 包含目录里的文件 **查看文件类型**
file 11.txt ASCLL 文本 **可执行程序文件名搜索**
两次tab 可以查看有多少命令可以用(全部的可执行程序)
which 需要查找的可执行程序名字
根据PATH定义的路径去寻找可执行文件
which ls;which cd;
which -a ls -a //查找全部 **文件文件名搜索 **
whereis 特定目录中寻找文件文件名
-l 指定搜索的目录
-b 找binary二进制格式文件
whereis 11.txt **find 硬盘搜索(比较慢) **
+n -n n 这里有点绕...
find . -mtime 0 从现在时间开始到24小时之前
-mtime n天之前的一天之内的被改动过的文件名(0 今天 1 昨天)
-mtime +n n天不含n之前被改动的内容(大于n天之前的,+0 昨天,+1前天)
-mtime -n n天之内包含n天在内的被改动的文件名(-1 几天的)
-user 用户名 查找某个用户的
find ~leyi -user leyi
-group 查找某个群组的
find ~leyi -group leyi
-nouser 没有用户的文件
-nogroup 没有群组存在的文件
-name xx 查找文件名为xx的文件
find ~leyi . -name *leyi* 查找文件名包含 leyi的文件
-size [+-] c:byte k:1kb 查找符合指定文件大小的文件
find . -size +10k 查找大于10k的文件