当前位置: 首页 > news >正文

Linux常见基本指令

        本文将详细的介绍Linux中各常见指令的用法,并且在每个指令都有使用样例。一共有以下指令:

        1. man指令

        2.目录基础指令:2.1 pwd指令、2.2 ls指令、2.3 cd指令

        3.文件创建与删除:3.1 touch指令、3.2 mkdir指令、3.3 rmdir 指令 && rm 指令

        4.文件修改指令:4.1 cp 指令、4.2 mv 指令

        5.文件查看指令:5.1 cat 指令、5.2 more 指令、5.3 less 指令、5.4 head 和 tail 指令

        6.时间相关指令:6.1 date 指令、6.2 cal 指令

        7.文件查找指令: 7.1 find 指令 、7.2 grep 指令

        8.文件解压缩指令:8.1 zip/unzip 指令、8.2 tar 指令

        9.一些其他指令:9.1 bc 指令、9.2 一些重要的热键[Tab],[ctrl]-c,[ctrl]-d、9.3 关机指令 shutdow

        注:本文中使用的Linux版本为CentOs7.9。若需要查看对应的指令用法,可直接根据目录进行查找。

1. man指令

 

        所谓授人以鱼不如授人以渔,man 指令相当于matlab中的help函数可以帮助查询指令的用法。Linux的命令有很多的参数,我们不可能记全,但是我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是:

man指令
使用语法:
man [选项] 命令

        注:当执行该命令时,会跳转到另一个页面,按 q 才会退出该界面。 

        我们在使用 man 指令之前,需要先在我们的Linux环境中对 man 指令进行相关的扩展安装,在原有的环境中有关于 man 指令的手册,但是不全,我们可以使用以下指令来进行扩展:

yum -y install man-pages

        现在我们就可以开始对指令进行查询,查看指令的用法,如下:

        输入指令: man rm ,得到:

        当我们输入rm指令时就会跳转到另一个界面,该界面会详细讲解该指令的用法,其中,红框表示该指令的全称,蓝框表示该指令的用法,橙框表示该指令与其他参数的使用方法。

        那当我们输入:man man 指令时呢,就表示查询 man 指令的用法,如下:

        我们会发现,man指令一共可以搭配1~9的数字指令,其中每个数字指令代表的意思都不同,但比较常见的是前三种,至于后面的指令,由于不重要,我们就不做介绍。其中用得最多的是 2 。

        数字1~3的搭配以及解释: 

man 1 printf  //在系统的默认手册中查找可执行程序、指令的用法(普通命令)
man 2 printf  //系统调用,如open、write之类的指令
man 3 printf  //在C库函数查找printf函数的用法

        当我们执行了以上三条命令时,得出结果如上,1和3中的printf指令的用法不同,而在2中没有找到该指令的用法。 

2.目录基础指令

2.1 pwd指令

        功能:显示用户当前所在目录

        语法:pwd

        如上图,表示现在处于/root/test.dir这个目录当中。

2.2 ls指令

        功能:对于目录,该命令列出该目录下所有子目录与文件。对于文件,将列出文件名以及其他信息。

        语法:ls [选项][目录或文件]

        常用选项:

-a 列出目录下的所有文件,包括以.开头的隐含文件;
-d 将目录像文件一样显示,而不是显示其下的文件,如:ls -d 指定目录
-l 列出文件的详细信息
-r 对目录反向排序
-t 以时间排序
-1 一行只输出一个文件

        当我输入 ls -l 指令时,如下: 

        对于得出的文件,红框表示的是,该目录下的文件或者目录名,名前面的表示该文件或者目录的详细信息。 

        当输入ls -a 命令和ls -a -l 命令时:

        由上对比可知,指令的参数之间可以叠加使用,ls -a -l 表示列出该目录下所有文件的详细信息(ls -a -l 同样可以写成ls -al 或者ls -la)。

        当我们对比上图ls -l 列举出来的文件,发现ls -a 多列举出两个文件,其文件名为“ . ”和“ .. ”,其中“ . ”表示:当前目录,“ .. ”  当前目录的上一级目录。

 2.3 cd指令

        功能:改变工作目录。将当前工作目录改变到指定目录下。

        语法:cd 目录名。

        在Linux系统中,磁盘上的文件和目录组成了一颗目录树,每个节点都是目录或者文件,如下:

        我们还可以通过命令操作来查看文件和目录是否为树状结构,如下: 

        在使用 tree 指令前需要先安装,如下:

yum install -y tree

        其中,对于cd的操作,有以下几种:

