初识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]
:
* %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 -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


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

相关推荐
筱源源12 分钟前
Kafka-linux环境部署
linux·kafka
EricWang135824 分钟前
[OS] 项目三-2-proc.c: exit(int status)
服务器·c语言·前端
Yawesh_best44 分钟前
思源笔记轻松连接本地Ollama大语言模型,开启AI写作新体验!
笔记·语言模型·ai写作
成都古河云1 小时前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
算法与编程之美1 小时前
文件的写入与读取
linux·运维·服务器
xianwu5431 小时前
反向代理模块
linux·开发语言·网络·git
Amelio_Ming1 小时前
Permissions 0755 for ‘/etc/ssh/ssh_host_rsa_key‘ are too open.问题解决
linux·运维·ssh
心灵彼岸-诗和远方1 小时前
Devops业务价值流:软件研发最佳实践
运维·产品经理·devops
JuiceFS2 小时前
好未来:多云环境下基于 JuiceFS 建设低运维模型仓库
运维·云原生
Ven%2 小时前
centos查看硬盘资源使用情况命令大全
linux·运维·centos