目录
['|' 管道命令(Shift + \)](#'|' 管道命令(Shift + ))
[Linux快捷键Ctrl + C](#Linux快捷键Ctrl + C)
续linux基础上的内容,这篇补完;
一、linux常用命令总结
which命令
**作用:**which显示执行命令的绝对位置
**语法:**which 命令关键字(例如which ls)
在Linux操作系统中,一切皆文件,命令也是一个文件,如果想查看其具体位置,可以通过which语句。
find命令
**作用:**根据文件名称或大小搜索文件
bash
find / -name "test"
查找小于10KB的文件: find / -size -10k
查找大于100MB的文件:find / -size +100M
查找大于1GB的文件:find / -size +1G
grep命令
作用: grep(Global Regular Expression Print)是一个强大的文本搜索工具,用于在文件中查找匹配特定模式的行。
**格式:**grep [选项] 模式 [文件...]
案例演示:
bash
grep lang anaconda-ks.cfg #在文件中查找lang
grep -n lang anaconda-ks.cfg #在文件中查找lang并显示行号信息
'|' 管道命令(Shift + \)
**管道作用:**就是把 | 管道前面命令的执行结果作为后面命令的参数
例如:# ps -ef | grep crond
bash
ps -ef| grep mysql : 在所有进程中快速找到包含mysql内容的进程
tar命令
**作用:**压缩文件与解压缩文件
格式:tar [选项]
| 选项 | 解释 |
|---|---|
| -c | 创建一个新tar文件,就是把多个文件放在一起,但是没有压缩 => 10M + 10M + 10M |
| -v | 显示运行过程的信息,显示压缩或者解压缩进度 => 显示进度信息 |
| -f | 指定文件名,代表指定压缩后的文件名称 => 指定文件名称(必选选项) |
| -z | 调用gzip压缩命令进行解、压缩,就是把文件压缩为.gz格式 => .gz格式 => xxx.tar.gz |
| -x | 解包 |
注意:-c和-x正好相反,只能出现一个。-c负责打包,-x负责解压缩
**解压:**解压缩其实非常简单,只需要把压缩选项中的-c换成-x就可以实现解压缩
bash
tar -zxvf redis-3.2.8.tar.gz #将文件解压到当前目录
tar -zxvf redis-3.2.8.tar.gz -C /root/dir #将文件解压到指定目录
简写形式
tar -xf redis-3.2.8.tar.gz
压缩:
bash
tar -zcvf test.tar.gz /root/test #打包并压缩
简写形式
tar -zcf test.tar.gz /root/test
多文件压缩
tar -zcvf python.tar.gz linux.txt readme.txt #把多个文件压缩到同一个压缩包中
**查看压缩包中文件:**tar -tf redis-3.2.8.tar.gz # 查看压缩包中的内容
useradd命令(超级命令-root账户使用的命令)
**作用:**创建账号
案例演示:
bash
useradd user1 # 创建账号
passwd 12345 # 设置密码
**扩展:**id命令,可以用于查看某个账号是否存在
**例如:**id user1
userdel命令(超级命令)
**作用:**删除账号
**-r选项:**删除用户的同时,删除用户的家目录 => /home/用户名文件夹
**案例演示:**userdel -r user1
passwd命令
**作用:**为Linux用户添加密码,因为默认创建的Linux账号没有密码,Linux出于安全考虑,不允许没有密码的用户登录Linux操作系统。
bash
# passwd 用户名称 + 回车
输入密码
确认密码
su命令
**作用:**切换(用户)账号
bash
# su 账号名称
# su - user1
-横杠:代表切换用户的同时,把当前的目录切换到用户的家目录
chmod命令
**作用:**更改文件权限
**文件权限概述:**Linux操作系统是多任务多用户操作系统,每当我们使用用户名登录操作系统时,Linux都会对该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。为了方便用户管理,Linux允许把多个用户放入一个用户组;在Linux系统中,用户组也有一个ID,GID。
用户和用户组的概念:

在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限,能执行任何命令和操作,而其他用户都是普通用户。
Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。
**查看文件权限:**ls -l

文件权限解读:
r/w/x
r:只读权限
w:只写权限
x:主要针对脚本文件,如.sh脚本文件,代表可以对其进行运行 => 类似Windows中的.exe

在文件夹中,r和x权限一般属于组合权限,通常是一起出现的,很少单独出现。
注意:以上r、w、x权限都只能针对普通用户,root可以为所欲为,因为其不受权限限制。

chmod命令:chmod命令用来变更文件或目录的权限。
chmod命令可以通过字母修改文件权限,也可以通过数字方式修改文件权限。
字母形式:
bash
# chmod u=rwx,g=rx,o=rx 文件名称
或
# chmod -R u=rwx,g=rx,o=rx 文件夹
-R:递归修改,不仅可以修改文件夹本身的权限,还可以修改文件夹内部的所有文件权限
还可以使用+或-修改权限:
# chmod u-x 文件名称
如果针对u、g、o三者设置相同权限,我们还可以使用a来替代ugo
# chmod a=rwx 文件名称
**数字形式:**常见数字权限,777、755、644、600,这些都是文件权限。必须3位连续的数字。
第1位数字u:拥有者权限
第2位数字g:组内用户权限
第3位数字o:其他用户权限
思考一个问题:数字从何而来?
**答:**每一个权限都有一个对应的数字,r=4、w=2、x=1
思考一个问题:数字7、6、5怎么来的?
**答:**通过4、2、1相加得到
7 = 4 + 2 + 1 = r w x
6 = 4 + 2 = r w
5 = 4 + 1 = r x
Linux快捷键Ctrl + C
**Windows中:**Ctrl + C代表复制
**Linux中:**Ctrl + C不代表复制,而代表中止当前正在运行的程序
用户组与用户操作
用户组创建:
bash
groupadd 用户组名称
tail -1 /etc/group # 代表查看一个文件的最后10行,如果指定了选项,则代表显示最后的指定行
用户组删除: groupdel 用户组名称
**把某个用户添加到某个用户组:**useradd 用户名称 -g 组名称
history命令
**作用:**查看当前终端中,之前输入的指令信息
man命令(求帮助)
manual缩写,代表手册、文档
**格式:**man tar
退出,按q
几个好用的快捷键
**Tab键:**针对命令或路径,具有提示功能(按1次或按2次)
方向键上和下,查看上一个输入的或者下一个输入的Linux指令
二、Linux的vi/vim编辑器(重点)
vim改配置文件或者把其他的地方的配置拷贝到Linux系统中,一定一定要记得在插入模式下粘贴!!
vi/vim编辑器介绍
vi是visual interface的简称, 是Linux中最经典的文本编辑器(Windows中的记事本)
**vi的核心设计思想:**让程序员的手指始终保持在键盘的核心区域, 就能完成所有编辑操作
vi的特点:
· 只能是编辑文本内容, 不能对字体段落进行排版
· 不支持鼠标操作
· 没有菜单
· 只有命令
vim 是从vi发展出来的文本编辑器, 支持代码补全、编译及显示效果等方面编程的功能提别丰富, 在程序员中被广泛使用, 被称为编辑器之神。
打开文件
bash
vi a.txt #直接打开文件
vim a.txt #vim是vi的增强版
vim +10 a.txt #直接打开文件,并定位到第10行
VIM编辑器的三种模式
在Vi/Vim编辑器中,一共有3种工作模式:命令模式、插入模式(编辑模式)、末行模式(底行模式)
命令模式:复制、粘贴、移动光标、撤销与恢复
插入模式(编辑模式):只能编辑文件内容(写字) => i => insert
底行模式(末行模式):保存文件、退出文件、显示行号、搜索关键词

命令模式相关命令
当我们通过vim命令打开文件时,默认就处于命令模式。
**小技巧:**进入vim编辑器,先查看左下角有没有提示信息,如果没有任何信息,代表你当前位于命令模式!
| 命令 | 功能 |
|---|---|
| o | 在当前行后面插入一空行,除此以外,也会从命令模式切换到输入模式 |
| O | 在当前行前面插入一空行,除此以外,也会从命令模式切换到输入模式 |
| dd | 剪切或删除光标所在行(本质是剪切,但是如果剪切后不粘贴,则代表删除) |
| ndd | 从光标位置向下连续剪切或删除 n 行 |
| yy | 复制光标所在行 |
| nyy | 从光标位置向下连续复制n行 |
| p | 粘贴 |
| u | 撤销上一次命令,相当于Windows中的Ctrl + Z |
| gg | 回到文件顶部 |
| G | 回到文件末尾 |
| Ctrl + R | 恢复,与u相对应 |
编辑模式相关操作
如何进入编辑模式呢?
**答:**按i(insert)、a(append)
i:在当前光标的前面插入内容
a:在当前光标的后面插入内容
o:在光标的后一行插入内容
O:在光标的前一行插入内容
**问题:**如何从编辑模式回到命令模式
**答:**按Esc键
底行模式相关命令
重点记住3个字母即可,:w、:q、!
在Linux操作系统中,文件必须先保存后退出!
!叹号代表强制,强制保存、强制退出、强制保存并退出!
| 命令 | 功能 |
|---|---|
| :w 文件 | 另存为 |
| :w | 保存(ctrl + s) |
| :q | 退出, 如果没有保存,不允许退出 |
| :q! | 强行退出, 不保存退出 |
| :wq | 保存并退出 |
| :x | 保存并退出 |
| :set nu | 设置行号,取消行号使用:set nonu |
| :noh | 取消高亮 |
| /关键词 | 搜索某一关键词 |
:wq和:x区别?
答:如果文件内容有改变,两者的效果是一样的。
如果文件内容没有改变,:x不会改变文件的最后修改时间,但是:wq会更新文件的最后修改时间。
Vim常见错误E325处理流程

如果在打开某个文件时,弹出以上提示,那代表你这个文件之前没有保存就强制退出了,触发了Vim的备份机制,产生了一个xxx.swp交换文件。
以后每次打开之前的文件就会产生上面的提示,解决方案:
① 之前的修改不重要,可以直接删除的情况
直接回车,切换到错误的底部,然后按q,直接退出,然后执行删除操作
rm .源文件名称.swp
② 之前的修改很重要,需要先恢复内容,然后再解决报错问题
第一步:直接回车,切换到错误的底部,找到回复菜单,一般是r,恢复文件内容
第二步:针对找回的内容进行:wq保存并退出
第三步:删除刚才产生的交换文件 # rm .源文件名称.swp
三、Linux系统下如何安装软件
Linux下软件安装方式
rpm包管理
yum在线安装(重点掌握)
yum包管理工具(在线安装)
必须要有网络支持
配置yum源,就是说下载软件要从哪里下载?
安装腾讯的yum源:
官方地址:https://mirrors.cloud.tencent.com/
bash
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
**扩展:**国内做的比较好的镜像站
① 阿里云 ② 腾讯云 ③ 清华镜像站 ④ 七牛云 ⑤ 豆瓣镜像站
更新缓存:
bash
yum clean all
yum makecache
yum实现软件安装、更新与卸载
搜索与卸载软件:
bash
rpm -qa |grep vim
rpm -e vim-common-7.4.629-8.el7_9.x86_64 --nodeps
rpm -e vim-enhanced-7.4.629-8.el7_9.x86_64 --nodeps
注:
rpm -qa,-q查询,-a所有,查询所有已安装软件
rpm -e 软件包完整名称,正常卸载软件,添加--nodeps就代表强制卸载操作
rpm最大问题,安装或卸载软件时存在依赖关系 => A软件 => B软件 => C软件 => D软件
搜索软件
bash
# yum search 软件包名称
yum search vim
安装软件
bash
基本语法:
yum install 软件名称(只写名字不需要写版本) -y
如果不写-y,默认会提示,是否需要安装,必须回y,才能继续安装
yum install vim -y
选项:
-y:确认,直接安装不提示
yum install tree -y
tree /tmp
卸载软件
bash
yum remove 软件包名称 -y
选项:
-y:确认,直接卸载不提示
yum remove tree -y