【linux命令(二):目录和文件;操作和管理】

查看

ls

ls [选项]

  • -l 已长格式显示文件和目录列表 ll=ls -l
  • -a 显示全部包括隐藏文件
  • -A 显示全部文件或隐藏文件,但不包括 . 和…
  • -d 仅列出目录本身,而不是列出目录内的文件数据
  • -h 友好显示文件大小(human,人性化)
  • -R 递归显示该目录及该目录的子目录下的所有内容
  • –color 显示颜色
  • -S 以文件容量大小排序

[root@localhost mnt]# ll //长格式
drwxr-xr-x 3 root root 16 8月 21 10:39 aa

[root@test1 ~]# ls -a //显示所有,包括隐藏文件
. .cache .ICEauthority .viminfo.tmp 下载
… .config initial-setup-ks.cfg .Xauthority 音乐
anaconda-ks.cfg .cshrc .lesshst 公共 桌面
.bash_history .dbus .local 模板
.bash_logout .esd_auth mysql.sh 视频
.bash_profile hhh.cgg .tcshrc 图片
.bashrc .history .viminfo 文档

[root@test1 ~]# ls -A
anaconda-ks.cfg .config .ICEauthority .viminfo 图片
.bash_history .cshrc initial-setup-ks.cfg .viminfo.tmp 文档
.bash_logout .dbus .lesshst .Xauthority 下载
.bash_profile .esd_auth .local 公共 音乐
.bashrc hhh.cgg mysql.sh 模板 桌面
.cache .history .tcshrc 视频

drwxr-xr-x 2 user group 4096 Jun 1 10:30 directory
"d 是目录 rwx r-r r-r 是三个权限
“2”是硬链接数量
“user”这是目录的所有者
“group”这是目录的所属组
“4096”这是目录的大小,以字节为单位
“Jun 1 10:30”这是目录的最后修改时间
“directory”这是目录的名称

[root@test1 opt]# ls -R //递归显示
.:
123456.txt 123.txt 1.txt 2.txt abc.txt rh test.txt
./rh:
aaa
./rh/aaa:

du

du(disk usage)是一个用于查看文件或目录磁盘使用情况的命令。它用于报告文件和目录的磁盘空间使用量,并且可以递归地显示子目录的磁盘空间使用情况。
格式:
du [options] [directory]
其中,options 是一些可选的选项,directory 是要查看磁盘空间使用情况的目录,默认为当前目录。
可选项:

  • -h:以人性化的格式显示磁盘空间大小,使用KB、MB、GB等单位。
    -s:显示目录的总磁盘使用量,而不显示子目录的详细信息。
    -c:显示所有目录的总磁盘使用量,最后再加上总计。
    -k:以KB为单位显示磁盘空间大小。
    -m:以MB为单位显示磁盘空间大小。
    –max-depth=n:限制显示目录信息的深度,只显示指定深度的目录信息。

示例用法:


]#du                                         //查看当前目录的磁盘使用情况
]#du -h                                      //人性化显示
]#du -d 2                                    //最大显示到第n层
]#du -a --exclude=*.txt                      //排除.txt的文件

--max-depth=n (-d 1)

which

which 是 Linux 和类 Unix 系统中用于查找指定命令的绝对路径的命令。它用于确定在当前环境下将要执行的是哪个可执行程序。

#which ls
/bin/ls

创建

mkdir

格式:
mkdir 【选项】目录位置及名称…(mkdir -p xx/)
选项:

  • -p:递归地创建目录,如果上级目录不存在,则一并创建。
  • -m:设置目录的权限,可以用数字或符号形式表示。

示例用法:

#mkdir myfolder                                    
//创建一个名为 <directory_name> 的新目录。

#mkdir folder1 folder2 folder3
//同时创建多个目录。(以空格分隔)

#mkdir -p /path/to/myfolder/subfolder
//选项会自动创建目录路径中缺失的任何父级目录。

