深入剖析Linux常用命令,助力高效操作

目录

一、文件查看类命令

(一)cat命令

(二)more命令

(三)less命令

二、文件操作类命令

(一)cp命令

(二)mv命令

三、文件定位类命令

(一)head命令

(二)tail命令

四、命令查询类命令

五、echo命令

(一)输出普通字符串

(二)输出重定向>,追加重定向>>

(三)输入重定向<


在Linux系统的世界里,命令行是我们与系统交互的强大武器。熟练掌握一些常用命令,能极大提升我们的工作效率。今天,就带大家深入了解几个实用的Linux命令。

一、文件查看类命令

(一)cat命令

cat 命令用于查看目标文件的内容,语法为 cat [选项][文件] 。

  • 常用选项:

  • -b :对非空输出行编号。比如有文件 test.txt ,内容为:

cpp 复制代码
plaintext
  
Hello
World
 

执行 cat -b test.txt ,输出会是:

cpp 复制代码
plaintext
  
     1  Hello
     2  World
  • -n :对输出的所有行编号 。执行 cat -n test.txt ,输出为:
cpp 复制代码
plaintext
  
    1  Hello
    2
    3
    4
    5
    6  World
  • -s :不输出多行空行。若文件 empty_lines.txt 内容为:
cpp 复制代码
plaintext
  
Hello






World

 

执行 cat -s empty_lines.txt ,输出为:

cpp 复制代码
 
plaintext
  
Hello

World
 

//多行空格,保留一行

(二)more命令

more和less[后文见] (适用于大量内容 ) 命令功能类似 cat (不适用于大量内容 ) ,用于分页显示文件内容,语法是 more [选项][文件] 。

  • 常用选项:

  • -n :对输出的所有行编号 。例如有较大文件 large_file.txt ,执行 more -n large_file.txt ,会逐页显示内容并给每行编号。假设 large_file.txt 有如下内容(仅示例部分内容):

cpp 复制代码
plaintext
  
Line 1
Line 2
Line 3
...
Line 100

执行命令后,会分页展示并标注行号。

  • q :用于退出 more 。在 more 显示界面按 q 即可退出查看。

举例:通过 ls -l / | more 可以分页查看根目录下文件和目录的详细信息。假设根目录下有这些文件和目录:

cpp 复制代码
plaintext
  
bin
boot
dev
etc

执行 ls -l / | more 后,会分页展示它们的权限、所有者等详细信息。

(三)less命令

less 工具是Linux正统查看文件内容的工具,功能极其强大,语法为 less [参数] 文件 。

  • 功能优势:相比 more , less 用法更具弹性。在 more 中往往只能往后查看,而 less 可以使用 [pageup][pagedown] 等按键功能来回翻看文件。 并且 less 在查看之前不会加载整个文件,还拥有更多搜索功能,不仅能向下搜,还能向上搜。

  • 常用选项:

  • -i :忽略搜索时的大小写 。比如有文件 content.txt 内容为 "Hello, Linux is great" ,在 less 中输入 /linux (不区分大小写)能搜索到相关内容。

  • -N :显示每行的行号 。执行 less -N content.txt ,打开文件就能看到每行前面有行号标注。

  • /字符串 :向下搜索"字符串" 。例如在文件中找 great ,输入 /great 即可向下查找。

  • ?字符串 :向上搜索"字符串" 。

  • n :重复前一个搜索(与 / 或 ? 有关) 。

  • N :反向重复前一个搜索(与 / 或 ? 有关) 。

  • q :quit,退出 less 。

二、文件操作类命令

(一)cp命令

cp 命令用于复制文件或目录,语法为 cp [选项] 源文件或目录 目标文件或目录 。

  • 功能说明:若同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

  • 常用选项:

  • -f 或 --force :强行复制文件或目录 ,不论目的文件或目录是否已经存在。比如有文件 source.txt ,执行 cp -f source.txt target.txt ,若 target.txt 已存在,会直接覆盖。

  • -i 或 --interactive :覆盖文件之前先询问用户 。执行 cp -i source.txt target.txt ,若 target.txt 存在,会询问是否覆盖。

  • -r 或 -R 或 --recursive :递归处理,将指定目录下的文件与子目录一并处理 。

例如有目录 src_dir ,其下有文件 file1.txt 和子目录 sub_dir ( sub_dir 下有 file2.txt ),执行 cp -r src_dir dest_dir ,会将 src_dir 及其子目录、文件都复制到 dest_dir 。

(二)mv命令(剪切)

mv 命令是 move 的缩写,可用来移动文件或将文件改名,语法为 mv [选项] 源文件或目录 目标文件或目录 。

  • 功能实现:

mv指令可以移动文件(目录)或对文件(目录)进行重命名\n

##mv test_3_30 test(你想要命名的名字) 可以对目录进行重命名,

1##文件亦如此mv test dir1 当你要将目录test(多个文件或目录进行移动同样使用)移动到一个已经存在的目录dir1(这里只能是一个目录的情况)中,会将test目录放到已存在目录dir1的目录路径下

2##mv test .../test_3_30 可以将目录移动并且进行重命名,文件亦如此\n

3##其实在当前路径下的重命名操作可以看作将要重命名的目录移动到当前路径下并重命名,

4##不管是移动文件或者重命名我们都可以将其看作先移动再重命名,如果我们再后面路径写了重命名,那么就重命名,否则使用原文件名进行移动,目录亦如此\n

