Linux笔记

第一课

什么是LInux?

  • Linux是一种操作系统
  • 1991年10月,Linux Torvalds发布第一个公开版内核

image-20220907104545952.png

Linux目录结构

image-20220907104056459.png

image-20220907104116027.png/ linux 文件系统的起点,linux 所有的文件都放在其中。

/bin 存放二进制可执行文件,常用命令一般都在这里

/etc 存放系统管理和配置文件

/home 存放所有普通用户的家目录

/usr 存放系统应用程序

/opt 额外安装的可选应用程序包所放置的位置。比如,我们可以把 tomcat 等都 安装到这里

/proc 虚拟文件系统目录,是系统内存的映射,相当于是存储内存中的信息

/root 管理员的家目录

/sbin 存放二进制可执行文件,只有 root 才能访问。这里存放的是系统管理员使用 的系统级别的管理命令和程序。如 ifconfig 等

/dev 用于存放硬盘、键盘、鼠标、光驱等各种设备文件

/mnt 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂 载其他的文件系统

/boot 存放用于系统引导时使用的各种文件

/lib 存放跟文件系统中的程序运行所需要的共享库及内核模块

/tmp 用于存放各种临时文件

/var 用于存放各种服务的日志文件、系统启动日志等

第二课

查看及切换目录

“三剑客”高级使用

  • pwd — Print Working Directory – 用途:查看当前工作目录

  • cd — Change Directory

    • 用途:切换工作目录
    • 格式:cd [目标文件夹位置]

绝对路径与相对路径

  • 绝对路径:以根目录(/)起始的路径

  • 相对路径:以当前路径为参照的路径

1
2
[root@zrj pki]# cd /etc/pki/CA/ #绝对路径(以根为起始)
[root@zrj pki]# cd CA/ #相对路径(相对于当前目录/etc/pki)
  • . 表示当前目录
  • .. 表示父目录(也就是上一级目录)
1
2
[root@zrj CA]# cd .. #返回上一级目录
[root@zrj /]# pwd #当切到根以后无法再返回上一级(linux 系统以根为起始的)

ls列出目录内容/文件属性

ls列出目录内容/文件属性

– -l:以长格式显示(显示详细属性)

– -A:包括名称以 . 开头的隐藏文档

– -d:显示目录本身(而不是内容)的属性

– -h:提供易读的容量单位(K、M)等

– -R:递归显示内容

1
ls -lh /etc/passwd #显示详细属性并加上易读单位(K) 不加-h就是默认以字节为单位,理解为human给人看的

查详细属性

1
ls -lhd 目录或文件

创建/删除/移动目录

别名

1
2
3
alias #查看别名列表
alias hn='hostname' #命名别名,等号左边不要有空格
unalias hn #删除别名

创建

  • mkdir–Make Directory

删除

  • rm–Remove
    • -r:递归删除
    • -f:强制删除

移动

  • mv–Move
1
2
mv /opt/susu /opt/yiyi #改名 换个地方换个名 cp也可以
mv /opt/susu/ /opt/ #移动susu文件夹下的内容,/opt/susu则是表示移动文件夹

复制与通配符

cp复制

  • cp–Copy
    • -r:递归复制整个目录
    • -f:强制覆盖,不提示
    • -p:保持源文件属性不变

强制覆盖

临时取消别名:在运行命令前,加上 \

1
2
3
cp -r /boot/ /opt/ #递归复制每复制一个就询问一遍,输入y,文件太多时怎么处理呢?
#alias查看别名是发现 cp='cp -i' 复制时及使用cp -rf也是会询问 因为-i优先级高于-f
\cp -r /boot/ /opt/ #用\临时取消别名

复制多个

永远把最后一个参数作为目标,其他的所有参数都作为源

1
cp -r /boot/ /home/ /etc/passwd /mnt/ #将/boot/ /home/复制到/mnt目录下

通配符

  • *任意多个字符
  • ?单个字符
    • ‘*tab’以tab结尾 ‘tab*‘以tab开头
1
ls /boot/vm* #显示以vm开头数据
  • 特殊字符
    • [a-z]:多个字符或连续范围中的一个,若无则忽略
    • {a,min,xy}:多组不同的字符串,全匹配