#mkdir -m 755 myfolder
//使用 -m 选项可以为新创建的目录指定自定义权限模式。将 <mode> 替换为所需的权限模式,例如 755

#mkdir -v /masq1
//-v 选项会显示每个成功创建的目录的详细信息

#mkdir -pv /masq1/{3306,3307,3308}/data.etc.socket.log,bin,pid}
//一次建立多个文件

touch

touch filename
创建一个新的空白文件
1…如果用 touch filename/ 来创建新的文件,系统可能会在先创建 filename/ 文件夹再创建一个名为filename的新的空白文件
2.如果文件已存在,touch 命令将用来更新该文件的访问时间和修改时间为当前时间,而文件内容将保持不变。

#touch filename1 filename2 filename3
同时创建多个文件,空格隔开

acess time 访问时间,atime,读取文件内容
modify time 修改时间,mtime,改变文件内容(数据)
change time 改变时间,ctime,元数据发生改变(元数据 文件大小 权限)

touch -t 202306011234.56 example.txt
-t 选项可以为新创建的文件指定自定义的时间
YYYYMMDDHHMM.SS 格式 年-月-日-小时-分钟·秒

具体可运行“man mkdir”和“man touch”来查看完整使用手册

硬链接和软连接

ln(link)
ln【-s】源文件或目录… 链接文件或目标位置
加-s是软连接 符号连接

想象你有一本书,这本书的名字是 “Book A”。现在你想在书架上放置两个标签,一个标签叫做 “Label 1”,另一个标签叫做 “Label 2”。这两个标签都指向同一本书 “Book A”。这就是硬链接的概念。而你不想在书架上放置实际的书,放置了一个指向 “Book A” 的便签。这个便签上写着 “Book A” 的位置。这就是软链接的概念。
硬链接(Hard Link):在这个比喻中,“Book A” 就是原始文件,而 “Label 1” 和 “Label 2” 就是硬链接。无论你使用哪个标签,它们都指向同一本书。无论你从哪个标签进入书架,你都会找到同样的内容。
软链接(Symbolic Link):在这个比喻中,“Book A” 就是目标文件,而放置在书架上的便签就是软链接。便签本身并不是真正的书,它只是一个指向 “Book A” 的指示器。当你从便签上阅读书名时,它会告诉你 “Book A” 在哪里,然后你需要跳转到那个位置才能阅读实际的内容。

总结:

  • 硬链接就像是书架上的两个标签,它们指向同一本实际的书。
  • 软链接就像是书架上的便签,它指向实际书的位置。

如果你理解这个概念可以进行更深的概念理解

硬链接(Hard Link)

  • 硬链接是通过将一个文件与另一个文件关联起来来创建链接。创建硬链接时,实际上是在文件系统中创建了一个新的文件入口,该入口指向相同的物理数据块。多个硬链接指向同一个物理文件,它们彼此之间没有任何区别。
    硬链接可以像普通文件一样访问和操作,而无需知道原始文件的位置。
    如果原始文件被删除,硬链接仍然存在并且保持有效,因为它们与原始文件共享相同的物理数据。
    硬链接只能链接到同一个文件系统中的文件。
    硬链接不能链接目录。

软链接(Symbolic Link)

  • 软链接是创建一个指向目标文件或目录的特殊文件,类似于快捷方式或别名。软链接本身只是一个文本文件,包含了指向目标文件的路径。
    软链接文件与目标文件是独立的实体,它们有不同的 inode 和数据块。
    软链接可以链接到不同文件系统中的文件或目录。
    如果原始文件被删除或移动,软链接将失去指向目标的有效性。
    软链接可以链接到目录。
