[马哥]Linux操作系统及常用命令(一)

174 阅读5分钟

Linux操作系统及常用命令

shell那些事

shell 被称为叫壳,它是整个操作系统的外壳,是能够实现接收用户指令,理解用户的命令,并且将它传输给内核,由内核指挥着某个应用程序启动的这么一个界面。所以 interface 这么一个单词,我们有时候把它翻译成界面,有时候把它翻译成接口,说白了其实指的是同一个意思,希望你能理解。那我们以后也不加区别的使用界面或者接口,知道就是同一个东西就行。 shell 本身用来干什么呢?首先要提供一个用户能够跟他进行交互的界面,其次还要将用户的指挥行为翻译成计算机可以理解的命令,或者理解翻译成内核可以理解的命令能理解。比如说在我们在桌面上双击一个图标,点两下鼠标,以后为什么能够被解析,为打开这么个应用程序,这是不要内核进行指挥了,但是能够提供一个界面让用户进行双击,并且能够显示一个鼠标的样子,这其实是由界面提供给我们的。 shell分为两种GUI(图形化界面)和GLI(命令行界面)。

内核那些事

内核功能:

  • 进程管理
  • 内存管理
  • 文件系统
  • 网络功能
  • 硬件驱动
  • 安全机制

Linux的基本原则:

  1. 由目的单一的小程序组成;组合小程序完成复杂任务;
  2. —切皆文件:
  3. 尽量避免捕获用户接口﹔
  4. 配置文件保存为纯文本格式;

Linux的两种接口GUI接口和GLI接口(命令提示符bash(shell),#:管理员root,$:普通用户)

操作系统结构

最小的操作系统:提供一个应用程序需要的库,库做需要的内核,内核所需调用的硬件资源

1.内核

只有内核才能运行进程。 为了能够实现在同一个计算机上运行多个程序,我们有了通用管理软件叫内核。 内核只是一个平台,它不提供任何具特定的任务,仅仅是将硬件所提供的计算能力抽象出来,并提供给上层其他软件的。这种方式叫做系统调用

image.png

2.库

系统调用过于底层,所以使得程序员使用系统调用来开发程序是非常麻烦的。因此就有了。 库就是将一个或多个系统调用的功能封装起来,做成更高级的调用接口。 库必须经过调用才能执行。 如: Windows:dll文件(动态库文件) Linux:.so共享对象

3.应用程序(shell)

操作系统最重要的东西 各种各样的应用协议,比如shell,独特的用户界面;Web服务器;IDE(python,java)开发工具

用户的登录过程

Login: 用户名:用户ID 认证机制—》授权—》审计(日志)

命令提示符-》命令组成:命令-选项-参数(中间用空格隔开)

选项:长选项/短选项——修改命令的执行特性

参数:指定命令的作用对象

list:ls——列出,列表——列出制定路径下的文件

目录也是文件,是路径映射

路径:从制定起始点到目的地所经过位置

文件系统

层次化文件管理机制就称之为文件系统。

绝对路径:从根出发的路径

相对路径:相对于当前位置的路径

当前目录:如进入Windows自动默认进入桌面的文件;linux以root进入系统默认进入/root目录下

思考:文件名是不是文件的数据?是不是文件本身的数据?——》文件名,文件大小存储在在什么位置?

pwd:查询当前目录

最顶级的目录:/

ls命令

ls -l

文件类型如下:

-:普通文件 (f)

d: 目录文件

b: 块设备文件 (block)

c: 字符设备文件 (character)

l: 符号链接文件(symbolic link file)

p: 命令管道文件(pipe)

s: 套接字文件(socket)

image.png

文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r--

文件硬链接的次数

文件的属主(owner)

文件的属组(group)

文件大小(size),单位是字节

时间戳(timestamp):最近一次被修改的时间

访问:access

修改:modify,文件内容发生了改变

改变:change,metadata,元数据

ls -lh

做单位转换

image.png

ls -a 显示以.开头的隐藏文件 . 表示当前目录 .. 表示父目录

ls -A 不显示 . 和 .. 文件

ls -ld /root 显示目录自身属性

image.png

ls -i 显示文件号码

image.png

ls -r 逆序显示文件

ls -R 递归(recursive)显示

cd 命令

cd 回到家目录,主目录, home directory 也可以敲cd~

cd ~USERNAME: 进入指定用户的家目录

cd - :在当前目录和前一次所在的目录之间来回切换(类似于电视剧换台)

type命令

显示指定属于那种类型

命令类型:

内置命令(shell内置),内部,内建

外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件

环境变量:命名的内存空间

将内存空间中赋值-》变量赋值如:NAME=Jerry

理解环境变量:定义当前用户的工作环境的指定的工作环境属性

printenv #输出当前主机的环境变量

image.png

PATH:一堆使用冒号分割的一堆路径

PATH 定义:当我们执行这个命令的时候,它会按次序从这些指定路径下一个一个去找,直到第一次找到那个位置为止。

思考:那是每一次执行命令都要从PATH中找吗?

第二次再执行同一个命令就不找了,这时会有个缓存到我的内存中。系统会找一个地方,把这个命令和它对应的路径给你缓存下来。

hash #可以查看执行命令的缓存