基本知识
-
$ 用于表示变量
-
~ 表示当前用户的家目录
-
编辑文件未保存就关闭命令会话时,Linux会保存一个隐藏文件来保存最新的内容,可以删除该文件
-
命令行参数
-
单词加 --
-
字母或缩写加 -
-
-
type
查看命令类型
type cd cd is a shell builtin
-
help 内置命令帮助文档
-
man 外置命令帮助文档
版本划分
常用命令
-
whereis 查询命令文件的位置
-
file 查看文件的类型
-
who 查看当前在线的用户
-
whoami 当前所登录的用户
-
pwd 当前所在文件目录
-
uname -a 查看内核信息
-
echo 打印语句
-
history 显示或操作历史记录列表
文件命令
-
cd 改变当前工作目录
-
ls 列出当前工作目录中的文件信息,常用参数列表
-
-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-
-l 使用长格式列出文件及目录的详细信息
-
-
ll == ls -l 使用长格式列出文件及目录的详细信息
-
mkdir 创建文件目录
-
使用
{}
创建多重文件夹mkdir {zzp,zp,z,p} mkdir zzp{zzp,zp,z,p} #为每个文件夹添加前缀 mkdir zzp/{zzp,zp,z,p} #为每个文件夹添加父目录
-
-p 递归创建多级目录
mkdir -p /dir1/dir2/dir3/dir4/dir5 #在根目录下创建文件夹
-
-
rmdir 仅能够删除空内容的目录文件,可以使用通配符
*
和?
-
-p 用递归的方式删除指定的目录路径中的所有父级目录,存在非空文件夹则报错
-
-
cp 拷贝文件或者文件目录
cp [参数] 源文件 目标文件
参数列表
-
-f 若目标文件已存在,则会直接覆盖原文件
-
-r 参数用于递归操作,复制目录时若忘记加则会直接报错
-
-
mv 移动文件或者文件夹,修改文件名称
mv [参数] 源文件 目标文件 mv jdk-8u202-linux-x64.rpm ../
-
rm 删除文件和文件夹
rm [参数] 文件 rm -rf(递归和强制删除)
参数列表
-
-f 强制删除(不二次询问)
-
-r/R 递归删除
rm -rf /* #可以删除根目录下的所有文件
-
-
touch 如果没有就创建一个文件,如果该文件已经存在,修改文件的三个时间,将三个时间改为当前时间
-
stat 查看文件的状态
-
Inode 当前文件在文件系统的唯一标识,类似于ID
-
links 硬链接数量
-
access 访问时间
-
modify 修改文件内容时间
-
change 修改文件元数据信息时间,比如文件权限
-
-
ln 为文件创建快捷方式
ln [参数] 源文件 目标文件
-
-s 对源文件建立软链接,而非硬链接,创建硬链接无需参数
Linux系统中的链接文件有两种形式,一种是硬链接(hard link),另一种是软链接(symbolic link)。软连接相当于Windows系统中的快捷方式文件,原始文件被移动或删除后,软连接文件也将无法使用,而硬链接则是通过将文件的inode属性块进行了复制 ,文件属性的links值会加一,因此把原始文件移动或删除后,硬链接文件依然可以使用
-
-
cat 将整个文档加载到内存中,并进行一次性显示,适合查看内容较少的、纯文本的文件
-
tac 将整个文档加载到内存中,并进行一次性按行逆序显示,相当于cat的反写形式
-
more和less 命令的功能是用于分页显示文本文件内容。如果文本文件中的内容较多较长,使用cat命令读取后则很难看清,这时使用more命令进行分页查看就更加合适了。每按一次回车即向下一行,每按一次空格即向下一页,b 回退,q 退出,h帮助信息
-
head 命令的功能是显示文件开头的内容,默认为前10行
#读取前五行的内容 head -5 zp head -n 5 zp
-
-n <数字> 定义显示行数
-
-c <数字> 指定显示头部内容的字符数
-
-
tail 从文章末尾读取N行
tail [参数] 文件
tail可以与head结合并利用管道来读取第n行
#读取第二行数据 head -2 zp | tail -1
读取新增数据
ping www.baidu.com >>baidu tail -F/f baidu
-
-f 监听指定inode的文件数据变化,当文件被删除后就会失效
-
-F 监听指定名字的文件,如果文件被删除后,再重新创建就会继续监听
-
-
find 根据给定的路径和条件查找相关文件或目录,经常结合管道的使用,可以使用通配符
find [路径] [参数]
参数列表
-
-name 匹配名称
-
-user 匹配所有者
-
-type b/d/c/p/l/f 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
find /root/ -name test
-
vi和vim编辑器
打开文件的方式
-
正常打开
vi 文件名
-
打开文件并将光标指向第n行
vi +n 文件名 #按n查找下一个,按N查找上一个
-
打开并指向最后一行
vi + 文件名
-
打开指定搜索单词的位置
vi +/指定的单词名 文件名
三种模式
编辑模式
在这个模式下,每个按键都存在一些功能
-
G 转到最后一行
-
gg 转到行首
-
数字gg 转到数字行
-
dd 删除一行
-
数字dd 删除数字行
-
u 回退之前的操作
-
. 回退u执行的操作
-
ZZ 保存并退出
输入模式
直接操作文本,按什么就是什么
末行模式
执行一些命令
-
set nu
设置行号 -
set nonu
取消行号 -
w
保存 -
q
退出 -
wq
保存再退出 -
q!
强制退出,但是不保存 -
/pattern
搜索指定的字符串
文件传输
win-Linux
-
lrzsz
先安装软件
yum install lrzsz -y
-
rz
上传文件 -
sz
下载文件
-
-
使用xftp软件
Linux-Linux
scp 源数据地址(source) 目标数据地址(target)
传输文件
scp apache-tomcat-7.0.61.tar.gz root@192.168.31.40:/opt scp root@192.168.31.44:/opt/apache-tomcat-7.0.61.tar.gz ./
传输文件需要加参数-r
scp -r apache-tomcat-7.0.61 root@192.168.31.44:/opt
文件的压缩
tar
tar 参数 文件或目录
解压缩
tar -zx(解压)v(过程)f(文件) lucky.tar.gz
压缩
tar -zc(压缩)f(文件) tomcat.tar.gz(压缩后的名字) apache-tomcat-7.0.61(源文件)
zip和unzip
安装软件
yum install zip unzip -y
压缩
zip -r 文件夹
解压
unzip tomcat.zip
用户和用户组
用户
输入who
可以查看当前登录账号(注意是登录的账号)输入whoami
可以查看当前的操作账号
添加新用户
useradd +用户名 #会自动创建同名的组和家目录
设置密码
passwd +用户名 #如果不指定用户,那么会设置当前用户的密码
删除用户
usedel 用户名 #级联删除家目录和组
切换用户
su 用户名 su zzp
用户组
每个用户都至少有一个用户组,系统可以对一个用户组中的所有用户进行集中管理
输入groups + 用户名
来查看用户所有的用户组,输入id
来查看用户所属的用户相关信息
-
创建组
groupadd 组名
-
删除组
groupdel 组名
-
修改组名
groupmod -n school 新组名
-
修改用户的组
-
usermod -g 组名 用户名 (主组)
-
usermod -G 组名 用户名 (附属组)
-
权限
文件的权限
drwxr-xr-x 2 root root 4096 Feb 1 18:28 test -rw-r--r-- 1 root root 0 Feb 1 18:24 zzp
第一栏类似于drwxr-xr-x
的字符串表示文件的属性,其中第1个字符表示此文件的类型:-
表示普通文件,l
为链接文件,d
表示目录(文件夹),c
表示字符设备、b
表示块设备,还有p
有名管道、f
堆栈文件、s
套接字等,这些一般都是用于进程之间通信使用的
第2-4个字符表示文件的拥有者(User)对该文件的权限,第5-7个字符表示文件所属用户组(Group)内用户对该文件的权限,最后8-10个字符表示其他用户(Other)对该文件的权限。其中r
为读权限、w
为写权限、x
为执行权限
第二栏数据表示文件创建的链接文件(快捷方式)数量
第三栏数据为该文件或是目录的拥有者
第四栏数据表示所属的组
第五栏数据表示文件大小,以字节为单位
后面是文件的最后一次修改时间和文件名
修改权限
直接修改权限
方式一
chmod (u/g/o/a)(+/-)(r/w/x) 文件名称
从ugo中选择或是直接a表示所有,+和-表示添加和删除权限,rwx表示权限
-rw-r--r-- 1 root root 0 Feb 2 21:28 z
创建一个文件z,所属用户可读可写,所属组和其他用户只能读
实例
chmod o+w z #给其他用户加一个写的权限
方式二
可以使用数字来代替权限符号
约定:r=4,w=2,x=1,需要什么权限就让对应权限的数字相加,一个数字表示一个rwx的权限状态
比如想修改为-rw-rw-r--
,那么对应的数字就是664
,代码如下
chmod 666 z
修改文件的拥有者或是所属组
可以使用chown
和chgrp
命令
chown
用于改变文件或目录的用户和用户组信息
chown [参数] 所属主[:所属用户组] 文件
chown zzp z #将文件z的所属用户改为zzp
chgrp
用于更改文件所属用户组,如仅需要修改文件所属用户组身份信息,则可以使用chgrp命令更快的完成
chgrp [参数] 所属组 文件名
chgrp root test
管道和重定向
管道
将前面命令的结果作为参数传递给后面的命令
ping www.baidu.com | find "平均"
重定向
改变数据输出的方向
> 覆盖和 >> 追加
ping www.baidu.com >> baidu
Linux系统进程
查看进程信息
ps命令来自于英文词组”process status“的缩写,其功能是用于显示当前系统的进程状态。使用ps命令可以查看到进程的所有信息,例如进程的号码、发起者、系统资源使用占比(处理器与内存)、运行状态等等。经常会与kill命令搭配使用来中断和删除不必要的服务进程,避免服务器的资源浪费
ps [参数]
-
ps -ef
显示所属用户UID, 当前进程编号PID,当前进程编号的父进程编号PPID -
ps -ef | grep redis
可以与管道结合使用 -
ps -aux
显示所用信息
top命令的功能是用于实时显示系统运行状态,包含处理器、内存、服务、进程等重要资源信息
top [参数]
后台进程
前台进程:是在终端中运行的命令,那么该终端就为进程的控制终端,一旦这个终端关闭,这个进程也随之消失
后台进程:也叫守护进程,是运行在后台的一种特殊进程,不受终端控制,它不需要终端的交互;Linux的大多数服务器就是使用守护进程实现的。比如Web服务器的httpd等
& | 用在一个命令的最后,可以把这个命令放到后台执行 |
---|---|
<Ctrl>+z | 将一个正在前台执行的命令放到后台,并暂停 |
jobs | 查看当前有多少在后台运行的进程。这是一个作业控制命令 |
fg(foregroud process) | 将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg [jobnumber]将选中的命令调出,jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid) |
bg(backgroud process) | 将一个在后台暂停的命令,变成继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid) |
nohub | nohup命令来自于英文词组“no hang up”的缩写,其功能是用于后端运行程序。nohup命令可以将程序以忽略挂起信号的方式运行起来,而被运行程序的输出信息不会显示到屏幕上。 |
nohup ping www.baidu.com &
杀死进程
kill命令的功能是用于杀死(结束)进程。Linux系统中如需结束某个进程,既可以使用如service或systemctl的管理命令来结束服务,也可以使用kill命令直接结束进程信息,如使用kill命令后进程并没有被结束,则可以使用信号9进行强制杀死动作
kill [参数] 进程号
kill -9 17599
软件安装
环境变量
当执行一个命令的时候,默认从当前路径开始查找 如果当前路径找不到对应的命令文件,从环境变量$PATH查找
$PATH的配置文件在 /etc/profile
window 路径与路径之间用;(分号)连接;Linux路径与路径之间用:(冒号)连接 ;Linux每次修改完成之后,需要重新加载文件 source /etc/profile
软件的安装方式
-
rpm 自己下载安装包(JDK)
-
解压即用的(Tomcat)
-
yum在线安装(docker)
RPM软件包管理器
rpm命令来自于英文词组”RedHat Package Manager“的缩写,其功能是用于在Linux系统下对软件包进行安装、卸载、查询、验证、升级等工作
rpm [参数] 软件包
参数列表
-
-a 查询所有的软件包
-
-e 卸载软件包
-
-h 安装软件包时列出标记
-
-i 安装软件包
-
-v 显示命令执行过程
-
-q 查询软件包
-
-l 显示软件包的文件列表
-
-U 升级软件包
rpm -ivh cockpit-185-2.el8.x86_64.rpm #正常安装软件包 rpm -ivh jdk-8u202-linux-x64.rpm rpm -qa #显示系统已安装过的全部RPM软件包 rpm -qa | grep jdk #显示系统已安装过的某个RPM软件包 rpm -ql cockpit #查询某个软件的安装路径 rpm -evh cockpit #卸载某个通过RPM软件包安装的服务 rpm -evh --nodeps jdk1.8-1.8.0_202-fcs.x86_64 #强制删除 rpm -Uvh cockpit-185-2.el8.x86_64.rpm #升级某个软件包
jdk安装与卸载
下载相应的rpm包
jdk-8u202-linux-x64.rpm
将安装包保存到 /opt 目录
开始安装
rpm -ivh jdk-8u202-linux-x64.rpm
JDK 会被安装到 /usr/java 目录下
在文件末尾配置环境变量(rpm安装不需要配置环境变量)
vim /etc/profile #vim 进入编辑系统配置文件 #在文件最后添加如下内容后保存退出 export JAVA_HOME=/usr/java/jdk1.8.0_202-amd64 #根据自己 /usr/java/ 目录更改 export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
使配置生效
source /etc/profile #刷新环境变量
echo $JAVA_HOME #查看 JAVA_HOME 是否配置成功 echo $CLASSPATH #查看 CLASSPATH 是否配置成功 echo $PATH #查看 PATH 是否配置成功
卸载jdk
rpm -qa|grep jdk #检查 JDK 版本信息 rpm -e --nodeps jdk1.8-1.8.0_202-fcs.x86_64 #删除 JDK
yum安装
yum软件仓库及命令能够自动处理软件依赖关系,一次性安装所需全部软件,无需繁琐的操作
yum [参数] 软件包
参数列表
-
-y 对所有的提问都回答“yes”
-
-c 指定配置文件
-
install 安装rpm软件包
清理原有的软件仓库信息缓存
yum clean all
建立最新的软件仓库信息缓存
yum makecache
yum -y install httpd #安装指定的服务及相关软件包 yum update httpd #更新指定的服务及相关软件包 yum remove httpd #卸载指定的服务及相关软件包 yum grouplist #显示可安装的软件包组列表 yum info httpd #显示指定服务的软件信息
mysql安装
centos7系统安装mysql8.0完整步骤 - 腾讯云开发者社区-腾讯云
防火墙相关命令