linux入门练级篇 第三讲 基本指令3

简介: linux入门练级篇 第三讲 基本指令3

前言

前言较多,这里分多篇文章讲解.

一、[mv]指令

mv命令全称:move


作用:

可以用来移动文件(剪切文件)或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录。


格式:mv+ 源文件或目录 +目标文件或目录


功能:


1.根据mv命令中第二个参数类型的不同

目标文件;mv命令将文件重命名.

目标目录:将其移至这个,目标目录中。


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


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

常用选项:

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

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

1.1 重命名文件

格式: mv+ 文件名 +新文件名


示例:


将文件test.txt文件重命名为tmp.txt.

45ca04b5ec924b54993876d419a0427c.png

1.2 剪切文件/目录

格式: mv+ 文件名/目录名 +目的地


剪切文件:


示例:


将当前目录下的tmp.txt文件拷贝至上级目录.


指令:

mv tmp.txt ..

操作:

942cc4240f954275b5143c179b045060.png

剪切目录 :


示例:


将dir1目录下的dir2目录拷贝至dir4目录下


指令:

mv dir1/dir2 dir4

操作:

a0703edb03364f93b61baef60697d5c4.png

二、[echo]指令与[cat]指令

(1) echo指令

echo指令用来在终端窗口上打印输出一段文本。它可以用于输出变量的值、常量、字符串等内容,以及在脚本中进行调试时输出一些信息。在不带任何参数的情况下,echo指令会输出一个空行。语法为:


echo [选项] [字符串]


示例:


将hello cjn显示在显示器中. 指令:

echo "hello cjn"

将hello CSDN显示在显示中. 指令:

echo "hello CSDN"

afecaa12f3a24e718b0d7d18e29cf626.png

①输入重定向 “<”

标准输入:键盘


输入重定向是指将一个文件的内容作为程序的输入,而不是只规定从键盘输入。所以被称为输入重定向.


示例1:

假设有一个名为“input.txt”的文件,想把它作为输入传递给cat命令,可以使用命令:


指令:

cat < input.txt

cad8b7a47ddd4dfbaa06b957e44066b0.png这将把“input.txt”文件中的内容作为cat命令的输入,而不是从键盘输入。

②追加重定向 “<<”

如果我们对同一个文件进行多次输出重定向时.

268d07a08cd94964bba9893501c4cbb7.png

(图中写错了,是输出重定向)


很明显,结果只有最后一次向文件写入的结果,为什么呢?

向目标文件进行写入时,会将目标文件中的内容先全部清除,也就是覆盖写入.


(1)清空文件.

(2)写入新内容.


这里也就出现了最新的那一次内容:


追加重定向: “<<”:


示例:


向test.txt文件后追加,星期一到星期七.

f81b27a4f1424000b497dac3ecfade07.png

③输出重定向 “>”

输出重定向: '“>”


定义:

在Linux下,输出重定向指的是将程序的标准输出(屏幕)重定向到文件或者其他输出设备中,可以使用符号“>”或“>>”来实现。


例如,假设要将ls命令输出结果保存到文件“file.txt”中,可以使用命令:


ls > file.txt

这将把ls命令的输出结果重定向到一个名为“file.txt”的文件中.


1.如果文件不存在,则会自动创建一个新文件.

2.如果文件已经存在,则会覆盖原有内容。


另外,如果想把输出结果追加到文件中而不是覆盖原有内容,可以使用“>>”符号,例如:


指令:

ls >> file.txt

示例2:


将字符串:"欢迎来到CSDN! --初阶牛"写入到test5.txt中.


指令:

echo "欢迎来到CSDN! --初阶牛" > test5.txt

(2) cat指令

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


格式:

cat+文件名

子选项:


-b 对非空输出行编号

-n 对输出的所有行编号

-s 不输出多行空行(即多行空行只输出一行)


示例:

a5881c7695764ea4ab4c226bc4774f5a.png

如果cat指令后面什么都不跟,则是默认从输入设备(键盘等)获取数据,显示到显示器中.


示例:


指令:

cat

ba8703f44fb54e4bb225a2b374430b6b.png

三.查找文件指令

3.1 [which]指令

一般是在指定路径(/usr/bin)下搜索指令位置.


功能:


用于查找指令所在处目录


示例:


分别查询 ls、ll、pwd指令所处目录

4d6dcb44265a460ab9f4ac04909e4a8b.png

3.2 [whereis]指令

在系统的特定路径下查找,既可以查找可执行程序,又可以查找手册,安装包,压缩包等.

c79d274622344d2b9cd6b1c15f3d8a5b.png

3.3 [find]指令

Linux下的find指令是一种强大的搜索工具,它可以在指定目录及其子目录中查找指定名称、时间、大小、权限等属性的文件或目录。


