【Linux】常用的基本指令

在这里插入图片描述

👦个人主页:Weraphael
✍🏻作者简介:目前正在学习c++和算法
✈️专栏:Linux
🐋 希望大家多多支持,咱一起进步!😁
如果文章有啥瑕疵,希望大佬指点一二
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注😍


一、简要概括Liunx

Linux最初由Linus Torvalds(林纳斯·托瓦兹)1991年发布。它是一个开源的操作系统,意味着源代码对任何人都是可用的,并且可以被自由地使用、修改和分发。

那么开源有什么好处呢?开源不是更加危险吗?为什么大部分企业还使用Linux操作系统呢?

Linux的特点和好处】

  1. 如果一款操作系统能被企业所使用,又由于开源,那么第一个好处一定是 【成本低】
  2. 由于开源的特性,Linux系统的安全漏洞往往能够得到快速修复,同时也有众多安全工具和技术可用于保护系统免受恶意攻击。【安全】
  3. 你也许会听到Windows服务器长时间运行而突然宕机,但你绝不会听到Linux系统服务器因为长时间不关机会卡死,在Linux上几乎是不会出现这种情况的。Linux服务器可以无休止的运行下去不宕机,因为它继承了Unix卓越的稳定性和高效性。【好用、快、稳定】

二、简述操作系统的概念

  • 概念:操作系统是一款做软硬件管理的软件

以下是操作系统在计算机中所处的层次图:

在这里插入图片描述
最底层就是硬件(眼睛能看的到,摸得着),早期计算机是通过硬件电路来控制的,需要用户手动进行硬件控制。随着科技的发展,硬件变得越来越完善,所以就要有一款软件对硬件进行管理,我们称为操作系统。而硬件也随之变得复杂,功能也越来越多,因此在操作系统和硬件之间还有一个设备驱动。而有这些还是不够的,比如一个电脑,买回来仅仅是铁疙瘩,但是安装操作系统后,就可以开机(应用软件)。因此,在操作系统之上,我们还需要各种不同的应用软件,来满足用户的不同应用场景。

  • 因此,操作系统的核心工作对下管理好软硬件资源的手段,以达到对上提供良好的使用环境(稳定、快速、安全)
  • 那么如何理解我们在计算机上的所有操作?比如,调用printf函数在显示屏上打印。
    首先 我们在计算机上的行为都会转化为硬件行为。比如在文件上写东西,最后都会被保存在磁盘(硬件)中,这种转换全部都要自顶向下 贯穿 计算机软硬件结构。也就是说:几乎所有的软件行为都和操作系统有直接或间接关系。

三、Linux操作特点

  • Linux操作特点:纯命令行
  • Windows操作特点:也有命令行(WindowsPowerShell),但更多是图形化界面,主要是面向用户。

四、基本指令

4.1 whoami

