实验六 :Linux中Shell的系统管理全解


实验目的

  • 掌握Linux下软件包管理,包括命令rpm、tar。
  • 了解Linux中网络通信管理,包括网络基本配置及常用网络命令。
  • 掌握进程的创建、查看及终止命令。

实验内容

1、通过安装虚拟机工具实现windows和linux的文件共享。

要在Windows和Linux之间通过虚拟机实现文件共享,可以按照以下步骤操作:

  1. 安装 VMware Tools

    • 确保的Linux虚拟机中已经安装了VMware Tools。这可以通过在虚拟机中选择“虚拟机”菜单,然后选择“安装VMware Tools”来完成。如果是通过命令行安装,可以使用以下命令:
      sudo apt-get install open-vm-tools
      
    • 安装完成后,重启虚拟机。
      在这里插入图片描述
  2. 设置共享文件夹

    • 在VMware Workstation中,打开虚拟机设置,选择“选项”->“共享文件夹”,然后选择“总是启用”并添加要共享的文件夹。
    • 你可以选择“自动挂载”和“固定分配”,并设置一个挂载点。
  3. 在Linux中挂载共享文件夹

    • 启动虚拟机,打开终端。
    • 创建一个挂载点(如果尚不存在):
      sudo mkdir /mnt/hgfs
      

在这里插入图片描述

  • 挂载共享文件夹:
    sudo mount -t vmhgfs .host:/ /mnt/hgfs
    

在这里插入图片描述

  • 如果需要允许其他用户访问共享文件夹,可以使用 -o allow_other 选项:
    sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
    

在这里插入图片描述

  • 现在,应该能够访问和操作共享文件夹中的文件。
  1. 验证共享文件夹

    • 使用 ls /mnt/hgfs 命令来查看共享文件夹的内容。
    • 确保共享目录可在虚拟机上访问,并且现在可以打开存储在该目录中的文件。
  2. 设置开机自动挂载

    • 可以将挂载命令添加到 /etc/rc.local/etc/fstab 文件中,以确保每次启动时自动挂载共享文件夹。
  3. 设置网络共享

    • 如果想要通过网络共享文件,可以在Linux中设置Samba服务器,或者在Windows中设置文件共享。

2、使用命令将当前计算机的主机名修改为IT。

在Linux系统中,可以使用hostnamectl命令或者编辑/etc/hostname文件来修改主机名。以下是两种常用的方法:

方法1:使用hostnamectl命令

  1. 临时修改主机名
    打开终端,然后输入以下命令来临时更改当前会话的主机名:
    sudo hostnamectl set-hostname IT
    

在这里插入图片描述

这个命令会立即更改当前会话的主机名,但重启后会恢复原来的主机名。

  1. 永久修改主机名
    要永久更改主机名,需要编辑/etc/hostname文件。可以使用文本编辑器,如nanovim,来编辑这个文件:

    sudo nano /etc/hostname
    

    或者

    sudo vim /etc/hostname
    

    在编辑器中,将文件中的当前主机名更改为IT,然后保存并退出。

  2. 验证更改
    使用以下命令来验证主机名是否已更改:

    hostname
    

    或者

    hostname -f
    

在这里插入图片描述

这两个命令应该返回新的主机名IT

方法2:直接编辑/etc/hostname文件

  1. 编辑文件
    直接使用文本编辑器编辑/etc/hostname文件:

    sudo nano /etc/hostname
    

    或者

    sudo vim /etc/hostname
    

    将文件中的主机名更改为IT

  2. 修改/etc/hosts文件(可选):
    为了确保系统能够正确解析新的主机名,可能还需要编辑/etc/hosts文件,确保其中有一行映射了新的主机名到本地回环地址:

    sudo nano /etc/hosts
    

    找到类似于以下内容的行,并确保它包含了新的主机名:

    127.0.0.1   localhost
    127.0.1.1   IT
    

    如果没有,可以添加一行,其中IT是新主机名。

  3. 重启系统或重新登录
    为了使更改生效,可能需要重启系统或重新登录。

3、使用netconfig命令设置网络的相关属性,包括IP地址、子网掩码、默认网关等。

在现代Linux系统中,netconfig 命令已经不再是配置网络设置的推荐工具,因为它已经在很多发行版中被废弃。取而代之的是更现代的工具,如 nmcli(NetworkManager 的命令行界面)、ifconfig(在一些旧系统中使用,但现在也被 ip 命令取代)、ip 命令和 systemd-networkd

以下是使用这些现代工具设置网络属性的方法:

使用 nmcli 设置网络属性

  1. 查看所有网络连接
    nmcli con show
    

在这里插入图片描述

  1. 编辑特定的网络连接
    假设你要编辑的连接名称是 Wired connection 1,你可以使用以下命令:

    nmcli con mod "Wired connection 1" ipv4.addresses "192.168.1.100/24"
    nmcli con mod "Wired connection 1" ipv4.gateway "192.168.1.1"
    nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8"
    nmcli con mod "Wired connection 1" ipv4.method manual
    
  2. 重新启动网络连接

    nmcli con down "Wired connection 1" && nmcli con up "Wired connection 1"
    

