zoukankan      html  css  js  c++  java
  • 预备作业三

    linux系统安装

    具体linux系统安装步骤参照教程,VirtualBox和Ubuntu安装相对顺利,出现了繁琐的小问题,自己百度基本能够解决。自己的笔记本和教程的有些不同的,按照教程设置的内存参数,运用起来笔记本卡顿,后来弄半天还出现了蓝屏,后来自己重新设置了运用内存和其他相应的参数,才解决了这个问题。在后面的安装过程中,有些莫名其妙的错误,自己只能重新安装虚拟机,共享文件夹自己尝试做了一遍,虚拟机重新启动时就不能运行了,只能放弃,开学再寻求同学的帮助吧。虽然现在也不太懂为什么学习Java还要学习linux、vim,很多基础的知识看了也很快忘记了,应该是过年太浪了吧,过完年后自己只能重新再好好学习,练习。

    linux学习(知识点+作业+疑问)

    实验一 linux系统简介

    知识点:

    • 操作系统:操作系统是一个大型的软件系统,其功能复杂,体系庞大。
    • 操作系统的功能:
      1)通过进程、虚拟内存和文件三个重要抽象管理计算机的CPU、内存、I/O设备。2)为用户提供shell,为程序员提供系统调用。

    实验二 基本概念及操作

    知识点1:快捷键的使用

    • Tab 补全命令、目录和参数
    • Ctrl+c 强行终止当前程序
    • Ctrl+d 键盘输入结束或退出终端
    • Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
    • Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
    • Ctrl+a 将光标移至输入行头,相当于Home键
    • Ctrl+e 将光标移至输入行末,相当于End键
    • Ctrl+k 删除从光标所在位置到行末
    • Alt+Backspace 向前删除一个单词
    • Shift+PgUp 将终端显示向上滚动
    • Shift+PgDn 将终端显示向下滚动
    • ↑ 恢复历史输入命令

    知识点2:通配符的使用:

    • *:匹配 0 或多个字符
    • ?: 匹配任意一个字符
    • [ list] :匹配 list 中的任意单一字符
    • [c1-c2]: 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
    • {string1,string2,...}: (或更多)其一字符串
    • {c1..c2}: 匹配 c1-c2 中全部字符 如{1..10}

    知识点3:man命令:

    帮助文档包含(学习的重点为1、2、3。):

    1. 是普通的Linux命令
    2. 是系统调用,操作系统的提供的服务接口
    3. 是库函数C语言中的函数

    实验三 用户及文件权限管理

    一、用户及相关命令

    (一)查看用户

    1.输入命令:

    $who am i或者 $who mom likes
    

    要查看当前登录用户的用户名,直接使用whoami即可

    2.who命令其他常用参数

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

    (二)创建用户

    1.输入命令:$sudo adduser hcj

    2.切换用户:$su -l hcj

    (三)用户组

    1.含义:

    一组用户的集合,它们共享一些资源和权限,同时拥有私有资源

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

    输入:$groups shiyanlou

    3.将其他用户加入sudo用户组

    输入:$sudo usermod -G sudo hcj

    (四)删除用户

    输入:$sudo deluser hcj --remove-home

    二、Linux文件权限

    (一)查看文件权限

    输入:$ls -l

    注Linux里面一切皆文件

    (二)变更文件所有者

    首先登录用户名hcj,新建一个文件,名为java

    输入:$touch java

    现换回到shiyanlou用户身份

    输入:

    $cd /home/hcj
    
    $ls java
    
    $sudo chown shiyanlou java
    

    (三)修改文件权限

    方法一、二进制数字表示

    0:没有权限, 1:可执行x, 2:可写w, 4:可读r
    每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)

    $chmod 600 java
    

    注:其他用户已经不能读这个java文件了

    三、作业

    1.创建一个用户loutest;$sudo adduser loutest

    2.sudo 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。shiyanlou使用sudo命令获得root权限(实验楼已获得root权限)

    3.创建文件:命令 $mkdir opt 创建文件夹;命令$touch opt/forloutest.txt 创建文件。

    4.修改文件权限:命令 $chmod go+rw forloutest.txt

    5.切换用户查看文件:命令

    $su -l loutest
    $ll java
    

    实验四 Linux 目录结构及文件基本操作

    一、目录结构

    背景知识: UNIX/Linux是以目录为主的,Linux继承了这一优良特性。Linux 是以树形目录结构的形式来构建整个系统的,可以理解为树形目录是一个用户可操作系统的骨架

    1.FHS标准

    FHS 定义了两层规范,第一层是,/下面的各个目录应该要放什么文件数据;第二层则是针对 /usr 及 /var这两个目录的子目录来定义。

    2.目录路径

    • cd命令可以切换目录
    • .表示当前目录
    • ..表示上一级目录
    • pwd命令可以获取当前路径(绝对路径)
    • ~表示当前用户的home目录

    3.绝对路径与当前路径:
    进行目录切换时还得看当前具体情况,然后选择合适的命令进行输入。

    二、linux文件的基本操作

    • 新建空白文件:touch命令(创建文件时,因为在其他目录没有权限,所以先切换用户的/home/shiyanlou目录
    • mkdir命令可以创建一个空白目录,使用-p参数,同时创建父目录。
    • 复制文件:使用cp(copy)命令复制一个文件到指定目录。
    • 复制目录:成功复制目录需要加上 -r 或者 -R 参数,表示递归复制。
    • 删除文件:使用rm命令删除一个文件;可以使用 -f 参数强制删除。
    • 删除目录:要删除一个目录,也需要加上 -r 或 -R 参数。
    • 移动文件:mv 源目录文件 目的目录。
    • 重命名文件:mv 旧的文件名 新的文件名。
    • 查看文件:使用cat,tac,nl命令查看文件;使用more和less命令分页查看文件;使用head和tail命令查看文件
    • 查看文件类型:(在linux中文件的类型不是根据文件后缀来判断的,使用file命令查看文件类型。

    实验五 环境变量与文件查找

    一、变量

    1.变量:计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。

    2.变量的创建及赋值:使用declare命令创建变量,(变量名只能是英文字母、数字或者下划线,且不能以数字作为开头。);使用=号赋值运算符进行赋值。

    3.读取变量的值:使用echo命令和$符号如:
    $ echo $temp

    二、环境变量

    通常涉及的变量类型:

    1. 当前Shell进程私有用户自定义变量,如上面我们创建的 tmp 变量,只在当前 Shell 中有效。
    2. Shell本身内建的变量。
    3. 从自定义变量导出的环境变量。
    4. 永久生效:介绍两个重要文件 /etc/bashrc 和 /etc/profile ,它们分别存放的是 shell 变量和环境变量。还有要注意区别的是每个用户目录下的一个隐藏文件:.profile 可以用 ls -a 查看这个 .profile 只对当前用户永久生效。而写在 /etc/profile 里面的是对所有用户永久生效,所以如果想要添加一个永久生效的环境变量,只需要打开/etc/profile,在最后加上你想添加的环境变量。

    question:全局环境变量,局部环境变量的实质区别是什么?

    answer:

    1.linux基础入门中为“简单地理解成在当前进程的子进程有效则为全局环境变量,否则为局部环境变量。

    2.百度得:全局环境变量,局部环境变量的实质区别是什么?

    注意:为了与普通变量区分,通常我们习惯将环境变量名设为大写。

    三、命令的查找路径与顺序

    整理得:

    一、创建一个可执行的Shell脚本

    1. 创建shell脚本文件代码为:$ gedit hello_shell.sh,并添加内容代码为:
    #!/bin/bash  //这不是注释,不要省略
    for ((i=0; i<10; i++));do
        echo "hello shell"
    done
    exit 0
    

    2.为文件添加可执行权限:

    $ chmod 755 hello_shell.sh
    

    3.执行脚本:

    $ ./hello_shell.sh
    

    二、使用C语言创建一个程序

    代码如下:

    $ gedit hello_world.c
    /*
    添加C语言程序代码,并保存
    */
    //保存后使用gcc生成可执行文件(gcc生成二进制文件默认具有可执行权限,不需要修改)
    $ gcc -o hello_world.c
    
    

    三、path环境变量

    与将D:Javajdk1.8.0_102in配置于windows系统path环境变量中相似。

    四、搜索文件

    与搜索相关的命令常用的有 whereis,which,find 和 locate 。

    • whereis简单快捷
    • locate 快而全
    • which 小而精
    • find 精而细
      注意 find 命令的路径是作为第一个参数的, 基本命令格式为 find [path] [option] [action] 。

    五、作业

    寻找文件:找出 /etc/ 目录下的所有以 .list 结尾的文件。

    代码为

    $ locate /etc/*.list
    

    (实验楼)

    六、挑战一

    实验楼

    实验六 文件打包与压缩

    一、概念讲解

    压缩包文件格式

    • *.zip zip 程序打包压缩的文件
    • *.rar rar 程序压缩的文件
    • *.7z 7zip 程序压缩的文件
    • *.tar tar 程序打包,未压缩的文件
    • *.gz gzip 程序(GNU zip)压缩的文件
    • *.xz xz 程序压缩的文件
    • *.bz2 bzip2 程序压缩的文件
    • *.tar.gz tar 打包,gzip 程序压缩的文件
    • *.tar.xz tar 打包,xz 程序压缩的文件
    • *tar.bz2 tar 打包,bzip2 程序压缩的文件
    • *.tar.7z tar 打包,7z 程序压缩的文件

    二、实战

    可以直接参考,不需要再进行整理归纳。

    三、总结

    常用命令:

    zip:

    打包 :zip something.zip something (目录请加 -r 参数)

    解包:unzip something.zip

    指定路径:-d 参数

    tar:

    打包:tar -zcvf something.tar something

    解包:tar -zxvf something.tar

    指定路径:-C 参数

    四、作业

    1. 使用touch命令创建test文件touch test
    2. 使用zip压缩test文件zip test.zip test
    3. 在shiyanlou目录下解压文件unzip test.zip
      实验楼

    实验七 文件系统操作与磁盘管理

    一、基本操作

    1.查看磁盘和目录的容量:$ df,初学者最好使用$ df -h查看。

    2.使用du命令查看目录的容量: $ du -h,其中-d参数指定查看目录的深度如下列举常见参数:

    • du -h #同--human-readable 以K,M,G为单位,提高信息的可读性。
    • du -a #同--all 显示目录中所有文件的大小。
    • du -s #同--summarize 仅显示总计,只列出最后加总的值。

    二、磁盘管理

    1.创建虚拟磁盘

    • dd命令:
      dd命令用于转换和复制文件
      dd;也可以读取文件或写入到这些文件dd程序;也可以在复制时处理数据,例如转换字节序、或在 ASCII 与 EBCDIC 编码间互换。
      注:命令行选项格式为选项=值

    • dd默认从标准输入中读取,并写入到标准输出中,但可以用选项if(input file,输入文件)和of(output file,输出文件)改变。

    • dd命令从标准输入读入用户输入到标准输出或者一个文件(个人理解:使用dd命令可以直接在终端输入相应指令后,输出到文件或者输出到标准输出,可以在终端编写Java程序,输出到*.java文件中):具体代码为:

    # 输出到文件
    $ dd of=test bs=10 count=1 # 或者 dd if=/dev/stdin of=test bs=10 count=1
    # 输出到标准输出
    $ dd if=/dev/stdin of=/dev/stdout bs=10 count=1
    # 注
    在打完了这个命令后,继续在终端打字,作为你的输入
    # 注
    bs用于指定块大小(默认为byte),count用于指定块数量,空格及回车均占一个字节。
    
    • 使用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中一切即文件,over。

  • 相关阅读:
    python单线程,多线程和协程速度对比
    python redis模块的常见的几个类 Redis 、StricRedis和ConnectionPool
    saltstack安装部署以及简单实用
    python编码详解--转自(Alex的博客)
    老铁,这年头不会点Git真不行!!!
    个人阅读&个人总结
    提问回顾
    结对项目
    个人作业Week3-案例分析
    个人作业Week2-代码复审
  • 原文地址:https://www.cnblogs.com/20165324hcj/p/8468827.html
Copyright © 2011-2022 走看看