Linux文件操作
使用命令
-
命令格式:
命令 [选项] [参数]
[ ]表示可选的
-
示例:
ls -l /etc
常识命令
-
ls:查看指定目录的内容,不指定目录时查看当前目录下的内容
选项 说明 -l 列表显示,会显示更多信息 -a 显示所有文件,包括隐藏文件(以.开头的文件) -h 人性化的显示大小,如:K/M/G,,常和l连用, - lh - -l选项显示结果说明:
类型及权限 | 引用数 | 用户 | 用户组 | 大小 | 月 | 日 | 年或时间 | 文件名
- 文件类型:
符号 类型 - 普通文件 d 目录文件 l 链接文件 c 字符设备文件 b 块设备文件 s 套接字文件 p 管道文件 -
cd:切换工作目录
符号 说明 . 当前目录 … 上一级目录 - 上次切换之前的目录 ~ 当前用户的家目录 / 表示根目录 - 不指定目标地址时,默认切换到家目录
- 凡是以’/'开头的目录都是绝对目录
- 以’.‘或’…'开头的目录都是相对目录
-
pwd:查看当前工作目录的绝对路径
-
alias:给命令起别名,如:ll、la、l
-
unalias:取消命令别名
查看文件
-
相关命令
命令 说明 cat 从上到下,显示文件全部内容 tac 从下到上,显示文件全部内容 head 查看开头指定行数的内容,默认10行,如:head -20 filename tail 查看末尾指定行数的内容,默认10行,如:tail -20 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 *.txt
,表示删除所有的txt文件 - -p:创建目录时若需要创建中间目录,需要添加此选项
用户及用户组
-
相关命令
命令 说明 whoami 查看当前登录的用户名 useradd 新加用户,-d指定家目录,-m创建家目录,-s指定shell解析器 userdel 删除用户,-r可以删除用户相关的目录(家目录、邮件目录) passwd 设置指定用户密码,不指定用户时设置当前用户的密码 su - 切换用户,一定要加上’-’,加上它不但能够切换用户,而且还可以切换环境,不指定切换的用户时,默认切换到root(需要提前设置一下密码) 以指定用户(root)身份执行命令 visudo 专门用来编辑/etc/sudoers文件的命令,需要添加相关配置才可以使用sudo执行命令,如:test ALL=(ALL:ALL) ALL。最好先修改系统默认文本编辑器(sudo update-alternatives --config editor) groupadd 新建用户组 groupdel 删除用户组 gpasswd 向指定用户组添加/删除指定用户,如:gpasswd -a/-d user group groups 查看指定用户的组信息 chsh 修改指定用户的shell解析器,如:sudo chsh test -s /usr/sbin/nologin(禁止登录) chgrp 修改指定文件所属组,如:sudo chgrp test 33.py chown 修改文件所有者[及所属组],如:sudo chown jerry[:jerry] 33.py, -R表示递归修改 -
涉及文件
- /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+x 33.py
,给33.py文件的其他用户添加可执行权限
- 示例:
-
本质:使用一组(3位)8进制的数来表示权限, 如:0755,展开如下
转换为二进制:0755 => 111 101 101 对应三个身份:所有者 所属组 其他人 每一组的权限:都包括读、写、执行,1表示拥有,0表示没有 示例解析:所有者拥有可读可写可执行权限,所属组可读可执行,其他人可读可执行
-
简化:
sudo chmod 0755 33.py
,递归操作需要添加’-R’选项
链接文件
-
命令: ln
-
作用:创建一个文件或目录的链接
-
格式:
ln [-s] 原文件 新文件
-
查看:ls -l结果集中的第一列的第一部分就是文件类型,l就是链接
-
硬链接与软链接
硬链接:创建时不加-s选项创建的就是硬链接,相当于给文件多起了个名字,极少用到 1.不能给目录创建 2.不能跨文件系统 软链接:创建时添加-s选项创建的就是软链接,相当于windows中的快捷方式,比较常用 1.可以给目录创建 2.可以跨文件系统
文件搜索
- find:
- 作用:任意文件的搜索,功能非常强大
- 格式:
find [目录] 条件
- 选项:
-name:指定名字,如:sudo find / -name passwd
-maxdepth:指定最大层级深度,如:sudo find / -maxdepth 3 -name passwd
-type:指定类型(d/l/s/p/c/b)
-size:指定大小,单位:k/M/G,+表示大于,-表示小于,如:find . -size +5k
-mtime/-atime/-ctime:指定修改/访问/创建时间,单位是天,+表示几天前,-表示几天内
-mmin/-amin/-cmin:功能同上,单位是分钟
-user:指定用户
-group:指定组
- whereis:
- 作用:显示命令的详细信息, 如:whereis ls,结果如下:
ls: /bin/ls /usr/share/man/man1/ls.1.gz
命令 位置 标准帮助文档
- grep:
- 作用:正则表达式搜索(文件内容)
- 选项:
-i:忽略大小写
-n:显示行号
- 示例:
grep -n /bin/bash /etc/passwd 在/etc/passwd中查找包含/bin/bash的行,并显示行号
grep -i abc 11.py 在11.py文件中忽略大小写的查找包含abc的行
ls /bin | grep '^m' 查找/bin下以m开头的命令
压缩解压
- zip/unzip,文件后缀zip
压缩:zip 123.zip *.txt
解压:unzip 123.zip
- gzip/gunzip,文件后缀gz
压缩:gzip 1.txt # 会生成1.txt.gz,源文件删除
解压:gunzip 1.txt.gz
解压:gzip -d 1.txt.gz # 功能同上
- bzip2/zunzip2,文件后缀bz2
压缩:bzip2 3.txt # 会生成3.txt.bz2
解压:bunzip2 3.txt.bz2 # -k选项可以保留原压缩包文件
解压:bzip2 -d 3.txt.bz2 # 功能同上
- tar:打包解包命令,文件后缀tar
选项:
-c:创建新文件
-x:解包
-t:查看包(不解包)
说明:以上三个选项不能同时使用
-f:指定操作文件
-v:显示相关信息
-z:调用gzip/gunzip命令进行压缩解压
-j:调用bzip2/bunzip2命令进行压缩解压
-C:执行解压位置
--exclude:排除指定文件
示例:
tar -cvf 12.tar 1.py 2.py # 将1.txt、2.txt打包成12.tar
tar -tf 12.tar # 查看包12.tar中的内容
tar -xvf 12.tar # 将12.tar解包
tar -zcvf 12.tar.gz 12.tar # 将12.tar文件使用gzip压缩成12.tar.gz
tar -jcvf 12.tar.bz2 12.tar # 将12.tar文件使用bzip2压缩成12.tar.bz2
tar -zcvf 123.tar.gz *.txt --exclude 3.txt # 打包并压缩除3.txt以外的所有txt文件
tar -zxvf 12.tar.gz # 可以不指定解压命令,会自动识别,z/j选项可以省略
tar -jxvf 12.tar.bz2
提示:
.tar.gz可以简写为.tgz
.tar.bz2可以简写为.tbz2 或 .tbz