linux的基本操作
#远程登录linux系统
ssh root@192.168.202.136
#断开连接
exit
#重启系统
reboot 或者 shutdown -r now
#关机指令
shutdown #默认30秒之后才会关机
#立即关机
shutdown -h now
#十分钟之后关机
shutdown -h 10
linux的文件操作
查看当前文件所在目录 pwd
#print work directory
pwd
#打印当前工作目录

查看当前文件夹的所有文件 ls
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
例如:
ls
ls *.txt # 查看.txt的所有文件
ls -1 # 一个文件显示一行(数字1)
ls -a # 查看所有文件,包含隐藏文件(隐藏文件前面加上.)
ls -l # 查看详细列表(字母L)





创建文件 touch
#新建文件
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的文件名称重复了,不会覆盖原文件
例如:
touch 1.txt # 创建一个文件
touch {1..10}.txt # 创建多个文件
touch .ssr.txt # 新建隐藏文件


移动 mv
mv全称move
#移动、也可以进行重命名
例子1:mv 222.txt 123.txt #将222.txt文件重命名为123.txt
例子2:mv 123.txt /opt #将当前目录下的123.txt移动到/opt目录下
例如:
mv 1.txt /opt # 移动1.txt到opt文件夹下
mv 2.txt wwd.txt # 文件重命名 2.txt改名为wwd.txt


删除 rm
#删除,注意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参数
rm -f -r dev02
rm -r -f dev03
rm -fr dev # rm的两个参数可以合并到一起
rm -rf dev01
rm 3.txt
rm -f 4.txt # f: 强制删除
rm -f {5..10}.txt # 强制删除5到10的txt文件



复制 cp
cp全称copy,复制有个特点,就是如果复制到的文件夹中有同名的文件,会帮我们改名字并加上副本两个字,
linux不会帮我们改名字,我们需要自己指定名字,后缀名尽量不要改。
#复制
例子1:cp test01.txt /opt/ #将当前目录下的test01.txt复制到/opt目录下
例子2:cp -a dev04 /opt/ #将目录dev04复制到/opt下,注意,要在dev04的上一级目录来复制它,在它内部是不能复制这个文件夹的
例如:
cp 5.txt wew.txt
cp 5.txt /opt/ww.txt

linux的目录操作
创建文件夹 mkdir
**mkdir 全称make directory **
#创建文件夹 创建目录directory,这里说的目录就是文件夹,默认显示是蓝色的字体,文件显示是白色的字体
例子1:mkdir dev #创建一个dev目录
例子2:mkdir dev{01..10} #批量创建多个目录
例子3:mkdir -p 1/2/3/4/5/6 #一次性创建多级子目录
重命名:mv jaden wulaoban # 将jaden目录改名为wulaoban
mkdir ssr

切换目录 cd
全称change directory
#切换目录
cd #全称change directory
例子1:
cd local #切换到local目录中
cd /usr/local #切换到目录/usr/local
cd .. #切换到上一级目录
cd ../.. # 进入上一级的上一级目录 ,还可以继续../
cd / # 直接切换到根目录
历史指令查询 history
# 历史指令查询
history

