参考:https://www.runoob.com/linux/linux-file-content-manage.html
文件和目录管理
pwd命令
print work directory:显示当前目录的绝对路径
$ pwd
/home
cd命令
change directory:切换到一个已创建的目录
参数可以是绝对路径,也可以是相对路径。
$ cd /home
$ cd ..
ls命令
list files: 列出目录及文件名
─$ ls
bin etc initrd.img.old lib64 media proc sbin tmp vmlinuz
boot home lib libx32 mnt root srv usr vmlinuz.old
dev initrd.img lib32 lost+found opt run sys var
常用参数:
-a, --all 不隐藏任何以 . 开始的项目
-l 使用较长格式列出信息,可以直接使用ll命令
-t 按时间排序,最新的最前;参见 --time
mkdir命令
make directory:创建一个新的目录
$ mkdir abc
$ sudo mkdir /ab
(1)如果目标目录已经存在,则提示无法创建,文件已存在
(2)如果目标目录的上一级目录不存在,则创建失败
常用帮助信息:
-m, --mode=模式 设置权限模式(类似chmod),而不是 a=rwx 减 umask
-p, --parents 需要时创建目标目录的上层目录,但即使这些目录已存在
也不当作错误处理
-v, --verbose 每次创建新目录都显示信息
示例:
$ mkdir abcd/a/c -p -v
mkdir: 已创建目录 'abcd/a'
mkdir: 已创建目录 'abcd/a/c'
touch命令
touch:单词本意是触摸,如果指定已存在目录或文件,其效果是将所指定的目录或文件的访问时间和修改时间更改为当前时间。
如果指定未存在的文件,除非提供-c或-h选项,否则将创建该文件为空文件。
注意如果该文件的上级目录未创建,则创建文件失败。
-a 只更改访问时间
-c, --no-create 不创建任何文件
-d, --date=字符串 使用指定字符串表示时间而非当前时间
-f (忽略)
-h, --no-dereference 会影响符号链接本身,而非符号链接所指示的目的地
(当系统支持更改符号链接的所有者时,此选项才有用)
-m 只更改修改时间
-r, --reference=文件 使用指定文件的时间属性而非当前时间
-t 时间戳 使用给定 [[CC]YY]MMDDhhmm[.ss] 的时间戳而非当前时间
--time=类型 修改指定类型的时间:
若所指定类型是 access、atime 或 use:与 -a 等效
若所指定类型是 modify 或 mtime:与 -m 等效
rmdir命令
remove directory:删除一个空的目录,删除非空目录会报错
帮助信息:
-p, --parents 删除指定目录及其各个上级文件夹,例如“rmdir -p a/b/c'”
与“rmdir a/b/c a/b a'”类似
-v, --verbose 输出每个被处理目录的详情和诊断信息
rm命令
remove: 删除文件或目录
(1)删除文件
$ rm abc
(2)删除空目录
$ rm ab -d
- 删除目录必须使用-d或者-r参数
(3)删除非空目录
$ rm a -r
帮助信息:
-f, --force 强制删除。忽略不存在的文件,不提示确认
-i 每次删除前提示确认
-I 在删除超过三个文件或者递归删除前提示一次并要求确认;
此选项比 -i 提示内容更少,但同样可以阻止大多数
错误发生
--interactive[=场景] 根据指定的<场景>进行确认提示:never(从不)、
once(一次,等效于使用 -I)或者 always(总是,
等效于使用 -i)。如果使用此参数没有指定<场景>则
总是提示
--one-file-system 递归删除一个层级时,跳过所有不符合命令行参
数的文件系统上的文件
--no-preserve-root 不要对“/”特殊处理
--preserve-root[=all] 不要删除“/”(默认行为);
如添加了“all”参数,将拒绝处理与父目录位于
不同设备上的命令行参数
-r, -R, --recursive 递归删除目录及其内容
-d, --dir 删除空目录
-v, --verbose 详细显示进行的步骤
cp
copy:复制文件或目录到目标文件或目录
帮助信息:
-R, -r, --recursive 递归复制目录及其子目录内的所有内容
mv
move:移动文件或目录到目标文件或目录,该命令可以起到重命名的作用
帮助信息:
-v, --verbose 对正在发生的操作给出解释
find命令
find:发现文件
参考:https://baike.baidu.com/item/find/1745330
$ find -name test
./桌面/test
./test
$ find -name az
./test/zzz/az
./test/abcd/az
- 默认在当前路径下寻找
- 寻找不区分文件和目录
文件查看
1、cat命令
由第一行开始显示文件内容
2、tac命令
从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
只是行的倒序,而各行的字符顺序没有变化。
- nl 显示的时候,顺道输出行号!
- more 一页一页的显示文件内容
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head 只看头几行
- tail 只看尾巴几行
文件编辑
1、vi和vim
vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
这是两个不同的程序,但是语法基本可以等同。
用法: vim [参数] [文件 ..] 编辑指定的文件
或: vim [参数] - 从标准输入(stdin)读取文本
或: vim [参数] -t tag 编辑 tag 定义处的文件
或: vim [参数] -q [errorfile] 编辑第一个出错处的文件
2、模式
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
$ vim abc
- 打开文件,此时可以查看阅读文件内容
- 按下i键,进入输入模式,可以编辑内容
- 按下ESC键,进入命令模式,输入前缀字符:,然后搭配其他命令字符使用
(1)q:表示quit,退出vi/vim
(2)w:表示write,即将编辑的内容写入保存
(3)!:强制,如果打开文件后有所编辑,则无法直接使用q退出,而要使用q!强制退出,或者使用wq保存后退出
3、编辑与创建
如果编辑的是一个不存在的文件,编辑后未保存退出,文件不存在。如果编辑后保存退出,会创建文件并写入内容。