在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数。在vim编辑器中内置了三种编辑模式:末行模式、命令模式和编辑模式。
功能 | 按键 |
---|---|
光标按单个字符移动 | 上、下、左、右 |
光标按照单词向后跳转 | w |
光标按照单词向前跳转 | b |
光标跳转到行首 | ^ |
光标跳转到行尾 | $ |
文档首行第一个字符 | gg |
文档最后一行第一个字符 | G |
跳转到指定行 | 行号gg或者行号G |
功能 | 按键 |
---|---|
删除光标所在行 | dd |
删除从光标处的第n行 | ndd |
删除光标前至行首字符 | d^ |
删除光标之后的所有字符 | d$ |
复制光标所在行 | yy |
复制从光标处开始的第n行 | nyy |
将缓冲区的内容粘贴到光标所在行的下一行 | p(小写) |
将缓冲区的内容粘贴到光标所在行的上一行 | P(大写) |
可通过下表中的任意一种功能键从命令模式切换到编辑模式,按ESC键可从编辑模式切换到命令模式。
功能 | 按键 |
---|---|
在光标前插入 | i |
在光标所在行行首第一个非空字符前插入 | I(大写字母i) |
在光标后插入 | a |
在光标所在行末尾插入 | A |
在光标所在行上一行插入 | O(大写字母o) |
在光标所在行下一行插入 | o(小写字母o) |
删除光标所在字符并进入编辑模式 | s |
删除当前行并进入编辑模式 | S |
按:或者/可从命令模式切换到末行模式,按ESC、可从末行模式切换到命令模式
功能 | 按键 |
---|---|
从上而下在文件中查找字符串“word"(按n键定位到下一个) | /word |
将当前行中查找到的第一个字符“old”替换为“new” | : s /old/new |
将当前行查找到的所有字符“old”替换为“new” | : s /old/new/g |
在行号n1,n2范围内替换所有的“old”为“new” | :n1,n2 s/old/new/g |
将整个文件内的字符串“old”替换为“new” | :%s /old/new/g |
功能 | 按键 |
---|---|
退出vim编辑器,未对文件进行任何编辑操作才可退出 | :q |
不保存文档内容,强制退出vim编辑器 | :q! |
保存文件 | :w |
将文件另存为/dir/file | :w /dir/file |
保存文件内容并退出vim编辑器 | :wq |
强制保存并退出 | :wq! |
功能 | 按键 |
---|---|
在当前文件中读入其他文件内容 | :r /dir/test |
查找含有"word"的行并删除 | :g/word/d |
显示行号 | :set nu |
关闭显示行号 | :set nonu |
删除n1-n2行内容 | :n1,n2 d |
复制n1-n2行到第n行的后面 | :n1,n2 co n |
-n:对输出内容中的所有行标注行号:cat -n /test
-b:对输出内容中的非空行标注行号:cat -b /test
-num:指定显示文件的num行内容:head -2 /test
-num 指定需要显示文件num行的内容:tail -2 /test
-f 使tail不停地去读取和显示文件最新的内容, 这样有实时监视的效果。
按Enter键向下逐行滚动,按空格键向下翻一屏、按b键向上翻一屏,文件末尾时more会自动退出
-c 从顶部清屏然后显示文件内容
按Enter键向下逐行滚动,按空格键向下翻一屏、按b键向上翻一屏,按q键退出
-c 从顶部清屏然后显示文件内容。
-N 其作用是在每行前添加输出行号。
功能:在指定的普通文件中查找并显示含有指定字符串的行,也可配合管道符使用
格式:grep 选项 关键字符串 文件名
选项 | 说明 |
---|---|
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 列出不包含关键字的行 |
-A | -A 2 显示匹配到的那一行以及下两行 |
-B | -B 2显示匹配到的那一行以及上两行 |
-C | -C 2 显示匹配到的那一行以及上下两行 |
使用特殊符号进行字符串的匹配
匹配模式 | 说明 |
---|---|
grep h 文件名 | 查找文件里有字符h的行 |
grep ^ [q] 文件名 | 匹配以q开始的行 |
grep ^ [qf] 文件名 | 匹配以q或者f开头的行 |
grep ^ [ ^qf ] 文件名 | 匹配不以q或者f开头的行 |
grep ^ [0-9] 文件名 | 匹配以数字开头的行 |
grep q$ 文件名 | 匹配以q结束的行 |
grep ^$ | 过滤空白行 |
cut命令用于按列提取文本内容,格式:cut [选项] 文件名称
示例:1、提取/etc/passwd的第一列
[root@bogon ~]# cut -d : -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
2、提取/etc/passwd前三行的每一行的第三个字符
[root@bogon ~]# cut -c 3 /etc/passwd|head -3
o
n
e
sort命令用于对文本内容进行排序显示,语法为:sort [选项] 文件名称
选项 | 说明 |
---|---|
-f | 忽略大小写 |
-b | 忽略缩进与空格 |
-n | 以数值型排序 |
-r | 反向排序 |
-u | 去除重复行 |
-t | 指定间隔符 |
-k | 设置字段范围 |
uniq命令用于去除文本中连续的重复行,语法为: uniq [选项] 文件名称
示例:
[root@bogon test]# cat txt
Linux
windows
Linux
mac
mac
[root@bogon test]# uniq txt
Linux
windows
Linux
mac
通过以上观察到并不能完全去重,所以为了能够完全去重,需要先对文件进行排序,在进行去重操作:
[root@bogon test]# sort -r txt |uniq
windows
mac
Linux
示例:通过去重命令完成文件去重,并且显示重复的次数
[root@bogon test]# sort -r txt |uniq -c
1 windows
2 mac
2 Linux
从标准标准输入中读取数据,将结果输出到标准输出,语法:tr [OPTION]…SET1 [SET2]
参数说明:
1、-c:反选设定字符。符合SET1的部分不做处理,不符合的剩余部分进行转换
2、-d:删除指定字符
3、-s:缩减连续重复的字符指定的单个字符
示例1:将文件text中的小写字母全部转换成大写字母
[root@bogon test]# cat /test/text |tr a-z A-Z
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
示例2:将text文件中的:替换为|
[root@bogon test]# cat /test/text |tr -s ':' '|'
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
wc命令用于统计指定文本文件的行数、字数或字节数,语法为:wc [选项] 文件名称
选项 | 说明 |
---|---|
-l(小写L) | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
语法:cp [选项] 原文件 目标文件
选项 | 说明 |
---|---|
-a | 在拷贝目录时使用,它保留链接、文件属性、并递归的拷贝目录 |
-d | 拷贝是保留链接 |
-f | 覆盖已存在的目标文件是不提醒 |
-i | 在覆盖已存在的目标文件时给出提示 |
-p | 在复制原文件内容时,将其修改时间和访问权限也复制到新文件中 |
-r | 若给出的原文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名 |
mv命令用于剪切或重命名文件,剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件。如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作。语法为:mv [选项] 原文件名称 目标文件名称
命令 | 说明 | 示例 |
---|---|---|
whereis | 可以搜索系统命令的可执行文件路径和说明文档 | # whereis ls |
which | which 是搜索系统命令的可执行文件 | which ls |
locate | 按照数据库搜索,搜索速度快,消耗资源小。数据库位置/var/lib/mlocate/mlocate.db, 可以使用updatedb 命令强制更新数据库。 | locate ls |
find | 可按照文件名、大小、时间、权限、类型、所属者、所属组来搜索文件 | find [path…] [expression] |
find: | ||
参数 | 作用 | |
– | – | |
-name | 匹配名称 | |
-size | 匹配文件大小 | |
-mtime -n +n | 匹配修改内容的时间 | |
-atime -n +n | 匹配访问文件的时间 | |
-ctime -n +n | 匹配修改文件权限的时间 | |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 | |
-perm | 匹配权限 | |
-user | 匹配所有者 | |
-group | 匹配所有组 | |
-nouser | 匹配无所有者的文件 | |
-nogroup | 匹配无所属组的文件 | |
-type | 匹配文件类型 | |
-prune | 忽略某个目录 | |
-exec ……{}; | 后面可跟用于进一步处理搜索结果的命令 |
1、按照文件名搜索:find 路径 [选项] 搜索内容
选项:
-name:按照文件名搜索
-iname:按照文件名搜索,文件名不区分大小写
-inum:按照inode号搜索
示例:搜索文件名为passwd的文件
[root@bogon /]# find . -name passwd
./sys/fs/selinux/class/passwd
./sys/fs/selinux/class/passwd/perms/passwd
./etc/pam.d/passwd
./etc/passwd
./var/lib/sss/mc/passwd
./usr/bin/passwd
./usr/share/licenses/passwd
./usr/share/doc/passwd
./usr/share/bash-completion/completions/passwd
2、按照文件大小搜索:find 搜索路径 [选项] 搜索内容
选项:
-size (+/-)大小:按照指定大小搜索文件,“+”的意思是搜索比指定大小还要大的文件,“-”的意思是搜索比指定文件小的文件
示例:搜索/test文件下比1k大的文件
[root@bogon test]# ls
passwd text txt
[root@bogon test]# find /test/ -size +1k
/test/passwd
3、按照修改时间搜索
Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个时间,我们可以按照时间来搜索文件find 搜索路径 [选项] 搜索内容
选项:
-atime (+/-)时间:按照文件访问时间搜索
-mtime (+/-)时间:按照文件数据修改时间搜索
-ctime (+/-)时间:按照文件状态修改时间搜索
-newer file:
4、按照权限搜索: find 搜索路径 [选项] 搜索内容
选项:
-perm 权限模式:文件权限刚刚好为“权限模式”的文件
-perm -权限模式:文件权限全部包含“权限模式”的文件
-perm +权限模式:文件权限包含“权限模式”的任意一个权限的文件
5、按照所有者和所属组搜索:find 搜索路径 [选项] 搜索内容
选项:
-uid 用户id:按照用户id查找所有者是指定id的文件
-gid 组id:按照组zuid查找所属组是指定id的文件
-user 用户组:按照用户名查找所有者是指定用户的文件
-group 组名:按照组名查找所属组是指定用户组的文件
-nouser:查找没有所有者的文件
6、按照文件类型搜索:find 搜索路径 [选项] 搜索内容
选项:
-type d:查找目录
-type f:查找普通文件
-type l:查找软链接文件
7、逻辑运算符find 搜索路径 [选项] 搜索内容
选项:
-a: and 逻辑与
-o:or 逻辑或
-not :not逻辑非
8、其他选项
指令 | 说明 |
---|---|
默认动作,将搜索结果写入到标准输出 | |
-fprint file | 与-print相同,但是将搜索结果写入到文件file |
-ls | 以长格式显示搜索结果 |
-fls file | 同-ls,但是将搜索结果写入到文件file |
-delete | 将搜索到的文件删除 |
-exec command {} \ ; | 查找并执行命令,{}表示搜索到的文件名 |
-ok command {} \ ; | 查找并执行命令,但是需要用户确认 |
-exec:这个参数用于把find命令搜索到的结果交给后面的命令进行进一步处理,类似于“|”
示例:在整个文件系统下找出文件名为test1的文件并进行查看
[root@bogon test]# find / -name test1 -exec cat {} \;
linux
mac
windows
1、zip和unzip
语法:zip file.zip file
unzip file
示例1:使用zip压缩文件test1文件
[root@bogon test]# zip test1.zip test1
[root@bogon test]# unzip test1.zip
[root@bogon test]# unzip -v test1.zip
[root@bogon /]# zip -r test.zip test/
2、gzip和gunzip
语法:gzip file
gunzip file
示例1:使用gzip压缩文件test1,再使用gunzip解压缩
[root@bogon test]# gzip test1
[root@bogon test]# gunzip test1.gz
[root@bogon test]# gzip -r /test/
[root@bogon test]# gunzip -r /test/
以上方法压缩之后原始文件就没有了
示例3: 压缩但保留原始文件
[root@bogon test]# gzip -c test1 >test1.gz
3、bzip2和bunzip2命令
bzip2、bunzip2是更新的Linux压缩工具,比gzip有着更高的压缩率。(使用-k保留原文件进行压缩)
示例1:使用bzip2将文件test1进行压缩,再使用bunzip2进行解压缩
[root@bogon test]# bzip2 test1
[root@bogon test]# bunzip2 test1.bz2
4、xz,unxz命令
示例:使用xz命令将文件test进行压缩,再使用unxz文件对压缩后的文件进行解压缩
[root@bogon test]# xz test1
[root@bogon test]# unxz test1.xz
tar是一个归档程序,tar可以将许多文件打包成一个归档文件或者将他们写入备份设备
参数 | 功能 |
---|---|
-f (必选) | 用于指定打包文件名 |
-v | 显示指令执行过程 |
-p | 打包时保留文件及目录的权限 |
-c | 创建新的备份 |
-z | 通过gzip指令处理备份文件 |
-j | 通过bzip2指令处理备份文件 |
-C | 切换到指定的目录 |
示例1:创建(非压缩的)打包文件,将指定的一个或多个文件或目录备份生成为一个指定的包文件
[root@bogon test]# tar -cvf test1.tar test1
[root@bogon test]# tar tvf test1.tar
1、sftp是一个交互式文件传输命令
它类似于ftp传输协议,属于ssh, 但它进行加密传输,相对FTP来讲有更高的安全性。
如果有服务器的端口不是默认的22,请在sftp后面加-P 端口号。
下载:sftp> get /var/www/renwole.txt /home/
上传:sftp> put /home/renwole.txt /mnt/