Linux---vi编辑器以及部分常见命令

文章详细介绍了Linux系统中vi编辑器的使用,包括如何进入插入模式、保存与退出文件,以及vi的其他功能。此外,还讨论了Linux的常用命令,如查看文件内容的cat、more、less和head,查找命令find和grep,以及磁盘空间检查的df和du命令。内容涵盖了Linux系统管理和日常操作的基础知识。

vi编辑器

vim/vi是Unix / Linux上最常⽤的⽂本编辑器⽽且功能⾮常强⼤

1、插入命令

[root@bigdata ~]# touch a.txt   -- 创建一个空的a.txt
[root@bigdata ~]# vi a.txt    --使用vi编辑器编辑a.txt
输入 i 直接进入insert 模式!!!

在insert 模式下,可以进行文本文件的编写,编写完毕后,点击 Esc,退出insert 模式
保存操作:shift + :   输入 wq  保存退出。

剩余其他的可以进入insert 模式的命令还有如下:

剩余其他的可以进入insert 模式的命令还有如下:

2、定位命令

3、保存并退出

提醒: :q! 和 :wq! 是最重要的命令。

4、编辑工具的使用

比如市面上常见的编辑工具有:notepad++,EditPlus,VS Code 等。

因为在工作过程中,经常修改一些服务器上的配置文件,如果使用vi编辑器的话,效率比较低,可以使用windows上的图形化的编辑器远程连接Linux服务器,从而更好的编辑Linux中的文档。

将notepad++解压到一个专门的文件夹下,比如D:/tools 文件夹.

notepad++ 是绿色版的。绿色版:一个软件解压就可以使用的,就称之为绿色版。

Linux常见命令

1、查看命令

有四个命令都是查看命令:cat \ more \ less\ tail \ head

cat

显⽰⽂件内容,直接显⽰全部内容
缺点是:如果文件太长了,一下子看不完它也展示全部,一般cat命令用于查看内容不是特别多的文件。
[root@bigdata home]# cat a.txt
你好 呀
hello
编辑器编辑
--  添加 -n 选项可以查看的时候显示行号
[root@bigdata home]# cat -n a.txt
     1  你好 呀
     2  hello
     3  编辑器编辑

cat -n /etc/services  查看大的文件,不合适
more
作⽤:分⻚显⽰⽂件内容
 语法:more [⽂件名]
 空格或f 显⽰下⼀⻚
 enter键 显⽰下⼀⾏
 q或Q 退出

小技巧:如果一个文件的名字比较长,可以书写一部分,摁住tab键,可以自动补全。
误区:  service  servvvvv
more /etc/ser  摁住tab键是无法补全的,因为无法锁定到唯一的一个文件名

[root@bigdata home]# less /etc/services 
[root@bigdata home]# more /etc/services
两者之间的区别:
more 带有进度条
less 没有进度条,但是可以直接跳转到某一行
都是可以分页的,摁住q键退出
head
作⽤:查看⽂件前⼏⾏(默认10⾏)
 语法:head [⽂件名]
 -n 指定⾏数
 eg:[root@qianfeng01 ~]#
默认显示前10行,也可以指定显示多少行  -20 和  -n 20 作用是一样的
 head -20 /etc/services
 head –n 20 /etc/services
tail
查看⽂件的后⼏⾏
默认显示后10行数据
tail /etc/services
也可以指定行数
tail -5 /etc/services
杀手锏:
tail -f 可以滚动查看某个文件,这个文件一般是不断变化的。一般用于查看服务器的日志。
比如:tomcat服务器启动的时候,如果你想知道服务器启动过程中是否有异常。

2、查找命令

1) find 在磁盘上查找文件的

查找⽂件或⽬录
-name : 按照名字查找  使用最多的
说明: 按名字查找,精准查找
[root@bigdata ~]# find /etc -name "init"
/etc/sysconfig/init
/etc/selinux/targeted/active/modules/100/init

以上是精确查找,也可以模糊查找
find查找字符匹配:
 *: 匹配所有
 ?: 匹配单个字符
[root@bigdata ~]# find /etc -name "init???"
/etc/inittab
[root@bigdata ~]# find /etc -name "init*"
/etc/inittab
/etc/sysconfig/network-scripts/init.ipv6-global
/etc/sysconfig/init
/etc/selinux/targeted/contexts/initrc_context
/etc/selinux/targeted/active/modules/100/init
/etc/init.d
/etc/rc.d/init.d
-- 在当前路径下,查找以g结尾的文件
[root@bigdata ~]# find -name "*g"
./.pydistutils.cfg


-size : 按照⼤⼩查找
 以block为单位,⼀个block是512B, 1K=2block  +⼤于 -⼩于 不写是等于
