预备作业3:Linux安装及命令入门

一、VirtualBox和Ubuntu的安装

通过学习实践基于VirtualBox虚拟机安装Ubuntu图文教程,我开始学习虚拟机的安装,根据教程一步步试着安装。

安装VirtualBox

我先点击进入了VirtualBox官网,却只看到了5.2.6和5.1.32两个版本,于是先试着把5.2.6下了下来,想试试看能不能正常安装。然而事情并不尽如人意,安装过程中还是遇到了一些小障碍。

  • 在官网安装的时候下载速度特别慢

  • 在官网中按教程下载的5.2.6版本却在官网中按教程下载的5.2.6版本却莫名变成了5.2.7版本,且安装的时候出现了未知错误。



因为实在不懂究竟是哪里出了问题,于是我在网上寻找了5.2.6版本的安装包重新下载安装了一次,这次在经过一点小问题后就成功装好了VirtualBox。

  • 在window 7 64位的系统上安装oracle vm virtualBox 之后准备在虚拟机中装系统,发现虚拟机系统选项中只有32位选项没有64位选项,通过查询原因是由于cpu没有开启虚拟化。



    解决方法也不难,在查阅资料后了解到只需重启win10电脑,进入BIOS设置CPU虚拟化,将菜单中Configuration名目下的Intel Virtual Technology的状态从[Disable]切换成[Enable]即可。

安装Ubuntu

在询问了几个同学之后,我了解到官网的Ubuntu下载不稳定且缓慢,打开还有错误提示,于是在同学的帮助下找到了另外稳定便捷的途经,并最终成功安装好了Ubuntu。

二、Linux基础命令的学习

(1)学习别出心裁的Linux命令学习法

通过对别出心裁的Linux命令学习法博客的阅读与学习,我了解了Linux相关的一些知识以及各种命令的使用方法。

  • Linux操作系统

Linux是一种不同于Windows的操作系统,明白了Linux操作系统在计算机系统中包括系统调用和内核两层,如下图所示。

  • Ubuntu重要快捷键
快捷方式 作用
CTRL+ALT+T 打开终端
CTRL+SHIFT+T 新建标签页
ALT+N 终端中切换到第N个标签页
Tab 终端中命令补全
↑和↓ 切换命令历史
CTRL+C 中断程序运行
  • Linux 命令
command [options] [arguments] //即command [选项] [参数]
  • man 命令

man是manual的缩写,通常使用man man命令查看帮助,其中重要的选项有man -k,用于搜索关键字,查找命令,等价命令为apropos;以及man -f cmd,可在找到命令后使用,用于查看命令基本功能,等价命令为whatis

  • cheat 命令

使用老师给的地址下载后提示我无法打开…可能是安装包有损坏,于是没有自行安装进行深入探讨,只是在实验楼里试用了一下。

cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。

——引用自《别出心裁的Linux命令学习法

  • 其他核心命令

find: 查找文件在系统中的位置

locate: 神速版本的find

grep: 对文件全文检索

whereiswhich: 查看使用的命令工具装在什么地方

总结:仔细看完基础博客后,我感受到了Linux学习的前路漫漫,但也因此激发起我的好奇心,还有如此神秘复杂又美丽的语言在等着我去学习去挖掘,我应该更努力的学好这门语言。

(2) 实验楼的自主学习

实验楼地址:实验楼

实验1 Linux 系统简介

  • 实验内容:Linux主要组成部分、历史简介、主要人物、Linux与Windows的不同之处、Linux学习方法
  • 实验结果:进一步了解了Linux操作系统,了解到Linux平台有以下特点:
    • 大都免费
    • 为开源自由软件,用户可以修改定制和再发布,部分软件质量和体验欠缺
    • 比Windows系统更安全
    • 操作方面只需一个键盘就能搞定,一旦熟练掌握将节省大量时间