1
2
3
4
5
6
7
8
9
10
[redhat@localhost ~]$ touch tty3
[redhat@localhost ~]$ touch tty4 #新创建两个tty3,tty4
[redhat@localhost ~]$ ls tty[3-8]#连续范围
tty3 tty4 #只会找到符合的
[redhat@localhost ~]$ ls tty{3,4,5,6,7,8}#多组条件
ls: 无法访问'tty5': 没有那个文件或目录
ls: 无法访问'tty6': 没有那个文件或目录
ls: 无法访问'tty7': 没有那个文件或目录
ls: 无法访问'tty8': 没有那个文件或目录#找不到符合的会提示
tty3 tty4

重定向与管道操作

  • >:覆盖重定向
  • >>:追加重定向

将屏幕显示信息写入文件

命令 > file 覆盖

命令>> file 追加

1
2
3
4
5
6
7
8
9
10
11
[redhat@localhost ~]$ touch redhat.txt #创建一个文件
[redhat@localhost ~]$ echo "hello, I'm Joel" > /var/ftp/Joel.txt #写字符串进文本
[redhat@localhost ~]$ ls
公共 图片 音乐 redhat.txt vmlinuz-0-rescue-3f6f17037a7c4806bcc68ce95a0c1d7b
模板 文档 桌面 tty3 vmlinuz-4.18.0-193.el8.x86_64
视频 下载 opt tty4
[redhat@localhost ~]$ hostname #hostname命令查看本机的hostname
localhost.localdomain
[redhat@localhost ~]$ hostname > redhat.txt #将本机hostname写入redhat.txt种
[redhat@localhost ~]$ cat redhat.txt #查看文件内容
localhost.localdomain
  • cat 加-n 添加行标

管道

|:只接受一个输入的命令

1
2
3
4
#一个文件12行 显示8-12行内容:
head -12 /etc/passwd/ | tail -5

cat /etc/passwd/ | head -12 |tail -5

find精确查找文件

– 常用条件表示:

  • -type 类型(f 文件【黑】、d 目录【蓝】、l 快捷方式【青】)

  • -name “文档名称”

  • -size +|-文件大小(k、M、G) k小写

  • -user 用户名 -mtime 修改时间

1
2
3
4
5
6
#-type 按照类型查找 
[root@localhost ~]# find /dev/ -type l #查找快捷方式
#-name '文档名称' 查找文件名
[root@localhost ~]# find /etc/ -name '*tab'
-size +或-文件大小(k、M、G)
[root@localhost ~]# find /boot/ -size +10M #查找大于 10M 的 不支持-1M,-1G,-1k(太小了)

find高级使用

wc

wc: word count 统计

wc -l /etc/passwd 查看这个文件有多少行 也是查看操作系统有多少用户

1
2
3
find /etc/ -name '*tab' | wc -l #管道给wc表示统计以tab结尾的文件有多少个

-exec拓展find的功能 find /home/ -name '*susu*' -exec cp -r {} /root \; #{}将前面的结果放进里面作为复制的对象 \;表示结束

第三节课

  • mkdir 只能创建文件夹不管后缀是怎么样,make directory

创建文件

1
touch [文件名]

创建硬连接

ln

1
ln  [选项] 原文件 /路径/快捷方式名字

颜色是青绿色

删除目录下所有内容

删除 /root/opt 下的所有内容,利用通配符 *