对比项硬链接软链接
本质本质是同一个文件本质不是同一个文件
inode(身份证号)相同不同
连接数创建新的硬链接,链接数会增加,删除硬链接,链接数减少删除,新建都不会改变
文件夹不支持支持
删除源文件只是链接数减一,但链接文件的访问不受影响无法访问连接文件
文件类型和源文件相同链接文件,和源文件无关
文件大小和源文件相同(指向硬盘上的同一个文件)源文件的路径的长度
创建方式ln <源文件> <链接文件>ln -s <目标文件> <链接文件>
链接目录不能链接目录可以链接目录

例子:

ln [-s]源文件或目录…链接文件文件或目标位置
[root@localhost data]#mkdir /data/
[root@localhost data]# cp /etc/passwd /data/f1.txt
[root@localhost data]# ls
f1.txt

[root@localhost data]# ln /data/f1.txt /data/f11.txt
#建立硬连接
#不能跨分区建立连接 无法对文件夹创建
#不能跨分区建立连接 无法对文件夹创建
[root@localhost data]# ln /data/f1.txt /boot/f111.txt
ln: 无法创建硬链接"/boot/f111.txt" => “/data/f1.txt”: 无效的跨设备连接
#删除硬链接可以继续访问硬链接。
#为什么文件夹的连接数是2?
#.也是名字…也是

[root@localhost data]# ln -s f1.txt /opt/f1111.txt
[root@localhost data]# ll /opt/
总用量 8
lrwxrwxrwx. 1 root root 6 8月 26 22:17 f1111.txt -> f1.txt
-rw-r–r–. 3 root root 66 8月 26 21:45 f111.txt
-rw-r–r–. 1 root root 2573 8月 26 11:55 passwd
会认为f1111.txt 与f1.txt在同一目录

随机生成密码 tr

格式:
tr [选项]… SET1 [SET2]

SET1 是要替换或删除的字符集合,SET2 是替换字符集合。如果不指定 SET2,tr 命令将删除 SET1 中的字符。

选项:
-d 删除
-s 压缩
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。


[root@localhost ~]#cat /dev/urandom |tr -cd '[:alnum:]' |head -c12
513sHzLASljv
#生成随机密码

[root@localhost ~]#tr 123 abc                  //#只要出现123 就转换成abc
1g2j3k
agbjck
[root@localhost ~]#tr 12345678 abc             //#最后一个一直用
123456789
abccccccc

[root@localhost ~]#echo "aaabbbccc" | tr -s 'a'
abbbccc
[root@localhost ~]#echo "a     b    c" | tr -s ' '
abc

删除

rm

在这里插入图片描述
rm [选项] 要删除的文件或目录

  • -f 强制、-i 交互、-r递归(删除目录需要)

[root@localhost data]#mkdir -p /data/aa/bb

[root@localhost data]#rm /data/aa/bb
rm: 无法删除"/data/aa/bb": 是一个目录
[root@localhost data]#rm -f /data/aa/bb
rm: 无法删除"/data/aa/bb": 是一个目录
[root@localhost data]#rm -rf /data/aa/bb
[root@localhost data]#ls
aa dd oneximu twoximu
[root@localhost data]#cd aa
[root@localhost aa]#ls
[root@localhost aa]#

[root@localhost data]#rm -r /data/aa
rm:是否删除目录 “/data/aa”?y
[root@localhost data]#ls
dd oneximu twoximu

删除特殊文件

[root@localhost ~]# touch ./-f
#“-”开头的文件
[root@localhost ~]# ls
[root@localhost ~]# rm -f -f
#删除不掉
[root@localhost ~]# rm -f ./-f
#需要加路径
[root@localhost ~]# touch ./-f
[root@localhost ~]# rm – -f
rm:是否删除普通空文件 “-f”?y

#文件正在使用可以删除,但是空间不会释放

移动、改名、拷贝和批量改名

mv

mv 命令非常有用,可以用于文件的移动、重命名和合并等操作。在执行 mv 命令时,请务必谨慎,特别是在移动或重命名文件时,确保目标位置是正确的,以免意外丢失文件。
mv [选项] … 源文件或目录… 目标文件或目录 单个文件

