一.Linux常用基础命令
1.tree命令:以树状形式查看指定目录内容(只能查看目录内容,不能查看文件内容)
tree --以树形结构显示当前目录下的文件信息
tree 目录 --树形结构显示指定目录下的文件信息
2.clear :清屏操作
3.ls :查看当前文件夹下的内容
#1)使用方法
ls--显示当前目录下文件信息
ls 目录或文件名 --显示指定目录下文件信息
#2)相关参数
-a:显示指定目录下所有子目录与文件,包含隐藏文件
-R:递归方式列出所有目录中的内容
-h:配合-l以人性的方式显示文件大小
-l:以列表方式显示文件的详细信息
#3)文件类型(根据第一个字符判断)
-: 普通文件
d : 目录
l : 符号链接,相当于windows中的快捷方式
s : 套接字
p : 管道
b : 块设备
c : 字符设备
#4)用户的操作权限(2-10个字符)
其他人对文件的操作权限(8,9,10个字符)
文件所有者对文件的操作权限(2,3,4个字符)
文件所属组用户对文件的操作权限(5,6,7个字符)
#5)参数之间结合使用:
ls -la:列出当前目录下所有文件的相关信息,包括隐藏文件
ls-ltr:列出当前目录下的文件,按照时间逆向排序
#6)通配符
*:表示0个或多个字符
?:表示任一字符
[a-z]:表示a-zde任一字符,若是0-9表示任一数字字符
[abcd]:表示a|b|c|d任一字母
4.cd 切换目录,命令使用方式:cd+路径
# 1)切换到家目录
cd
cd ~
cd /home
cd $HOME
# 2)回到上次目录
cd -
5.pwd:查看用户当前所处的工作目录
6.which:显示命令所在的目录
7.touch:如果文件存在,更新文件的最后修改时间,如果文件不存在,创建新文件(touch文件名)
8.mkdir:创建文件夹(mkdir -p aa/bb/cc 创建多级目录)
9.rmdir:只能删除空文件夹
10.rm:删除文件
-r 删除目录名
-i 提示用户是否删除文件或目录
-f强制删除()以此删除的文件或目录不会放入回收站中,数据不易恢复
11.cp源目录或文件 目录或文件(若有目录拷贝需要用-r 参数; 用-a参数,可以保留被拷贝文件的一些属性信息 )
cp 要拷贝的文件(file1) file(不存在); 创建file, 将file1中的内容拷贝到file
cp file1 file(存在); file1 覆盖 file
cp file dir(存在);拷贝file 到 dir 目录
cp - r dir(存在) dir1(存在); 将dir (包含)目录拷贝到dir1目录中
cp - r dir (存在) dir1(不存在); 创建dir1, 将dir (不包含)中的内容拷贝到dir1中
12.mv改名或者移动文件(mv file1 file2)
#1).改名
mv file(存在) file1(不存在)
mv dir(存在) dir1(不存在)
mv file(存在) file2(存在):file文件覆盖file2文件,file 改名为file2
#2).移动
mv file(文件) dir(存在的目录):将file 文件移动到dir中
mv fir(目录存在) dir1(目录存在):将dir移动到dir1中,dir就会作为dir1的子目录而存在
13.cat(查看):将文件内容一次性输出到终端,使用方式 cat 文件名,缺点:终端显示的内容有限,如果文件太长无法全部显示
14.more:将文件内容显示到终端,但是只能一直向下浏览,不能回退,使用方式 more 文件名
显示下一行:回车
显示下一页:空格
退出:q(ctrl+c)
15.less :文件内容分页显示到终端,可以自由上下浏览。使用方式:less 文件名
显示下一行:回车、ctrl+p、键盘向下键
显示上一行:ctrl+n、键盘向上键
显示下一页:空格、PageDown
显示上一页:PageUp
退出:q
16.head:从文件头部开始查看前n行的内容
#使用方式 如果没有指定行数,默认显示前10行
head -n[行数] 文件名
17.tail:从文件尾部向上查看最后n行的内容
#使用方式 如果没有指定行数,默认显示最后10行内容
tail -n[行数] 文件名
18.重定向
# 文件存在覆盖
ls -l > text.log 2>&1
# 文件存在,在末尾追加
ls -l >> test.log 2>&1
19.管道:一个命令的输出可以通过管道作为另一个管道的输入(参数)
20.软连接
1) ln -s 文件名 快捷方式的名字
2) 目录也可以创建软连接
3) 注意事项
<1>ln创建软连接要用绝对路径,因为如果不使用绝对路径,一旦这个连接文件发生位置变动,就不能找到那个文件了
<2>软连接文件的大小是:路径+文件名的总字节数
21.硬连接
1)ln 文件名 硬连接的名字
2)本质:不同文件名所在的inode节点是相同的,相同的inode节点指向了相同的数据块,所以他们的文件内容是一样的,文件内容会同步
3)注意事项
<1>不能建在目录上
<2>对绝对路径没有要求
<3>不能跨文件系统
4)应用场景
<1>可以起到同步的作用(修改file的内容,会在其余三个硬连接文件上同步)
<2>可以起到保护文件的作用(删除文件的时候,只要硬连接计数比不为0,不会真正删除)
22.wc:显示文件行数,字节,单词数
1) wc -l file 显示文件的总行数
2) wc -c file 显示文件的总字节数
3) wc -w file 显示文件的总单词数
4) wc file 显示文件的总行数,单词数和总字节数
23.whoami:显示当前登录的用户名
24.who:查看当前所有登录系统的用户信息
25.shutdown | reboot | init
reboot:重启系统
shutdown -r now:重启系统,shotdown会给别的用户提示
shutdown -h now:立刻关机
shutdown -h 15:30:系统在今天的15:30会关机
shutdown -h + 10:再过十分后自动关机
init 0: 关机
26.exit:退出当前登录的终端或者远程终端或者 su 切换的用户
27.passwd:修改用户密码
28.sudo临时获得root权限(sudo 命令--会提示用户输入当前用户的密码)
29.ssh
ssh要登录的用户名@ip, 然后提示输入密码
30. ftp
ftp ip,然后提示输入用户名和密码,然后就登录到了远程服务器上,get是下载, put是上传文件
例:ftp localhost-->密码--->pwd-->cd day02-->get a03.txt (下载)
例:ftp localhost-->密码--->pwd-->cd day02-->put 23.txt (上传)
31.scp:远程拷贝文件,若拷贝目录需要 -r 参数
1) scp -r mytest@ip:/home/mytest/.... 本地目录
例: scp python@localhost:/home/python/day02/a03.txt ./
2) scp -r filename 远程机器用户@ip:路径
例:scp 23.txt python@localhost:/home/python/day02/
二.用户权限、用户、用户组
1.chmod 修改文件权限
1) 文字设定法
命令:chmod [who] [+|-|=] [mode] 文件名
操作对象【who】
u -- 用户(user)
g -- 同组用户(group)
o -- 其他用户(other)
a -- 所用用户(all)【默认】
操作符【+-=】
+ -- 添加权限
- -- 取消权限
= -- 赋予给定权限并取消其他权限
权限【mode】
r -- 读
w -- 写
x -- 执行
2)数字设定法
命令:chmod [+|-|=][mode] 文件名
操作符【+-=】
+ -- 添加权限
- -- 取消权限
= -- 赋予给定权限并取消其他权限 (默认为=)
数字表示的含义
0 -- 没有权限(-)
1 -- 执行权限(x)
2 -- 写权限(w)
4 -- 读权限(r)
2.chown :修改文件所有者和所属组
1) 修改文件所有者用法:chown 文件所有者 文件名
sudo chown mytest file.txt
2) 修改文件所有者和所属组用法:chown 文件所有者:文件所属组 文件名
sudo chown mytest:mytest file.txt
3.chgrp:修改文件所属组
使用方法:chgrp 用户组 文件或目录
sudo chgrp mytest file.txt
4.find
1)按文件名查询 -name
find 路径 -name "文件名"
2)按文件类型查询 -type
find 路径 -type 类型(普通类型用f表示而不是 -)
3) 按文件大小查询 -size
命令:find 路径 -size 范围
范围
大于:+表示 -- +100k
小于:-表示 -- -100k
等于: 不需要添加符号 -- 100k
大小
M 必须大写(10M)
k 必须小写(20k)
c 表示字节数
4)按文件日期
创建日期:-ctime -n/+ n
-n: n天以内
+n: n天以外
修改日期:-mtime -n/+n
访问日期:-atime -n/+n
5) 高级查询
find ./ -type d -exec shell命令 {} \;
find ./ -type d -exec ls -l {} \;
find ./ -type d -ok shell命令 {} \;
find ./ -type d -exec ls -l {} \;
find ./ -type d -ok shell命令 {} \;
find ./ -type d -ok ls -l {} \;
ok比较安全, 特别是在执行rm删除文件的时候.
find ./ -type d | xargs shell命令
find ./ -type d | xargs ls -l
5. grep
l grep -r(有目录) “查找的内容” 搜索的路径
-r参数, 若是目录, 则可以递归搜索
-n参数可以显示该查找内容所在的行号
-i参数可以忽略大小写进行查找
-v参数不显示含有某字符串
2 搜索当前目录下包含hello world字符串的文件
grep -r -n "hello world" ./ ------显示行号
grep -r -i -n "HELLO world" ./ -------忽略大小小查找
3 先使用find命令查找文件, 然后使用grep命令查找哪些文件包含某个字符串
find . -name "*.c" | xargs grep -n "main"
6.压缩工具
l gzip和bzip2
不能压缩目录,只能一个一个文件进行压缩,压缩之后会使原文件消失
gzip * 压缩当前目录下所有的文件, 但是目录不能压缩
gunzip * 解压当前目录下所有的.gz文件
bzip2 * 压缩当前目录下所有的文件, 但是目录不能压缩
bunzip2 * 解压当前目录下所有的. bz2文件
2 tar工具(*****)
相关参数说明
z:用gzip来压缩/解压缩文件
j:用bzip2来压缩/解压缩文件
c:create, 创建新的压缩文件, 与x互斥使用
x:从压缩文件中释放文件, 与c互斥使用
v:详细报告tar处理的文件信息
f:指定压缩文件的名字
t: 查看压缩包中有哪些文件
3 压缩:
tar cvf 压缩包名字.tar 原材料[要打包压缩的文件或目录]
tar zcvf 压缩包名字.tar.gz 原材料[要打包压缩的文件或目录]
tar jcvf 压缩包名字.tar.bz2 原材料[要打包压缩的文件或目录]
4 解压缩:
tar xvf 已有的压缩包(test.tar.gz)tar
tar zxvf 已有的压缩包(test.tar.gz)
tar jxvf 已有的压缩包(test.tar.bz2)
解压到指定目录:添加参数 -C(大写)
tar zxvf test.tar.gz -C 解压目录(./mytest)
5 查看压缩包中有哪些文件
tar -tvf test.tar
6 zip工具
压缩:zip -r 压缩包名 要压缩的文件(含文件或目录)
压缩目录需要使用参数-r
使用该命令不需要指定压缩包后缀
zip -r xxx file dir ---生成xxx.zip文件
解压缩:unzip压缩包名
解压缩到指定目录:添加参数 –d 解压目录
unzip xxx.zip -d /home/itcast/test/day1
注意:解压目录若不存在则会创建.
7.软件的安装卸载
1.在线安装
软件安装:sudo apt-get install 软件名
软件卸载:sudo apt-get remove 软件名
更新软件列表:sudo apt-get update
清理安装包:sudo apt-get clean
清理的是缓存路径:/var/cache/apt/archives
2 软件包安装
在Ubuntu系统下必须有deb格式的安装包
软件安装
sudo dpkg -i xxx.deb
软件卸载
sudo dpkg –r 软件名
8.vim
1). 三种基本工作模式:命令模式、文本输入模式、末行模式
2). 命令模式:用户按下ESC键, 就可以使vi进入命令模式下
快捷键 |
操作 |
h |
光标左移 |
j |
光标下移 |
k |
光标上移 |
l |
光标右移 |
M |
移动光标到中间行 |
gg |
光标移动到文件开头 |
G/L |
光标移动到文件末尾的行首 |
O |
光标移到行首 |
$ |
光标移到行尾 |
nG |
行跳转,例12G,跳到12行处 |
快捷键 |
操作 |
x |
删除光标后一个字符,相当于Del |
X |
删除光标前一个字符,相当于Backspace |
dw |
删除光标开始位置的字,包含光标所在字符 |
D[d$] |
删除光标后本行所有内容,包含光标所在字符 |
dd |
删除光标所在行(本质其实是剪切) |
ndd |
从光标当前行向下删除指定的行数,如15dd |
v/ctrl+v |
使用h、j、k、l移动选择内容,然后按d删除其中ctrl+v是列模式,v为非列模式 |
快捷键 |
操作 |
u |
一步一步撤销,相当于word文档ctrl+z |
ctrl-r |
反撤销,相当于word文档的ctrl+y |
快捷键 |
操作 |
yy |
复制当前行 |
nyy |
复制n行,如10yy |
p |
在光标所在位置向下新开辟一行,粘贴 |
P |
在光标所在位置向上新开辟一行,粘贴 |
剪切操作 |
按dd或者ndd删除,将删除的行保存到剪贴板中,然后按p/P就可以粘贴了 |
快捷键 |
操作 |
v/ctrl+v |
使用h、j、k、l移动选择内容;使用d删除 使用y赋值 使用p粘贴到光标的后面 使用P粘贴到光标的前面 |
快捷键 |
操作 |
r |
替换当前字符 |
R |
替换当前行光标后的字符 |
快捷键 |
操作 |
>> |
文本行右移 |
<< |
文本行左移动 |
快捷键 |
操作 |
/ |
/xxxx, 从光标所在位置开始搜索,按n向下搜索,按N向上搜索 |
? |
?xxxx, 从光标所在的到位置开始搜索,按n向上搜索,按N向下搜索 |
3). 文本输入模式:从命令模式切换到文本输入模式模式只需输入如下命令:
快捷键 |
操作 |
i |
在光标前插入 |
a |
在光标后插入 |
I |
在光标所在行的行首插入 |
A |
在光标所在行的行尾插入 |
o |
在光标所在的行的下面新创建一行,行首插入 |
O |
在光标所在的行的上面新创建一行,行首插入 |
s |
删除光标后边的字符,从光标当前位置插入 |
S |
删除光标所在当前行,从行首插入 |
按列模式插入 |
先按ctrl+v进入列模式,按hjkl移动选定某列,按I或者shift+i 向前插入,然后插入字符,最后按两次esc |
4). 末行模式:从命令模式切换的末行模式,输入冒号(:)
快捷键 |
操作 |
q |
退出 |
q! |
强制退出,不保存修改内容 |
w |
保存修改内容,不退出 |
wq |
保存并退出 |
x |
相当与wq |
快捷键 |
操作 |
:s/old/new/ |
光标所在行的第一个old替换为new |
:s/old/new/g |
光标所在行的所有old替换为new |
:m, ns/old/new/g |
将第m行至第n行之间的old全部替换成new |
:%s/old/new/g |
当前文件的所有old替换为new |
:1, $s/old/new/g |
当前文件爱你的所有old替换为new |
:%s/old/new/gc |
同上,但是每次替换需要用户确认 |
下面表格中old表示原字符串,new表示新字符串
快捷键 |
操作 |
:s/old/new/ |
光标所在行的第一个old替换为new |
:s/old/new/g |
光标所在行的所有old替换为new |
:m, ns/old/new/g |
将第m行至第n行之间的old全部替换成new |
:%s/old/new/g |
当前文件的所有old替换为new |
:1, $s/old/new/g |
当前文件爱你的所有old替换为new |
:%s/old/new/gc |
同上,但是每次替换需要用户确认 |
快捷键 |
操作 |
ctr+u |
向上翻半屏 |
ctrl+d |
向下翻半屏 |
ctrl+f |
向上翻一屏 |
ctrl+b |
向后翻一屏 |
5). 分屏:在末行模式下执行shell命令,!shell命令 按下两次esc可以回到命令模式;从末行模式切换回命令模式,按两次ESC,退格(backspace)或者回车键
* 在打开文件之后分屏
快捷键 |
操作 |
sp |
当前文件水平分屏 |
vsp |
当前文件垂直分屏 |
sp 文件名 |
当前文件和另一个文件水平分屏 |
vsp 文件名 |
当前文件和另一个文件垂直分屏 |
ctrl-w-w |
在多个窗口切换光标 |
wall/wqall/xall/qall/qall! |
保存/保存退出/保存退出/退出/强制退出分屏窗口 |
分屏: vim -on file1 file2...
垂直分屏: vim -On file1 file2 ...
注意 : n可以省略,有几个文件就分即屏
6).vim的配置文件
用户级别配置文件
~/.vimrc, 修改用户级别的配置文件只会影响当前用户, 不会影响其他的用户.
例如: 在用户的家目录下的.vimrc文件中添加
set tabstop=4 ----设置缩进4个空格
set nu ----设置行号
set shiftwidth=4 ---设置gg=G缩进4个空格, 默认是缩进8个空格
系统级别配置文件
/etc/vim/vimrc, 修改了系统级别的配置文件将影响系统下的所有用户.
说明: 由于linux是多用户操作系统, 建议只在用户级别的配置文件下进行修改, 不要影响其他用户.
一.Linux常用基础命令
1.tree命令:以树状形式查看指定目录内容(只能查看目录内容,不能查看文件内容)
tree --以树形结构显示当前目录下的文件信息
tree 目录 --树形结构显示指定目录下的文件信息
2.clear :清屏操作
3.ls :查看当前文件夹下的内容
#1)使用方法
ls--显示当前目录下文件信息
ls 目录或文件名 --显示指定目录下文件信息
#2)相关参数
-a:显示指定目录下所有子目录与文件,包含隐藏文件
-R:递归方式列出所有目录中的内容
-h:配合-l以人性的方式显示文件大小
-l:以列表方式显示文件的详细信息
#3)文件类型(根据第一个字符判断)
-: 普通文件
d : 目录
l : 符号链接,相当于windows中的快捷方式
s : 套接字
p : 管道
b : 块设备
c : 字符设备
#4)用户的操作权限(2-10个字符)
其他人对文件的操作权限(8,9,10个字符)
文件所有者对文件的操作权限(2,3,4个字符)
文件所属组用户对文件的操作权限(5,6,7个字符)
#5)参数之间结合使用:
ls -la:列出当前目录下所有文件的相关信息,包括隐藏文件
ls-ltr:列出当前目录下的文件,按照时间逆向排序
#6)通配符
*:表示0个或多个字符
?:表示任一字符
[a-z]:表示a-zde任一字符,若是0-9表示任一数字字符
[abcd]:表示a|b|c|d任一字母
4.cd 切换目录,命令使用方式:cd+路径
# 1)切换到家目录
cd
cd ~
cd /home
cd $HOME
# 2)回到上次目录
cd -
5.pwd:查看用户当前所处的工作目录
6.which:显示命令所在的目录
7.touch:如果文件存在,更新文件的最后修改时间,如果文件不存在,创建新文件(touch文件名)
8.mkdir:创建文件夹(mkdir -p aa/bb/cc 创建多级目录)
9.rmdir:只能删除空文件夹
10.rm:删除文件
-r 删除目录名
-i 提示用户是否删除文件或目录
-f强制删除()以此删除的文件或目录不会放入回收站中,数据不易恢复
11.cp源目录或文件 目录或文件(若有目录拷贝需要用-r 参数; 用-a参数,可以保留被拷贝文件的一些属性信息 )
cp 要拷贝的文件(file1) file(不存在); 创建file, 将file1中的内容拷贝到file
cp file1 file(存在); file1 覆盖 file
cp file dir(存在);拷贝file 到 dir 目录
cp - r dir(存在) dir1(存在); 将dir (包含)目录拷贝到dir1目录中
cp - r dir (存在) dir1(不存在); 创建dir1, 将dir (不包含)中的内容拷贝到dir1中
12.mv改名或者移动文件(mv file1 file2)
#1).改名
mv file(存在) file1(不存在)
mv dir(存在) dir1(不存在)
mv file(存在) file2(存在):file文件覆盖file2文件,file 改名为file2
#2).移动
mv file(文件) dir(存在的目录):将file 文件移动到dir中
mv fir(目录存在) dir1(目录存在):将dir移动到dir1中,dir就会作为dir1的子目录而存在
13.cat(查看):将文件内容一次性输出到终端,使用方式 cat 文件名,缺点:终端显示的内容有限,如果文件太长无法全部显示
14.more:将文件内容显示到终端,但是只能一直向下浏览,不能回退,使用方式 more 文件名
显示下一行:回车
显示下一页:空格
退出:q(ctrl+c)
15.less :文件内容分页显示到终端,可以自由上下浏览。使用方式:less 文件名
显示下一行:回车、ctrl+p、键盘向下键
显示上一行:ctrl+n、键盘向上键
显示下一页:空格、PageDown
显示上一页:PageUp
退出:q
16.head:从文件头部开始查看前n行的内容
#使用方式 如果没有指定行数,默认显示前10行
head -n[行数] 文件名
17.tail:从文件尾部向上查看最后n行的内容
#使用方式 如果没有指定行数,默认显示最后10行内容
tail -n[行数] 文件名
18.重定向
# 文件存在覆盖
ls -l > text.log 2>&1
# 文件存在,在末尾追加
ls -l >> test.log 2>&1
19.管道:一个命令的输出可以通过管道作为另一个管道的输入(参数)
20.软连接
1) ln -s 文件名 快捷方式的名字
2) 目录也可以创建软连接
3) 注意事项
<1>ln创建软连接要用绝对路径,因为如果不使用绝对路径,一旦这个连接文件发生位置变动,就不能找到那个文件了
<2>软连接文件的大小是:路径+文件名的总字节数
21.硬连接
1)ln 文件名 硬连接的名字
2)本质:不同文件名所在的inode节点是相同的,相同的inode节点指向了相同的数据块,所以他们的文件内容是一样的,文件内容会同步
3)注意事项
<1>不能建在目录上
<2>对绝对路径没有要求
<3>不能跨文件系统
4)应用场景
<1>可以起到同步的作用(修改file的内容,会在其余三个硬连接文件上同步)
<2>可以起到保护文件的作用(删除文件的时候,只要硬连接计数比不为0,不会真正删除)
22.wc:显示文件行数,字节,单词数
1) wc -l file 显示文件的总行数
2) wc -c file 显示文件的总字节数
3) wc -w file 显示文件的总单词数
4) wc file 显示文件的总行数,单词数和总字节数
23.whoami:显示当前登录的用户名
24.who:查看当前所有登录系统的用户信息
25.shutdown | reboot | init
reboot:重启系统
shutdown -r now:重启系统,shotdown会给别的用户提示
shutdown -h now:立刻关机
shutdown -h 15:30:系统在今天的15:30会关机
shutdown -h + 10:再过十分后自动关机
init 0: 关机
26.exit:退出当前登录的终端或者远程终端或者 su 切换的用户
27.passwd:修改用户密码
28.sudo临时获得root权限(sudo 命令--会提示用户输入当前用户的密码)
29.ssh
ssh要登录的用户名@ip, 然后提示输入密码
30. ftp
ftp ip,然后提示输入用户名和密码,然后就登录到了远程服务器上,get是下载, put是上传文件
例:ftp localhost-->密码--->pwd-->cd day02-->get a03.txt (下载)
例:ftp localhost-->密码--->pwd-->cd day02-->put 23.txt (上传)
31.scp:远程拷贝文件,若拷贝目录需要 -r 参数
1) scp -r mytest@ip:/home/mytest/.... 本地目录
例: scp python@localhost:/home/python/day02/a03.txt ./
2) scp -r filename 远程机器用户@ip:路径
例:scp 23.txt python@localhost:/home/python/day02/
二.用户权限、用户、用户组
1.chmod 修改文件权限
1) 文字设定法
命令:chmod [who] [+|-|=] [mode] 文件名
操作对象【who】
u -- 用户(user)
g -- 同组用户(group)
o -- 其他用户(other)
a -- 所用用户(all)【默认】
操作符【+-=】
+ -- 添加权限
- -- 取消权限
= -- 赋予给定权限并取消其他权限
权限【mode】
r -- 读
w -- 写
x -- 执行
2)数字设定法
命令:chmod [+|-|=][mode] 文件名
操作符【+-=】
+ -- 添加权限
- -- 取消权限
= -- 赋予给定权限并取消其他权限 (默认为=)
数字表示的含义
0 -- 没有权限(-)
1 -- 执行权限(x)
2 -- 写权限(w)
4 -- 读权限(r)
2.chown :修改文件所有者和所属组
1) 修改文件所有者用法:chown 文件所有者 文件名
sudo chown mytest file.txt
2) 修改文件所有者和所属组用法:chown 文件所有者:文件所属组 文件名
sudo chown mytest:mytest file.txt
3.chgrp:修改文件所属组
使用方法:chgrp 用户组 文件或目录
sudo chgrp mytest file.txt
4.find
1)按文件名查询 -name
find 路径 -name "文件名"
2)按文件类型查询 -type
find 路径 -type 类型(普通类型用f表示而不是 -)
3) 按文件大小查询 -size
命令:find 路径 -size 范围
范围
大于:+表示 -- +100k
小于:-表示 -- -100k
等于: 不需要添加符号 -- 100k
大小
M 必须大写(10M)
k 必须小写(20k)
c 表示字节数
4)按文件日期
创建日期:-ctime -n/+ n
-n: n天以内
+n: n天以外
修改日期:-mtime -n/+n
访问日期:-atime -n/+n
5) 高级查询
find ./ -type d -exec shell命令 {} \;
find ./ -type d -exec ls -l {} \;
find ./ -type d -ok shell命令 {} \;
find ./ -type d -exec ls -l {} \;
find ./ -type d -ok shell命令 {} \;
find ./ -type d -ok ls -l {} \;
ok比较安全, 特别是在执行rm删除文件的时候.
find ./ -type d | xargs shell命令
find ./ -type d | xargs ls -l
5. grep
l grep -r(有目录) “查找的内容” 搜索的路径
-r参数, 若是目录, 则可以递归搜索
-n参数可以显示该查找内容所在的行号
-i参数可以忽略大小写进行查找
-v参数不显示含有某字符串
2 搜索当前目录下包含hello world字符串的文件
grep -r -n "hello world" ./ ------显示行号
grep -r -i -n "HELLO world" ./ -------忽略大小小查找
3 先使用find命令查找文件, 然后使用grep命令查找哪些文件包含某个字符串
find . -name "*.c" | xargs grep -n "main"
6.压缩工具
l gzip和bzip2
不能压缩目录,只能一个一个文件进行压缩,压缩之后会使原文件消失
gzip * 压缩当前目录下所有的文件, 但是目录不能压缩
gunzip * 解压当前目录下所有的.gz文件
bzip2 * 压缩当前目录下所有的文件, 但是目录不能压缩
bunzip2 * 解压当前目录下所有的. bz2文件
2 tar工具(*****)
相关参数说明
z:用gzip来压缩/解压缩文件
j:用bzip2来压缩/解压缩文件
c:create, 创建新的压缩文件, 与x互斥使用
x:从压缩文件中释放文件, 与c互斥使用
v:详细报告tar处理的文件信息
f:指定压缩文件的名字
t: 查看压缩包中有哪些文件
3 压缩:
tar cvf 压缩包名字.tar 原材料[要打包压缩的文件或目录]
tar zcvf 压缩包名字.tar.gz 原材料[要打包压缩的文件或目录]
tar jcvf 压缩包名字.tar.bz2 原材料[要打包压缩的文件或目录]
4 解压缩:
tar xvf 已有的压缩包(test.tar.gz)tar
tar zxvf 已有的压缩包(test.tar.gz)
tar jxvf 已有的压缩包(test.tar.bz2)
解压到指定目录:添加参数 -C(大写)
tar zxvf test.tar.gz -C 解压目录(./mytest)
5 查看压缩包中有哪些文件
tar -tvf test.tar
6 zip工具
压缩:zip -r 压缩包名 要压缩的文件(含文件或目录)
压缩目录需要使用参数-r
使用该命令不需要指定压缩包后缀
zip -r xxx file dir ---生成xxx.zip文件
解压缩:unzip压缩包名
解压缩到指定目录:添加参数 –d 解压目录
unzip xxx.zip -d /home/itcast/test/day1
注意:解压目录若不存在则会创建.
7.软件的安装卸载
1.在线安装
软件安装:sudo apt-get install 软件名
软件卸载:sudo apt-get remove 软件名
更新软件列表:sudo apt-get update
清理安装包:sudo apt-get clean
清理的是缓存路径:/var/cache/apt/archives
2 软件包安装
在Ubuntu系统下必须有deb格式的安装包
软件安装
sudo dpkg -i xxx.deb
软件卸载
sudo dpkg –r 软件名
8.vim
1). 三种基本工作模式:命令模式、文本输入模式、末行模式
2). 命令模式:用户按下ESC键, 就可以使vi进入命令模式下
快捷键 |
操作 |
h |
光标左移 |
j |
光标下移 |
k |
光标上移 |
l |
光标右移 |
M |
移动光标到中间行 |
gg |
光标移动到文件开头 |
G/L |
光标移动到文件末尾的行首 |
O |
光标移到行首 |
$ |
光标移到行尾 |
nG |
行跳转,例12G,跳到12行处 |
快捷键 |
操作 |
x |
删除光标后一个字符,相当于Del |
X |
删除光标前一个字符,相当于Backspace |
dw |
删除光标开始位置的字,包含光标所在字符 |
D[d$] |
删除光标后本行所有内容,包含光标所在字符 |
dd |
删除光标所在行(本质其实是剪切) |
ndd |
从光标当前行向下删除指定的行数,如15dd |
v/ctrl+v |
使用h、j、k、l移动选择内容,然后按d删除其中ctrl+v是列模式,v为非列模式 |
快捷键 |
操作 |
u |
一步一步撤销,相当于word文档ctrl+z |
ctrl-r |
反撤销,相当于word文档的ctrl+y |
快捷键 |
操作 |
yy |
复制当前行 |
nyy |
复制n行,如10yy |
p |
在光标所在位置向下新开辟一行,粘贴 |
P |
在光标所在位置向上新开辟一行,粘贴 |
剪切操作 |
按dd或者ndd删除,将删除的行保存到剪贴板中,然后按p/P就可以粘贴了 |
快捷键 |
操作 |
v/ctrl+v |
使用h、j、k、l移动选择内容;使用d删除 使用y赋值 使用p粘贴到光标的后面 使用P粘贴到光标的前面 |
快捷键 |
操作 |
r |
替换当前字符 |
R |
替换当前行光标后的字符 |
快捷键 |
操作 |
>> |
文本行右移 |
<< |
文本行左移动 |
快捷键 |
操作 |
/ |
/xxxx, 从光标所在位置开始搜索,按n向下搜索,按N向上搜索 |
? |
?xxxx, 从光标所在的到位置开始搜索,按n向上搜索,按N向下搜索 |
3). 文本输入模式:从命令模式切换到文本输入模式模式只需输入如下命令:
快捷键 |
操作 |
i |
在光标前插入 |
a |
在光标后插入 |
I |
在光标所在行的行首插入 |
A |
在光标所在行的行尾插入 |
o |
在光标所在的行的下面新创建一行,行首插入 |
O |
在光标所在的行的上面新创建一行,行首插入 |
s |
删除光标后边的字符,从光标当前位置插入 |
S |
删除光标所在当前行,从行首插入 |
按列模式插入 |
先按ctrl+v进入列模式,按hjkl移动选定某列,按I或者shift+i 向前插入,然后插入字符,最后按两次esc |
4). 末行模式:从命令模式切换的末行模式,输入冒号(:)
快捷键 |
操作 |
q |
退出 |
q! |
强制退出,不保存修改内容 |
w |
保存修改内容,不退出 |
wq |
保存并退出 |
x |
相当与wq |
快捷键 |
操作 |
:s/old/new/ |
光标所在行的第一个old替换为new |
:s/old/new/g |
光标所在行的所有old替换为new |
:m, ns/old/new/g |
将第m行至第n行之间的old全部替换成new |
:%s/old/new/g |
当前文件的所有old替换为new |
:1, $s/old/new/g |
当前文件爱你的所有old替换为new |
:%s/old/new/gc |
同上,但是每次替换需要用户确认 |
下面表格中old表示原字符串,new表示新字符串
快捷键 |
操作 |
:s/old/new/ |
光标所在行的第一个old替换为new |
:s/old/new/g |
光标所在行的所有old替换为new |
:m, ns/old/new/g |
将第m行至第n行之间的old全部替换成new |
:%s/old/new/g |
当前文件的所有old替换为new |
:1, $s/old/new/g |
当前文件爱你的所有old替换为new |
:%s/old/new/gc |
同上,但是每次替换需要用户确认 |
快捷键 |
操作 |
ctr+u |
向上翻半屏 |
ctrl+d |
向下翻半屏 |
ctrl+f |
向上翻一屏 |
ctrl+b |
向后翻一屏 |
5). 分屏:在末行模式下执行shell命令,!shell命令 按下两次esc可以回到命令模式;从末行模式切换回命令模式,按两次ESC,退格(backspace)或者回车键
* 在打开文件之后分屏
快捷键 |
操作 |
sp |
当前文件水平分屏 |
vsp |
当前文件垂直分屏 |
sp 文件名 |
当前文件和另一个文件水平分屏 |
vsp 文件名 |
当前文件和另一个文件垂直分屏 |
ctrl-w-w |
在多个窗口切换光标 |
wall/wqall/xall/qall/qall! |
保存/保存退出/保存退出/退出/强制退出分屏窗口 |
分屏: vim -on file1 file2...
垂直分屏: vim -On file1 file2 ...
注意 : n可以省略,有几个文件就分即屏
6).vim的配置文件
用户级别配置文件
~/.vimrc, 修改用户级别的配置文件只会影响当前用户, 不会影响其他的用户.
例如: 在用户的家目录下的.vimrc文件中添加
set tabstop=4 ----设置缩进4个空格
set nu ----设置行号
set shiftwidth=4 ---设置gg=G缩进4个空格, 默认是缩进8个空格
系统级别配置文件
/etc/vim/vimrc, 修改了系统级别的配置文件将影响系统下的所有用户.
说明: 由于linux是多用户操作系统, 建议只在用户级别的配置文件下进行修改, 不要影响其他用户.
一.Linux常用基础命令
1.tree命令:以树状形式查看指定目录内容(只能查看目录内容,不能查看文件内容)
tree --以树形结构显示当前目录下的文件信息
tree 目录 --树形结构显示指定目录下的文件信息
2.clear :清屏操作
3.ls :查看当前文件夹下的内容
#1)使用方法
ls--显示当前目录下文件信息
ls 目录或文件名 --显示指定目录下文件信息
#2)相关参数
-a:显示指定目录下所有子目录与文件,包含隐藏文件
-R:递归方式列出所有目录中的内容
-h:配合-l以人性的方式显示文件大小
-l:以列表方式显示文件的详细信息
#3)文件类型(根据第一个字符判断)
-: 普通文件
d : 目录
l : 符号链接,相当于windows中的快捷方式
s : 套接字
p : 管道
b : 块设备
c : 字符设备
#4)用户的操作权限(2-10个字符)
其他人对文件的操作权限(8,9,10个字符)
文件所有者对文件的操作权限(2,3,4个字符)
文件所属组用户对文件的操作权限(5,6,7个字符)
#5)参数之间结合使用:
ls -la:列出当前目录下所有文件的相关信息,包括隐藏文件
ls-ltr:列出当前目录下的文件,按照时间逆向排序
#6)通配符
*:表示0个或多个字符
?:表示任一字符
[a-z]:表示a-zde任一字符,若是0-9表示任一数字字符
[abcd]:表示a|b|c|d任一字母
4.cd 切换目录,命令使用方式:cd+路径
# 1)切换到家目录
cd
cd ~
cd /home
cd $HOME
# 2)回到上次目录
cd -
5.pwd:查看用户当前所处的工作目录
6.which:显示命令所在的目录
7.touch:如果文件存在,更新文件的最后修改时间,如果文件不存在,创建新文件(touch文件名)
8.mkdir:创建文件夹(mkdir -p aa/bb/cc 创建多级目录)
9.rmdir:只能删除空文件夹
10.rm:删除文件
-r 删除目录名
-i 提示用户是否删除文件或目录
-f强制删除()以此删除的文件或目录不会放入回收站中,数据不易恢复
11.cp源目录或文件 目录或文件(若有目录拷贝需要用-r 参数; 用-a参数,可以保留被拷贝文件的一些属性信息 )
cp 要拷贝的文件(file1) file(不存在); 创建file, 将file1中的内容拷贝到file
cp file1 file(存在); file1 覆盖 file
cp file dir(存在);拷贝file 到 dir 目录
cp - r dir(存在) dir1(存在); 将dir (包含)目录拷贝到dir1目录中
cp - r dir (存在) dir1(不存在); 创建dir1, 将dir (不包含)中的内容拷贝到dir1中
12.mv改名或者移动文件(mv file1 file2)
#1).改名
mv file(存在) file1(不存在)
mv dir(存在) dir1(不存在)
mv file(存在) file2(存在):file文件覆盖file2文件,file 改名为file2
#2).移动
mv file(文件) dir(存在的目录):将file 文件移动到dir中
mv fir(目录存在) dir1(目录存在):将dir移动到dir1中,dir就会作为dir1的子目录而存在
13.cat(查看):将文件内容一次性输出到终端,使用方式 cat 文件名,缺点:终端显示的内容有限,如果文件太长无法全部显示
14.more:将文件内容显示到终端,但是只能一直向下浏览,不能回退,使用方式 more 文件名
显示下一行:回车
显示下一页:空格
退出:q(ctrl+c)
15.less :文件内容分页显示到终端,可以自由上下浏览。使用方式:less 文件名
显示下一行:回车、ctrl+p、键盘向下键
显示上一行:ctrl+n、键盘向上键
显示下一页:空格、PageDown
显示上一页:PageUp
退出:q
16.head:从文件头部开始查看前n行的内容
#使用方式 如果没有指定行数,默认显示前10行
head -n[行数] 文件名
17.tail:从文件尾部向上查看最后n行的内容
#使用方式 如果没有指定行数,默认显示最后10行内容
tail -n[行数] 文件名
18.重定向
# 文件存在覆盖
ls -l > text.log 2>&1
# 文件存在,在末尾追加
ls -l >> test.log 2>&1
19.管道:一个命令的输出可以通过管道作为另一个管道的输入(参数)
20.软连接
1) ln -s 文件名 快捷方式的名字
2) 目录也可以创建软连接
3) 注意事项
<1>ln创建软连接要用绝对路径,因为如果不使用绝对路径,一旦这个连接文件发生位置变动,就不能找到那个文件了
<2>软连接文件的大小是:路径+文件名的总字节数
21.硬连接
1)ln 文件名 硬连接的名字
2)本质:不同文件名所在的inode节点是相同的,相同的inode节点指向了相同的数据块,所以他们的文件内容是一样的,文件内容会同步
3)注意事项
<1>不能建在目录上
<2>对绝对路径没有要求
<3>不能跨文件系统
4)应用场景
<1>可以起到同步的作用(修改file的内容,会在其余三个硬连接文件上同步)
<2>可以起到保护文件的作用(删除文件的时候,只要硬连接计数比不为0,不会真正删除)
22.wc:显示文件行数,字节,单词数
1) wc -l file 显示文件的总行数
2) wc -c file 显示文件的总字节数
3) wc -w file 显示文件的总单词数
4) wc file 显示文件的总行数,单词数和总字节数
23.whoami:显示当前登录的用户名
24.who:查看当前所有登录系统的用户信息
25.shutdown | reboot | init
reboot:重启系统
shutdown -r now:重启系统,shotdown会给别的用户提示
shutdown -h now:立刻关机
shutdown -h 15:30:系统在今天的15:30会关机
shutdown -h + 10:再过十分后自动关机
init 0: 关机
26.exit:退出当前登录的终端或者远程终端或者 su 切换的用户
27.passwd:修改用户密码
28.sudo临时获得root权限(sudo 命令--会提示用户输入当前用户的密码)
29.ssh
ssh要登录的用户名@ip, 然后提示输入密码
30. ftp
ftp ip,然后提示输入用户名和密码,然后就登录到了远程服务器上,get是下载, put是上传文件
例:ftp localhost-->密码--->pwd-->cd day02-->get a03.txt (下载)
例:ftp localhost-->密码--->pwd-->cd day02-->put 23.txt (上传)
31.scp:远程拷贝文件,若拷贝目录需要 -r 参数
1) scp -r mytest@ip:/home/mytest/.... 本地目录
例: scp python@localhost:/home/python/day02/a03.txt ./
2) scp -r filename 远程机器用户@ip:路径
例:scp 23.txt python@localhost:/home/python/day02/
二.用户权限、用户、用户组
1.chmod 修改文件权限
1) 文字设定法
命令:chmod [who] [+|-|=] [mode] 文件名
操作对象【who】
u -- 用户(user)
g -- 同组用户(group)
o -- 其他用户(other)
a -- 所用用户(all)【默认】
操作符【+-=】
+ -- 添加权限
- -- 取消权限
= -- 赋予给定权限并取消其他权限
权限【mode】
r -- 读
w -- 写
x -- 执行
2)数字设定法
命令:chmod [+|-|=][mode] 文件名
操作符【+-=】
+ -- 添加权限
- -- 取消权限
= -- 赋予给定权限并取消其他权限 (默认为=)
数字表示的含义
0 -- 没有权限(-)
1 -- 执行权限(x)
2 -- 写权限(w)
4 -- 读权限(r)
2.chown :修改文件所有者和所属组
1) 修改文件所有者用法:chown 文件所有者 文件名
sudo chown mytest file.txt
2) 修改文件所有者和所属组用法:chown 文件所有者:文件所属组 文件名
sudo chown mytest:mytest file.txt
3.chgrp:修改文件所属组
使用方法:chgrp 用户组 文件或目录
sudo chgrp mytest file.txt
4.find
1)按文件名查询 -name
find 路径 -name "文件名"
2)按文件类型查询 -type
find 路径 -type 类型(普通类型用f表示而不是 -)
3) 按文件大小查询 -size
命令:find 路径 -size 范围
范围
大于:+表示 -- +100k
小于:-表示 -- -100k
等于: 不需要添加符号 -- 100k
大小
M 必须大写(10M)
k 必须小写(20k)
c 表示字节数
4)按文件日期
创建日期:-ctime -n/+ n
-n: n天以内
+n: n天以外
修改日期:-mtime -n/+n
访问日期:-atime -n/+n
5) 高级查询
find ./ -type d -exec shell命令 {} \;
find ./ -type d -exec ls -l {} \;
find ./ -type d -ok shell命令 {} \;
find ./ -type d -exec ls -l {} \;
find ./ -type d -ok shell命令 {} \;
find ./ -type d -ok ls -l {} \;
ok比较安全, 特别是在执行rm删除文件的时候.
find ./ -type d | xargs shell命令
find ./ -type d | xargs ls -l
5. grep
l grep -r(有目录) “查找的内容” 搜索的路径
-r参数, 若是目录, 则可以递归搜索
-n参数可以显示该查找内容所在的行号
-i参数可以忽略大小写进行查找
-v参数不显示含有某字符串
2 搜索当前目录下包含hello world字符串的文件
grep -r -n "hello world" ./ ------显示行号
grep -r -i -n "HELLO world" ./ -------忽略大小小查找
3 先使用find命令查找文件, 然后使用grep命令查找哪些文件包含某个字符串
find . -name "*.c" | xargs grep -n "main"
6.压缩工具
l gzip和bzip2
不能压缩目录,只能一个一个文件进行压缩,压缩之后会使原文件消失
gzip * 压缩当前目录下所有的文件, 但是目录不能压缩
gunzip * 解压当前目录下所有的.gz文件
bzip2 * 压缩当前目录下所有的文件, 但是目录不能压缩
bunzip2 * 解压当前目录下所有的. bz2文件
2 tar工具(*****)
相关参数说明
z:用gzip来压缩/解压缩文件
j:用bzip2来压缩/解压缩文件
c:create, 创建新的压缩文件, 与x互斥使用
x:从压缩文件中释放文件, 与c互斥使用
v:详细报告tar处理的文件信息
f:指定压缩文件的名字
t: 查看压缩包中有哪些文件
3 压缩:
tar cvf 压缩包名字.tar 原材料[要打包压缩的文件或目录]
tar zcvf 压缩包名字.tar.gz 原材料[要打包压缩的文件或目录]
tar jcvf 压缩包名字.tar.bz2 原材料[要打包压缩的文件或目录]
4 解压缩:
tar xvf 已有的压缩包(test.tar.gz)tar
tar zxvf 已有的压缩包(test.tar.gz)
tar jxvf 已有的压缩包(test.tar.bz2)
解压到指定目录:添加参数 -C(大写)
tar zxvf test.tar.gz -C 解压目录(./mytest)
5 查看压缩包中有哪些文件
tar -tvf test.tar
6 zip工具
压缩:zip -r 压缩包名 要压缩的文件(含文件或目录)
压缩目录需要使用参数-r
使用该命令不需要指定压缩包后缀
zip -r xxx file dir ---生成xxx.zip文件
解压缩:unzip压缩包名
解压缩到指定目录:添加参数 –d 解压目录
unzip xxx.zip -d /home/itcast/test/day1
注意:解压目录若不存在则会创建.
7.软件的安装卸载
1.在线安装
软件安装:sudo apt-get install 软件名
软件卸载:sudo apt-get remove 软件名
更新软件列表:sudo apt-get update
清理安装包:sudo apt-get clean
清理的是缓存路径:/var/cache/apt/archives
2 软件包安装
在Ubuntu系统下必须有deb格式的安装包
软件安装
sudo dpkg -i xxx.deb
软件卸载
sudo dpkg –r 软件名
8.vim
1). 三种基本工作模式:命令模式、文本输入模式、末行模式
2). 命令模式:用户按下ESC键, 就可以使vi进入命令模式下
快捷键 |
操作 |
h |
光标左移 |
j |
光标下移 |
k |
光标上移 |
l |
光标右移 |
M |
移动光标到中间行 |
gg |
光标移动到文件开头 |
G/L |
光标移动到文件末尾的行首 |
O |
光标移到行首 |
$ |
光标移到行尾 |
nG |
行跳转,例12G,跳到12行处 |
快捷键 |
操作 |
x |
删除光标后一个字符,相当于Del |
X |
删除光标前一个字符,相当于Backspace |
dw |
删除光标开始位置的字,包含光标所在字符 |
D[d$] |
删除光标后本行所有内容,包含光标所在字符 |
dd |
删除光标所在行(本质其实是剪切) |
ndd |
从光标当前行向下删除指定的行数,如15dd |
v/ctrl+v |
使用h、j、k、l移动选择内容,然后按d删除其中ctrl+v是列模式,v为非列模式 |
快捷键 |
操作 |
u |
一步一步撤销,相当于word文档ctrl+z |
ctrl-r |
反撤销,相当于word文档的ctrl+y |
快捷键 |
操作 |
yy |
复制当前行 |
nyy |
复制n行,如10yy |
p |
在光标所在位置向下新开辟一行,粘贴 |
P |
在光标所在位置向上新开辟一行,粘贴 |
剪切操作 |
按dd或者ndd删除,将删除的行保存到剪贴板中,然后按p/P就可以粘贴了 |
快捷键 |
操作 |
v/ctrl+v |
使用h、j、k、l移动选择内容;使用d删除 使用y赋值 使用p粘贴到光标的后面 使用P粘贴到光标的前面 |
快捷键 |
操作 |
r |
替换当前字符 |
R |
替换当前行光标后的字符 |
快捷键 |
操作 |
>> |
文本行右移 |
<< |
文本行左移动 |
快捷键 |
操作 |
/ |
/xxxx, 从光标所在位置开始搜索,按n向下搜索,按N向上搜索 |
? |
?xxxx, 从光标所在的到位置开始搜索,按n向上搜索,按N向下搜索 |
3). 文本输入模式:从命令模式切换到文本输入模式模式只需输入如下命令:
快捷键 |
操作 |
i |
在光标前插入 |
a |
在光标后插入 |
I |
在光标所在行的行首插入 |
A |
在光标所在行的行尾插入 |
o |
在光标所在的行的下面新创建一行,行首插入 |
O |
在光标所在的行的上面新创建一行,行首插入 |
s |
删除光标后边的字符,从光标当前位置插入 |
S |
删除光标所在当前行,从行首插入 |
按列模式插入 |
先按ctrl+v进入列模式,按hjkl移动选定某列,按I或者shift+i 向前插入,然后插入字符,最后按两次esc |
4). 末行模式:从命令模式切换的末行模式,输入冒号(:)
快捷键 |
操作 |
q |
退出 |
q! |
强制退出,不保存修改内容 |
w |
保存修改内容,不退出 |
wq |
保存并退出 |
x |
相当与wq |
快捷键 |
操作 |
:s/old/new/ |
光标所在行的第一个old替换为new |
:s/old/new/g |
光标所在行的所有old替换为new |
:m, ns/old/new/g |
将第m行至第n行之间的old全部替换成new |
:%s/old/new/g |
当前文件的所有old替换为new |
:1, $s/old/new/g |
当前文件爱你的所有old替换为new |
:%s/old/new/gc |
同上,但是每次替换需要用户确认 |
下面表格中old表示原字符串,new表示新字符串
快捷键 |
操作 |
:s/old/new/ |
光标所在行的第一个old替换为new |
:s/old/new/g |
光标所在行的所有old替换为new |
:m, ns/old/new/g |
将第m行至第n行之间的old全部替换成new |
:%s/old/new/g |
当前文件的所有old替换为new |
:1, $s/old/new/g |
当前文件爱你的所有old替换为new |
:%s/old/new/gc |
同上,但是每次替换需要用户确认 |
快捷键 |
操作 |
ctr+u |
向上翻半屏 |
ctrl+d |
向下翻半屏 |
ctrl+f |
向上翻一屏 |
ctrl+b |
向后翻一屏 |
5). 分屏:在末行模式下执行shell命令,!shell命令 按下两次esc可以回到命令模式;从末行模式切换回命令模式,按两次ESC,退格(backspace)或者回车键
* 在打开文件之后分屏
快捷键 |
操作 |
sp |
当前文件水平分屏 |
vsp |
当前文件垂直分屏 |
sp 文件名 |
当前文件和另一个文件水平分屏 |
vsp 文件名 |
当前文件和另一个文件垂直分屏 |
ctrl-w-w |
在多个窗口切换光标 |
wall/wqall/xall/qall/qall! |
保存/保存退出/保存退出/退出/强制退出分屏窗口 |
分屏: vim -on file1 file2...
垂直分屏: vim -On file1 file2 ...
注意 : n可以省略,有几个文件就分即屏
6).vim的配置文件
用户级别配置文件
~/.vimrc, 修改用户级别的配置文件只会影响当前用户, 不会影响其他的用户.
例如: 在用户的家目录下的.vimrc文件中添加
set tabstop=4 ----设置缩进4个空格
set nu ----设置行号
set shiftwidth=4 ---设置gg=G缩进4个空格, 默认是缩进8个空格
系统级别配置文件
/etc/vim/vimrc, 修改了系统级别的配置文件将影响系统下的所有用户.
说明: 由于linux是多用户操作系统, 建议只在用户级别的配置文件下进行修改, 不要影响其他用户.