Linux系统安装与使用基础

目录

  • Linux系统安装与使用基础
    • 1.目的与要求
    • 2.实验内容
    • 3.小结(回答问题)
      • Centos 7 虚拟机的安装
      • gcc 编译器
      • vim编辑器介绍
    • 4.控制文件和目录的存取权限。
      • 修改文件权限
    • 5.Linux下存储设备的挂载与卸载的方法。
      • 挂载卸载方法

写在最前面:本文是Linux 的基础操作。大家要明白的一个东西是:路径。不管是文件路径,还是目录路径,都要在大脑中有一个架构,在终端输入指令后,要明白是对哪里进行操作,你目前在哪个目录下(使用 pwd 可以查看当前目录)。Linux的终端命令操作是他的特色,也挺好用的。还有就是,在输入命令行的时候,要注意空格,在之后的代码中, 可能体现的不是很明显,你需要仔细观察 ,空格是否存在。在之后的学习中,出现不明白的东西,可以私信我,咱们一起进步呀!当然首先推荐大家去百度搜一下,会比较快的得到答案并解决。接下来,就请开始学习吧!

1.目的与要求

(一) 目的
本实验的目的是使学生学会Linux的安装、配置和基础使用;掌握Linux常用命令的格式和操作以及系统管理、设备管理、用户管理和文件存取权限管理的基本方法;熟悉编译工具GCC的作用,学会在Linux环境下进行工作。
(二) 要求
熟悉并完成Linux(CentOS 7)的安装和基本配置的操作过程;

  1. 了解Linux的基本操作命令的格式,掌握基本操作命令功能和使用;
  2. 了解Linux的文本编辑器vi的3种工作模式,掌握3种工作模式的转换并学会利用vi进行文本编辑;
  3. 掌握Linux下存储设备的挂载与卸载的方法,并学会如何控制文件和目录的存取权限。
  4. 熟悉编译工具GCC的作用和基本使用方法。

2.实验内容

  1. 安装并配置Linux(CentOS 7)操作系统。
    要求将主机名设置为用户姓名的全拼,并建立一个用户名为姓名简拼的普通用户。
  2. 熟悉Linux操作系统vi编辑器、编译工具GCC的使用并掌握文件、目录基本操作命令的使用。
    1)首先查看用户配置文件/etc/passwd中普通用户的记录。
    2)在用户主目录下建立一个名字为“班级姓名”(例如“rj1701zhangsan”)的子目录,使用ls显示该子目录的详细信息。
    3)然后在用户主目录下使用vi编辑器编辑一个C语言源程序hello.c,并使用编译工具GCC编译该源程序,可执行文件的文件名为hello,运行编译成功的可执行程序hello,并将运行结果重定位到“班级姓名”(例如“rj1701zhangsan”)的子目录下的一个名为“姓名”(例如:“zhangsan”的文件中,然后显示该文件的内容。
    hello.c源程序代码:
    #include <stdio.h>
    main()
    {char name[20];
    printf(“Please input your name:”);
    scanf(“%s”,name);
    printf(“Welcome %s!\n”,name);
    reture 0;}
  3. 控制文件和目录的存取权限。
    1)将/usr/bin目录中的cal文件和/bin目录中的cat文件复制到rj1701zhangsan子目录中,并分别命名为zhangsancal和zhangsancat。使用ls查看rj1701zhangsan子目录中的各个文件的详细信息。
    2)使用长列表命令ls查看/usr/bin目录中的cal文件和/bin目录中的cat文件,并把它们与rj1701zhangsan子目录中的文件进行比较。
    3)通过建立硬链接在rj1701zhangsan子目录中以hello.link的文件名来运行文件hello。
    比较链接文件和被链接文件有什么不同?文件的硬链接数是多少?执行hello.link的执行结果是什么?
    4)改变文件hello.link的权限,使拥有者只具有读的权限。试着再运行hello.link,它运行了吗?为什么?
    5)删除hello.link,这样做也删除了hello文件吗?为什么?
  4. 掌握Linux下存储设备的挂载与卸载的方法。
    1)建立挂载点/mnt/usb。
    2)使用#fdisk -l命令查看设备的连接情况,主要查看U盘的名称及文件系统类型。
    3)使用mount命令手工挂载本地磁盘(U盘)。
    4)用ls -l查看U盘中文件的详细信息。
    5)使用umount命令手工卸载本地磁盘(U盘)。

