【Linux学习日记】day2-基本指令(二)+(大量图文详解基本指令)

[Linux]基本指令(二)

1. man指令

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是 man 。

语法: man [选项] 命令

常用选项:

  • -k 根据关键字搜索联机帮助

  • num 只在第num章节找

  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

  • 解释一下,面手册分为8章

1 是普通的命令

2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文 件)

3 是库函数,如printf,fread

4是特殊文件,也就是/dev下的各种设备文件

5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

6 是给游戏留的,由各个游戏自己定义

7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明 8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

man ls就会显示ls指令相关的信息:

image-20230308190428287

image-20230308190440719

从第三个手册开始寻找printf指令:

image-20230308190602772

从一个手册找printf指令找到就停止:

image-20230308190631441

如果没有man指令root用户下输入 yum install -y man-pages安装即可,如果是普通用户输入 sudo yum install -y man-pages。

2. cp指令

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

功能:复制文件或目录

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

常用选项:

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

普通文件的复制十分的简单:

image-20230308191750026

由于目录是递归形式的因此复制目录,要加-r命令选项

image-20230308192200922

3. mv指令

**语法:**mv [选项] 源文件或目录 目标文件或目录

功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的 目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它 将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至 目标目录中。

将newdir(文件同理)剪切至上级目录:

image-20230308193909511

image-20230308193931498

mv在某些场景下不仅有剪切的功能还有重命名的功能:

image-20230308195537974

mv + 文件名 + 一个不存在的文件名 = 给文件重命名。

mv指令同样能将文件(目录)剪切到其他目录并且重命名:

image-20230308195907854

mv + 文件(目录)名 + 路径和路径下一个不存在的文件(目录)名 = 给文件(目录)剪切到该路径下并重命名。

4. cat命令

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

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

常用选项:

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

image-20230308200936944

-n 对输出的所有行编号:

image-20230309092334239

-s 不输出多行空行:

image-20230309092431204

5. echo指令

**语法:**echo [内容] > [路径]

**功能:**将数据输出到路径位置

将数据(字符串双引号一般可加可不加)输出到显示器上:

image-20230308201521825

image-20230308201720050

输出重定向的意义是改变数据输出的位置,不加输出重定向和位置时,会输出到显示器上。

image-20230308201831775

既然可以向文件输出数据并且还可以向显示器输出数据,那么向显示器打印也就是写入数据,也就是说显示器可以看作文件。键盘提供输入功能,显示器提供输出功能,一输入一输出也就是常说的IO操作,实际上Linux下一切皆文件

image-20230308203535338

用echo指令输出数据时,文件内的数据永远是最后一次输入的数据,因为echo是一种覆盖性写入(准备写入之前,会先清空文件这就叫做输出重定向)。

清空文件内数据,只需要将空数据重定向输入到文件内:

image-20230309175253122

一个>符号是输出重定向,两个>>是追加重定向,使用追加重定义可以在原有数据后面追加输出数据:

image-20230309090557409

在使用echo和追加重定向不断向文件写入后,可以使用wc + 文件名的指令查看文件内数据的统计信息:

image-20230309090955629

-l 命令选项显示的是文件的行数

image-20230309091034072

有输出重定向当然也有输入重定向,如果输入cat指令回车,cat指令就会从将从键盘接收的数据输入,然后cat指令会将该数据输出:

image-20230309091626918

如果想停止这个过程输入ctrl+c:

image-20230309091651574

使用输入重定向将文件内的数据输入到cat指令中:

image-20230309091750673

6. more指令

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

功能:more命令,功能类似 cat

常用选项

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

more 文件名more首先会按照屏幕大小显示数据:

image-20230309093416453

按一下回车键,数据往下翻一行(只能往下翻,不能往上翻):

image-20230309093547913

按下q退出:

image-20230309093610867

7. less指令

  • less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极 其强大。
  • less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
  • 但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容!
  • 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

语法: less [参数] 文件

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

选项:

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

用les指令打开文件:

image-20230309093909136

可以通过上下键,实现往上翻和往下翻。

