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文件的权限,所有者具有读、写、执行权限,同组用户和其他用户只具有读权限

(未完待续)

相关推荐
卫生纸不够用2 分钟前
子Shell及Shell嵌套模式
linux·bash
world=hello14 分钟前
关于科研中使用linux服务器的集锦
linux·服务器
枫欢19 分钟前
将现有环境192.168.1.100中的svn迁移至新服务器192.168.1.4;
服务器·python·svn
华纳云IDC服务商20 分钟前
如何自动解决服务器弹性伸缩问题?
运维·服务器
Chloe.Zz1 小时前
Windows系统上创建Flask服务器
服务器
soragui1 小时前
【ChatGPT】OpenAI 如何使用流模式进行回答
linux·运维·游戏
白云coy2 小时前
Redis 安装部署[主从、哨兵、集群](linux版)
linux·redis
Logintern092 小时前
Linux如何设置redis可以外网访问—执行使用指定配置文件启动redis
linux·运维·redis
娶不到胡一菲的汪大东2 小时前
Linux之ARM(MX6U)裸机篇----1.开发环境搭建
linux·运维·服务器