1
2
3
4
rm -rf /root/opt/*
#或者
cd /root/opt
rm -rf *

grep 查找文本内容

语法格式:

1
grep [选项] '匹配模式' 文本文件...

压缩文件

• tar 集成备份工具

红色 用tar就得加f选项,f一定放在最后

  • -c:创建归档

  • -x:释放归档

  • -f:指定归档文件名称

  • -z、-j、-J:调用 .gz、.bz2、.xz 格式的工具进行处理

  • -t:显示归档中的文件清单

  • -C(大写):指定释放的位置 ,后面要接释放目标

f:选项必须放在所有选项的最后

1
2
3
4
tar -zcf /路径/压缩包名字 被压缩归档的源数据 #用gzip压缩,可以压多个
tar -jcf #bzip2压缩
tar -Jcf #使用xz压缩
#cf是一定要加的,c:创建归档 f:指定归档文件名称

例子:

1
2
[root@localhost ~]# tar -zcf /opt/abc.tar.gz /home/
tar:从成员名中删除开头的"/"

查看:

1
tar -tf /opt/bin.tar.bz2

解压缩

1
2
3
4
#把压缩的c改成x 不加-z-j-J也可以 直接-xf
tar -zxf /路径/压缩包名字 -C 解压缩到的位置 #不加-C解压到当前
tar -jxf
tar -Jxf

win于linux互传

scp方法

win

1
2
3
4
本地文件->远程文件夹
scp local_file remote_username@remote_ip:remote_folder
本地文件->远程文件
scp local_file remote_username@remote_ip:remote_file
1
scp get66.pcap root@192.168.1.147:/super

linux

1
2
3
scp /home/zhao/data/test.txt zw@10.150.69.247: /C:/Users/zw/Desktop/summary

scp /home/zhao/data/test.txt zw@10.150.69.247: /C:/Users/zw/Desktop/summary/tt.txt

ssh connection deny 可能是因为没有装Oepnssh通过ssh协议实现Windows与Linux之间的文件互传_ssh传输文件 windows到linux_奇迹虎虎的博客-CSDN博客

第四次课

grep的查找条件

语法格式:

1
grep [选项] '匹配模式' 文本文件...

匹配模式:

  • ^word:以字符串word开头的
  • word$:以字符串word结尾的
  • ​ ^$:匹配空行

例子:

1
2
3
[root@localhost ~]# grep ^root /etc/passwd # 查找/etc/passwd 包含root开头的行
[root@localhost ~]# grep -v ^$ /etc/default/useradd #查看文件非空行
[root@localhost ~]# grep -v ^# /etc/login.defs #去除以#开头即去掉注释
1
grep -E '匹配模式1|匹配模式2' 文本文件 #单引号括住

任意满足一个就将其过滤出来

vim文本编辑器

1
2
vim [[/目录/]文件名]
[root@localhost ~]# vim /opt/ps.txt #打开此文件进行以下操作
  • 若目标不存在,则创建空文件并编辑

先进入的是命令模式

  • 在命令模式,i键进入输入模式,Esc键返回
  • 在命令模式,:键进入末行模式,Esc键返回

基本操作:

  • 保存并退出 :wq
  • 放弃修改并退出:q!

命令模式下的操作:

  • gg1G直接到文件首行,10gg10G跳转到第十行

  • G到文件末尾

  • yy复制,5yy往下复制5行,p粘贴

  • dd删除,10dd删除10行

  • u撤销,U撤销当前行的所有修改,Ctrl+u撤销一次撤销操作

  • /word向后查找,?word向前查找,按回车后按n查找下一个,N查找上一个

  • ZZ保存并退出vim

  • :w /root/newfile 另存为其他文件 :r /etc/filesystems 读入其他文件内容

开关设置

  • :set nu显示行号 :set nonu不显示行号

与vim相关的配置文件

1
2
3
4
vim ~/.vimrc #~家目录下配置
set nu # 之后打开文件编辑器都有行标
set ai # 都有缩进
#记得:wq保存退出才能生效

可视化操作

Vim 多行注释

  1. 首先按 esc 进入命令行模式下,按下 Ctrl + v ,进入列(也叫区块)模式;
  2. 在行首使用上下键选择需要注释的多行;
  3. 按下键盘(大写) “I” 键,进入插入模式;
  4. 然后输入注释符( “//“、”#” 等);
  5. 最后按下 “Esc” 键。

mount挂载

光驱默认在/dev/sr0,它是块设备不能直接读,要挂载才能读

1
2
mount 设备路径 挂载点目录
umount 挂载点目录 #卸载设备,卸载块设备无效

例子:

1
mount /dev/cdrom /dvd/ # 将光盘挂载到/dvd/目录

第五次课

RPM包

没法指定安装位置,要会找,拓展名为.rpm

源码包封装–>rpm包

image.png

查询已安装的软件包

1
2
rpm -q[子选项] [软件名称]
rpmquery [子选项] [软件名称]
  • -a:列出已安装的所有软件包
  • -i:查看指定软件的详细信息
  • -l:查看指定软件的文件安装清单

查询某个目录/文件是哪个rpm包带来的

1
rpm -qf [文件路径]

即使目标文件被删除也可以查询,注意后面接文件路径不是软件名。

查询未安装的软件包

1
2
rpm -qpi [RPM包文件] #查看指定软件的详细信息
rpm -qpl [RPM包文件] #查看指定软件的文件安装清单

卸载

1
rpm -e

强制覆盖安装

1
rpm -ivh --force [] 

–force

yum仓库简介

解决要安装各种依赖包的问题(一次性装)

yum配置解析

  • 基本设置:/etc/yum.conf
  • 仓库配置:**/etc/yum.repos.d/.repo* 一定以.repo结尾
  • 日志文件:/var/log/yum.log