B = byte   1Kb = 1024 Byte  1M = 1024KB
-- 查找/etc 小于100M的文件
find /etc -size -204800   
204800 block = 102400KB = 100M


-type : 按照类型查找
 f ⼆进制⽂件 l 软连接⽂件 d ⽬录 c 字符⽂件
 f 二进制文件  可以运行的脚本
 l 软连接 就是 快捷键
 d  目录其实就是文件夹
 c   不是普通的文件
find /dev -type c

2) grep 查找文件中的内容的(重要的)

grep、sed、awk 是 shell脚本的三剑客

grep
作⽤:在⽂件中搜寻字符串匹配的⾏并输出
 语法:grep [-cinv] '搜寻字符串' filename
 选项与参数:
 -c :输出匹配⾏的次数(是以⾏为单位,不是以出现次数为单位)
 -i :忽略⼤⼩写,所以⼤⼩写视为相同
 -n :显⽰匹配⾏及⾏号
 -v :反向选择,显⽰不包含匹配⽂本的所有⾏。

举例:
-- 查找/etc/services 文件中,包含 ftp 这个字符串的所有的匹配结果
[root@bigdata dev]# grep ftp /etc/services 
ftp-data        20/tcp
ftp-data        20/udp
# 21 is registered to ftp, but also used by fsp
ftp             21/tcp
ftp             21/udp          fsp fspd
tftp            69/tcp
tftp            69/udp
sftp            115/tcp
sftp            115/udp
tftp-mcast      1758/tcp
tftp-mcast      1758/udp
.....

-- 查找结果,并显示结果和所在的行号
[root@bigdata dev]# grep -n ftp /etc/services 
41:ftp-data        20/tcp
42:ftp-data        20/udp

-- 反向查找字符  查找 /etc/inittab 文件中,不含有# 的数据   
^表示一个正则表达式的开始符号
[root@bigdata dev]# grep -v ^# /etc/inittab

[root@bigdata dev]# grep -c "init" /etc/inittab
1

总结:哪些最有用?  就是查找关键字。
以下内容最为重要: grep 经常和 管道符一起使用 | 
[root@bigdata ~]# ls
!  aaa  abc  a.txt  laoyan.txt
[root@bigdata ~]# ls | grep abc
abc

解释:ls 可以输出一些结果,grep 从上一个结果中查找某个字符串
| 管道符的左边是输出,管道符的右边是输入  左边的输出就是右边的输入
一般用于查找某个进行是否启动,比如:
ps -ef | grep ksmd
ps -ef | grep java
查找到了,就说明启动了,查找不到就说明没有启动,如果启动了有可能想直接杀死该进程。

3)which

显⽰系统命令所在⽬录

[root@bigdata ~]# which ls
alias ls='ls --color=auto'
        /usr/bin/ls

[root@bigdata ~]# which laoyan
/usr/bin/which: no laoyan in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
补充:一个命令,是否存在,系统是从如下几个文件夹中查找的
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin
在linux中,分隔符是: ,在windows中,分隔符是;

4)whereis

作⽤:搜索命令所在⽬录 配置⽂件所在⽬录 及帮助⽂档路径
whereis  passwd
which passwd
两者之间没啥区别

作⽤:搜索命令所在⽬录 配置⽂件所在⽬录 及帮助⽂档路径

whereis passwd

which passwd

两者之间没啥区别

3、磁盘的操作命令

1) df --查看磁盘空间的

-- 查看磁盘空间使用情况
-- -h 是以易读的方式展示
[root@bigdata bin]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/vda1        40G  2.0G   36G    6% /
devtmpfs        3.9G     0  3.9G    0% /dev
tmpfs           3.9G     0  3.9G    0% /dev/shm
tmpfs           3.9G  440K  3.9G    1% /run
tmpfs           3.9G     0  3.9G    0% /sys/fs/cgroup
tmpfs           783M     0  783M    0% /run/user/0

2) du --查看文件以及文件夹大小的

⽤于查看⽂件或⽬录的⼤⼩(磁盘使⽤空间)
[root@bigdata bin]# du -h /home
4.0K    /home/aaa/bbb/ccc
8.0K    /home/aaa/bbb
12K     /home/aaa
20K     /home

du 后面跟上 要查看的文件夹的名称,会将该文件夹下所有的空间全部展开,计算一遍。
df  查看整个磁盘上的使用情况的。

-- 也可以查看某个具体的文件的大小
[root@bigdata home]# du -h a.txt 
4.0K    a.txt

3) free

free 查看内存使用情况
[root@bigdata home]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        162M        7.0G        440K        446M        7.2G
Swap:            0B          0B          0B

4、压缩与解压(重点)

1)gzip

