【linux】基本指令详解

文章目录

【Linux】1. 基本指令详解

前言–Linux操作系统由来

1.1Linux发展史

大名鼎鼎的Linux之父就是Linus Benedict Torvalds,1991年10月5日,赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组
(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。新的操作系统是受到另一个UNIX的小操作系统——Minix的启发,该系统是由一名叫Andrew S Tanenbaum的教师开发的。读者也许猜想所发布的这个系统应该是Linux的0.01版本,实际上不是这样。真正的Linux 0.01版本并没有被发布,原因是0.01版本不实用。Linus仅仅在第一个Linux的FTP站点(ftp://nic.funet.fifi)上提供过这个版本的的源代码。
Torvalds 于 10 月 5 日发布的这个 Linux 版本被称为 0.02 版,它能够运行 GNU Bourne Again Shell(bash) 和 GNU的C 编译程序( gcc )以及为数不多的其它语言。 Torvalds 绝对没有想到他设想的一种能够针对高级业余爱好者和黑客们的操作系统已经产生,这就是人们所称的Linux。
Linux 发布时的版本是 0.02 ,后来又有 0.03 版,然后又跳到 0.10 版。因为世界各地越来越多的程序员都开始开发Linux ,它已经达到 0.95 版。这就意味着正是公布 1.0 版本的时间已经为期不远了。正式的 1.0 版本是在 1994年公布的。

1.2Linux开源

对比微软开发的Windows系统,还有苹果公司开发的ios系统,Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。
GNU 通用公共许可协议( GNU General Public License ,简称 GNU GPL 或 GPL ),是一个广泛被使用的自由软件许可协议条款,最初由理查德斯托曼为GNU 计划而撰写, GPL 给予了计算机程序自由软件的定义, 任何基于GPL 软件开发衍生的产品在发布时必须采用 GPL 许可证方式,且必须公开源代码。
**Linux 是自由软件和开放源代码软件发展中最著名的例子。只要遵循 GNU 通用公共许可证,任何个人和机构都可以自由地使用Linux 的所有底层源代码,也可以自由地修改和再发布。**随着 Linux 操作系统飞速发展,各种集成在Linux 上的开源软件和实用工具也得到了应用和普及,因此, Linux 也成为了开源软件的代名词。

1.3Linux发行版本

  • Debian

    Debian运行起来极其稳定,这使得它非常适合用于服务器。 debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。

  • Ubuntu
    Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。Ubuntu是新手用户肯定爱不释手的一款操作系统。

  • 红帽企业级Linux
    这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证。

  • CentOS
    CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业级Linux如出一辙。 CentOS使用YUM来管理软件包。

  • Fedora
    小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。

  • Kali Linux
    Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wififi、数据库还是其他任何工具,都设计成立马可以使用。Kali使用APT来管理软件包
    毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统。

OS/操作系统概念

通过画图形象的简单认识一下操作系统

image-20221121165946724

2.基本指令

为什么有指令操作,是因为早期的操作系统中,是没有现在的图形化界面的,只有指令,而且是由打字机为雏形发展的。而我们为什么要学习指令操作呢, 因为对于我们学习OS原理、编程,指令操作非常有必要,因为指令操作更能贴近OS,便于我们更够更好的学习OS

2.1切换用户命令 :su - root / su - xxx

  • 在linux系统中,有分为超级用户(root)还有普通用户(自己创建的用户)
  • 一般来说,我们操作的是普通用户,因为root用户一旦操作失误会导致服务器崩溃或者删库的情况
  • 而我们需要一些权限只能在root用户下操作,所以为了方便切换,便有切换用户命令

image-20221121192814321

image-20221121192919681

  • linux下我们在切换用户的时候,都需要输入密码,且在linux输入密码是无显示和提示输入的
  • 所以设置root密码和用户密码的时候,不要设置同一个密码,防止切换成root用户,导致操作失误。

那我们怎么创建自己的用户呢?

以下的指令可以完成——》

2.1.1 addusr

语法:adduser NAME

功能:添加用户

**常用选项:**无

2.1.2 passwd

语法:passwd NAME

功能:为添加的用户添加密码

**常用选项:**无

2.1.3 userdel NAME

语法:userdel NAME

功能:删除用户

**常用选项:**userdel -r haha 递归删除,才能删干净

2.2 man (查看手册)

  • 用途: 询问Linux的那个男人
  • Linux 的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问 Linux 手册页的命令是 man 语法 : man [ 选项 ] 命令

常用选项

  • 1.-k 根据关键字搜索联机帮助
  • 2.num 只在第 num 章节找
  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用 a 选项,当按下q 退出,他会继续往后面搜索,直到所有章节都搜索完毕。

man手册分为八章

  • 1.普通命令
  • 2.系统调用 , 如 open,write 之类的 ( 通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
  • 3.库函数 , 如 printf,fread
  • 4.特殊文件 , 也就是 /dev 下的各种设备文件
  • 5.指文件的格式 , 比如 passwd, 就会说明这个文件中各个字段的含义
  • 6.是给游戏留的 , 由各个游戏自己定义
  • 7.是附件还有一些变量 , 比如向 environ 这种全局变量在这里就有说明
  • 8.系统管理用的命令 , 这些命令只能由 root 使用 , 如 ifconfifigcd

2.3 ls指令 (查看文件目录)

语法 : ls [ 选项 ] [ 目录或文件 ]

功能 :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

常用的 指令选项 :

  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  • -d 将目录象文件一样显示,而不是显示其下的文件。 如: ls –d 指定目录
  • -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
  • -k 以 k 字节的形式表示文件的大小。 ls –alk 指定文件
  • -l 列出文件的详细信息。
  • -n 用数字的 UID,GID 代替名称。 (介绍 UID , GID )
  • -F 在每个文件名后附上一个字符以说明该文件的类型,什么都不带是文本文件, “*” 表示可执行的普通文件; “/” 表示目录; “@” 表示符号链接;“|” 表示 FIFOs ; “=” 表示套接字 (sockets) 。(目录类型识别)
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -s 在 l 文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
  • -R 列出所有子目录下的文件。 ( 递归 )
  • -1 一行只输出一个文件。

重要知识点 :文件的属性数据

当我们创建了一个空文件,即使里面没有数据,在磁盘中也是占据空间的。

因为文件的定义是 :文件=文件内容 + 文件属性

所以属性数据也需要保存起来,占据一定的空间。

而我们要掌握的文件操作根据文件的定义就分为两类:

  1. 对文件的内容操作。
  2. 对文件的属性操作。

ls -l 显示文件更多属性

当我们想看到文件的属性的时候就可以通过 ls -l 的选项进行查看

image-20221123200603893

ls -a 显示Linux中的隐藏文件

【1】指令选项-a和-l可以合并使用:ls -a -l或ls -al

image-20221123201138484

image-20221123201150009

隐藏文件

以 .开头的文件都称为隐藏文件

在任意目录下,都会存在两个隐藏文件 . (当前路径) (上级路径)

image-20221123201332950

不仅在Linux中 ,在windows系统也会有隐藏文件

所以我们可以借助 .开头,创建自己的隐藏文件

2.4 mkdir指令 (创建目录)

mkdir指令就是make director(创建目录)

语法 : mkdir [ 选项 ] dirname…
功能 :在当前目录下创建一个名为 “dirname” 的目录,即:创建目录
常用选项
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在 , 加上此选项后 , 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录,即:在创建多层级目录的时候若上级目录不存在则创建

路径分隔符

因为linux操作系统中路径分割符都是 /(斜杠),windows系统的路径分割符是 \ (反斜杠),所以可稍微看出来,企业的后端是Linux操作系统

image-20221123203707272

2.5 pwd命令 (查看目录)

语法 : pwd

功能 :显示用户当前所在的目录,即: 查看当前所处的路径

2.6 cd 指令 (改变目录)

语法 :cd 目录名
功能 :改变工作目录。将当前工作目录改变到指定的目录下。
举例
cd … : 返回上级目录(这里的…就是上面所说的隐藏文件)
cd /home/litao/linux/ : 绝对路径
cd …/day02/ : 相对路径 举例:cd …/…/返回两层上级目录
cd ~:进入用户家目录
cd - :返回最近访问目录

(1)cd跟上任何以绝对或者相对路径构建的路径

Linux入口目录是 / 根目录

Linux的目录结构本质是一颗多叉树(windows目录也是多叉树)

  1. 1.每一个子节点,既可以是一个目录(再放目录或者普通文件,递归式的定义),也可以是一个普通文件
  2. 这颗多叉树的叶子节点, 一定是一个普通文件或者空目录

image-20221124115814022

我们一般**”定位”,**是通过路径定位的方式,找到文件的!

因为任何一个节点,可以有多个子节点,但是任何一个子节点,都只有一个父节点
即:常规的路径定位是具有唯一性

绝对路径和相对路径:

【1】绝对路径

/home/test/test.c : 是Linux下的“ 绝对路径”:绝对路径是相对于根目录 / 的路径

【2】相对路径(目前比较常用,因为目前大部分仍是指令操作)

假设我们要找文件mytest. c,这个文件的绝对路径是: /home/poolblue/2022/test2/mytest. c

我们不仅可以用绝对路径找到他,我们还可以从test2开始通过相对路径找到他:

image-20221124124631017

[yjl@bt-7274:~]$cd  test1    //先进到test1
[yjl@bt-7274:~/test1]$  ls .. /test2/mytest. c //通过返回test1上级目录找test2                                                 再找mytest.c

ls … /test2/mytest. c 就是相对路径:相对路径是相对当前所处的路径,这里就是相对test1文件的路径

建议:如果是日常使用,我们推荐相对路径——简单
如果是进行添加配置文件之类,推荐绝对路径——不会出错

查看路径:which

image-20221124125113774

2.7 touch 命令 (创建命令)

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

touch 常用选项

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

2.8 rmdir 指令 && rm 指令 (删除目录&文件)

rmdir只能删除空目录, 不常用 例如:rmdir code
rm 删普通文件 例如:rm test.c
rm -r 目录 递归删除目录文件 例如:rm -r dir1
rm -rf (force)强制删除 (防止弹询问窗口) rm dir1 -rf

rm -r 目录 递归删除目录文件

当dir1中包含dir2,dir2中包含dir3,dir3中包含dir4,dir4中包含dir5。删除dir1,只能用递归删除rm -r

image-20221124150347260

我们创建了连续的目录 mkdir -p dir1/dir2/dir3/dir4/dir5

然后直接用 rm -r dir1 直接递归删除rm -r

rm -rf * 全部删除

m -rf * 相当于 rm -rf ./* 删除当前目录下的所有文件,*是通配符,和谁都能匹配,和哪个文件都能匹配,所以可以达到全部删除的目的

image-20221124153403937

删除了 dir 当前目录下的mytest.c 、mytest2.c 的所有文件。

2.9 cp指令 (复制目录&文件)

功能 : 复制文件或目录(类似于windows中的复制粘贴功能)
注意
①如果在cp的时候,要拷贝的文件,是拷贝在当前路径下,两个文件的名称不能一样,如果拷贝到不同路径下,可以一样!
②默认情况,cp不允许拷贝目录的
如果需要,我们应该要携带选项-r(递归的意思)
禁止询问添加 - f: (force强制)

image-20221124154442062

​ 创建俩个目录 dir1 和dir2

image-20221124154848493

​ dir2 下有mytest.c 文件

image-20221124154534694

​ 进入到dir2目录 将mytest.c 返回上级目录再到dir1目录进行复制

2.10 mv 指令 (移动文件 &目录)

功能:把一个文件或目录移动到另一个目录中。

1.详细功能:

  1. 类似于剪切功能: a. 可以剪切普通文件b. 可以整体剪切目录(mv file. txt lesson3)
  2. 2.类似于win中的重命名,可以对普通文件,也可以对目录文件进行重命名(mv file-bak.txt file.txt-bak)

​ 指令mv有两个功能,比如mv lesson1 lesson2,我怎么区分是剪切功能还是改名 功能?

答:就看lesson2存不存在,如果存在就是重命名,不存在则是剪切

2.常用选项:

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

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

案例

例子 1:剪切普通文件

将mytest1.c 剪切到 test目录

image-20221124163711611

例子 2:剪切目录

将test1 剪切到test

image-20221124163950202

例子 3 :重命名

修改mytest1.c 为mytest2.c 修改test1目录为test2目录

image-20221124164331265

2.11 cat & tac 命令 (打印文件内容)

cat(正序打印)

功能:打印文件内容(比较适合查看短文本,或者代码)

常用选项*-n* *对输出的所有行编号* (主要)

-b 对非空输出行编号 (了解)

-s 不输出多行空行(了解)

tac 从文件最后一行倒着打印每一行内容,每一行内容不逆序

例子1 :正序打印cat 和 倒序打印tac

image-20221124172129665

例子2:正序打印cat 可以-n ,倒序打印tac 不可以加-n

image-20221124172251795

单独cat

单独输入cat 输入什么,就返回什么

默认会从键盘(标准输入)
键盘当做文件

image-20221124221056829

这样也会阻碍你命令行的操作,无法进行其他命令行操作,这样就需要热键来处理

[Ctrl]-c按键——终止失控程序

image-20221124221407212

不能ctrl+z (ctrl+z是暂停任务)

如果误点ctrl+z,需要输入 fg 1,再ctrl+c 就可以退出

image-20221124221528603

假如暂停了三次cat任务,用jobs显示暂停任务个数,再fg 1/2/3+ctrl c逐个终止

image-20221124221820594

2.12 重要的几个热键[Tab],[ctrl]-c, [ctrl]-d,[ctrl]-r

[Tab]按键——命令的自动补齐
[Ctrl]-c按键——终止失控程序
[Ctrl]-d按键——快速退出用户,通常代表着:『键盘输入结束(End Of File, EOF End Of Input)』的意思;另外,他也可以用来取代exit
[Ctrl]-r按键——搜索历史命令

例1:[Tab]按键

image-20221124224106622

2.13more指令 和 less命令 (查看文本)

功能:

类似cat指令,more是查看长文本;less是查看长文本并且可以上下翻(点击键盘的上下键可以上下翻,点回车可以下翻)

例子:

cnt=1; while [ $cnt -le 100000 ]; do echo “hello bit $cnt”; let cnt++; done >file.txt

​ 此指令创建10000行代码,

代码:wc -l file.txt 用于查看文件内容的行数

image-20221124173018856

进行打印内容:如果用cat打印就是刷屏,

用more打印就显示满整个屏幕就不显示了(差不多到30行),回车可以继续往下查看,再输入q退出more

image-20221124173250011

输入 /1000可以直接跳到第1000行

image-20221124173359115

more VS less

less支持前后翻,推荐less,不推荐more。
less可以帮助我们进行查看文本,可以用它来进行日志查看!

2.14echo (重定向)

(1)输出重定向 >

echo “hello world” > hello. txt

> 叫:输出重定向
本来应该写入到显示器的内容,把它写入到文件中,会清空原始文件的内容,进行重新写入

(2)追加重定向 >>

功能:同上,不会清空原始内容,而是在原始文件的结尾进行新增式的写入。

例子1:输出重定向 >

echo “hello Linux” > hello. txt 会覆盖原来文件中的 “hello world”

image-20221124220332394

例子2:追加重定向 >>

同上,不会清空原始内容,而是在原始文件的结尾进行新增式的写入.

image-20221124220537726

例子 3:输入重定向 <

输入重定向,把本来应该从键盘文件中读取数据的方式,改成从指定的文件中读取

image-20221124225025101

2.15 head指令 与 tail指令(打印首部&尾部)

常规取法

head file.txt 默认打印文件的前10行内容

head -20 file.txt 打印文件的前20行内容

tail file.txt 默认打印文件的后10行内容

tail -20 file.txt 打印文件的后20行内容

image-20221125143508455

image-20221125143612097

image-20221125143728556

查看文本的[30000, 30020]
1.临时文件法

把前30020行存到一个临时文件temp.txt中(输出重定向),再打印这个文件内容的后20行(可行但麻烦)

head -30020 file.txt > temp.txt
tail -20 temp.txt 
2.管道法( | 叫管道)

打印文本的[30000, 30020]

head -30020 file.txt | tail -20

image-20221125144210676

理解管道

管道相当于把 head -30020 file.txt 放进管道,再拿走管道中后20行数据

image-20221125144555424

管道的更多用法:可以级联多个命令,来完成流水线式的数据处理工作

从前100行拿走后15行,再从这15行拿走前10行

head -100 file.txt | tail -15 | head -10

image-20221125144855662

2.16 grep指令 (行文本过滤工具)

grep:行文本过滤工具

选项:

-i:忽略大小写(ignore)

v:凡是具有关键字的文本行,去掉,保留没有匹配关键字的行

例子1:在文件中找出包含1234的内容

grep '1234' file.txt

image-20221125151857379

例子2:-i:忽略大小写(ignore)

grep -i 'c++' hello.txt  //显示所有包含c++或C++的整行内容,不区分大小写(默认是区分大小写的)

image-20221125152742866

例子3:-v与-vi / -iv(-v和-i组合)

grep -v 'c++' hello.txt  //去掉所有包含c++的一整行的内容

grep -vi 'c++' hello.txt  //去掉所有包含c++和C++的一整行内容(-vi / -iv 一样)

image-20221125202722562

例子 4:-nvi或-niv 在内容前加序号

grep -niv 'c++' hello.txt

image-20221125202848723

2.17file指令

功能:更详细的说明文件类型

image-20221125224643810

2.18 find命令

功能 :查找文件

比如查找头文件

2.19 zip/unzip指令

功能:

压缩命令:zip——将文件打包并压缩进一个压缩包中(将目录或文件压缩成zip格式)

解压命令:unzip——将文件从压缩包中恢复出来

(zip,unzip把打包和压缩放在在一起执行)

安装:sudo yum install -y zip

使用格式:

zip -r test. zip tar_ package (zip 压缩文件.zip 目录或文件)

unzip test.zip (解压 test.zip ,默认到当前目录下)(默认情况下,几乎所有的解压工具
解压出来的原始数据,都会被放在当前路径下!)

常用选项:

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

先创建一个tar_package

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yfpcsfgs-1679403842661)(…/…/AppData/Roaming/Typora/typora-user-images/image-20230103212411422.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nsC7r5cB-1679403842661)(…/…/AppData/Roaming/Typora/typora-user-images/image-20230103212658860.png)]

2.20 tar指令

tar指令(重要):打包/解包,不打开它,直接看内容

tar  -czf/- xzf -C(可选的)
    
   

​ 使用:tar [-cxtzjvf] 文件与目录 …

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

2.21 bc指令

bc命令可以很方便的进行浮点运算

2.22 uname -r指令

语法: uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。

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

    常用选项:

-a或–all

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

image-20230321204514465

2.23 关机

语法: 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、 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。

3 shell命令以及运行原理

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

如何理解?为什么不能直接使用kernel?

从技术角度: Shell的最简单定义:**命令行解释器(command Interpreter)**主要包含:将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者,shell的本质就是一个死循环。

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

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

image-20230321210054516

如果直接操作kernel,对用户的使用门槛高,且风险大,容易操作错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Poolblue7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值