Linux笔记

linux

linux核心概念知识

开源软件:没有商业化软件版权约束,源代码开发,可无约束自由传播,并不意味着免费

FSF

自由软件基金会,1984年创办,主要项目包含了GNU项目

为什么选择linux

  • 开源
  • 免费
  • 稳定

linux操作系统的组成

  • Linux内核
  • GNU项目软件,如bash、gcc等
  • 各种外围程序
    在这里插入图片描述
linux内核版本

在这里插入图片描述

GNU项目

GNU(gnu is not unix)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mpj6Gnav-1677321236265)(G:\知了堂\mackdown\image-20221129144329294.png)]

GPL
  • GNU 自由软件的通用许可协议
  • 允许用户任意复制、传递、修改及再发布
  • 基于自由软件修改再次发布的软件,仍需遵守GPL
LGPL
  • LGPL相对于GPL较为宽松,允许不公开全部源代码
  • 为基于linux平台开发商业软件提供了更多空间

开源软件

  • Firefox 网页浏览器
  • openoffice 办公套件
  • Apache 网站服务器软件

主流的linux分支

linux发行版本构成
  • 基于linux内核的类unix操作系统
  • linux内核和各种自由软件
发行版的名称、版本有发行厂商决定
  • Redhat
  • Debian
  • Ubuntu

centos 7 :2024年6月30 停止更新

centos 8 :2022年1月13 停止更新

centos 的替代品:Ubuntu 、rocky linux等

引导过程

在这里插入图片描述

文件系统类型

linux发行版本
  • XFS,日志文件构成
  • swap,交换文件系统/虚拟内存
linux其他文件类型
  • EXT3、EXT4
  • FAT16、FAT32、NTFS
  • XFS、JFS

linux系统

运行级别对应的

运行级别Systemdtarget说明
0target关机状态,使用该级别时将会关闭主机
1rescue.target单用户模式,不需要密码验证即可登录系统,多用于系统维护
2**multi-**user.target用户定义**/域特定运行级别。默认等同于3**
3**multi-**user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别
4**multi-**user.target用户定义**/域特定运行级别。默认等同于****3**
5graphical.target图形界面的多用户模式,提供了图形桌面操作环境
6reboot.target重新启动,使用该级别时将会重启主机

systemd单元类型

单元类型扩展名说明
Service.service描述一个系统服务
Socket.socket描述一个进程间通信的套接字
Device.device描述一个内核识别的设备文件
Mount.mount描述一个文件系统的挂载点
Automount.automount描述一个文件系统的自动挂载点
Swap.swap描述一个内存交换设备或交换文件
Path.path描述一个文件系统中文件或目录
Timer.timer描述一个定时器(用于实现类似cron的调度任务)
Snapshot.snapshot用于保存一个systemd的状态
Scope.scope使用systemd的总线接口以编程的方式创建外部进程
Slice.slice描述居于Cgroup的一组通过层次组织的管理系统进程
Target.target描述一组systemd的单元

目录结构说明

  • / :linux文件系统的入口,最高级目录
  • /bin:存放二进制可执行文件,普通用户可执行的命令
  • /boot:内核和加载内核所需的文件
  • /dev:设备文件存储目录,如硬盘、U盘等
  • /etc:所有的系统配置文件,包括新安装的程序文件
  • /home:普通用户目录,在此创建相应用户文件目录
  • /home/zhangsan :普通用户张三的家目录
  • /var:经常变动的数据,如日志、邮件等
  • /usr:软件安装目录,程序执行目录
  • /sbin:存放二进制可执行文件,基本的系统维护命令,只能由超级用户使用
  • /root:超级管理员”root”的家目录,类似于home下的目录

系统服务控制

系统服务控制

systemctl 控制类型服务名称

控制类型
  • start 启动
  • stop 停止
  • restart 重启
  • reload 重新加载
  • status 查看服务状态

linux系统运行级别

查看运行级别
  • runlevel
  • systemctl
临时切换运行级别
  • init 命令
  • systemctl工具
优化启动过程
系统服务管理工具
ntsysv工具
  • 提供一个交互式、可视化窗口

  • 可以在字符终端运行

  • 便于集中管理多个服务

systemctl工具
  • 不提供交互式、可视化窗口
  • 管理单个服务效率更高
ntsysv系统服务管理工具

ntsysv

系统服务的启动和控制

查看 系统服务的启动状态

systemctl is-enabled 服务名称

systemctl list-unit-files 查看服务列表