内容及其强大,在磁盘上查找任何文件(权限足够的话)


常用的find命令格式为:

find [path] [options] [expression]

其中,path指定要搜索的目录;options用于指定搜索的条件;expression为指定要搜索的文件名或类型等表达式。


示例:

查找当前目录下所有的txt文件,可以使用如下命令:

find ./ -name "*.txt"

ee273e162eac4978a5ff8fcd4ea35e77.png

这个命令中,“.“表示当前目录,”-name"表示按照文件名进行搜索,”*.txt"表示要搜索的文件名是以".txt"结尾的。


另外,还有一些常用的选项,如:

-type:按照文件类型进行搜索,常见的包括f(普通文件)、d(目录)、l(符号链接)、s(套接字)等;
-size:按照文件大小进行搜索,可用的单位有b(字节)、k(千字节)、M(兆字节)等;
-mtime:按照文件修改时间进行搜索,可用的单位有-代表小于、+代表大于、空代表等于;
-user、-group:按照文件所属用户或组进行搜索;
-exec:对搜索到的文件进行操作,例如执行一个命令等。

需要注意的是,find命令比较复杂,建议在使用前查阅相关文档或者使用man命令查看命令的详细用法。Linux下的find指令是一种强大的搜索工具,它可以在指定目录及其子目录中查找指定名称、时间、大小、权限等属性的文件或目录。

四、大文本查看

4.1 [more]指令

格式:more+ [选项] +[文件]


功能:more命令,功能类似 cat ,只不过是cat是适合查看小文本.


子选项:


-n 对输出的所有行编号


使用方法:


more +文件名


搜索: /+数字


向下滚动搜索: Enter键(more指令只有向下搜索键)


退出:more指令 :q

4.2 [less]指令

格式: less+ [参数]+ 文件

功能:

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


more指令一般很少使用,因为less指令更加强大.


less指令相比于more指令,它既可以向上搜索(‘↑’),也可以向下搜索(‘↓’).


less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。

less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!


选项:


-i :忽略搜索时的大小写

-N :显示每行的行号/字符串:向下搜索“字符串”的功能

?:字符串:向上搜索“字符串”的功能

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

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

q: quit

4.3 [head]指令(重点)

tail和head是Linux系统下常用的命令。


head命令会默认显示文本文件的前10行内容,并将结果输出到终端屏幕上。用户可以通过选项-n来指定输出的行数。


示例:head -20 test5.txt可以输出test5.txt文件的前20行。

0db57559dba8458992f3d0dfe8db905f.png

4.4 [tail]指令(重点)

而tail命令会默认显示文本文件的最后10行内容,并将结果输出到终端屏幕上。用户同样可以通过选项-n来指定输出的行数。

示例: tail -20 test7.txt可以输出test7.txt文件的最后20行。

ddfd6a2af21145cc9d49699926389f97.png

tail和head命令还可以用于实时监控日志文件,例如,可以使用tail -f命令来实时监控日志文件的变化,新的日志信息将会实时输出到终端屏幕上。tail和head是Linux系统下常用的命令。

4.5 管道的介绍(重点)

管道(pipe)是一种在Linux操作系统下,将多个命令连接在一起来实现数据传输和处理的机制。通过管道,一个命令的输出可以成为另一个命令的输入,从而可以实现对数据的处理。在Linux中,管道使用竖线符号“|”来表示。


基本使用方法:命令1 | 命令2


其中,命令1的输出会作为命令2的输入,命令2会处理命令1输出的数据。


示例:

对于大文本,如果我们不是需要头和尾的数据,而是要中间数据该怎样获取呢?


例如:


获取866行到888行的数据


指令:

head -889 test7.txt | tail -23

6c5256b1cae04e96b4d371035fdc9db9.png

五、时间/日期指令

5.1 [date]日期指令

date指令用于显示当前的日期和时间.

b457db7a4b14439d81cbab927ae614b7.png

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


1.根据自定义设置格式的连接符号:


%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

d19a91a270844442a6946037722239d6.png

2.在设定时间方面(了解就行,不需要记住,可以当做查阅资料)


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″ //这样可以设置全部时间


3.时间戳


时间戳是指一个特定时间点的标识,通常是一个整数,表示该时间点与某个特定时间点(通常是1970年1月1日 00:00:00 UTC)之间的时间差。在计算机领域中,时间戳被广泛应用于记录事件或计算时间间隔。常见的时间戳格式有Unix时间戳(以秒为单位)和JavaScript时间戳(以毫秒为单位)。时间戳是指一个特定时间点的标识,通常是一个整数,表示该时间点与某个特定时间点(通常是1970年1月1日 00:00:00 UTC)之间的时间差。


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

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


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


