Linux基础(1)

Linux基础

一、Linux介绍

1、Linux形成历史

    Linux(类unix系统):多用户多任务的操作系统。
    unix系统:贝尔实验室1969年开发,在unix7系统,发现unix的商业价值,就收回授权,最终在1982年发布第一个完全商业版本unix system 3。
    芬兰的一个教授因为unix的版权有原因,准备开发一个类unix的操作系统,Minix(微型unix系统),主要用于教学和教育机构。
    Linus(林纳斯.托瓦兹),根据Minix源代码,半年后开发了一个Linux内核(最初的版本).
    GNU,革奴计划:理查德斯托曼,致力于开发一个完全免费、自由、开源的并且兼容unix系统的操作系统GNU,但是这个计划发展了10来年,唯独缺少一个内核(这个计划有内核,叫hurd,只不过一直在开发).
    因此GNU和Linux结合,变成了一个完整的操作系统。
    GPL协议:理查德斯托曼在89年和一群律师一起起草了一协议,协议规定Linux的派生版本必须免费。

二、 Linux简介

1、Linux和Window系统有什么区别?

  • Linux系统开源,Window不开源
  • Linux主要用于服务器上,Window主要用于个人系统
  • Linux用于命令行操作,Window主要用于图形化操作界面
  • Linux免费,Window不免费
  • Linux是多用户系统,Window是单用户系统

2、Linux 的内核版本和发行版本

  • Linux内核版本:www.kernel.org
    (1)查看自己的内核版本号
    在这里插入图片描述
  • Linux的发行版本

(1)红帽子公司 全球最大的开源技术厂商,提供非常广泛的Linux套件,提高全球技术支持(收费)。有企业版(RHEL)、社区(Centos)、桌面版本(Fedora)。
(2)debian公司

  企业版本(debian) 社区版本(ubuntu)

  • ubuntu系统是一款基于debian派生出来的一个产品,对最新的软件兼容性很好,大多数人认为ubuntu系统和debian系统都是非常好的Linux系统。

  • 优点
      ubuntu系统广泛应用于电脑、服务器、物联网、云…
      既适合家庭使用,也适合商业环境
      ubuntu系统拥有良好的二安装及操作环境
      ubuntu系统承诺免费(没有技术支持)
    (3)桌面介绍

  • 开关机
    在这里插入图片描述

  • 终端的打开
    a、通过点击右键打开终端
    在这里插入图片描述c
    b、ctrl+alt+t
    在这里插入图片描述

    • stu:用户名
    • stu-virtual-machine:主机名
    • ~/Desktop 当前所在目录的路径
    • $代表普通用户 #超级管理员
  • 怎么控制终端大小
    扩大:ctrl shift ‘+’
    缩小:ctrl ‘-’
    进入管理员权限:sudo su
    退出管理员权限:exit

三、Linux目录结构

window:将存储空间分为多个盘符:C、D、F…
ubuntu:只有一个根目录,倒立的属性结构。所有文件都是从根目录开始向下存储

1、Linux的文件目录结构图:

在这里插入图片描述

2、常用目录介绍:

  • /bin 存放常用的命令(二进制可执行程序) (重点)
  • /boot 存放系统内核及启动相关的文件,类型于window里面的C盘,很重要,一般不会让别的人去挤压它的存储空间(重点)
  • /dev 存放我们的设备文件(重点)
  • /etc 存放系统配置文件(重点)
  • /home 家目录(所有普通用户的家目录)
  • /lib 存放库文件
  • /proc 存放虚拟文件系统目录,保存进程在内存中的信息(重点)
  • /usr 存放系统应用文档和程序 例如QQ微信(重点)
  • /var 存放系统运行中经常修改的文件,例如系统日志
  • /root 存放管理员的家目录
  • /mnt 临时挂载点
  • /tmp 存放临时文件,所有用户都可以访问
    在这里插入图片描述

3、相对路径和绝对路径

绝对路径:在linux系统中是从系统根目录开始向下遍历到指定位置的路径,中用‘/’隔开。
在这里插入图片描述

  • 例如:stu的桌面的绝对路径:/home/stu/Desktop。 teacher的用户的桌面的一个叫做main.c:/home/teacher/Desktop/main.c

相对路径:从当前路径开始向下遍历到指定位置的路径。
在这里插入图片描述

  • “ . ”:代表当前位置

  • “ … ”:代表上一层位置

  • “ - ”:代表上一层位置
    在这里插入图片描述
     假设,用绝对路径描述main.c这个普通文件:/home/stu/Desktop/main.c
     假设,现在j就在stu的桌面上,此时用相对路径描述main.c这个普通文件:./main.c

  • 相对路径和绝对路径的选取,具体情况具体分析,那个方便用哪个

