一、基础命令
Linux的提示符
[root@localhost ~] #
[当前主机用户名@当前主机名称 当前所在工作位置] 身份标识符
身份标识符是# 的话 代表的是管理员 是$的话代表的是普通用户
1.2 Linux命令格式
命令 【选项】 参数
命令: linux中所有的命令,是严格区分大小写的
选项:选项是用于控制命令的执行过程 选项有分短选项和长选项 -短 -- 长
参数:参数是指命令的作用对象
1.3 Linux的特点
1、命令和文件名都是严格区分大小写的
2、linux文件的后缀名对于文件的属性没有任何影响
3、Linux中的核心哲学思想,一起皆文件
4、开源、免费、单根系统 目录结构是倒数状结构
1.4 Linux跟目录下的主要文件
/etc/hosts 本地域名解析文件
/usr 系统文件目录 类似于windows系统的C:/windows
/etc 用于存放配置文件
/var 存储的是经常发生变化的文件
/tmp 用于存储临时文件
/lib /lib64 用于存放的是库文件
/dev 存储的是所有外部设备的设备文件
/mnt /media 都是用来挂载文件系统的目录
/boot 用来存储启动文件的目录
/bin /usr/bin 存放的是普通用户可执行的命令
/sbin /usr/sbin 存放的是管理员用户可执行的命令
1.5 基础命令
pwd
全称:Print Working Directory
作用: 显示当前所在的路径
格式:pwd
cd
全称:change directory
作用:切换目录
格式:cd 目标位置
绝对路径:从 / 下开始的完整路径 相对路径:相对于当前工作目录的路径
cd .. 切换到上一级目录
cd ~ 切换到当前用户的家目录
cd - 切换到上次所在的目录
clear
作用:清空屏幕
快捷键 ctrl+l
touch
作用:新建空白文本文件
格式:touch 文件名 在当前目录下创建文件
touch 路径/文件名 在指定的位置下创建文件
mkdir
全称:Make Directory
作用:新建文件夹/目录
格式:在当前位置下直接创建目录:mkdir 目录名
在指定位置下创建目录 mkdir [选项] ;路径/目录名
选项: -p 在父目录不存在的情况下,会自动地创建父目录
cp
全称:copy
作用:复制文件或者目录
格式:cp [选项] 源文件 目的路径
选项
-a 复制文件的时候保持文件的属性不变-r 递归复制 ,单纯用来复制目录的
-f 用于强制复制文件或者目录
-v 用来显示复制过程的详细信息
[ ] 表示里面的内容可选
< > 标识里面的内容是必选
mv
全称:move
作用:移动文件或者是目录
格式:mv 源文件 目的路径
rm
全称:ReMove
作用:删除文件或者是目录
格式:rm -rf 要删除的文件或者是目录
选项:
-r 这个选项是专用于删除目录
-f 这个选项是强制删除
通配符
通配符就是一些具有特殊含义的符号
*:表示任意个任意字符
?:表示任意一个字符
|: 前后分别写一个命令,通过管道符,可以将前面命令的执行结果传递给后面的命令,让后面的命令在处理一次
· · 反引号 :命令替换 也就是将引号中的命令替换为命令的执行结果
ls
作用:查看当前位置或者是指定位置下,有什么文件
格式:ls [选项] 路径 查看指定的路径下有什么文件
-a 显示所有文件,包括隐藏文件
-l 显示文件的属性信息
-h 以通俗已读的方式显示文件的大小
-d 显示目录本身
-r:逆序显示
-R:递归显示
关于文件类型
Linux中有多种文件类型
目录【d 】 文件夹
一般文件【-】 文档
设备文件【b或者c 】 指的是计算机中的外部设备,例如硬盘、u盘、键盘 、鼠标
链接文件【l】 快捷方式
cat
作用:查看文本文件的内容{可以将多个文件的内容一块显示出来)
格式:cat [选项] 文件名
选项:
-n 显示行号
-E 每行结尾都显示$
more
作用:查看文件的内容 【比较适合查看大文件】
格式:more 文件名
more 的操作
敲回车:显示下一行 f: 显示下一屏 敲空格; 显示下一屏
b :显示上一屏 q:退出查看
less
作用:查看文件的内容【比较适合查看大文件】
格式:less 文件名
less的操作
敲回车:显示下一行 f:显示下一屏 敲空格: 显示下一屏
b:显示上一屏 q:退出查看
head
作用:查看文件的内容【默认是查看文件的前10行】
格式:head -n数字 文件名
tail
作用:查看文件的内容【默认是看文件的最后10行】
格式:tail -n数字 文件名
选项: -f 动态监控文件内容变化,常用于监控日志文件变化
wc
作用:统计文件中有多少行,单词、字符
格式:wc [选项] 文件
选项:
-w 统计单词数
-c 统计字符
-l 统计行
vi
作用:创建或者是编辑一个文本文件
格式:vi 文件名 vi 路径/文件名
1) 如果这个文件是存在的,而且是文本文件,那么vi就会直接打开这个文件
2)如果这个文件是存在的,而且是目录文件,那么vi也可以打开这个文件,但是我无法正常的保存
3)这个文件不存在,vi会自动创建一个新的空文件
vi 是一个格式化的工具
格式1:查看模式
功能:1、查看文件的内容 2、在文件总,搜索指定的内容 3、复制行或者是删除行
表现; 进入到输入模式的时候,在屏幕最下角没有任何内容
格式2:输入模式
功能:可以在文件中写入或者修改操作
表现:进入到输入模式的时候,在屏幕的最下角出现INSERT字样
格式3:末行模式
功能:1、主要是用于执行各种的命令 2、显示行号 3、保存、退出 4、行跳转
表现:在屏幕的左下角出现 冒号和一个删除的光标
查看模式—a i o—>输入模式
输入模式 -- ESC -->查看模式
查看模式---shift+ : ----> 查看模式
末行模式 --- ESC ---> 查看模式
vi引用
查看模式下的操作
h 向左移动光标 j向下移动光标 k 向上移动光标 l 向右移动光标
i 在光标前插入内容 a 在光标后插入内容 o 在新的一行插入内容
I 在行首插入内容 A 在行尾插入内容 O 在光标当前行的上一行插入内容
nG :跳转到第n行; dd 删除光标所在的行 【剪切】
yy : 复制光标所在的行 p - 小 将剪切/复制的内容,粘贴到当前所在行的下一行
P - 大 讲剪切/复制的内容,粘贴到当前所在的行的上一行
u:撤销操作
/要搜索的内容:在 /后面输入要搜索的内容,就可以直接开始搜索了
n 继续向下搜索 N 继续向上搜索
输入模式下的操作 :输入模式没有操作
末行模式下的操作:
数字:直接跳转到指定的行的行首
1 就是跳转到第一行 500 就是跳转到500 $ 就是跳转到最后一行
set nu :在每一行的前面,显示一个行号
set nonu: 取消每行前面的行号
nohl: 取消高亮
w:保存 q 退出 ! 强制执行
date
计算级有两个时间
硬件时间:硬件 - 震荡电路 - hwclock
软件时间:是在计算机开机的时候,读取震荡电路的时间-date
date的用法:
date 查看时间
date [MMDDhhmm[[CC]YY][.ss]] 修改时间
date +"%Y*%m*%d"
date +"%m-%d-%Y"
echo
作用:输入一个内容
控制输出结果的显示样式:
必须加上选项 -e
设置控制对象的范围:
开头: \033[xxm,这里xx的值是不同的
31m:设置为红色 32m:设置为绿色 34m:设置为蓝色 5m:设置字体闪烁
结尾:\033[0m
相关选项:-e 控制字符,作用是让后面的特殊字符生效
\t :水平制表符 \v:垂直制表符 \n:换行符
-n :设置输出这行内容后,不换行
1.6 三剑客
三剑客其实就是指处理文本文件的三个命令
grep: 过滤文件中符合指定内容得行
awk:从文件中得每行内容中截取指定得部分/字段
sed:对文件中的内容进行替换
grep 也是一模式化的工具
在grep 的时候,是针对每一行进行一次过滤,判断这行是否有满足条件的内容,如果有就显示这行,否则不显示
格式:grep [选项] “匹配的内容” 目标文件
选项: -v 取反 ,显示不能被匹配到的行
-o:显示匹配的内容
-i :不区分大小写
-E:支持扩展表达式
-n:显示匹配到的行号
sed
sed在处理文本的时候,会将文本加载到内存中,然后对内存中的文件的副本进行处理【也就是文件的原始内容不会被改变】
格式:sed [选项] 操作 目标文件
选项:-i 修改原始文件【如果不加-i ,那就是仅仅修改内容中的文件副本】
-n 静默模式,不会输出源文件的数据
-e :直接在命令行进行sed操作编辑
a:在行后插入 i 在行前插入 c整行更改
d 删除 p:打印输出 s查找替换
查看前3行的内容
sed '1,3p' passwd -n
删除2-4行的内容
sed '2,4d' passwd -n
在文件 的第5-7行后面追加一行内容
sed '5,7a hello' passwd
删除空白行和以#开头的行,并更改源文件中的内容
sed -n -e '/^$/d' -e "/^#/d" passwd -i
awk
截取文件中每行的指定的字段
格式:awk -F “分隔符” ‘{print $数字}’ 文件名
awk 默认使用空格为分隔符
0 :输出整条记录
NF :输入最后一个字段
NR :用来显示行号
查看当前CPU空闲率
top -b -n |grep Cpu | awk -F "," '{print $4}' | awk '{print $1}'
查看当前内存使用百分比
free -m | awk ‘/Mem:/{print int($3/$2*100)"%"}’
截取IP地址
ip addr s ens33 | grep "scope global" | awk -F " " '{print $2}' | awk -F "/" '{print $1}'
1.7 正则表达式
1.1 正则简介
正则,正则表达式
就是一些具有特殊含义的符号 ? 、 * + ^ $ () {}
通配符: 针对文件名进行匹配查找的
正则表示式:针对文件的内容进行匹配查找的
1.2 基本正则
匹配行首:^
匹配行尾:$
匹配单词首部:\<
匹配单词尾部:\>
1.3 匹配范围
[] 表示限定一个范围
[0-9] 表示0-9之间的任意一个数字
[a-z] 表示任意一个小写字母
[A-Z] 表示任意一个大写字母
[0-9a-zA-Z] 表示任意一个数字或字母
[a-zA-Z]表示任意一个字母
[[:space:]] 表示一个空格
[[:digit:]] 表示任意一个数字
[[:lower:]] 表示任意一个小写字母
[[:upper:]] 表示任意一个大写字母
[[:punct :]] 表示任意一个符号
[[:alnum:]] 表示任意一个数字或者字母
[[:digit:][:space:]] 表示一个空格或者任意一个数字
1.4 匹配次数
. 表示匹配任意一个字符,除了换行符
* 表示其前面的字符出现任意次数【可以是0次 ,1次 ,无数次】
\{m,n\} 其前面的数字符最少出现m次,最多出现n次
?表示前面的字符出现0次或者1次【最多一次】
+ 表示前面的字符最少出现一次
常用的组合 .* 可以表示任意个任意字符
1.5 分组
\( 定位分组的位置 \)
\1 引用第一个分组的内容
\2 引用第二个分组的内容
1.5 案例
1、 匹配以字母a或者c或者f开头的行
grep "^[acf]" 文件名
2、匹配数字或者空格或者#开头的行
grep "^[[:digit:][:space:]#]" 文件名
3、匹配范围之外的字符
[^xxxx]
4、匹配不是以1,3,5为开头的行
grep “^[^135]” 文件名
5、过滤文件a.txt中,a前面至少3个b的行
grep "b\{3,\}a" a.txt
6、过滤出文件a.txt中 a前面最多有1个b的行
grep -E "b?a" a.txt
grep “b\{{,1\}a” 4.txt
7、匹配出现两个相同数字的行
grep "\([0-9]\).*\1" 4.txt
8、输出前面一致的行,例如前后都是love或者前后都是like
grep -E “{l..e}.*\2” 5.txt