5##mv test1.txt test.txt -i 当后面的文件存在的时候,进行询问是否覆盖,如果是y覆盖那么6##test.txt中的内容被替换为test1.txt文件的内容,原test1.txt文件名消失,否则n为不操作,不适用于目录\n

7##mv test test1当后面的文件存在的时候,强制覆盖,那么test1.txt中的内容被替换为test.txt文件的内容,原test.txt文件名消失,不适用于--目录(覆盖/合并现象)

(2/7)图

  • 常用选项:

  • -f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖 。

  • -i :若目标文件已经存在时,就会询问是否覆盖 。

三、文件定位类命令

(一)head命令

head 用来显示档案的开头至标准输出中,语法为 head [参数]... [文件]... 。默认 head 命令打印其相应文件的开头10行。

  • 选项: -n<行数> 用于指定显示的行数 。例如有文件 test.txt ,内容为:
cpp 复制代码
plaintext
  
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Line 11
 

执行 head -n 5 test.txt ,会显示文件的前5行内容:

cpp 复制代码
plaintext
  
Line 1
Line 2
Line 3
Line 4
Line 5
 

(二)tail命令

tail 命令从指定点开始将文件写到标准输出,常用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理,常用查看日志文件。语法为 tail [必要参数][选择参数][文件] 。

  • 选项:

  • -f :循环读取 。比如查看正在更新的日志文件 log.txt ,执行 tail -f log.txt ,可以实时看到文件新增内容。假设 log.txt 不断有新的日志记录添加,如:

cpp 复制代码
plaintext
  
[2025-04-01 10:00:00] INFO: System started
[2025-04-01 10:01:00] INFO: User logged in
 

执行命令后能实时监控到新记录。

  • -n<行数> :显示行数 。例如 tail -n 10 log.txt ,会显示文件 log.txt 的最后10行内容。

得到中间行

举例:(简单讲解重定向和管道)

cpp 复制代码
有一个文件共有100行内容,请取出第50行内容<br>
seq 1 100 > test # 生成1到100的序列装入test
方法1 head -n50 test > tmp #将前50行装入临时文件tmp
tail -n1 tmp  #得到中建行

方法2 head -n50 test | tail -n1
'|'为管道
//节省磁盘空间和处理时间
 
//避免将中间结果存磁盘,减少磁盘读写,提高处理效率。比如数据处理流程,若不用管道,需多次写临时文件存中间结果,用管道可直接在命令间传递处理,像大数据量文本处理时优势明显。

四、命令查询类命令

man命令

Linux的命令有很多参数,我们可以通过 man 命令查看联机手册获取帮助,语法为 man [选项] 命令 。

  • 常用选项(九取其三 ):

  • -k :根据关键字搜索联机帮助 。比如想查找和文件复制相关的命令,执行 man -k copy ,会列出相关命令的简要说明。

  • num :只在第 num 章节找 。

  • -a :将所有章节的都显示出来 。比如 man -a printf ,会按顺序显示所有章节关于 printf 的内容。

五、echo命令

echo 命令是Linux中用于输出文本或变量内容 的简单而实用的命令,语法为 echo [选项] [字符串或变量] 。

(一)输出普通字符串

echo 显示一行文字到显示器上

这一行文字不同于我们c语言中的字符串,可以不带双引号\"",也可以带双引号"\",也可以带单引号也可以是汉字数字特殊符号等

cpp 复制代码
bash
  
echo Hello, Linux world!
echo "Hello, 'Linux world!'
echo "Hello, Linux world!"

(二)输出重定向>,追加重定向>>

cat 文件名 可以查看文件内容\necho hello linux>test.txt 例如我们的echo本来是将一行文字显示到显示器上,但是我们可以在这行文字后面加入>输出重定向到文件中,如果文件不存在,自动创建一个文件,如果文件存在,那么先清空文件,再对文件进行写入文字

>(覆盖性追加)

>>(换行不覆盖追加)

<(从文件中读取数据)

(三)输入重定向<

可以将输入读取数据的来源进行改变,例如cat原本是从键盘上进行读入数据显示到屏幕上,在cat后加入\u003C输入重定向加文件,就可以将读入数据来源从键盘变为文件,将文件的内容显示到屏幕上

这些Linux命令在日常系统管理、文件操作等场景中都非常实用,熟练掌握它们能让我们在Linux系统下的工作更加得心应手。希望通过这篇博客,大家能对这些命令有更深入的理解和认识。

相关推荐
lilye661 小时前
程序化广告行业(55/89):DMP与DSP对接及数据统计原理剖析
java·服务器·前端
SKYDROID云卓小助手2 小时前
三轴云台之相机技术篇
运维·服务器·网络·数码相机·音视频
东方佑2 小时前
自动调整PPT文本框内容:防止溢出并智能截断文本
linux·运维·powerpoint
zhougl9963 小时前
html处理Base文件流
linux·前端·html
泥土编程4 小时前
kubekey -实现懒人一键部署K8S集群
linux·运维
wirepuller_king7 小时前
创建Linux虚拟环境并远程连接,finalshell自定义壁纸
linux·运维·服务器
Yan-英杰7 小时前
【百日精通JAVA | SQL篇 | 第二篇】数据库操作
服务器·数据库·sql
在野靡生.8 小时前
Ansible(1)—— Ansible 概述
linux·运维·ansible
风123456789~8 小时前
【Linux运维】查询指定日期的上月
linux·运维·服务器
zyk_5208 小时前
Docker desktop如何汉化
运维·docker·容器