cd .. :返回上级目录
cd /home/litao/linux/ :绝对路径
cd ../day02/ :相对路径
cd ~ :进入用户家目录
cd - :进入最近访问目录

        如上图,通过 cd 指令对当前目录的切换的使用。

3.文件创建与删除

 3.1 touch指令

        功能:touch的命令参数可以更改文档或者目录的日期时间,包括存取时间和更改时间,或者创建一个新的不存在的文件。

        语法:touch [选项]... 文件...

        常用选项:

-t :使用指定的日期时间,而非现在的时间
-r :把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
-m :或--time=mtime或--time=modify 只改变时间
-f :此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
-d :指定的日期时间。而非现在的时间
-c :或--no-create 不建立任何文档
-a :或--time=atime或--time=access或--time=use  之更改存取时间

        touch创建文件,如下:

        对于该文件的创建,我们还可以使用另一个指令查看文件更为详细的信息,如下:

stat 文件名 

        如上,stat 指令只能查看文件的详细信息,但是不能查看目录的详细信息。 

 3.2 mkdir指令

        功能:在当前目录下创建一个名为“dirname”的目录。

        语法:mkdir [选项] dirname...

        常用选项:

-p,--parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项将自动建立好那些尚不存在的目录,即一次性可以建立多个目录;mkdir -p test/test1 :递归建立多个目录

        如下: 

        使用递归创建出了多级目录。 

3.3 rmdir 指令 && rm 指令

        rmdir是一个与mkdir相互对应的命令。mkdir是建立目录,而rmdir为删除命令。

        功能:删除空目录。

        语法:rmdir [-p][dirName]

        适用对象:具有当前目录操作权限的所有使用者。 

        常用选项:

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除

        当我们想要删除目录时,rmdir 指令只能删除空目录,并且需要到对应路径下才能将其删除。

        rm 指令可以同时删除文件或者目录。

        功能:删除文件或者目录。

        适用对象:所有使用者,不在局限于空目录或者空文件。

        语法:rm [-f-i-r-v][dirName/dir]

        常用选项:

-f 及时文件属性为只读(即写保护),同样直接将其删除
-i 删除前逐一询问确认
-r 删除目录下所有文件

        如上图,当我们适用 rm 删除目录时,不能直接删除,需要加上 -r 参数,并且删除时,系统还会提醒是否需要删除该目录,输入 y 则表示同一,输入 n 则表示不同意删除。 若我们直接使用  -f 参数,那么系统将不会提醒是否需要删除该目录。另外,参数之间可以直接配合使用。

4.文件修改指令

4.1 cp 指令

        功能:复制文件或者目录

        语法:cp [选项] 源文件或或者目录 目标文件或者目录

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

        常用选项:

-f 或 --force 强行复制文件或目录,不论目的文件或目录是否已经存在。
-i 或 --interactive 覆盖文件之前选询问用户。
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态不属于目录或符号链接,则一律按照普通文件处理。
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理。

        如上图所示,我们可以使用类似于 rm 指令的参数形式进行 copy ,并且将其拷贝到另一个路径时,我们会发现,如果另一个路径没有该目录,那么会将源文件进行改名,并在该路径下创建。 

        若我们没有使用 -r 或 -f 参数,很可能遇到和上面直接使用 rm 指令相类似的问题。

4.2 mv 指令

        mv 指令是 move的缩写,可以用来移动文件或将文件改名,是Linux系统下常用的指令之一,经常用来备份文件或目录。

        功能:1. mv 指令中的第二个参数类型的不同(是目标文件还是目标目录),mv 命令将文件重命名或将其移至一个新的目录中;

        2.当第二个参数类型是文件时,mv 命令完成文件重命名,此时,源文件(源目录)只能有一个,它将所给的源文件或目录重命名为给定的目标文件名。

        3.当第二个参数是已经存在的目录名称时,源文件或目标参数可以有多个,mv 命令将各参数指定的源文件均移动到目标目录中。

        常用选项:

-f :force强制,如果目标文件已经存在,不会询问而直接覆盖。
-i :若目标文件已经存在,就会询问是否将其覆盖。

        如上图所示,当我们直接使用 mv 指令时,若遇见同名文件时,那么会询问是否将其覆盖,若加上 -f 参数,则会直接将其覆盖,不会询问。当然,如果没有遇见同名文件时,也不会出现这种情况。 当然这只是对文件进行剪切,我们还可以对文件进行重命名,但其实底层逻辑是一样的,将其剪切到当前路径下,并且重命名,用在同一目录下就是重命名。

5.文件查看指令

