zoukankan      html  css  js  c++  java
  • 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!
    ");
        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命令(最详细)

    部分课后小作业效果图


  • 相关阅读:
    .NET Core采用的全新配置系统[4]: “Options模式”下各种类型的Options对象是如何绑定的?
    .NET Core采用的全新配置系统[3]: “Options模式”下的配置是如何绑定为Options对象
    .NET Core采用的全新配置系统[2]: 配置模型设计详解
    .NET Core采用的全新配置系统[1]: 读取配置数据
    ASP.NET Core 运行原理解剖[5]:Authentication
    kubernetes-dashboard(1.8.3)部署与踩坑
    使用kubeadm搭建Kubernetes(1.10.2)集群(国内环境)
    Docker初体验
    ASP.NET Core Logging in Elasticsearch with Kibana
    ASP.NET Core 认证与授权[7]:动态授权
  • 原文地址:https://www.cnblogs.com/yjtblog/p/8469992.html
Copyright © 2011-2022 走看看