一.前言
我们本章开始讲解linux,我们对于linux得有重要的认识,比如项目部署等等,都会用到linux,今天我们就开始linux的学习,我们需要准备的工具有vmware和xshell,而这里我就不教大家虚拟机的安装以及xshell的配置了,而是直接讲解重要的内容,大家可能会有个疑问就是为什么要用到xshell,直接在虚拟机里面执行命令不行吗,这是因为如果在虚拟机写命令,将不能复制粘贴,所以我们选择xshell连接虚拟机,这里先介绍第一个命令 ip addr,这个就是linux中找到ip地址的命令,我们配置xshell肯定是需要的,大家配置好xshell和虚拟机之后就可以开始今天的学习了,而今天的学习主要就是学习一些常见的linux命令。
二.简单指令
ip addr 查看网络信息
ssh root@192.168.202.136 window远程登录linux地址
exit 断开连接
logout 退出账号
shut down 关机默认三十秒后 == shut down -h 30
shut down -h now 现在关机 ==reboot
三.基础文件操作
3.1 新建文件
touch
例子1: touch 1.txt #创建单个文件
例子2: touch test{1..10}.txt #批量创建文件touch test{a..f}.txt
例子3: touch /root/4.txt #在指定的/root目录下,创建文件4.txt
# 如果touch的文件名称重复了,不会覆盖原文件
3.2 查看目录下的文件
ls全称list
ls:显示当前目录下的内容
例子1:ls test09.txt #查看test09.txt是否存在,有会显示文件名称,没有会报错
例子2:ls *.txt #查看以txt结尾的所有文件,类似于windows下的*.后缀名搜索
例子3:ls -1 #以一行一个文件的方式显示,注意这是-1,是数字1,不是l昂
例子4:ls -a al #查看所有文件,包括隐藏文件,touch .文件名,.开头的就是隐藏文件
例子5:ls -a -1 #查看所有文件,以一行一个来显示
例子6:ls -l #类似于windows的详细列表,这个-l不是数字1
以.开头的文件是隐藏文件,默认不显示
3.3 移动、也可以进行重命名
mv全称move
例子1:mv 222.txt 123.txt #将222.txt文件重命名为123.txt
例子2:mv 123.txt /opt #将当前目录下的123.txt移动到/opt目录下
3.4 复制
cp全称copy,复制有个特点,就是如果复制到的文件夹中有同名的文件,会帮我们改名字并加上副本两个字, linux不会帮我们改名字,我们需要自己指定名字,后缀名尽量不要改。
例子1:cp test01.txt /opt/ #将当前目录下的test01.txt复制到/opt目录下
例子2:cp -a dev04 /opt/ #将目录dev04复制到/opt下,注意,要在dev04的上一级目录来复制 它,在它内部是不能复制这个文件夹的
3.5 删除
注意Linux和windows不同,没有回收站,删了就是删了
例子1: rm /opt/123.txt #将/opt目录下的123.txt文件删除,需要回复y确认删除
例子2: rm -f /opt/test01.txt #将/opt目录下的test01.txt文件删除,不需要回复,强制删除,很 多指令都有自己的参数,而且有好多,-f就是强制的意思。
例子3: rm 文件1 文件2 文件3 #删除多个文件
#删除一个目录,linux的参数大部分没有先后顺序
#直接删除文件夹,比如 rm dev,这是不行的,会报错,需要带上r参数
[root@localhost ~]# rm -f -r dev02
[root@localhost ~]# rm -r -f dev03
[root@localhost ~]# rm -fr dev # rm的两个参数可以合并到一起
[root@localhost ~]# rm -rf dev01
3.6 创建文件夹
创建目录directory,这里说的目录就是文件夹,默认显示是蓝色的字体,文件显示是白色的字体
mkdir 全称make directory
例子1:mkdir dev #创建一个dev目录
例子2:mkdir dev{01..10} #批量创建多个目录
例子3:mkdir -p 1/2/3/4/5/6 #一次性创建多级子目录
重命名:mv jaden wulaoban # 将jaden目录改名为wulaoban
3.7 切换目录
cd #全称change directory
例子1:
cd local #切换到local目录中
cd /usr/local #切换到目录/usr/local
cd .. #切换到上一级目录
cd ../.. # 进入上一级的上一级目录 ,还可以继续../
cd / # 直接切换到根目录
3.8 打印当前目录
print work directory
pwd #打印当前工作目录
3.9 历史指令查询
history
3.10 修改文件内容
后面再专门讲vi的功能
#vi编辑器,和windows的记事本工具类似
例子1: vi test03.txt #编辑文件test03.txt
# vi编辑保存文件,需要三种模式切换
常规模式:默认是常规模式,在常规模式中可以使用各种快捷键,帮我们快速编辑文件,比如dd,就是删除当 前一行数据
编辑模式:切换英文输入法,然后按ioa三个键中的任意一个键都可以进入编辑模式,这样才能向文件中写内 容,写完内容之后,先回到常规模式,在编辑模式中按esc回到常规模式
命令模式:在常规模式时按:(英文的冒号)进入命令模式,命令模式按esc回到常规模式,命令模式下输入q然 后回车表示退出文件,wq保存并退出,q!表示强制退出不保存
vi可以查看文件内容,但是每次都要vi进去,看完再退出来,比较麻烦,如果只是查看文件内容,如下指令即可
3.11 查看文件内容
从上往下顺序查看文本内容
cat
例子1:cat test03.txt #查看test03.txt的全部内容
从下往上倒着查看文本内容
tac
例子1:tac test03.txt #倒着查看test03.txt的全部内容
3.12 查看文件头几行
head
例子1: head test03.txt #查看文件的前十行,默认
例子2: head -n 5 test03.txt #查看文件的前5行
例子3: head -5 test03.txt #查看文件的前5行
3.13 查看文件倒数几行
tail
例子1: tail test03.txt #查看文件的倒数十行,默认
例子2: tail -n 5 test03.txt #查看文件的倒数5行
例子3: tail -5 test03.txt #查看文件的倒数5行
四.管道
管道符号:|,可以将前面指令的执行结果,作为后面指令的操作内容。 比如我们通过管道来过滤出ip地址:
ip addr
ip addr|tail -4 #查看最后四行
ip addr|tail -4|head -1 #查看最后四行中的第一行
ip addr|tail -4|head -1|cut -c 10-19 #cut -c 10-19表示从第10 个字符显示到第19个字符,这个指令可以忽略,大致了解一下即可,因为字符长度不固定,切的时候有可能切 不准确
五.文件内容过滤
5.1 统计
比如统计文件有多少个字节、多少行等等
wc #全称Word Count,计数
wc -l按行统计,不会单独使用,需要接在管道后面
cat jaden.txt |wc -l #计算这个文件的行数
cat -n jaden.txt # 显示内容的同时,显示行号
wc -c jaden.txt # 统计文件中有多少个字节
# 统计指令执行结果有多少行
例子:ip addr|wc -l
# 统计bin目录下有多少个命令文件
例子:ls /bin|wc -l
5.2 生成数字序列
seq # 全称:sequence,序列的意思
例子1:产生一个5到12的序列
seq 5 12
例子2:产生一个5到12等宽的序列
seq -w 5 12
5.3 按行过滤字符串
默认是模糊匹配,只要单词中含有某些内容就过滤出单词所在的每行数据
grep
例子1: #普通过滤,将含有3这个字符的行过滤出来
[root@localhost ~]# grep '333' jaden.txt
33333
33334
33333
53333 例子2: #显示行号
[root@localhost ~]# grep -n '333' jaden.txt
8:33333
10:33333
12:33333
14:33333
grep精准匹配-w 示例:通过管道符和grep来过滤
5.4 按列过滤
awk #awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的 首个字母。
例子1: 取列,$1代表第一列,$2代表第二列,$NF代表最后一列,列是由空格分开的 [root@localhost ~]# cat jaden.txt
row 1, cell 1 row 1, cell 2
row 2, cell 1 row 2, cell 2
[root@localhost ~]# awk '{print $1}' jaden.txt # 注意,必须是单引号
row
row
[root@localhost ~]# awk '{print $2}' jaden.txt
1,
2,
例子2:以逗号,做分隔符
[root@localhost ~]# cat jaden.txt
row 1, cell 1 row 1, cell 2
row 2, cell 1 row 2, cell 2
[root@localhost ~]# awk -F ',' '{print $1}' jaden.txt
row 1
row 2
[root@localhost ~]# awk -F ',' '{print $NF}' jaden.txt
cell 2
cell 2
5.5 排序
#排序
sor
t # 默认排序,先数字后字母 # sort -n # 先字母(先小写字母后大写字母)后数字的排序方式,sort -n -r 反向排序
例子1: [root@localhost ~]# cat test02.txt
[root@localhost ~]# cat test02.txt|sort -n
5.6 统计去重
#统计去重
uniq #全称:unique,唯一、去重的意思,但是它是将连续的去重,不会间隔去重,所以最好先排序再去重
例子1: [root@localhost ~]# cat test02.txt|sort -n
[root@localhost ~]# cat test02.txt|sort -n|uniq
[root@localhost ~]# cat test02.txt|sort -n|uniq -c # -c显示重复次数