预备作业三

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。

原文地址:https://www.cnblogs.com/20165324hcj/p/8468827.html