Linux操作系统基础
实验所用系统为Redhat-rhel8.2。
目录
Linux操作系统基础–命令行使用技巧
一、Linux简介
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统。linux系统是由内核和GNU组成的。内核(Kernel)负责系统程序和硬件分配及调度,相当于人的大脑,是个软件,内核类型还有UNIX和Windows即DOS。
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,保护内核(内核没有保护能力),它解释由用户输入的命令并且把它们送到内核。Shell有不同的版本,如bash。
二、Linux下vm虚拟机控制命令
[westos@westos Desktop]$ westos-vmctl start westosa ##运行westosa
[westos@westos Desktop]$ westos-vmctl view westosa ##显示westosa
[westos@westos Desktop]$ westos-vmctl reset westosa ##重置westosa
[westos@westos Desktop]$ westos-vmctl poweroff westosa ##关闭westosa
三、Shell使用
1、Shell打开方式
右键打开
^此方式打开的shell在当前用户的桌面上
Application —> System tools —> terminal
^此方式打开的shell默认在当前用户的家目录中
gnome-terminal
^此方式打开的shell默认在当前用户的家目录中
ctrl+shift+N
^当shell已经开启时需要开启一个新的shell
Application —> System Tools —> Settings —> Devices —> Keyboard —> 下拉至底部点+号 —> 设置command为gnome-terminal —> 设置快捷键
^设置快捷键,在设置中设定任意快捷键执行gnome-terminal
2、命令提示符含义
root — 运行shell的用户,当前用户为超级用户
@ — 分隔符
westosa — 系统主机短名称,当前主机去掉域名部分的短名称
Desktop — 当前目录名称,所在目录为桌面
#— 在当前主机中的身份,#表示超级用户,可以管理系统。Linux下超级用户的名称都叫root。
westos — 运行shell的用户,当前用户为普通用户
@ — 分隔符
foundation1 — 系统主机短名称,当前主机去掉域名部分的短名称
Pictures— 当前目录名称,所在目录为图片
$— 在当前主机中的身份,表示普通用户,只能使用系统。
3、Shell中的快捷键
- 快捷键使用
ctrl+shift+T ##在一个terminal中开启多个窗口
ctrl+shift+N ##重新打开一个terminal
ctrl+C ##取消执行命令
ctrl+D ##关闭shell
ctrl+shift+鼠标选中+C ##复制选中字符
ctrl+shift+V ##粘贴
ctrl+A ##快速移动光标到行首
ctrl+E ##快速移动光标到行尾
ctrl+左右键 ##跨单词快速移动光标
ctrl+U ##快速删除当前光标所在字符之前所有
ctrl+K ##快速删除当前光标所在字符和之后的所有
- 命令执行格式
命令(就是程序) 参数(表示命令的特殊功能) 对象(操作目标)
例:westos-vmctl(命令) view(参数) westosa(对象)
- 命令执行方法
有些命令可以单独执行,没有参数和对象
例:ls可以 westos-vmctl不可以
参数可以加多个,且可以合并,无先后之分
例:-a -b -c = -abc = -cba = -bca
参数-s表示单词缩写(一杠)
参数–size表示单词全拼(两杠)
例: ls -h
ls --help
命令必须在行提示符之后输入,否则命令无法执行
当命令行被占用时,通常使用ctrl+C结束占用命令行的程序来释放命令行
例:被命令gedit占用时使用ctrl+c结束命令
4、Linux命令行历史调用
- shell可以记录系统中执行过的命令
history ##管理shell中的命令历史
hictory -c ##清空当前历史命令
[注意]: 此时打开另一个shell窗口,使用history命令,依旧可以显示之前的命令,history -c命令只作用于memory区,不作用于硬盘。永久清空历史需要清空文件 .bash_history。
- 历史命令的调用
上键或下键 ##逐行调用
!+数字 ##调用指定行历史
!+字符 ##调用以此字符开头的最近历史
ctrl+R ##开启历史搜索模式,命令行显示会变为
(reverse-i-search)`':输入关键字 ##会显示含有此关键字的最近一条历史
history > 文件名 ##将history里的内容定向输出到文件里,覆盖文件原内容
history >> 文件名 ##将history里的内容定向追加到文件里,不会覆盖文件原内容
- TAB键的使用
补齐系统中存在的命令,文件,和某些命令的参数
当按一次tab没有效果,表示一次字符开头的信息不唯一可连续按2次
那么会把以此字符开头的所有内容显示
如果按2次仍不显示表示没有以此字符开头的指令
Linux操作系统基础–文件管理
一、文件管理命令
1、touch
touch+文件名 ##建立文件,修改文件时间戳
touch file1 file2... ##建立空文件
touch file ##把已存在文件时间同步到当前时间
touch -t 202106251034 ##把文件时间更改到指定时间
附:右键点击文件—>Properties(属性)
Accessed–文件最后一次被查看的时间
Modified–文件最后一次改变属性的时间
[注意]:目录也是文件的一种类型,已经存在的不能重复建立(存在一个文件,则不能建立同名的目录)
#touch建立一个文件和多个文件
#touch 同步文件时间,ls -ld为查看文件本身属性
#touch -t 把文件时间更改到指定时间
#图形界面查看文件属性
2、mkdir
mkdir+目录名(make directory) ##建立空目录
mkdir dir1 dir2 ##建立空目录
mkdir -p test/redhat/linux ##建立多层目录(必须先建立父层目录)
#目录也是文件的一种类型,已经存在的不能重复建立(存在一个文件,则不能建立同名的目录)
#mkdir dir{1…3} 表示建立dir1,dir2,dir3
#建立多层目录
3、rm
rm ##删除文件或目录
rm+文件名 ##删除文件有提示
rm -f+文件名 ##强制删除文件不提示
rm -r+目录名 ##删除目录
rm -f -r+目录名 ##强制删除目录及其里面的内容
4、gedit
gedit ##图形的文本编辑器
gedit file file2 ##编辑file file2
[注意]:gedit 在使用时必须有图形
file file2可以不存在
5、vim
vim ##文本编辑器
vim file ##进入到vim的浏览模式,不能对文件内容进行更改操作
##在浏览模式不能编辑文件
##在浏览模式按<i>进入插入模式
##在vim中鼠标不能控制光标
##按<ESC>推出插入模式
#在浏览模式按进入插入模式
## :wq — 保存更改
## :q — 当vim打开文件后为操作可以直接退出
## :q!— 当vim打开文件后修改内容,但不想保存,可以直接强制退出
6、vim异常退出
当vim编写文件时,在未保存更改内容被强制关闭,vim出现异常
##[O] 只读打开文件
##(E) 继续编辑,可以保存,但是再次打开文件时,依旧异常
##(R) 恢复未保存内容编辑
##(D) 删除.swp文件进入编辑(恢复正常)
##(Q) 退出当前文件编辑(当-p打开两文件,第一个有问题,第二个没问题,q则退出有问题的文件,打开没问题的文件)
##(A) 退出vim程序
#当在vim编辑模式下未保存直接关闭shell
#再次打开shell进入vim时,vim异常
#[O] 打开的文件为只读模式,不能编辑
7、vim同时打开多个文件
vim -o westos1 westos2 ##上下模式打开两个文件
##<ctrl>+<w> <上|下>来转换控制窗口
vim -p westos1 westos2 ##左右打开两个不同文件
## :tabn 进入到下一个窗口
## :tabp 进入到上一个窗口
#上下模式打开两个文件
#左右模式打开两个文件
8、cat
cat ##显示文件的全部内容
cat file
cat -b file ##显示文件内容并显示行号,不显示空行的行号
cat -n file ##显示文件内容并显示行号
9、less
less ##分页浏览
less westos ##进入到less模式查看westos
##less模式中 <上><下>逐行查看文件内容
##<pgup><pgdn> 逐页查看文件内容
##/+关键字 搜索关键字 n-向下匹配 N-向上匹配
##<v> 有less模式进入到vim,编辑完成:wq退出返回less
##在less<q> 退出
10、head
head ##查看文件前多少行
head westos ##默认显示文件前十行
hesd -n westos ##n 代表数字,显示文件的前n行
11、tail
tail ##查看文件的后多少行
tail westos ##默认显示文件后十行
tail -n wetos ##n 代表数字,显示文件的后n行
tail -f westos ##默认对后十行文件内容进行监控,实时显示文件内容变化
##-nf 对后n行内容进行监控
#默认对后十行文件内容进行监控
#实时显示文件内容变化
12、cp
cp ##复制文件
cp+文件+目的地文件 ##将文件复制到目的地文件里
cp+文件1 文件2+目的地目录 ##将多个文件复制到目的地目录里
cp -r +目录1+目录2 ##将目录1复制到目录2里
[注意]:复制原理时按照原文件建立新文件(照抄),导致节点号变化
#复制文件
##将文件复制到目的地目录里,ls 查看目录内容
#将目录1复制到目录2里
13、mv
mv ##移动文件
mv file file1 dir ##将多个文件移动到目录里
mv dir dir1 dir2 ##将多个目录移动到目的目录里
mv file 不存在file ##对文件重命名(目录同)
[注意] 移动原理:相同磁盘分区中的文件移动是重命名过程,不会导致节点号变化
不同磁盘分区中的文件移动是复制删除过程,导致节点号变化
#将多个文件移动到目标目录里
#将多个目录移动到目的目录里
#对文件重命名(目录同)
14、file
flie ##对文件类型的查看
file westos ##查看westos的真实类型
15、wc
wc ##文件容量统计(可直接加文件名)
wc -l ##行数
wc -m ##字符数
wc -w ##单词数
wc -c ##字节数
二、文件寻址
1、Linux系统结构
- 该系统采用FHS(文件系统层次化标准)。FHS,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据;第二层则是针对/usr及/var这两个目录的子目录来定义。
- 在Linux中一切都是文件
- 系统二级目录
/bin ##系统常规命令
/sbin ##系统管理命令
/dev ##设备文件
/home ##普通用户家目录集合,此目录中的子目录为普通用户家目录
/root ##超级用户家目录
/lib64 ##64位函数库
/lib ##系统函数库
/proc ##进程信息,系统识别的硬件信息
/run ##当前运行的硬件和系统模块
/srv ##系统数据(常量)
/var ##系统数据(变化)
/tmp ##系统临时文件存放目录
/mnt ##临时设备挂载点
/media ##cdrom临时挂载点
/etc ##系统大多数程序的配置目录
/opt ##第三方软件安装位置
/boot ##系统启动分区,系统启动时读取的文件都在此目录中
/sys ##关于内核设定目录
/usr ##unix system resource 仅次于/ 重要 多数系统资源都在此目录中
- 相对路径:
绝对路径名称的简写,省略了用户当前所在的系统位置
此名称只有在管理当前所在系统目录中子文件时才能使用
系统中不以/开头的文件名称都为相对路径
在程序操作时,会自动识别当前路径的信息并关联操作目标 - 绝对路径:
文件在系统中的真实位置,在任何场景下都可以使用
通常以/开头,不会考虑当前系统位置
2、文件寻址的命令
- pwd
pwd ##显示当前的工作目录
- cd
cd ##切换当前的工作目录
<cd -> = <cd ~-> ##在当前目录与前一个目录之间切换
cd .. ##当前目录的上级目录
- ls
ls ##显示文件信息
ls ##显示当前目录中文件的名称
ls file ##显示指定文件名称
ls dir ##显示指定目录中内容的名称
ls -d dir ##显示目录本身的名称
ls -l file ##显示文件属性
ls -l dir ##显示目录中内容的属性
ls -ld dir ##显示目录本身属性
ls -a dir ##显示目录中所有文件名称包括隐藏文件
ls -s ##显示文件大小
ls -R dir ##递归显示文件里的内容,包括子目录里的子文件
3、文件批量处理
- ##匹配0~任意字符
? ##匹配单个字符(两个字符就是??)
[[:alpha:]] ##匹配单个字母
[[:lower:]] ##匹配单个小写字母
[[:upper:]] ##匹配单个大写字母
[[:digit:]] ##匹配单个数字
[[:alnum:]] ##匹配单个数字或字母
[[:punct:]] ##匹配单个符号
[[:space:]] ##匹配单个空格
[![:alpha:][:space:]] ##匹配除了数字和空格
- 字符集合表示方法
[] ##模糊匹配,对象和几个对比匹配就操作
##[1-10] 1到10 [!d-f]|[^d-f] 除了d到f以外(!和^都是除了)
{} ##点名机制,精确指定集合中的每一个元素
##{1..10} 1到10 {a..c} a到c
- 目录
~ ##默认代表当前用户家目录
~username ##指定的用户家目录
“~+” = “.” ##当前目录
~- ##当前目录之前所在目录
.. ##当前目录的上级目录
#当前目录的上级目录