文件目录的增删改查ARUL
A
# 创建一个普通文本文件
R
U
L
# 查询当前目录下的内容 ls命令# ls命令就是list的缩写[root@localhost tylor]# ls .cv_debug.log 公共 模板 视频 图片 文档 下载 音乐 桌面[root@localhost /]# ls .bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var[root@localhost /]# ls /bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
yum 命令
1. 下载并安装一个rpm包yum -y install [package]2. 安装一个rpm包,使用你自己的软件仓库解决所有依赖关系yum localinstall [package.rpm]3. 更新当前系统中安装的所有rpm包yum -y update4. 更新一个rpm包yum update [package]5. 删除一个rpm包yum remove [package]6. 列出当前系统中安装的所有包yum list8. 清除缓存命令:yum clean packages: 清除缓存目录下的软件包yum clean headers: 清除缓存目录下的 headersyum clean oldheaders: 清除缓存目录下旧的 headers9. 清除缓存目录下的软件包及旧的headersyum clean, yum clean all (= yum clean packages; yum clean oldheaders)
几个特殊的目录
. # 当前的目录[root@localhost tylor]# ls .cv_debug.log 公共 模板 视频 图片 文档 下载 音乐 桌面.. # 上一级的目录[root@localhost tylor]# ls ..tylor- # 代表当前登录用户的home目录 root用户就是/root 普通用户就是 /home/tylor[root@localhost /]# cd /home/tylor[root@localhost tylor]# lscv_debug.log 公共 模板 视频 图片 文档 下载 音乐 桌面[root@localhost tylor]# ls --cv_debug.log 公共 模板 视频 图片 文档 下载 音乐 桌面- # 代表上一次的工作目录
相对路径和绝对路径
[root@localhost home]# ls /home 绝对路径tylor[root@localhost home]# ls . 相对路径tylor
返回上一次的工作路径
cd -
查找命令对应的包
yum search killallyum -install psmisc
Linux常用命令
mkidr
[caesar@vvkt7whznuckhiz2-0723575 ~]$ lsfirst.py[caesar@vvkt7whznuckhiz2-0723575 ~]$ mkdir haha.md ms.min[caesar@vvkt7whznuckhiz2-0723575 ~]$ lsfirst.py haha.md ms.min
tree
# 以树状显示目录的层级结构;yum 相当于python的 pipyum -y install tree # y 意味着默认同意安装[caesar@vvkt7whznuckhiz2-0723575 ~]$ mkdir -p a/b c/d[caesar@vvkt7whznuckhiz2-0723575 ~]$ tree.├── a│ └── b├── c│ └── d└── first.py
man
查看帮助信息,或者其他命令
man mkdirMKDIR(1) User Commands MKDIR(1)NAMEmkdir - make directoriesSYNOPSISmkdir [OPTION]... DIRECTORY...DESCRIPTIONCreate the DIRECTORY(ies), if they do not already exist.Mandatory arguments to long options are mandatory for short options too.-m, --mode=MODEset file mode (as in chmod), not a=rwx - umask-p, --parentsno error if existing, make parent directories as needed-v, --verboseprint a message for each created directory-Z set SELinux security context of each created directory to the default type--context[=CTX]like -Z, or if CTX is specified then set the SELinux or SMACK security context to CTX--help display this help and exit--versionoutput version information and exitGNU coreutils online help: <http://www.gnu.org/software/coreutils/> Report mkdir translation bugs to<http://translationproject.org/team/>AUTHORWritten by David MacKenzie.COPYRIGHTCopyright © 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later<http://gnu.org/licenses/gpl.html>.This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent per‐mitted by law.SEE ALSOmkdir(2)The full documentation for mkdir is maintained as a Texinfo manual. If the info and mkdir programs are prop‐erly installed at your site, the commandinfo coreutils 'mkdir invocation'should give you access to the complete manual.GNU coreutils 8.22 November 2020 MKDIR(1)
简短帮助信息
[caesar@vvkt7whznuckhiz2-0723575 ~]$ mkdir --helpUsage: mkdir [OPTION]... DIRECTORY...Create the DIRECTORY(ies), if they do not already exist.Mandatory arguments to long options are mandatory for short options too.-m, --mode=MODE set file mode (as in chmod), not a=rwx - umask-p, --parents no error if existing, make parent directories as needed-v, --verbose print a message for each created directory-Z set SELinux security context of each created directoryto the default type--context[=CTX] like -Z, or if CTX is specified then set the SELinuxor SMACK security context to CTX--help display this help and exit--version output version information and exitGNU coreutils online help: <http://www.gnu.org/software/coreutils/>For complete documentation, run: info coreutils 'mkdir invocation'
systemctl命令
systemctl status redis # 查看redis服务的状态systemctl start redis # 开启服务systemctl stop redis # 停止服务systemctl restart redis # 重启服务systemctl enable redis # 设置开机自启systemctl disable redis # 关闭开机自启
history命令
可以查看当前用户的历史命令
!608 # 重新执行608行的命令
echo命令
相当于python中的print函数,可以输出字符串给用户看
[root@tylor ~]# echo "You love I"You love I[root@tylor ~]#
第二种方法,记得为变量赋值时不能在变量和符号之间有空格
# $符号用于取值,类似于Ajax中的$# Linux在命令行对变量的赋值是临时的# 变量名区分大小写name="How are you"echo $nameHow are you
cat
查看文件内容
[caesar@vvkt7whznuckhiz2-0723575 ~]$ cat first.py#!coding:utf-8print("Hello World!")[caesar@vvkt7whznuckhiz2-0723575 ~]$ cat -n first.py1 #!coding:utf-82 print("Hello World!")
Linux中的重定向符号
> # 重定向输出覆盖符, 如同python 中的with open中的 w 模式>> # 重定向输出追加符, 如同 a 模式< # 重定向谢图覆盖符,用的很少, 主要在数据库导入中,MySQL数据导入<< # 用在cat命令中,很少见
案例
[root@vvkt7whznuckhiz2-0723575 caesar]# cat >>木兰诗.text << EOF> 唧唧复唧唧> 木兰当户织> 不闻机杼声> 慰问女叹息> EOF[root@vvkt7whznuckhiz2-0723575 caesar]# cat -n 木兰诗.text1 唧唧复唧唧2 木兰当户织3 不闻机杼声4 慰问女叹息
cp命令
拷贝
# 用在对配置文件的备份,代码文件的备份 防止突然写错# 复制文件[root@vvkt7whznuckhiz2-0723575 caesar]# cat -n 新_木兰诗句.text1 唧唧复唧唧2 木兰当户织3 不闻机杼声4 慰问女叹息# 复制文件夹需要添加 -r 递归caesar@vvkt7whznuckhiz2-0723575 ~]$ cp -r a new_a[caesar@vvkt7whznuckhiz2-0723575 ~]$ tree.├── a│ └── b├── c│ └── d├── first.py├── new_a│ └── b├── \346\226\260_\346\234\250\345\205\260\350\257\227\345\217\245.text└── \346\234\250\345\205\260\350\257\227.text
mv命令
移动文件夹或者重命名
# 重命名 mv original_name new_name[caesar@vvkt7whznuckhiz2-0723575 ~]$ mv 木兰诗.text new_木兰诗句.text[caesar@vvkt7whznuckhiz2-0723575 ~]$ lsa c first.py new_a new_木兰诗句.text 新_木兰诗句.text# 移动位置# 1 如果文件存在,只需要输入目标文件夹[移动是,工作路径需要与被移动的文件保持一致][caesar@vvkt7whznuckhiz2-0723575 ~]$ mv first.py a[caesar@vvkt7whznuckhiz2-0723575 ~]$ tree.├── a│ ├── b│ └── first.py├── c│ └── d├── new_a│ └── b├── new_\346\234\250\345\205\260\350\257\227\345\217\245.text└── \346\226\260_\346\234\250\345\205\260\350\257\227\345\217\245.text# 第二种移动方法,如果文件不存在则新建并且移入,需要移动时当前工作路径与被移动文件保持一致[caesar@vvkt7whznuckhiz2-0723575 ~]$ cd a[caesar@vvkt7whznuckhiz2-0723575 a]$ mv first.py e[caesar@vvkt7whznuckhiz2-0723575 a]$ tree.├── b└── e
alias命令
[caesar@vvkt7whznuckhiz2-0723575 ~]$ aliasalias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias vi='vim'alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
案例
快捷启动Django项目
alias start="python3 /home/mysite/manage.py runserver 0.0.0.0:8000"
find命令
可以用于搜索机器上的所有资料,按照文件名字搜索,Linux一切皆文件
# 基本语法# find 你要从那找 type 文件类型是什么 -size 你要的文件多大 -name 你要的文件名字是什么# 在系统上全局搜索.txt文件find / .txt# 指定在 ```etc```目录下进行局部搜索一个网卡配置文件,网卡名字是以ifcfg开头的文本类型的文件# 访问 etc需要先转入root权限find /etc -type f -name "ifcfg"[root@vvkt7whznuckhiz2-0723575 caesar]# find /etc -type f -name "ifcfg*"/etc/sysconfig/network-scripts/ifcfg-lo/etc/sysconfig/network-scripts/ifcfg-eth0
全局搜索和python相关的文件以及文件夹
[root@vvkt7whznuckhiz2-0723575 caesar]# find / -name "python"/etc/python/usr/bin/python/usr/share/gdb/python/usr/share/gcc-4.8.2/python/usr/share/swig/2.0.10/python/usr/libexec/systemtap/python
全局查找类型为文件夹,名字以python开头的所有对象[大量删减输出结果]
[root@vvkt7whznuckhiz2-0723575 caesar]# find / -type d -name "python*"/etc/python/usr/lib/python2.7/usr/lib/python3.6/usr/libexec/systemtap/python
123
# 准备数据# mkdir /tmp/python{1..5} 在/tmp文件夹下创建出 python1 python2 ... python5# mkdir /tmp/python_{a..d} 在/tmp文件夹下创建出 python_a python_b ... python_d
找到所有文件及文件夹的名字包含python的对象
[root@vvkt7whznuckhiz2-0723575 tmp]# find . -name "python*"./python4./python5./python1./python_a./python_c./python3./python_d./python2./python_b
找到类型为文件,名字含有python的对象
[root@vvkt7whznuckhiz2-0723575 tmp]# find . -type f -name "python*"./python_a./python_c./python_d./python_b
反之,找出所有的文件夹
[root@vvkt7whznuckhiz2-0723575 tmp]# find . -type d -name "python*"./python4./python5./python1./python3./python2
查找所有文件或者文件名以python开头,并且文件大小超过15M的
[root@vvkt7whznuckhiz2-0723575 tmp]# find . -size +15M -name "python*"./python3.txt./python2.txt
查看文件,文件夹大小
# ls -lh # -h参数是显示文件单位,以kb,mb, gb大小为单位,-l是列表形式列出文件[root@vvkt7whznuckhiz2-0723575 tmp]# ls -lhtotal 44Mdrwxr-xr-x 2 root root 4.0K Sep 29 09:27 hsperfdata_rootdrwxr-xr-x 2 root root 4.0K Sep 29 16:03 python1drwxr-xr-x 2 root root 4.0K Sep 29 16:03 python2-rw-r--r-- 1 root root 16M Sep 29 16:15 python2.txtdrwxr-xr-x 2 root root 4.0K Sep 29 16:03 python3-rw-r--r-- 1 root root 18M Sep 29 16:15 python3.txtdrwxr-xr-x 2 root root 4.0K Sep 29 16:03 python4drwxr-xr-x 2 root root 4.0K Sep 29 16:03 python5-rw-r--r-- 1 root root 0 Sep 29 16:05 python_a-rw-r--r-- 1 root root 0 Sep 29 16:05 python_b-rw-r--r-- 1 root root 0 Sep 29 16:05 python_c-rw-r--r-- 1 root root 0 Sep 29 16:05 python_d-rw-r--r-- 1 root root 10M Sep 29 16:14 python.txtprw-r--r-- 1 root root 0 Sep 29 16:18 wrapper-616-1-inprw-r--r-- 1 root root 0 Sep 29 16:18 wrapper-616-1-out
Linux的管道符命令
1. 过滤服务器上的进程信息2. 过滤服务器的端口信息
grep命令
是Linux强大的三剑客之一,从文本中过滤有用信息的命令
1. 语法grep "你想要过滤的字符串" 需要过滤的文件 # 用法1cat 文件 | grep "你想要的内容" # 用法22. 准备一个文件
第一种用法
[root@vvkt7whznuckhiz2-0723575 ~]# vim admir.text[root@vvkt7whznuckhiz2-0723575 ~]# cat admir.text跟着我左手右手一个慢动作# 左右右手慢动作成果[root@vvkt7whznuckhiz2-0723575 ~]# grep "个" admir.text跟着我左手右手一个慢动作
第二组—过滤结果显示行号,查看文件时显示行号
[root@vvkt7whznuckhiz2-0723575 ~]# vim admir.text[root@vvkt7whznuckhiz2-0723575 ~]# grep -n "大" admir.text15:一个大西瓜,送给你也不送给他[root@vvkt7whznuckhiz2-0723575 ~]# cat -n admir.text123456789 跟着我左手右手一个慢动作1011 # 左右右手慢动作成果12131415 一个大西瓜,送给你也不送给他
第二组—忽略大小写,查看ALLOW_HOST是否被修改
# 查找包含空格的内容[root@vvkt7whznuckhiz2-0723575 ~]# grep " " admir.textALLOW_HOST = []# 以空开头,空结尾的空白行[root@vvkt7whznuckhiz2-0723575 ~]# grep "^$" admir.text# 反向查找 grep -v " " admin.text[root@vvkt7whznuckhiz2-0723575 ~]# grep -v "^$" admir.text"不要总是想着画龙"ALLOW_HOST = []# 过滤#开头的哪一行数据,相当于cat命令 + find 命令[root@vvkt7whznuckhiz2-0723575 ~]# grep "^#" admir.text#"不要总是想着画龙"# 过滤非空行,非#开头[root@vvkt7whznuckhiz2-0723575 ~]# grep -v "^$" admir.text | grep -v "^#"ALLOW_HOST = []
第二种—关于内容
[root@vvkt7whznuckhiz2-0723575 ~]# cat /etc/passwd | grep "ssh"sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
head tail 命令
1 head查看前十行信息
[root@vvkt7whznuckhiz2-0723575 ~]# head /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologin
2 查看前三行
[root@vvkt7whznuckhiz2-0723575 ~]# head -3 /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin
3 显示后十行[tail /etc/passwd]
[root@vvkt7whznuckhiz2-0723575 ~]# tail /etc/passwdgames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:999:998:User for polkitd:/:/sbin/nologintss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologincaesar:x:1000:1000::/home/caesar:/bin/bash
4 显示最后两行[tail -2 /etc/passwd]
[root@vvkt7whznuckhiz2-0723575 ~]# tail -2 /etc/passwdpostfix:x:89:89::/var/spool/postfix:/sbin/nologincaesar:x:1000:1000::/home/caesar:/bin/bash
5 实时监控,可以用于监控线上的日志文件,检测用户的请求信息
tail -f 文件名 #实时刷新文件内容

