linux目录结构为树状结构,根目录用“/”表示,“..”表示父目录路径。
常用目录操作命令如下:
ls命令:
list files缩写,用途:列出目录和文件名。
选项与参数:-a:全部的文件,包含隐藏文件。
-d:仅列出目录本身
cd命令:
change directory缩写,用途:变换工作目录。
(1)绝对路径切换:
cd /root/runoob/
(2)相对路径切换:
cd ./runloop/
(3)回到root目录:
cd ~
(4)回到父级目录:
cd ..
pwd命令:
print working directory缩写,用途:打印当前目录路径
-P表示显示出确实的路径,而非使用链接 (link) 路径
mkdir命令:
make directory缩写,用途:创建目录
语法:
mkdir [-mp] directoryname
-m 表示创建目录时设置该目录的UGO的RWX权限和chmod的数字模式一致
-p 使得mkdir可以递归创建多个目录
实例:
rmdir命令:
remove directory缩写,用途:删除空目录
语法:
rmdir [-p] directoryname
-p 使得rmdir可以递归删除多个空目录
注:若要删除有内容的目录可以使用 rm命令。
cp命令:
copy缩写,用途:拷贝文件和目录。
语法:
cp [-adfilprsu] source destination
-a 相当于-pdr;
-d 表示如果souce是link like ,则复制linklike的属性而非文件本身
-f 表示强制复制,若destination已经存在且无法打开时,强制删除目标文件(destination)后重新复制。这在某些情况下非常有用,特别是当目标文件是只读文件、锁定文件或由于其他原因无法修改时。
-i 表示若destination文档存在会执行询问动作;
-l 表示进行硬式链接创建,而非复制文件本身。
硬式链接是指多个文件名指向同一个文件数据块(即同一个 inode)。这意味着硬式链接并不会复制文件的内容,而是为同一文件数据创建一个新的文件名,两个文件名都可以独立访问和修改同一份数据。
-p表示连同文件的属性一起复制过去,若没有-p则会复制默认属性,备份文件时常用。
-r 递归复制整个目录
-s 表示复制为符号链接档,类似Windows中的创建快捷键,只是这里叫做“捷径文件”
-u表示复制只在原文件版本比destination版本高时执行复制。注:这里的版本是指最近修改时间、
rm命令:
remove缩写,用途:删除目录或文件
语法:
rm [-fir] file/directory
-f 表示强制删除,这会忽略不存在的文件;
-i表示启用交互,在删除时会询问是否删除;
-r 表示对目录进行递归删除。
mv命令:
move缩写,移动文件或目录
语法:
mv [-fiu] souce destination
-f表示强制移动,如果移动的地方已经存在了同名文件会直接覆盖;
-i表示启用交互,在移动时若存在同名文件会询问是否覆盖;
-u若目标文件已经存在,且 source 比较新,才会覆盖;
查看Linux 文件内容
Linux系统中使用以下命令来查看文件的内容:
cat命令:
concantenate缩写,用途:从第一行开始显示文件内容。
语法:
cat [-AbEnTv] filename
-A是 -vET 的整合选项,可以显示所有的控制字符和空白符;
-b表示在显示文件内容时针对非空白行显示行号;
-E表示显示结尾的断行符$;
-n和-b类似但是会显示空白行的行号;
-T将文本中有(Tab键的地方)显示为^I;
-v表示显示特殊字符;
tac命令:
和cat命令语法相同但是显示顺序是从最后一行开始显示。
nl命令:
用于给文本文件的每一行添加行号。它比简单的cat更强大,因为它提供了更复杂的行号控制选项,比如是否对空行编号、行号的格式、编号区域控制等。
语法:
nl [-bnwsvi] filename
-b 表示指定那些行需要编号,分为atn三种方式:
-b a表示所有行需要编号;
-b t表示只对非空行编号;
-b n表示所有行都不编号。
-n 表示设置行号的格式,有ln,rn,rz三种格式:
-n ln表示行号左对齐格式;
-n rn表示行号右对齐格式(默认为该模式)
-n rz表示行号右对齐格式并在行号前面添0
-w表示行号的长度。列(右对齐添0格式,行号长度为3位数):
nl -n rz -w 3 example.txt
输出如下:
001 This is line one.
002 This is line three.
-s 表示分隔符,默认是/t分割也可以自定义分割符如下:
nl -s ". " example.txt
-v 和-i分别表示设置行号的起始值和步长(设置后行号就不是1,2,3,4这样的排列了而是根据设置的起始值开始每一行的标号按步长来叠加。)
more命令:
用于分页显示文件内容,当文件内容较多时使用。
语法:
more [-ncsd] filename
more [+num] filename
-n 表示每页显示n行;
+num 表示从文件第num行开始显示;
-c表示以清屏模式显示内容
-s表示将连续的空行压缩到一行空行
-d表示显示中提示出可做出的操作
对比如下:
注:
在使用 more
命令时,你会进入一个交互模式,可以用一些快捷键控制内容的显示:
- 空格键 (
Space
):显示下一屏内容。 - 回车键 (
Enter
):逐行显示下一行。 - b:向后翻一屏。
- q:退出
more
命令。 - /pattern:查找某个特定的模式(字符串),例如
/hello
会查找文件中的 "hello"。 - n:查找下一个匹配项。
- h:显示帮助信息。
less 命令:
这是比more命令更加强大的翻页查看文件的命令
语法:
less [-NSXFRiX] fliename
less [+F] fliename
-N表示显示出行号
-S表示禁止自动换行,当行内容过长时,超出屏幕宽度的部分会被截断;
-X表示禁止在退出时清除屏幕内容,通常默认情况下less命令会自动清除屏幕的内容;
-F表示如果文件内容较短,直接显示文件而不启动分页,这样当文件内容较短时会得到类似cat命令的效果
-R表示显示文件中的颜色或特殊字符(如果有的话),对于有彩色输出的日志文件等特别有用;
-i表示在查看文件中搜索文本时不区分大小写,默认要区分大小写;
+F与-F类似,但在查看文件时自动跟踪文件的末尾。
在less命令查看文件期间可通过键盘进行导航常用操作如下:
文件内容查看:
- 空格键 (
Space
):向下滚动一屏。 - 回车键 (
Enter
):向下滚动一行。 - b:向上滚动一屏。
- y:向上滚动一行。
- q:退出
less
,返回到命令行。 - g:跳转到文件的开头。
- G:跳转到文件的末尾。
- n:重复上一次搜索。
- p:向上翻一页(与
b
类似)。 - /pattern:向下搜索字符串
pattern
。例如/hello
搜索 "hello"。 - ?pattern:向上搜索字符串
pattern
。 - n:跳到下一个匹配项。
- N:跳到上一个匹配项。
文件跳转
- 数字 + G:跳转到文件的指定行。例如,
100G
会跳转到第 100 行。 - 数字+ %:跳转到文件的百分比位置。例如,
50%
会跳转到文件的中间。
head 命令:
只看文件前几行
语法:
head [-n] filename
-n 表示要查看的行数
tail命令:
只看文件的后几行
语法:
tail [-n] filename
-n同head命令
总结:
linux系统最基本的操作目录与文件的命令:ls,pwd,mkdir,cp,rm这些都需要在实际使用中逐渐熟练,相信熟练使用这些命令后使用起来会比在widows系统中管理文件更加清晰快捷。linux系统中也提供了很多查看文件的方式,他们各有特点,其中less命令最为强大,more命令最为简单高效。