实验2 基本概念及操作

  • Linux桌面环境:可以自由定制,大部分用户端都使用的是KDE,GNOME,XFCE,LXDE 等。实验楼目前使用的就是 XFCE 桌面环境。

  • 终端的概念:本质上是对应着 Linux 上的 /dev/tty 设备,默认提供了 6 个纯命令行界面的终端“terminal”来让用户登。,在物理机上可以使用[Ctrl]+[Alt]+[F1]~[F6]进行切换,使用[Ctrl]+[Alt]+[F7]切换回图形界面。

  • Shell(壳)命令解析器,即指“提供给使用者使用界面”的软件,是用户与系统交流的中间程序,也是控制系统的脚本语言。

    普通意义上的 Shell 就是可以接受用户输入命令的程序。它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节。同样的 UNIX/Linux 下的图形用户界面 GNOME 和 KDE,有时也被叫做“虚拟 shell”或“图形 shell”。

  • 基础命令

    touch:创建文件

    cd:进入一个目录

    pwd:查看当前所在目录

  • 快捷键

    Tab:补全命令、目录、命令参数

    Ctrl+c:强行终止当前错误程序

    Ctrl+d:键盘输入结束或输出终端

    Ctrl+s:暂停当前程序,按任意键恢复运行

    Ctrl+z:将当前程序放在后台运行

    fg:后台运行程序恢复前台

    Ctrl+a:光标移至输入行头,相当于Home

    Ctrl+e:光标移至输入行末,相当于End

    Ctrl+k:删除从光标所在位置到行末

    Alt+Backspace:向前删除一个单词

    Shift+PgUp:将终端显示向上滚动

    Shift+PgDn:将终端显示向下滚动

    :历史记录,恢复上一层命令

  • 常用通配符

    *:匹配 0 或多个字符

    ?:匹配任意一个字符

    [list]:匹配list中的任意单一字符

    [!list]:匹配除list中的任意单一字符以外的字符

    [c1-c2]:匹配c1-c2中的任意单一字符 如:[0-9] [a-z]

    {string1,string2,...}:匹配 string1 或 string2 (或更多)其一字符串

    {c1..c2}:匹配 c1-c2 中全部字符 如{1..10}

  • 作业

    • 使用banner命令输出图形文字

    • 使用printerbanner命令输出图形文字(其中- w指定打印宽度)

    • 使用toilet命令输出图形文字

      安装命令:

      sudo apt-get update

      sudo apt-get intsall toilet

    • 使用figlet命令输出图形文字

      安装命令:

      sudo apt-get update

      sudo apt-get intsall figlet

实验3 用户及文件权限管理

  • 查看用户

    who 命令常用参数

    参数 说明
    -a 打印能打印的全部
    -d 打印死掉的进程
    -m 同am i,mom likes
    -q 打印当前登录用户数及用户名
    -u 打印当前登录用户登录信息
    -r 打印运行等级
  • 创建用户

    su <用户名>:切换用户,需要用户密码

    su -l <用户名>:切换用户,环境变量会跟着改变

    sudo adduser <用户名>:添加新用户

  • 查看用户组

    • 法1:使用groups命令

    • 法2:直接查看/etc/group文件

    • 两种方法中用户需加入sudo组才能获得root权限

  • 删除用户

    sudo deluser <用户名> --remove-home

  • 查看文件权限

    • 文件类型:Linux 里面一切皆文件。

    • 文件权限:一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件。

    • ls命令的常用用法

参数 说明
ls 列出并显示当前目录下的文件
-A 显示除了 .(当前目录)和 ..(上一级目录)之外的所有文件,包括隐藏文件(Linux 下以 . 开头的文件为隐藏文件)
-Al 查看某一个目录的完整属性
-dl<目录名> 显示所有文件大小
-AsSh 其中小s为显示文件大小,大S为按文件大小排序,其它方式排序可用man命令查询
  • 变更文件所有者

    sudo chown <新所有者> <文件名>

  • 修改文件权限

    • 法1:二进制数字表示

rwx(即一个"7"):每个文件的三组权限顺序固定为拥有者,所属用户组,其他用户

    • 法2:加减赋值操作

