Linux零基础速成篇一(理论+实操)

前言:本教程适合Linux零基础学习,也适合Linux期末考试的小伙伴,从头到尾理论与实操相结合,让你快速对Linux进行了解和掌握。

一、Linux概述

为什么要学习Linux操作系统?

完全免费-开源

任何用户均可下载使用

安全稳定

极少蓝屏

支持多平台

多用户多任务

等等

了解Unix与Linux发展史

Linux内核官网

www.kernel.org(内核下载地址)

Linux内核版本说明

举个例子:6.10.6:6表示主版本、10表示次版本、6是末版本

在Linux系统中我们可以使用uname -r指令查看内核版本

下面是我在kali linux系统使用uname -r指令查看内核版本

开发版

厂商加入自己的桌面应用程序之后开发

偶数次版本号(如 6.2、6.4等)表示稳定版本。

奇数次版本号(如 6.3、6.5等)表示开发中的不稳定版本,通常用于测试新功能。

发行版

目前发行版本:RHEL系列(商业版本)与Debian系列(社区版本) 两者命令有细微差别

二、用户管理

用户和用户组概述

用户

用户就是使用系统的人。

Linux操作系统中每一个用户都有一个用户名(账号),系统为每一个用户分配一个唯一的用户标识,称为UID。

UID是系统辨识用户的唯一标识。

root用户

root用户也被称为超级用户或系统管理员用户,其UID为0。root用户在Linux操作系统中拥有最高权限。root用户权限过高,为了保证系统安全,一般不通过root用户登录Linux操作系统,而且要避免普通用户得到root权限。

系统用户

系统用户是Linux操作系统为满足自身系统管理需要而内建的一类用户,通常在安装操作系统或相应软件时自动创建并保持默认状态。系统用户权限低于root用户,UID通常为1~999(改动)。系统用户由操作系统自动管理的,不能用于登录系统,所以系统用户也称为虚拟用户。

普通用户

普通用户是由root用户创建的用户,可以登录操作系统并使用系统资源,但它只能操作自己所拥有权限的文件和目录。可以通过root用户设置普通用户的权限,但为保证系统安全,一般不会给普通用户设置太高权限。普通用户的UID通常为1000~6000(动)。

在普通用户的条件下使用id指令可以查看自身的UID,通过图片可以看到用户id=1000,说明kali是个普通用户。然后使用sudo su指令输入密码后进入root用户,在root权限下再使用id指令我们可以看到用户id=0。

用户组

在Linux 操作系统中,为了方便系统管理员按照用户的特性组织和管理用户,提高工作效率,产生了用户组的概念。用户组是具有相同特性的用户集合。当系统管理员统一为某个用户组赋予某种权限时,用户组中的所有用户都会同时拥有该权限。Linux操作系统也会为不同的用户组分配一个唯一标识,称为GID(Group Indentifcation )。

一个用户可以同时是多个用户组的成员,当一个用户属于多个用户组时,这些用户组分为基本组与附加组,其中基本组只有一个,而附加组可以有多个。基本组和附加组都可以在添加用户时指定。如果添加用户时没有指定用户所属的组,系统会默认为用户指定一个基本组,这个基本组的名称与用户名相同,但系统不会为用户指定默认的附加组。基本组是用户的主组,例如,一个人职业为医生,同时他还在大学中给医学院学生授课,也就是说他同时归属于医生和老师两个群体,但是当向别人介绍他时,只会说他是一名医生,医生就是他的基本组,老师是他的附加组。

用户账号文件/etc/passwd

在Linux操作系统中,用户账号的相关信息(密码除外)都保存在/etc/passwd文件中。

所有用户都可以查看/etc/passwd文件中的内容。

案例2-1 查看/etc/passwd文件内容

cat /etc/passwd

root:x:0:0:root:/root:/usr/bin/zsh root用户

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

.....

king-phisher:x:133:141::/var/lib/king-phisher:/usr/sbin/nologin 系统用户

kali:x:1000:1000:kali,,,:/home/kali:/usr/bin/zsh

newuser:x:1001:1001::/home/newuser:/bin/sh 普通用户

用户影子文件/etc/shadow

