PythonLinux命令

一.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进入命令模式下

  • 保存退出
快捷键 操作
ZZ 保存退出
  • 代码格式化
快捷键 操作
gg=G 代码格式化
  • 光标移动
快捷键 操作
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进入命令模式下

  • 保存退出
快捷键 操作
ZZ 保存退出
  • 代码格式化
快捷键 操作
gg=G 代码格式化
  • 光标移动
快捷键 操作
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进入命令模式下

  • 保存退出
快捷键 操作
ZZ 保存退出
  • 代码格式化
快捷键 操作
gg=G 代码格式化
  • 光标移动
快捷键 操作
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是多用户操作系统, 建议只在用户级别的配置文件下进行修改, 不要影响其他用户.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容