chmod go-rw <用户名>,其中g、o 还有 u 分别表示 group、others 和 user,+和-分别表示增加和去掉相应的权限

  • adduser与useradd的区别

    • useradd 只创建用户,创建完了用 passwd <用户名> 设置新用户的密码

    • adduser 可以一次性完成创建用户,创建目录,创建密码(提示你设置)这一系列的操作

    • useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要用户自行完成输入、确定等一系列操作。

  • 作业

    使用以下指令添加一个用户 loutest,使用 sudo 创建文件 /opt/forloutest,设置成用户 loutest 可以读写。

    sudo adduser loutest

    sudo usermod -G sudo loutest

    sudo touch /opt/forloutest

    chmod 600 /opt/forloutest

    ll /opt/forloutest

实验4 Linux目录结构及文件基本操作

  • 实验内容:Linux的文件组织目录结构。相对路径和绝对路径。对文件的移动、复制、重命名、编辑等操作。
  • 目录结构
    • FHS标准

  • 目录的四种交互作用的形态

  • 目录路径

    • 路径

      cd:切换目录

      -:上一次所在目录

      :当前用户的 home 目录

      pwd:获取绝对路径
    • 绝对路径

      cd /usr/local/bin
    • 相对路径

      cd ../../usr/local/bin
  • 新建文件touch新建空白文件,若创建名为 test 的空白文件,因为在其它目录没有权限,则需先使用 cd ~ 切换回用户的 /home/用户名 目录

  • 新建目录mkdir新建目录,使用-p参数,同时创建父目录(如果不存在该父目录),可以使用mkdir -p father/son/grandson同时创建一个多级目录(这在安装软件、配置安装路径时非常有用)

  • 复制文件cp test<文件名> father/son/grandson<路径>

  • 复制目录cp -r father family,要成功复制目录需要加上 -r 或者 -R 参数,表示递归复制

  • 删除文件:用rm text删除文件,强制删除参数用rm -f text

  • 删除目录rm -r familyrm -R family

  • 移动文件mv 源目录文件 目的目录,使用mv命令移动文件(剪切)

  • 重命名文件mv 旧的文件名 新的文件名rename批量重命名

  • 查看文件

命令 效果
cat 正序显示打印文件内容到标准输出(终端),加上 -n 参数显示行号
tac 倒序打印文件内容到标准输出(终端)
nl 添加行号并打印,比cat -n更专业的行号打印命令
more和less 分页查看文件,用于阅读文件
head和tail 只查看文件的头几行(默认为 10 行,不足 10 行则显示全部)和尾几行
查看文件类型 使用 file 命令
  • 作业

创建一个 homework 目录,建立名为 1.txt~10.txt 文件,并删除 1.txt~5.txt

实验5 环境变量与文件查找

  • 实验内容:实验5中所包含的内容颇多,让我获益匪浅,最后的“实验雨”也令我十分惊艳很感兴趣。实验内容主要包括介绍环境变量的作用与用法,及几种搜索文件的方法。
  • 作业:找出 /etc/ 目录下的所有以 .list 结尾的文件

挑战1:寻找文件

学习到这里,我遇到了第一个小挑战,打开了果然是对前5个实验的一个总结实验,我分为以下三个步骤完成了这次挑战。

介绍

  • 题目:有一个非常重要的文件(sources.list)但是你忘了它在哪了,你依稀记得它在/etc/目录下,现在要你把这个文件找出来,然后设置成自己可以访问,但是其他用户并不能访问

  • 目标:找到sources.list文件;把文件所有者改为自己(shiyanlou);把权限修改为仅仅只有自己可读可写

  • 解答:

    sudo find /etc/ -name sources.list //寻找指定文件地址

    sudo chown shiyanlou /etc/apt/sources.list //将文件拥有者改为shiyanlou

    chmod 600 /etc/apt/sources.list //使用二进制法改变权限

    ll /etc/apt/sources.list //查看结果

实验6 文件打包与解压缩

  • 实验内容:介绍 Linux 上常用的压缩/解压工具,主要讲解 zip,rar,tar 的使用
  • Linux常见压缩包文件格式
