笔记20251015
相对路径绝对路径,pwd,cd,ls,mkdir,cp,mv,rm,tree,touch,echo,cat,less,head,tail,grep,vim编辑器
LInux目录管理命令
Linux目录结构介绍
Linux没有windows盘符的概念,Linux目录的顶点是/,称之为根,所有的目录都 在/下面。
Linux相对路径和绝对路径
在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置,例如,在《Linux文件系统的层次结构》中提到的 /home/cat 就表示的是 cat 文件所存放的位置。只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。
指明一个文件存放的位置,有 2 种方法,分别是使用绝对路径和相对路径。
Linux 系统中所有的文件(目录)都被组织成以根目录“/”开始的倒置的树状结构,如图所示。

绝对路径
绝对路径一定是由根目录 / 开始写起
例如,使用绝对路径的表示方式指明 bin 文件所在的位置,该路径应写为 /usr/bin。
[root@1y ~]# bin
bash: bin: command not found <-- 没有找到
[root@1y ~]# /usr/bin
bash: /usr/bin: is a directory <-- 是一个文件
可以看到,如果仅传递给 Linux 系统一个文件名,它无法找到指定文件;而当将 bin 文件的绝对路径传递 Linux 系统时,它就可以成功找到。
相对路径
和绝对路径不同,相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起。使用相对路径表明某文件的存储位置时,经常会用到当前目录(用 . 表示)和父目录(用 .. 表示)。
举个例子,当我们使用 root 身份登录 Linux 系统时,当前工作目录默认为 /root,如果此时需要将当前工作目录调整到 root 的子目录 Desktop 中,当然可以使用绝对路径,示例代码如下:
#绝对命令
[root@localhost ~]# pwd <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd /root/Desktop
[root@localhost Desktop]# pwd
/root/Desktop
可以看到,通过使用绝对路径,我们成功地改变了当前工作路径。但除此之外,使用相对路径的方式会更简单。因为目前处于 /root 的位置,而 Desktop 就位于当前目录下,所以:
[root@1y ~]# pwd <-- 显示当前所在的工作路径
/root
[root@1y ~]# cd ./Desktop
[root@1y Desktop]# pwd
/root/Desktop
此代码中,./Desktop 表示的就是 Destop 文件相对于 /root 所在的路径。
再举一个例子,如果以 root 身份登录 Linux 系统,并实现将当前工作目录由 /root 转换为 /usr 目录,有以下 2 种方式:
#使用绝对路径
[root@1y ~]# pwd <-- 显示当前所在的工作路径
/root
[root@1y ~]# cd /usr
[root@1y ~]# pwd
/usr
#使用相对路径
[root@1y ~]# pwd <-- 显示当前所在的工作路径
/root
[root@1y ~]# cd ../usr <-- 相对 root,usr 位于其父目录 /,因此这里要用到 ..
[root@1y ~]# pwd
/usr
总之,绝对路径是相对于根路径 / 的,只要文件不移动位置,那么它的绝对路径是恒定不变的;而相对路径是相对于当前所在目录而言的,随着程序的执行,当前所在目录可能会改变,因此文件的相对路径不是固定不变的。
Linux命令语法
命令 [选项1] [选项2] [选项n] [路径/文件]
针 [老护士|小护士] [胳膊|屁股] 人
说明:
#中括号里是可选 #所有元素之间必须要有一个空格,可以多个。
LInux基础命令
查看当前路径pwd(print working directroy)
pwd(英文全拼:print work directory) 命令用于显示当前用户所在的工作目录的完整路径。
[root@1y ~]# pwd
/root
切换路径cd(change directory)
cd(英文全拼:change directory)命令用于改变当前工作目录的命令,切换到指定的路径。
若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。
另外,~ 也表示为 home 目录 的意思,
. 则是表示目前所在的目录,
.. 则表示目前目录位置的上一层目录。
特殊符号:
~ 用户的家目录
管理员root来说~代表/root
普通用户下 ~表示/home/用户名
. 表示当前目录
.. 表示上一级目录
语法
cd [相对路径或绝对路径]
换到绝对路径:指定完整的目录路径来切换到目标目录。
cd /path/to/directory
切换到相对路径:指定相对于当前目录的路径来切换到目标目录。
cd relative/path/to/directory
实例
切换到 /usr/bin/ 目录:
cd /usr/bin
切换到上级目录:使用 .. 表示上级目录,可以通过连续多次使用 .. 来切换到更高级的目录。
cd ..
cd ../../ // 切换到上上级目录
切换到用户主目录(home):使用 ~ 表示当前用户的主目录,可以使用 cd 命令直接切换到主目录。
cd ~
切换到上次访问的目录:使用 cd - 可以切换到上次访问的目录。
cd -
切换到环境变量指定的目录:可以使用环境变量来指定目标目录,并使用 cd 命令切换到该目录。
cd $VAR_NAME
查看目录下内容ls(list)
ls(英文全拼: list directory contents)命令用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。
语法
ls [-alrtAFR] [name...]
| 参数 | 说明 |
|---|---|
-a 或 --all |
显示所有文件(包括以 . 开头的隐藏文件)。 |
-A 或 --almost-all |
显示除 . 和 .. 外的所有文件(包括隐藏文件)。 |
-l |
以长格式(详细信息)列出文件(权限、所有者、大小、修改时间等)。 |
-h 或 --human-readable |
与 -l 一起使用时,以人类可读的格式显示文件大小(如 KB、MB)。 |
-t |
按修改时间排序(最新优先)。 |
-r 或 --reverse |
反向排序(配合 -t、-S 等使用)。 |
-S |
按文件大小排序(大文件优先)。 |
-R 或 --recursive |
递归列出子目录内容。 |
-F 或 --classify |
在文件名后附加标识符(如 / 表示目录,* 表示可执行文件)。 |
--color |
彩色输出(通常默认启用,--color=auto)。 |
-i 或 --inode |
显示文件的 inode 编号。 |
-n 或 --numeric-uid-gid |
以数字形式显示 UID 和 GID(替代用户名和组名)。 |
-d 或 --directory |
仅显示目录本身,而非其内容(常用于配合 -l)。 |
-1 |
每行只显示一个文件(默认在终端宽度不足时自动启用)。 |
-m |
以逗号分隔的列表形式显示文件。 |
-Q 或 --quote-name |
用引号括住文件名(适用于含空格的文件名)。 |
--group-directories-first |
先显示目录,后显示文件。 |
--time-style=<格式> |
自定义时间显示格式(如 +%Y-%m-%d)。 |
实例
ls -l # 以长格式显示当前目录中的文件和目录
ls -a # 显示当前目录中的所有文件和目录,包括隐藏文件
ls -lh # 以人类可读的方式显示当前目录中的文件和目录大小
ls -t # 按照修改时间排序显示当前目录中的文件和目录
ls -R # 递归显示当前目录中的所有文件和子目录
ls -l /etc/passwd # 显示/etc/passwd文件的详细信息
创建目录mkdir
创建目录mkdir(make directory)
mkdir 目录名
// 创建一名为 test 的新目录
mkdir test

