【黑马-python】---学习笔记(1)---Linux基础

Linux基础

1 操作系统(科普)

1.1 科普

【黑马-python】---学习笔记(1)---Linux基础_第1张图片

1.2 不同应用领域的主流操作系统

1.2.1 桌面操作系统
  • Windows系列—用户群体大,安全性不好,稳定性不好
  • masOS—适合于开发人员
  • Linux—应用软件少,更加适合于服务器和嵌入式领域
1.2.2 服务器操作系统—远程维护
  • Linux—安全,稳定,免费,占有率高
  • Windows Server—付费,占有率低
1.2.3 嵌入式操作系统
  • Linux
1.2.4 移动设备操作系统
  • iOS
  • Android(基于Linux)

1.3 虚拟机

【黑马-python】---学习笔记(1)---Linux基础_第2张图片

就是一个软件,辅助我们操作系统

1.4 操作系统的发展史(科普)

1.4.1 Unix

【黑马-python】---学习笔记(1)---Linux基础_第3张图片

【黑马-python】---学习笔记(1)---Linux基础_第4张图片
【黑马-python】---学习笔记(1)---Linux基础_第5张图片
【黑马-python】---学习笔记(1)---Linux基础_第6张图片

1.4.2 Minux

【黑马-python】---学习笔记(1)---Linux基础_第7张图片

1.4.3 Linux

【黑马-python】---学习笔记(1)---Linux基础_第8张图片

1.5 Linux内核及发行版

【黑马-python】---学习笔记(1)---Linux基础_第9张图片

1.5.1 Linux内核版本
  • **内核(kernel)**是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在逻辑设备与应用程序间的抽象层;
  • Linux内核版本又分为稳定版和开发板,两种版本相互关联,相互循环;
    • 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序;
    • 开发版:由于要实验各种解决方案,所以变化很快;

!!发行版本多个!!内核版本只有一个!!

1.5.2 Linux发行版
  • **Linux发行版(也被叫做GNU/Linux发行版)**通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件;

【黑马-python】---学习笔记(1)---Linux基础_第10张图片

1.6 Linux系统下的文件目录结构

1.6.1 单用户操作系统和多用户操作系统
  • 单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源;
    • Windows XP之前的版本都是单用户操作系统
  • 多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户共同享用系统的全部硬件和软件资源;
    • Unix和Linux的设计初衷就是多用户操作系统;
1.6.2 Windows和Linux的文件系统区别

(1)Wnidows下的文件系统

【黑马-python】---学习笔记(1)---Linux基础_第11张图片

(2)Linux下的文件系统,没有盘符概念

【黑马-python】---学习笔记(1)---Linux基础_第12张图片

上图中,多个用户(theima/python/laowang)是多个用户,可以同时都在home下进行自己的操作,但python下自己的文件是别的用户是不可以访问的;

  • Ubantu中没有盘符,因此用/表示根目录;
1.6.3 Linux主要目录速查表

【黑马-python】---学习笔记(1)---Linux基础_第13张图片

  • 需要注意的是,下图所有文件都是操作系统的文件,随意改动删除都会造成操作系统出现问题,所以,尽量以后文件都在home文件夹中操作;
    【黑马-python】---学习笔记(1)---Linux基础_第14张图片

2 常用Linux命令的基本使用

  • 学习Linux终端命令的原因
    • Linux刚面世时并没有图形界面,所有操作全靠命令完成,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等;
    • 职场中,大量的服务器维护工作都是远程通过SSH客户端完成没有图形界面,所有维护工作都需要通过命令来完成;
    • 常用Linux命令就10多个而已,其他再百度;

2.1 Linux命令

2.1.1 常用Linux命令的基本使用
  • 放大:ctrl+shift+=

  • 缩小:ctrl±
    【黑马-python】---学习笔记(1)---Linux基础_第15张图片

  • rm是删除文件,删除目录需要额外操作;

2.1.2 Linxu终端命令格式—[ ]可选

【黑马-python】---学习笔记(1)---Linux基础_第16张图片

  • 命令和选项之间,选项和参数之间要有空格;

  • 查阅命令帮助信息:man是mannual的简称

    • –help:command --help;
    • man: man command;
      【黑马-python】---学习笔记(1)---Linux基础_第17张图片

2.2 文件和目录常用命令

2.2.1 目标
  • 查看目录内容
    • ls
  • 切换目录
    • cd
  • 创建和删除操作
    • touch
    • rm
    • mkdir
  • 拷贝和移动文件
    • cp
    • mv
  • 查看文件内容
    • cat
    • more
    • grep
  • 其他
    • echo
    • 重定向>和>>
    • 管道l