/etc/shadow文件是根据/etc/passwd文件产生的,称为影子文件。因为/etc/passwd文件权限是全局可读,任务一个用户都可以读取该文件的内容,所以Linux操作系统将密码进行加密后转移到了/etc/shadow文件中。/etc/shadow文件只有root用户可读。

案例2-2 查看/etc/shadow文件内容

cat /etc/shadow

添加用户useradd命令

添加用户就是在系统中创建一个新的账号,并为该账号设置用户名称、用户组、主目录、登录Shell等资源。 添加用户的命令为useradd。 很重要

格式:useradd 选项 用户名

useradd命令常用选项(标黄需要重点记忆)

|----|---------------------------------|
| 选项 | 说明 |
| -d | 指定用户登录目录 |
| -c | 指定账号的备注文字 |
| -e | 指定账号的有效期限 |
| -f | 缓冲天数,密码过期时在指定天数后关闭该账号 |
| -g | 指定用户基本组 |
| -G | 指定用户所属的附加用户组 |
| -m | 自动建立用户的登录目录 |
| -r | 创建系统账号 |
| -s | 指定用户的登录Shell |
| -u | 指定用户的用户ID。若添加-o选项,则用户ID可与其他用户重复 |

案例2-4 添加用户长岛icetea

useradd 长岛icetea

案例2-5 添加用户itcast,并指定用户的主目录为/usr/itcast

useradd -d /usr/itcast -m itcast

案例2-7 添加用户Addy,并设置用户ID为1024

useradd Addy -u 1024

设置用户密码passwd命令

Linux系统中使用passwd命令为用户设置密码。

格式:passwd 选项 用户名

passwd命令常用选项

|----|----------------------------|
| 选项 | 说明 |
| -l | 锁定密码,锁定后密码失效,无法登录(新用户默认锁定) |
| -u | 解除密码锁定 |
| -d | 删除密码,仅系统管理员可使用 |
| -S | 列出密码相关信息,仅系统管理员可使用 |
| -f | 强行执行 |

案例2-8 为新添加的itcast用户设置密码

passwd itcast

删除用户命令userdel命令

userdel命令可以删除指定用户及用户相关的文件和信息

格式 userdel 选项 用户名

userdel命令常用选项

|----|----------------------|
| 选项 | 说明 |
| -f | 强制删除用户,即便该用户为当前用户 |
| -r | 删除用户的同时,删除与用户相关的所有文件 |

三、文件管理

Linux文件类型

|---------|----------------------------|
| 文件类型标识符 | 含义 |
| - | 普通文件。文件属性信息长列表中以"-"开头。 |
| d | 目录文件。文件属性信息长列表中以"d"开头。 |
| l | 链接文件。文件属性信息长列表中以"l"开头。 |
| c | 字符设备文件。文件属性信息长列表中以"c"开头。 |
| b | 块设备文件。文件属性信息长列表中以"b"开头。 |
| p | 管道文件。文件属性信息长列表中以"p"开头。 |
| s | Socket文件。文件属性信息长列表中以"s"开头。 |

案例3-1 分别查看/etc目录下的文件类型

cd /etc #切换到/etc目录

ls --l #查看所有文件属性信息

目录操作命令

ls命令

ls命令用于列出参数的属性信息。

格式 ls 选项 参数

参数既可以是目录,也可以是文件。

ls命令常用选项

|----|----------------------------------------|
| 选项 | 说明 |
| -l | 以详细信息的形式展示出当前目录下的文件 |
| -a | 显示当前目录下的全部文件(包括隐藏文件) |
| -d | 查看目录属性 |
| -t | 按创建时间顺序列出文件 |
| -i | 输出文件的i-node编号 |
| -R | 列出当前目录下的所有文件信息,并以递归方式显示各个子目录中的文件和子目录信息 |

案例3-4:查看当前目录下的文件

ls

案例3-5:查看当前目录下的所有文件,包括隐藏文件

ls -a

mkdir命令

mkdir命令用于创建目录。

格式 mkdir 选项 参数

mkdir命令常用选项
案例3-6 在当前目录下创建itheima目录

mkdir itheima

rmdir命令

rmdir命令用于删除目录。

