【Linux实验01】Linux系统安装和基本使用

第一部分 系统安装与基本使用

一、实验背景

你是DHU-CS实验室的一名管理人员,现在要为新的机器配置面向全院师生使用的Linux系统,并进行相关系统管理操作。你需要配置并熟悉所选的Linux系统后进行一些基本的管理操作。

二、预备知识

安装Linux系统的流程,系统基本操作,用户及组管理、权限管理与任务管理相关shell命令及其常用参数的使用方法。

三、试验内容

内容1:Linux系统安装

1-1 ubantu 18.04 安装

ubantu 18.04 已经安装好了,安装的是服务器版本,不带桌面。已经完成网卡配置,ssh远程连接等;

image-20240908110517274

并使用windows终端进行远程连接来

image-20240908110653328

1-2、选择与调整桌面终端

我没有安装桌面版,安装的服务器版本,直接用终端去操作

内容2:系统基本操作

2-1 切换字符终端与图形终端(略)
2-2 在字符终端与图形终端分别查看运行级别,使用命令切换至不同格式的终端

image-20240908111314166

2-3 使用命令关闭终端

image-20240908111546492

image-20240908111558561

2-4 使用命令关闭以及重启系统
# 远程登录linux系统
	ssh root@192.168.202.136
# 断开连接
	exit
# 重启系统
	reboot 或者 shutdown -h now
# 关机指令
	shutdown #默认30秒之后才会关机
# 立即关机
	shutdown  -h now
# 十分钟之后关机长度
	shutdown  -h  10
4-1 shutdown

image-20240908111920396

2-5 熟悉目录切换命令cd与新建目录命令mkdir
cd 
cd ./  # 切换到当前目录
cd ../ # 切换到上一级目录
cd ~   # 切换到主目录 
cd /   # 切换到系统根目录
cd /home/aini  # 切换到指定目录

image-20240908112228470

mkdir
##创建目录directory,这里说的目录就是文件夹,默认显示是蓝色的字体,文件显示是白色的字体
## mkdir 全称make directory 

    例子1:mkdir dev   #创建一个dev目录
    例子2:mkdir dev{01..10}     #批量创建多个目录
    例子3:mkdir -p 1/2/3/4/5/6  #一次性创建多级子目录
    
## 重命名:
mv aini aini01 # 将jaden目录改名为wulaoban

image-20240908112322879

rm
## 参数 -f -r
    -f  ## 强制删除
    -r ## 删除文件夹

    例子1:  rm /opt/123.txt  #将/opt目录下的123.txt文件删除,需要回复y确认删除
    例子2: rm -f /opt/test01.txt 
    	#将/opt目录下的test01.txt文件删除,不需要回复,强制删除,很多指令都有自己的参数,而且有好多,-f就是强制的意思。
    例子3: rm 文件1 文件2 文件3 #删除多个文件
#删除一个目录,linux的参数大部分没有先后顺序

#直接删除文件夹,比如 rm dev,这是不行的,会报错,需要带上r参数

rm -f -r dev02 
rm -r -f dev03
rm -fr dev # rm的两个参数可以合并到一起
rm -rf dev01
2-6 熟悉文件编辑操作vi与vim

image-20240908113651467

6-1 移动光标
## 左,下,上,右,如果键盘上没有上下左右键,可以h,j,k,l 
## 进入编辑模式有三个按钮:i、a、o, i在光标位置编辑、a是在光标后一位编辑、o是换行编辑,新起一行
    ctrl+f 下翻一页
    ctrl+b 上翻一页
    ctrl+u 上翻半页
    ctrl+d 下翻半页
0   # 跳至行首,不管有无缩进,就是跳到第0个字符
^   # 跳至行首的第一个字符
$   # 跳至行尾(shift+4)
gg  # 跳至文首
G   # 跳至文尾(shift+g)
5gg/5G  # 调至第5行,或者命令行模式:5回车,也是跳到第5行,所以其实操作命令都不是唯一的
6-2 删除复制
x    # 删除单个字符
10x  #删除10个字符
dd   # 删除光标所在行(其实dd是剪切的操作),  

## 使用u撤销之前的操作,使用ctrl+r恢复

6dd   # 从光标开始往下删除6行
dw    # 删除一个单词(word)
小p   # 粘贴粘贴板的内容到当前行的下面,比如将dd剪切的行黏贴到下面
大P   # 粘贴粘贴板的内容到当前行的上面
yy    # 复制行
5yy   # 复制5行,复制的内容可以通过p\P来黏贴
6-3 搜索和替换
## 搜索:
   /pattern 向后搜索字符串pattern  #辅助小n向下和大N向上,一般都是用/来搜索
   ?pattern 向前搜索字符串pattern  #辅助小n向上和大N向下,?搜索用的少