scp命令
在两台Linux设备[Mac OS]之间,通过网络安全地传输文件,文件夹;
如果发送的是整个文件夹,就需要加上 -r 参数表示递归
使用通配符发送多个文件 scp -r ./*
案例1
准备两台Linux机器
# 需求1 将机器1的 /mp/admin.text 发送到机器2的 /tmp目录下[root@vvkt7whznuckhiz2-0723575 tmp]# scp /tmp/admin.text root@192.168.178.235:/tmp/# 需求2 把机器2的/tmp目录下的资料给拿到本地的/opt目录下scp 你想要的内容 内容发送到哪里[root@vvkt7whznuckhiz2-0723575 tmp]# scp root@192.168.178.235:/tmp/python1.txt /opt
lrzsz工具
用于window和Linux之间互相传递文件
# 安装此工具yum -y install lrzsz# 安装好之后存在两个命令,分别是 rz和 szrz 表示接受 sz表示发送
du命令
# 用法du [参数] [文件或者目录]-S 显示总计-h 以 K, M, G为单位显示,可读性高
案例
# 统计 var/log/文件夹的大小 du -sh /var/log[root@vvkt7whznuckhiz2-0723575 ~]# du -sh /var/log1.6M /var/log# du -sh 显示当前文件夹下所有文件的大小[root@vvkt7whznuckhiz2-0723575 ~]# cd /tmp[root@vvkt7whznuckhiz2-0723575 tmp]# du -sh44M .# du -h显示当前文件夹下单个文件或者文件夹的大小[root@vvkt7whznuckhiz2-0723575 tmp]# du -h4.0K ./python44.0K ./.X11-unix4.0K ./python54.0K ./.XIM-unix4.0K ./python14.0K ./.font-unix4.0K ./.ICE-unix4.0K ./.Test-unix4.0K ./python336K ./hsperfdata_root4.0K ./python244M .
top命令
类似于Windows的任务栏,能够动态的显示进程信息 比如 CPU, 内存,网络,磁盘IO等
top - 16:14:18 up 1:07, 3 users, load average: 0.00, 0.01, 0.05Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 1881620 total, 1491064 free, 153456 used, 237100 buff/cacheKiB Swap: 4194300 total, 4194300 free, 0 used. 1577672 avail Mem
ps命令
用于查看Linux进程信息的命令
语法格式
ps -e f # -ef,是一个组合参数 -e -f的缩写,-默认显示Linux所有进程信息以及pid,时间,进程名等信息# 过滤进程[root@vvkt7whznuckhiz2-0723575 tmp]# ps -ef | grep "python3"root 1553 1534 0 16:11 pts/2 00:00:02 python3root 1556 1462 0 16:20 pts/1 00:00:00 grep --color=auto python3
产生需求
1. Django运行后,如何验证是否运行,它会产生什么内容?能够查看日志,检测到用的请求产生一个python相关的进程信息
kill命令
杀死进程的命令
kill 进程的ID号,也就是PID如果遇见卡死的进程,杀不掉,就发送 -9 强制关闭kill -9 pid
netstat[端口]命令
查看Linux的网络端口情况
语法如下:常用的命令组合 -t -n -u -l -p# netstat -tunlp 显示机器所有的tcp udp的端口连接情况[root@vvkt7whznuckhiz2-0723575 tmp]# netstat -tunlpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1024/sshdtcp6 0 0 :::22 :::* LISTEN 1024/sshdudp 0 0 0.0.0.0:68 0.0.0.0:* 743/dhclient# 有些公司为了保护服务器安全,更改了默认的远程连接端口# 用如下命令去登录服务器ssh -p 26675 xiaohu@123.168.13.157
案例1
# 过滤指定服务[root@vvkt7whznuckhiz2-0723575 tmp]# netstat -tunlp | grep sshtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1024/sshdtcp6 0 0 :::22 :::* LISTEN 1024/sshd
案例2—查看端口占用
[root@vvkt7whznuckhiz2-0723575 ~]# netstat -tunlp | grep "22"tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1035/sshdtcp6 0 0 :::22 :::* LISTEN 1035/sshd
PATH变量
定义一些常用软件可执行命令的目录,放入系统中可以快捷查询,无需每次使用时都输入绝对路径,相当于Windows下的环境变量
1. 为什么Linux能够快速输出python可执行文件的位置[root@tylor ~]# which python3/usr/bin/python32.
查看所有环境变量
# 冒号分隔多个环境变量echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
修改Linux的全局配置文件
准备信息 etc/profile末尾添加
### set Chinese supportexport LC_ALL=zh_CN.UTF-8### 这是自定义变量,每次开机都能读取,第一条是系统中文的变量### 我自定义的第一条环境变量export name="一叶知秋"
1. 全局配置文件的名字是 /etc/profile2. 编辑这个文件,写入你希望永久生效的变量和值。系统每次开启都会读取这个文件,让其生效3. 操作步骤,添加先行添加支持中文的环境变量,然后添加自定义变量,最后退出登录再重新登录,相当于reload[root@tylor ~]# vim /etc/profile[root@tylor ~]# echo $name一叶知秋
临时修改环境变量
# 第一步查看python的环境变量[root@tylor ~]# which python/usr/bin/python# 第二步查看系统环境变量[root@tylor ~]# echo $PATHusr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin# 第三步临时修改环境变量[root@tylor ~]# PATH="usr/local/sbin:/usr/local/bin"# 第四步再次查看python环境变量[root@tylor ~]# which python/usr/bin/which: no python in (usr/local/sbin:/usr/local/bin)# 第五步再次查看系统环境变量[root@tylor ~]# echo $PATHusr/local/sbin:/usr/local/bin### 结论: 对系统环境变量的临时修改会影响软件执行文件的查找
Linux单引号和双引号的区别
# 单引号的内容仅仅是字符串,不识别任何其他特殊符号# 双引号能够识别特殊符号# 二者的比较[root@tylor ~]# echo $name一叶知秋[root@tylor ~]# echo '$name'$name[root@tylor ~]# echo "$name"一叶知秋
Vim编辑器的使用
最基本的编辑器
Windows
- 记事本
- sublime
- notepad++
linux
- vi 等同于记事本,很难用,没有语法颜色提示等
- vim 等同于notepad++,有颜色高亮,支持安装第三方插件,语法不全等高级编辑器
Vim使用流程
1. 安装vimyum -y install vim2. vim打开一个不存在的文件等同于新建3. 按下字母 i 进入编辑模式,按下esc退出编辑模式进入命令模式4. 按下 shif + : 进入底线命令模式5. 输入:wq!, write写入内容,quit退出vim ! 强制退出6. 运行该文件[caesar@tylor ~]$ python first.pyHello World!
测试文件内容[以防万一,指定编码集]
#!coding:utf-8print("Hello World!")
参数说明
# 从命令模式进入输入模式,可输入 a, i, oa 指的是在光标的后面开始编辑i 表示在光标处开始编辑o 表示在光标的下一行开始编辑# 在命令模式下,常用的命令$ 快速移动到行尾 % 找到括号的另外一半0 快速移动光标到行首 yy 复制光标当前行x 删除光标所在的字符 3yy 复制光标当前及以后dd 删除整行数据 4dd 删除光标向下的第四行g 移动到文件的第一行 u 撤销上一次的动作G 移动到文件的最后一行 dG 删除光标当前行到行尾的所有内容/string 从开头寻找目标字符[高亮显示]?string 从文件的第几行,向上搜索字符串
底线命令模式
:数字 快速定位到某一行:set nu 显示vim的行号
永久显示行号
vim ~/.vimrc写入 set number
选中所有以及删除
ggvG # 全选d # 删除