yum -y install bash-completion :下载tab补全命令包

linux常用命令

linux命令概述

linux命令行分类

shell
  • linux系统运行的一种特殊程序
  • 在用户和内核之间充当“翻译官”
  • 用户登录linux系统时,自动加载一个shell程序
  • bash是centos系统中默认使用的shell程序
  • 文件位于/bin/bash

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ehAZMX9w-1677321236266)(G:\知了堂\mackdown\image-20221130092352326.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pjsO91ko-1677321236266)(G:\知了堂\mackdown\image-20221130092517239.png)]

linux命令的格式

通用的命令行使用格式

命令字 【选项】 【参数】

命令字
  • 是整条命令中最关键的一部分
  • 唯一确定一条命令
选项

短格式选项:使用“_”符号引导

多个单字符可以组合在一起使用

长格式选项:使用“_ _”符号引导

参数 rm
  • 命令字的处理对象
  • 可以是文件名、目录(路径)名或用户名等内容
  • 个数可以是零到多个
编辑linux命令行的辅助操作
  • Tab键补全

  • \ 一行换成多行

  • Ctrl+u 快捷键 剪切或者删除光标处到行首的字符

  • Ctrl+k 快捷键 剪切或者删除光标处到行尾的字符

  • Ctrl+y 粘贴Ctrl+u、Ctrl+k、Ctrl+w删除的文本

  • Ctrl+l 快捷键 :清屏

  • Ctrl+c 快捷键: 退出执行

  • Ctrl+ a :到达行首

  • Ctrl+e:到达行尾

  • Ctrl+d 重复执行命令快捷键

  • Ctrl+r 进入搜索命令行使用过得历史命令记录模式

  • Ctrl+s (镇屏)锁定终端,使之无法输入任何命令

  • Ctrl+q 解锁,解除Ctrl+s的锁定状态

  • Ctrl+z 暂停执行在终端运行的任务 \

  • !! 执行上一条命令

  • !+字母 !c 执行最近以c开头的命令

  • !+字母:p 仅打印最近以字母开头的命令,但不执行

  • ! num 执行历史命令列表的第num (数字)条命令

  • history 查看历史执行 命令记录

  • !$ 获取上一条命令的最后一个参数 (空格分割)

  • Xshell快捷键

    Shift+insert 粘贴

    Ctrl+insert 复制

获得命令帮助的方法

方法
  • 使用help命令/查看内部命令
  • 使用 --help 选项/查看外部命令
  • 使用man手册

type 命令(查看命令属于内部还是外部命令)

目录和文件的基本操作

查看切换目录

绝对路径:更加准确

相对路径:更加方便、高效

pwd: 查看当前目录

cd : 切换工作路径

切换工作目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mi8G5W8L-1677321236267)(G:\知了堂\mackdown\image-20221130100659912.png)]

相对路径的表现形式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mKvfATlV-1677321236267)(G:\知了堂\mackdown\image-20221130100630609.png)]

列表显示目录内容–ls

ls 选项 文件或者目录

常用选项

显示目录中内容,包括子目录和文件相关属性信息
-l:显示详细信息
-a:显示子目录和文件,包括".“开头的隐藏目录和隐藏文件
-A:不显示包括”."开头的隐藏目录和隐藏文件
-d:显示该文件或目录本身属性。
-h:以单位显示文件或目录大小
-R:以递归的方式显示目录la以及子目录的所有内容
–color:为查询结果添加颜色进行显示)

alias

通过别名机制简化常用的、比较长的命令

如:
alias gohome=“cd /home/zhangsan”
当在命令行中执行:"gohome"命令时进入用户zhangsan的家目录。
取消别名定义:
unalias gohome

统计目录及文件空间占用情况–du

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gtnrbpz6-1677321236267)(G:\知了堂\mackdown\image-20221130101958347.png)]

统计指定目录(或文件)所占用磁盘空间的大小
-a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h:显示出目录或文件的大小(K、M),默认的大小单位为字节(KB)
-s:只统计每个参数所占用空间总的大小,而不是统计每个子目录、文件的大小

创建目录和文件

创建目录

mkdir :创建目录 -p 递归创建

mkdir /root/a/{123,124}: 在a下创建123,124两个文件夹

创建文件

更新文件时间

touch 文件名

查询: ls -l 会发现文件创建时间已经更新为当前时间

touch: 创建文件

创建链接文件 ln

为文件或者目录建立链接文件

文件类型

在这里插入图片描述

ln -s 软链接