四、Linux系统文件类型和文件权限

1、文件类型

  Linux系统认为一切皆文件,所以Linux将所有的东西都看成文件,将其分了这些类:

  • 普通文件 “-”
  • 目标文件 “d”(dierctory)
  • 管道文件 “p”(piping)
  • 链接文件 “l”(link)
  • 设备文件(块设备“b”(block),字符设备“c”(char))
  • 套接字文件 “s”(socket)

分别解释下什么意思:

  • 管道文件:进程间通讯的一种手段
  • 链接文件:软链接(字符链接)和硬链接,软链接可以认为是windows下的快捷方式。
  • 设备文件:块设备:可以从任意位置读取一点长度的设备:例如磁盘、U盘、TF卡等。
  • 设备文件:字符设备:只能一字节一字节的额读取,不能随机读取,例如鼠标、键盘等。
  • 套接字文件:网络通讯的一种方式
  • Linux系统不以后缀名区分文件类型,后缀名的作用是帮助我们确定用那个软件打开它。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在ubuntu系统中,/bin和/usr/bin其实是用在一个地方,但在红帽子系统上,这两个是分开的。

2、文件权限

  • r 读权限 值:4
  • w写权限 值:2
  • x执行权限 值:1 对于普通文件代表指向权限,对于目录文件,代表可进入权限
     例如:
    在这里插入图片描述
  • u:user属主的访问权限(拥有着)
  • g:group属组的访问权限(和拥有者同小组的人)
  • o:other其他人的访问权限

3、如何修改文件权限

3.1文字设定法

chmod 修改权限的命令

  • u:user 属主的访问权限(拥有者)
  • g:group 属主的访问权限(和拥有者同小组的人)
  • o:other 其他人的访问权限
  • a:all所有人
  • +:添加权限
  • -:去掉权限
  • =:表示直接复制权限
  • 注意:如果想同时给属主。属组,其他人修改权限,用逗号隔开即可

例如:当前文件权限如下:
在这里插入图片描述
此时如果想给main2这个可执行文件进行权限修改,去除掉属主的执行权限,命令如下:
在这里插入图片描述
然后,又想给属主减一个r权限,对属主减去一个w权限,对其他人添加一个w权限,命令如下:
在这里插入图片描述
然后,又想让属主,属组,其他人权限都没有,命令如下:
在这里插入图片描述
最后,想让main1回复到开始的权限(rexrwxr-x),命令如下:
在这里插入图片描述

3.2数字设定法

  • r:read 值4 (100)
  • w:write 值2 (010)
  • x:execute 值1(001)

chmod XXX filename (0<=x<=7)

  • 0:没有权限
  • 1:–x(001)
  • 2:-w-(010)
  • 3:-wx(011)
  • 4:r–(100)
  • 5:r-x(101)
  • 6:rw-(110)
  • 7:rwx(111)

touch filename 创建普通文件
mkdir filename 创建目录文件

五、常用命令

1、基本命令

(1)pwd:显示当前位置的绝对路径。

实例如下:
在这里插入图片描述

(2)cd:切换目录

cd 后面添加的参数是目的地(可以是 相对路径也可以是绝对路径)
在这里插入图片描述
在这里插入图片描述

  • cd ’ - ':返回到上一次目录所在地
  • cd ’ ~ ':直接回到用户家目录
  • cd ’ . ':无事发生
  • cd ‘. .’:返回到上一层
    在这里插入图片描述

(3)ls:显示目录下所有文件

示例如下:
在这里插入图片描述

  • -a:显示隐藏文件
  • -l:用列表的方式显示所有文件的详细信息
    在这里插入图片描述

(4)man:帮助手册

用来查看命令,系统调用,库函数的详细信息。示例如下:
在这里插入图片描述

(5)touch:创建一个普通文件

在这里插入图片描述

(6)mkdir:创建目录文件(文件夹)

实例如下:
在这里插入图片描述

(7)rm:删除文件或文件夹

删除文件夹要加参数 “ -r ”

  •   删除普通文件:
    在这里插入图片描述
  •   删除空目录:
    在这里插入图片描述
  •   删除非空目录:
    在这里插入图片描述

(8)cp:拷贝文件