【功能】 查看当前操作用户
【说明】Linux中,用户分为普通用户超级用户,超级用户只有一个,就是root;而普通用户可以通过指令创建很多个(具体指令可以查看往期博客:点击跳转

在这里插入图片描述在这里插入图片描述

4.2 ls

【语法】ls [命令选项] [目录]
【功能】该命令会显示该目录下的所有文件

在这里插入图片描述

4.2.1 常用选项1:-l

【功能】 查看当前目录下文件的详细信息。包括大小和权限信息(统称文件属性)
【说明】 此命令等价ll(小写英文字母L
【补充】 文件 = 文件内容 + 文件属性(类型、大小、创建时间)

在这里插入图片描述

4.2.2 常用选项1:-a

【功能】 查看当前目录下的所有文件,包括隐藏文件(以.开头的文件)

在这里插入图片描述

【补充:隐藏文件的概念】 Linux任何一个目录下面有有两个隐藏文件分别是...

在这里插入图片描述

4.2.3 补充:当前路径和上级路径

不知道大家有没有仔细看 ...的文件类型:目录。不妨可以分别cd看看效果:

  • cd ..:访问上级路径。

在这里插入图片描述

  • cd .访问当前路径。

在这里插入图片描述
.看似很鸡肋,其实它最大的用途是:执行当前路径下的可执行文件

在这里插入图片描述

4.3 clear

【功能】 清屏
【说明】 这是一个绝对高频使用的命令,Linux的操作都是以命令行的方式完成的,指令给多后,屏幕就被占满了,很不舒服,于是clear这个指令能快速帮我们清屏

在这里插入图片描述

4.4 pwd

【功能】 显示当前用户所在路径。

  • 超级用户root

在这里插入图片描述

  • 普通用户

在这里插入图片描述

4.5 cd

【语法】 cd [命令选项] [目录或路径]
【功能】 进入到指定目录
【补充】 Linux的整个目录结构一定是一颗多叉树,所以我们对文件的增删查改,本质就是对这颗多叉树的增删查改。并且每一个文件和目录的路径必定是唯一的。
在这里插入图片描述

  • 最常见的用法:进入指定目录。

在这里插入图片描述

4.5.1 常用选项1:cd … 和cd .

点击跳转查看

4.5.2 常用选项3:cd ~

【功能】 返回家目录,单独cd也是默认返回家目录
【说明】 超级用户的家目录是/root;普通用户的家目录是/home/用户名。所有普通用户的账号都会统一放在/home目录下。

在这里插入图片描述

4.5.3 常用选项3:-

【功能】 可以在最近访问的某个路径和当前路径之间反复横跳

在这里插入图片描述

4.5.4 补充知识1:绝对路径和相对路径
  • 绝对路径:以根目录/开始写起的文件名或目录名称。(常用于配置文件)
  • 相对路径:以.或者..开头来构建路径。相对路径更简短,依赖于当前环境的上下文。

例如,有以下文件结构:

在这里插入图片描述

假设当前所处工作目录是文件夹A。文件C的绝对路径是/文件夹A/文件夹B/文件C,而相对路径可以是./文件夹B/文件C

4.5.6 补充知识3:路径分隔符
  • /Linux的路径分隔符,而\Windows的路径分隔符

4.6 tab键

【语法】 tab
【功能】可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项

在这里插入图片描述

4.7 tree

【语法】tree [目录]
【功能】 将指定目录中的所有文件以树状结构展开。如果不加目录,默认展开当前所有目录
【说明】tree是一个扩展指令,如果指令失效,说明还没有安装这个应用。需要在root账户下输入 yum install -y tree 下载该应用

在这里插入图片描述

4.8 touch

【语法】 touch file1 file2...
【功能】 新建文件

在这里插入图片描述

4.8 nano

【语法】nano 文件
【功能】相当于记事本
【说明】如果指令失效的话,说明没有安装此应用,需要在root账户下输入yum intall -y nano进行下载

在这里插入图片描述

退出的话可以根据以下提示,其中^代表Ctrl

4.9 mkdir

【语法】 mkdir [选项] 目录
【功能】 创建目录(文件夹)

在这里插入图片描述

4.9.1 常用选项1:-p

【功能】一次可以建立多个目录

在这里插入图片描述

4.10 rm

【语法】 rm [选项] [文件名或目录名]
【功能】 rm命令可以删除文件或目录

  • rm后面不跟任何选项只能删除文件

在这里插入图片描述

4.10.1 常见选项1:-r

【功能】 删除目录

在这里插入图片描述

4.10.2 常见选项2:-i

【功能】删除前会询问是否删除

以下是在普通用户下实验,因为超级用户默认会询问

在这里插入图片描述

4.10.3 常见选项3:-f

【功能】 强制删除

在这里插入图片描述

4.10.3 补充知识:通配符:*

含义:表示所有

在这里插入图片描述

4.11 echo

【语法】 echo 字符串
【功能】 打印字符串到显示屏上

在这里插入图片描述

4.12.1 > 和 >> 和 < 的区别
  • Linux下一切皆文件
  • >输出重定向。它通常是本来是打印到显示器文件的内容重定向到其他地方
  • >>追加重定向追加重定向是将程序的输出追加到文件末尾的操作

echo 字符串 > 文件 - 清空文件内容,最后将字符串写入文件中

在这里插入图片描述
因此,如果想要清空文件的所有内容,最快捷的指令:>文件名

在这里插入图片描述

  • echo 字符串 >> 文件 - 将字符串追加到目标文件中

在这里插入图片描述

注意:如果重定向的目标文件不存在,会自动创建。

因此,除了touch可以创建文件以外,重定向也可以

在这里插入图片描述

  • 输入重定向<通过输入重定向,可以将程序原本从键盘输入改为从文件的输出中获取输入数据

4.12 cp

【语法】 cp [选项] src dest
【功能】 复制文件或目录

  • 普通文件的拷贝

在这里插入图片描述

或者还可以复制到别的目录下:

在这里插入图片描述

注意:同一个目录下,不能出现同名文件(常识)

  • 拷贝目录。必须带-r选项

注意:无论是删除目录还是拷贝目录,都要有-r选项

在这里插入图片描述

4.13 mv

【语法】 mv [选项] src dest
【功能】 重命名 + 剪切
【说明】 mv对目录操作是不需要-r选项的

  • 重命名

在这里插入图片描述

  • 剪切

在这里插入图片描述

  • 对目录操作

在这里插入图片描述

4.14 alias + which

首先看以下两个问题:

  1. 你是如何看待指令的? — 指令和可执行程序都是可以被执行的,因此指令就是可执行程序,和我们自己写的代码编译好的程序没有区别。

  2. 我们在执行指令之前,应该先做什么? — 先在系统中查找对应的指令,因此指令一定系统的在某一个特定位置(/user/bin)存在的

在这里插入图片描述
接下来解释alias

【语法】alias 重命名目标指令='源指令'
【功能】为比较长的指令起别名
【说明】相当于重命名

在前面我们说过,ls -l是等价于ll的,我们可以使用 which来查看ll的系统所在路径

在这里插入图片描述

从上图可以得出:llls -l的别名

因此,alias的功能就是为指令进行重命名

若要删除别名:alias 别名=’’

4.15 cat

【语法】 cat [选项] [文件]
【功能】 查看目标文件的内容
【说明】只适合小文本

在这里插入图片描述

4.15.1 常用选项1:-n

【功能】 查看内容时,输出对应行号(包括空白行)

在这里插入图片描述

4.15.2 常用选项2:-b

【功能】 查看内容时,输出对应行号(不包括空白行)

在这里插入图片描述

4.15.3 常用选项2:-s

【功能】 出现多行空格时,只显示一行

在这里插入图片描述

4.16 more(了解)

【语法】 more [选项][文件]
【功能】 类似cat,但它比cat指令更适合看大文本
【说明】 按enter进入下一页,按q退出,而它不能回翻看,因此比较鸡肋。而less可以做到

在这里插入图片描述

4.16.1 常用选项1:-n

【功能】 显示到n行就停下来

在这里插入图片描述

4.16.2 常用选项1:/xxx

【功能】 搜索

在这里插入图片描述

4.17 less

【语法】 less 文件
【功能】查看长文档
【说明】可以依靠方向键控制查看(前翻 + 后翻)。注意:按q键退出

在这里插入图片描述

4.17.1 常见功能1:/关键字

【功能】向下搜索关键字

在这里插入图片描述

4.17.2 常见功能1:?关键字

【功能】 向上搜索字符串

这里就不演示了,读者可以自己做实验

4.18 head

【语法】 tail [选项] [文件]
【功能】 不跟选项默认显示开头的前10行内容。

在这里插入图片描述

4.18.1 常见选项:-n

【功能】 显示文件内容的前n

在这里插入图片描述

4.19 tail

【语法】 tail [选项] [文件]
【功能】 不加选项默认显示指定文件末尾10行内容
【说明】 常用于查看日志文件。

在这里插入图片描述

4.19.1 常见选项:-n

【功能】 可以查看文档的指定后n

在这里插入图片描述

4.20 管道 |

【语法】 |
【功能】 |左侧的指令的输出作为右侧指令的输入。

假设借助管道,读取到文档的30行~50行

在这里插入图片描述

4.21 wc

【语法】 wc [文件]
【功能】 查看文件信息,依次显示包括【行数、单词数、字节数、文件名】

在这里插入图片描述

4.21.1 常用选项1:-l

【功能】 仅统计指定文件中的行数。

在这里插入图片描述

4.21.2 常用选项1:-w

【功能】 仅统计指定文件中的字符串的个数。

在这里插入图片描述

4.21.3 常用选项2:-m

【功能】 统计指定文件中的字符个数。

在这里插入图片描述

4.22 date

【语法】 date [选项]
【功能】 获取当前的时间

在这里插入图片描述

4.22.1 常见选项1:格式化输出时间

【语法】 date +%Y-%m-%d-%H-%M-%S
【打印顺序】 年月日时分秒
【说明】 中间的符号-可以根据自己的喜欢来修改

在这里插入图片描述

4.22.2 时间戳

【如何获取时间戳】 date +%s
【说明】 时间戳是指从1970年1月1日0时0分0秒到现在所经过的时间,是计算机中的一个重要概念

在这里插入图片描述

将时间戳转化对应的时间:date -d @时间戳

在这里插入图片描述

也可以格式化

在这里插入图片描述

4.23 find

4.23.1 -name
  • 在特定目录下搜索特定文件。
find 指定目录 -name 文件名

以下是在家目录中,查找test.c文件

在这里插入图片描述

4.23.2 -size
  • 在特定路径下,根据文件大小进行搜索。
find 特定路径 -size [+/-]文件大小
# +: 搜索出超过文件大小的所有文件
# -: 搜索出不超过文件大小的所有文件
# 不写+/-: 代表搜索出指定的大小文件
4.23.3 -user 和 -group
  • 根据文件的属主和所属组进行匹配搜索
find 指定路径 -user xxx # 搜索属主为 "xxx" 的文件
find 指定路径 -group xxx # 搜索所属组为 "xxx" 的文件
4.23.4 -mtime 和 -mmin
  • 根据文件的修改时间进行匹配搜索。
  • mtime:单位天
  • mmin:单位分钟
find 指定路径 -mtime -7  # 搜索最近 7 天内被修改的文件
find 指定路径 -mmin +60  # 搜索超过 60 分钟未被修改的文件
4.23.5 -exec
  • 对搜索到的文件执行指定的命令。
find 指定路径 -name 文件 -exec 对文件执行的命令

4.24 whereis

【语法】 whereis [目标]
【说明】 在系统特定的路径下查找,既可以找到可执行程序,也可以找到手册、安装包、压缩包等之类的

在这里插入图片描述

4.24.1 find、which和whereis的区别
  • find用于搜索文件和目录
  • which用于查找可执行程序(指令)的位置
  • whereis 在系统特定的路径下查找,既可以找到可执行程序,也可以找到手册、安装包、压缩包等之类的。

4.25 grep

【功能】 在文件中搜索字符串所在行。

grep '字符串' 文件

在这里插入图片描述

4.25.1 常用选项1:-v

【功能】 反向匹配,输出不匹配模式的行。

在这里插入图片描述

4.25.2 常见选项2:-n

【功能】 打印搜索字符串所在的行,并显示所在行号

在这里插入图片描述

4.25.3 常见选项3:-i

【功能】 忽略大小写进行匹配搜索。

在这里插入图片描述

4.25.4 常见选项4:-r
  • 递归搜索目录中的文件。
grep -r "xxx" dir
# 在目录dir及其子目录中递归搜索文件中包含字符串"xxx"的行:

4.26 zip + unzip

  • zip:用于创建zip格式的压缩文件。
  • unzip:用于解压zip格式的压缩文件。
  • 安装zip/unzip指令:sudo yum install -y zip unzip

【基本语法】

  • zip
# 压缩多个文件
zip 指定压缩名.zip 文件...

# 压缩文件中存在目录需要加-r
zip -r 指定压缩名.zip 目录...
  • unzip
# 默认解压到你所在的当前目录
unzip 压缩名.zip

# 指定目录解压
unzip 压缩名.zip -d 指定目录

【使用案例】

在这里插入图片描述

4.27 tar

  • 打包解压为一体。解压文件的后缀一般为.tar.gz或者.tgz

【基本语法】

# 打包
tar czf 压缩包名称.tar.gz 打包文件

# 预览压缩文件
tar tzf 压缩包名称.tar.gz

# 解压
# 默认解压到你所在的当前路径
tar xzf 压缩包名称.tar.gz

# 指定路径解压
tar xzf 压缩包名称.tar.gz -C 指定路径

【使用案例】

  • 打包和解压

在这里插入图片描述

  • 查看压缩包里面的文件

在这里插入图片描述

4.28 bc

【语法】 bc
【功能】 就是一个Linux环境下的计算器
【说明】 输入quit退出

  • 可以配合管道|使用

在这里插入图片描述

4.29 uname

【语法】 uname [选项]
【功能】 uname用来获取电脑和操作系统的相关信息,可显示Linux主机所用的操作系统的版本、硬件的名称等基本信息。

  • 选项一:-a

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

在这里插入图片描述

  • 选项二:-s

只显示内核名称。

在这里插入图片描述

  • 选项三:-n

只显示主机名

在这里插入图片描述

  • 选项四:-r(面试题)

显示内核版本号。

在这里插入图片描述

  • 选项五: -v

显示内核版本

在这里插入图片描述

  • 选项六:-m

显示机器硬件架构。

在这里插入图片描述

  • 选项七:-p

显示处理器类型。

在这里插入图片描述

  • 选项八:-i

显示硬件平台。

在这里插入图片描述

  • 选项九:-o

显示操作系统名称。

在这里插入图片描述

4.30 重要的几个热键

  1. Ctrl + c:终止因为程序或者指令异常,而导致无法进行指令输入。

  2. Ctrl + d:退出

  3. history :查看历史命令

  4. ctr + r:搜索历史命令

五、简单理解指令的运行原理

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

首先大家必须要有以下概念

在这里插入图片描述

我们所输入的指令(可执行程序),最终都要在操作系统内部运行,但由于操作系统使用难度大用户不能直接和操作系统打交道。因此,用户和操作系统之间有一个媒介叫命令行解释器(bash)。

在这里插入图片描述

它的工作原理是这样的:

  1. 用户将指令给命令行解释器。
  2. 命令行解释器主要的功能是接受用户输入的命令,并将其转换为操作系统能够理解和执行的指令。
  3. 操作系统接收到后,就会把结果反馈给命令行解释器,命令行解释器再将结果翻译给用户。

因此,命令行解释器存在的意义有两点:

  • 进行命令行解释
  • 变相保护操作系统,对于用户的非法请求直接拦截。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值