初识Linux

在这里插入图片描述

系列文章目录



前言

Linux操作系统是基于Unix操作系统的设计原则和理念,但是它是一个完全独立的操作系统。Linux操作系统被广泛用于服务器、个人电脑、移动设备和嵌入式系统等领域。Linux操作系统具有很多优点,比如稳定性、安全性、灵活性和免费使用等。Linux操作系统也拥有一个庞大的社区,这个社区不断地为Linux系统添加新的功能和更新,使得Linux系统变得更加强大和适应各种不同的需求。Linux操作系统也支持各种不同的应用程序和工具,使得用户可以根据自己的需求来定制自己的系统


一、Linux介绍

1.1 什么是Linux指令

Linux指令是在Linux操作系统中用于执行特定操作或任务的命令。用户可以通过在终端窗口中输入这些指令来控制和管理系统,例如创建、复制、移动和删除文件,查看系统信息,安装软件等。Linux指令通常由一个命令名称和一些选项或参数组成,用于指定命令应该如何执行。Linux操作系统提供了许多内置的指令,同时用户也可以编写自己的自定义指令

2.指令和界面的故事(可跳过)

指令,可能有的小伙伴是第一次听,但是它确实历史悠久,而且先于界面。

交互的需求

计算机被创造出来,是为了为人提供服务的。但是为了让计算机更好的为人服务,前提是人必须的和计算机交互起来。

类比一下另一种机器,那就是汽车,汽车是为了给人提供交通服务的,但是造出来之后,需要人通过某种方式去控制汽车,当然在汽车里,人和汽车的交互方式是通过方向盘,油门去交互的。

满足需求的第一阶段-指令

​​​​​​​​​​​​在这里插入图片描述
打字机的产生是在19-20世纪,反正是远远早于计算机发明的。所以我们要和新发明的计算机进行交互,人们先想到的是借鉴一下打字机的输入方式,来进行常规交互,慢慢演化下,就有了现在的键盘。既然早期交互硬件只有键盘,那么初期的交互方式,也变很顺理成章的是指令方式喽(又没有鼠标可以点)。
思考一下,为什么键盘现在的按键布局,是现在这个样子的呢?
1946年2月14,世界第一台计算机ENIAC问世,后因交互的需求,借鉴了打字机键盘,就有了初期的指令交互方式。

满足需求的第二阶段-界面

虽然我们还没有正式操作过,但是直觉告诉我们,指令这种方式,可能比较恶心。
一个问题想问问大家,PC时代,要点击界面,需要有鼠标点击(移动时代长大的土著,就不要和老夫杠了~~),那么,是先有鼠标,还是先有真正意义上的图形化界面呢?答案是,先有鼠标,先看看世界上第一个鼠标的样子吧。​​
在这里插入图片描述
在这里插入图片描述
这个大爷,出生于1925年1月30日,美国人道格拉斯·恩格尔巴特。这个样子的鼠标在1968年面世。
有了硬件设备的支持,同时指令用起来给一般用户的体验特别不好,再这样的需求促进下,乔布斯在1979年参观完施乐公司Xerox Alto(阿尔托)系统之后,迅速模仿并商业化出来了图形化界面交互式的方式,并诞生了世界上第一台商业图形化交互方式的电脑:lisa(当然,后面因为成本问题,效果并不理想,后来乔布斯又继续改良,就有了划时代产品Macintosh(麦金塔),也就是第一代mac笔记本,乔布斯就此封神)

    与此同时,比尔盖茨在借鉴苹果lisa下,带着他的windows 1.0,后续在商业上迅速跟进。

乔布斯对苹果的定位是一家计算机科技公司,属于软硬件都做的那种,有自己的软件操作系统,也有自己的硬件设计方案,而且乔布斯是一个神一样的产品经理,所以对软硬件的整合能力,对用户的理解,都造就了一款符合事宜,又设计精良的电脑问世。mac 1问世之后,迅速走红。
可是,走向世界的是苹果,覆盖世界的却是微软。
比尔盖茨看到这样的苹果公司,走的早,产品还好。如何赢?差异化
比尔盖茨对微软的定义是一家软件公司,也就是只负责软件,可是计算机毕竟是一个软硬件结合的产物,于是微软便找了自己的硬件合作方intel(开始是IBM,大家理念有差异,散了)开始搞事。合作的最大好处是成本好控制,生产效率高,毕竟是产业分工的产物,慢慢的windows便席卷全球,就有了摆在我们面前的windows操作系统。

