Linux操作系统
1.Linux操作系统概述
1.1Linux初识
Linux操作系统由两部分组成:内核和系统程序
-
内核提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度I0等
-
系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:
文件管理器、任务管理器、图片查看、音乐播放等。
例如:播放音乐,无论用户使用自带音乐播放器或是自行安装的第三方播放器均是由播放器程序,调用内核提供的相关功能,由内核调度CPU解码、音响发声等
**Linux发行版:**由于Linux是开源的,因此有些人或团体通过使用Linux官方提供的内核同时封装其自己编写的系统程序组成了一个基于Linux内核的系统,称之为Linux发行版,常见的有Ubuntu、CentOS。
1.2虚拟机
**虚拟机:**借助虚拟化技术,通过软件模拟出虚拟的硬件并给虚拟硬件安装上真实的操作系统,这样的机器叫做虚拟机。
虚拟机的安装:
VMware
- 创建完成后的ISO文件可以删除。
1.3远程连接Linux操作系统
由于使用本地Windows系统和虚拟化Linux系统时存在一些使用割裂,因此一般情况下会在Windows系统中使用一些第三方软件来远程连接Linux系统,此时可以将用第三方软件连接的启动后的虚拟Linux系统看作Windows系统的一款软件,因此如剪切板的读取使用,文件的上传下载不再需要跨系统,使用更加简单。常用的第三方软件包括
- FinalShell
- WSL (Windows内置的Linux系统,通过Windows Terminal打开,内置Ubuntu系统)
1.4系统快照
系统快照类似于基于当前状态的备份,可以用于当虚拟机出现异常难以解决时,通过快照,使虚拟机回到之前正常的状态。
快照的拍摄与恢复推荐在虚拟机关机的情况下进行,此时的快照速度相较于开机时快。
2.Linux基础命令
2.0终端内快捷方式
- Ctrl + L :清屏
- Ctrl + C:强行停止正在运行的命令 / 丢弃当前正在输入的命令
- Ctrl + D:退出当前账号 / 退出某些页面(不包括vim)
- Ctrl + A:跳到正在输入的命令开头
- Ctrl + E:跳到正在输入的命令结尾
- Ctrl + R:历史命令搜索
2.1 Linux目录结构
- Linux的根目录是 “/”
- Linux的文件层次分割符是 “/”,Windows则为“\”
- 相对路径:不以**/**开头的路径,以当前工作目录为起点
- 绝对路径:以**/**开头的路径,以根目录为起点
- 特殊路径符:
- . 表示当前目录
- …表示上级目录
- ~表示home目录
- 通配符 *****:匹配任意内容
- 管道符**|**:使用管道符 左边表达式的结果 作为 右边表达式的输入
- 重定向符:
- >:将左侧的结果,覆盖写入右侧的文件中
- >>:将左侧的结果,追加写入到右侧的文件中
2.2 命令通用格式
command [-option] [parameter]
2.3 路经相关命令
ls 查看工作目录内容命令
命令:
ls [-a -l -h] [Linux路径 = 当前工作目录]
**作用:**列出指定目录下的内容
选项:
-
缺省:以平铺格式展示当前工作目录下的内容
-
-a: 列出指定目录下的全部文件(包含隐藏文件 .fileName )
-
-l: 以列表形式展示指定目录下的内容,同时显示权限、用户、用户组、文件大小、修改时间等文件信息
-
-h: 以易于阅读的形式显示文件大小(即使用K、M、G单位)(需注意此参数必须与-l参数同时使用,否则无意义)
cd 更改工作目录命令
命令:
cd [Linux路径 = home]
**作用:**更改当前的工作目录
pwd 打印工作目录命令
命令:
pwd
**作用:**打印当前的工作目录
2.4 文件操作命令
mkdir 创建文件夹 命令
命令:
mkdir [-p] Linux路径
**作用:**创建文件夹
选项:
- p :表示是否自动创建不存在的父目录
touch 创建文件命令
命令:
touch Linux路径
**作用:**创建文件
cat 查看文件内容命令
命令:
cat Linux路径
**作用:**直接显示所有文件内容
more 查看文件内容命令
命令:
more Linux路径
**作用:**支持翻页式(空格翻译 q退出)查看文件内容
tail 查看文尾命令
命令:
tail [-f -num] Linux路径
**作用:**查看文件尾部的内容,并根据选项进行文件修改跟踪
选项:
- -f :表示持续跟踪,当文件被修改后,会立刻显示修改内容
- -num:表示查看尾部多少行的内容,默认为10
cp 复制命令
命令:
cp [-r] 被复制内容的路径 复制的目的地路径
**作用:**将文件或文件夹复制到指定位置
选项:
- -r :用于复制文件夹时使用
mv 移动命令
命令:
mv 被移动内容的路径 移动的目的地路径
**作用:**将文件/文件夹移动至指定路径
**注意:**若目的地路径不存在,mv命令可能会将源文件改名,使得命令能够正常执行
rm 删除命令
命令:
rm [-r -f] Linux路径1、Linux路径2...Linux路径N
**作用:**删除文件或文件夹
选项:
-
-r :用于删除文件夹时使用
-
-f :强制删除(仅root用户模式下有效)
-
切换root用户命令:
# 切换root用户 su - root # 推出当前用户 exit
-
**其他: **支持通配符
wc 统计命令
命令:
wc [-c -m -l -w] 文件路径/内容
**作用:**统计文件的信息,如行数、字数等
选项:
-
缺省: -l -w -c 统计行数、单词数、bytes数
-
-c :统计文件bytes数量
-
-m:统计文件字符数量
-
-l :统计文件行数
-
-w :统计文件单词数量
2.5 查找命令
which命令
命令:
which 要查找的命令
**作用:**查看指定命令的程序文件的存放地址
**其他: **支持通配符
find命令
命令:
# 按文件名查找
find 起始路径 -name "被查找文件名"
# 按文件大小查找
find 起始路径 -size +/-n[kMG] # +表示大于 -表示小于
示例:
find / -size -10M 从根目录起查找文件小于10MB的文件
**作用:**查找满足条件的文件
2.6 其他命令
grep 过滤命令
命令:
grep [-n] ”关键字“ 文件路径
**作用:**从文件中根据关键字过滤文件内容中的文件行
选项:
- -n:表示在结果中显示匹配的行的行号
echo 输出命令
命令:
echo ”内容”
**作用:**在命令行上打印指定内容,相当于print
**其他:如果希望打印的结果是某命令的输出,这时需要加上反引号``**包围起来。被反引号包围的命令会被执行而不是简单的当作字符进行输出
2.7 Vim编辑器
Vim有三种模式:
- 命令模式:该模式下键盘键入的内容将被视为命令而被执行,例如双击d表示删除一行文本,单击u对操作进行撤销,双击yy表示复制该行,单击p表示粘贴。(进入vim编辑器自动进入该模式)
- 输入模式:即文件输入模式
- 底线命令模式:通常操作为文件的保存与退出。
语法:
vim 文件路径
- 若文件存在,则将对该文件进行编辑
- 若文件不存在,则会创建新文件用于编辑
命令模式快捷键
-
i :在当前光标位置进入,输入模式
-
a:在当前光标位置之后,进入输入模式
-
I :在当前行的开头,进入输入模式
-
A :在当前行的结尾,进入输入模式
-
o:在当前光标下一行进入 输入模式
-
O:在当前光标上一行进入 输入模式
-
-
0:移动光标到当前行头
-
$:移动光标到当前行尾
-
gg:移动光标到首行
-
G:移动光标到最后一行
-
PU:向上翻页
-
PD:向下翻页
-
/:进入搜索模式
-
n:向下继续搜索
-
N:向上继续搜索
-
-
dd:删除光标所在的行
-
ndd:从当前行开始删除n行
-
dG:从当前行开始删除到最后一行
-
dgg:从当前行开始向上删除到第一行
-
d$:从当前光标删除到行尾
-
d0:从当前光标删除到行头
-
yy:复制当前行
-
nyy:
-
p:粘贴
-
u:撤销
-
ctrl+r:反向撤销
-
ESC:任何情况下输入 esc 都能回到命令模式
底线命令模式快捷键:
- :wq :保存并退出
- :q :仅退出
- :q! :强制退出(即丢弃修改,不保存,直接退出)
- :w :仅保存
- :set nu :显示行号
- :setpaste :设置粘贴模式
3.Linux用户和权限
3.1 Root账户
切换用户
语法:
# 切换用户(长期)
su [-] [用户名=root]
# 切换用户(临时) == 为认证的普通用户临时授予root权限执行命令
sudo command
# 退出
exit
选项:
- - :表示是否在切换用户后加载环境变量
如果切换的用户为普通用户,则切换时不需要输入密码;若切换用户为root用户则需要输入密码,切换用户名缺省时默认为root。
认证用户
切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers,然后在文件的最后添加:
被授权用户名 ALL=(ALL) NOPASSWD:ALL
最后通过 wq 保存。
3.2 用户、用户组管理
**说明:**在Linux系统中,可以配置多个用户、用户组,且一个用户也可以加入多个用户组中。
用户组管理
用户组创建(Root):
语法:
groupadd 用户名组
用户组删除(Root):
语法:
groupdel 用户名组
用户管理
用户创建:
语法:
useradd [-g -d] 用户名
选项:
- -g:指定用户的组,若不指定则会自动创建与用户名同名的组,并加入该组
- -d:指定用户的HOME路径,不指定则默认为 /home/用户名
用户删除:
语法:
userdel [-r] 用户名
选项:
- -r:删除用户的HOME目录
查看用户所属组:
语法:
id [用户名]
作用:查看指定用户所属组,若不传入用户名,则查看当前用户的所属组
修改用户所属组:
语法:
usermod -aG 用户组 用户名
作用:将指定用户加入指定组
查看系统中的用户:
语法:
getent password
作用:查看当前系统中有哪些用户,返回的信息是用户的信息包括:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
查看系统中的用户组:
语法:
getent group
作用:查看当前系统中有哪些用户组,返回的信息是用户组的信息包括:
组名称:组认证(显示为x):组ID
3.3 权限控制信息
通过ls -l 可以以列表形式查看内容,并显示权限细节
• 序号1,表示文件、文件夹的权限控制信息
• 序号2,表示文件、文件夹所属用户
• 序号3,表示文件、文件夹所属用户组
权限控制信息细节
针对文件、文件夹的不同,rwx的含义有细微差别
-
r
- 针对文件可以查看文件内容
- 针对文件夹,可以查看文件夹内容,如ls命令
-
w
- 针对文件表示可以修改此文件
- 针对文件夹,可以在文件夹内:创建、删除、改名等操作
-
x
- 针对文件表示可以将文件作为程序执行
- 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入
3.4 chmod修改权限命令
**作用:**修改文件、文件夹的权限信息。
语法:
chmod [-R] 权限细节 文件或文件夹
选项:
- -R,对文件夹内的全部内容应用同样的操作
只有文件、文件夹的所属用户或root用户可以修改
示例:
# u:user g:group o:other
chmod u=rwx,g=rx,o=x hello.txt
• 将文件权限修改为:rwxr-x–x
• u表示user所属用户权限
• g表示group组权限
• o表示other其它用户权限
除此之外,还有快捷写法:
chmod 751 hello.txt
将hello.txt的权限修改为751(权限信息的二进制表示形式)
其中751表示的是
• 所属用户权限等级为7
• 所属用户组权限等级为5
• 其他用户权限等级为1
3.5 chown命令
**作用:**修改文件、文件夹的所属用户和用户组
注意:此命令只适用于root用户执行
语法:
chown [-R] [用户] [:] [用户组] 文件或文件夹
选项:
- -R,同chmod,对文件夹内全部内容应用相同规则
参数:
-
用户,修改所属用户
-
用户组,修改所属用户组
-
: 用于分隔用户和用户组
示例:
# 将hello.txt所属用户修改为root
chown root hello.txt
# 将hello.txt所属用户组修改为root
chown :root hello.txt
# 将hello.txt所属用户修改为root,用户组修改为itheima
chown root:itheima hello.txt
# 将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
chown -R root test
4. Linux实用操作
4.1 软件安装
(CentOS)yum安装程序
yum是RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
语法:
yum [-y] [install | remove | search] 软件名称
选项:
- 选项:-y,自动确认,无需手动确认安装或卸载过程
参数:
- install:安装
- remove:卸载
- search:搜索
yum命令需要root权限,可以su切换到root,或使用sudo提权,yum命令需要联网
(Ubuntu)apt安装程序
apt是deb包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
语法:
apt [-y] [install | remove | search] 软件名称
选项:
- 选项:-y,自动确认,无需手动确认安装或卸载过程
参数:
- install:安装
- remove:卸载
- search:搜索
yum命令需要root权限,可以su切换到root,或使用sudo提权,yum命令需要联网
4.2 系统服务管理
说明:Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:软件的启动、停止、开机自启,部分软件安装后没有自动集成到systemctl中,我们可以手动添加。能够被systemctl管理的软件,一般也称之为:服务
语法:
systemctl start | stop | status | enable | disable 服务名
参数:
- start 启动
- stop 关闭
- status 查看状态
- enable 开启开机自启
- disable 关闭开机自启
系统内置的服务比较多,比如:
• NetworkManager,主网络服务
• network,副网络服务
• firewalld,防火墙服务
• sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
4.3 软链接
**说明:**在系统中创建软链接,可以将文件、文件夹链接到其它位置,类似Windows系统中的 “快捷方式”
语法:
ln -s 被链接的文件或文件夹 要链接去的目的地
选项:
- 创建软连接
其他:
- 此处链接需为绝对地址
- 创建后的软连接同样可以跟本体一样可使用cat等命令
4.4 时间与日期
未完待续…2024/08/10