目录导航
跳转到主目录(直接输入 cd 命令后直接按【 enter 】键效果相同)。列出内容
ls列出目录内容。-l显示详细信息,-a包含隐藏文件(以点开头的文件名),-h以人类可读格式打印大小。按修改时间排序,最新的排在前面。添加-r可反转任意排序顺序。现代替代品增加了颜色、图标和 Git 状态显示(以下两个命令需要自行安装才可使用,非默认内置命令)。查看文件
cat打印整个文件内容,less允许你滚动和搜索(按q退出,按/搜索)。bat是带有语法高亮的 cat 增强版。cat [fileName]less [fileName]bat [fileName]
$ head -n20 [fileName]$ tail -n20 [fileName]
创建
touch创建一个空文件(或更新已有文件的时间戳)。mkdir -p一步创建嵌套目录,如果目录已存在也不会报错。touch [fileName]mkdir [folderName]mkdir-p path/to/nested/folder> [fileName]
复制、移动、重命名
cp [fileName] [newFileName]cp-r [folder] [folderCopy]
mv兼具移动和重命名功能;没有单独的 rename 命令。mv [oldName] [newName]mv [fileName] [targetFolder]/
注意:cp和mv都会直接覆盖已有目标而不询问。添加-i可在覆盖前提示确认,或添加-n以禁止覆盖。删除
rm删除文件。-r删除目录及其所有内容。没有撤销操作——删除是永久且立即生效的,所以操作前务必仔细检查。不确定时,使用rm -ri逐个确认删除。rm [fileName]rm-r [folderName]
比rm更安全:将文件移动到桌面回收站,可以从中恢复。gio trash [file]trash-put [file]
trash-listtrash-emptygio trash --empty
链接
符号链接指向一个路径。如果目标移动,链接会失效,但绝大多数情况下你应该使用它。ln -s [target] [linkName]
硬链接是同一文件内容的第二个名称,直到所有名称都被删除才会失效。硬链接不能跨文件系统,也不能指向目录。权限与所有权
每个文件都有所有者、所属组和权限位(所有者/组/其他用户)。ls -l显示它们,stat显示所有信息。chmod更改权限,可以使用符号模式或八进制数字(读=4,写=2,执行=1)。chmod +x [script]chmod 644 [file]chmod 755 [folder]chmod -R u+rwX [folder]
| 模式 | 说明 |
|---|
| 644 | 所有者可读写,其他用户只读(典型文件权限) |
| 755 | 所有者完全访问,其他用户可读可进入(典型目录或脚本权限) |
| 600 | 仅所有者可读写(私钥、敏感信息) |
| 700 | 仅所有者有全部权限(私有目录) |
chown更改所有者和组,chgrp仅更改组。更改所有者需要 root 权限。chown [user]:[group] [file]chown -R [user]:[group] [folder]chgrp [group] [file]
搜索文件内容
grep在文件内部搜索,rg(ripgrep)默认递归搜索且速度更快。grep "phrase" [fileName]grep -rn "phrase" [folder]rg "phrase"
要按名称、大小或时间查找文件,请参阅搜索与查找基础页面。比较文件
diff-u [file1] [file2]diff-r [folder1] [folder2]
磁盘用量
du测量目录包含的内容大小,df显示每个文件系统的可用空间。交互式且更美观的替代品让查找磁盘空间占用大户变得轻松。挂载文件系统
列出块设备,识别分区上的文件系统,然后将其挂载到某个目录。lsblk -fmount /dev/[device] [path]umount [path]
编辑文本文件
以下任意编辑器都可以在终端中使用。nano是最易上手的;vim 和 emacs 有各自的基础页面。nano [fileName]vi [fileName]emacs [fileName]micro [fileName]