移动 或 改名

选项说明
-f覆盖目标同名文件或目录时不进行提醒,直接强制覆盖
-i交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
-n如果目标文件已经存在,则不会覆盖移动,而且不询问用户
-v显示文件或目录的移动过程
mv myfile.txt /path/to/destination/               //移动文件到目标目录

mv oldname.txt newname.txt                        //将文件重命名为新名称

mv -i myfile.txt /path/to/destination/            //交互式移动文件

mv -u myfile.txt /path/to/destination/            //仅在目标文件不存在或比源文件旧时才执行

cp

cp(copy)备份

  1. cp [选项]… 源文件 目标 相当改名复制 文件夹 文件相当于 改名字另存为
  2. cp [选项]… 源文件… 文件夹 多个源文件只能复制到文件夹
选项说明
-f覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i覆盖目标同名文件或目录时提醒用户确认
-p复制时保持源文件的权限、属主及时间标记等属性不变
-r复制目录时必须使用此选项,表示递归复制所有文件及子目录
-a完整保留所有的信息
-v可视化
-u相当于增备,差异备份(只对文件夹起作用)

如果已有文件夹会生成子目录

rename

批量
rename log log.bak* //所有 log文件改成 log.bak

rename 旧字符 新字符 目标文件

[root@test1 opt]# rename txt txt.bak *
#将 txt 改成 txt.bak

[root@test1 opt]# rename txt txt.bak *.txt
#把 txt 改成 txt.bak

查找

find

.

  • which : 只能找命令查找范围也是固定的 $PATH 路径

  • locate : 速度块,不是真的去硬盘上遍历去找文件, 他是去系统的数据库文件中查找

  • find : 速度慢, 他是真去磁盘上一个一个给你找

find

find [OPTION]… [查找路径] [查找条件] [处理动作]
查找路径:指定具体目标路径;不指定为默认为当前目录
查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做操作,默认输出至屏幕(print)
find的特点:
精确查找
实时查找
支持查找条件多

常用可选项:

查找类型关键字说明
按名称查找-name根据目标文件的名称进行查找,允许使用“*”及“?”通配符
按文件大小查找-size根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB
按文件属主查找-user根据文件是否属于目标用户进行查找
按文件类型查找-type根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等
按inode号-inum根据文件inode号查找
按权限查找-perm按文件权限查找
最大搜索目录深度-maxdepth level将你的文件已分级的形式查找
最小搜索目录深度-mindepth level同上

#find /data/ -name ‘.txt’ -exec mv {} {}.bak ;
#find /data/ -name '
.txt’ \ \ 查找data文件夹下名字结尾是.txt的文件夹
-exec \ \ 连接符
mv{} {}.bak \ \ 改名

[root@test1 opt]# find /etc/ -name passwd
#查找名字叫 passwd的文件
/etc/pam.d/passwd
/etc/passwd

[root@test1 opt]# find /etc/ -name *.conf
#查找所有.conf 结尾的 ,不要在当前路径下找自己路径下的文件
/etc/resolv.conf
/etc/fonts/conf.d/57-dejavu-serif.conf
/etc/fonts/conf.d/65-1-vlgothic-gothic.conf
/etc/fonts/conf.d/31-cantarell.conf
/etc/fonts/conf.d/65-0-lohit-nepali.conf
/etc/fonts/conf.d/59-liberation-mono.conf
/etc/fonts/conf.d/65-0-lohit-bengali.conf

/etc/[root@test1 opt]# find /mnt -user root
#查找 用户为root的用户
/mnt
/mnt/abc
/mnt/ad
/mnt/ad/ad2
/mnt/ad/ad2/bbbbb.txt
/mnt/zhangsanlianjie

[root@test1 opt]# find -size 1k
#0.1字节 到 1k
./rh
./rh/aaa
[root@localhost boot]# find ./ -name “vm*”
#查找vm开头的
[root@localhost boot]# find /boot/ -size -10M -a -name “*img”
#小于10M 的img文件