-p
直接将所需要的目录(包含上一级目录)递归创建起来
加了 -p 的选项,可以自行创建多层目录

复制目录/文件cp
cp 即拷贝文件和目录
cp [选项] 源目录 新的路径
选项和参数
-i |
交互模式,覆盖前提示用户确认。 |
-f |
强制复制,覆盖目标文件而不提示。 |
-r 或 -R |
递归复制目录及其内容(用于复制目录)。 |
-v |
显示详细的复制过程(verbose)。 |
-p |
保留文件的原始属性(如权限、时间戳等)。 |
| -d | 如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接; |
-a |
归档模式,等同于 -dpr,保留所有文件属性和递归复制目录。 |
-u |
仅当源文件比目标文件新时才复制(更新模式)。 |
-l |
创建硬链接而不是复制文件。 |
-s |
创建符号链接(软链接)而不是复制文件。 |
cp -r 源目录 新的路径
-r 或 -R |
递归复制目录及其内容(用于复制目录)。 |

cp -a 源目录 新的路径
-a |
归档模式,等同于 -dpr,保留所有文件属性和递归复制目录。 |

将/tmp下的test目录复制到/root下面,并改名为test2

移动文件/目录mv
mv [选项] 被移动的文件 目标目录
将./test1/test2/test3下的test4移动到./test1/test2/
// 将./test1/test2/test3/test4/移动到./test1/test2/
[root@1y ~]#
[root@1y ~]#
[root@1y ~]#
[root@1y ~]#
[root@1y ~]# tree ./test1
./test1
└── test2
└── test3
└── test4
3 directories, 0 files
[root@1y ~]# mv ./test1/test2/test3/test4/ ./test1/test2/
[root@1y ~]# tree ./test1
./test1
└── test2
├── test3
└── test4
3 directories, 0 files
[root@1y ~]#
将./test1/test2下的test3移动到./test1并改名为test234
[root@1y ~]#
[root@1y ~]#
[root@1y ~]# tree ./test1
./test1
└── test2
├── test3
└── test4
3 directories, 0 files
[root@1y ~]# mv ./test1/test2/test3 ./test1/test234
[root@1y ~]#
[root@1y ~]# tree ./test1
./test1
├── test2
│ └── test4
└── test234
3 directories, 0 files
[root@1y ~]#
删除文件/目录rm
rm -rf 路径/目录
-f 强制删除(force),忽略不存在的文件,不会出现警告信息。
-r 递归删除(recursive),目录里的内容。
[root@1y ~]#
[root@1y ~]#
[root@1y ~]#
[root@1y ~]# ll
总用量 4
-rw-------. 1 root root 1370 10月 13 12:22 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 10月 20 15:32 test
drwxr-xr-x. 4 root root 34 10月 20 16:03 test1
drwxr-xr-x. 2 root root 6 10月 20 14:51 test2
[root@1y ~]# rm test
rm: 无法删除"test": 是一个目录
[root@1y ~]# rm -rf test test1
[root@1y ~]# ll
总用量 4
-rw-------. 1 root root 1370 10月 13 12:22 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 10月 20 14:51 test2
[root@1y ~]# rm -rf test2
[root@1y ~]# ll
总用量 4
-rw-------. 1 root root 1370 10月 13 12:22 anaconda-ks.cfg
[root@1y ~]#
删除多个文件
rm -f 文件1 文件2 文件3...
删除大量文件
删除当前目录下以.txt结尾的文件
rm -f *.txt
删除当前目录下以test开头的文件
rm -f test*
删除当前目录下所有文件
rm -f *
!!!跑路必备
rm -rf *
显示目录树tree
默认没有,需要执行yum install tree -y
yum install tree -y
显示根目录下第1层目录结构
tree -L 1 /
[root@1y ~]#
[root@1y ~]#
[root@1y ~]# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
19 directories, 0 files
[root@1y ~]#
Linux文件管理命令
创建文件touch
touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
[root@1y ~]#
[root@1y ~]#
[root@1y ~]# ls
anaconda-ks.cfg
[root@1y ~]# touch test.txt
[root@1y ~]# ls
anaconda-ks.cfg test.txt
[root@1y ~]#
重复创建不会对文件内容产生影 响,只会修改文件的时间戳。
[root@1y ~]#
[root@1y ~]# ls
anaconda-ks.cfg
[root@1y ~]# touch test.txt
[root@1y ~]# ls
anaconda-ks.cfg test.txt
[root@1y ~]# stat test.txt
文件:"test.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:67144911 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2025-10-20 21:26:20.544087884 +0800
最近更改:2025-10-20 21:26:20.544087884 +0800
最近改动:2025-10-20 21:26:20.544087884 +0800
创建时间:-
[root@1y ~]# touch test.txt
[root@1y ~]# stat test.txt
文件:"test.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:67144911 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2025-10-20 21:28:24.486088303 +0800
最近更改:2025-10-20 21:28:24.486088303 +0800
最近改动:2025-10-20 21:28:24.486088303 +0800
创建时间:-
[root@1y ~]#
创建多个文件
[root@1y ~]# ls
1.txt anaconda-ks.cfg
[root@1y ~]# touch 1y{01..5}.txt
[root@1y ~]# ls -l
总用量 8
-rw-r--r--. 1 root root 55 10月 20 22:45 1.txt
-rw-r--r--. 1 root root 0 10月 20 23:00 1y01.txt
-rw-r--r--. 1 root root 0 10月 20 23:00 1y02.txt
-rw-r--r--. 1 root root 0 10月 20 23:00 1y03.txt
-rw-r--r--. 1 root root 0 10月 20 23:00 1y04.txt
-rw-r--r--. 1 root root 0 10月 20 23:00 1y05.txt
-rw-------. 1 root root 1370 10月 13 12:22 anaconda-ks.cfg
[root@1y ~]#
echo
echo 命令是 Linux 中最基本和常用的命令之一,用于在终端中显示文本或变量的值。
使用echo命令输出内容
[root@1y ~]# echo 123
123
[root@1y ~]#
往文件增加内容echo(配合输入重定向>以及追加输入重定向>>完成编辑文件)
输入重定向>
清空已有文件内容,存入echo后面接的内容。
[root@1y ~]#
[root@1y ~]#
[root@1y ~]# cat test.txt
[root@1y ~]#
[root@1y ~]# echo 123 > test.txt
[root@1y ~]# cat test.txt
123
[root@1y ~]# echo 456 > test.txt
[root@1y ~]# cat test.txt
456
[root@1y ~]#
追加输入重定向>>
不清空已有文件内容,每次把新的内容放到文件结尾 (新起行)。
[root@1y ~]#
[root@1y ~]#
[root@1y ~]# cat test.txt
456
[root@1y ~]# echo 789 >> test.txt
[root@1y ~]# cat test.txt
456
789
[root@1y ~]#
清空文件
[root@1y ~]# cat 1.txt
111
123
321
1234567
111
222
333
[root@1y ~]# > 1.txt
[root@1y ~]# cat 1.txt
[root@1y ~]#
使用引号输入多行内容到文件里
[root@1y ~]# cat 1.txt
[root@1y ~]# echo '111
> 222
> 333' > 1.txt
[root@1y ~]# cat 1.txt
111
222
333
[root@1y ~]#
输出其他命令的执行结果
[root@1y ~]# cat 1.txt
111
222
333
[root@1y ~]# date
2025年 10月 20日 星期一 22:45:04 CST
[root@1y ~]# echo $(date) >> 1.txt
[root@1y ~]# cat 1.txt
111
222
333
2025年 10月 20日 星期一 22:45:30 CST
[root@1y ~]#
查看文件内容cat
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上
查看主机名
[root@1y ~]# cat /etc/hostname
1y
查看局域网的域名解析
[root@1y ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
查看DNS设置
[root@1y ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 223.5.5.5
显示行号
[root@1y ~]# cat -n /etc/resolv.conf
1 # Generated by NetworkManager
2 nameserver 223.5.5.5
[root@1y ~]#
通过cat交互式输入内容到文件
按回车输入,输入错误了按ctrl+退格消除,输入完先按回车,再按ctrl+d保存退出。
[root@1y ~]# cat 1.txt
cat: 1.txt: 没有那个文件或目录
[root@1y ~]# cat >>1.txt
321
123
1234567
[root@1y ~]# cat 1.txt
321
123
1234567
[root@1y ~]#
一条命令输入多行内容到文件
输完结尾的EOF之后直接点回车就能保存
[root@1y ~]# cat 1.txt
111
123
321
1234567
[root@1y ~]# cat >>1.txt<<EOF
> 111
> 222
> 333
> EOF
[root@1y ~]# cat 1.txt
111
123
321
1234567
111
222
333
[root@1y ~]#
文件相关命令
浏览文件less
less /etc/services
#1.打开首屏内容
#2.按回车按行访问
#3.按空格按屏访问
#4.从上向下搜索用/111,搜索包含111的内容,此时按n继续向下搜,按N反向搜。
#5.从下向上搜索用?111,搜索包含111的内容,此时按n继续向上搜,按N反向搜。
查看文件头部内容head
默认查看文件的前10行。
[root@1y ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@1y ~]#
查看前两行
[root@1y ~]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@1y ~]#
简单写法
[root@1y ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@1y ~]#
查看文件尾部内容tail
默认查看文件的后10行。
与head基本一致
[root@1y ~]# tail /etc/passwd
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
[root@1y ~]#
[root@1y ~]#
[root@1y ~]# tail -n 2 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
[root@1y ~]#
[root@1y ~]#
[root@1y ~]# tail -2 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
[root@1y ~]#
过滤文件内容grep
直接过滤
过滤出包含root的行(按行过滤)
[root@1y ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@1y ~]#
标准写法需要加上双引号
[root@1y ~]# grep "root" /etc/passwd
过滤当前内容以外的内容
-v 反选
[root@1y ~]# head -5 /etc/passwd > 1.txt
[root@1y ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@1y ~]# grep -v root 1.txt
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
-n 对过滤的内容显示在源文件中的行号
[root@1y ~]# grep -v -n root 1.txt
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@1y ~]# grep -vn root 1.txt
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@1y ~]#
-i 不区分大小写
[root@1y ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@1y ~]# echo "ROOT" >> 1.txt
[root@1y ~]# cat 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
ROOT
[root@1y ~]# grep "root" 1.txt
root:x:0:0:root:/root:/bin/bash
[root@1y ~]# grep -i "root" 1.txt
root:x:0:0:root:/root:/bin/bash
ROOT
[root@1y ~]#
vim编辑器
查看是否安装
rpm -qa vim-enhanced
[root@1y ~]#
[root@1y ~]# rpm -qa vim-enhanced
vim-enhanced-7.4.629-8.el7_9.x86_64
[root@1y ~]#
安装vim编辑器
如果没有执行下面命令安装
yum install vim-enhanced -y
VIM三种模式
普通模式
由Shell进入vim编辑器时,首先进入普通模式。在普通模式下,从键盘输入任何字符都被当作命令来解释。普通模式下没有任何提示符,输入命令后立即执行,不需要回车,而且输入的字符不会在屏幕上显示出来。
vim xxx.txt 进入普通模式准备编辑文件
编辑模式
编辑模式主要用于文本的编辑。
在命令模式下,按下i键即可进入插入模式,此时可以直接输入文本。按下Esc键即可返回命令模式。
在命令模式下按下 i 键:光标会移动到当前位置,你可以开始输入文本。
在命令模式下按下 I 键:光标会移动到行首,可以开始输入文本。
在命令模式下按下 a 键:光标会移动到下一个位置,可以开始输入文本。
在命令模式下按下 A 键:光标会移动到行末,可以开始输入文本。
在命令模式下按下 o 键:在当前行的下方插入一个新行,并进入插入模式。
特殊写法:vim xxx.txt +5 #进入后光标直接定位到第五行。
命令模式
命令模式下,用户可以对文件进行一些高级处理。尽管普通模式下的命令可以完成很多功能,但要执行一些如字符串查找、替换、显示行号等操作还是必须要进入命令模式。
如果不确定当前处于哪种模式,按两次 Esc 键将回到普通模式。
在编辑模式下按esc键,返回普通模式。在某些终端中,没有 Esc 键,使用这个组合键Ctrl + [ 可以达到同样的效果。
普通模式下,输入冒号,进入命令模式。
在命令模式下不同字符含义
w 保存 write
q 退出 quit
! 强制
常用组合操作:
:wq! #<==强制保存退出
:wq #<==保存退出
:q! #<==强制退出不保存
:q #<==退出不保存
vim编辑问题

方法1:单开一个窗口找到路径删除交换文件,删除vim临时文件 rm -f .文件名.swp
方法2:直接3个回车,继续编辑,保存用:wq!
vim编辑器快捷键
##行号显示:
显示行号:set nu
取消行号:set nonu
##光标移动:
光标移动到行尾 $
光标移动到行首 0
光标移动到文件尾行开头 G
光标移动到文件开头行卡头 gg
当前光标移动到第5行 5gg
光标移动到从当前行开始移动几行 数字[回车]
##编辑内容
复制当前行 yy
复制当前行及下面n行 nyy #n是数字
粘贴 p #可以切换光标到指定的行按p
回滚 u
删除当前行 dd
删除多行 ndd n是数字
##搜索内容:和less命令搜索一样
/内容 初始向【下】搜索,此时按n继续搜索,N反向继续搜索。
?内容 初始向【上】搜索,此时按n继续搜索,N反向继续搜索。
##替换
:s/boot/bot |
替换当前行匹配到的第一个 “boot” 为 “bot”(后面加个/g 将会将本行匹配到的都替换) |
:%s/boot/bot/g |
将文档中的所有 “boot” 替换为 “bot”(如果后面不加/g,那么只替换每行第一个匹配到的 “boot”) |
| :n1,n2s/A/B/g | n1、n2为数字,在第n1行和n2行间寻找A,用B替换 |
更多推荐


所有评论(0)