Linux基本文件目录操作
Linux系统: “所见皆文件”
Linux系统目录:
bin:存放二进制可执行文件
boot:存放开机启动程序
dev:存放设备文件: 字符设备、块设备
home:存放普通用户
etc:用户信息和系统配置文件 passwd、group
lib:库文件:libc.so.6
root:管理员宿主目录(家目录)
usr:用户资源管理目录
Linux系统文件类型: 7/8 种
普通文件:- (但是查找时候用f表示普通文件)
目录文件:d
字符设备文件:c
块设备文件:b
软连接:l
管道文件:p
套接字:s
未知文件。
软链接与硬链接
软连接:快捷方式
为保证软连接可以任意搬移, 创建时务必对源文件使用 绝对路径。
硬链接:
ln file file.hard
操作系统给每一个文件赋予唯一的 inode,当有相同inode的文件存在时,彼此同步。
删除时,只将硬链接计数减一。减为0时,inode 被释放。
用户与组管理
创建用户:
sudo adduser 新用户名 --- useradd
修改文件所属用户:
sudo chown 新用户名 待修改文件。
sudo chown wangwu a.c
修改文件权限:
第一种,文字设定法
chmod [who] [+|-|=] [mode] filename
chmod u+x a.c
操作对象who可以是下述字母中的任一个或者它们的组合
u 表示”用户(user)”,即文件或目录的所有者
g 表示”同组(group)用户”,即与文件所有者有相同组ID的所有用户
o 表示”其他(others)用户”
a 表示”所有(all)用户”,它是系统默认值
操作符号可以是:
+ 添加某个权限
- 取消某个权限
= 赋予给定权限并取消其他所有权限(如果有的话)
第二种,数字设定法
chmod 操作码 filename 直接用操作码修改文件权限
chmod 764 a.c
对于file2的权限
-rw-rw-r—
421421421
三个组的权限都用二进制编号,比如要设置当前用户对文件的读写和执行权限,则当前用户的操作权限为4(读)+ 2(写)+ 1(执行) = 7
用户组和其他用户的权限设置也是一样的
对于file2的权限-rw-rw-r—
我们设置如下:
所有者 rwx = 7
所有者所在组 rw = 6
其他用户 r = 4
删除用户:
sudo deluser 用户名
创建用户组:
sudo addgroup 新组名
修改文件所属用户组:
sudo chgrp 新用户组名 待修改文件。
sudo chgrp g88 a.c
删除组:
sudo delgroup 用户组名
使用chown 一次修改所有者和所属组:
sudo chown 所有者:所属组 待操作文件。
find命令查找,找文件
find 查找目录 查找深度 查找方式 类型或者名字
-type 按文件类型搜索 d/p/s/c/b/l/ f:文件
-name 按文件名搜索
find ./ -name "*file*.jpg"
*通配符,?也是通配符,但是*会都显示出来,?只显示一个
-maxdepth 指定搜索深度。应作为第一个参数出现。
find ./ -maxdepth 1 -name "*file*.jpg"
-size 按文件大小搜索. 单位:k、M、G
find /home/itcast -size +20M -size -50M
注意有两个size参数,注意符号的位置以及单位的大小写
-atime、mtime、ctime 天 amin、mmin、cmin 分钟。
a最近访问,m修改属性,c修改内容的时间
-exec:将find搜索的结果集执行某一指定命令。
find /usr/ -name '*tmp*' -exec ls -ld {} \;
-ok: 以交互式的方式 将find搜索的结果集执行某一指定命令
-xargs:将find搜索的结果集执行某一指定命令。 当结果集数量过大时,可以分片映射。
find /usr/ -name '*tmp*' | xargs ls -ld
-print0:
find /usr/ -name '*tmp*' -print0 | xargs -0 ls -ld
解决xargs的缺陷,指定切分符号位null
第一个print0指定结果集分隔为null,第二个print0指定xargs分隔为null
grep命令:找文件内容
grep -r 'copy' ./ -n
-n参数::显示行号
ps aux | grep 'cupsd' -- 检索进程结果集。
ps监控后台进程工作情况,默认只显示当前可以和用户交互的进程
软件安装:
1. 联网
2. 更新软件资源列表到本地。 sudo apt-get update
3. 安装 sudo apt-get install 软件名
4. 卸载 sudo apt-get remove 软件名
5. 使用软件包(.deb) 安装:sudo dpkg -i 安装包名。
压缩与解压
tar压缩:
tar -zcvf 要生成的压缩包名 压缩材料。
tar zcvf test.tar.gz file1 dir2 使用 gzip方式压缩。
tar jcvf test.tar.gz file1 dir2 使用 bzip2方式压缩。
tar解压:
将压缩命令中的 c --> x
tar zxvf test.tar.gz 使用 gzip方式解压缩。
tar jxvf test.tar.gz 使用 bzip2方式解压缩。
rar压缩:
rar a -r 压缩包名(带.rar后缀) 压缩材料。
rar a -r testrar.rar stdio.h test2.mp3
rar解压:
unrar x 压缩包名(带.rar后缀)
zip压缩:
zip -r 压缩包名(带.zip后缀) 压缩材料。
zip -r testzip.zip dir stdio.h test2.mp3
zip解压:
unzip 压缩包名(带.zip后缀)
unzip testzip.zip
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构