[root@localhost etc]# find /etc/ -maxdepth 2 -mindepth 2
#只看第二级目录

[root@localhost opt]# find /boot -d
#先显示 文件在显示目录
#找/home 下属于zhangsan的文件并列出属性
[root@localhost opt]# find /home -user zhangsan -ls
#找/home 下属于zhangsan的文件并列出属性
[root@localhost opt]# find /home/ -nouser
#找home下的无主文件夹
/home/hehe
/home/hehe/.mozilla
/home/hehe/.mozilla/extensions
/home/hehe/.mozilla/plugins
/home/hehe/.bash_logout
/home/hehe/.bash_profile
/home/hehe/.bashrc

[root@localhost opt]# find /boot -d
#先显示文件再显示目录
w[root@localhost opt]# find /home -user zhangsan -ls
#找/home 下属于zhangsan的文件并列出属性

#或与且的优先级
[root@localhost opt]# find /etc/ -type d -o -type l |wc -l
1008
[root@localhost opt]# find /etc/ -type d -o -type l -ls |wc -l
1008
[root@localhost opt]# find /etc/ -type d -o -type l -a -ls |wc -l
274
[root@localhost opt]# find /etc/ ( -type d -o -type l ) -a -ls |wc -l
1008
#/etc/ 目录下的所有目录或符号链接,然后使用管道将结果传递给 wc -l 命令来统计行数。结果为 1008,表示总共找到了 1008 个目录或符号链接。命令后面加上了 -ls 选项,表示输出详细的文件信息。使用括号来明确指定逻辑运算的优先级。注意:-o(或)运算符的优先级比 -a(且)运算符低,所以在没有括号的情况下,逻辑与运算会先于逻辑或运算执行。

#权限查找 -perm
[root@localhost opt]# find -perm 644
./100.img
./99.img
./a.txt
[root@localhost opt]# find -name “.img" -delete
#找到并删除(找到"
.img” 并且删除)要加引号

参数替换xarg

xargs 是 Linux 和类 Unix 系统中的一个命令,用于将标准输入中的数据转换为命令行参数。xargs 通常与其他命令(如 find、grep、ls 等)结合使用,从而可以处理大量数据或文件。
格式:xargs [选项] [command] (command 是要执行的命令。)
选项:

  • -a :从文件中读取输入,而不是从标准输入读取。
  • -d :指定输入的分隔符,例如 xargs -d ‘,’ 表示使用逗号作为分隔符。
  • -I :指定一个占位符 replace-str,用于在命令中替换输入的参数。
  • -n :每次执行命令时使用的参数数量。
    示例用法:
#xargs grep 'search_pattern' < file.txt         
//从文件中读取输入并执行 grep 命令

#echo "apple banana orange" | xargs echo
//使用 xargs 将输入的每一行作为参数执行 echo 命令

#echo "apple banana orange" | xargs -n 2 echo
//使用 -n 选项设置每次传递两个参数执行命令

显示

pwd

pwd 命令对于确认当前所在目录是非常有用的,特别是当您在终端中切换目录时,需要确认当前工作目录是否正确。

[root@localhost ~]# pwd //显示当路径
/root

[root@localhost bin]# pwd -P
/usr/bin
#-P 显示真实路径

cat

cat 常常用于查看单个文件的内容。

选项效果
-n显示行号包括空行
-b跳过空白行编号
-s将所有的连续的多个空行替换为一个空行(压缩成一个空行)
-A显示隐藏字符

[root@localhost ky15]# cat /etc/centos-release
#查看你系统内核版本
CentOS Linux release 7.4.1708 (Core)

[root@localhost data]# cat -b test.txt
#空行不编号

[root@localhost data]# cat -s test.txt
#将连续的空行压缩成一个空行