1
2
3
4
5
6
7
8
9
10
11
12
vim /etc/yum.repos.d/dvd.repo #/dvd.repo根据具体改
[AppStream]
name=rhel8.2
baseurl=file:///dvd/AppStream #file://代表本地 /dvd从根开始 路径根据具体来改
enabled=1
gpgchcek=0
[BaseOS]
name=rhel8.2
baseurl=file:///dvd/BaseOS
enabled=1
gpgcheck=0
:wq

配置网络、源码包的编译和安装

配置linux网络

配置主机名

在root权限下

1
2
3
[root@localhost ~]# vim /etc/hostname #修改配置文件,永久配置主机名
svr7.tedu.cn
reboot #重启生效

配置IP

红帽是ens160 centos是ens33

修改网卡名

1
2
3
4
5
6
7
[root@svr7 ~]# vim /etc/default/grub

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0" #在末尾引号内添加net.ifnames=0 biosdevname=0

[root@svr7 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成引导文件,使配置文件生效
[root@svr7 ~]# reboot #重启

验证,网卡名是否发生变化

1
2
3
4
[root@svr7 ~]# ifconfig 		#有eth0网卡
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.71.130 netmask 255.255.255.0 broadcast 192.168.71.255

配置IP地址

临时配置:

1
ifconfig ens160 192.168.147.7/24

永久配置

1
2
3
4
5
[root@svr7 ~]# nmcli connection show		#查看连接名
NAME UUID TYPE DEVI
virbr0 0ace37a8-f7ad-45d6-9088-00b367999c0b bridge virb
有线连接 1 02cc8558-b41e-3bc4-817b-243ca95c0417 ethernet eth

重新添加网卡

1
[root@svr7 ~]# nmcli connection add  type ethernet ifname  eth0 con-name eth0	#添加网卡

配置IP

先不要照抄!

1
2
配置IP
[root@svr7 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.147.7/24 ipv4.gateway 192.168.147.254 connection.autoconnect yes #配置IP地址和网关并实现开机自动连接

注意:这里有两个ip地址要根据自己的修改,在虚拟机中选择VMnet8网卡,选NAT模式,查询子网ip和分配的网关;关闭DHCP,再改,因为打开后就是系统分配了

image.png

第一个ip填子网ip但后面的.0改成.7,加上/24,代码例子子网ip是192.168.147.0于是填入192.148.147.7/24

第二个ip点击NAT设置查询网关ip填入

image.png

1
2
3
[root@svr7 ~]# nmcli connection up eth0 	#激活eth0
[root@svr7 ~]# ifconfig #查看配置的IP
[root@svr7 ~]# route -n #查看网关

为本机指定DNS服务器

1
2
3
[root@svr7 ~]# vim  /etc/resolv.conf

nameserver 8.8.8.8

添加次要DNS

ping 本机验证

1
[root@svr7 ~]#ping 本机ip

本机ip在命令行窗口

1
ipconfig /all

以太网适配器…VMnet1下的ipv4地址,后面有(首选)

一般是网关ip的.2改为.1

SSH

image.png

克隆主机A后看克隆机B的ip地址

在A中试着用ssh连B

1
ssh root@[ip]

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ssh 命令选项 
-p 端口:连接到指定的端口
-X 启用-X转发,在本机运行对方的图形程序
[root@svr7 ~]# ssh root@192.168.4.207

Are you sure you want to continue connecting (yes/no)? yes #第一次远程会让输入yes
root@192.168.4.207's password: #输入密码
Last login: Wed Jul 8 11:24:37 2020
[root@pc207 ~]# firefox #运行firefox图形程序,失败
Error: GDK_BACKEND does not match available displays
退出,使用-X选项登陆,成功
[root@pc207 ~]# exit
[root@svr7 ~]# ssh -X root@192.168.4.207
root@192.168.4.207's password:
[root@pc207 ~]# firefox

修改默认端口

默认是22,可以进行修改,再连得关防火墙

修改默认端口,pc207主机操作:

1
2
3
[root@pc207 ~]# vim /etc/ssh/sshd_config
Port 8022 #Port原本是注释掉的 取消注释再把22改为8022
[root@pc207 ~]# systemctl restart sshd #重启sshd服务,切记selinux需要是宽松或者禁止状态setenforce 0

测试:svr7主机操作,如果测试失败,出现以下问题,请关闭防火墙

1
2
3
4
5
6
7
8
9
[root@svr7 ~]# ssh -p 8022 -X root@192.168.4.207	
ssh: connect to host 192.168.4.207 port 8022: No route to host
[root@svr7 ~]# systemctl stop firewalld
[root@svr7 ~]# getenforce
[root@svr7 ~]# setenforce 0
[root@svr7 ~]# ssh -p 8022 -X root@192.168.4.207 #重新测试
root@192.168.4.207's password:
[root@pc207 ~]#
[root@pc207 ~]# logout #退出

常用网络工具

image.png

image.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
C:\Users\chan>tracert www.baidu.com

通过最多 30 个跃点跟踪
到 www.a.shifen.com [183.232.231.172] 的路由:

1 1 ms 1 ms 1 ms 10.253.36.1
2 7 ms 3 ms 3 ms 202.116.36.213
3 12 ms 2 ms 4 ms 10.10.0.253
4 7 ms 10 ms 4 ms 120.236.163.1
5 6 ms 41 ms 7 ms 183.233.56.61
6 9 ms 10 ms 9 ms 120.196.243.21
7 * * * 请求超时。
8 37 ms 13 ms 13 ms 120.241.49.210
9 * * * 请求超时。
10 15 ms 26 ms 14 ms 183.232.231.172

跟踪完成。

image.png

1
ping -c [数字] -w [限定响应时间] [ip] #限定包数

源码编译安装

RPM软件包: rpm -ivh yum -y install

源码包—-开发工具—–>可以执行的程序—–>运行安装

优势:

灵活度较高,自定义较高,可以指定安装位置

  • 获得软件的最新版,及时修复bug

  • 软件功能可按需选择/定制,有更多软件可供选择

  • 源码包适用各种平台

准备编译环境,启动yum

步骤一:安装开发工具gcc与make

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@svr7 ~]# yum -y install gcc make		#可能会报错 说明没挂光驱和启用yum.repos.d
[root@svr7 ~]# mount /dev/cdrom /dvd/
[root@svr7 ~]# vim /etc/yum.repos.d/dvd.repo
[BaseOS]
name=BaseOS
baseurl=file:///dvd/BaseOS
gpgcheck=0
gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[AppStream]
name=AppStream
baseurl=file:///dvd/AppStream
gpgcheck=0
[epel]
name=EPEL
baseurl=http://mirrors.aliyun.com/epel/$releasever/Everything/$basearch
gpgcheck=0
enabled=1
[httpAppstream]
name=aliyun Appstream
baseurl=https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os
gpgcheck=0
[root@svr7 ~]# yum -y install gcc make #安装

查看是否安装成功:

自定义仓库

制作仓库索引文件

1
2
createrepos [仓库路径]
ls [仓库路径]

发现多了repodata 这就是索引文件

1
vim /etc/yum.repos.d/dvd.repo 

添加,其中这里设置的仓库路径是/mytools/

1
2
3
4
[Mytools]
name=Mytools
baseurl=file:///mytools/
gpgcheck=0

清空,重新生成

1
2
yum clean all
yum repolist -v

安装一些小玩意

小火车

1
2
yum -y install sl
sl

字符语

1
2
yum -y install cmatrix
cmatrix

oneko占用前端

1
oneko &  #在后台进行

这是会出现[1] 数字

1
kill all 数字  #杀死对应进程

用户组

超级用户id为0,其他从1开始。

每一个用户都会分配一个组,组账号用来区分权限,不用于登录。

  • 基本组
  • 附加组
1
/etc/passwd #存放账号
1
cat -n /etc/passwd | less #查看账号目录

添加组

1
2
groupadd stu
useradd -u 1111 -d /

用户初始配置文件

1
# ls -a /etc/skel/

模板目录,写到这里的东西会作为模板复制到新用户的家目录下。

全局配置文件还有:/etc/bashrc, /etc/profile

  • ~/.bash_profile:每次登录时执行
  • ~/.bashrc:每次进入新的Bash环境时执行
  • ~/.bash_logout:每次退出登录时执行

echo输出

1
# vim /home/[用户名]/.bashrc

打开用户终端时执行的内容

权限与归属

解析文件/目录权限

1
2
# ls -lhd ..
权限位 硬连接数 属主 属组 大小 最后修改时间

修改权限

chmod [-R] [+-=][rwx] 文件 ...

-R递归修改权限

1
# chmod u+r /                                       

image.pngj.png)