ln 硬链接

复制、删除、移动目录和文件

复制文件或者目录cp
格式:

cp 选项 源文件或目录 目标文件或者目录

常用选项

-i:覆盖目标同名文件或目录时提醒用户确认
-f:若文件存在 强制覆盖不提醒
-p:复制时保持源文件的权限、属主及时间标记等属性不变
-r:表示递归复制所有文件及子目录

删除文件或者目录rm
格式

rm [选项] 要删除的文件或目录…

常用选项

-f、-i、-r

rm -rf 命令强制删除包括目录 不提醒

移动目录或者文件mv

将指定的文件或目录转移位置

mv [选项] … 源文件或目录… 目标文件或目录

如果目标位置与源位置相同,则相当于执行重命名操作
mv /root/abc /home
mv abc 123

查找目录和文件-which

格式

which 命令/文件

查找目录和文件-find

采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找

find [查找范围] [查找条件表达式]

find / -name ifcfg-ens33 //在/下查找名为"ifcfg-ens33"的文件

find / -size “+50M” //在/下查找单个大于50M的文件

find / -type d -a -name aa* //查找/下为名字为aa开头的目录

在这里插入图片描述

各表达式之间使用逻辑运算符
“-a”表示 而且(and)
“-o”表示 或者(or)

find /boot -size +1024k -a -name “vmlinuz*”
find /boot -size +1024k -o -name “vmlinuz*”

目录和文件管理

查看和检索文件

查看文件内容

cat

cat 命令:显示文件内容

cat 选项 文件名

more

more :显示文件内容 (行数太多会分页)

more 选项 文件名

enter向下逐行滚动

空格翻页滚动

q退出

less

less :分页查看文件内容 比more扩展性更强

less 选项 文件名

  • Page Up 向上翻页,Page Down 向下翻页
  • 按“/”键查找内容,“n”下一个内容,“N”上一个内容 例如/root
  • 其他功能与 more 命令基本类似
head 、tail

head:查看文件内容默认前十行内容

head -n 文件名

-n 行数 指定行数

tail: 查看文件内容结尾默认后十行

tail -n 文件名

tail -f 文件名 (监听)

统计文件内容

wc:用于统计文件中的单词数量等信息

wc 选项 目标文件

常用选项

-l 统计行数

-w 统计单词数

-c 统计字节数