[root@test1 opt]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
#查看文件名
[root@test1 opt]# cat 1.txt 2.txt
1
2
#文件名可以是多个也可以是单个
[root@test1 opt]# cat 2.txt 1.txt
2
1

tac & rev

tac:逆向显示文本内容

[root@centos8 ~]#seq 10 | tac
10
9
8
7
6
5
4
3
2
1

rev:将同一行的内容逆向显示

[root@centos8 ~]#cat /data/fa.txt
1 2 3 4 5
a b c
[root@centos8 ~]#tac /data/fa.txt
a b c
1 2 3 4 5
[root@centos8 ~]#rev /data/fa.txt
5 4 3 2 1
c b a

[root@centos8 ~]#echo {1…10} |rev
01 9 8 7 6 5 4 3 2 1

分页显示 more & less

more [选项] 文件名:
more命令用于逐页显示文本内容。它允许向下滚动一页一页地查看文本,使用空格键向下翻页,按下q键退出查看

more myfile.txt
command | more

less[选项] 文件名:
less命令也用于分页显示文本内容,与more相比,它提供了更多的功能和更灵活的浏览方式。除了向下翻页,还可以向上翻页、搜索关键字、跳转到指定行等。

less myfile.txt
command | less

显示文件前后内容

head

格式:
head [OPTION]… [FILE]…

选项:
-c # 指定获取前#字节
-n ? 指定获取前?行,#如果为负数,表示从文件头取到倒数第?前
-# 同上

[root@centos7 ~]#head -n 3 /etc/passwd
= [root@centos8 ~]#head -3 /etc/passwd

tail

格式:
tail [OPTION]… [FILE]…

选项:
-f 跟踪显示文件fd新追加的内容,常用日志监控

-n num:指定显示的行数。例如,tail -n 20 file.txt将显示文件file.txt的最后20行。
num为正数则 显示k行到最后一行
-c num:指定显示的字节数。例如,tail -c 100 file.txt将显示文件file.txt的最后100个字节。

[root@localhost ky15]# ifconfig ens33 |head -2|tail -1
inet 192.168.91.100 netmask 255.255.255.0 broadcast 192.168.91.255

[root@test1 var]# ping 192.168.91.1 >log.txt
[root@test1 var]# tail -f log.txt
#tail -f 等于tailf

WC

格式:
wc [选项]… 目标文件…

选项:

  • -l:统计行数
  • -w:统计单词个数
  • -c:统计字节数

[root@localhost ~]# cat a.txt
dasdasdads
[root@localhost ~]# wc a.txt
1 1 11 a.txt
[root@localhost ~]# cat a.txt
das dasdads
[root@localhost ~]# wc a.txt
1 2 12 a.txt

grep

格式:
grep [选项]… 查找条件 目标文件