权限管理

目录权限默认为755,文件默认为644,一般文件默认不给x权限

1
2
3
mkdir -p /opt/susu/yiyi/ling #递归创建文件夹
ls -R /opt/susu/yiyi #递归列出 展开/opt/susu以及/opt/susu/yiyi
ls -lhd /opt/susu/yiyi #查看属性

权限位: User–Group–Ohter 各三个字符表示,字符有r(读)/w(写)/x(执行)/-

1
chmod 0=--- /opt/susu #修改Ohter权限为---

递归修改-R

1
chmod o+rx /opt/susu/yiyi #加可读可写权限

文件夹的权限可执行是指它的目录下的文件可执行,如果它的父目录没有可执行权限,那么不可移动等操作这个文件夹。

属组

1
2
3
4
5
6
7
mkdir /susu01
ls -lhd /susu01
groupadd stugrp #创建新组
useradd dc #创建新用户
id dc #查看用户Id
chown dc:stugrp /susu01 #修改归属
ls -lhd /susu01 #发现susu的属于的人和属于的组分别变为dc和stugrp
1
2
3
4
5
[root@localhost ~]# gpasswd -a zhangsan stugrp #加入组
[root@localhost ~]# su - zhangsan #切换
[zhangsan@localhost ~]$ exit
注销
[root@localhost ~]#

