Linux用户
root用户,即管理员用户,拥有所有权限
普通用户:管理员用户创建的用户
[root@localhost ~ ]# 提示符构成:
#表示的是管理员用户登录,$表示的是普通用户登录
root表示的是当前登录系统所用的用户名
@表示分隔符
loaclhost表示主机名
~ 表示当前工作目录,登录后默认为用户家目录
# 身份标识符
linux中的基础命令
清屏命令
clear
ctrl+l
查看当前所在目录
pwd
切换工作目录
cd
cd - :返回上次工作目录
cd ~ :直接进入当前用户的家目录
cd ..:进入当前目录的父目录
touch:创建一个一般文件
格式:touch 选项 目标位置/文件名称
mkdir :创建一个目录文件
格式:mkdir 选项 目标位置/目录名称
选项: -p 当父目录不存在的情况下,自动创建父目录
在linux中有一个重要的核心思想,即万物皆文件。
cp:复制文件或目录
格式:cp 选项 原文件 目标位置/新名字
选项: -r 用与复制目录,复制目录文件必须使用-r
-a 在复制过程中保持文件属性不变
mv:移动文件或目录
格式:mv 选项 原文件 目标文职/新名字
rm:删除文件或目录
格式:rm 选项 目标位置/文件名
选项: -f 强制执行删除操作
-r 删除目录文件
通配符:
*:表示一个或多个任意字符
?:表示一个任意字符
匹配指定范围:
[:space:] 匹配所有空白符
[:lower:] 匹配所有小写字母
[:upper:] 匹配所有大写字母
[:alpha:] 匹配所有字母,包含大小写
[:punct:] 匹配标点符号
[:digit:] 匹配数字
[:alnum:] 匹配所有的数字和大小写字母
[0-9][a-z][abc][A-Z][a-zA-Z]也可以使用
ls:查看当前或指定目录下的所有文件
格式:ls 选项 目标位置/目录名称
选项:
长格式选项---一个单词
短格式选项---一个字母
-a 显示所有文件,linux中的隐藏文件全部是小数点开头的文件
-h 做单位转换,即以人类易读的方式显示文件所占的空间
-d 显示目录自身属性
-i
-r 逆序显示
-R 递归显示
linux中的文件类型:
-
:普通文件
d
: 目录文件
b
:块设备文件
c
:字符设备文件
l
:符号链接文件
p
:命令管道文件
s
:套接字文件
cat:查看文件内容
格式:cat 选项 目标位置/文件名称
head:查看文件的前若干行,默认为前10行
格式:head 选项 目标位置/文件名称
选项: -n 数字 指定查看的行数
tail:查看文件最后若干行,默认为最后10行
格式:tail 选项 目标位置/文件名称
选项: -n 数字 指定查看的行数
more:实现分屏查看文件(适用于大文件)
格式:more 选项 目标位置/文件名称
操作:
回车:显示下一行
空格:显示下一屏
b
:显示上一屏
/
目标字符:在文件中搜索内容
n
:继续向后搜索下一个关键词
q
:退出查看
less
命令:
作用:实现分屏查看文件
格式:
less
目标位置
/
文件名称
操作:
回车:显示下一行
空格:显示下一屏
/
目标字符:在文件中搜索内容
n
:继续向后搜索下一个关键词【关键词是高亮显示的】
q
:退出查看
wc:统计文件中有多少行,多少单词,多少字符
格式:wc 选项 目标位置/文件名称
选项:
-l
:统计一个文件的行数
-w
:统计文件的单词数
-c
:统计文件的字符数
man 查看命令的帮助信息
格式:man 命令名
vi/vim编辑器
vi是linux中一个重要的文件编辑软件
vi的工作模式:
模式
1
:编辑模式
它是打开文件后默认的模式
编辑模式不能在文件中写入或者编辑内容
模式
2
:输入模式
它是可以在文件中插入、删除、修改内容
模式
3
:末行模式
它是可以执行各种命令,例如保存退出、不保存退出、显示行号、高亮显示
3种模式转换:
编辑模式
--->
输入模式 【i】
输入模式
-->
编辑模式【
esc
】
编辑模式
-->
末行模式【:】
末行模式
-->
编辑模式【
esc
】
vi格式:vi 目标位置/文件名称
如果文件本来就存在,则直接打开这个文件
如果文件不存在,则直接创建一个新的空白文件
编辑模式下的操作:
yy
:复制
p
:粘贴
dd
:删除
/
剪切光标所在的行
(
如果不进行粘贴操作则是删除
)
/str
:搜索关键词
末行模式下的操作:
w
:保存
q
:退出
q!:
不保存强制退出
wq
!:强制保存退出
set nu
:显示文档的行号
set nonu
:不显示行号
wq:
保存退出 同等
x shift+zz
vi进阶操作:
yy
复制一行
3yy
复制
3
行
dd
删除一行
3dd
删除
3
行
ndd
删除
n
行
d0
:删除光标所在位置到行首
d$
:删除
……
行尾
y
表示复制内容
y0
:复制光标所在位置到行首的所有内容
y$:
复制光标所在位置到行尾的所有内容
yy
编辑模式下光标的操作
上下左右
h
左移光标
l
右移光标
j
下移光标
k
上移光标
H
当前屏幕的第一行
M
当前屏幕的中间行
L
当前屏幕的最后一行
ctrl+f
下翻一页
ctrl+b
上翻一页
ctrl+u
上翻半页
ctrl+d
下翻半页
【
num
】
G
:快速定位到【
sum
】行
G
:快速定位到文档的最后一行
gg
:快速定位到文档的第一行
w
:向后跳一个单词 下一个单词的词首
b
:向前跳一个单词 前一个单词的词首
x
:删除当前光标所在的一个字符
u:
撤销上一步操作:最多可以撤销致最近的
50
次
/str
:搜索操作
n
:向下去查找一个关键词
N
:向上去查找一个关键词
编辑模式
--->
输入模式
i
:在当前光标所在字符的前面转为输入模式
I
:在当前光标所在的行的行首位置转为输入模式
a
:在当前光标所在的字符的后面转为输入模式
A
:在当前光标所在的行的行尾转为输入模式
o
:在当前光标所在的行的下一行转为输入模式
O
:在当前光标所在的行的上一行转为输入模式
打开文件操作
vim -o[n]
文件名 文件名
...
水平方向打开
n
个文件
vim -O[n]
文件名 文件名
...
垂直方向打开
n
个文件
linux特点:
单根操作系统
倒树状结构
重要的哲学思想:一切皆文件
多用户操作系统
linux中的重要目录:
/home
普通用户存储文件的家目录,也就是普通用户的家目录,普通用户只能在自己的家目录下创建/
编辑文件
/etc
/etc
下存储的是
linux
中的各种配置文件 例如网卡配置文件 系统内核配置文件 用户名
密码配置文件
/bin
目录
存放的是
linux
中可执行程序
/sbin
目录
存放的也是
linux
中可执行程序
/var
目录
存放的是经常发生变化的文件
例如日志文件
/var/log/message
/tmp
目录
存放的是临时文件
这个目录所有的文件,如果
30
天内没有被访问过,那么文件自动被删除
/root
目录
这个目录是超级管理员用户的家目录
/dev
目录
设备文件
块设备:随机访问,数据块
字符设备:线性访问,以字符为单位
/lib
库文件
静态链接库,
.a
动态库
.dll .so
特殊文件
/lib/modules
内核模块文件
/mnt
挂载点目录,将系统盘挂载到某个目录当中
/media
目录,可以作为挂载点的目录
/proc
伪文件系统,内核映射文件。展示系统的硬件信息
/sys
伪文件系统,随硬件设备相关的属性映射的文件
伪文件系统,开机才有 关机后目录中内容消失
linux总的路劲表示方式:
/
目录名
/
目录名称(文件名)
/
文件名
第一个
/
表示根目录 ,第二个
/
表示路径分隔符 ,第三个
/
表示路径分隔符
linux的命名规则:
文件名长度不能超过
255
个 字符
严格区分大小写
不能使用
/
作为文件名
cli
终端快捷键
ctrl+a
将光标移动到行首
ctrl+e
将光标移动到行尾
ctrl+u
删除当前所在位置到行首的所有字符
ctr+k
删除当前所在位置到行尾的所有字符
命令补全使用的快捷键是
tab
命令历史:
查看命令历史:
history
默认情况下 记录最近
1000
个命令
选项:
-c
:清空历史命令
-d
【n】 删除指定位置的命令
-w
保存历史命令到一个文件中
linux网络配置
网络配置文件位置:/etc/ifconfig/network-scripts/ifcfg-ens33
查看网卡配置信息:
ip addr
ip地址:
IP
地址格式:
用点进行分割
由
4
部分组成
每个部分的数值
0-255
之间的数字,
IP
地址在计算机中的固定存储空间是
4
个字节也就是
32
bit
子网掩码:
作用:判断两个
IP
是否属于同一个网段
两个
IP
在同一个网段所以才能通信。
人类为了让
IP
地址获得更高的复用率才有子网掩码产生
网卡配置信息:
TYPE=Ethernet ===>
网卡的类型 以太网
BOOTPROTO=dhcp ====> IP
地址获取方式
dhcp
(自动获取)
static
表示手动指定地址
NAME=ens33 ===>
网卡名称
ONBOOT=no ===>
开机自动加载网卡,no为不加载,yse为自动加载
重启网卡服务:
systemctl restart network
linux用户管理
查看用户
命令:
id
格式:
id
用户名
作用:检查用户的
id
号
创建用户
命令:
useradd
格式:
useradd
用户名
删除用户
命令:
userdel
格式:
userdel
用户名
修改用户的密码
命令:
passwd
格式:
passwd
用户名
注意:普通用户只能修改自己的密码,
root
用户可以修改所有用户的密码
切换账户
命令:
su
选项:
-
表示直接切换到用户的家目录
作用:切换用户
用户权限管理:
用户权限都有哪些:
r
【读权限】 可以执行类似于
cat tac head tail
用
8
进制数值表示
4
w
【写权限】 可以向文件中写入内容 用
8
进制数值表示
2
x
【执行权限】 可以执行文件中的指令 用
8
进制数值表示
1
( - ) 表示没有这个权限
用户对象
属主用户:这个文件的主人是谁、文件的属主
属组用户:这个文件的属组
其他用户:不是这个文件的属主,也不是这个文件的属组
字母表示方式
u
:表示属主用户
g
:表示属组用户
o
:表示其他用户
a
:表示所有用户
操作的权限方法
( + ) 表示添加权限,例如给属组用户添加执行权限
( - ) 表示去除权限
( = ) 表示将权限修改为指定的内容
修改权限
命令:
chmod
作用:修改文件的权限
格式:
chmod
用户对象 操作符号 权限 文件名(操作对象)
数字权限表示方式
r 4
w 2
x 1
- 0
用数字表示一类用户的权限
0
:---
1
:--
x
2: -w-
3: -wx
4: r--
5: r-x
6: rw-
7: rwx
用数字表示三类用户的权限,三个数字从前向后,依次是 属主、属组、其他用户
621
:
rw---w--x
345
:
-wxr--r-x
000: ---------
777: rwxrwxrwx
修改目录及其子文件的权限
chmod
权限
-R
目录名称
#
设置目录及其目录里面所有的文件
修改文件的属主属组
命令
chown
作用是修改文件的属主和属组
格式:
chown
属主名
.
属组名 文件名称
管道符
管道符号是一个
|
作用是将
|
前面命令的执行结果交由
|
右面的命令进行二次处理,管道符左边
的命令必须执行成功,才能执行管道符右面的命令
重定向符号
>
重定向符号,作用是将左边的执行结果追加到右边的文件中(将文件中的内容清空后再追加)
>̹>
重定向符号,作用是将左边的执行结果追加到右变的文件中(在文件最后一行进行追加)
管理服务的命令
启动服务
格式:
systemctl start
服务名称
重启服务
格式:
systectl restart
服务名称
关闭服务:
格式:
systectl stop
服务名称
设置服务开机自动启动
格式:
systemctl enable
服务名
设置服务开机自动关闭
格式:
systemctl disable
服务名
查看服务的状态
格式:
systemctl status
服务名
安装卸载软件
安装类别
yum
安装
(
常用类型
)
编译安装(在生产环境
---IDC
或者是内网服务器
--
)
通用二进制格式安装
linux
中的安装包
软件包后缀名称
.rpm
系统光盘中就有软件包
在阿里、华为、清华大学、化工科镜像站当中
rpm安装方式
需要使用
rpm
命令进行安装软件
rpm
命令
作用是用来管理
linux
当中的软件以及软件的依赖库
格式:
rpm
【选项】 软件名称 用来安装或者卸载软件的
格式
2
:
rpm
【选项】 【软件名称】 用来查看软件的安装情况以及依赖关系
选项:
-qa:
查看系统当中安装的软件
-qi
:查看系统安装的软件的信息
-ql
:查看指定软件的依赖关系
-e:
卸载软件
优点:直接本地化安装,不需要依赖网络
缺点:需要手动解决软件的依赖关系
yum
安装
用
yum
安装软件步骤
第一:准备一个软件源。软件源其实就是一个目录,在这个目录当中存放很多的
rpm
软件包
第二:创建
yum
的配置文件,文件需要指向软件源
第三:用
yum
进行软件的安装
/
卸载操作
yum
命令
作用:用来管理
linux
当中的软件源
格式:
yum
选项
|
参数 软件名
选项
|
参数
install
:安装软件
info
:不安装软件,只查看软件是否存在以及软件的信息
remove:
卸载软件
makeinstall
:创建
yum
缓存
cleall all
:清空
yum
缓存
-y
:直接安装不进行二次确认
tar
命令:
作用:压缩或者解压文件包
压缩包的格式:
.tar.gz
格式:
tar
选项
|
参数 文件名称
选项:
xfv
:解压软件
cf
:压缩软件
tfv
:不解压,只查看压缩包中的内容
计划任务
通过周期性计划任务,可以定时、自动完成特定的工作
使用任务计划,需要开启一个服务:
crond
检查
crond
服务是否正在运行当中
systemctl status crond
创建任务计划
crontab -e
可以创建任务计划
crontab -l
查看任务计划
SHELL
脚本编程
特点:
也是一种编程,最大的特点是简单
在
shell
中,其实就是包含了各种
linux
命令
这个保存了命令的文件就是一个
shell
脚本
通过
shell
脚本实现批量执行
linux
的命令
写
shell
脚本的流程
第一步、用
vim
来创建一个后缀是
.sh
的文件
shell
脚本的第一行必须是
#!/bin/bash
在
sh
文件中写入指令
给脚本赋予执行权限
chmod +x a.sh
执行脚本
./a.sh
shell
流控制
循环
周而复始的执行一个命令
格式
for
变量
in
列表
do
done
for
的执行流程
1
)将列表中的元素,逐个拿出一个来赋予变量,然后执行
do
和
done
之间的代码
2)do
和
done
之间的代码执行完成后,会再一次从列表中再拿下一个元素,然后再次执行
do
和
done
之间 的代码
3
)
do
和
done
之间的代码执行完成后,会再一次从列表中再拿下一个元素,然后再次执行
do
和
done
之间 的代码
4
)当列表中的元素用尽了,就会结束循环,结束循环后,才会执行
done
后面的代码后续代码
判断
只有当符合条件的时候,才会执行命令
格式1:
if [
判断条件
]
;
then
代码块
1
(判断对的情况)
else
代码块
2
(判断错误的情况)
fi
这种结构叫做双分支结构
中间代码块
1
只有在条件成立的情况下才会执行
代码块
2
只有在条件不成立的情况下才会执行
格式2:
if [
判断条件
];then
代码块
fi
这种格式称为单分支
脚本中的数值运算符:
-gt
:测试一个数值是否大于另外一个数值
-eq:
测试两个数值是否相等
-ne
:测试两个数值是不是不等于
-lt
:测试一个数值是否小于另外一个数值
-ge
:大于或者等于
-le
:小于等于
逻辑运算符
逻辑与: 条件
1 &&
条件
2
当一个条件为假时,第二个条件就不用判断了,最终结果是为假
当第一个条件为真(条件成立),第二个条件继续判断,如果是成立 结果为真 如果不成立结
果为假
逻辑或:
|| 任意一个条件成立即可
ping
命令:
作用:测试哪些
IP
地址是在线的
格式:
ping
选项
IP
地址
|
域名
选项:
-c
:向目标主机发送多少个
ICMP
数据包
-i
:表示等待时间,快速发送
icmp
数据包,去探测目标主机是否在线
Linux
中三剑客
grep:
内容过滤
awk
:内容截取
sed
:内容替换
1
、
grep
文本搜索工具,根据用户指定的文本模式对目标文本进行逐行搜索,并显示匹配到的行
格式:
grep [
选项
] "
正则表达式
"
文件
选项:
-v
:反向匹配,显示不能被匹配到的行
-i
:不区分大小写
-E
:支持扩展正则表达式
-o
:仅匹配被模式匹配到的子串,而非整行
-A #
:还显示模式下面的一行(#表示一个数字)
-B #
:显示模式匹配到的行的上面
N
行
-C #
:显示模式匹配到的行的上下
扩展正则表达式
\ #
表示转义字符,或者用于字符锚定使用
\?
前面的字符出现
1
次或者
0
次
\{m \}
匹配
m
次
\{m,n \}
匹配最少出现
m
次,最初出现
n
次
\{0,n\}
匹配最多
n
次
\<"root"\>
匹配包含指定单词的行
/dev/null
黑洞文件
用于将哪些不需要的输出结果通过使用黑洞文件进行屏蔽
awk
awk -F “
分隔符
” ‘{print $#}’
作用,截取数据中的任意一列
sed
作用:修改文件中的内容
特点:
用
sed
去修改文件的时候,默认修改的文件副本的内容,不会修改原始文件
如果想修改原始文件,需要使用选项
-i
选项:
-p:
输出
-d
:删除
-s:替换,
S/
原始内容
/
替换的内容
/g
表示做全局替换,不加
g
仅仅是替换这行的第一个
-a
:追加
-i
:原地修改【修改原始文件】
shell
中的两个命令
echo
输出
read
输入
格式
read
【选项】
"
提示内容
“
变量名
选项:
-s:
不回显输入的内容,例如输入密码
-p
:后面给出提示信息
-t
:后面接时间,设置超时时间
-n
:设置输入的字符数,输入做限定个数
判断条件
判断数字
-gt
-ge
-lt
-le
-ne
-eq
判断文件
-a
判断文件是否存在
-d
判断文件是否存在,而且是目录文件
-f
判断文件是否存在,而且是一般文件
$?命令
查看上一步操作是否操作成功,如果成功则结果为0,如果不成功结果为非0正数
用户一共有三类
管理员:
root uid
是
0
系统用户:
uid
是
1-499
只能用来运行程序,不能用于登陆系统
普通用户:
uid
是
500+
可以用来登陆系统,但是权限很小