20165228 预备作业3 Linux安装及学习

时间:2023-03-09 10:00:08
20165228 预备作业3 Linux安装及学习

(一)安装虚拟机

根据娄老师给的Ubuntu版本和安装教程,我曾遇到如下问题:

Q1:首先遇到的问题是没有开启虚拟化

  • 解决方法:在重启电脑时进入BIOS>Configuratio > Intel Virtual Technology > Enabled;然后按F10保存BIOS设置并重启

    Q2:可能是我的电脑兼容性不太好,安装娄老师给的Ubuntu版本安装后重启提示intel_rapl:no valid rapl domains found in packge0,启动后出现提示错误的窗口并且一直闪
  • 解决方法:通过搜索提示内容,我没能解决这个问题。通过尝试在Ubuntu官网下载Ubuntu16.04.3版本然后重新安装后可以正常运行

    (二)学习Linux

以下是我在学习Linux命令使用时的记录

  • 实验一 Linux系统简介

    在这一节中让我印象深刻的是Linux系统与Windows系统之间的不同

    开源与封闭

    应用丰富程度

    上手难易度

    用途

    稳定性与安全性

    Windows的应用生态圈更加广阔,并且上手容易,并且对于游戏娱乐和专业软件的支持等有着绝对的优势。

    Linux作为一个开源的系统,由于免费,所以软件支持相对逊色一些,但它的稳定性和安全性是Windows不能比拟的,因此很多处理数据的服务器都是运着Linux系统,同时它的高度定制性也是一大优点,我们常用的Android就是以Linux为内核的操作系统。
  • 实验二基本概念和操作

    重要的快捷键:

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

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

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

    Ctrl+z:将当前程序放到后台运行,恢复到前台为命令fg

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

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

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

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

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

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

    方向上键:恢复曾经输出过的命令

    通配符:主要有星号(*)和问号(?),可通过不全的文件名来找出该文件。类似于Windows里的搜索功能,将拥有相同部分文件名的文件筛选出来

    命令行中获取帮助:
$ man  < command_name>
$ man 数字 ls来获取相关区段的说明

创建一个名为 file 的文件:

$ touch file

进入一个目录:

$ cd /etc/

查看当前所在目录:

$ pwd

作业:

$ sudo apt-get update
$ sudo apt-get install toilet
$ sudo apt-get update
$ sudo apt-get install figlet

20165228 预备作业3 Linux安装及学习

  • 实验三用户及文件权限管理

    查看用户:
$ who am i 或 who mom likes

Q3:为什么who am i输成whoami依然有效2️⃣,who mom likes去掉空格后无法识别命令

20165228 预备作业3 Linux安装及学习

20165228 预备作业3 Linux安装及学习

创建用户:

$ su <user>

20165228 预备作业3 Linux安装及学习

查看 /etc/group 文件

$ cat /etc/group | sort

20165228 预备作业3 Linux安装及学习

修改文件权限:r(读)w(写)x(执行)对应三位二进制数,可使用chmod xxx file来对文件名为file的三组权限(拥有者,所属用户组,其他用户)进行权限分配。

作业

首先创建用户loutest:

$ sudo adduser loutest

然后将loutest用户添加进sudo用户组:

sudo usermod -G sudo loutest

定位到/opt/目录之下:

$ cd /opt/

创建文件forloutest:

$ sudo touch forloutest

验证文件是否创建成功:

$ ls -l

修改权限:

$ sudo chmod 764 forloutest

20165228 预备作业3 Linux安装及学习

以此来对文件拥有者赋予其读、写与执行权限,与拥有者同用户组的loutest赋予其读写权限,赋予其他用户只读权限。

Q4:我在敲命令的时候总会漏掉sudo,然后导致命令无法完成。所以是否要养成在命令前加sudo权限的习惯?

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

    进入上一级目录:
$ cd ..

进入home目录:

$ cd ~

获取当前路径:

$ pwd

新建名为mydir目录:

$ mkdir mydir

复制文件名为File的文件到/opt/:

$ cp file /home/shiyanlou