苹果的操作系统,一般都在苹果的计算机上跑微软的windows操作系统,什么品牌的电脑都能跑,像联想,dell,华为,鸿基,东芝等。细心的同学应该能发现,所有的这些品牌的计算机上面搭载的CPU都是Intel的X86

我们把时间先罗列一下:
打字机产生1808年7月24日(衍生键盘)
1946年2月14,世界第一台计算机ENIAC问世
因为有交互的需求,计算机交互便借鉴打字机的键盘,慢慢演化,就有了键盘,所以当时人们对交互的想象只能是命令行
鼠标在1968年面世
1973年施乐公司Xerox Alto(阿尔托)系统,世界上第一个非商业图形化操作系统
1979年乔布斯和施乐进行利益交换,带团队参观施乐计算机研究中心,借鉴并商业化带UI的操作系统,后来衍生出来mac图形化界面(期间也有windwos的故事)
随后,微软推出了自己的桌面级操作系统windows 1.0
两家商业公司,两个老总,开始撕
就有了现在的PC界面交互方式

最后,有一个问题,就是为什么电子计算机,操作系统,各种电子设备会在1950~2000年这50年大量爆发。
这个问题有点远,有兴趣的老铁,可以在了解一下,当时的时代背景,你可能会有不一样的收获.

指令和界面交互

了解过历史之后,我们能理解,为何会有指令交互和界面交互这样的现象,但是还有两个问题的在讨论一下。

这两种方式,在操作系统层面有啥区别?
既然界面方式是发展的产物,为什么还要在学命令行?

区别:

区别这个问题,同学们现在比较难理解,目前也不打算谈。但是在功能定位上,是一样的,都是让用户进行和系统进行交互。也就是说,界面的点击操作,一般也有对应的命令与之对应? 是的

为什么要学命令行:

windows/苹果图形界面,是商业化的产物,也就是使用必须简单小白,才能有人用,so what?
严格意义上讲,我们必须要学一下Linux命令行。因为企业后端有大量的服务器,服务器上跑的全是Linux,Linux上部署的全是服务(比如:qq的服务,王者荣耀,LOL的服务等),无论是成本角度,还是资源效率角度,后台的服务器,都不会大量给你也安装一个界面让你来控制(界面也是要占系统资源的哦)但是服务器上面的服务需要维护,需要管理,也就衍生大量的对基本操作的需求。也就是企业的用人需求
Linux命令行是职业化的表现,想职业化/成大神,必须掌握Linux
Linux命令行,更接近系统原生,用的多了,面对很多系统现象,会更好理解。

严格意义上讲,光光学习Linux操作是远远不够的。

二、Linux下基本指令

2.1 用户名和pwd

首先要登录云服务器:ssh 用户名@你的云服务器的ip地址。然后输入密码。

我们使用云服务器,通过xshell软件来演示指令的操作,一个linux系统中可以有多个用户,而权限最大的用户就是根用户root,我们使用root用户来进行操作。在一进入xshell界面登录成功后,输入whoami可以知道自己的用户名
在这里插入图片描述
在Linux中我们把文件夹叫做目录文件夹本身可以存很多的其他文件或者文件夹。所以也叫目录
在这里插入图片描述
简单先介绍一下pwd指令(Print Working Directory)功能:显示当前工作目录
在这里插入图片描述
所有要查看当前在哪个目录中就是用pwd来查看,如图我们现在在root目录中。

2.2 入门指令用法

指令 中文 全称
pwd 显示当前所在的目录 Print Working Directory
ls 列出文件和目录 List
mkdir 创建新目录 Make Directory
cd 切换当前目录(进入到哪个目录) Change Directory
clear 清除显示的内容 clear

在进入xshell时,默认的是根目录:

在这里插入图片描述
输入ls之后会显示当前目录的文件:
在这里插入图片描述
可能你输入ls什么都不会显示,这是因为当前的目录下什么都没有