时间戳是一串数字,表示从1970年的1月1日 00:00:00,下面操作中是8点开始,那是因为北京是东八区,相对早八个小时.

4bd6ce3527f44c2fbcb4ed8931853899.png

5.2 [cal]日历指令

在Linux系统中,cal是一个简单的命令行工具,用于显示当前月份的日历或指定月份的日历。


语法:cal [month] [year]


常用子选项:


-3 显示系统前一个月,当前月,下一个月的月历.

-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)

-y 显示当前年份的日历


如果省略了月份和年份,则默认显示当前月份的日历。


示例1:


输入“cal”命令,将显示当前月份的日历:

f89b047061764b36b6ef6fa89ceb8283.png

如果指定了月份和年份,则会显示该月份的日历。


示例:


“cal 10 2023”命令,则会显示2023年10月份的日历:

    October 2023    
Su Mo Tu We Th Fr Sa
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

指令:cal -3


1.显示当前月份的上一个月份.

2.显示当前月份.

3.显示当前月份的下一个月份.

ed664d795a4549c0aab4a70b57097fba.png

指令:cal+年份


示例:显示2023年的日历

5b823450c6e9430da0e410104cd140bb.png

六、指令本质是什么?

在root账户下,我们可以查看一个特别的目录


指令:

ls /usr/bin

48ec90bafbb8444498b5516c56477004.png

指向过后,会发现很多指令,其中就有我们经常使用的cat、cd、rm、tree指令等等都将在里面被找到.

目录:usr/bin就是一个用于存放指令的特殊目录.


如果我们自己写了一个C代码,编译过后形成了一个可执行程序.

5fa34a26abd5496590fd019bf88eb3ba.png

将自己编写的可执行程序放入这个用于存放指令的目录(usr/bin)下:


示例:


将a.out文件移动到 /usr/bin路径底下


(注意这条操作只能在root账户下执行)

指令:

mv a.out /usr/bin

eb6957633eea435087fd9a67cabc6c31.png

所以看到这里就知道指令和我们平常写的代码生成的可执行程序没有本质区别,指令本身也是由python/c等等语言写的.


其实安装软件就是类似于这类行为.


指令的本质就是可执行程序


强烈不建议随意将自己写的可执行程序放入/usr/bin目录下,如果放多了,会很乱的,自己都可能不记得,还会与自带的指令混淆.


实验过后记得及时删除:

91431e78b1f1485cb663fbdcff468c2b.png

[alias]指令

alias指令可以给系统指令取别名.


示例:


将ll指令取别名为_cjn


指令:

alias _cjn='ll'

343accba63484f208b2324f8bb0ddf09.png

大家也不用担心会导致命名混乱,因为退出xshell客户端后,下次进来这些别名都将失效了,这只是临时别名.

目录
相关文章
|
1月前
|
Linux
linux-du指令
`du`命令是Linux系统中查看磁盘使用情况的基本工具之一。通过灵活使用 `du`命令的各种选项,可以准确、高效地获取文件和目录的大小信息,有助于系统管理员进行磁盘空间管理。无论是查找大文件、分析目录结构还是排除特定类型的文件,`du`命令都提供了丰富的功能和灵活的配置。理解和掌握 `du`命令的使用,对于维护和优化Linux系统的磁盘空间至关重要。
30 4
|
1月前
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
78 3
|
2月前
|
Linux Windows
【Linux】-基本指令(下)
【Linux】-基本指令(下)
【Linux】-基本指令(下)
|
28天前
|
安全 Ubuntu Unix
【Linux】基础指令
本文介绍了Linux操作系统的基本概念及特点,强调了其开源性、多用户多任务处理能力、稳定性和安全性。文章重点讲解了多个Linux基础命令,如ls、cd、touch、mkdir、rm、man、cp、mv、cat、less、find、grep、tar等,旨在帮助初学者快速掌握Linux命令行操作,为后续深入学习奠定基础。
57 0
|
2月前
|
Linux
【Linux第一弹】- 基本指令
【Linux第一弹】- 基本指令
39 1
|
2月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
48 3
|
2月前
|
Unix Linux 索引
【Linux】-基本指令(上)
【Linux】-基本指令(上)
|
2月前
|
存储 数据可视化 Linux
Linux 基础入门
Linux 基础入门
|
7月前
|
监控 网络协议 Java
Linux 网络编程从入门到进阶 学习指南
在上一篇文章中,我们探讨了 Linux 系统编程的诸多基础构件,包括文件操作、进程管理和线程同步等,接下来,我们将视野扩展到网络世界。在这个新篇章里,我们要让应用跳出单机限制,学会在网络上跨机器交流信息。
Linux 网络编程从入门到进阶 学习指南
|
存储 Linux C语言
Linux:入门学习知识及常见指令
Linux:入门学习知识及常见指令