文件操作
使用命令
- 命令格式:
1
命令 [选项] [参数]
[] 表示可选
- 示例:
1
ls -a /etc
尝试命令
-
**ls:**查看指定目录的内容,不指定目录时查看当前工作目录
选项 说明 -a 显示所有文件,包括隐藏文件 -l 列表显示,详细信息 -h 人性化的显示大小,如:K/M/G -l选项显示结果:类型及权限 | 引用权限 | 用户组 | 大小 | 月 | 日 | 年/时间 | 名称
-
文件类型:(-l显示结果中的第一部分的第一列)
符号 类型 - 普通文件 d 目录文件 l 链接文件 c 字符设备文件 b 快设备文件 s 套接字文件 p 管道文件 -
**cd :**切换工作目录
符号 说明 . 当前目录 … 上一级目录 ~ 当前用户的家目录 - 表示上次切换之前的目录 / 表示根目录 1
2
31. 使用cd时,不指定目标地址,会切换到家目录
2. 凡是以/开头的目录都是绝对目录
3. 凡是以'.'或者'..'开头的目录都是相对目录 -
**pwd:**查看当前目录
-
**alias:**给命令起别名
- l、la、ll等
查看文件
- 相关命令
命令 说明 cat 从上到下,显示文件全部内容 tac 从下到上,显示文件全部内容 head 查看开头指定行数的内容,不指定时默认10行,如:head -20 filename tail 查看文件末尾指定行数的内容,不指定时默认10行,如:tail -5 filename nl 功能与cat相同,但是多显示了行号 wc 统计显示,内容:行数 单词 字符数 文件名 more 一点一点查看内容 less 一点一点查看内容 - more/less使用说明:
- 显示一屏就停止
- q退出查看
- enter下翻一行
- 空格下翻一屏
- more查看完毕会自动退出,less不会
- less可以使用上下按钮上下翻看,more不可以
- 经常结合管道使用,
ls /etc | more
文件及目录
- 相关命令
命令 说明 touch 新建文件,可以是多个 rm 删除文件或目录(删除目录时要传递 -r 选项) cp 拷贝文件或目录(拷贝目录时要传递 -r 选项) mv 移动文件或目录 mkdir 创建目录,可以是多个 rmdir 删除空目录 - 选项说明
- -r:删除或拷贝目录时需要添加,表示递归操作
- -f:表示强制操作,没有提示信息
- *:表示模糊匹配,如
rm *.py
表示删除所有的py文件 - -p:创建目录时若需要创建中间目录,可以添加此选项
用户及用户组
- 相关命令:
命令 说明 whoami 查看当前登录的用户 useradd 新建用户,-d指定家目录,-m不存在,-s指定shell userdel 删除用户,-r会删除用户的家目录 passwd 设置指定用户的密码,没有指定用户时设置当前用户的密码 su - 切换用户,一定要加上‘ - ’,否则只会切换家目录,但是环境没有切换,不指定用户时默认切换到root用户(记得先给root用户设置密码) sudo 用指定用户(root)身份执行命令 visudo 专门用于编辑/etc/sudoers文件的命令,需要将指定用户添加进去才可以使用sudo命令,如: test ALL=(ALL:ALL) ALL
。使用update-alternatives --config editor
可以修改系统默认编辑器(nano)groupadd 新建用户组 groupdel 删除用户组 gpasswd 向指定组添加/删除指定的用户,如: gpasswd -a/-d user group
groups 查看指定用户组的信息 chsh 修改指定用户的shell解析器,如: sudo chsh test -s /usr/sbin/nologin(禁止登录)
chown 修改文件所属用户[及用户组],如: sudo chown test[:test] 1.py
,递归操作需要添加’-R’选项chgrp 修改文件所属用户组,如: sudo chgrp test 1.py
- 涉及文件
- /etc/passwd:系统中的用户信息
- /etc/group:系统中的用户组信息
- /etc/shadow:系统中的用户密码信息
- 相关名词
- uid:用户的唯一表示
- gid:用户组的唯一表示
文件权限
- **说明:**在Linux下,所有的文件都涉及权限,分为三组:所有者、所属组、其他
- **权限:**所有的权限可以分为:可读®、可写(w)、可执行(x),‘ - ’表示没有该权限
- **原理:**ls -l 的结果,三位一组,分为三组,刚好对应:所有者、所属组、其他
- **修改权限:**chmod, 格式:
chmod [身份] [操作] [权限] 文件
选项 说明 身份 u 所有者(user) g 所属组(group) o 其他(other) 操作 + 添加 - 去掉 = 设置 权限 r 可读 w 可写 x 可执行 sudo chmod o+w 1.py
,给其他用户添加可写的权限 - **本质:**使用一组(3位)八进制的数据来表示权限,如:0755,展开如下:
1
2
3
4转换成二进制:0755 => 111 101 101
对应三组身份: 所有者 所属组 其他
每一组的权限: 都包括 可读、可写、可执行
示例解析: 所有者可读可写可执行,所属组可读可执行,其他可读可执行 - 简化操作:
sudo chmod 0755 1.py
若要添加递归操作,则需要添加 -R 操作
- umask
1
2
3
4
5
6作用:用来限定新建文件的默认权限,权限与该值相反
命令:umask [value],查看或设置掩码
分析:
掩码:0002 => 000 000 010
新建目录: 111 111 101
新建文件: 110 110 100
文件搜索
-
find
- **作用:**用于任意文件的搜索,功能非常强大
- **格式:**find [目录] 条件选项
1
2
3
4
5
6
7
8-name:指定名字 sudo find / -name passwd
-maxdepth:指定最大层级的深度 sudo find -maxdepth 2 -name passwd
-type:指定类型(d/l/s/p/c/b)
-size:指定大小,单位:k/m/g,+表示大于,-表示小于,如:find -size +5k,查找大于5k的文件
-mtime/-atime/-ctime:指定修改/访问/创建时间,单位是天,+表示几天前,-表示几天内
-mmin/-amin/-cmin:功能同上,单位是分
-user:指定用户
-group:指定用户组
-
whereis
- **作用:**显示命令的详细信息,如:whereis ls,结果如下:
1
2ls: /bin/ls /usr/share/man/man1/ls.1.gz
命令名 命令位置 帮助文档
- **作用:**显示命令的详细信息,如:whereis ls,结果如下:
-
grep
- **作用:**正则表达式搜索(文件搜索)
- 选项:
1
2-i:忽略大小写
-n:显示行号 - 示例:
1
2
3grep -n /bin/bash /etc/passwd 查找/etc/passwd文件中包含/bin/bash的行,并显示行号
grep -i -n abc 1.py 在1.py中查找包含abc的行,不考虑大小写
ls /bin | grep '^m' 查看/bin下以'm'开头的命令
链接文件
- **命令:**ln
- **作用:**创建一个文件或者目录的链接
- **格式:**ln [-s] 原文件 新文件
- **查看:**ls -l 结果集中的第一列就是文件类型,为’l’的就是链接文件
- 软链接与硬链接:
1
2
3
4
5
6
7硬链接:使用ln时不添加-s选项创建的链接,相当于一个文件多起了一个名字而已,极少用到
1.不能给目录创建
2.不能跨文件系统
软连接:使用ln时添加-s选项创建的链接,相当于Windows中的快捷方式,比较常用
1.可以给目录创建
2.可以跨文件系统