【Linux】Linux的基本命令(2)

Linux中一切皆文件💓💓💓

目录

✨说在前面

🍋知识点一:Linux下基本指令(续)

[•🌰1. cat、echo指令](#•🌰1. cat、echo指令)

[•🌰2. 重定向、文件类型](#•🌰2. 重定向、文件类型)

[•🌰3. mv命令](#•🌰3. mv命令)

[•🌰4. more、less命令](#•🌰4. more、less命令)

[•🌰5. head、tail指令](#•🌰5. head、tail指令)

[•🌰6. 时间相关的指令](#•🌰6. 时间相关的指令)

[•🌰7. find指令](#•🌰7. find指令)

[•🌰8. grep指令](#•🌰8. grep指令)

[•🌰9. zip/unzip、tar指令](#•🌰9. zip/unzip、tar指令)

[•🌰10. uname指令](#•🌰10. uname指令)

[•🌰11. 几个重要的热键](#•🌰11. 几个重要的热键)

[•🌰12. 关机](#•🌰12. 关机)

🍋知识点二:Shell命令及运行原理

[• ✨SumUp结语](#• ✨SumUp结语)


✨说在前面

亲爱的读者们大家好!💖💖💖,我们又见面了,**我们从这一篇文章开始,将继续更新Linux的相关知识。**当然,之前咱们更新过一次linux的内容,再C++之间,大家如果忘记了可以去看看哦,大家也可以参考我的博客一起学习哦~

**我们今天继续给大家讲解一下Linux的相关的一些基本指令。**这一篇文章的内容不会太难,当然环境的安装需要大家自行下载,搭配的是xshell和云服务器。云服务器需要大家在腾讯云、阿里云或者华为云上购买,然后通过xshell来连接云服务器。当然链接已经给大家准备好,大家自行点击即可。

👇👇👇

💘💘💘相关链接如下(直接点击即可)

【Linux】Linux的基本指令(1)

华为云 (huaweicloud.com)

阿里云 (aliyun.com)

腾讯云 (tencent.com)

xshell下载(xshell.com)

🎉🎉🎉xshell + 云服务器🎉🎉🎉

博主主页传送门:愿天垂怜的博客

🍋知识点一:Linux下基本指令(续)

•🌰1. cat、echo指令

cat

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

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

常用选项:

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

echo

**语法:**echo [选项] [字符串或变量]

**功能:**用于在终端输出字符串或变量的值

常用选项:

|--------|---------------|
| -e | 启用反斜杠转义字符 |
| -n | 不在输出的末尾添加换行符。 |

cat和echo在后面跟的内容相同时要注意他们的区别。例如cat test.c和echo test.c,前者将显示出test.c文件中的内容,而后者会将test.c认为是字符串,直接将test.c显示出来。

举例1:

举例2

举例3:

•🌰2. 重定向、文件类型

输入重定向

输入重定向使用"<"符号,它将文件内容作为命令的输入。

示例:cat < input.txt,这会从input.txt文件中读取内容并作为cat命令的输入。

输出重定向

使用">"符号将命令的输出重定向到一个文件中。如果文件已经存在,则会覆盖文件中的内容;如果文件不存在,则会创建一个新文件。

追加重定向

追加重定向使用">>"符号,它将输出追加到文件末尾,而不是覆盖文件。如果文件已经存在,新的内容会被添加到文件的末尾;如果文件不存在,则会创建一个新文件。

深入理解重定向操作:

举例1:

举例2:

文件类型

Linux系统的文件类型不以后缀区分,以文件信息最开始的字符区分:

|-------|---------------------------|
| - | 普通文件 |
| d | 目录文件 |
| c | 字符文件,键盘、显示器、终端,输入的数据具有顺序性 |
| b | 块设备文件,磁盘 |
| l | 连接文件 |
| p | 管道文件 |
| s | socket文件 |

注意:Linux系统不以后缀分类,不代表禁止后缀,更不代表工具(gcc)不关心它!

•🌰3. mv命令

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

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

功能:

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

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

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

常用选项:

|--------|------------------------------------|
| -f | force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖 |
| -i | 若目标文件 (destination) 已经存在时,就会询问是否覆盖 |

•🌰4. more、less命令

more

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

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

常用选项:

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

less

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

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

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

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

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

常用选项:

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

•🌰5. head、tail指令

head

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

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

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

常用选项:

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

tail

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

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

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

常用选项:

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

举例:

•🌰6. 时间相关的指令

date显示

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

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

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 |

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.时间戳

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

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

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

4. cal指令

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

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

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

常用选项:

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

•🌰7. find指令

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

  2. Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。

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

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

语法: find pathname -options

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

常用选项:

|-----------|-----------|
| -name | 按照文件名查找文件 |

•🌰8. grep指令

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

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

常用选项:

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

举例:

假设我们要去寻找日志中的错误信息,我们可以有以下两种方法:

•🌰9. zip/unzip、tar指令

zip/unzip

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

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

常用选项:

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

打包和压缩

打包和压缩是数据处理和存储中的两个重要概念,它们各自具有独特的功能和目的。

打包(Archiving)

打包是指将多个文件或目录合并成一个单独的文件(通常称为归档文件或压缩包),以便更容易地管理和传输这些文件。

目的:

  1. 简化管理:将多个相关文件打包在一起,可以简化对文件的管理和访问。

  2. 便于传输:打包后的文件作为一个整体进行传输,比分别传输多个文件更高效。

  3. 保护文件:打包还可以提供一定程度的文件保护,防止文件在传输过程中丢失或损坏

压缩(Compression)

压缩是指通过特定的算法减少文件的大小,以节省存储空间或提高传输速度。

目的:

  1. 节省空间:压缩可以显著减小文件的大小,从而节省存储空间。

  2. 提高传输速度:较小的文件在传输过程中需要的时间更少,因此压缩可以提高文件传输的效率。

  3. 降低成本:对于需要长期存储或大量传输的数据,压缩可以降低存储和传输的成本。

为什么要打包和压缩?

  1. 方便性:打包使得多个文件可以作为一个整体进行管理和操作,而压缩则使得文件更加紧凑和高效。

  2. 效率:无论是打包还是压缩,都可以提高文件管理和传输的效率。打包简化了文件的管理,而压缩则加快了文件的传输速度。

  3. 经济性:压缩可以显著减少存储空间的占用,降低存储成本。同时,对于需要通过网络传输的文件,压缩也可以降低网络带宽的占用,减少传输成本。

在实际应用中,打包和压缩通常是结合使用的。例如,可以使用工具(如WinRAR、7-Zip、tar等)将多个文件打包成一个归档文件,并对该归档文件进行压缩,以同时实现文件管理和空间节省的目的。

tar

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

常用选项:

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

举例:

我们可以结合sz、rz指令来实现windows和linux文件的互传:

也可以用tar指令来完成解压缩的操作:

•🌰10. uname指令

**语法:**uname [选项]

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

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

常用选项:

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

举例:

•🌰11. 几个重要的热键

|------------|---------------------------------------------------------|
| Tab | 具有命令补全和档案补齐的功能 |
| Ctrl+c | 让当前的程序停掉 |
| Ctrl+d | 键盘输入结束(End Of File, EOF或End OfInput)的意思;另外,他也可以用来取代exit |
| Ctrl+r | 搜索历史命令 |

•🌰12. 关机

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

常见选项:

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

虽然我们可以利用shutdown进行关机操作,但是我们一定要注意:云服务器永不关机,除非维护或不用了

以下命令作为扩展:

|--------------|----------------------------------------------------------------------------|
| 安装和登录命令 | 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; |
| 其它命令 | tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode |

🍋知识点二:Shell命令及运行原理

Linux严格意义上说的是一个操作系统,我们称之为"核心(kernel)" ,但我们一般用户,不能直接使用kernel,而是通过kernel的"外壳"程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

从技术角度,Shell的最简单定义:**命令行解释器(command Interpreter)**主要包含:

  1. 将使用者的命令翻译给核心(kernel)处理。

  2. 同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫

它王婆,它对应我们常使用的bash。

• ✨SumUp结语

到这里本篇文章的内容就结束了,本节继续给大家讲解了Linux的基本指令。指令比较多大家可以将我文章中写的命令自己写一遍。加深印象。希望大家能够认真学习,迎接接下来的挑战,期待大家继续捧场~💖💖💖

相关推荐
阿里技术6 分钟前
HNSW 分布式构建实践
分布式·算法·方案·hnsw·向量检索
m0_7482478028 分钟前
如何使用Node.js快速创建本地HTTP服务器并实现异地远程访问
服务器·http·node.js
南宫生28 分钟前
力扣-图论-9【算法学习day.59】
java·学习·算法·leetcode·图论
CopyProfessor34 分钟前
Java版-图论-最短路-Floyd算法
java·算法·图论
weixin_4258782335 分钟前
Nginx 缓存那些事儿:原理、配置和最佳实践
运维·nginx·缓存
ccnnlxc37 分钟前
prometheus
linux·服务器·prometheus
aaal123440 分钟前
代码随想录算法训练营day39|动态规划part7
算法·动态规划
芜湖_1 小时前
从〇开始深度学习(番外)——快速配置云服务器
服务器·人工智能·深度学习·pycharm·autodl
Coding~1 小时前
逆向攻防世界CTF系列56-easy_Maze
c语言·汇编·算法·安全·网络安全
mzhan0171 小时前
Linux: shell: bash: Makefile:5: *** missing separator. Stop.
linux·运维·bash