3.小结(回答问题)

Centos 7 虚拟机的安装

虚拟机安装Linux 系统全家桶(百度网盘链接)
提取码:zr0e

1.创建主机名和用户名
@ 前面是用户名 后面是主机名

修改主机名 在超级管理员下:hostnamectl set-hostname 修改的名字
修改用户名 在超级管理员下,要修改的用户不得登录,否则失败

usermod -u newname oldname   //修改用户名

用户管理 (root 权限下)
创建用户 : useradd [ 参数值 ] 用户名
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
删除用户: userdel [ 参数值 ] 用户名
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。

pwd 显示当前目录的绝对路径

[lsf@lishuaifu ~]$pwd

2. 熟悉Linux操作系统vi编辑器、编译工具GCC的使用并掌握文件、目录基本操作命令的使用。

2.1 首先查看用户配置文件/etc/passwd中普通用户的记录。

[lsf@lishuaifu ~]$ vim /etc/passwd

在评论区有同学更正。这里得命令应该是:cat /etc/passwd

2.2 在用户主目录下建立一个名字为“班级姓名”(例如“rj1701zhangsan”)的子目录,使用ls显示该子目录的详细信息。

创建目录——mkdir
a) mkdir test 在当前目录下创建一个名为test的目录
b) mkdir test1 test2 同时创建两个目录
c) mkdir ./test/test3 在指定目录下创建一个名为test的目录
创建文件——touch
a) touch test001.txt 创建一个空文件
b) touch text002 创建一个空文件(没有后缀)
c) touch ./test/test003.txt 在指定目录下创建文件

语法: mkdir  目录
[lsf@lishuaifu ~]$ mkdir rj2026lishuaifu
[lsf@lishuaifu ~]$ ls -l  查看是否创建成功


2.3 在用户主目录下使用vi编辑器编辑一个C语言源程序hello.c,并使用编译工具GCC编译该源程序,可执行文件的文件名为hello,运行编译成功的可执行程序hello,并将运行结果重定位到“班级姓名”的子目录下的一个名为“姓名”

[lsf@lishuaifu ~]$ vim hello.c

使用vi 编辑器 创建一个hello.c 文件

gcc 编译器

使用vim建立一个“main.c”的文件
在终端输入命令:gcc main.c。这时会生成一个名为a.out的可执行文件。
若是想指定文件名,则可以通过命令:gcc -o main main.c,把可执行文件名修改为main,并通过./main来查看运行结果

gcc  hello.c  ///编译生成一个a.out 可执行的文件。
语法 :  gcc  -o  修改名  原文件名
gcc -o hello a.out     ///修改文件名

vim编辑器介绍

a) 可以分为三种状态:命令模式(command mode),插入模式(insert mode),底行模式(last line mode)
i. 命令模式:控制屏幕光标的而移动,字符,字或行的删除,移动复制某区,进入插入模式,过着底行模式
ii. 插入模式:进行文字输入,按【ESC】回到命令模式
iii. 底行模式:将文件保存或者退出vi
Vi基本操作
a) 输入 vi +文件名,进入vi全屏编辑画面:$ vi myfile 刚进去是命令模式,不可以按动方向键移动光标,按【 i 】进入插入模式,才可以进行文字输入
b) 删除文字,在插入模式下,不能删除,需要按下【ESC】进入命令模式,才可以进行删除操作
c) 退出vi 并保存文件 在命令行模式下,按下【:】进入底行模式
i. :w filename (将文件以指定的文件名保存filename)
ii. :wq 保存并退出
iii. :q! 不保存并退出
命令行模式功能键
a) 插入模式
i. 按【 i 】进入后,光标在当前位置
ii. 按【 a 】进入后,光标在当前的下一个位置
iii. 按【 o 】进入后,插入新的一行
b) 插入模式转命令模式 【ESC】
c) 移动光标 方向键即可
i. 按数字「0」:移到文章的开头。
ii. 按「G」:移动到文章的最后。
iii. 按「$」:移动到光标所在行的"行尾"。
iv. 按「^」:移动到光标所在行的"行首"
d) 删除文字
i. 【 x 】 删除后一个字符 相当于 delete
ii. 【 X 】 删除前一个字符,相当于 返回键
iii. 【 dd 】删除行
e) 复制
i. 【 yw 】光标所在的地方到字尾 复制到缓冲区
ii. 【 yy 】 光标所在行复制到缓冲区
iii. 【 p 】 将缓冲区的文字,粘贴到光标所在的位置
f) 替换
i. 【 r 】替换光标所在的字符
g) 撤销
i. 【 u 】恢复上一次操作

