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

一、在自己笔记本上安装Linux操作系统

因为对操作电脑的不熟悉,我在第一项任务上就花费了一定的时间,在安装过程有如下问题:

  • 我的电脑是苹果公司的MacBook,是OS X系统,而不是老师给的教程中的windows系统,在操作过程中有很多不同
  • 我的电脑上之前有VMware虚拟机,而老师教程中给出的是基于VirtualBox虚拟机上的操作,我想尝试基于VMware虚拟机操作,但是失败了

于是经过了许多的尝试后,我在蓝墨云班课中询问了同学老师,在通讯工具上询问了班上已经完成任务的同学后,成功通过安装VirtualBox虚拟机,在OS X系统上完成了安装Ubuntu的任务。

还有一个问题:如何安装VirtualBox虚拟机增强功能?我的虚拟机开机页面如下图所示:

二、通过实践学习别出心裁的Linux命令学习法,掌握Linux命令的学习方法

操作系统的功能我总结为两点:管家婆和服务生:

  • 管家婆:通过进程、虚拟内存和文件三个重要抽象管理计算机的CPU、内存、I/O设备。
  • 服务生:为用户提供shell,为程序员提供系统调用。

--引自《别出心裁的Linux命令学习法》

这篇文章通过形象的比喻——管家婆和服务生,对windows系统和Linux系统不同的比较,让我对一开始完全陌生的Linux系统和其中的命令有了深刻的印象和大概的了解,但是光是看概念和例子还是有点迷茫的。

三、参考上面的学习方法通过实践学习Linux 基础入门(新版)课程,掌握常用的Linux命令

我是第一次在实验楼这种特殊的环境下练习,非常陌生又新奇。通过几次练习后,我发现这种练习方法非常有效,在上一环节的学习中,我只是浏览概念或者看一些上面已经有结果的例子,还是不理解。但是在实验楼边看代码边输入试验,不但有趣,而且有助于学习。

学习笔记:

  • 第三节 用户及文件权限管理

1、查看用户

请打开终端,输入命令:

$ who am i

或者

$ who mom likes

2、创建用户

$ sudo adduser lilei

注释:

su <user> 可以切换到用户 user

sudo <cmd> 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组

su - <user>命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量

$ ls /home这个命令不但可以添加用户到系统,同时也会默认为新用户创建 home 目录

使用如下命令切换登录用户:

$ su -l lilei

2、在 Linux里面如何知道自己属于哪些用户组呢?

方法一:使用 groups 命令

$ groups shiyanlou

方法二:查看 /etc/group 文件

$ cat /etc/group | sort

可以使用命令过滤掉一些你不想看到的结果:

$ cat /etc/group | grep -E "shiyanlou"

3、用 shiyanlou 用户执行 sudo 命令将 lilei 添加到 sudo 用户组,让它也可以使用 sudo 命令获得 root 权限:

$ su shiyanlou
$ groups lilei
$ sudo usermod -G sudo lilei
$ groups lilei```

4、删除用户

$ sudo deluser lilei --remove-home

变更文件所有者

$ touch iphone6

可见文件所有者是 lilei

现在,换回到 shiyanlou 用户身份,使用以下命令变更文件所有者为 shiyanlou

$ cd /home/lilei
$ ls iphone6
$ sudo chown shiyanlou iphone6
$ ll iphone6

5、修改文件权限

方式一:二进制数字表示

为了演示,先在文件里加点内容:

$ echo "echo \"hello shiyanlou\"" > iphone6

然后修改权限:

$ chmod 700 iphone6

现在,其他用户已经不能读这个iphone6文件了

方式二:加减赋值操作

$ chmod go-rw iphone6

go 还有 u 分别表示 groupothersuser+- 分别表示增加和去掉相应的权限

  • 第四节 Linux 目录结构

1、FHS 标准

$ sudo apt-get update
$ sudo apt-get install tree
$ tree /

2、目录路径

使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录(以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,可以使用 ls -a 命令查看隐藏文件), - 表示上一次所在目录, 通常表示当前用户的 home 目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。

进入上一级目录:

$ cd ..

进入 home 目录:

$ cd ~

使用 pwd 获取当前路径:

$ pwd

3、新建空白文件

$ touch test

新建目录

创建名为“ mydir ”的空目录:

$ mkdir mydir

使用 -p 参数同时创建父目录(如果不存在该父目录):

$ mkdir -p father/son/grandson

4、复制文件

$ cp test father/son/grandson

复制目录

$ cp -r father family

5、删除文件

$ rm test

强制删除:

$ rm -f test

删除目录

$ rm -r family

6、移动文件

将文件“ file1 ”移动到 Documents 目录:

$ mkdir Documents
$ mv file1 Documents

重命名文件

将文件“ file1 ”重命名为“ myfile ”:

$ mv file1 myfile

批量重命名

使用通配符批量创建 5 个文件:

$ touch file{1..5}.txt

批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件:

$ rename 's/\.txt/\.c/' *.txt

批量将这 5 个文件,文件名改为大写:

$ rename 'y/a-z/A-Z/' *.c

7、查看文件

使用 cattacnl 命令查看文件(其中 cat 为正序显示,tac 为倒序显示)

比如查看passwd 文件:

$ cat passwd

可以加上 -n 参数显示行号:

$ cat -n passwd

使用 head 和 tail 命令查看文件

$ tail /etc/passwd

只看一行:

$ tail -n 1 /etc/passwd

查看文件类型:

$ file /bin/ls

  • 第五节 环境变量与文件查找

1、创建一个变量

$ declare tmp

使用 "=" 号赋值运算符,将变量 tmp 赋值为 shiyanlou

$ tmp=shiyanlou

读取变量的值,使用 echo 命令和 $ 符号:

$ echo $tmp

2、环境变量

创建一个 Shell 脚本文件:

$ gedit hello_shell.sh

在脚本中添加如下内容,保存并退出:

#!/bin/bash

for ((i=0; i<10; i++));do
echo "hello shell"
done exit 0

为文件添加可执行权限:

$ chmod 755 hello_shell.sh

执行脚本:

$ ./hello_shell.sh

创建一个 C 语言“ hello world ”程序:

$ gedit hello_world.c
#include <stdio.h> int main(void)
{
printf("hello world!\n");
return 0;
}

保存后使用 gcc 生成可执行文件:

$ gcc -o hello_world hello_world.c

shiyanlou 家目录创建一个 mybin 目录,并将上述 hello_shell.sh 和 hello_world文件移动到其中:

$ mkdir mybin
$ mv hello_shell.sh hello_world mybin/

现在可以在 mybin 目录中分别运行刚刚创建的两个程序:

$ cd mybin
$ ./hello_shell.sh
$ ./hello_world

3、变量删除

$ unset temp

4、搜索文件

whereis 简单快速:

$whereis who

locate 快而全:

$ locate /etc/sh

查找/usr/share/下所有 jpg 文件:

$ locate /usr/share/\*.jpg

which 小而精:

$ which man

**find **精而细:

$ sudo find /etc/ -name interfaces

  • 第六节 文件打包与压缩

1、zip 压缩打包程序

使用 zip 打包文件夹:

$ zip -r -q -o shiyanlou.zip /home/shiyanlou
$ du -h shiyanlou.zip
$ file shiyanlou.zip

设置压缩级别为 9 和 1(9 最大,1 最小),重新打包:

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

再用 du 命令分别查看默认压缩级别、最低、最高压缩级别及未压缩的文件的大小:

$ du -h -d 0 *.zip ~ | sort

创建加密 zip 包

使用 -e 参数可以创建加密压缩包:

$ zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou

2、使用 unzip 命令解压缩 zip 文件

shiyanlou.zip 解压到当前目录:

$ unzip shiyanlou.zip

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

$ unzip -q shiyanlou.zip -d ziptest

3、rar 打包压缩命令

安装 rar 和 unrar 工具:

$ sudo apt-get update
$ sudo apt-get install rar unrar

从指定文件或目录创建压缩包或添加文件到压缩包:

$ rm *.rar
$ rar a shiyanlou.rar .

从指定压缩包文件中删除某个文件:

$ rar d shiyanlou.rar .zshrc
* 查看不解压文件:
$ rar l shiyanlou.rar

使用 unrar 解压 rar 文件全路径解压:

$ unrar x shiyanlou.rar

去掉路径解压:

$ mkdir tmp
$ unrar e shiyanlou.rar tmp/

4、tar 打包工具

创建一个 tar 包:

$ tar -cf shiyanlou.tar ~

解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数):

$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir

只查看不解包文件 -t 参数:

$ tar -tf shiyanlou.tar

保留文件属性和跟随链接:

$ tar -cphf etc.tar /etc

创建不同的压缩格式的文件:

在创建 tar 文件的基础上添加 -z参数,使用 gzip 来压缩文件:

$ tar -czf shiyanlou.tar.gz ~

解压 *.tar.gz 文件:

$ tar -xzf shiyanlou.tar.gz

5、常用命令:

zip:

> 打包 :zip something.zip something (目录请加 -r 参数)
> 解包:unzip something.zip
> 指定路径:-d 参数

tar:

> 打包:tar -zcvf something.tar something
> 解包:tar -zxvf something.tar
> 指定路径:-C 参数
  • 第七节 文件系统操作与磁盘管理

1、使用 df 命令查看磁盘的容量

$ df

我们以一种你应该看得懂的方式展示:

$ df -h

2、使用 du 命令查看目录的容量

默认同样以 blocks 的大小展示

$ du

加上-h参数,以更易读的方式展示

$ du -h

-d参数指定查看目录的深度

只查看1级目录的信息

$ du -h -d 0 ~

查看2级

$ du -h -d 1 ~

3、常用参数

--human-readable 以K,M,G为单位,提高信息的可读性:

du -h

--all 显示目录中所有文件的大小:

du -a

--summarize 仅显示总计,只列出最后加总的值:

du -s

4、创建虚拟磁盘

dd命令从标准输入读入用户输入到标准输出或者一个文件:

输出到文件

$ dd of=test bs=10 count=1

输出到标准输出

$ dd if=/dev/stdin of=/dev/stdout bs=10 count=1

在打完了这个命令后,继续在终端打字,作为你的输入

将输出的英文字符转换为大写再写入文件:

$ dd if=/dev/stdin of=test bs=10 count=1 conv=ucase

使用 dd 命令创建虚拟镜像文件

/dev/zero设备创建一个容量为 256M 的空文件:

$ dd if=/dev/zero of=virtual.img bs=1M count=256
$ du -h virtual.img

使用 mkfs 命令格式化磁盘将我们的虚拟磁盘镜像格式化为ext4文件系统:

$ sudo mkfs.ext4 virtual.img

  • 第八节 Linux下的帮助命令

1、help 命令

本实验环境是 zsh,而 zsh 中内置并没有 help 命令,可以进入 bash 中,在 bash 中内置有该命令

$ bash
$ help ls 内部命令
$ ls --help 外部命令

2、man 命令

$ man ls

3、info 命令

$ info ls

详细程度:info > man > help

20165315 预备作业3 Linux安装及学习的更多相关文章

  1. 20165226 预备作业3 Linux安装及学习

    20165226 预备作业3 Linux安装及学习 Linux安装 一.下载安装VirtualBox 1.首先在官网下载,点开基于VirtualBox虚拟机安装Ubuntu图文教程 找到版本进行下载安 ...

  2. 20165230 预备作业3 Linux安装及学习

    20165230 预备作业3 Linux安装及学习 安装Linux操作系统 通过学习实践基于VirtualBox虚拟机安装Ubuntu图文教程,开始了虚拟机的安装,根据教程按着步骤一步一步的完成. 遇 ...

  3. 20165327 预备作业3 Linux安装及学习

    20165327 预备作业3 Linux安装及学习 一.学习基于VirtualBox虚拟机安装Ubuntu图文教程,在自己笔记本上安装Linux操作系统,注意尽量选用最新版本的VirtualBox和U ...

  4. 20165303 预备作业3 Linux安装及学习

    =20165303 预备作业3 Linux安装及学习 安装虚拟机 按照http://www.cnblogs.com/rocedu/p/6012545.html步骤进行逐步操作,安装虚拟机. 遇到的问题 ...

  5. 20165310 预备作业3 Linux安装及学习

    预备作业3 Linux安装及学习 安装虚拟机 之前在win7系统下通过EasyBCD安装过Ubuntu虚拟机,这次阅读<基于VirtualBox虚拟机安装Ubuntu图文教程>又学习到了一 ...

  6. 20165211 预备作业3 Linux安装与学习

    20165211 预备作业3 Linux安装与学习 1. Linux安装 涉及软件:VirtualBox,Ubuntu 参考教程:基于VirtualBox安装Ubuntu图文教程 安装过程的问题 在安 ...

  7. 20165227朱越 预备作业3 Linux安装及学习

    预备作业3 Linux安装及学习 Linux的安装 虚拟机的安装远没有想象中的那样容易,下载还没有出现什么问题,当我安装的时候,第一个问题出现在创建虚拟机时选择安装的虚拟机版本和类型的时候的错误 当时 ...

  8. 20165333 预备作业3 Linux安装及学习

    预备作业3 Linux安装及学习 Linux系统安装 在老师的教程帮助下成功的完成了虚拟机的安装,但安装过程中也遇到了一些问题.在下载ubuntu时,总是下载失败,在求助同学后,在中文版官网的网址,才 ...

  9. 20165219 预备作业3 Linux安装及学习

    20165219 预备作业3 Linux安装及学习 安装虚拟机 在安装的过程中遇到了不少的问题,在同学的帮助下都得到了解决.比如在新建虚拟机的时候没有64位这个选项,后来知道需要开启虚拟化,然后是安装 ...

随机推荐

  1. java 中AIO,BIO,NIO的区别(茅塞顿开)

    看到知乎上一篇回答,解决了疑惑:https://www.zhihu.com/question/56673416 第三位作者的回答...原谅我没有登录知乎,不然一定给他留赞. 也可以参考:https:/ ...

  2. 3.有关于Python列表简述

    一..title() [让所选择的列表元素的第一个字母大写] test = ['no1','No2','No3','No4'] book = "This My " + test[0 ...

  3. linux 一个读写锁的异常导致的故障

    环境信息: WARNING: kernel version inconsistency between vmlinux and dumpfile KERNEL: vmlinux-47.90 DUMPF ...

  4. spring使用中ModelAttribute的内容被覆盖

    在前台以get方式向后台提交数据: 后台接收: 后台接收参数的时候,由于user里面也有一个属性为id,后台在接收参数的时候,User里面的id会被重新赋值,这是一个大坑.如果后续继续用User来做操 ...

  5. 3dmax快捷键

    P 透视图 F前视图 L 左视图 T 顶视图 B 底视图单窗口与四窗口的切换快捷键是 alt+w 渲染快捷键 shilf+q 独立 快捷键 alt+q 自己多记点快捷键哦!!!!3DMAX2009快捷 ...

  6. struts2与spring整合时需要注意的点

    首先我们需要明白spring整合struts2中的什么东西,spring中的核心就是IOC和AOP,IOC是对象的容器,AOP是处理动态代理的;比如spring与hibernate整合时就要用到aop ...

  7. vue组件知识点

    1.组件的定义 const component = { props: { //外部父组件约束子组件的 里面不要修改 可以通过触发事件来修改 active: Boolean, propOne: Stri ...

  8. ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法

    原文链接:https://www.cnblogs.com/kaid/p/8616385.html 在ubuntu系统的termial下,用apt-get install 安装软件的时候,如果在未完成下 ...

  9. oracle导入大sql文件

    最近遇到一个需要导入大SQL文件的问题,最先直接用SQL developer 导入大SQL文件,结果报IO Exception,只好采用sqlplus 导入,操作过程如下: sqlplus 用户名/密 ...

  10. Java 一维多项式计算

    求解Java一维多项式的通用方法 比如ax^4+bx^3+cx^2+dx+e 可以化为(((ax+b)x+c)x+d)x+e 那么观察规律可以将系数放到一个数组里num[e,d,c,b,a] publ ...