yum provides /* netstat :查看netstat属于那个命令程序

检索和过滤文件内容 grep 命令

grep: 在文件中查找并显示包含指定字符串的行

grep 选项 查找条件 目标文件

常用选项

-i 查找时忽略大小写

-v 反选 输出与查找条件不符合的行

-A 1 表示查看包含指定字符串及后一行

-B 1 表示查看包含指定字符串及前一行

-C 1 表示查看包含指定字符串及前后一行

-c 统计指定字符串在文件中出现的行数

查找条件设置

要查找的字符串以双引号括起来

“^bash” 表示查找以bash开头的

“bash$” 表示查找以bash结尾的

“^$” 表示空行

压缩/解压缩

压缩命令

gzip、bzip2:制作压缩文件、解开压缩文件

gzip -9 文件名

bzip2 -9 文件名

gzip -d 文件名

bzip2 -d 文件名

在这里插入图片描述

归档命令

tar : 制作归档命令,释放归档文件

tar 选项 归档文件名 源文件或者目录

tar 选项 归档文件名 【-c 目标目录】

常用选项

-c:创建 .tar 格式的包文件
-x:解开.tar格式的包文件
-v:输出详细信息
-f:表示使用归档文件
-p:打包时保留原始文件及目录的权限
-t:在不解压包的情况下看包内内容
-C:解包时指定释放的目标文件夹
-z:调用gzip程序进行压缩或解压
-j:调用bzip2程序进行压缩或解压

tar zxvf : 解压

tar zcvf: 压缩

文本编辑器 vi

文本编辑器

作用

创建或修改文本文件

维护linux系统中的各种配置文件

linux常用的文本编辑器

vi: 类unix操作系统的默认文本编辑器

vim: vim是vi的增强版

vi编辑器的工作模式

三种工作模式

命令模式、输入模式、末行模式

不同模式之间的切换

在这里插入图片描述

命令行模式的基本操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xjhhvu95-1677321236274)(G:\知了堂\mackdown\image-20221130174149263.png)]

在这里插入图片描述

在这里插入图片描述

末行模式

在这里插入图片描述

安装与管理应用程序

linux应用程序

linux应用程序基础

应用程序与系统命令的关系
文件位置

系统命令:一般在/bin或/sbin 或为shell内部指令

应用程序:通常在/usr/bin和/usr/sbin中

用途

系统命令:完成对系统的基本管理工作,例如ip配置工具

应用程序:完成相对独立的其他辅助任务,例如网页浏览器

使用环境

系统命令:一般只在字符操作界面

应用程序:根据实际需要,有些程序可在图形界面中运行

运行格式

系统命令:一般包括命令字、命令选项和命令参数
应用程序:通常没有固定的执行格式

典型的应用程序的目录结构

在这里插入图片描述

使用RPM包管理工具

软件包封装类型

常见的软件包封装类型:rpm和源代码软件包

在这里插入图片描述

RPM包管理工具

RPM

由Redhat公司提出,被众多linux发行版采用

建立统一的数据库文件

详细记录软件包安装,卸载等变化信息

自动分析软件包依赖关系

RPM软件包

软件素材: http://www.rpm.org

命令格式:

在这里插入图片描述

RPM命令

在这里插入图片描述

查询

查询已安装的rpm软件信息

rpm -q【选项】 软件名

-qa 查找所有安装的rpm包

例如 查找httpd rpm -qa | grep httpd

-qi:查询详细信息 例如 rpm -qi httpd

-ql列出当前软件安装的文件:

-qf 查询文件或目录属于哪个RPM软件

-qc仅显示指定软件包安装的配置文件

-qd仅显示指定软件包安装的文档文件

查询未安装的RPM软件包

rpm - qp[子选项] RPM包文件

常用选项:

-qpi 通过.rpm包文件查看该软件的详细信息

-qpl 查看.rpm安装包内所包含的目录、文件列表

-qpc 查看.rpm安装包内包含的配置文件列表

-qpd 查看.rpm安装包内包含的文档文件列表

安装

rpm 选项 rpm软件包名

常用组合 rpm -ivh rpm软件包名

常用选项 -i -v -h -u -f

-i:安装一个新的 rpm 软件包
-h:以“#”号显示安装的进度
-v:显示安装过程中的详细信息
-U:升级某个 rpm 软件,若原本未装,则进行安装
-F:升级某个 rpm 软件,若原本未装,则放弃安装
–force:强制安装所指定的rpm软件包
–nodeps:安装、升级或卸载软件时,忽略依赖关系

卸载

rpm -e 软件名

辅助选项 -force -nodeps

yum remove -y 软件包名 :使用yum卸载

解决软件包依赖关系方法

在这里插入图片描述

重建RPM数据库

rpm --rebuilddb 或者

rpm --initdb

导入验证公钥

rpm --import /media/cdrom/RPM-GPG-KEY-redhat-release

从源代码编译安装程序

源代码编译概述

使用软代码安装软件的优点:

获得最新的软件版本,及时修复bug

根据用户需要,灵活定制软件功能

应用场合举例:

安装比较新的应用程序

当前安装的程序无法满足需要时

需要为应用程序添加新的功能时

编译安装源代码包

Tarball 封包

tar.gz 和tar.bz2格式居多

素材参考:http://sourceforge.net

完整性校验

md5sum校验工具

[root@localhost ~]# md5sum axel-1.0a.tar.gz

确认源代码编译环境
需安装支持 C/C++程序语言的编译器,如:
gcc-4.4.7-4.el6、gcc-c+±4.4.7-4.el6
make-3.81-20.el6.……

yum install -y lrzsz (安装下载和上传工具)

rz:上传

sz:下载

/usr/src :一般常用放解压文件地方

编译安装过程

在这里插入图片描述

账号和权限管理

管理用户和组账号

用户和组账号的概述

linux基于用户省份对资源访问进行控制

用户账户:

超级用户 root

普通用户 自己创建的用户都属于普通用户

程序用户 权限最低,一般只能操作程序相关联的文件

ps -aux 查看进程

组账号

基本组(私有组)

附加组(公共组)

UID和GID

UID 用户标识好

GID 组标识号

用户账户管理

用户账户文件

保存用户名称、宿主目录、登录shell等基本信息

文件保存位置:/etc/passwd

每一行对应一个用户的账户记录

在这里插入图片描述

密码文件

保存用户的密码、账号有效期等信息

文件位置: /ec/shadow

每一行对应一个用户的密码记录

在这里插入图片描述

字段1:用户帐号的名称
字段2:加密的密码字串信息
字段3:上次修改密码的时间
字段4:密码的最短有效天数,默认值为0
字段5:密码的最长有效天数,默认值为99999
字段6:提前多少天警告用户口令将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)
默认只有root用户能够读取文件中的内容,并且不允许root直接编辑该文件中的内容
上次修改密码的时间,表示从1970年01月01日(可理解为Unix系统的诞生日)算起到最近一次修改密码时间隔的天数

添加用户账户

创建:useradd 用户名

useradd 选项 用户名

常用选项

  • u:指定 UID 标记号
  • -d:指定宿主目录,缺省为 /home/用户名
  • -e:指定帐号失效时间
  • -g:指定用户的基本组名(或GID号)
  • -G:指定用户的附加组名(或GID号)
  • -M:不为用户建立并初始化宿主目录
  • -s:指定用户的登录Shell
更改设置密码

passwd 用户名

passwd 选项 用户名

常用选项

-d 清空用户密码 使不需要密码就可登录

-l 锁定用户账户

-S 查看账户锁定状态ip

-u 解锁用户账户

修改账户属性

usermod 选项 用户

  • -l 更改用户账户的登录名称
  • -L 锁定用户账户
  • -U 解锁用户账户

以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s

删除用户账户

userdel -r 用户名

添加 -r 选项时,表示连用户的宿主目录一并删除

用户账户的初始配置文件

文件来源:

新建用户账户,从/etc/skel 目录中复制而来

主要的用户初始配置文件

  • ~/.bash_profile
  • ~/.bashrc
  • ~/.bash_logout
  • /etc/profile
  • /etc/bashrc
组账号文件

与用户账户类似

/etc/group; 保存组账号基本信息

/etc/gshadow 保存组账户的密码信息

添加组账号

groupadd 组名

添加删除组成员

添加用户到组里:gpasswd -a 用户 组名

删除组里用户 : gpasswd -d 用户 组名

删除组

groupdel 组名

查询账户信息

查询 用户身份; id 用户名

查询用户所属组: groups 用户名

查询用户详细信息 : finger 用户名

查询已登录到主机的用户信息: users、w、who

管理目录和文件的属性

文件/目录的权限和归属

访问权限:

读取 r:运行查看文件内容、显示目录列表

写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

可执行x:允许运行程序、切换目录

-rw-------. 2 root root 1481 Feb 28 2020 anaconda-ks.cfg
第一个字段:表示文件类型
第2-10字段:表示文件权限,前3字段为所有者权限,中间3字段为属组权限,最后3字段为其他用户权限
第11字段:表示selinux安全机制特性,对于关闭了selinux的操作系统在新建文件或目录时没有这个"."
第12字段: 对于文件来说:文件硬链接数量;对于目录来说:该目录下子目录数量,子子目录数量不计算在内。
第4、5列:表示当前用户的所有者和所属组
第6列:当前文件的大小,单位默认为字节
第7、8、9列:修改文件的时间,可通过touch命令刷新该时间
第10列:当前文件或目录的名称

归属(所有权)

属主:用于该文件或目录的用户账户

属组: 拥有改文件或者目录的组账号

查看文件/目录的权限和归属

在这里插入图片描述

文件类型

p 表示命名管道文件

d 表示目录文件

l 表示符号连接文件

-表示普通文件

s 表示socket套接口文件,比如我们启用mysql时会产生一个mysql.sock文件

c 表示字符设备文件,例:虚拟控制台 或 tty0

b 表示块设备文件 例: sda,cdrom

设置文件和目录的权限 chmod

chmod 设置权限命令

chmod 【ugoa】 【±=】 【rwx】 文件或者目录

chmod nnn(权限数字) 文件或者目录

u、g、o、a 分别表示
属主、属组、其他用户、所有用户

常用命令选项

-R 递归修改指定目录所有子项的权限

设置文件和目录的归属 chown

chown 属主 文件或目录

chown :属组 文件或目录

chown 属主; 属组 文件或者目录

常用命令选项

-R 递归修改指定目录下所有文件、子目录的归属

修改文件的所属者和所有组:chown root:root 文件名

修改文件的所属者 chown 修改的所属者 文件名

修改文件的所属者 chown 修改的所属组 文件名

设置文件和目录默认权限 umask

umask 000

umask 777

命令作用

定义新建文件及目录的默认权限,通过该命令实现定义权限补码

注意: 文件权限最大666 目录权限最大 777

特殊权限suid

suid作用:程序运行时的权限从执行者变更成程序所有者的权限

使用方法:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值