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

Posted 20165327

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20165327 预备作业3 Linux安装及学习相关的知识,希望对你有一定的参考价值。

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

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

虚拟机的安装还比较顺利,安装系统时候出了一点问题。
只是在安装 ubuntu时候出现了一点问题,所以实验都是在实验楼的环境里完成的
如下图 回学校后解决

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

首先解开我心里面的疑惑,Linux是什么?是一种操作系统!
另外Linux学习应用的一个特点是通过命令行进行使用。

操作系统操作系统为你完成所有“硬件相关、应用无关”的工作,以给你方便、效率、安全。操作系统的功能我总结为两点:管家婆和服务生:
管家婆:通过进程、虚拟内存和文件三个重要抽象管理计算机的CPU、内存、I/O设备。
服务生:为用户提供shell,为程序员提供系统调用。

三、实践学习Linux 基础入门(新版)课程,掌握常用的Linux命令,重点是3/4/5/6/7/8节。

(一)Linux系统的简介

(二)基本概念及操作

(三)用户及文件权限管理

1、查看用户
输入命令:
$ who am i
或者
$ who mom likes

  • who命令其他常用参数:
    -a打印能打印的全部
    -d打印死掉的进程
    -m同am i,mom likes
    -q打印当前登录用户数及用户名
    -u打印当前登录用户登录信息
    -r打印运行等级

2、创建用户

su< user> (注:中间没有空格,暂时没有解决的基本语法问题,下同)可以切换到用户 user

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

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

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

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

 $ su -l lilei
 $ sudo adduser lilei

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

方法一:使用 groups 命令

$ groups shiyanlou

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

$ cat /etc/group | sort

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

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

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

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

5、删除用户

$ sudo deluser lilei --remove-home

变更文件所有者

$ touch iphone6

可见文件所有者是 lilei

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

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

6、修改文件权限

方式一:二进制数字表示

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

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

然后修改权限:

$ chmod 700 iphone6

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

(四) 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

7、重命名文件

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

$ mv file1 myfile

8、批量重命名

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

$ touch file{1..5}.txt

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

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

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

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

9、查看文件

使用 cat,tac 和 nl 命令查看文件(其中 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
  • 总结zip 命令和tar命令
    ** zip**
    打包 :zip something.zip something (目录请加 -r 参数)
    解包:unzip something.zip
    指定路径:-d 参数
    ** tar**
    打包:tar -zcvf something.tar something
    解包:tar -zxvf something.tar
    指定路径:-C 参数

(七) 文件系统操作与磁盘管理

1、基本操作

df命令查看磁盘的容量
du命令查看目录的容量
加上-h参数,以更易读的方式展示
$ du –h
-d参数指定查看目录的深度
2、简单的磁盘管理

使用dd命令创建虚拟镜像文件
转换成大写再写入文件

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

使用mkfs命令格式化磁盘
使用mount命令挂在磁盘到目录树
使用umount命令卸载已挂载磁盘
使用fdisk为磁盘分区
使用losetup命令建立镜像与回环设备的关联

(八)Linux下的帮助命令

1、内建命令与外部命令

使用type命令来区分命令是内建的还是外部的

$ type exit

或者

$ type service

2、帮助命令的使用
help命令
Help命令用于显示 shell 内建命令的简要帮助信息。如果是外部命令的话基本上都有一个参数—help
$ ls -- help
man命令
得到的内容比用 help 更多更详细,而且 man 没有内建与外部命令的区分。
info命令
要是觉得man显示的信息都还不够,满足不了需求,那试试info命令(最详细)

部分课后小作业效果图


以上是关于20165327 预备作业3 Linux安装及学习的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

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