在这里插入图片描述

使用 ip 命令设置网络属性

  1. 设置IP地址

    sudo ip addr add 192.168.1.100/24 dev eth0
    
  2. 设置默认网关

    sudo ip route add default via 192.168.1.1
    
  3. 设置DNS(需要编辑 /etc/resolv.conf 文件):

    echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
    

编辑网络配置文件

在某些Linux发行版中,可能需要直接编辑网络配置文件,这些文件通常位于 /etc/network/interfaces/etc/sysconfig/network-scripts/ 目录下。

  1. 编辑 /etc/network/interfaces 文件

    sudo nano /etc/network/interfaces
    

    添加或修改以下内容:

    auto eth0
    iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8
    

    保存并退出。

  2. 重启网络服务

    sudo systemctl restart networking
    

    或者

    sudo /etc/init.d/networking restart
    

4、分别用前台和后台启动方式在根目录/下查找名字为linuxa2.txt的文件。

在Linux系统中,可以使用find命令来查找文件。以下是如何在前台和后台启动方式下查找名为linuxa2.txt的文件的步骤:

前台启动方式

在前台启动方式下,find命令会立即开始搜索并显示结果,直到搜索完成。

find / -type f -name linuxa2.txt

在这里插入图片描述

这个命令会在根目录/下递归搜索名为linuxa2.txt的文件。-type f参数指定只查找文件(不包括目录)。

后台启动方式

在后台启动方式下,你可以使用&find命令放入后台执行,或者使用nohup命令确保即使终端关闭,搜索也会继续进行。

使用 & 放入后台
find / -type f -name linuxa2.txt &

这个命令会将find命令放入后台执行。你可以使用jobs命令查看后台作业的状态,或者使用fg命令将其调回前台。

使用 nohup 命令

nohup命令可以防止命令在终端关闭时被终止。

nohup find / -type f -name linuxa2.txt > find_output.txt &

这个命令会将find命令的输出重定向到find_output.txt文件中,并且即使终端关闭,搜索也会继续进行。&将命令放入后台执行。

注意事项

  • 在根目录/下进行递归搜索可能会花费一些时间,并且可能会显示大量结果,取决于文件系统的复杂性。
  • 如果只想在当前目录下搜索,可以省略/并使用.代替,或者直接在命令行中使用find . -type f -name linuxa2.txt
  • 根据的系统配置和权限,搜索根目录可能需要root权限。如果是这样,可能需要在命令前加上sudo

5、查看系统中所有启动的进程,不带控制台终端,并显示用户名和进程的起始时间。

要查看系统中所有启动的进程,不带控制台终端,并显示用户名和进程的起始时间,可以使用 ps 命令结合一些参数来实现。以下是具体的命令:

ps -e -o pid,tty,user,lstart,cmd | grep -v pts

在这里插入图片描述

这里的参数解释如下:

  • -e 表示显示所有进程。
  • -o 允许你自定义输出格式,后面跟着的是你想显示的列:
    • pid 表示进程ID。
    • tty 表示终端类型,不带控制台终端的进程通常显示为 ?
    • user 表示启动进程的用户。
    • lstart 表示进程的起始时间。
    • cmd 表示启动进程的命令。
  • grep -v pts 是用来排除所有在 pts(伪终端)上的进程,因为这些通常是远程登录会话。

这个命令会列出所有进程,包括那些没有控制台终端的进程,并显示每个进程的用户名和起始时间。如果只想看特定用户的进程,可以将 grep -v pts 替换为 grep [用户名] 来过滤结果。

6、使用命令结束第4题中的进程。

要结束第4题中提到的进程,需要知道进程的PID(进程ID)。一旦有了PID,可以使用 kill 命令来结束进程。以下是结束进程的步骤:

  1. 查找进程ID
    首先,需要找到想要结束的进程的PID。可以使用 ps 命令结合 grep 来查找PID。例如,如果要查找名为 linuxa2.txt 的文件相关的进程,可以使用以下命令:

    ps -ef | grep 'linuxa2.txt' | grep -v grep
    

在这里插入图片描述
这个命令会列出所有与 linuxa2.txt 相关的进程,并且排除掉 grep 命令本身。

  1. 结束进程
    一旦找到了进程的PID,可以使用 kill 命令来结束它。例如,如果PID是 1234,可以使用以下命令:

    kill 1234
    

    如果进程不响应普通的 kill 命令,可以使用 -9 选项来强制结束进程:

    kill -9 1234
    

请注意,使用 -9 选项是强制性的,它会立即结束进程,而不给进程清理它正在使用资源的机会。在大多数情况下,应该首先尝试不带 -9 选项的 kill 命令。

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值