## 替换:
 :1369s/shell/aini/g  # 将第1369行的shell替换为jaden,/还可以用#或者@符号来代替::1369s#shell#aini#g
        
 :1369,1379s/shell/jaden/g  # 将1369至1379这10行中的shell替换为aini
 :1369,$s/shell/jaden/g  # 将1369至文末中的shell替换为aini
   :%s/old/new/g  #搜索整个文件,将所有的old替换为new
   :%s/old/new/gc #搜索整个文件,将所有的old替换为new,每次都要你确认是否替换(y/n/a/..),y表示确认替换一个、n表示不替换、a表示全部替换
6-4 退出编辑器
:w  ## 将缓冲区写入文件,即保存修改到硬盘上,但是不退出vi,如果我们改到一半的时候可以提前保存一下,以防断电,因为新编辑的数据是在内存中的,而且vi不会自动保存。

:wq ## 保存修改并退出

:x ## 保存修改并退出,和wq一样的效果。

:q ## 退出,如果对缓冲区进行过修改,则会提示

:q! ## 强制退出,放弃修改

:wq! ## 强制保存修改并退出

image-20240908113908526

2-7 使用uname命令显示计算机及操作系统相关信息

image-20240908113954316

2-8 使用hostname命令显示及修改主机名
8-1 临时修改主机名
#临时修改主机名 hostname
hostname test   #需要重新登录生效
8-2 查看主机的信息
hostnamectl

image-20240908114256228

8-3 永久修改主机名
#永久修改主机名
hostnamectl set-hostname test  #需要重新登录生效

image-20240908114633907

2-9 退出超级用户su 和 sudo
2-9-1 su
# su全称:switch user

# root用户可以很方便的切换到任意用户
su - aini
# 普通用户切换到root用户,必须输入root密码
su - root
# 不带-也是可以的,带-的话,就是切换完用户之后,直接到用户家目录下,不带-就不是家目录。
su root
exit

image-20240908115107795

2-9-2 sudo
## sudo全称:superuser do,它的作用是用来授权的。就是给普通用户高级权限用的。原因就是很多的操作,如果都需要root用户去做,太麻烦了,所以可以给普通用户做一些授权,普通用户操作就方便了。授权就用到了sudo,sudo并不是一下子给用户很多权限,而是一个命令一个命令的授权。

## sudo需要修改配置才能开启。
# root用户才能修改这个配置。
1.配置/etc/sudoers
    # 直接visudo就能编辑这个文件
    [root@localhost ~]# visudo
    #用户名   所有终端 = 运行的用户身份   命令ALL,ALL是所有指令,不能给所有的,不然权限太高了
    #在100行下面添加如下内容
        aini  ALL=(ALL)       /bin/systemctl,/usr/bin/vim,/usr/sbin/reboot   # 单独给指令权限,而且要写指令的绝对路径,逗号分割
    # 修改完配置文件,保存退出之后,立马就生效了,不需要重启或者重新登录。
    #切换到普通用户,查看可以使用的授权命令

image-20240908115444576

image-20240908115607489

2-10 联机帮助命令

image-20240908115743677

内容3:用户与组管理

3-1、创建管理员用户DHU_admin,赋予该用户创建新用户的权限(root用户除外),所属组名admin,工作主目录为\home\admin

3-1-1 创建用户DHU_admin并设置工作主目录

image-20240908120208469

3-1-2 赋予该用户创造新用户的权限

echo "DHU_admin ALL=(ALL) NOPASSWD: /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel" | sudo tee /etc/sudoers.d/dhu_admin

image-20240908120435460

3-1-3 设置该用户所属组为admin

sudo groupadd admin
sudo usermod -aG admin DHU_admin

image-20240908120633350

image-20240908120654494

3-2 切换到管理员用户DHU_admin登录,以管理员用户身份创建两个普通用户user1与user2(也可以自行设计普通用户名称,如stu与tch),普通用户都放在组users中,工作主目录为\home\users

sudo groupadd users
sudo useradd -g users -d /home/users user1
sudo useradd -g users -d /home/users user2

image-20240908121352434

image-20240908121505759

3-3 修改每个账号的密码为:用户名_123(也可设置为方便自己记忆的密码)

image-20240908121725446

3-4 设置普通用户的密码有效期,期限自拟(图示期限为有效期半年)

image-20240908121853929

内容4:进程管理

#查看进程
	ps
	参数1:ps -ef
    
pid:# 全称process id,是进程编号,每次启动某个程序,它的编号可能都不一样,这个是程序启动之后系统随机分配的。
uid:# 全称user id,是进程所属用户,也就是哪个用户启动的,我们可以切换个用户执行一下sleep 60,就可以看到效果
ppid:# 全称parent process id,父进程,记录的是某个进程是由哪个进程创建出来的。可以通过pstree工具来查看从属关系。
C:   # 这个不用管。
STIME:# 全称start time,进程的启动时间。
TTY: # 用来显示哪些是本地启动的,哪些是远程终端连接上来启动的。通过w指令可以看到哪些终端登录着主机。只要登录成功一个终端,那就多一个终端。
TIME:# 这个没啥用
CMD:# 这个进程执行了什么指令    
#关闭进程
	 kill pid号
 	kill  7851  #使用进程id号,来终止进程
 	kill -9 pid号  #慎用!!!
 