接下来我们简单介绍一下新建目录指令:mkdir
mkdir的功能就是创建目录:
在这里插入图片描述
一般蓝色的是目录(文件夹);白色或黑色的是普通文件。
要进入Clanguage目录则要使用到指令 cd:在这里插入图片描述
clear清除显示:
在这里插入图片描述

2.3 ls指令(列出文件)

语法:ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:

  • -a列出目录下的所有文件,包括以 . 开头的隐含文件。
  • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
  • -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
  • -l 列出文件的详细信息
  • -t 以时间排序。
  • -R 列出所有子目录下的文件。(递归)

这里我们进入Clanguage目录中创建俩个目录进行观察ls -l
在这里插入图片描述
只需要知道以d开头的是目录,以-开头的是普通文件。
文件 = 文件内容 + 文件属性

观察ls -a:
在这里插入图片描述
ls -a 列出了当前目录下的所有文件,除了dir1dir2之外还有一个点.和俩个点..,它们都是蓝色的,那么就是俩个目录。
现在暂时先了解指令关于目录下的文件我们之后做讲解。

能否将俩个功能结合呢?观察 ls -a -lls -alls -la:
ls -a -l ls -l -a:
在这里插入图片描述
ls -al ls -la:
在这里插入图片描述
结果是相同的。
所有选项是可以多选的
使用-d 选项可以查看当前目录而不看其他文件.在之后观察目录的权限时使用。
ls -ld

2.4 touch指令(建普通文件)和mkdir指令(建目录)

touch

语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项

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

mkdir

语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项

-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好
那些尚不存在的目录,即一次可以建立多个目录;

举例

mkdir –p test/test1 : 递归建立多个目录

在这里插入图片描述
再Clanguage文件夹向下,创建了目录dir,和普通文件test.txt。使用ll -a发现文件...,它们俩实际叫做隐藏文件。我们也可以创建以点开通的文件。
在这里插入图片描述
递归创建目录:
在这里插入图片描述
这里的tree是可以查看当前目录下的所有文件。
使用yum install -y tree可以安装tree指令。这里知道怎么安装,具体是什么我们之后在做简介。

2.5 pwd显示当前路径

Windows下的目录路径:C:\Users\Public,是使用\作为路径分隔符.
Linux下的目录路径:/root/Clanguage,是使用/作为路径分隔符.

路径是用于定位文件的。像上面的路径叫做绝对路径
所以我们可以使用绝对路径进行显示任意目录下的内容:
在这里插入图片描述
由目录结构可知。像/root/Clanguage最开始的/我们称为根目录

2.6 cd指令(改变当前位置)和目录结构

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

在这里插入图片描述
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
举例

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

从这看出实际上在之前的一个.和俩个..实际上就是个目录。
.表示当前目录。
..表示上级目录。
在这里插入图片描述
在这里插入图片描述
该多叉树的叶子节点一定是空目录或普通文件 。
任何一个父节点,可能存在多个子节点。
任何一个子节点一定只有一个父节点。
所以路径是唯一的,就可以用于定位文件。
同一目录下不能有同名文件。

任何一个目录都有...目录,就像每个节点都保存父节点的指针和自己的指针
而根目录没有上一级,所以它的...都指向它自己。

cd ~:回到当前用户的家目录。什么是用户的家目录?
在Windows中,桌面实际上就是一个文件夹,每一次开机都会进入桌面。
在这里插入图片描述
xxxx表示你的用户名称,这里的路径就相当于家目录。windows下可以新建很多用户。
每一个用户都会在Users中 。
而在Linux中也一样,root用户首次登录就会默认是家目录/root。其他用户:/用户名
在这里插入图片描述
Linux的每一个用户(除root)都在home文件中:
在这里插入图片描述
每一个用户,默认登录时,在自己的家目录。
在这里插入图片描述
root是超级管理员。