运行hello 文件

./hello    /// 运行程序

语法 : 文件名 > 目标文件
./hello > /home/lsf/rj2026lishuaifu/lishuaifu   // 重定向

将hello运行的结果重定向到指定目录文件中。

使用vim 编辑器 查看/home/lsf/rj2026lishuaifu 中的 lishuaifu 文件。

4.控制文件和目录的存取权限。

4.1 将/usr/bin目录中的cal文件和/bin目录中的cat文件复制到rj1701zhangsan子目录中,并分别命名为zhangsancal和zhangsancat。使用ls查看rj1701zhangsan子目录中的各个文件的详细信息。

方法一:先复制文件, 在进入目录更改文件名
语法:  cp   文件名 /目录  指定文件夹/目录
[lsf@lishuaifu ~]$ cp /usr/bin/cal /home/lsf/rj2026lishuaifu  // 复制文件cal
[lsf@lishuaifu ~]$ cp /usr/bin/cat /home/lsf/rj2026lishuaifu   //复制文件cat
[lsf@lishuaifu ~]$ cd /home/lsf/rj2026lishuaifu  // 进入rj2026lishuaifu 目录下
[lsf@lishuaifu rj2026lishuaifu]$ ls -l     //查看该目录下的文件
总用量 96
-rwxr-xr-x. 1 lsf lsf 33528 10月 30 15:35 cal        //复制成功
-rwxr-xr-x. 1 lsf lsf 54080 10月 30 15:36 cat        //复制成功
-rw-rw-r--. 1 lsf lsf    41 10月 30 15:29 lishuaifu
[lsf@lishuaifu rj2026lishuaifu]$ sudo mv cal lishuaifucal  // 修改文件名
[sudo] lsf 的密码:
[lsf@lishuaifu rj2026lishuaifu]$ sudo mv cat lishuaifucat      //修改文件名
[lsf@lishuaifu rj2026lishuaifu]$ ls -l             //查看该目录下的文件
总用量 96
-rwxr-xr-x. 1 lsf lsf 33528 10月 30 15:35 lishuaifucal
-rwxr-xr-x. 1 lsf lsf 54080 10月 30 15:36 lishuaifucat
-rw-rw-r--. 1 lsf lsf    41 10月 30 15:29 lishuaifu
[lsf@lishuaifu rj2026lishuaifu]$
方法二:复制文件的同时,修改文件名。(如下图)
语法:cp  原文件地址 目标文件地址(最后要以文件结尾,而不是目录)


4.2使用长列表命令ls查看/usr/bin目录中的cal文件和/bin目录中的cat文件,并把它们与rj1701zhangsan子目录中的文件进行比较。

语法: comm  -1  文件   文件
[lsf@lishuaifu ~]$ comm -1 /usr/bin/cal  /home/lsf/rj2026lishuaifu/lishuaifucal
[lsf@lishuaifu ~]$ comm -1 /usr/bin/cat  /home/lsf/rj2026lishuaifu/lishuaifucat


4.3通过建立硬链接在rj1701zhangsan子目录中以hello.link的文件名来运行文件hello。

语法: ln 被链接文件  链接文件 (没有文件就自动新建)
//建立硬链接 l
[lsf@lishuaifu ~]$ ln /home/lsf/hello /home/lsf/rj2026lishuaifu/hello.link
[lsf@lishuaifu ~]$ cd /home/lsf/rj2026lishuaifu
[lsf@lishuaifu rj2026lishuaifu]$ ./hello.link
Please input your name:lishuaifu
Welcomelishuaifu!

硬链接与原文件是分居于不同或相同目录下的的dentry而已,它们指向同一个inode,对应于相同的磁盘数据块(data block),具有相同的访问权限、属性。
链接文件与被链接文件 ,只是名字不同而已,公共用同一个inode,共享同一份数据
链接数都是 :2
执行结果是:和运行 hello 文件相同


4.4改变文件hello.link的权限,使拥有者只具有读的权限。试着再运行hello.link,它运行了吗?为什么?

修改文件权限

chmod XXX filename 只读 100 只写 010 可执行 001 二进制数换成十进制