less指令是支持搜索的,输入/和要搜索的内容回车:

image-20230309094514647

image-20230309094549385

按下n键可以跳到下一个包含搜索内容的位置:

image-20230309094628719

同样的,less指令按下q退出。

8. head指令

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的 开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

语法: head [参数]… [文件]…

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

选项

  • -n<行数> 显示的行数

打印文件前十行:

image-20230309095436346

9. tail指令

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail - f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.

语法: tail[必要参数] [选择参数] [文件]

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

选项:

  • f 循环读取
  • -n<行数> 显示行数

打印文件倒数十行:

image-20230309095706702

10 管道

管道的概念不止在计算机中,在生活中也有各种各样的管道,管道一定有入口也有出口,生活中管道的作用是输送资源,而在计算机中最重要的就是数据,数据就是计算机中的资源,Linux中管道的作用就是传输数据,由于有传输数据的作用,甚至可以将管道理解为文件。

将my.txt文件中的数据输入到管道( | 就是管道)中,然后将管道中的数据交给wc指令:

image-20230309162115765

为了更好的理解管道的作用,我们想一个场景:如何取到一个文本文件的第500行到520行,在前面学习了head和tail指令能够想到将文件的数据的前520行存到一个临时文件中,然后取这个临时文件的倒数20行:

image-20230309162638491

方法当然是可行的,但是如果不想创建临时文件又该怎么做?此时管道的作用就显现出来了,将文件的数据输入到管道中然后再将管道中的数据先交给head指令然后通过管道将数据交给tail指令来处理,最后由cat指令输出的显示器:

image-20230309163015111

管道的意义:集联多条指令,对数据的不断处理。

11. 时间相关指令

date 指定格式显示时间: date +%Y:%m:%d date

用法:date [OPTION]… [+FORMAT]

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

  • %H : 小时(00…23)
  • %M : 分钟(00…59)
  • %S : 秒(00…61)
  • %X : 相当于 %H:%M:%S
  • %d : 日 (01…31)
  • %m : 月份 (01…12)
  • %Y : 完整年份 (0000…9999)
  • %F : 相当于 %Y-%m-%d

输入date指令显示时间:

image-20230309164013435

通过加标记和符号改变时间的显示方式:

image-20230309164231310

在设定时间方面:

  • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
  • date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
  • date -s 01:01:01 //设置具体时间,不会对日期做更改
  • date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
  • date -s “01:01:01 20080523″ //这样可以设置全部时间
  • date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
  • date -s “20080523 01:01:01″ //这样可以设置全部时间

时间戳:

时间->时间戳:date +%s

时间戳->时间:date -d@1678351864

image-20230309165313086

Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。时间戳显示的时间就是举例1970年1月1日(UTC/GMT的午夜)有多少秒,因此时间戳可以转换成相应的时间。

12. cal指令

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳 历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。

命令格式: cal [参数] [月份] [年份]

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

常用选项

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

输入cal指令显示当月日历:

image-20230309165959775

image-20230309170008601

输入cal+年份显示当年日历:

image-20230309170033635

13. sort指令

**语法:**sort [文件名]

**功能:**对文件内的数据进行排序,排序的规则类似于C语言中的字符串比较。

image-20230309170946888

加-r(reverse)逆序排序。

uniq指令可以去重:

image-20230309182253875

14. find指令

  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。
  • Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很 多,其中大部分选项都值得我们花时间来了解一下。
  • 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
  • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系 统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

语法: find pathname -options

功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

常用选项

  • -name 按照文件名查找文件。

find + 路径 + -name + 查找的文件名,就会显示在该路径以及路径下的路径之中的文件:

image-20230309172804403

类似的指令:

which指令:用于搜索指令存在的位置。

image-20230309173443299

因为指令本身就是可执行程序,调用指令实际上就是调用可执行程序,我们所写的代码形成的可执行程序也可以叫做指令,在计算机中工具、程序(文件)、指令的含义是类似的。

image-20230309173553305

image-20230309173608535

whereis指令:通常用于在系统默认路径下搜索指定的文件、程序或指定的归档文件、压缩包。