2.7 rmdir(删除空目录)和rm(删除文件)

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p] [dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:

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

rm命令可以同时删除文件或目录

语法:rm [-f-i-r-v] [dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项

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

对于root用户,单独使用rm会询问.
在这里插入图片描述
使用rm -rf则不会询问:
在这里插入图片描述
在这里插入图片描述
rm -rf /会将根目录的内容都删掉,导致系统崩了。不要这么干~~~

2.8 通配符*

ls搭配:
在这里插入图片描述
匹配的文件都找到,对于多目录,找到就返回。

rm搭配:rm -rf *删除当前目录下的所有文件。
*匹配所有内容。

2.9 nano编辑工具

nanoLinux环境中的一个记事本。它可以直接打开文本或.c、.cpp文件。
在这里插入图片描述
写完之后直接按CTRL + X,再输入y或Y,按回车即可退出。
在这里插入图片描述
在这里插入图片描述

写完之后可以使用cat进行查看。使用gcc -o 自己定的名字 test.c即可编译。
./test是因为要执行一个程序,得先找到该程序,这里使用相对路径可以找到,.表示当前路径。
同样可以使用绝对路径:
在这里插入图片描述

如果没有nano,可以进行安装:yum install -y nano

2.10 cp(拷贝)指令

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

常用选项:

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

下面将一个文件进行拷贝到当前目录:
在这里插入图片描述
将多个文件拷贝到一个目录:
新建文件dir
在这里插入图片描述
在这里插入图片描述

但是将目录拷贝到另一个目录是不行的,因为dir中有别人。
在这里插入图片描述
所以递归式的拷贝:
在这里插入图片描述
再一次进行拷贝,则会询问是否要覆盖:
在这里插入图片描述在这里插入图片描述
在普通用户下可以进行强制覆盖不用询问:cp -rf dir dir2
在这里插入图片描述

2.11 mv指令(移动文件,重命名)

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

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

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

常用选项

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

在这里插入图片描述
如果剪切之后跟上文件名,如果没有就会重命名。

2.12 cat指令(查看文件内容)

语法:cat [选项] [文件]
功能: 查看目标文件的内容
常用选项

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

基本用的是cat -n xxx

cat后面什么都不跟。默认向当前窗口输入。如果要结束按ctrl + c

2.13 echo(写入操作)和cat对比

cat一般用于查看小文件,查看大文件时会很麻烦。这里我们伪造一个大文件,不需要记住,我们只是举个例子:
cnt=1; while [ $cnt -le 10000 ]; do echo "$cnt";let cnt++; done > log.txt

这里要记住这一些小知识点
Linux下一切皆是文件。 键盘、显示器都看待为文件:如printf/cout都是向显示器文件中进行写入.
scanf/cin 向键盘文件中读取数据。

echo是Linux下的写入操作。echo "hello world"是默认向显示器中写入hello world
在这里插入图片描述

输出重定向符号 >

那是否可以像文件中输入呢?
echo "hello world" > test.txt
在这里插入图片描述
再通过cat进行查看文件test.txt:

在这里插入图片描述
想这样echo本来是向显示器写入的,变成向文件写入的操作我们叫做输出重定向
>符号就是 输出重定向符号.
该符号可以用于新建文件,如果文件不存在新建空文件,如果存在则会覆盖文件内容为空文件:
在这里插入图片描述

输出追加重定向>>

使用echo "" > 文件的操作会将原来内容给覆盖在这里插入图片描述
这意味着输出重定向的每次写入,都是从头开始写入。所以> test.txt也会将文件内容清空。

那么要向文件中追加内容呢?
echo "hello world" >> test.txt:
在这里插入图片描述
使用>>符号可以进行追加,注意中间不能有空格
echo命令默认后面根了换行符 ,如果不想使用换行则可以使用printf.
printf也是命令,同样可以和echo一样使用,俩者区别在于一个默认还换行一个不默认:
在这里插入图片描述

输入重定向<

只输入cat向键盘文件中读取文件,然后输入到显示器文件中。那么能否从文件中读取?
cat < test.txt
在这里插入图片描述
< 输入重定向符号,将本来默认从键盘文件输入的,更改为从文件中输入。
回到我们创建大文件那一步。
使用 ctrl + r可以匹配之前输入的命令。
在这里插入图片描述

使用more或less查看文件内容

紧接上面。
所以这里就是将内容输入到文件log.txt中。使用cat查看这样的文件时会刷屏,造成前面的内容都在上面。这样很不方便。
在这里插入图片描述
这时隆重介绍more的命令,more log.txt可以从头开始,输入q退出.
按住回车会显示下面的内容。

但是more不可以进行上翻。所以我们使用less指令:
既可以上翻又可以下翻,同样按q退出,使用方向键上下查看,回车向下: less log.txt

查看文件中,可以输入/xxx表示搜索文件内容,按 n 可以找到下一个搜索的内容。建议使用less

2.14tac指令(反着查看)

cat功能一样,只是反着输出。

2.15 head(从头查看)和 tail(从尾查看)指令

head -数字n 文件可以查看从头开始指定行数的内容。n可以省略。
在这里插入图片描述
tail -数字n 文件 可以查看从尾开始指定行数的内容。n可以省略。
在这里插入图片描述
也可以通过输出重定向符号将指定行内容输出到一个文件中查看。
在这里插入图片描述

初步认识管道

但是这样太麻烦了,我们使用head -5020 log.txt | tail -20:
在这里插入图片描述
|该符号我们称之为管道,这里简单提一下。
管道是将上一个命令的输出结果,给下一个命令执行:
在这里插入图片描述
由于Linux下一切皆是文件,所以在我们看来管道就是文件。所以上面的操作就像,把head原本向显示器写入的内容变为向管道写入,然后tail从管道里读文件。

管道可以像流水线一样:
在这里插入图片描述
可以依次试试。

2.16 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 +%Y:%m:%d -d @1599642565

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

2.17 cal查看日历

cal可以查看指定年份的日历:

2.18 find(查找)指令

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

find 指定路劲 -name 文件名可以进行在指定目录下查找文件。
find有很多选项,使用man find可以进行详细了解.一般常用的是:
find xxx -name xxx -o -name xxx ····: -o 选项进行多个文件的查找。

2.19 which(查找指令)指令

which也是一个查找命令,用于查找指令在哪个文件下。
是的没错,Linux下的指令实际上也是一个文件。
在这里插入图片描述

指令的本质

指令就是一个可执行程序,也就是文件。它内部的内容实际上就是程序员写的代码。
所以在调用时,我们也可以带路劲的调用:
在这里插入图片描述
既然是这样,那我们怎么写一个指令呢?接下来来实现一个指令打印hello world
在这里插入图片描述
使用nano编辑c语言代码,ctrl+x进行保存退出.进行编译查看是否有错误:
在这里插入图片描述
可执行程序编辑好了之后,直接使用mycmd不行,而使用./mycmd则可以,这说明常规的指令,Linux会在它默认的目录下去找,所以我们可以将mycmd拷贝到 /bin目录下:
在这里插入图片描述在这里插入图片描述
进行删除也很简单:
在这里插入图片描述
上面的一系列的操作就叫安装软件。
所以我们在当前目录下执行程序时,要时用./的方式进行执行。单单的文件名只会让Linux去它默认的目录下找。
注意可能有小伙伴,将代码编译为testtest是Linux下的一个命令。所以执行的时候或许什么都不会发生。

alias(重命名指令)指令

可能有小伙伴注意到,当我们使用which查找指令时,有的指令是一个路径,而有的指令前面还会跟上一个 alias :
在这里插入图片描述
alias叫做别名的意思,实际上就是给指令下取别名。
在这里插入图片描述
例如:
在这里插入图片描述
查看 zhangsan:
在这里插入图片描述
我们对比一下lsll:
ls 使用时我们会发现它显示的内容是有颜色的,当时使用/bin/ls不会有颜色:
在这里插入图片描述
实际上ls是被取了别名的:在这里插入图片描述
那么在使用/bin/ls时带上--color=auto即可达到一样的效果:
在这里插入图片描述
所以ll就是:
在这里插入图片描述
自己取别名的指令,会在下一次登录时取消掉。

grep指令(查找指定文件内容)

语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
常用选项

  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
    在这里插入图片描述
    使用:
    在这里插入图片描述
    未来查看进程时,我们会使用到grep。

zip和unzip指令(打包压缩)

这俩个指令是,打包和压缩指令。打包和压缩可以减少网络传输的时间。
语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项

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

如果安装了zip指令则会显示下面的内容:
在这里插入图片描述
没有安装执行下面的指令:
yum install -y zip unzip

source文件中我们创建如下文件:
在这里插入图片描述
返回到上级目录:
在这里插入图片描述
我们使用zip指令将source文件进行压缩:
在这里插入图片描述
此时我们就成功将source进行打包,再将压缩包移动到target 再进行解压:
在这里插入图片描述
进行解压:
在这里插入图片描述
但是会发现解压的结果不是我们所预期的:
在这里插入图片描述
我们只打包了source目录,里面的文件并未进行打包。
实际上我们再打包时应该跟上 -r选项:
在这里插入图片描述
在这里插入图片描述
结果符合我们的预期:
在这里插入图片描述

如果要解压到指定目录下,需要进行-d选项:
在这里插入图片描述

传输文件到Windows中

我们可以在Linux中安装一个工具lrzsz和Windows进行文件的传输:
yum remove -y lrzsz

工具中,sz指令是发送文件到Windows中,将source进行打包:
在这里插入图片描述
打包的内容和Linux中的是一样的:
在这里插入图片描述

使用rz可从Windows下传文件到Linux中,注意目录下不能有同名文件。

2.20 tar指令:打包/解压

tar [-cxtzjvf] 文件与目录 …
参数 :

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

由于选项较多,所以提供方案即可:
使用 -c创建文件, -z是否需要压缩,-f紧跟需要的名字 :
tar -czf source.tgz source :
在这里插入图片描述
也可以tar -cvzf source.tgz source显示打包的过程:
在这里插入图片描述
解压操作只需要改一个选项:
tar -xzf source.tgz:
在这里插入图片描述
如果要解压到指定文件中:
tar -xzf source.tgz -C 指定路径

同样也可以使用sz rz就可以进行和Windows进行传输。

2.21 bc指令(浮点运算)

bc命令可以很方便的进行浮点运算
在这里插入图片描述

2.22 uname –r指令(查看系统内核)

语法: uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明: uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项:

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

2.23 关机shutdown

注意云服务器不要轻易关机。关了可以去买的地方进行启动。
语法: shutdown [选项] 常见选项:

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

2.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(创建用户,在home文件下可查看用户)、 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

三、重要的几个热键[Tab],[ctrl]-c, [ctrl]-d

[Tab]按键—具有『命令补全』和『档案补齐』的功能:
快速按俩下:
在这里插入图片描述
按一下补齐内容,可以是指令,也可以是路径

[Ctrl]+c按键—让当前的程序『停掉』。
[Ctrl]+d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit。
[Ctrl]+r按键,可以用于查历史输入指令。
man指令是一个在线的命令手册。可以查命令。在这里插入图片描述
如果没有那个男人man,使用下面的指令可以安装:
yum install -y man-pages
1 是基本指令
2 是系统调用
3 是c语言的函数 如man 3 printf


如果你有所收获,可以留下你的关注和点赞,谢谢你的观看!!!

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 22:10:02       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 22:10:02       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 22:10:02       62 阅读
  4. Python语言-面向对象

    2024-07-15 22:10:02       72 阅读

热门阅读

  1. Mybatis防止SQL注入

    2024-07-15 22:10:02       21 阅读
  2. Vue2中的指令修饰符

    2024-07-15 22:10:02       19 阅读
  3. Python面试题:如何在 Python 中处理大数据集?

    2024-07-15 22:10:02       23 阅读
  4. 安全编织:Eureka驱动的分布式服务网格安全策略

    2024-07-15 22:10:02       22 阅读
  5. 速盾:cdn加速能提高多少?

    2024-07-15 22:10:02       17 阅读
  6. einsum算子不支持问题处理

    2024-07-15 22:10:02       22 阅读
  7. Vant Ui 最新访问地址

    2024-07-15 22:10:02       19 阅读
  8. AWS云计算实战:电商平台发卡机器人开发指南

    2024-07-15 22:10:02       25 阅读
  9. lua 实现一个 StateMachine状态机

    2024-07-15 22:10:02       20 阅读