2.2.2 终端使用技巧

(1)自动补全

  • 在敲出文件/目录/命令的前几个字幕之后,tab键会自动补全;
    • 不能确定时,两次tab,系统会提示可能存在的命令;

(2)曾经使用过的命令

  • 按上/下光标键可以在曾经使用过的命令之间来回切换;
  • 如果想要退出选择,并不想执行当前选中的命令,可以按ctrl+c;
2.2.3 ls命令说明
  • ls是英文单词list的简写,列出目录内容,用户最常用命令之一,类似于DOS下的dir命令;

  • Linux下的文件和目录的特点

    • Linux文件或者目录名称最长可以有256个字符;

    • 以 . 开头的文件尾隐藏文件,需要用-a参数才能显示;

    • .代表当前目录

    • …代表上一级目录,cd …就可以返回上一级目录

  • ls常用选项 -h要配合-l一起使用,不能单独使用-h
    【黑马-python】---学习笔记(1)---Linux基础_第18张图片

  • 可以将选项合在一起,例如:ls -lha
    【黑马-python】---学习笔记(1)---Linux基础_第19张图片

  • ls通配符的使用

通配符 含义
***** 代表任意个数个字符,ls *1.txt; ls 1 *, ls * 3 *
代表任意一个字符,至少1个,ls 1?1.txt
[] 表示可以匹配字符组中的任意一个,
[abc] 匹配a\b\c中的任意一个,ls [12345]23.txt;
[a-f] 匹配从a到f范围内的任意一个字符,ls [1-5]23.txt
2.2.4 cd命令说明

1、cd

  • cd是change directory的简写,更改当前的工作目录;
  • 注意:Linux所有的目录和文件名都是大小写敏感的

image-20220414161533559

2、相对路径和绝对路径

  • 相对路径:在输入路径时,最前面不是/或者~,表示相对当前目录所在的目录位置;
  • 绝对路径:在输入路径时,最前面的是/或者~,表示从根目录/家目录开始的具体目录位置;
2.2.5 创建和删除操作touch,mkdir,rm

1、touch

  • 创建文件或修改文件时间
    • 文件不存在,就创建一个空白文件
    • 文件已经存在,修改文件的末次修改日期

2、mkdir

  • 创建一个新的目录

【黑马-python】---学习笔记(1)---Linux基础_第20张图片

  • 注意:在Linux中同一个目录下,文件和目录不可以同名!
    【黑马-python】---学习笔记(1)---Linux基础_第21张图片

3、rm

  • 删除文件或目录

  • 注意:rm会直接从磁盘上删除文件或目录,所以要谨慎使用!
    【黑马-python】---学习笔记(1)---Linux基础_第22张图片

  • 这条指令会删除当前目录下的所有文件或目录!
    image-20220414163349147

2.2.6 拷贝或移动文件tree、cp、mv

【黑马-python】---学习笔记(1)---Linux基础_第23张图片

1、tree

  • tree命令可以以树状图列出文件目录结构
    image-20220414165007637

  • ~表示家目录,/表示根目录,.表示隐藏

2、cp

  • cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令;
    【黑马-python】---学习笔记(1)---Linux基础_第24张图片
    image-20220414165511791
  • 如果文件名不发生改变,可以只指定目标路径;
    image-20220414165841039

3、mv

  • mv命令用来移动文件或目录,也可以给文件或目录重命名
    image-20220414170313677

  • **重命名:**与目标文件路径相同,就不执行移动,而是重命名;

  • 注意:在终端命令行中对文件的操作不可以回撤,因此-i很重要

2.2.7 文件内容命令cat、more、grep

【黑马-python】---学习笔记(1)---Linux基础_第25张图片

1、cat

  • cat命令可以用来查看文件内容,创建文件,文件合并,追加文件内容等功能;

  • cat会一次显示所有的内容,适合查看内容较少的文本文件;
    【黑马-python】---学习笔记(1)---Linux基础_第26张图片
    2、more

  • more命令可以用于分屏显示文件内容,每次只显示一页内容;

  • 适合于查看内容较多的文本文件;
    【黑马-python】---学习笔记(1)---Linux基础_第27张图片

3、grep

  • Linux系统中grep命令是一种强大的文本搜索工具;
  • grep允许对文本文件进行模式查找,所谓模式查找就是正则表达式;
    【黑马-python】---学习笔记(1)---Linux基础_第28张图片
    image-20220414173715007
  • 常用的两种模式查找
    image-20220414173024408
