文件相关的linux系统常用命令
1.压缩与打包
1.1压缩
1.1.1简介
1.在ubuntu中使用的压缩工具有 gzip bzip2 xz ,把文件压缩生成 .gz .bz2 .xz后缀的格式。
2.不能对目录进行压缩,只能对文件进行压缩。
1.1.2压缩命令与使用
gzip + 文件名 ==> 文件名.gz压缩文件
bzip2 + 文件名 ==> 文件名.bz2压缩文件
xz + 文件名 ==> 文件名.xz压缩文件
1.1.3解压命令与使用
gunzip + 文件名.gz
bunzip2 + 文件名.bz2
unxz + 文件名.xz
1.1.4压缩率
xz>bzip2>gzip
1.1.5压缩速率
gzip>bzip2z>xz
1.2归档
1.2.1概念
将目录打包为一个文件
1.2.2归档命令与使用
tar: 归档(打包)/拆包
-c :打包
-x :拆包
-v :显示过程信息
-f :后面跟文件名
-z :gzip压缩
-j :bzip2压缩
-J : xz压缩
例:(#:注释)
归档:
tar -cvf 归档后的名称.tar 需要归档的文件夹
demo:
tar -cvf day5.tar day5 #将day5 文件夹归档为 day5.tar.
拆包:
tar -xvf 归档后的文件.tar
demo:
tar -xvf day5.tar
归档的同时进行压缩:
tar -czvf 归档压缩后的文件名.tar.gz 需要归档压缩的文件名
demo:
tar -czvf day5.tar.gz day5 #使用gzip压缩
tar -cjvf day5.tar.bz2 day5 #使用bzip2压缩
tar -cJvf day5.tar.xz day5 #使用xz压缩
解压压缩归档的文件:
tar -xzvf 归档压缩后的文件名.tar.gz
demo:
tar -xzvf day5.tar.gz
tar -xjvf day5.tar.bz2
tar -xJvf day5.tar.xz
万能解压压缩归档的命令:
tar -xvf 归档压缩后的文件名.tar.xx #xx代表压缩后缀名,自动判断用的是哪种压缩
2.文件操作相关命令
2.1 查看文件内容
cat + 文件名 //将文件的内容在终端显示
cat -n 文件名 //将文件的内容在终端显示并显示行号
2.2 统计文件内容
wc +文件名 //文件内的行数,单词数,字符数
linux@ubuntu:~/22061/linux系统及C高级/day6$ wc text.sh
3 4 21 text.sh
行数 单词数 字符数 文件名
wc -l 文件名 //统计文件行数
wc -w 文件名 //统计文件单词数
wc -c 文件名 //统计文件字符数
2.3 查看文件命令
2.3.1 head显示文件开头内容
head + 文件名 //默认显示文件前10行到终端上
head -n(n是行数) 文件名 //显示文件前n行内容到终端上
demo:
head -12 text.c #显示text.c文件前12行内容到终端上
2.3.2 tail显示文件结尾内容
tail + 文件名 //默认显示倒数10行内容到终端上
tail -n(n是行数) 文件名 //默认显示倒数n行内容到终端上
demo:
tail -12 text.c #显示text.c文件倒数12行内容到终端上
2.3.3 more/less显示文章内容
more/less + 文件名 //more / less 也可以用来查看文件,一般在开发过程中不用, 一般使用vim 代替
2.3.4 file查看文件格式
file + 文件名
linux@ubuntu:~/22061/linux系统及C高级/day4$ file a.out
a.out: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=576e064f89a2d62831662bcf648434a2ea89c62b, not stripped
ELF : 小端的可执行文件
64-bit : 64位
LSB : 小端
x86-64 : 在ubuntu上执行
2.3.5 grep文件内容搜索命令
grep + 搜索字符串的内容
-n 显示行号
-R 递归搜索
-i 不区分大小写
-w 按单词准确搜索
demo:
grep "main" *.c -nR // 在当前路径下所有的.c文件中查找 main 单词
grep "swap" *.c -nRiw //在当前路径下所有的.c文件中查找 main 单词 ,忽略大小写显示行号,单词精确查找
2.3.6 find查找文件位置
find + 路径 -name 文件名
demo:
find ~/xk/c基础/day1 -name a.out //在~/xk/c基础/day1下查找名字为a.out文件
2.3.7 | 管道命令
将上一条命令的结果,作为后一条命令的输入
demo:
head text.c | tail -2 text.c //将输出十行的倒数两行写在终端上
2.3.8 echo命令
echo + 字符串 // 将字符串的内容显示到终端上
重定向符号使用:
> : 以覆盖的形式进行重定向.
echo "hello world" > demo.txt //将hello world 内容重定向到 demo.txt里面
>> : 以追加的形式进行重定向
echo "hello world" >> demo.txt // 以追加的形式将hello world 定向到demo.txt里面
3.通配符
3.1 *通配符
用于匹配任意长度, 任意字符的通配符
demo:
ls *.c // 显示所有以c结尾的文件
rm -rf * // 删除路径上的所有文件
3.2 ?通配符
用于匹配任意一个字符的通配符
demo:
ls ?.c // 1.c
3.3 []通配符
[字符1字符2字符3…字符n] []就是通配的单词列表
demo:
ls a[123].c // a1.c a2.c a3.c
4.文件操作权限
4.1前言
-rw-r–r-- 1 linux linux 222 5月 30 00:33 18zhizhencpy.c
-:文件类型bsp-lcd(详情见之前文章)linux系统常用命令
rwx- :文件权限
4.2 文件权限
rw- r-- r--
用户权限 组权限 其他用户权限
r:可读 4
w:可写 2
x:可执行 1
-:没有权限 0
u : 用户 user
g : 组 group
o : 其他用户 other
a : 所有用户 all
+:给权限
-:去权限
4.3 chmod修改文件权限
chmod u+x text.c // 给 text.c这个文件的用户添加执行权限
chmod a+x text.c // 给 text.c文件的所有用户添加执行权限
chmod og-x text.c // 给 text.c文件的其他用户以及组用户取消 执行权限.
demo :
chmod 0777 text.c // 给 text.c所有用户添加 rwx权限
5.链接
5.1 软链接
类似于windows 当中的快捷方式. 可以通过链接文件,找到原来所在的文件.
ln -s 路径/被连接文件 路径/生成的链接文件
demo:
ln -s link.c link1.c // 给 link.c 创建一个软连接 link1.c
注意:
(1)删除链接文件,被链接文件没有任何变化, 内容也不会被删除 。
(2)删除被链接文件, 链接会断开. 链接文件还是存在的 (内容 空) 。
(3)软连接可以链接目录 。
(4)被软连接链接的目录或者文件,链接数不会增加 。
8.2 硬链接
类似于给文件起一个别名,类似于复制
ln 路径/被连接文件 路径/生成的链接文件
demo :
ln link.c link1.c // 给 link.c 创建一个硬连接 link1.c
注意:
(1)硬链接只能链接文件, 不能链接目录 。
(2)创建硬链接的时候,链接数是会增加的。
(3)硬链接与之前文件的inode号是相同的。
(4)删除一个源文件或者链接文件 对其他不产生影响。
6. 修改文件所属用户以及所属组
-rw-r--r-- 1 linux linux 222 5月 30 00:33 18zhizhencpy.c
文件所属用户 文件所属的组
6.1 chown (用户: 组)
chown 用户名:组名 文件名
demo:
sudo chown linux:root text.txt // 将text.txt文件的所属用户改为 linux, 所属组改为 root
6.2 chgrp 组
chgrp 组名 文件名
demo:
sudo chgrp root code // 将code 文件所属组修改为 root