image-20230309173820621

15. alias指令

由于Linux下的指令可能要加各种指令会使得有的指令很长,为了方便可以使用alias指令给指令起别名。

**语法:**alias [别名]=‘指令’

**功能:**给指令起别名。

image-20230309174257284

16. grep指令

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

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

常用选项

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

grep指令所作的功能是进行文本行过滤,能够将文件内容中包含关键字的行都显示出来:

image-20230309174641332

加-n命令选项显示搜索到的关键字在文件内所处的行:

image-20230309174854676

grep加-i命令选项是忽略大小写搜素:

image-20230309175606761

gerp加-v命令选项是包含关键字的不显示:

image-20230309175656822

17. top指令

语法:top

功能:打开类似于Windows下的任务管理器的工具。

image-20230309175920711

Windows下的任务管理器:

image-20230309175940108

输入top指令之后按q退出。

18. zip指令

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

功能:将目录或文件压缩成zip格式

常用选项

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

如果没有zip(unzip同理)指令需要进行安装:

image-20230309181021009

zip 压缩文件.zip 目录或文件压缩文件:

image-20230309181415802

解压后我们发现解压出来的是空目录:

image-20230309181340766

这是由于lessondir是一个递归文件需要加-r指令才能将里面的内容一并压缩:

image-20230309181709161

image-20230309181731719

打包的意义:是将所有数据整合以防丢失

压缩的意义:用更小的空间存储更多的数据。

将文件解压到指定路径下:

image-20230310171854181

加-d命令选项加路径(不加路径会解压至当前路径下),将文件解压至指定路径下。

19. tar指令

tar指令是一个既可以压缩又解压文件的指令。

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

参数

  • -c :建立一个压缩文件的参数指令(create 的意思);
  • -x :解开一个压缩文件的参数指令!
  • -t :查看 tarfile 里面的文件!
  • -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  • -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
  • -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  • -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
  • -C : 解压到指定目录

用tar指令±czf命令选项+压缩后的文件名+源文件对文件进行压缩:

image-20230310173636747

用tar指令±xzf命令选项+待压缩文件名对文件进行解压:

image-20230310173951466

不解开压缩包查看压缩包内容(v命令选项的作用是将文件信息显示的更加详细):

image-20230310174717086

image-20230310174940471

用tar指令±xzf命令选项+待压缩文件名±C+路径(不加路径会解压至当前路径下)将文件解压至指令路径下:

image-20230310175242199

20. bc指令

bc指令可以进行运算。

image-20230310180500635

将运算符通过管道交给bc指令处理:

image-20230310180532978

21. uname指令

语法:uname [选项]

功能: uname用来获取电脑和操作系统的相关信息。

补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

常用选项

  • -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称

image-20230310181310848

22. 几个重要的热键

  • [Tab]按键—具有『命令补全』和『档案补齐』的功能
  • [Ctrl]-c按键—让当前的程序『停掉』
  • [Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可 以用来取代exit

前两个热键在之前讲解别的指令时已经涉及到了,最后一个指令有时还用于退出Xshell(功能类似于输入exit回车):

输入一次ctrl+d:

image-20230310181746340

再输入一次ctrl+dXshell就会退出。

一些特殊的热键:

  • 上下键可以翻阅输入过的指令。
  • ctrl+r:在历史输入的指令中搜素。
  • history:将所有输入过的指令显示。

image-20230310182348023

ctrl+r搜索之后用左键或右键选中即可。

history指令演示:

image-20230310182610481

23. shutdown关机指令

**注意:**使用云服务的Linux是没必要去关机的,如果关掉了要去云服务后端去打开。

语法:shutdown [选项]

常见选项

  • -h : 将系统的服务停掉后,立即关机。
  • -r : 在将系统的服务停掉之后就重新启动 -t sec :
  • -t 后面加秒数,亦即『过几秒后关机』的意思

24. 一些常见指令

以下指令相对比较常见,但本文只是讲解基本指令就不去讲解了。

◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;

◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;

◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;

◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;

◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好想写博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值