5.1 cat 指令

        功能:查看目标文件的内容;

        语法:cat [选项][文件]

        常用选项:

-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行

        与cat相类似的一个指令:tac 文件名。可以将文件内容从最后开始打印。 

        另外,当我们需要在文件中写入内容时,我们可以使用以下指令对文件进行写入,如下:

nano 文件名
//若Linux中未安装nano,输入:yum -y install nano

        当输入 nano 文件名 时,会进入这个界面,接下来就可以开始对文件进行编辑了。如果要退出来,ctrl+x退出,然后输入y,最后回车就可以退出来了。

        如上所示,cat的各种用法,已经使用 tac 指令将文件内容倒着打印。

5.2 more 指令

        功能:more 指令的功能类似于cat,但是如果对于大文件来说的话,cat会直接加载整个文件信息,而more只能显示部分信息,只能向前浏览,不能向后浏览,若想要查看到对应的位置,需要输入指令。

        语法:more [选项][文件]

        常见选项:

-n 对输出的所有行编号
q  退出more

         如上图所示,当输入对应的编号时,会自动进行查找。找到对应的位置,不过唯一的缺点就是不可以向后浏览,只能向前浏览。

5.3 less 指令

        功能:less 与 more 类似,但使用 less 可以随意的浏览文件,而 more 仅仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

        语法:less [参数][文件]

-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串 :向下搜索“字符串”的功能
n :重复前一个搜索(与 / 或 ?有关)
N :反向重复前一个搜索(与 / 或 ?有关)
q :quit退出

        less的优点:1.less 工具也是对文件或其他输出进行分页显示的工具,应该说是Linux正统查看文件内容的工具

        2.less 的用法比起 more 更加有弹性。在 more 的时候,我们并没有办法向前面翻,只能往后面查看。

        3.但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!

        4.除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

        当我输入 less big.txt时,输出的结果如上,我们可以按pageup和pagedown,来查看上下的信息。也可以直接 /关键字 来查找对应的位置。       

5.4 head 和 tail 指令

        head 和 tail 就像它们的名字一样,是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 就是查看档案的结尾。

        head 的功能:显示档案开头至标准输出中,默认 head 命令打印其相应文件的开头10行。

        tail 的功能:显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

        语法:head [参数]... [文件]...          tail [参数]... [文件]...

        常用选项:

-n 显示的行数

         如上所示,可以显示文件内容的头和尾。

        如何用头和尾来获得文件的中间部分内容呢,比如在这一万行的数据中,找到数据5090 ~ 5100行的数据,如下:

        在命令行中使用了 “ | ” 来对数据链接,先将前5100各数据筛选出来,然后在筛选后11个,这样就得出了中间的数据。 

6.时间相关指令

6.1 date 指令

        在显示方面:

        语法:date +%Y:%m:%d

        使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:

%H :小时
%M :分钟
%S :秒
%X :相当于%H:%M:%S
%d :日
%m :月份
%Y :完整年份
%F :相当于%Y-%m-%d

        时间戳:

        时间转化为时间戳:date +%s

        时间戳转化为时间:date -d@1508749502(时间戳)

        Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

        如上,对于时间的输出格式,可以由我们自己来定,对于时间戳的显示也如上。

6.2 cal 指令

        功能:用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
        语法:cal [参数][月份][年份]

        常用选项:

-3 显示系统前一个月,当前月,下一个月的日历
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
-y 显示当前年份的日历

7.文件查找指令 

7.1 find 指令 

        功能:用于在文件树中查找文件,并做出相应的处理。

        语法:find pathname -options

        常用选项:

-name 按照文件名查找文件

        1. Linux下find命令在目录结构中搜索文件,并执行指定的操作。 

        2. Linux下find命令提供了相当多的查找条件,功能很强大。

        3.即使系统中含有网络文件系统(NFS),find 命令在该文件系统中同样有效,只你具有相应的权限。

        4.在运行一个非常消耗资源的 find 命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

        上图所表示的以上按照名称在 ”  /  “目录中查找code.c文件。find 的查找其实是在目录的树形结构中查找文件,也就是说其实相当于对目录的遍历。 

7.2 grep 指令

        功能:在文件中搜索字符串,将找到的行打印出来。

        语法:grep [选项] 搜索字符串 文件

        常用选项:

-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,即显示出没有“搜索字符串”内容的行

         如上图,我们得出的在code.c文件中含关键字 999 的行。

8.文件解压缩指令

8.1 zip/unzip 指令

        功能:将目录或文件压缩成zip格式/将zip格式的文件解压。

        语法:zip 压缩文件.zip 目录或文件。

                   unzip 压缩文件.zip [-d /path/to/directory]

        常用选项:

-r 递归处理,将指定目录下的所有文件和子目录一并处理

        如上所示,将根目录下的 a 目录压缩在了 / 目录中,并更名尾 new.zip。 

        上图所示即为将压缩文件解压到目标文件。 

8.2 tar 指令

        功能:与 zip 、unzip 指令一样,具有压缩和解压缩文件的功能;

        语法:tar [-cxtzjvf] 文件与目录 ... 

        常用选项:

-c :建立一个压缩文件的参数指令(Create)
-x :解开一个压缩文件的参数指令
-t :查看tarfile里面的文件
-z :是否同时具有gzip的属性?即是否需要使用gzip压缩
-j :是否同时具有bzip2的属性?即是否需要用bzip2压缩
-v :压缩的过程中显示文件,常用,但不建议用在背景执行过程
-f :使用档名,注:在f之后要立即使用档名,不要在有其他参数,即f是最后的参数
-C :解压到指定目录

        对于以上的常用参数,我们通常只需要记住两个就可以了:

tar -cvzf name.tgz file1 file2 ...  //压缩文件
tar -xvzf name.tgz [-C path]        //解压文件

        左图为压缩,右图为解压。 

9.一些其他指令

9.1 bc 指令

        bc 指令可以用于进行浮点运算,相当于一个计算器。

        如上图,可直接输入 bc 指令进行计算器模式,ctrl+c退出计算器模式,也可以使用管道连接来计算。 

9.2 一些重要的热键[Tab],[ctrl]-c,[ctrl]-d

        [Tab]按键具有指令补全以及档案补全的功能;

        [ctrl]-c按键可以让当前程序立即停掉,特别是一些陷入死循环的程序;

        [ctrl]-d按键通常代表:键盘输入结束,另外,可以用来取代exit。

        如上图的橙框,当输入的一些指令不全时,按两下 Tab 键,下面就会显示可能的指令,若只有一种指令则直接补全。ctrl+c 终止当前程序。 ctrl+d 会导致直接退出当前操作系统。

9.3 关机指令 shutdown

        语法:shutdown [选项] ** 常见选项:**

-h :将系统的服务关掉,立即关机
-r :在将系统的服务关掉之后重启
-t sec :-t 后面加秒数,即过几秒后关机

        因为我是云服务器的缘故,我便不在展示关机指令的操作。(理论上:云服务器严禁关机,但其实也可以关机,只不过之后操作起来稍微麻烦了一点) 

相关文章:

  • 阿里云幻兽帕鲁服务器操作系统Linux和Windows哪个好?
  • LeetCode LCR 085. 括号生成
  • SpringBoot3整合MinIO
  • 【前端工程化面试题目】webpack 的热更新原理
  • 加解密算法
  • 【2024毕业快刊】检索49年老刊,中科院TOP,最快21天,国人友好,着急毕业推荐!
  • 无向图的双连通分量
  • ElementUI table表格组件实现双击编辑单元格失去焦点还原,支持多单元格
  • 深度学习基础之《TensorFlow框架(6)—张量》
  • haproxy集成国密ssl功能
  • 23-k8s中的控制器资源-DaemonSet控制器
  • PiflowX-组件UnionAll
  • 【C++】vector模拟实现+迭代器失效
  • SSH连接密码问题:原因、表现与解决方案
  • rtt的io设备框架面向对象学习-软件模拟rtc设备
  • JavaScript-如何实现克隆(clone)函数
  • Angular 响应式表单之下拉框
  • Apache Pulsar 2.1 重磅发布
  • conda常用的命令
  • Flannel解读
  • JavaScript HTML DOM
  • java中具有继承关系的类及其对象初始化顺序
  • markdown编辑器简评
  • 复杂数据处理
  • 关于List、List?、ListObject的区别
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 技术胖1-4季视频复习— (看视频笔记)
  • 解析 Webpack中import、require、按需加载的执行过程
  • 看域名解析域名安全对SEO的影响
  • 码农张的Bug人生 - 初来乍到
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 译米田引理
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # Panda3d 碰撞检测系统介绍
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • $.ajax()
  • (二)fiber的基本认识
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)kafka实战——kafka源码编译启动
  • (一一四)第九章编程练习
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .dwp和.webpart的区别
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .pyc文件是什么?
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [Angular] 笔记 18:Angular Router
  • [BUUCTF 2018]Online Tool
  • [BZOJ 4034][HAOI2015]T2 [树链剖分]
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数