2.2.8 其他命令echo、>,>>,|

1、echo文字内容

  • echo会在终端中显示参数指定的文字,通常会和重定向联合使用;
    image-20220414180119840
  • 使用echo可以直接在创建新文件的同时,指定文件内容

2、重定向>和>>

  • Linux允许将命令执行结构重定向到一个文件
  • 重定向:将本应该显示在终端上的内容输出/追加到指定文件中
    其中
  • >表示输出,会覆盖文件原有内容
  • >>表示追加,会将内容追加到已有文件的末尾

3、管道|

  • Linux允许将一个命令的输出可以通过管道作为另一个命令的输入

常见的管道命令有:

  • more:分屏显示内容;
  • grep:在命令执行结果的基础上查询指定的文本;
    image-20220414180526844
    image-20220414180539191

2.3 远程管理常用命令

【黑马-python】---学习笔记(1)---Linux基础_第29张图片

2.3.1 关机/重启/shutdown

image-20220414180822323

  • shutdown命令可以安全关闭或者重新启动系统
选项 含义
-r 重新启动
  • 不指定选项和参数,默认表示1分之后关闭电脑;
  • 远程维护服务器时,最好不要关闭系统,而应该重新启动系统;
    【黑马-python】---学习笔记(1)---Linux基础_第30张图片
2.3.2 查看或配置网卡信息ifconfig、ping

【黑马-python】---学习笔记(1)---Linux基础_第31张图片

1、网卡:

  • 网卡是一个专门负责网络通讯的硬件设备;
  • IP地址是设置在网卡上的地址信息;
    • 我们可以把电脑比作电话,网卡相当于sim卡,IP地址相当于电话号码;

2、IP地址

  • 每台联网的电脑都有IP地址,是保证电脑之间正常通讯的重要设置
    • 注意:每台电脑的IP地址不能相同,否则会出现IP地址冲突,并且没有办法正常通讯;

3、ifconfig

  • ifconfig可以查看/配置计算机当前的网卡配置信息
    image-20220414200705316

  • 一台计算机中可能有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以ensXX表示;

  • 127.0.0.1被称为本地回环/环回地址,一般用来测试本地网卡是否正常;

4、ping
image-20220414200950479

  • ping一般用来检测当前计算机到目标计算机之间的网络是否畅通,数值越大,速度越慢;
    • ping的工作原理与潜水艇的声呐相似,ping这个命令取自声呐的声音
    • 原理:网络上机器都有唯一确定的IP地址,给目标IP地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,确定目标主机的存在;
  • 提示:在Linux中,想要终止一个终端程序的执行,绝大多数都可以使用ctrl+c
2.3.3 远程登录和复制文件ssh、scp

image-20220414203009061

1、ssh基础(重点)
【黑马-python】---学习笔记(1)---Linux基础_第32张图片

2、域名和端口号

(1)域名

  • 由一串用点分隔的名字组成,例如:www.itcast.cn
  • IP地址的别名,方便用户记忆

(2)端口号

  • IP地址:通过IP地址找到网络上的计算机

  • 端口号:通过端口号可以找到计算机运行的应用程序

    • SSH服务器(也是一个软件)的默认端口号是22,如果是默认端口号,在连接的时候可以省略;
  • 常见服务器端口号列表
    【黑马-python】---学习笔记(1)---Linux基础_第33张图片

3、SSH客户端的简单使用—exit退出连接
【黑马-python】---学习笔记(1)---Linux基础_第34张图片
【黑马-python】---学习笔记(1)---Linux基础_第35张图片

4、scp(掌握)
【黑马-python】---学习笔记(1)---Linux基础_第36张图片【黑马-python】---学习笔记(1)---Linux基础_第37张图片

  • 例如,一个01.py的传送
    image-20220414212707062
  • 目录(多个文件)一起传送,-r
    image-20220414212857538
  • 注意:
    【黑马-python】---学习笔记(1)---Linux基础_第38张图片

2.4 SSH高级

  • 免密码登录
  • 配置别名

提示:有关SSH配置信息都保存在用户家目录下的.ssh目录下,.表示隐藏目录;-a才可以看到;
image-20220414214343579

  • 当第一次连接,会提示yes授权信息,在连接一次之后,就会生成known_hosts文件用来保存刚刚连接的授权信息,再次连接时,就不会出现询问信息;而这个文件就是保存在.ssh目录下的;
2.4.1 免密码登录(SSH或者FTP都是)

