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. mysql 的sleep线程过多处理方法

    php程序不要使用长连接:java程序调整连接池 什么是长连接? 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态. 通常的短连接操作步骤是: 连接->数据传输-& ...

  2. 【381】python 获取列表中重复元素的索引值

    参考:获取python的list中含有重复值的index方法_python_脚本之家 核心思想:建立字典,遍历列表,把列表中每个元素和其索引添加到字典里面 cc = [1, 2, 3, 2, 4] f ...

  3. LeetCode OJ 215. Kth Largest Element in an Array

    Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...

  4. fopen的type的值的意思

    ┌──┬────┬───────┬────────┐      │type│读写性  │文本/2进制文件│建新/打开旧文件 │      ├──┼────┼───────┼────────┤      ...

  5. Delphi在Listview中加入Edit控件

    原帖 : http://www.cnblogs.com/hssbsw/archive/2012/06/03/2533092.html Listview是一个非常有用的控件,我们常常将大量的数据(如数据 ...

  6. arcgis python arcpy add data script添加数据脚本

    arcgis python arcpy add data script添加数据脚本mxd = arcpy.mapping.MapDocument("CURRENT")... df ...

  7. ArcGIS 10安装及破解

    1.下载 ArcGIS 10 安装程序及破解文件后面提供电驴的下载地址(可以使用迅雷.QQ旋风等下载工具下载),下载文件是一个光盘镜像文件:? ArcGIS_Desktop10_122519.iso. ...

  8. MS SQL大值数据类型varchar(max)、nvarchar(max)、varbinary(max)

    在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max).nvarchar(max).varbinary(max) ).大值数据类型最多可以存储2^30-1个字节的数据. 这几 ...

  9. js 遍历行和列

    ]; //遍历列 ; i < table.rows[].cells.length; i++) { console.log(table.rows[].cells[i].innerText); ]. ...

  10. hbase高可用集群部署(cdh)

    一.概要 本文记录hbase高可用集群部署过程,在部署hbase之前需要事先部署好hadoop集群,因为hbase的数据需要存放在hdfs上,hadoop集群的部署后续会有一篇文章记录,本文假设had ...