注意:拷贝目录文件时,需要加上参数 ” -r ”,实例如下:

  • 普通文件的拷贝:
    在这里插入图片描述
  • 目录文件的拷贝:
    在这里插入图片描述
    在这里插入图片描述

(9)mv:剪切、移动、重命名

  • 剪切移动:
  • 重命名:在这里插入图片描述

(10)find

  在目录树下遍历一遍,也可以指定遍历开始位置。
示例如下:
在这里插入图片描述

(11)grep 过滤

在这里插入图片描述

  • c 只显示行数
  • v 取反,取本省查找之外的数据全部打印
    在这里插入图片描述

(12)管道‘|’

  将前一个命令的输出信息作为下一个命令的输入信息,示例如下:
在这里插入图片描述

(13)wc

  统计文件的信息,比如(-w)显示有多少个单词(-l)统计行数 (-c)统计字符个数
在这里插入图片描述

(14)su

切换用户 su + username
如果不加用户名高,默认切换 root 用户
在这里插入图片描述
sudo su 切换 root 用户
在这里插入图片描述
exit 退出
在这里插入图片描述

(15)关机和重启

  • shutdown -h now 立即关机
  • shutdown -r now 立即重启
  • init 0 关机
  • init 6 重启
  • halt 关机
  • reboot 重启

init 级别:0~6 7种级别

  • 0关机
  • 1 单用户模式
  • 2 多用户无网络模式
  • 3 完全的多用户文本界面
  • 4 未定义或自定义
  • 5 图像化界面
  • 重启
    例如,init 3 是文本界面,也就是我们工作中用的最多的界面

(15)修改用户密码

passwd stu 修改
sudo passwd stu 强制修改

2、打包、解包、压缩、解压命令

2.1 tar将文件打开或者解包

  • c 创建包文件
  • f 指定目标为文件而不是设备
  • v 显示详细过程
  • t 显示包中内容,而不是释放
  • x 释放包中的内容
  • z GNU版本新加入的,让 tar 具有压缩和解压功能

1、 tar的打包过程
在这里插入图片描述
2、 tar的解包过程
在这里插入图片描述

2.2 gzip 对文件进行压缩和解压

1 、gzip 对文件进行压缩
在这里插入图片描述
2、 gzip 对文件进行解压

  • d 解压
    在这里插入图片描述

2.3 通过tar命令对xxx.tar.gz进行一步解压

在这里插入图片描述

2.4 通过tar命令对多个文件进行一步解压

在这里插入图片描述

3、文件编辑器vim

3.1 vim的介绍和安装

1.1 vim的介绍
  一般来说,我们的ubuntu系统自带的是vi,而红帽子自带的是vim,vim可以简单认为是vi的升级版,vim相较于vi更稳定,功能更强大。怎么判断自己电脑安装的是vi还是vim,可以通过方向键去查看,vi不支持。
vim 的官网:www.vim.org
在这里插入图片描述
1.2 vim的安装
  如果电脑上没有vim,这时输入vim,电脑会报错,说找不到,会显示安装此命令的步骤。

apt updata:更新标准软件源
或者apt - get updata:更新标准软件源
这个时候,再通过apt install vim

3.2 vim的配置文件的修改(添加行号,缩进等)

1、配置文件的介绍
  配置文件时计算机软件的底层设计或者初始值的设定,比如我们行号的设置,和 tab 的缩进,例如:刚开始使用 vim 的时候,一进去是不显示行号的,这个时候可以通过命令 set nu 去设置,只不过下一次再进入的时候,就需要重新设置,太麻烦了,所以直接写入到配置文件中,这样就不用每一次都设置了。
2、配置文件的设置方法
用 root 权限去打开配置文件 vimrc
vim /ect / vim / vimrc
在文件的末尾写入:

  • set nu
  • set tabstop = 4 按 tab 缩进 4 个空格
  • set softtabstop = 4
  • set shiftwidth = 4
  • set expandtab
  • set smartindent 自动缩进
  • 注意:上述修改比如 root 权限,并且尽量复制,如果想修改其他配置,还是按照此方法即可。

3.3 vim 的三种模式介绍

vim 将使用场景分为三种模式:

  • 命令模式
  • 插入模式
  • 末行模式

1、模式切换示意图
在这里插入图片描述
2、命令模式 切换到 插入模式

  • a //进入到当前光标后开始进行插入
  • i //进入到当前光标位置开始便立即
  • A //进入到当前光标所在行的行末进行编辑
  • I //进入到当前光标所在行的行头进行编辑
  • o //进入到当前光标下一行进行编辑
  • O //进入到当前光标上一行进行编辑
  • 补充:x // 删除当前位置的字符