(1)步骤(!!在客户端执行以下两个命令,就可以免密登录!!)

  • 配置公钥

    • 执行ssh-keygen即可生成SSH钥匙,一路回车即可;
  • 上传公钥到服务器

    • 执行ssh-copy-id -p port user@remote,可以让远程服务器记住我们的公钥;

2、免密码登录工作原理
【黑马-python】---学习笔记(1)---Linux基础_第39张图片

2.4.2 配置远程计算机的别名
  • 每次都输入ssh -p port user@remote,会比较麻烦,配置别名可以简化;
    【黑马-python】---学习笔记(1)---Linux基础_第40张图片

  • ~/.ssh/中创建文件config;并将上述内容写入;

  • gedit打开文件;

2.5 用户权限相关命令

  • 用户权限的基本概念
  • 用户管理终端命令
  • 组管理终端命令
  • 修改权限终端命令
2.5.1 用户和权限的基本概念

1、基本概念

  • 用户是Linux系统工作中重要的一环,用户管理包括用户管理;
  • 在Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限
  • 文件/目录的权限包括:
    【黑马-python】---学习笔记(1)---Linux基础_第41张图片

2、组—为了方便用户管理,不需要单独用户设置,而是针对组设置不同权限
【黑马-python】---学习笔记(1)---Linux基础_第42张图片

2.5.2 ls-l扩展
  • ls -l可以查看文件夹下文件的详细信息,从左到右依次是:
    image-20220415150149581【黑马-python】---学习笔记(1)---Linux基础_第43张图片

  • 权限,第1个字符如果是d表示目录;

  • 硬链接数,通俗讲,就是有多少种方式,可以访问到当前目录/文件;

  • 拥有者,家目录下文件/目录的拥有者通常都是当前用户;

  • ,在Linux中,很多时候,会出现组名和用户名相同的情况;

  • 大小

  • 时间

  • 名称
    【黑马-python】---学习笔记(1)---Linux基础_第44张图片

  • **硬链接数3分别是绝对路径+cd .+cd ..(n个子目录就有n个cd…可返回,对应硬链接数也会+n!!):**文件硬链接一般是1,目录硬链接数取决于有多少子目录;【黑马-python】---学习笔记(1)---Linux基础_第45张图片

2.5.3 chmod简单使用(重要)
  • chmod可以修改用户/组文件/目录的权限;
    image-20220415151142177

  • 提示:以上方式会一次性修改拥有者/组的权限;

  • 目录如果没有可执行权限就不能访问;

2.5.4 超级用户sudo

【黑马-python】---学习笔记(1)---Linux基础_第46张图片

2.6 组管理 终端命令

2.6.1 groupadd、groupdel、cat /etc/group
  • 提示:创建组/删除组的中断命令都需要通过sudo执行;
    【黑马-python】---学习笔记(1)---Linux基础_第47张图片

  • 提示:

    • 组信息保存在/etc/group文件中;
    • /etc目录是专门用来保存系统配置信息的目录;
    • /根目录,~家目录;
2.6.2 群组演练目标确定chagrp

image-20220415153704735

2.7 用户管理终端命令

  • 提示:创建用户/删除用户/修改其他用户密码的中断命令都需要通过sudo执行
2.7.1 创建用户/设置密码/删除用户

【黑马-python】---学习笔记(1)---Linux基础_第48张图片
image-20220415162805379
【黑马-python】---学习笔记(1)---Linux基础_第49张图片

2.7.2 查看用户信息,id、who、whoami

【黑马-python】---学习笔记(1)---Linux基础_第50张图片

1、passwd文件
【黑马-python】---学习笔记(1)---Linux基础_第51张图片
【黑马-python】---学习笔记(1)---Linux基础_第52张图片
image-20220415163521759

  • uid是用户代号,gid是群组代号;

  • 下面,只有python : x:1000:表示的是python组,其他都是表示python用户在不同的组中;即定义一个用户,将用户放入不同组中拥有不同的权限;
    【黑马-python】---学习笔记(1)---Linux基础_第53张图片

  • zhangsan:123

2.7.3 usermod
  • 与上图对应,一个主组后面都是附加组;
    【黑马-python】---学习笔记(1)---Linux基础_第54张图片

  • Shell是一个软件,在ubuntu中就是可以输入命令行的终端窗口;

2.7.4 which(重要)
  • 提示

    • /etc/passwd是用来保存用户信息的文件;
    • /usr/bin/passwd是用于修改用户密码的程序;
  • which命令可以查看执行命令所在位置,例如:
    【黑马-python】---学习笔记(1)---Linux基础_第55张图片
    【黑马-python】---学习笔记(1)---Linux基础_第56张图片