文件后缀名 说明
*.zip zip 程序打包压缩的文件
*.rar rar 程序压缩的文件
*.7z 7zip 程序压缩的文件
*.tar tar 程序打包,未压缩的文件
*.gz gzip 程序(GNU zip)压缩的文件
*.xz xz 程序压缩的文件
*.bz2 bzip2 程序压缩的文件
*.tar.gz tar 打包,gzip 程序压缩的文件
*.tar.xz tar 打包,xz 程序压缩的文件
*tar.bz2 tar 打包,bzip2 程序压缩的文件
*.tar.7z tar 打包,7z 程序压缩的文件

重点是zip、rar、tar格式

  • 常见参数
参数 说明
-r 递归打包包含子目录的全部内容
-q 安静模式,即不向屏幕输出信息
-o 输出文件,需在其后紧跟打包输出文件名
-x 排除上次创建的zip文件,防止重复打包,只能使用绝对路径
-e 创建加密压缩包
-l 将LF转换为CR+LF,排除没有换行的问题

另外使用参数-[1-9],表示压缩级别为1-9,1表示最快压缩但体积大,9表示体积最小但耗时最久。举例如下:

zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/*.zip

zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou -x ~/*.zip

  • zip打包和unzip解压

    • zip

      • 打包文件夹:zip 打包输出文件名.zip 被打包目录
    • unzip

      • 解压到当前目录:unzip 压缩文件名.zip

      • 解压到指定目录:unzip -q 压缩文件名.zip -d ziptest

      • 查看压缩包内容:unzip -l 压缩文件名.zip

  • rar打包和unrar解压

    • rar打包

      • 从指定文件或目录创建压缩包或添加文件到压缩包:rm *.rarrar a 打包输出文件名.rar

      • 注意:rar命令参数中没有“-”,否则会报错

      • 从指定压缩包文件中删除某个文件:rar d 压缩文件名.rar .zshrc

      • 查看不解压文件:rar l 压缩文件名.rar

    • unrar解压

      • 全路径解压:

      unrar x shiyanlou.rar

      • 去掉路径解压:

      mkdir tmp

      unrar e shiyanlou.rar tmp/

  • tar打包与压缩

    • tar的解压和压缩都是同一个命令,只需参数不同,使用比较方便

    • tar打包:tar -zcvf something.tar something

    • tar解压:tar -zxvf something.tar

    • 指定路径:-C 参数

      压缩文件格式 参数
      *.tar.gz -z
      *.tar.xz -J
      *tar.bz2 -j
  • 作业:创建一个名为 test 的文件,分别用 zip 和 tar 打包成压缩包,再解压到 /home/shiyanlou 目录

    • 解答:

      使用zip和unzip打包和解压:

      使用tar打包和解压:

  • 总结

    文件格式 解压方法
    *.tar 用tar –xvf解压
    *.gz 用gzip -d或者gunzip解压
    *.tar.gz 和 *.tgz 用tar –xzf解压
    *.bz2 用bzip2 -d或者用bunzip2解压
    *.tar.bz2 用tar –xjf解压
    *.Z 用uncompress解压
    *.tar.Z 用tar –xZf解压
    *.rar 用unrar e解压
    *.zip 用unzip解压

实验7 文件系统操作与磁盘管理

  • 实验内容:df,du,mount命令的使用及磁盘相关知识学习,这一节内容比较容易,大多是概念性知识点,很多新名词新概念需要进一步理解。
  • 作业:找出当前目录下面占用最大的前十个文件。

三、总结

这次的实验是三次预备实验中最困难的,主要的目的是让我们较泛的了解Linux的基本操作,我也确实在实战中掌握了一些操作技巧,更因此感受到了Linux的奇妙之处,激发起我学习的兴趣。希望我能在这一学期的学习中较好地掌握这门语言。

20165223 Linux安装及命令入门的更多相关文章

  1. 20155327预备作业3:Linux安装及命令入门

    20155327预备作业3:Linux安装及命令入门 安装Linux操作系统 由于之前安装过所以这里就不再赘述了 掌握Linux命令的学习方法 学习路径: 常用Ubuntu快捷键: CTRL+ALT+ ...

  2. 20165301 预备作业三:Linux安装及命令入门

    预备作业三:Linux安装及命令入门 VirtualBox虚拟机的安装 在进行安装之前,原本以为有了娄老师的安装教程会是一件很容易的事情.万万没想到,在自己实际动手操作中,还是遇到了许多困难.通过与同 ...

  3. 20165332 预备作业三 Linux安装及命令入门

    Linux安装及命令入门 一.安装Linux操作系统 由于做的比较晚,结合大多数同学的经验和娄老师的<基于VirtualBox虚拟机安装Ubuntu图文教程>,整个安装过程还算顺利,唯一遇 ...

  4. 20165321预备作业3:Linux安装及命令入门

    Linux安装 在老师给的VirtualBox的网站上面,我下载了VirtualBox的最新版本,安装成功后,我又下载了Ubuntu.但是,发现无论是哪个版本的Ubuntu都无法在VirtualBox ...

  5. 20165221 Linux安装及命令入门学习

    安装过程 按照图文教程,进行操作,遇到如下问题. 1.安装ubuntu时从官网下载不成功. 最后在同学的帮助下,通过中文版网址入口进入,完成下载. 2.BIOS未恢复出厂设置,导致不能选择64-bit ...

  6. 20165320 预备作业3 :Linux安装及命令入门

    一.VirtualBox与Linux的安装 我是按照老师给的链接下的最新版本的VirtualBox5.26,然后Ubuntu软件(版本是16.04,最新的是17)是自己在网上找的旧版本下好的,因为我在 ...

  7. 20165337岳源 预备作业3:Linux安装及命令入门

    安装虚拟机 按照基于VirtualBox虚拟机安装Ubuntu图文教程的步骤安装虚拟机,遇到的问题通过同学的帮助也得到了解决.例如:虚拟机无法选择64位系统. 常用的Linux命令 Tab 补全命令. ...

  8. 预备作业3:Linux安装及命令入门

    linux系统的安装 1.虚拟机: 首先是VirtualBox5.2.7的安装,这个按照老师给的基于VirtualBox安装Ubuntu图文教程一步步来很快就能安好,也没有遇到无法选择64-bit的问 ...

  9. Linux安装expect命令

    [Linux安装expect命令]:--expect是在Tcl基础上创建起来的,所以在安装expect前我们应该先安装Tcl.①:tcl安装源码下载:http://www.tcl.tk/softwar ...

随机推荐

  1. 图片转字符画 【学习ing】

    1.创建ascii.py 2. 下面是 ascii.py 的完整代码: from PIL import Image import argparse #命令行输入参数处理 parser = argpar ...

  2. asp.net core2.0中异常的处理

    最近在开发中遇到一些关于如何抛出异常的困惑,在qq群里进行了讨论,有些人认为抛出异常是有理由的,可以对业务流程进行控制,而有些认为抛出异常会导致程序性能低下,我写一些自己的心得吧. 异常的全局处理 a ...

  3. [转帖]firewall-cmd

    firewall-cmd https://wangchujiang.com/linux-command/c/firewall-cmd.html 高手大作 等哪天需要防火墙了 再练习一下. Linux上 ...

  4. 查看端口占用cmd命令

    查看端口被占用的进程: 在任务管理器中结束进程:

  5. Day 5-7 exec 和元类的创建.

    exec方法 元类 exec(str_command,globals,locals)参数1:字符串形式的命令参数2:全局作用域(字典形式). 如果不指定,默认globals参数3:局部作用(字典形式) ...

  6. javaScript中闭包的工作原理

    一.什么是闭包? 官方”的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.相信很少有人能直接看懂这句话,因为他描述的太学术.其实这句话 ...

  7. django rest framework权限和认证

    Django rest framework之权限 一.Authentication用户认证配置 1.四种验证及官网描述: BasicAuthentication 此身份验证方案使用HTTP基本身份验证 ...

  8. java 静态成员访问

    public class MqConfig { @Getter private static IProducerProcessor callBackProducerRetry; @Getter @Va ...

  9. Delphi调用MSSQL存储过程返回的多个数据集的方法

    varaintf:_Recordset;RecordsAffected:OleVariant; begin ADOStoredProc1.Close;ADOStoredProc1.Open;aintf ...

  10. Vue之动态绑定CSS样式

    demo.html <!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/19 ...