目录分隔符
目录分隔符:
windows:C:\Users\ls198\Desktop # 微软故意用\,其他的unix分支系统都是/来分割
linux:/root/jaden/xx
linux只有一个盘符,不像windows,可以设置c盘、d盘...
/是根目录
/root 根目录下面的root目录
/root/jaden
/root/jaden/xx
文件编辑
vi编辑的三种模式
#修改文件内容,先体验一下,后面再专门讲vi的功能
#vi编辑器,和windows的记事本工具类似
例子1: vi test03.txt #编辑文件test03.txt
# vi编辑保存文件,需要三种模式切换
常规模式:默认是常规模式,在常规模式中可以使用各种快捷键,帮我们快速编辑文件,比如dd,就是删除当前一行数据
编辑模式:切换英文输入法,然后按ioa三个键中的任意一个键都可以进入编辑模式,这样才能向文件中写内容,写完内容之后,先回到常规模式,在编辑模式中按esc回到常规模式
命令模式:在常规模式时按:(英文的冒号)进入命令模式,命令模式按esc回到常规模式,命令模式下输入q然后回车表示退出文件,wq保存并退出,q!表示强制退出不保存
查看文件 cat & tac & head & tail
vi可以查看文件内容,但是每次都要vi进去,看完再退出来,比较麻烦,如果只是查看文件内容,如下指令即可
#从上往下顺序查看文本内容
cat
例子1:cat test03.txt #查看test03.txt的全部内容
#从下往上倒着查看文本内容
tac
例子1:tac test03.txt #倒着查看test03.txt的全部内容
#查看文件头几行
head
例子1: head test03.txt #查看文件的前十行,默认
例子2: head -n 5 test03.txt #查看文件的前5行
例子3: head -5 test03.txt #查看文件的前5行
#查看文件倒数几行
tail
例子1: tail test03.txt #查看文件的倒数十行,默认
例子2: tail -n 5 test03.txt #查看文件的倒数5行
例子3: tail -5 test03.txt #查看文件的倒数5行
管道符 |
管道符号: | ,可以将前面指令的执行结果,作为后面指令的操作内容。
比如我们通过管道来过滤出ip地址:
文件
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
group default qlen 1000
link/ether 00:0c:29:83:e4:d9 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.128/24 brd 10.0.0.255 scope global noprefixroute dynamic ens33
valid_lft 1253sec preferred_lft 1253sec
inet6 fe80::ffe1:31ed:56dc:d9aa/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]# ip addr|tail -4
inet 10.0.0.128/24 brd 10.0.0.255 scope global noprefixroute dynamic ens33
valid_lft 1224sec preferred_lft 1224sec
inet6 fe80::ffe1:31ed:56dc:d9aa/64 scope link noprefixroute
valid_lft forever preferred_lft forever
举例:
[root@localhost ~]# ip addr|tail -4|head -1
结果: inet 10.0.0.128/24 brd 10.0.0.255 scope global noprefixroute dynamic ens33
[root@localhost ~]# ip addr|tail -4|head -1|cut -c 10-19
# cut -c 10-19表示从第10个字符显示到第19个字符,这个指令可以忽略,大致了解一下即可,因为字符长度不固定,切的时候有可能切不准确
结果: 10.0.0.128
文件内容过滤
统计 wc
#统计,比如统计文件有多少个字节、多少行等等
wc #全称Word Count,计数
wc -l按行统计,不会单独使用,需要接在管道后面
例子1:
[root@localhost ~]# cat jaden.txt |wc -l
结果:18 # 共18行
[root@localhost ~]# cat -n jaden.txt # 显示内容的同时,显示行号

wc -c jaden.txt # 统计文件中有多少个字节
# 统计指令执行结果有多少行
例子:ip addr|wc -l
# 统计bin目录下有多少个命令文件
例子:ls /bin|wc -l
生成数字序列 seq
生成数字序列
seq # 全称:sequence,序列的意思
例子1:产生一个5到12的序列
[root@localhost ~]# seq 5 12

例子2:产生一个5到12等宽的序列
[root@localhost ~]# seq -w 5 110


grep
过滤字符串 grep
#按行过滤字符串,默认是模糊匹配,只要单词中含有某些内容就过滤出单词所在的每行数据
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来过滤
ip addr|grep 'inet'
ip addr|grep -w 'inet' --精准匹配

按列过滤 awk
#按列过滤
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
排序 sort
#排序
sort # 默认排序,先数字后字母
# sort -n # 先字母(先小写字母后大写字母)后数字的排序方式,sort -n -r 反向排序
例子1:
[root@localhost ~]# cat test02.txt
3
2
6
4
8
7
5
3
2
1
2
3
4
5
6
9
1
5
7
[root@localhost ~]# cat test02.txt|sort -n
1
1
2
2
2
3
3
3
4
4
5
5
5
6
6
7
7
8
9
统计去重 uniq
#统计去重
uniq #全称:unique,唯一、去重的意思,但是它是将连续的去重,不会间隔去重,所以最好先排序再去重
例子1:
[root@localhost ~]# cat test02.txt|sort -n
1
1
2
2
2
3
3
3
4
4
5
5
5
6
6
7
7
8
9
[root@localhost ~]# cat test02.txt|sort -n|uniq
[root@localhost ~]# cat test02.txt|sort -n|uniq -c # -c显示重复次数
2 1
3 2
3 3
2 4
3 5
2 6
2 7
1 8
1 9
浙公网安备 33010602011771号