环境 VMware Workstation Pro 16 操作工具 MobaXterm
一、yum安装包命令。
$ yum install PACKAGE_NAME -- 安装yum包
yum install docker -- 安装docker
$ yum remove PACKAGE_NAME --移除安装包
yum remove docker -- 移除docker
$ yum reinstall PACKAGE_NAME -- 重新安装yum宝
yum reinstall docker -- 重新安装docker 建立在已经安装好docker的情况下
$ yum search PACKAGE_NAME -- 搜索安装包
yum search docker -- 搜索docker
$ yum info PACKAGE_NAME -- 查看yum包的信息
yum info docker -- 查看docker的信息
$ yum update -- 更新安装的yum包 直接执行
yum update 默认更新所有的安装包
$ yum update PACKAGE_NAME -- 指定具体更新安装包
yum update docker -- 指定更新docker
$ yum history --查看所有的操作命令记录
yum history -- 查看所有操作记录
$ yum repolist -- 查看已启用的yum存储库的列表
$ yum clean all -- 清除缓存
二、vim编辑器
三、常用命令
3.1版本信息
[root@localhost xiaozhang]# cat /etc/os-release --查看操作系统版本
NAME="openEuler"
VERSION="22.03 (LTS-SP2)"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 (LTS-SP2)"
ANSI_COLOR="0;31"
[root@localhost xiaozhang]# cat /proc/version --查看操作系统版本信息
Linux version 5.10.0-153.12.0.92.oe2203sp2.x86_64 (root@dc-64g.compass-ci) (gcc_old (GCC) 10.3.1, GNU ld (GNU Binutils) 2.37) #1 SMP Wed Jun 28 23:04:48 CST 2023
[root@localhost xiaozhang]# uname
Linux
[root@localhost xiaozhang]# getconf LONG_BIT
64
3.2 关机重启命令(谨慎使用)
reboot
shutdown -r now 立刻重启(root用户使用)
sudo reboot
sudo shutdown -r now
shutdown -r 10 过10分钟自动重启(root用户使用)
shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
3.3 目录操作ls
ls --查看当前文件包包含的基础文件
ls -all --显示所有文件包含隐藏文件
ls -all --block-size=M 以MB,KB,GB为单位显示文件信息
3.4 删除文件操作rm
rm [options] name...
参数:
-i 删除前逐一询问确认。
-f 强制删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
rm -r * -- 删除当前目录下的所有文件及目录
3.5 目录拷贝 cp
# 复制cp # . 当前目录 ..上一级目录 ~ 家目录
# 复制两个文件到当前目录中
$ cp ~/user.txt ../linux.txt
# 将空目录b复制到a目录,将c目录复制到a目录
$ cp -r c a
$ cp -r b a
tree --以树形的方式展示
cp -r c/* a 复制c目录下的所有内容,包括目录都复制到a目录
cp index.html ~/dst/ #复制index.html到家目录dst下
cp * ~/temp 复制当前目录下的内容到~/temp
cp *.* ~/temp 复制当前目录下的所有自己目录的内容到~/temp
cp *.html ~/temp 复制当前目录下的所有的html文件到~/temp
cp * -r ~/temp 递归复制所有目录下的所有文件到~/temp
mv c b 移动-剪切粘贴 mv 也可以改名
mv jdk-17.0.1/ /usr/local/
mv /usr/local/jdk-17.0.1/ .
mv jdk17 jdk-17
3.6 文件操作grep
grep [OPTIONS] PATTERN [FILE...]
--color=auto 对匹配到的文本着色显示
-v 显示不被pattern匹配到的行
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-e 实现多个选项间的逻辑or关系
grep –e ‘cat ’ -e ‘dog’ file
-w 匹配整个单词
准备一个txt文本内容
1) grep -i “test” test.txt 搜索出含有“test” 字符串(-i:不区分大小)
2) grep -i -n “test” test.txt 搜索出含有“test” 字符串,并打印行号
3) grep -i -n --color “test” test.txt 搜索出含有“test” 字符串,并打印行号,关键字“test”颜色标记(centos7系统默认为grep命令配置了别名,所以不使用—color也能显示颜色)
4) grep -i -c “test” test.txt,打印“test”字符串(不区分大小写)显示的次数
5) grep -i -o “test” test.txt,打印“test”字符串(不区分大小写),但不打印整行
准备第二个txt文件
6) grep -A1 “18” test2.txt,打印“18”字符串和它下一行的信息
7) grep -B1 “18” test2.txt,打印“18”字符串和它上一行的信息
8) grep -C1 “18” test2.txt,打印“18”字符串和它上一行和下一行的信息
9) grep -w “dlf” test.txt,精确匹配出“dlf”字符串的
10) grep -v “dlf” test.txt,匹配出不包含“dlf”字符串的行
11) grep -e ‘abc’ -e ‘dlf’ test.txt,同时显示匹配”abc”或”test”字符串
3.7 起别名alias
alias [name=”value”] -- name为别名的名字, value 为命令的名字
alias cls="clear"
alias cls='clear' -- 临时定义别名
alias -- 查看别名
永久化别名
四、防火墙
4.1防火墙开启、关闭、禁用
systemctl enable firewalld -- 设置开机启用防火墙
systemctl disable firewalld -- 设置开机禁用防火墙
systemctl start firewalld -- 启动防火墙
systemctl stop firewalld 或 systemctl stop firewalld.service --关闭防火墙
systemctl status firewalld --检查防火墙状态
4.2 使用firewall-cmd配置端口
查看防火墙状态:firewall-cmd --state
重新加载配置:firewall-cmd --reload
查看开放的端口:firewall-cmd --list-ports
开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
命令含义:
–zone #作用域=pubic
–add-port=9200/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效
关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent
五、网络工具netstat和telnet
基础释义:
Netstat在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。 Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。 如果你的计算机有时候接收到的数据包导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据包。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用Netstat查一查为什么会出现这些情况了。 一般用netstat -an 来显示所有连接的端口并用数字表示。 netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。使用时如果不带参数,netstat显示活动的 TCP 连接。
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
5.1 netstat
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息
netstat [options]
netstat -anp | grep 端口号 查看某个端口是否被占用
netstat -a # 列出所有端口
netstat -at # 列出所有TCP端口
netstat -au # 列出所有UDP端口
netstat -ax # 列出所有unix端口
netstat -atnlp # 直接使用ip地址列出所有处理监听状态的TCP端口,且加上程序名
5.2 telnet
telnet 192.168.21.35 8080 --查看端口是否开放
5.3 curl命令
curl是一个命令行工具,用于与服务器进行数据交互。它支持多种协议,如HTTP、HTTPS、FTP、SMTP等,并且可以发送请求、接收响应、下载文件等。
以下是curl的一些常用选项和功能:
- 发送HTTP请求:使用 -X 选项指定请求方法,如 GET 、 POST 、 PUT 、 DELETE 等。
- 设置请求头:使用 -H 选项设置请求头信息,如 Content-Type 、 Authorization 等。
- 发送表单数据:使用 -d 选项发送表单数据,可以是键值对或JSON格式的数据。
- 下载文件:使用 -o 选项指定下载文件的保存路径。
- 输出详细信息:使用 -v 选项输出请求和响应的详细信息。
- 使用Cookie:使用 -b 选项发送请求时携带Cookie,使用 -c 选项保存服务器返回的Cookie。
六、进程管理工具 top ps
释义:
在Linux中, top 和 ps 命令都用于监视系统中运行的进程和资源使用情况,但它们在功能和显示方式上有一些区别。
top 命令以交互方式实时显示系统中运行的进程信息。它提供了一个动态的进程列表,按CPU使用率或内存使用率排序。 top 还显示了系统的总体性能指标,如CPU利用率、内存使用情况和交换空间使用情况等。它还提供了一些交互式选项,可以在运行时改变排序方式、过滤进程等。
**ps **命令用于列出当前系统中的进程。它提供了更多的选项和参数,可以根据不同的需求进行进程过滤和排序。 ps 命令可以显示进程的PID(进程ID)、PPID(父进程ID)、CPU使用率、内存使用情况、进程状态等信息。它还可以显示特定用户或特定命令的进程。
总的来说, top 命令更适合实时监视系统性能和进程活动,而 ps 命令则提供了更多的选项和灵活性,用于查看和管理进程。
6.1 top命令
第一行:系统运行时间和平均负载
当前时间、系统已运行时间、当前登录用户的数量、最近5、10、15分钟内的平均负载
第二行:任务
任务的总数、运行中(running)的任务、休眠(sleeping)中的任务、停止(stopped)的任务、僵尸状态(zombie)的任务
详细参数到这里查看:
Linux top命令的用法详细详解 - 千里之外外 - 博客园
6.2 进程查看 ps
$ps -aux可以看到所有运行的程序与grep连用筛选
$ps -a显示现行终端机下的所有程序(包括其他用户的程序)
$ps -u以用户为主的排序显示(username)
$ps -x显示所有程序(包括所有终端机下的)
进程ps命令详情:
ps命令详解_ps %cpu_(】的博客-优快云博客
6.3 关于java的进程jps
释义:jps 是 Java Virtual Machine Process Status Tool 的缩写,它用于显示当前正在运行的 Java 进程的信息,包括进程 ID 和进程的类名或 JAR 文件名。
jps :显示当前正在运行的 Java 进程的进程 ID 和类名或 JAR 文件名。
jps -l :显示当前正在运行的 Java 进程的进程 ID 和完整的主类名(包括包路径)或 JAR 文件路径。
jps -m :显示当前正在运行的 Java 进程的进程 ID、主类名或 JAR 文件名,以及传递给主类的参数。
jps -v :显示当前正在运行的 Java 进程的进程 ID、主类名或 JAR 文件名,以及传递给主类的参数和虚拟机参数。
jps -q :仅显示当前正在运行的 Java 进程的进程 ID,不显示类名或 JAR 文件名。
6.4 杀死进程 kill
$kill -9 pid --该命令可以使用-9参数来强制杀死进程
七、磁盘free和fdisk
7.1 free
free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存
$free //默认单位实kb
&free -m //以M为单位
$free -h //以更好的可读方式进行展示
$free -h -s 3 //每3秒刷新一次
Mem 行(第二行)是内存的使用情况。
Swap 行(第三行)是交换空间的使用情况。
total 列显示系统总的可用物理内存和交换空间大小。
used 列显示已经被使用的物理内存和交换空间。
free 列显示还有多少物理内存和交换空间可用使用。
shared 列显示被共享使用的物理内存大小。
buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
available 列显示还可以被应用程序使用的物理内存大小。
7.2 fdisk
fdisk 是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表
必要参数:
-l 列出素所有分区表
-u 与-l 搭配使用,显示分区数目
df -h 查看磁盘占用情况
八、用户和组
8.1 用户管理
$ whoami
root
$ echo ${USER}
root
$env
8.2 添加用户
sudo adduser cyz
id cyz -- 使用 id 用户名,查看指定用户所属组
#把cyz用户加入root组
usermod -G root cyz
cat /etc/group |grep cyz
8.3 修改密码
passwd cyz
8.4 删除用户
userdel
8.5 切换用户
#切换用户
$ sudo su #切换root账号
$ su cyz
$ su - root #切换账号直接进入家目录
$ exit
8.6.用户组管理
$ cat /etc/group
8.7 用户组操作
添加用户组groupadd
修改用户组groupmod
删除用户组groupdel
九、权限
1、查看文件权限命令: ls -lh [option:文件名]
2、查看文件夹权限命令 ls -ld [option:文件夹名]
修改权限
方法一:
下面使用 chmod 命令修改文件的权限
sudo chmod 600 ××× (只有文件所有者有读和写的权限)
sudo chmod 644 ××× (文件所有者有读和写的权限,组用户只有读的权限)
sudo chmod 700 ××× (只有文件所有者有读和写以及执行的权限)
sudo chmod 666 ××× (所有用户都有读和写的权限)
sudo菜单 (所有用户都有读和写以及执行的权限)
解释:
1、其中×××:指文件名(修改文件夹权限时,有的需要在 chmod 后加-ld)
2、三位数字分别对应每一个用户类型的权限设置,取值是0~7,即二进制的[000]~[111]。
3、其它权限 [000]无任何权限 [100]只读权限 [110]读写权限 [111]读写执行权限
方法二:
同样使用chmod命令修改权限,具体如下:
命令格式:
sudo chmod [操作对象+权限增减+操作权限] ×××
例:
sudo chmod u+w ××× #添加文件拥有者的“可写”权限
sudo chmod u-w ××× #删除文件拥有者的“可写”权限
sudo chmod g+r ××× #添加用户组的“可读”权限
sudo chmod o-w ××× #删除其它用户的“可写”权限
sudo chmod +x ××× #添加所有用户的“可执行”权限
解释:
操作对象:u 表示文件拥有者,g 表示组用户,o 表示其它用户,a 表示所有用户
权限增减:+ 表示增加权限、- 表示取消权限、= 表示设定唯一权限
操作权限:r 表示可读取,w 表示可写入,x 表示可执行