格式 rmdir -p 参数

rmdir命令的参数既可以是目录也可以是路径。

rmdir命令只有一个常用的选项-p,-p选项表示递归删除,当参数为路径时,如果子目录被删除后,其上层目录也成为空目录,则上层目录会一并删除。当参数为一个空目录时,不需要使用选项,直接删除目录。

使用rmdir -p itheima指令删除,然后通过ls -l 查看已经被删除。

文件内容显示命令

cat命令

cat命令用于将文件内容打印到输出设备。

格式 cat 选项 文件名

cat命令常用选项

cat 1.sh

查看1.sh的内容

案例3-9:显示/etc/passwd文件内容,并对每一行进行编号。

cat -n /etc/passwd

more命令

more命令用于分页显示文件内容。

格式 more 选项 文件名

more命令常用选项

|----|-----------------|
| 选项 | 说明 |
| +n | 从第n行开始显示文件内容 |
| -n | 定义屏幕大小为n行 |
| -c | 从顶部清屏,然后显示后面的内容 |
| -p | 与-c选项类似,通过清屏换页 |
| -s | 把连续的多个空行显示为一行 |
| -u | 去掉文件内容中的下画线 |

案例3-10:分页显示/etc/passwd文件内容

more /etc/passwd

less命令

less命令也可用于分页显示文件内容,但与more命令不同的是,less既支持向下翻页,也支持向上翻页。

格式 less 选项 文件名

less命令常用选项

|----|----------------------------------|
| 选项 | 说明 |
| -e | 文件显示结束后,自动退出文件。如果不加该选项,必须按q键退出文件 |
| -i | 忽略搜索时的大小写 |
| -m | 显示查看文件内容的百分比 |
| -N | 显示每行的行号 |
| -s | 将连续空行显示为一行 |

案例3-11:分页显示/etc/passwd文件内容,要求可以向上翻页

less /etc/passwd

head命令

head命令用于查看文件的前n行内容

格式 head 选项 文件名

head命令常用选项

|----|---------------|
| 选项 | 说明 |
| -n | 显示的行数,默认显示10行 |
| -v | 显示文件名 |

案例3-12:显示/etc/passwd的前6行内容

head -6v /etc/passwd

tail命令

tail命令用于显示文件的后n行内容

格式 tail 选项 文件名

tail命令的常用选项及含义与head命令相同,只是tail命令从文件末尾开始计算行数。

案例3-13:显示/etc/passwd的后4行内容

tail -4 /etc/passwd

文件查找命令

find命令

find命令可以通过关键字,从指定的目录开始递归搜索各个子目录,查找符合条件的文件。

格式 find 路径 选项 查找关键字

路径补充:./表示当前目录

/ 表示跟目录

../表示上级目录

find命令常用选项

|----------|--------------------|
| 选项 | 说明 |
| -name | 根据文件名查找文件 |
| -lname | 根据文件名查找符合条件的符号链接文件 |
| -size | 根据文件大小查找文件 |
| -user | 根据文件所有者查找文件 |
| -group | 根据用户组查找文件 |
| -uid n | 查找UID为n的用户所有的文件 |
| -gid n | 查找GID为n的用户组所有的文件 |
| -empty | 查找大小为0的目录或文件 |
| -type x | 查找类型为x的文件 |
| -atime n | 查找n天以前访问过的文件 |

案例3-14:查找当前目录下名称为passwd的文件。

find -name passwd

当前目录下没有名称为passwd的文件,find命令没有输出任何结果。

which命令

which命令主要用于搜索可执行文件的位置。

格式 which 命令

案例3-16:查看命令ls的文件位置。

which ls

whereis命令

whereis命令的功能与which命令类似,但whereis命令除了可以查找可执行文件,还可以查找帮助文件。

格式 whereis 选项 命令

whereis命令常用选项

|----|-------------|
| 选项 | 说明 |
| -b | 只查找可执行文件的位置 |
| -m | 只查找帮助文件 |

案例3-17:分别查找命令ls的可执行文件和帮助文档位置。

whereis -b ls

whereis -m ls

文件复制、移动、删除

文件复制命令cp

cp命令原意为"copy",即拷贝,该命令可以将一个或多个文件复制到指定目录。

