首先我们介绍一些在Linux中快捷键的用法
ctrl+a/ctrl+左箭头 | 跳行首 |
ctrl+e/ctrl+右箭头 | 跳行尾 |
ctrl+u | 删除当前光标到行首 |
ctrl+k Ctrl+y | 删除当前光标到行尾 |
Ctrl+r | 在光标处粘贴剪切的内容 |
Ctrl+t | 调换光标所在处与其之前字符位置,并把光标移到下个字符 |
Ctrl+x+u | 撤销操作 |
Ctrl+z | 转入后台运行 |
Ctrl+c | 结束正在运行的程序 |
Ctrl+d | 结束输入或退出 |
shell Ctrl+s | 暂停屏幕输出【锁住终端】 |
Ctrl+q | 恢复屏幕输出【解锁终端】 |
Ctrl+l | 清屏,【是字母L的小写】等同于Clear |
标准输入
stdin :从键盘获取的输入 代码0
标准正确输出 :命令执行失败后的错误信息会输出到屏幕上 代码1
标准错误输出 :命令执行失败后的错误信息会输出到屏幕上 代码2
重定向操作符
> 输出重定向符 (也可创建文件)
>> 追加输出重定向符
区别:输出重定向符 ----覆盖,追加输出重定向符 ----不覆盖
< 输入重定向符
<< 输入的终止结束符(./EOF单独成一行)
echo:打印当前变量内容
echo $ //打印出环境变量命令的值
vim 要创建的文件名 //创建文件
cat 文件名 //查看文件内容
tee :从标准输入读取数据,并将其写入标准输出和一个或多个文件。
| :管道符(将一个命令的输出传递给另一个命令的输入)
命令 管道符(|)tee 文件
使用举例:
pwd | tee filename1 //将当前工作目录的路径输出到标准输出,并且将其写入到名为filename1的文件中
ll / | tee f2 //列出根目录下的所有文件和文件夹,并将输出写入到名为f2的文件中
命令行模式
编辑模式:a、i、o,返回命令行模式:按键Esc
插入模式
a | 光标后插入 |
A | 行尾插入 |
o | 光标所在下一行插入 |
O | 光标所在上一行插入 |
i | 光标前插入 |
I | 行首插入 |
s | 删除光标所在位置的字符并进入插入模式 |
S | 删除当前行并进入插入模式 |
命令模式
d | 删除 |
dd | 删除当前行 |
dgg | 删除光标到文档首部 |
dG | 删除光标到文档尾部 |
d$ | 删除光标到行尾,包括光标所在位置字符 |
d^ | 删除光标到行首,不包括光标所在位置的字符 |
dw | 按单词删除 |
gg | 跳转到文档首部行首 |
G | 跳转到文档尾部行首(行数G:跳转到指定行) |
u | 撤销之前的操作 |
Ctrl+r | 重做 |
x | 删除光标所在位置的内容 |
yy | 复制光标所在行(行数yy 复制从光标处开始的n行) |
p | 将刚刚复制的内容粘贴到光标所在行的下一行 |
cc | 剪切当前行(行数cc 剪切当前行开始的几行) |
H | 跳转到当前屏幕输出的最上面一行 |
L | 跳转到当前屏幕输出的最下面一行 |
M | 跳转到当前屏幕输出的中间那一行 |
$ | 光标跳转至行尾 |
^ | 光标跳转至行首 |
w | 按单词进行移动光标 |
r | 替换光标所在位置的字符 |
h | 往左按字符移动光标 |
j | 往下(后)按行移动光标 |
k | 往上(前)按行移动光标 |
l | 往右按字符移动光标 |
末行模式
:w | 保存 |
:w filename(以filename为例) | 将文件另存为filename |
:q | 退出 |
:wq | 保存退出 |
:q! | 强制退出不保存 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:行号 | 跳转到指定行 |
/ | 查找字符串 |
N | 上一个关键字 |
n | 下一个关键字 |
:%s/被替换内容/替换后的内容 | 替换,如果全局替换就在最后加个/g(例如 :%s/d/D/g) |
:%s/被替换内容// | 删除被替换内容的意思 |
查找命令
Whereis(用于查找指定命令的可执行文件、源代码文件和帮助文档的位置)
Whereis 参数 命令名称
-m | 只查找说明文件 |
-b | 只查找二进制文件 |
-s | 只查找源代码文件 |
find(用于在指定目录及其子目录中查找符合条件的文件)
-exec(
通常与find
命令一起使用,用于在找到的文件上执行指定的命令。)
举个例子:(在当前目录及其子目录中查找所有扩展名为.txt
的文件,并将它们的权限设置为644
)
[root@localhost ~]#find . -name "*.txt" -exec chmod 644 {} \;
-exec chmod 644 {} \;
表示将找到的每个文件的权限设置为644
。{}
将被替换为每个找到的文件名
find 路径 匹配表达式
-name | 文件名 |
-type | 文件类型 |
-size | 文件大小( +1M--大于1M,-1M--小于1M) |
-user | 文件的所有者 |
-group | 文件的所属组 |
-atime | 查找被访问的文件 |
-ctime | 文件或目录的状态更改时间 |
-mtime | 文件或目录的修改时间 |
-mmin | 以分钟为单位的时间间隔 |
-exec | 在查找到的文件或目录上执行指定的命令 |
locate(用于在系统的文件名数据库中查找符合条件的文件)
locate 选项 要查找的内容
grep(查找文件里面的字符串或正则表达式)
grep 选项 字符串 文件的路径
-n | 查找到字符串所在行 |
-c | 查找到字符串拥有的行数 |
-l | 只打印匹配到文件名 |
-v | 反向查找 |
-r | 递归查找 |
-i | 忽略大小写 |
下面举几个实例:
grep -c hello 文件名 //查找字符串拥有的行数
grep ^[r] passwd //找到以r开头的行
grep ^[gf] 文件 //找到g或f开头的行
grep ^[^r] passwd //不显示以r开头的
grep -v ^$ 文件 //过滤掉空白行
grep ^[0-9] f1 //显示以0-9开头的文件
grep ^$ 文件 //显示空白行
grep hello f* //以f开头的含有hello的文件
grep r 文件 //查找文件里有字符r的行
grep hello f* //以f开头的含有hello的文件
grep hello *1 //以1结尾的含有hello的文件
cat(显示文件内容)
cat 选项 文件
-n | 由1开始对所有输出的行号 |
-b | 由1开始对所有输出的行号,空白行不编号 |
举个例子:
cat -n passwd > file1 //将文件passwd的内容进行编号后输出,并将输出结果重定向到文件file1中
head(用于查看文件的开头内容)
head passwd | cut -b 3 //显示前10行的第3个字节
-q | 隐藏文件名 |
-v | 显示文件名 |
-c <数目> | 显示字节数 |
tail(默认显示后10行)
tail 参数 文件
其他命令
cut(从文本行或文件中提取文本的命令行工具)
-c | 按字符位置切割文本 |
-f | 按字段切割文本,字段之间以分隔符(默认是制表符)分隔 |
-d | 指定字段分隔符 |
sort(用于对文本文件的行进行排序)
-f | 忽略大小写 |
-b | 忽略缩进与空格 |
-n | 依照数值的大小排序 |
-r | 反向排序 |
-u | 去除重复行 |
wc(用于统计文件中的行数、单词数和字符数)
wc 文件名
下面通过使用该命令得到的数据进行分析:
23 | 22 | 147 | f1 |
统计的行数 | 单词数 | 字节数(包括换行符) | 文件名 |
-l | 只显示出统计行数 |
-w | 只显示出统计单词数 |
-c | 只显示出统计字节数 |
cat f3 | wc //通过管道符查看统计
压缩
.zip: zip 程序压缩打包的档案;(很常见,但是因为不包含文档名编码信息跨平台可能会乱码)
.rar: rar 程序压缩打包的档案;(在windows上很常见,但是是商业软件)
.gz: gzip 程序压缩的档案;(linux目前使用最广泛的压缩格式
.bz2: bzip2 程序压缩的档案
.xz: xz程序压缩的档案
.tar: tar 程序打包的资料,并没有压缩过。(但是tar打包的时候可以指定文件格式,就相当于压缩了)
.tar.gz: tar程序打包的档案,其中并且经过gzip 的压缩(最常见.tar.bz2: tar 程序打包的档案,其中并且经过 bzip2的压缩.tar.xz: tar程序打包的档案,其中并且经过xz的压缩 (新一代压缩选择)
.7z: .7zip 程序压缩打包的档案
下面详细讲解一下tar如何使用
tar(归档命令)
tar 选项 包名(压缩的文件) 文件名
-c | 创建.tar格式的包文件 |
-x | 释放.tar格式的包文件 |
-t | 查看包中文件列表 |
tar -cvf bc.tar b c //将b,c文件压缩到bc.tar压缩文件夹下
如何传输文件
文件传送格式
scp -r 当前主机文件 目标主机的对应路径
文件接收格式
scp 目标主机路径的文件 接收到当前主机路径
scp root@192.168.32.131:/root/file1 / //从远程系统的/root/file1文件复制到本地系统的根目录
获取IP
终端:nmcli con up ens160
特殊符号
; | 分隔命令 |
* | 匹配任意零个或多个字符 |
? | 匹配任意单个字符,不能创建文件 |
[] | 匹配方括号中的任意一个字符,表示范围可以用“-” |
[^]或者[!] | 匹配方括号中的任意一个范围后取反 |
{string,string} | 用于生成字符串列表的扩展语法 |
下面通过实操展示一下' '," ",不加引号的区别
命令解释器-SHELL
alias(用于创建命令别名的命令)
alias 别名 ='原命令 选项'
history(查看历史记录)
-c | 清空当前的历史记录 |
-a | 将当前会话中执行的命令添加到历史记录文件中 |
-r | 用于重新读取历史记录文件中的内容,并将其加载到当前会话的历史记录中 |
-w | 文件:修改文件内容 目录:对目录下的文件进行修改或添加 |
!! | 特殊的历史扩展,用于重复执行上一条命令 |
OK,今天的内容先讲到这里,剩下的知识请看下一篇文章