权限位

1
2
3
4
5
mkdir /student/
chown :stugrp /student/
chmod g+s /student/
ls -lhs /student/ #发现group变成r-s
mkdir /student/stu2/ #此时新建的子目录组会和/student/一致为stugrp

粘滞位

避免在同一个文件夹下不同用户互删文件

1
2
[root@localhost ~]#chmod o+t /public/ #other的x被t覆盖
#此时如果一个用户想要rm rf 另一个用户创建的文件不可置信

计划任务启动流程

查看进程

进程动态排名

1
top -d3 #每三秒更新一次进程动态排名

查进程PID号

1
2
3
4
pgrep -l crond

#查用户 查lisi的进程 pstree以树形结构展示 比pgrep详细
pstree -apu lisi

进程管理

1
2
3
4
5
6
7
8
9
10
11
12
# sleep 3 #占用前台终端三秒 暂停功能
^Z #此时挂起后是停止的
[1]+ 已暂停 sleep 3
# jobs
[1]+ 已暂停 sleep 3
# bg 1 #激活后台的sleep 3
# sleep 30 & #加"&"直接在后台进行
# jobs
[1]+ 运行中 sleep 3
[2]+ 运行中 sleep 30
# fg 2 #把sleep 30恢复到前台
# jobs -l #多加显示进程的PID号
  • Ctrl + z 挂起当前进程
  • jobs 查看后台任务列表
  • fg 将后台任务恢复到前台