3、命令模式切换到末行模式

  • “:” //对文本的设置和保存工作
       - w:只保存
       - wq:保存并退出
       - x:等同于wq
       - q:只退出
       - q!:强行溢出
       - w newfile:另存为
       - set nu:显示行号
       - set nonu:不显示行号
       - set hlserach:设置搜索结果高亮
       - set nohlserach:设置搜索结果不高亮
  • “ / ”:对本文进行全文向下搜索字符串 string 例如 / QWE
  • “?”:对本文进行全文向上搜索字符串 string 例如?QWE
  • 搜索到之后,可以使用命令:n:接着重复上一次的搜索命令(使用在末行模式)

3.4 vi / vim 常用命令

  • n dd // 删除从光标开始向下的 n 行
  • dd // 如果只删除当前行
  • n yy // 拷贝从光标开始向下 n 行&=
  • p // 粘贴
  • u // 撤销上一次操作
  • ctrl + r // 恢复上一行的撤销操作
  • r // 替换当前字符
  • shift + 6 // 将光标移动到当前行的行头
  • shift + 4 // 将光标移动到当前行的行末
  • shift + g // 将光标移动到整个文本的最后一行 等同于G
  • gg //将光标移动到整个文本的第一行
  • n G //将光标移动到整个文本的第 n 行 //等同于 n shift + g
  • d n G //删除光标所在地 n 行数据
  • y n G //拷贝光标所在第 n 行数据
  • H //移动到当前屏幕的第一行
  • M // 移动到当前屏幕的中间一行
  • L // 移动到当前屏幕的最后一行
  • “.” //重复上一次擦欧洲哦(使用在命令模式)

补充:

  • h:向左移动光标
  • j:向下移动光标
  • k:向上移动光标
  • l:向右移动光标
  • 上述命令只用于命令模式,但在键盘右下角方向键可以命令模式使用,还可以插入模式使用。

4、文件查看命令

  vim可以打开文件,查看里面的数据,但vim始终存在修改数据的风险,所以介绍其他查看文件的命令

4.1 cat

  • 用于查看文件数据
      示例如下:
    在这里插入图片描述
  • 用于合并文件(cat A.txt B.txt>C.txt)
      示例如下:
    在这里插入图片描述
  • 可以向文件中写入数据,通过 ctrl+d 结束输入
    在这里插入图片描述
    注意:这个操作首先会将文件D.txt 清空,使用的时候不小心原数据丢失。
    在这里插入图片描述
  • 可以往文件末尾输入数据,通过 ctrl+d 结束输入(cat >>D.txt)- 在这里插入图片描述

注意:“>>” 将光标移动到文件末尾,然后再进行写入数据(原先的数据不会丢失)

4.2 more

  当文件的内容屏幕显示不完,则可以使用more这个命令,分屏显示内容。
使用命令格式:more filename

示例如下:(more / etc / vim / vimrc)
在这里插入图片描述
  这个时候可以通过空格(跳转的内容百分比多)或者回车(一点点看)向下查看剩余数据。不想继续查看,可以通过q 退出。
  红帽子系统通过方向键查看。

4.3 less

  这个命令和more 差不多,只不过存在细微差别

  • less 显示的文件内容不会再终端界面上遗留
  • less 不显示文件内容的百分比
  • less 显示的文件内容可以通过方向键查看(more只能向下)

4.4 head

  这个命令显示文件的前 n 行内容,使用命令:head -n filename。如果不写 -n,默认查看前 10 行。
在这里插入图片描述

4.5 tail

  • 显示文件后 n 行数,命令格式:tail -n filename
    在这里插入图片描述
    注意:不写 -n ,默认查看倒数 10 行
  • 用于查看日志文件
    tail 这个命令经常用于查看日志文件,因为日志文件一般来说只能查看近期产生的日志数据,也就是说查看日志文件的末尾居多。
    例如命令:tail -f filename(-f follow 实时跟踪显示文件末尾信息)
    然后重启一个终端,通过命令cat >>filename,实施输入信息,则左边的tail -n filename 打开的终端则会实时显示。
    在这里插入图片描述

5、用户管理命令

5.1 用户基本信息的储存

存储位置/etc/passwd
在这里插入图片描述

用户名密码UIDGID描述性信息主目录默认shell
rootx(有密码)用户id组id对用户的简单描述一般就是家目录默认命令解释

