文件和目类命令
cd 切换到工作目录
cd /etc # 直接切换到/etc目录
cd .. # 切换到上次目录,..表示父目录
cd . # 切换到当前目录
cd # 回到自己的家目录
cd ~ # 回到自己的家目录,回了家才可以浪
cd - # 回到上次工作目录,cd 减号
pwd 打印当前工作目录
pwd [-LP]
L # 显示逻辑工作目录,其实就是表示软链接目录,链接目录其实就是相同一块地方,只是访问地址不同,简单来说对一个很深的目录,与一块比较浅的目录创建链接,那么就可以通过浅目录来访问这个地址。
P # 显示物理工作目录。
# 删除链接
rm test # 链接只是一个普通文件
ln <dir> <dir> # 创建一个链接
mkdir创建目录
mkdir [pm] <dir>
-p # 自动创建父目录,在某些时候需要创建父目录,自动创建,越过儿子生孙子
-m # 设置权限
mkdir -p -m 700 ./test/ada/daff/dfgg/zfd
!+开头的字母,或者!+命令历史记录编号,可以快速执行已经执行过的命令。
有时候某些文件无法执行,有可能是不可执行文件,而不是没有权限。
ls 显示文件及目录信息
cp 拷贝
cp
# 选项
# -i: 若文件存在,询问用户是否覆盖,很多命令后面接 i 表示询问的意思
# -r: 递归复制,也就是会复制字母里底下的文件
# -a: pdr 三个选项的集合
# -p: 连同属性一起拷贝
# -d: 若源文件为链接文件的属性,则复制链接文件的属性,也就是把链接文件复制过来而不是复制链接文件地址
# -s: 拷贝为软连接
# -p: 拷贝为硬连接
# -u: 源文件比目的文件新才拷贝
# cp file1 file2 ... dir
rm 删除
rm [irf]
# -r: 递归删除
# -f: force
mv 移动
mv source1 source2 dir
dirname 和 basename 的区别
basename # 不管是否存在文件,就根据命令分割符获取文件名
dirname # 获取文件目录
cat 正向连续读
cat
# -A: 显示出隐藏的字符
# -b: 列出行号
# -n: 列出行号,连同空行也编号
tac 反向连续读
tac # 从最后一行开始输出
# Linux文本处理都是以行为基本单位进行处理
nl 输出行编号,更好用
head 查看头几行
head
# -n num: 显示前num行
# -n -num: 除了后nun行外,其他都显示
tail 查看后几行
# 显示文件第二十行到第四十行
cat a.log | tail -n 20 | head -n 40
more 和 less 的区别
more 只能往下走,查找关键字不会高亮
less 可以上下走,查找关键字更加方便,会高亮
修改文件时间与新建文件
文件的三个时间
# mtime: modify tiem内容数据改动时才更新这个时间
# ctime: change mod time文件权限,属性改动时更新这个时间
# atime: access time文件的内容被取用access时,更新这个时间
# 显示需要其他的时间,ls默认是mtime修改时间
ls -l --time=ctime
touch
touch # 本来用于修改文件时间,但是文件不存在就会创建,所以也用来创建文件
# -a: 仅修改访问时间
# -c: 仅修改文件的时间,若不存在,不创建
文件隐藏属性
chattr 修改文件的一些隐藏属性
chattr # 修改文件的一些隐藏属性
# A: 不修改atime
# S: 同步写入,这里同步IO,要等一会儿才会写入磁盘
# a: 只能增加数据,日志文件
# i: 不能删除,修改,建立链接
# s: 文件删除时,直接删除
# u: 文件删除时,数据内容存在磁盘中
文件特殊权限
set_uid
用户在执行该程序时,获得程序所有者权限,例如修改密码程序,临时获得root权限
set_gid
用户在该目录里,有效组变为目录所属组
sticky Bit
在该目录下,用户只能删除自己创建的内容