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

posted on 2018-02-24 13:45  yh666  阅读(269)  评论(2编辑  收藏  举报