#批量关闭进程,pkill全称program kill
	pkill CMD命令名称
	pkill sleep  #使用进程的命令名称,来终止进程,会中止所有CMD执行着sleep的进程的。
	pkill -9 sleep
       
# kill -9,这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
# 如果想把某个远程连接踢下线,可以杀掉显示pts的远程连接进程的父进程,如下图
4-2 查看当前系统的进程(eg:ps -aux)

image-20240908122249171

4-2 使用kill结束某个进程

image-20240908122508576

4-3 查看系统目录(/var/log)

image-20240908122622726

4-4 查看系统信息
4-1 查看cpu
#查看cpu
	lscpu

image-20240908122830572

4-2 查看内存命令
#查看内存命令
	free -h

image-20240908122855670

4-3 查看硬盘命令
#查看硬盘命令
	df -h  #h表示人类可读
    
    [root@localhost ~]# df -h
    文件系统       容量 已用 可用 已用% 挂载点
    devtmpfs       980M     0 980M    0% /dev
    tmpfs           991M     0 991M    0% /dev/shm
    tmpfs           991M  9.5M 981M    1% /run
    tmpfs           991M     0 991M    0% /sys/fs/cgroup
    /dev/sda1       100G  2.2G   98G    3% /
    tmpfs           199M     0 199M    0% /run/user/0

image-20240908122911391

4-4 查看计算机的cpu,内存,进程等信息
# 含有tmp的表示是内存给硬盘的空间,默认会给1半内存空间,把内存当作硬盘使用,这个我们不用管。
# 查看计算机的cpu,内存,进程等信息(和windows的任务管理器很像)
top
    top - 08:34:27 up 20 min,  1 user, load average: 0.00, 0.01, 0.05
   Tasks:  89 total,   2 running,  87 sleeping,   0 stopped,   0 zombie
   %Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 
    
st
   KiB Mem :  2027872 total,  1779000 free,   135668 used,   113204 buff/cache
   KiB Swap:        0 total,        0 free,        0 used.  1755332 avail Mem 

image-20240908122944894

内容5:任务管理

5-1 定时任务的格式
#定时任务的格式
    * * * * *   cmd
    分 时 日 月 周   命令
    分:0-59
    时:0-23
    日:0-31
    月:1-12
    周:1-7
#每5分钟执行一次
	*/5 * * * *
    
#每1小时的01分执行一次
	01 */1 * * *
    
#每半个小时执行一次,下面的意思是每小时的00分和30分各执行一次
	00,30 */1 * * *
    
#每天晚上8:00执行一次
	00 20 * * *
    
#每个月1号晚上8:00执行
	00 20 1 * *
    
#每年1月1号晚上8:00执行
	00 20 1 1 *
    
#每周1、周三、周五晚上8:00执行一次
	00 20 * * 1,3,5
    
# 几个符号的意思:
    # * 每分钟
    # */5 每5分钟
    # 05 第5分钟
    # 每秒钟执行的任务,需要单独写脚本,繁琐一些。
5-2 查看,编辑定时任务
#查看定时任务,遇到特殊符号%,需要添加转义符号\;
crontab -l
	* * * * *  echo `date +\%T` >>/tmp/time.txt
    
#编辑定时任务
crontab -e
     * * * * * date >> /tmp/time.txt  # 每分钟执行一次
        
crontab -l
    * * * * * date >> /tmp/time.txt
    
## 我们可以通过cat来查看任务是否执行了,但是比较麻烦,每次手动输入cat,所以我们可以用如下指令
	tail -f /tmp/time.txt  #监测文件尾部内容的变化.
    
tail -f /tmp/time.txt
    2023年 03月 24日 星期五 10:58:01 CST
    2023年 03月 24日 星期五 10:59:01 CST
    2023年 03月 24日 星期五 11:00:01 CST
    2023年 03月 24日 星期五 11:01:01 CST
            
# 是这个进程再帮我们执行定时任务:
ps -ef|grep cron
    root        581      1  0 18:05 ?        00:00:00 /usr/sbin/crond -n
                
# 我们还可以自行重启这个进程
systemctl restart crond
ps -ef|grep cron # 可以看到进程启动时间变化了
    root       2611      1 25 21:27 ?        00:00:00 /usr/sbin/crond -n
                
#改为每小时的03分执行
crontab -e
crontab -l
    03 * * * * date >> /tmp/time.txt
    #修改一下系统时间
     	date -s '12:02:50'
    		2023年 03月 24日 星期五 12:02:50 CST
    tail -f /tmp/time.txt
    ...
    2023年 03月 24日 星期五 11:13:01 CST
    2023年 03月 24日 星期五 11:14:01 CST
    2023年 03月 24日 星期五 12:03:03 CST  # 12点03分执行的
    # crontab -e里面每一行都可以写一个定时任务,也就是可以写多个定时任务。
    

设置并执行crontab命令(eg:每半小时同步时间,每月的某日固定时间检查/home磁盘……)

image-20240908123647625

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学网安的A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值