链接(创建链接(硬链接,软连接))
目录的本质:文件
如果想在一个目录中添加或者删除目录项,需要获得目录的写权限
硬链接: 目录在物理文件系统中的指向
软连接(符号链接):里面存储文件的路径,类似
指针
ln
ls file name
为文件file创建一个名为name的硬链接
默认创建硬链接
-s: 创建软连接
可存绝对路径或者相对路径(推荐相对路径)
类似指针或windows的快捷方式
查找
locate(自己有一个数据库)
locate file_name
搜索名为file_name的文件位置
which commend
定义一个可执行程序commend
find
-name "ff"
find file -name "*.c"(在file中查找所有后缀为.c的文件)
查找名字为ff的文件
-a
and
-o
or
!
逻辑取反
-empty
查找空目录
命令的组合
mkdir dir4; cd dir4(创建一个名为dir4的目录 ; 进入一个名为dir4的目录)
顺序执行
边查找边显示名为stdio.h的文件,并以行的方式显示文件查找的信息 , 把一个命令的输出结果当成另外一个命令的参数
权限
chmod
修改文件的权限
rws rws rws
u g o
(1): 文字设定法
chmod [ugoa](选择其中一个,a表示all)[+=-](+增加权限,=修改成特定的权限,-减少权限)[rwsx] file/dir
ex: chmod u+x hello.cpp
给hello.cpp的拥有者添加执行权限
(2): 数字设定法(***)
chmod 三位8进制数字 file/dir
ex: chmod 664 hello.cpp(更简洁一点)
文件掩码
umask
普通用户的文件掩码为 0002 创建文件夹时 默认的权限应该为 777 & (~umask) , 去掉了其他用户的写权限
root的文件掩码为 0022
如何查看文件内容 , 修改文件配置
cat
文件描述符(非负整数):
stdin 标准输入 关联 键盘 0 (文件描述符)
stdout 标准输出 关联 显示器 1
stderr 标准错误输出 关联 显示器 2
重定向
> 标准输出重定向
< 标准输入重定向
2> 标准错误重定向
>> 标准输出重定向,追加
echo
打印一行文本
head
显示文件的头几行信息
ex: head e.txt
默认输出10行左右
ex: head -n 5 e.txt
显示输出前5行
tail(查看最近的日志文件)
输出文件的后几行信息
ex:
tail e.txt
默认显示最后10行左右
ex: tail -n 5 e.txt
显示最后5行作用
more / less (两个的功能和操作基本相同)
显示文件的第一页
b: 下一页
f: 上一页
q: 退出
sort
工作原理: 读取文件的内容,并且对文件的内容(行)进行排序,最后把排序后的结果输出到stdout中
对文件内容进行排序
uniq
工作原理: 读取文件的内容 , 并对连续的行进行去重,并把去重后的结果输出到stdout中
去除重复连续的行
xargs
特例: sort hello | uniq
排序后通过管道去重 , 不可以使用xargs
file
file file_name
查看名字为file_name的文件的更多信息
wc
-l
多少行
-w
有多少个单词
-byte / -c
有多少个字节
若什么都不加则会默认显示这三个查询
iconv
修改字符集
-f
从哪个字符集开始
-t
转化成那个字符集
ec: iconv -f gbk -t utf-8 file_name
正则表达式
基本单位: 普通字符,转义字符,.(任意字符),[0-9](0-9集合,所有各位数字集合), ()(整体作为一个基本单位)
基本操作:
连接: ab a与b连接到一起
重复: ?(重复一次或者是0次)
+(重复一次或者多次)
*(重复任意次数)
{m}(重复m次)
{m,n}(重复的次数介于m 与 n 之间)
{,m}(重复的次数<=m)
{m,}(重复的次数>=m)
搜索文件内容
grep(***)
g:globally 全局
re:regular expression 正则表达式
p: print 打印
-E:
使用拓展的正则表达式
-n:
显示行号
-i(ignore):
忽略正则表达式中的大小写
其他命令
alias(别名)
alias h=history
让h作为history的别名,输入h就相当于输入history
打包和压缩
打包后的文件大小大于打包前的文件大小,他要预留一些空间以放入新的文件
tar(打包util)
tar (主选项 + 辅选项) 目标文件名 源文件/目录
主选项:三选一之间互斥 , 只能选择其中一个
-c(create)
创建一个包
-r
追加
-x
释放文件
辅选项:
-f
指定文件的名称
-v
显示打包过程
-z
若有压缩 , 则利用gzip算法压缩或解压缩
打包
解打包