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

打印 上一主题 下一主题

主题 1664|帖子 1664|积分 4992

目次
一、文件检察类下令 
(一)cat下令 
(二)more下令 
(三)less下令 
二、文件操作类下令 
(一)cp下令 
(二)mv下令 
三、文件定位类下令 
(一)head下令 
(二)tail下令 
四、下令查询类下令 
 五、echo下令 
(一)输出普通字符串 
(二)输出重定向>,追加重定向>>
(三)输入重定向<


在Linux系统的天下里,下令行是我们与系统交互的强盛武器。熟练掌握一些常用下令,能极大提拔我们的工作效率。本日,就带各人深入相识几个实用的Linux下令。

一、文件检察类下令
 



(一)cat下令
 



 cat  下令用于检察目标文件的内容,语法为  cat [选项][文件]  。
 
- 常用选项:
 
-  -b  :对非空输出行编号。比如有文件  test.txt  ,内容为:
 
  1. plaintext
  2.   
  3. Hello
  4. World
  5.  
复制代码

 
实行  cat -b test.txt  ,输出会是:
 
  1. plaintext
  2.   
  3.      1  Hello
  4.      2  World
复制代码

 
 
-  -n  :对输出的所有行编号 。实行  cat -n test.txt  ,输出为:
 
  1. plaintext
  2.   
  3.     1  Hello
  4.     2
  5.     3
  6.     4
  7.     5
  8.    6  World
复制代码

 
 
-  -s  :不输出多行空行。若文件  empty_lines.txt  内容为:
 
  1. plaintext
  2.   
  3. Hello
  4. World
  5.  
复制代码

 
实行  cat -s empty_lines.txt  ,输出为:
  1.  plaintext
  2.   
  3. Hello
  4. World
  5.  
复制代码

 //多行空格,保留一行

(二)more下令
 



 more和less[后文见](实用于大量内容)  下令功能类似  cat (不实用于大量内容) ,用于分页表现文件内容,语法是  more [选项][文件]  。
 
- 常用选项:
 
-  -n  :对输出的所有行编号 。例如有较大文件  large_file.txt  ,实行  more -n large_file.txt  ,会逐页表现内容并给每行编号。假设  large_file.txt  有如下内容(仅示例部分内容):
 
  1. plaintext
  2.   
  3. Line 1
  4. Line 2
  5. Line 3
  6. ...
  7. Line 100
复制代码

 
 
实行下令后,会分页展示并标注行号。
-  q  :用于退出  more  。在  more  表现界面按  q  即可退出检察。
举例:通过  ls -l / | more  可以分页检察根目次下文件和目次的具体信息。假设根目次下有这些文件和目次:
 
  1. plaintext
  2.   
  3. bin
  4. boot
  5. dev
  6. 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  ,内容为:
 
  1. plaintext
  2.   
  3. Line 1
  4. Line 2
  5. Line 3
  6. Line 4
  7. Line 5
  8. Line 6
  9. Line 7
  10. Line 8
  11. Line 9
  12. Line 10
  13. Line 11
  14.  
复制代码

 
实行  head -n 5 test.txt  ,会表现文件的前5行内容:
 
  1. plaintext
  2.   
  3. Line 1
  4. Line 2
  5. Line 3
  6. Line 4
  7. Line 5
  8.  
复制代码

 

(二)tail下令
 



 tail  下令从指定点开始将文件写到标准输出,常用于表现指定文件末端内容,不指定文件时,作为输入信息进行处置惩罚,常用检察日志文件。语法为  tail [必要参数][选择参数][文件]  。
 
- 选项:
 
-  -f  :循环读取 。比如检察正在更新的日志文件  log.txt  ,实行  tail -f log.txt  ,可以及时看到文件新增内容。假设  log.txt  不断有新的日志记录添加,如:
 
  1. plaintext
  2.   
  3. [2025-04-01 10:00:00] INFO: System started
  4. [2025-04-01 10:01:00] INFO: User logged in
  5.  
复制代码

 
实行下令后能及时监控到新记录。
-  -n<行数>  :表现行数 。例如  tail -n 10 log.txt  ,会表现文件  log.txt  的末了10行内容。
   
 得到中心行
  举例:(简单讲解重定向和管道)
  1. 有一个文件共有100行内容,请取出第50行内容<br>
  2. seq 1 100 > test # 生成1到100的序列装入test
  3. 方法1 head -n50 test > tmp #将前50行装入临时文件tmp
  4. tail -n1 tmp  #得到中建行
  5. 方法2 head -n50 test | tail -n1
  6. '|'为管道
  7. //节省磁盘空间和处理时间
  8. //避免将中间结果存磁盘,减少磁盘读写,提高处理效率。比如数据处理流程,若不用管道,需多次写临时文件存中间结果,用管道可直接在命令间传递处理,像大数据量文本处理时优势明显。
复制代码

  
四、下令查询类下令
 



man下令
 
Linux的下令有很多参数,我们可以通过  man  下令检察联机手册获取帮助,语法为  man [选项] 下令  。
 
- 常用选项(九取其三):
 
-  -k  :根据关键字搜刮联机帮助 。比如想查找和文件复制相关的下令,实行  man -k copy  ,会列出相关下令的简要说明。
 

-  num  :只在第  num  章节找 。
 
-  -a  :将所有章节的都表现出来 。比如  man -a printf  ,会按顺序表现所有章节关于  printf  的内容。


 五、echo下令
 



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

(一)输出普通字符串
 


echo 表现一行文字到表现器上
这一行文字不同于我们c语言中的字符串,可以不带双引号\"“,也可以带双引号”\",也可以带单引号也可以是汉字数字特别符号等
  1. bash
  2.   
  3. echo Hello, Linux world!
  4. echo "Hello, 'Linux world!'
  5. echo "Hello, Linux world!"
复制代码
(二)输出重定向>,追加重定向>>

cat 文件名 可以检察文件内容\necho hello linux>test.txt 例如我们的echo本来是将一行文字表现到表现器上,但是我们可以在这行文字后面加入>输出重定向到文件中,假如文件不存在,主动创建一个文件,假如文件存在,那么先清空文件,再对文件进行写入文字
>(覆盖性追加)
>>(换行不覆盖追加)
<(从文件中读取数据)

(三)输入重定向<

可以将输入读取数据的泉源进行改变,例如cat原本是从键盘上进行读入数据表现到屏幕上,在cat后加入\u003C输入重定向加文件,就可以将读入数据泉源从键盘变为文件,将文件的内容表现到屏幕上
 
这些Linux下令在日常系统管理、文件操作等场景中都非常实用,熟练掌握它们能让我们在Linux系统下的工作更加得心应手。盼望通过这篇博客,各人能对这些下令有更深入的明白和认识。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万有斥力

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表