格式 cp 选项 源文件 / 目录 目标文件 / 目录

cp命令常用选项

|----|-------------------------------------|
| 选项 | 说明 |
| -a | 递归复制目录及目录下的文件,在复制时保留原有文件的属性信息(如时间戳) |
| -R | 递归复制目录及目录下的文件,在复制时使用新的文件属性信息 |
| -p | 复制的同时不修改文件属性,包括所有者、所属组、权限和时间 |
| -f | 强行复制文件/目录,无论目标文件/目录是否存在,即覆盖原文件 |
| -i | 与-f选项相反,在覆盖原文件之前给出提示 |

示 例1: 使用cp命令将a.txt文件中的内容复制到b.txt文件中

cp a.txt b.txt

示 例2: 使用cp命令将a.txt文件和b.txt文件复制到dir目录下。

mkdir dir

cp a.txt b.txt dir

文件移动命令mv

mv命令有两个功能: 第一个功能是重命名文件。

第二个功能是移动文件/目录到指定目录。

格式 mv 选项 文件/目录 目标文件/目录

mv命令常用选项

|----|---------------------------|
| 选项 | 说明 |
| -f | 强制复制移动文件或重命名文件 |
| -i | 与-f选项相反,在移动文件或重命名文件之前给出提示 |

案例3-19:在当前目录下创建mvdir目录,并将a.txt、b.txt文件、dir目录移动到mvdir目录。

mv a.txt b.txt dir mvdir

文件删除命令rm

rm命令用于删除文件/目录。

格式 rm 选项 文件/目录

rm命令常用选项

|-----|-----------------------------------|
| 选项 | 说明 |
| -f | 强制删除文件/目录 |
| -rf | 选项-r与-f结合,删除指定目录中所有文件和子目录,并且不逐一确认 |
| -i | 在删除文件/目录时对要删除的内容逐一进行确认(y/n) |

案例3-20:删除mvdir目录。

rm -rf mvdir

文件更新

touch命令用于修改文件/目录,时间为系统当前时间,包括文件存取时间和修改时间。如果文件不存在,则创建一个新的文件。

格式 touch 选项 文件名

touch命令常用选项

|----|--------------------|
| 选项 | 说明 |
| -a | 只修改文件读取时间 |
| -c | 如果文件不存在,不创建新文件 |
| -d | 使用指定的日期,而不使用系统当前时间 |
| -m | 只修改文件的修改时间 |

案例3-21:修改文件a.txt的时间戳为系统当前时间

文件打包tar命令

tar命令是一个文件/目录打包归档命令,它可以把许多文件/目录打包成.tar格式的文件包(通常为tar包)。但tar命令不是压缩命令,因为它打包之后的文件与原来大小相同。

格式 选项 包名 文件/目录

tar命令常用选项

|----|----------------------------|
| 选项 | 说明 |
| -c | 创建新的备份文件 |
| -f | 指定备份文件名,该选项通常是必选项 |
| -x | 从备份文件中还原文件 |
| -t | 列出备份文件内容,即查看备份了哪些文件 |
| -v | 显示打包过程 |
| -z | 打包完成后使用gzipp命令将包压缩 |
| -j | 打包完成后使用bzip2命令将包压缩 |
| -p | 打包时保留文件原来的属性 |
| -k | 保留原文件,例如,还原包中文件时,遇到同名文件不覆盖 |

案例3-27:将/usr/bin目录下的文件打包并使用gzip命令压缩。

chmod命令

1. 采用字符方式更改文件/目录权限

2. 采用数字方式更改文件/目录权限

使用数字设置文件/目录权限时,不同的权限对应不同的数值,读权限对应数值为4(100),写权限对应数值为2(010),执行权限对应数值为1(001)。

用户对文件/目录的权限由读、写、执行这3种权限的数值相加结果表示。

格式 chmod 数值表示的权限 文件/目录

案例3-30:设置a.txt文件的权限,所有者具有读、写、执行权限,同组用户和其他用户只具有读权限

(未完待续)

相关推荐
大树8811 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠11 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质11 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush411 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52012 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz12 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工12 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智13 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩13 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_13 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化