为了安全,所有用户密码单独加密后,保存在一个文件(/etc/sahdow),这个文件只能用 root 查看
在这里插入图片描述
用户名$ 加密算法id $ 密钥 $密文

5.2 添加新用户

  创建用户的时候,一般来说或创建一个同名的家目录,放在 /home 底下
  红帽子会在创建新用户的时候,顺手将同名家目录创建好。
  ubuntu不太一样,不会自动添加家目录,我们手动添加

命令格式:useradd user_name

5.3 修改密码

通过passwd 这个命令进行修改密码:passwd user_name

注意:如果想修改非常简单的密码(例如123456),系统不通过,认为密码过于简单,则可以进入超级用户,强行修改简单密码。

5.4 删除用户

使用命令 userdel 删除用户

  • 1、首先保证用户没有登录
  • 2、userdel 删除用户的时候,家目录不会删除(家目录里的数据还有用)
  • 3、如果想顺手将家目录删除,也可以,用 userdel -r user_name命令

6、进程管理命令

6.1什么是进程

  • 程序:是完成特定任务的一系列数据+指令的集合(钢琴琴谱,在磁盘上)
  • 进程:正在执行的程序(根据琴谱弹奏的过程,运行在内存上)

  进程(process):是计算机上一端程序的执行过程,是操作系统进行资源分配的基本单位,但是进程不仅仅是局限于一段可以执行的代码段,通常进程还需要包含其他资源,例如打开的文件,挂起的信息处理器的状态等。

  简而言之,进程就是正在执行的程序代码的实时显示结果。

  操作系统需要高效的管理我们的进程,所以为了方便控制进程的运行,将进程的管理和控制放到了一数据结构,这个结构体就是我们所说的PCB进程的控制块(process control block ),每一个进程均有一个PCB。在创建进程时,PCB首先创建,伴随着进程运行的全过程,当进程结束时,PCB才消退

  PCB记录了操作系统所需的,用于描述进程的当前运行情况以及控制进程运行的全部信息

6.2进程在内存中怎么管理?

在这里插入图片描述

  • 指向程序时,先创建PCB,再加载进程实体
  • 进程结束时,先释放进程实体,最后再释放PCB
  • 僵死进程:进程实体释放了,但是PCB未能正常释放
  • 补助:进程、线程、协程有什么不同?

6.3进程查看命令

1、ps 默认显示当前终端有关的进程信息

  • -e 显示系统中所有的进程信息(-A)
  • -f 显示更多的进程属性信息
  • -L 显示进程中的线程ID
    在这里插入图片描述
  • UID :用户ID
  • PID:进程ID
  • PPID:父进程ID
  • C:CPU占用率
  • STIME:(start time )进程创建时间
  • TTY:当前终端号
  • TIME:进程运行时间
  • CMD:当前进程执行的命令

2、pstree 以树状图的形式显示进程之间的关系
在这里插入图片描述

3、kill 结束或者挂起一个进程

  • -9 (SIGKILL)强制结束一个进程
  • -STOP 挂起一个进程(挂起:主动将进程执行暂停,CPU则不再给这个进程分配资源)

3.1 前后台

  • 将进程放到前台运行:路径 + 可执行文件名
  • 将进程放到后台运行:路径 + 可执行文件名 + &

  在前台运行的进程,会一直占用终端,导致终端接收不到其他命令,这个时候只能另起一个终端,但在后台运行的进程,不会占用终端,可以执行其他操作

  • Ctrl + d 停止输入
  • Ctrl + c 结束进程
  • Ctrl + z 挂起进程

3.2演示结束进程
在这里插入图片描述

4、pill 用于结束一组同名的进程(CMD一样)

示例如下:
在这里插入图片描述

总结:

  • kill PID // 结束一个进程
  • kill -9 PID // 强制结束一个进程
  • kill -STOP PID // 挂起一个进程
  • kill CMD // 结束CMD进程

5、jobs 显示当前终端的任务,后台执行的或者挂起的任务
在这里插入图片描述

6、fg 将后台执行的任务挂起到前台

  • 将后台运行的任务放到前台
    在这里插入图片描述

  • 将挂起的进程放到前台
    在这里插入图片描述

7、bg 将挂起的进程唤醒到后台去运行
在这里插入图片描述

8、top 用于查看系统资源的使用情况(动态变化时),类似windows上的任务管理器

  • top 命令执行后,按 f 进入到 top 的解释页面
  • 前面带 * 的,说明已经显示
    在这里插入图片描述
  • 按 f 后,示例如下:
    在这里插入图片描述
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值