在 Linux 终端的世界里,文件和目录管理是最基础也是最重要的技能之一。无论是从创建、修改、删除文件到调整权限、组织目录结构,这些操作都是我们与系统进行交互的核心。作为学习 Linux 的一部分,我将在这篇博客中深入探索如何通过命令行高效地编辑、管理文件和目录。
***注意***:linux下,一切皆文件。键盘、显示器都是文件。
1.重定向操作
在 Linux 中,重定向操作是将命令的输出或输入重定向到文件或其他目标。
(1)> (输出重定向)
将命令的输出 重定向 到指定文件。如果文件不存在,会先创建一个新文件;如果文件存在,则会先清空原有内容再输出。
(2)>> (追加重定向)
将命令的输出追加到文件末尾。如果文件不存在,会先创建一个新文件;如果文件存在,则不会覆盖原有内容,而是追加到文件末尾。
(3)< (输出重定向)
<后面通常跟会一个文件,将文件的的内容作为命令的输入。
这里先简单了解一下定义,我们在文章的后面会结合命令来帮助小伙伴们进一步理解。
2.cat(concatenate files and print)
cat主要用来查看文件内容。适合查看内容较少的纯文本文件, 对于内容较多的文件,使用cat命令查看后会在屏幕上快速滚屏,用户往往会看不清所显示的具体内容,可以按Ctrl+C组合键中断命令执行。
(1)cat
从键盘文件上读取内容,输入什么打印什么,ctrl+c可以退出。
(2)cat 文件名
从指定文件读取内容
也可以用输入重定向形式:cat < 文件名
可以说,cat读取后面所跟文件的内容,后面没有文件则默认从键盘文件读取内容,这可以说是linux下一切接文件的一种说明。
多提一点我们所使用的xshell输入命令的黑屏也是一个文件,通过ll /dev/pts命令调用,下面黄色字体的“1”便是正在使用的命令输入屏。
我们想该文件中写入一行字符串,可以看到字符串在命令行中输出了,这表明我们在输入命令的地方也是一个文件,linux下一切皆文件
(3)cat [参数]
(4)tac
cat是正向打印内容,而tac是反向打印内容
3.which
3.1什么是指令?
在介绍这个命令前,我们先来思考一下什么是指令?
结论是:指令本质上就是程序,就是文件。
例如,在windows系统下,我们选择桌面上一个图标,右击鼠标,找到属性,找到快捷方式下的目标,将这个路径复制下来
在文件夹中寻找 ,可以看到后缀为.exe,说明这是一个程序,回车可以启动应用,也就是说我们通过双击点击图标启动应用实际上就是双击运行这个程序。
而在linux中,指令都存在usr/bin/路径下,使用ls /usr/bin/即可看到
绿色代表可执行程序,可以看到ls实际上也是一个可执行程序
3.2which [参数] 文件名
小提示:"[]"中的内容是选择项,可用可不用
which命令的功能是查找命令文件,快速搜索二进制程序所对应的位置。
--color=auto表示该命令输出的内容会有颜色区分,例如目录是蓝色,可执行程序是绿色。
alias的作用是取别名,我们在这不做过多介绍,感兴趣的小伙伴可以自行去了解
4.less和more
在Linux中,`less` 和 `more` 是两个用于分页显示文件内容的命令行工具。它们都允许你在终端中查看大文件,而不用一次性加载全部内容。虽然它们的功能类似,但`less`更为强大和灵活。
向log.txt中写入一万行代码创建一个大文件
4.1more
- 基本功能:只能向前翻页查看文件内容,不支持向后翻页。
- 按键操作:
- 空格键:向前翻一页
- 回车键:向前翻一行
- q:退出
按空格向前翻页
- 限制:无法向后翻页,只能向前浏览文件内容。
4.2less
- 功能:支持向前和向后翻页,还可以搜索内容,功能比`more`更丰富。
- 按键操作:
- 空格键:向前翻一页
- 回车键:向前翻一行
- b:向后翻一页
- k:向上翻一行
- 上下键:向上下翻一行
- /:搜索关键字
- n:跳到下一个匹配项
- q:退出
按n查下一个999
- 优势:支持向前、向后翻页,还可以通过搜索快速定位到特定内容。`less`不会将整个文件加载到内存,而是根据需要动态加载,适合查看大文件。
在实际使用中,`less` 被更多地推荐,尤其是在处理大文件时。
5.echo
echo主要功能是将指定的字符串输出到终端或文件中。
默认情况下和使用“>”时,echo向显示器、指定文件写入是一个输出重定向操作:文件不存在则先新建再写入,文件已有内容先清空再写入。
(1)默认向显示器写入
写入文件时会先清空文件已有的内容。
语法:echo [字符串]
(2)文件存在写入指定文件
文件不存在则新建一个文件再写入,写入文件时会先清空文件已有的内容
语法:echo [字符串] > 文件
(3)直接使用 “> 文件“ 清空或新建一个文件文件
清空文件:
新建文件:
(4)使用ls将当前目录下的内容写入文件
(5) 追加重定向“>>”
追加重定向再原文件基础上追加内容,不会清空已有内容。
(6)结合参数使用
语法:echo [参数] [字符串] > 文件
-e \n:换行符
6.head和tail
6.1 head
head的功能是显示文件开头的内容,默认为前10行。
(1)head 文件名
(2)head 参数 文件名
6.2 tail
tail命令的功能是查看文件尾部内容,例如默认会在终端界面上显示指定文件的末尾10行,如果指定了多个文件,则会在显示的每个文件内容前面加上文件名来加以区分。
(1)tail 文件名
(2)tail 参数 文件名
6.3管道(区间查找)
在Linux中,管道(pipe)用于将一个命令的输出作为另一个命令的输入。管道通过符号 | 来表示,它使得多个命令可以组合起来运行,从而形成一种“命令链”,避免了手动将数据从一个命令传递给另一个命令的过程。
基本语法:
command1 | command2 | command3
这里,command1 的输出被传递给 command2,command2 的输出又传递给 command3,依此类推。
取[2000,2020]之间的数,先取出前2020行输出传给tail,tail取输出的2020行的后21行,得到所求的区间
将上图的结果传给tac,反向打印
7.date
在Linux中,`date` 命令用于显示当前的日期和时间。你还可以使用它来设置系统时间,或者按照特定的格式显示日期和时间。
(1)date
(2)date自定义格式
常用选项:
- `%Y`:年份(四位)
- `%m`:月份(两位)
- `%d`:日(两位)
- `%H`:小时(24小时制)
- `%M`:分钟
- `%S`:秒
- `%A`:星期几
- `%B`:月份名称
例如,显示日期为 "年-月-日 时:分:秒" 格式:
连字符可以自定义设置
(3)date + 参数
你还可以使用 `-d` 选项来显示特定的日期或时间。例如:
(4)时间戳
时间戳是自1970年1月1日以来的秒数。
使用 %s 可以显示Unix时间戳:
还可以将时间戳转换为时间
由于与西方有时间差,所以这里是北京时间8点开始
7.cal(Calendar)
cal命令的功能是用于显示系统月历与日期信息。
(1)cal
(2)cat 年
(3)cal 参数
8.文件查找
(1)find
find命令的功能是根据给定的路径和条件查找相关文件或目录,其参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能,是Linux系统运维人员必须掌握的命令之一。
语法格式:find 路径 参数 文件名
find与which的区别:
find在系统目录树下直接查找,可以查任意文件
which值用来查系统自带的可执行程序
which等同于find在usr/bin/目录下按名称查找
which XXX = find /usr/bin/ -name XXX
(2)whereis
whereis命令的功能是显示命令及相关文件的路径位置信息,可用于找到命令(二进制程序)、命令源代码、man帮助手册等相关文件的路径位置信息
语法:whereis [参数] 命令
9.grep(global search regular expression and print out the line)
grep叫行文本过滤工具,其功能是在文件中搜索字符串,将找到的行打印出来. (1)grep 字符串 文件名
(2)grep [参数] 字符串 文件名
通过这段旅程,我们不仅了解了如何管理文件和目录,还逐渐体会到 Linux 命令行的强大与灵活。每一个命令背后,都是对系统的直接操作与控制,这种简洁高效的方式让我对 Linux 有了更深的理解。掌握文件和目录管理只是开始,未来的终端之旅将带我探索更多精彩的功能。
标签:文件,之旅,写入,cat,命令,内容,终端,Linux From: https://blog.csdn.net/wangchen_0/article/details/143129055