作⽤:压缩(解压)⽂件,压缩⽂件后缀为.gz
gzip 只能压缩⽂件,不能压缩⽬录;不保留原⽂件
语法:gzip ⽂件
-d 将压缩⽂件解压(decompress)
解压使⽤gzip –d或者 gunzip

-- 压缩a.txt ,压缩后原文件消失
[root@bigdata home]# gzip a.txt
[root@bigdata home]# ls
aaa  a.txt.gz  b.txt
-- 压缩文件夹,异常,因为不允许
[root@bigdata home]# gzip aaa
gzip: aaa is a directory -- ignored
-- 解压gzip 压缩包,解压后压缩包消失
[root@bigdata home]# gzip -d a.txt.gz 
[root@bigdata home]# ls
aaa  a.txt  b.txt

-- gunzip 也可以解压
[root@bigdata home]# gunzip a.txt.gz

2)bzip2

bzip2 这个软件默认没有安装,需要先安装一下
yum install -y bzip2
-- 压缩 a.txt 
[root@bigdata home]# bzip2 a.txt
-- 压缩后的软件后缀名是bz2,原文件消失
[root@bigdata home]# ls
aaa  a.txt.bz2  b.txt
-- 解压操作
[root@bigdata home]# bzip2 -d a.txt.bz2 
[root@bigdata home]# ls
aaa  a.txt  b.txt

3)zip

先安装这两个命令 zip unzip
yum install -y zip
yum install -y unzip

语法:
作⽤: 压缩(解压)⽂件,压缩⽂件后缀为.zip,保留源⽂件
语法: zip 选项 [压缩后⽂件名称] [⽂件或⽬录]
-r 压缩⽬录

操作:
-- 将/etc/services 文件压缩为 aaa.zip文件
注意:zip命令必须指定压缩文件的名字
[root@bigdata home]# zip aaa.zip /etc/services 
  adding: etc/services (deflated 80%)
[root@bigdata home]# ls
aaa  aaa.zip  a.txt  b.txt

-- 解压aaa.zip 如果没有指定路径,默认解压到当前路径下
[root@bigdata home]# unzip aaa.zip 
Archive:  aaa.zip
  inflating: etc/services            
[root@bigdata home]# ls
aaa  aaa.zip  a.txt  b.txt  etc
-- 如果想解压到指定的目录下,需要添加 -d 参数
[root@bigdata home]# unzip aaa.zip -d /root
Archive:  aaa.zip
  inflating: /root/etc/services      
[root@bigdata home]# ls /root
!  aaa  abc  a.txt  etc  laoyan.txt
-- 解压后压缩包不会消失的
[root@bigdata home]# ls
aaa  aaa.zip  a.txt  b.txt  etc
-r 压缩⽬录
[root@bigdata home]# zip -r abc.zip aaa
  adding: aaa/ (stored 0%)
  adding: aaa/bbb/ (stored 0%)
  adding: aaa/bbb/ccc/ (stored 0%)
[root@bigdata home]# ls
aaa  aaa.zip  abc.zip  a.txt  b.txt  etc

4) tar (重要)

压缩与解压命令
语法:tar [-zcf] 压缩后⽂件名 ⽂件或⽬录
-c 建⽴⼀个压缩⽂件的参数指令(create),后缀是.tar
-x 解开⼀个压缩⽂件的参数指令(extract)
-z 以gzip命令压缩/解压缩(底层经常使用这个软件的命令)
-j 以bzip2命令压缩/解压缩
-v 压缩的过程中显⽰⽂件(verbose)  view的意思
-f file 指定⽂件名,必选项

组合就是:
tar -zcvf  是压缩一个文件的
tar -zxvf  是解压一个文件的
其中的v 就是显示进度条的,如果不想要可以不写。

-- 压缩a.txt b.txt 文件到 laoyan.tar.gz 中
为什么是tar.gz 原因是两个软件同时起作用造成的 tar 和  gzip
[root@bigdata home]# tar -zcvf laoyan.tar.gz a.txt b.txt
a.txt
b.txt
[root@bigdata home]# ls
aaa  aaa.zip  abc.zip  a.txt  b.txt  etc  laoyan.tar.gz
-- 删除掉一些文件,是想证明解压成功了
[root@bigdata home]# rm -rf a.txt b.txt
[root@bigdata home]# ls
aaa  aaa.zip  abc.zip  etc  laoyan.tar.gz
-- 在当前路径下解压文件
[root@bigdata home]# tar -zxvf laoyan.tar.gz 
a.txt
b.txt
[root@bigdata home]# ls
aaa  aaa.zip  abc.zip  a.txt  b.txt  etc  laoyan.tar.gz
-- 将文件解压到指定文件夹下,使用 -C
[root@bigdata home]# tar -zxvf laoyan.tar.gz -C /home
a.txt
b.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值