选项:

  • -i:查找时忽略大小写
  • -v:反向查找,输出与查找条件不相符的行
  • -o 只显示匹配项
  • -f 对比两个文件的相同行
  • -c 匹配的行数([root@localhost ky15]# grep -c root passwd 2)

参数:

  • 要查找的字符串以双引号括起来单引号也可以
  • “^……”表示以……开头,“……$”表示以……结尾
  • “^$”表示空行

压缩和解压

gzip bzip2

gzip [-9] 文件名… 提高压缩比例,但是文件较大时效率会低
bzip2 [-9] 文件名…
gzip -d .gz格式的压缩文件 d就是解压
bzip2 -d .bz2格式的压缩文件

归档tar

tar tape archive 磁带归档

tar [选项] … 归档文件名 源文件或目录
tar [选项] … 归档文件名 [-C 目标目录]

选项:

  • -c:创建(Create).tar 格式的包文件
  • -x:解开.tar 格式的包文件
  • -C:解压时指定释放的目标文件夹
  • -f:表示使用归档文件(一般都要带上表示使用tar)
  • -p:打包时保留文件及目录的权限
  • -P:打包时保留文件及目录的绝对径
  • -t:列表查看包内的文件(要和f一起使用)
  • -v:输出详细信息(Verbose)
  • -j:调用 bzip2 程序进行压缩或解压
  • -z:调用 gzip 程序进行压缩或解压

[root@localhost data]# tar -zcvf vm.tar.gz vm1 vm2 zz
vm1
vm2
zz/
[root@localhost data]# tar -jcvf vm.tar.gz vm1 vm2 zz

[root@localhost data]# tar -zxvf vm.tar.gzip -C /opt
vm1
vm2
zz/

[root@localhost zz]# tar -tf vm1.tar.gzip
vm1

查看硬件信息

查看cpu

cat /proc/cpuinfo
-o lscpu
[root@localhost ~]# cat /proc/cpuinfo

查看内存大小

cat /proc/meminfo
-o free
[root@localhost ~]# cat /proc/meminfo

查看硬盘和分区情况

cat /proc/partitions
-o lsblk
[root@localhost ~]# cat /proc/partitions

查看机械架构

arch

查看内核版本

cat /etc/redhat-release
-o uname -r

查看系统时间

data

vi编辑器

常见的三种模式
命令模式
插入模式
末行模式

vim 编辑器分为两种模式:命令模式和插入模式。在编辑器启动时,默认处于命令模式。要进入插入模式进行文本编辑,可以按下 i(插入)、a(追加)等键进入插入模式。要返回到命令模式,可以按下 Esc 键。
末行模式是 vim 编辑器的一种特殊模式,也称为命令行模式或底行模式。在 vim 中,末行模式可以通过按下 : 键进入,它允许您执行各种高级编辑命令、保存文件、查找、替换等操作。

命令模式

命令描述
:w保存文件但不退出编辑器
:wq或 :x 保存文件并退出编辑器
:q退出编辑器(如果没有修改过文件)
:q!强制退出编辑器,丢弃所有修改
:/search_text向下查找指定的文本
:?search_text向上查找指定的文本
: s/old_text/new_text/g在当前行进行替换,将所有的 old_text 替换为 new_text
: %s/old_text/new_text/g在整个文件中进行替换
:n跳转到指定行号(例如,:10 跳转到第 10 行)
: $跳转到文件的最后一行
:1跳转到文件的第一行
:gg或 :1 跳转到文件的第一行
:G或 : $ 跳转到文件的最后一行
:n1,n2选中范围内的行(例如,:10,20 选中第 10 行到第 20 行)
:d删除当前行
:nd删除指定行号的行(例如,:10d 删除第 10 行)
:y复制当前行
:ny复制指定行号的行(例如,:10y 复制第 10 行)
:u撤销上一步操作
:ctrl+r 或 :Redo重做上一步撤销的操作
:set number 或 :set nu显示行号
:set nonumber 或 :set nonu隐藏行号
:set wrap自动换行显示文本
:set nowrap不自动换行显示文本

插入模式

命令描述
输入字符在插入模式下直接输入字符即可将其插入到文本中
回车键按下回车键可以插入换行符,进入新的一行
Esc退出插入模式,返回到命令模式
i在当前光标位置插入文本
I在当前行的行首插入文本
a在当前光标后插入文本
A在当前行的行尾插入文本
o在当前行的下方插入一个新行并进入插入模式
O在当前行的上方插入一个新行并进入插入模式
Backspace删除光标前面的一个字符
Delete删除光标后面的一个字符
Ctrl + H与 Backspace 效果相同,删除光标前面的一个字符
Ctrl + W删除光标前面的一个单词
Ctrl + U删除光标前面的整行文本
Ctrl + T将光标前面的字符左移一个位置
Ctrl + D将光标后面的字符右移一个位置
Ctrl + X剪切光标前面的字符
Ctrl + C 或 Ctrl + Insert复制光标前面的字符
Ctrl + V 或 Shift + Insert粘贴剪切或复制的文本
u撤销上一步操作
Ctrl + R重做上一步撤销的操作
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值