a) chmod 777 xxxx指令,这里有3个7,但是每个7的含义是不同的。7的二进制形式为111,表示可读可写可执行,第1个7表示文件对于文件所有者来说可读可写可执行;第2个7表示文件对于文件所有者所在组来说可读可写可执行;第3个7表示文件对于其他身份的用户来说可读可写可执行。也就是说,通过chmod 777,文件就没有了读写执行权限限制了。
b) 将该目录下的所有子目录或文件权限一并处理。 使用 -R 递归处理
i. chmod -R 421 oldDir5
c) 修改文件所有者 chown 用户名 文件名/目录名
i. 将该目录下的所有子目录或文件权限一并处理。 使用 -R 递归处理
chown -R 用户名 目录名
d) 修改文件所属组 chgrp 用户名/组名 文件名/目录名
i. 将该目录下的所有子目录或文件权限一并处理。 使用 -R 递归处理
ii. chgrp -R 用户名/组名 目录名

//修改文件权限 chmod
[lsf@lishuaifu ~]$ cd /home/lsf/rj2026lishuaifu   // cd  到rj2026lishuaifu目录下
[lsf@lishuaifu rj2026lishuaifu]$ chmod 444 hello.link
[lsf@lishuaifu rj2026lishuaifu]$ ls -l


hello.link 没有运行,因为hello.link文件没有可执行的权限,他只有可读权限。
4.5删除hello.link,这样做也删除了hello文件吗?为什么?

语法 : rm -f  文件名
//删除链接文件
lsf@lishuaifu rj2026lishuaifu]$ rm -f hello.link
[lsf@lishuaifu ~]$ cd /home/lsf  // 回去查看用户主目录
[lsf@lishuaifu ~]$ ls -l


没有删除hello文件。删除的只是 hello.link与iNode的映射关系,并不影响hello与 iNode的映射关系。

5.Linux下存储设备的挂载与卸载的方法。

1)建立挂载点/mnt/usb。
2)使用#fdisk -l命令查看设备的连接情况,主要查看U盘的名称及文件系统类型。
3)使用mount命令手工挂载本地磁盘(U盘)。
4)用ls -l查看U盘中文件的详细信息。
5)使用umount命令手工卸载本地磁盘(U盘)。

挂载卸载方法

a) 挂载
1.创建/mnt/usb文件夹并进入
2.通过fdisk -l查看挂载的U盘在哪里
3.利用mount 命令挂载设备 mount /dev/sdb3 /mnt/usb
4.cd 进入/mnt/usb文件夹 查看是否挂载成功

b) 卸载
1.当不适用U盘时,就可以卸载U盘了
#umount /dev/sdb3
若出现问题–>umount: /mnt/usb: device is busy
2.查找占用目录进程:
使用该语句查看进程

fuser -mv /mnt/usb用户     进程号 权限   命令
/mnt/usb:             root     kernel mount /mnt/p2dengfei   14821 ..c.. bash

3.杀掉进程:
#kill -9 14821
4.卸载:#umount /mnt/usb

挂载开始!
记得切换超级用户呢 : sudo su 之后会提醒输入密码
也可以 用 : su root

[root@lishuaifu ~]#  mkdir  /mnt/usb   //新建挂载点
[root@lishuaifu ~]# fdisk -l     查看挂载的U盘在哪里和盘符名



在这里看到这个U盘的设备名是: /dev/sdb1 文件系统是 FAT32

语法: mount 设备名 挂载点
[root@lishuaifu ~]# mount  /dev/sdb1 /mnt/usb

[root@lishuaifu ~]# cd  /mnt  查看 mnt 目录下有没有usb 挂载点
[root@lishuaifu ~]# ls -l
[root@lishuaifu ~]# cd  /mnt/usb  进入 usb 挂载点,查看是否挂载成功
[root@lishuaifu ~]# ls -l   查看文件信息  如果有文件,就挂载成功了
[root@lishuaifu ~]#umount  /mnt/usb  // 卸载U盘如果显示U盘正忙之类的,参考前面方法中的,杀死进程


好啦,至此所有的Linux 操作就完了!祝大家学习愉快呀。