删除文件:

$ rm file

强制删除:

$ rm -f file

移动文件:mv 源目录文件 目的目录

重命名文件:mv 旧的文件名 新的文件名

查看文件:cat(正序打印)、tac(倒序打印到输出)、nl(添加行号打印)、head(查看头几行)、 tail(查看尾几行)

作业:

创建homework目录:

$ mkdir homework

验证是否创建成功:

$ ls -l

在目录下建立文件:

$ cd homework
$ touch {1..10}.txt

验证:

$ ls -l

在目录下删除文件:

$ rm {1..5}.txt

验证:

$ ls -l

20165228 预备作业3 Linux安装及学习

linux的日志文件保存在/var/log目录之下

  • 实验五:环境变量与文件查找

    变量名:英文字母、数字、下划线,不能由数字开头

    创建一个名为a的变量:
$ declare a

赋值名为a的变量:

a=shiyanlou

读取名为a的变量的值:

$ echo $a

私有用户自定义变量:只在当前shell中有效

变量修改:

${变量名#匹配字串}:从头向后开始匹配,删除符合匹配字串的最短数据

${变量名##匹配字串}:从头向后开始匹配,删除符合匹配字串的最长数据

${变量名%匹配字串}:从尾向前开始匹配,删除符合匹配字串的最短数据

${变量名%%匹配字串} :从尾向前开始匹配,删除符合匹配字串的最长数据

${变量名/旧的字串/新的字串}:将符合旧字串的第一个字串替换为新的字串

${变量名//旧的字串/新的字串}:将符合旧字串的全部字串替换为新的字串

删除名为a的变量:

$ unset a

搜索文件:

1.whereis 简单快速

查找以a开头的文件:

$ whereis a

2.locate 快而全

查找指定目录以a开头的文件:

$ locate /etc/a

查找指定目录下指定类型jpg的文件:

$ locate /etc/\*.jpg

3.find 精而细

可以通过文件类型、文件名和文件属性进行查找

基本命令格式:

$ find [path] [option] [action]

作业

找出 /etc/ 目录下的所有以 .list 结尾的文件

locate /etc/\*.list

20165228 预备作业3 Linux安装及学习

  • 实验六文件打包和解压缩

    参数:

    -r参数表示递归打包包含子目录的全部内容

    -q参数表示为安静模式,即不向屏幕输出信息

    -o表示输出文件,需在其后紧跟打包输出文件名

    -e表示创建加密压缩包

    zip解压:

    将压缩包解压在当前目录:
$ unzip shiyanlou.zip

使用安静模式,将文件解压到指定目录:

$ unzip -q shiyanlou.zip -d ziptest

不通过解压查看压缩包内容:

$ unzip -q shiyanlou.zip -d ziptest

zip:

打包 :(目录请加 -r 参数)

$ zip something.zip something

解包:

$ unzip something.zip

指定路径:-d 参数

tar:

打包:

$ tar -zcvf something.tar something

解包:

$ tar -zxvf something.tar

指定路径:-C 参数

作业

创建名为test的文件:

$ sudo touch test

使用zip压缩该文件:

$ zip -r -1 -o test.zip test

解压该文件到指定目录:

$ unzip -q test.zip -d /home/shiyanlou

使用tar压缩该文件:

$ tar -cf test.tar test

解压该文件到指定目录:

$ tar -xf test.tar -C /home/shiyanlou
  • 实验七文件系统操作与磁盘管理

    查看磁盘容量:
$ df

查看目录容量:

$ du

作业

$ du -a | sort -n -r | head -n 10

实验八Linux下的帮助命令

内建命令:Shell程序的一部分,包含一些简单的Linux系统命令,随系统启动而加载并存在于内存中。解析内部命令Shell不需要创建子程序,执行速度比外部命令速度快。比如:history、cd、exit 等等

外部命令:Linux系统中实用程序部分,功能强大且包含的程序量大,需要时才启动,不包含在Shell程序中,但命令执行过程是由Shell程序控制。比如:ls、vi

区分命令种类:type