bin和sbin,bin是普通的可执行文件,sbin是系统管理有关的可执行文件;
【黑马-python】---学习笔记(1)---Linux基础_第57张图片

  • 提示:cd这个终端命令是内置在系统内核中的,没有独立文件,因此用which无法找到;
2.7.5 切换用户su,exit

【黑马-python】---学习笔记(1)---Linux基础_第58张图片

2.7.6 修改文件权限chown、chgrp、chmod

【黑马-python】---学习笔记(1)---Linux基础_第59张图片

  • chmod在设置权限时,可以简单地使用三个数字分别对应拥有者/组其他用户的权限;

【黑马-python】---学习笔记(1)---Linux基础_第60张图片【黑马-python】---学习笔记(1)---Linux基础_第61张图片
【黑马-python】---学习笔记(1)---Linux基础_第62张图片

  • chmod演练目标
    【黑马-python】---学习笔记(1)---Linux基础_第63张图片

2.8 系统信息

  • 本节内容主要是为了方便通过远程终端维护服务器时,查看服务器上当前系统日期和时间/磁盘空间占用情况/程序执行情况;

  • 本小节学习的终端命令基本都是查询命令,通过这些命令对系统资源的使用情况有个了解;

  • 目标

    • 时间和日期
      • date
      • cal
    • 磁盘和目录空间
      • df
      • du
    • 进程信息
      • ps
      • top
      • kill
2.8.1 时间和日期date,cal

【黑马-python】---学习笔记(1)---Linux基础_第64张图片

2.8.2 磁盘信息df -h、du-h

image-20220416134537968
【黑马-python】---学习笔记(1)---Linux基础_第65张图片【黑马-python】---学习笔记(1)---Linux基础_第66张图片

2.8.3 进程信息pa aux、top、kill
  • 所谓进程,就是当前正在执行的一个程序
    【黑马-python】---学习笔记(1)---Linux基础_第67张图片

  • 要退出top可以直接输入q;

  • 不用轻易使用kill杀死root进程,因为有系统服务的程序/进程;

2.9 其他命令

  • 目标
    • 查找文件
      • find
    • 软链接
      • ln
    • 打包和压缩
      • tar
    • 软件安装
      • apt-get
2.9.1 查找文件find

【黑马-python】---学习笔记(1)---Linux基础_第68张图片

2.9.2 软链接 ln -s(windows下的快捷方式)

【黑马-python】---学习笔记(1)---Linux基础_第69张图片

  • 源文件要使用绝对路径
    【黑马-python】---学习笔记(1)---Linux基础_第70张图片
2.9.3 硬链接
  • 在使用ln创建链接时,如果没有-s选项,就会创建一个**硬链接,**而不是软链接;
    【黑马-python】---学习笔记(1)---Linux基础_第71张图片

  • 硬链接,即使源文件删除,也并不会影响到硬链接文件,对应硬链接数2->1;
    【黑马-python】---学习笔记(1)---Linux基础_第72张图片

  • 只有当一个文件数据的所有硬链接都删除之后,文件数据才会被移除磁盘!

2.10 打包压缩tar

  • 在不同操作系统中,常用的打包压缩方式不同
    • Windows常用rar
    • Mac常用zip
    • Linux常用tar.gz
2.10.1 打包/解包tar -cvf/-xvf
  • tar是Linux中最常用的备份工具,可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件;
  • tar只负责打包,不负责压缩
    【黑马-python】---学习笔记(1)---Linux基础_第73张图片

【黑马-python】---学习笔记(1)---Linux基础_第74张图片

2.10.2 压缩/解压缩gzip,bzip

(1)gzip
【黑马-python】---学习笔记(1)---Linux基础_第75张图片

  • 注意:可以使用-C直接解压缩到指定目录

(2)bzip2(two)
【黑马-python】---学习笔记(1)---Linux基础_第76张图片

2.11 软件安装

2.11.1 通过apt安装/卸载软件
  • apt是Advanced Packaging Tool,是Linux下的一款安装包管理工具;

  • 可以在终端中方便安装/卸载/更新软件包;
    【黑马-python】---学习笔记(1)---Linux基础_第77张图片

  • 安装演练
    【黑马-python】---学习笔记(1)---Linux基础_第78张图片

2.11.2 配置软件源

【黑马-python】---学习笔记(1)---Linux基础_第79张图片

你可能感兴趣的:(Python,python,linux)