Linux系统安装与实验基础相关推荐

  1. Linux系统安装与使用基础之第二篇熟悉Linux操作系统

    文章目录 linux系统安装与使用基础 实验目的 实验要求 实验内容二 操作步骤 第一步 在用户主目录下建立rj1801zhangsan 第二步 查看 该目录的详细信息 第三步 使用 vi 编辑hel ...

  2. Linux系统安装JDK

    本文介绍了Linux系统下面安装JDK的详细教程 文章目录 一.怎么下载JDK? 1.下载后上传至服务器安装 2.服务器上在线下载并安装 二.安装JDK 1.检查服务器(或虚拟机)是否已存在JDK 2 ...

  3. 【CentOS Linux 7】实验1【VMware安装、新建虚拟机;63个基础命令运行结果图】

    Linux系统及应用---调研报告 [CentOS Linux 7]实验1[VMware安装.新建虚拟机:63个基础命令运行结果图] [CentOS Linux 7]实验2[Shell编程及应用] [ ...

  4. 实验一:linux 系统安装与初用

    实验环境:windows下的Vmware中16.04版本ubuntu 一.实验问题: (1)linux 的发行版本.内核版本:二者区别与联系 输入shell命令:cat  /proc/version显 ...

  5. 诺基亚n1装入Linux系统,实验一:linux系统安装与初用

    1.linux的发行版本.内核版本两者之间的区别与联系 linux内核是一个提供硬件抽象层.磁盘及文件系统控制.多任务等功能的系统软件,它不是一套完整的操作系统,而是linux操作系统的核心组件,它会 ...

  6. linux系统 ns3安装,ubuntu系统下ns3实验基础指令

    ubuntu系统下ns3实验基础指令 ubuntu系统下ns3实验基础指令 ubuntu系统下ns3实验基础指令 针对使用ns3进行信息网络建模与仿真相关实验,这篇博客提供了一些基本操作的建议与命令介 ...

  7. Linux软件基础实验,linux基本操作的实验

    linux基本操作的实验 发布时间:2008-10-02 00:37:30来源:红联作者:sfwjeo 实验一.linux基本操作 1.实验目的 了解linux的基本命令,熟练掌握其基本操作 2.相关 ...

  8. Linux程序设计实验项目六,《linux程序设计》实验教学大纲

    <linux程序设计>实验教学大纲 课程名称:Linux程序设计 课程编号:408412420408436407 适用专业:计算机科学与技术网络工程软件工程 总 学 分:3 总 学 时:4 ...

  9. linux系统安装与初用

    实验结论 1. (1)本机linux的发行版本:16.04.4 LTS内核版本:内核版本:4.13.0-36-generic 二者区别与联系:Linux是一种开放源代码的操作系统内核,只有内核是无法直 ...

最新文章

  1. wordpress短代码转php,WordPress中的shortcode短代码功能使用详解
  2. c# yield关键字原理
  3. ubuntu 16.04下安装oracle jdk 1.7
  4. php绑定变量,php动态绑定变量的用法
  5. linux 脚本学习--细节问题
  6. php多线程模拟请求,浅谈php使用curl模拟多线程发送请求
  7. Kubernetes 稳定性保障手册(极简版)
  8. hadoopsdk使用_Hadoop的一些基本操作
  9. mysql双主+keepalived【转】
  10. UVa1149 - Bin Packing
  11. wifi各协议最高速率
  12. 电影《战狼》评论词云分析
  13. 惠普笔记本通过系统如何进入BIOS?
  14. FairyGUI基础学习笔记
  15. [Crypto]ECB模式攻击
  16. Excel:一个Excel自动计算公式,一个Excel手动计算?多进程
  17. 几种主流快速开发平台选择
  18. HDU 6082 度度熊与邪恶大魔王 (完全背包)
  19. 微信公众号如何变得更好_改善内容审核是平台变得更好的方式。
  20. 教你如何寻找更多的外链

热门文章

  1. 自动学习——《Learning to Teach》——ICLR2018
  2. Python 基础代码
  3. 宝塔 cpanel_cPanel / WHM许可更改
  4. 修改Cisco交换机ntp服务器,Cisco交换机时间服务(NTP)的设置步驟
  5. 编写高质量的代码——从命名入手
  6. DHTMLXGantt in Flutter DHTMLXGantt
  7. 一份不悔的爱情 魔兽中那些我们追过的橙色武器
  8. 单机版fastDFS安装
  9. 《智慧识人术》读书笔记
  10. [转]采用SNMP(简单网络管理协议)实现国税系统广域网络性能管理的研究