杀死进程

1
2
3
4
5
6
7
8
9
[root@localhost ~]# kill [PID号]
[root@localhost ~]# killall sleep #杀死所以sleep名的进程
#假设有一个lisi用户在vim list.txt状态
[root@localhost ~]# pstree -apu lisi
bash,4419
vim,5213 list.txt
[root@localhost ~]# kill [-9] 5213 #此时lisi的vim状态终止 -9是暴力删除的方法

[root@localhost ~]# pkill -9 -U lisi #强制踢出lisi 此时lisi的终端退出了

日志

tail -f 查看

1
# tail -f /opt/1.txt

image-20221129095411871

服务器搭建

搭建ftp

FTP:文件传输协议 虚拟机 A(svr7)搭建基本 FTP 服务

安装 vsftpd 软件

1
[root@JSever ~]# yum -y install vsftpd 

重启 vsftpd 服务

1
2
3
[root@JSever ~]# systemctl restart vsftpd

[root@JSever ~]# systemctl enable vsftpd

允许匿名访问

1
[root@JSever ~]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO 改成YES

客户机访问:

1
[root@JClient ~]# firefox ftp://192.168.4.7

默认共享数据的目录:/var/ftp

上传

1
2
ftp 192.168.4.5
put 文件

必须要用户登录,匿名登陆会permission denied

搭建http服务

虚拟机 svr7 作为服务端,搭建 web 服务器

1、安装软件包

1
[root@svr7 ~]# yum -y install httpd 

2、书写页面内容,重启服务

1
2
[root@svr7 ~]# echo xixhaha > /var/www/html/index.html 
[root@svr7 ~]# systemctl restart httpd pc207

作为客户端测试,成功

1
[root@pc207 ~]# curl 192.168.4.7 3

修改配置文件 /etc/httpd/conf/httpd.conf,改变网页文件存放路径

1
2
3
4
[root@svr7 ~]# vim /etc/httpd/conf/httpd.conf 
DocumentRoot "/var/www/myweb"

DirectoryIndex index.html #默认网站起始页

改变网页文件存放路径

1
2
3
4
[root@svr7 ~]# mkdir /var/www/myweb 
[root@svr7 ~]# echo wo shi myweb > /var/www/myweb/index.html
[root@svr7 ~]# systemctl restart httpd pc207 作为客户端测试,成功
[root@pc207 ~]# curl 192.168.4.7

配置一个虚拟站点

• 配置文件路径

– /etc/httpd/conf/httpd.conf #主配置文件

– /etc/httpd/conf.d/*.conf #调用配置文件

为每个虚拟站点添加配置

<VirtualHost *:80>

ServerName 此站点的 DNS 名称

DocumentRoot 此站点的网页根目录

</VirtualHost>

虚拟机 svr7 作为服务端操作

1
2
3
4
5
6
7
8
9
[root@svr7 ~]# vim /etc/httpd/conf.d/nsd01.conf 
NameVirtualHost *:80 #请用机器的 IP 代替\*号
#开启虚拟主机,在所有 IP 地址上启用 80 端口
<VirtualHost *:80>
ServerName www.qq.com #指定访问的域名
DocumentRoot /var/www/qq #指定网页文件路径
ServerName www.baidu.com
DocumentRoot /var/www/baidu
</VirtualHost>
1
2
3
4
5
[root@svr7 ~]# mkdir /var/www/qq
[root@svr7 ~]# mkdir /var/www/baidu
[root@svr7 ~]# echo wo shi qq > /var/www/qq/index.html
[root@svr7 ~]# echo wo shi baidu > /var/www/baidu/index.html
[root@svr7 ~]# systemctl restart httpd

pc207 测试:

1
2
3
4
[root@pc207 ~]# vim /etc/hosts 192.168.4.7 www.qq.com www.baidu.com
[root@pc207 ~]# curl www.qq.com
wo shi qq
[root@pc207 ~]# curl www.baidu.com

第一个虚拟站点被视为默认站点

若想要原有的初始的话,虚拟站点配置上面另外加:

1
2
3
<VirtualHost *:80>
DocumentRoot /var/ftp/
</VirtualHost>