20165330 预备作业3 Linux安装及学习
虚拟机安装
- 在安装VirtualBox时我的电脑一直打不开官网的下载地址,还好后面有可以打开了,于是我顺利的下载好了VirtualBox。而在运行出现了以下错误:
- 错误1:点击创建虚拟机时出现了以下提示

解决方法(对我的电脑是适用的):
(1) 对VirtualBox的图标点击右键->属性->兼容性;
(2) 把VirtualBox的兼容模式改为Win7以外即可,如下图:

(3)点击确定后在运行就可以了- 错误2:创建好虚拟电脑后点击虚拟电脑出现

解决方法:
我在百度上查找了好多,感觉比较靠谱的是这两个:"不能为虚拟电脑打开一个新任务"解决方法和Virtualbox中不能为虚拟机打开一个新任务的原因及解决方法,我尝试了第二个链接的方法但是失败了导致电脑黑屏。。我找了一个叔叔帮我修复,在修复过程中感觉方法跟第二个中的方法一样,可能是我的操作不当,最后我的电脑好了虚拟机也没有了上面的问题。
- 错误3:在安装增强功能时输完命令后出现

解决方法:
我在百度上搜查如何使用VirtualBox软件增强功能安装,找到了Ubuntu虚拟机怎么使用VirtualBox软件增强功能安装,在此基础上我又按照老师的步骤打开终端输入命令下载成功。
Linux学习
第一节
- Linux:是一个操作系统,主要是系统调用和内核两层。
- 操作系统在整个计算机系统中的角色

- 学习路径:

第二节
- 终端:通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成用户输入和显示输出。
- 常见的终端模拟器:gnome-terminal,Konsole,xterm,rxvt,kvt,nxterm 和 eterm。
- 快捷键:
| 按键 | 效果 |
|---|---|
| Ctrl+d | 键盘输入结束或退出终端 |
| Ctrl+s | 暂停当前程序,暂停后按下任意键恢复运行 |
| Ctrl+z | 将当前程序放到后台运行,恢复到前台为命令fg |
| Ctrl+a | 将光标移至输入行头,相当于Home键 |
| Ctrl+e | 将光标移至输入行末,相当于End键 |
| Ctrl+k | 删除从光标所在位置到行末 |
| Alt+Backspace | 向前删除一个单词 |
| Shift+PgUp | 将终端显示向上滚动 |
| Shift+PgDn | 将终端显示向下滚动 |
| Ctrl+c | 中断或结束命令 |
| Tab | 进行命令补全,补全目录,补全命令参数等 |
| Ctrl+Alt+F1~F6 | 切换用户登录 |
| Ctrl+Alt+F7 | 切换回图形界面 |
| Shift+n | 上一关键字所在处 |
- 通配符:一种特殊语句,主要有星号(*)和问号(?),用来对字符串进行模糊匹配(比如文件名、参数名)。
| 字符 | 含义 |
|---|---|
| * | 匹配0或多个字符 |
| ? | 匹配任意一个字符 |
| [list] | 匹配list中的任意单一字符 |
| .... | ... |
- man命令:NIX 或类 UNIX 操作系统中在线软件文档的一种普遍的形式
- 作业截图:

第三节
- 查看用户:打开终点输入以下命令

创建用户:使用sudo命令创建
$ sudo adduser 用户名
创建好使用下命令切换到新创建用户

注意:Linux下密码输入是不显示任何内容的
- 用户组查看方法:
- group命令

- 查看/etc/group文件

将其它用户加入 sudo 用户组
默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入 sudo 用户组从而获取 root 权限

- group命令
- 删除用户:

- Linux文件权限
查看文件权限命令及过程:
$ ls -1


变更文件所有者:
若前面已经执行删除lilei用户的命令,这里重新创建一下。
假设目前是 lilei 用户登录,新建一个文件,命名为 “ iphone6 ”:$ touch iPhone6
可见文件所有者是 lilei :

现在,换回到 shiyanlou用户身份,使用以下命令变更文件所有者为 shiyanlou :
现在查看,发现 文件所有者成功修改为 shiyanlou :

修改文件权限:
方式一:二进制数字表示:
$ echo "echo "hello shiyanlou"" > iphone6
$ chmod 700 iphone6
方式二:加减赋值操作:
$ chmod go-rw iphone6
其中g、o、u分别表示group、others和user,+、-分别表示增加和去掉相应的权限,r为可读,w为可写。上面代码表示去掉权限,其他户可读可写iPhone6这个文件。
第四节
- Linux目录结构
- FHS标准:

FHS依据文件系统使用的频繁与否以及是否允许用户随意改动,将目录定义为四种交互作用的形态,如下表所示:

- 目录路经:
- FHS标准:
| 命令 | 作用 |
|---|---|
| $ cd . | 当前目录 |
| $ cd .. | 进入上一级目录 |
| $ cd ~ | 进入home目录 |
| $ pwd | 获取当前路径 |
| $ cd /usr/local/bin | 绝对路径 |
| $ cd ../../usr/local/bin | 相对路径 |
- Linux 文件的基本操作
| 命令 | 作用 |
|---|---|
| $ touch 用户名 | 创建空白文件 |
| $ mkdir mydir | 创建空目录 |
| $ mkdir -p father/son/grandson | 创建多级目录 |
| $ cp test father/son/grandson | 复制一个文件到指定目录 |
| $ cp -r father family | 递归复制目录 |
| $ rm test | 删除一个文件 |
| $ rm -f test | 强制删除文件 |
| $ rm -r family | 删除一个目录 |
| $ mkdir Documents + $ mv file1 Documents | 将文件“file1”移动到 “Documents”目录 |
| $ mv file1 myfile | 将文件“ file1 ”重命名为“ myfile ” |
| $ cat passwd | 查看“passwd”文件 |
| $ cat -n passwd | 可显示文件行号 |
| $ more passwd | 打开“passwd”文件 |
| $ tail /etc/passwd | 查看“passwd”文件 |
| $ tail -n 1 /etc/passwd | 只看第几行 |
| $ file /bin/ls | 查看文件类型 |
第五节
- 环境变量
变量:即 Shell变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。
变量的作用域即变量的有效范围(比如一个函数中、一个源文件中或者全局范围),在该范围内只能有一个同名变量。一旦离开则该变量无效,如同不存在这个变量一般。
| 命令 | 作用 |
|---|---|
| $ declare 变量名 | 创建一个变量 |
| $ tmp=shiyanlou | 对tmp这个变量进行赋值 |
| $ echo $tmp | 读取变量的值 |
注意:并不是任何形式的变量名都是可用的,变量名只能是英文字母、数字或者下划线,且不能以数字作为开头。
- 环境变量:
- 分类:
- 当前 Shell进程私有用户自定义变量,如上面我们创建的 tmp 变量,只在当前 Shell 中有效。
- Shell 本身内建的变量。
- 从自定义变量导出的环境变量。
- Linux变量:
- 永久的:需要修改配置文件,变量永久生效;
- 临时的:使用 export 命令行声明即可,变量在关闭 shell 时失效。
- 分类:
- 命令的查找路径与顺序:
| 命令 | 作用 |
|---|---|
| $ echo $PATH | 查看 PATH 环境变量的内容 |
| $ gedit hello_shell.sh | 创建一个Shell脚本文件 |
| $ chmod 755 hello_shell.sh | 为文件添加可执行权限 |
| $ ./hello_shell.sh | 执行脚本 |
添加自定义路径到“PATH”环境变量:
$ PATH=$PATH:/home/shiyanlou/mybin
- 修改和删除已有变量:
修改:
$ path=$PATH
$ echo $path
$ path=${path%/home/shiyanlou/mybin}# 或使用通配符,表示任意多个任意字符
$ path=${path%/mybin}删除:
$ unset temp
关于搜索文件
与搜索相关的命令常用的有 whereis,which,find 和 locate 。
$whereis who
$ locate /etc/sh
$ locate /usr/share/*.jpg
$ which man
$ sudo find /etc/ -name interfaces
- 作业截图:

第六节
- 压缩文件后缀
| >文件后缀名 | 说明 |
|---|---|
| *.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 -r -e -o shiyanlou_encryption.zip /home/shiyanlou
- 解压缩zip文件
将shiyanlou.zip解压到当前目录
$ unzip shiyanlou.zip
使用安静模式,将文件解压到指定目录
$ unzip -q shiyanlou.zip -d ziptest
查看压缩包的内容
$ unzip -l shiyanlou.zip
- 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
- tar工具
创建一个tar包
$ tar -cf shiyanlou.tar ~
打包一个文件(-x 参数)到指定路径的已存在目录(-C 参数)
$ du -h shiyanlou.tar
解包
$ tar -zxvf something.tar
- 作业截图:


第七节
查看磁盘和目录的容量
$ df
常用参数:
$ du -h #同--human-readable以K,M,G为单位,提高信息的可读性。
$ du -a #同--all显示目录中所有文件的大小。
$ du -s #同--summarize仅显示总计,只列出最后加总的值。- 磁盘管理
使用 dd 命令创建虚拟镜像文件
$ dd if=/dev/zero of=virtual.img bs=1M count=256
$ du -h virtual.img使用 mkfs命令格式化磁盘(我们这里是自己创建的虚拟磁盘镜像)
$ sudo mkfs.ext4 virtual.img
使用 mount 命令挂载磁盘到目录树
$ sudo mount
使用 umount 命令卸载已挂载磁盘
命令格式 sudo umount 已挂载设备名或者挂载点,如:
$ sudo umount /mnt
ps:由于我们环境的问题(环境中使用的 Linux 内核在编译时没有添加对 Loop device的支持),所以你将无法挂载成功
使用 fdisk 为磁盘分区
$ sudo fdisk -l
进入磁盘分区模式
$ sudo fdisk virtual.img
第八节
内建命令
内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,并由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。
外部命令
外部命令是Linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。虽然其不包含在shell中,但是其命令执行过程是由shell程序控制的。外部命令是在Bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。
type 命令来区分命令是内建的还是外部的
$ type 命令名
xxx is a shell builtin //如果结果是这样那么这是内建命令
xxx is /usr/sbin/xxx //如果结果是这样那么这是外建命令- 帮助命令
help命令:zsh 中内置并没有 help 命令,我们可以进入 bash 中,在 bash 中内置有该命令
$ bash
help ls //用于内建命令
ls --help //用于外建命令man命令:无内建与外部命令的区分
man ls
info 命令:bash自带有的命令
info ls
20165330 预备作业3 Linux安装及学习的更多相关文章
- 20165226 预备作业3 Linux安装及学习
20165226 预备作业3 Linux安装及学习 Linux安装 一.下载安装VirtualBox 1.首先在官网下载,点开基于VirtualBox虚拟机安装Ubuntu图文教程 找到版本进行下载安 ...
- 20165230 预备作业3 Linux安装及学习
20165230 预备作业3 Linux安装及学习 安装Linux操作系统 通过学习实践基于VirtualBox虚拟机安装Ubuntu图文教程,开始了虚拟机的安装,根据教程按着步骤一步一步的完成. 遇 ...
- 20165327 预备作业3 Linux安装及学习
20165327 预备作业3 Linux安装及学习 一.学习基于VirtualBox虚拟机安装Ubuntu图文教程,在自己笔记本上安装Linux操作系统,注意尽量选用最新版本的VirtualBox和U ...
- 20165303 预备作业3 Linux安装及学习
=20165303 预备作业3 Linux安装及学习 安装虚拟机 按照http://www.cnblogs.com/rocedu/p/6012545.html步骤进行逐步操作,安装虚拟机. 遇到的问题 ...
- 20165315 预备作业3 Linux安装及学习
20165315 预备作业3 Linux安装及学习 一.在自己笔记本上安装Linux操作系统 因为对操作电脑的不熟悉,我在第一项任务上就花费了一定的时间,在安装过程有如下问题: 我的电脑是苹果公司的M ...
- 20165310 预备作业3 Linux安装及学习
预备作业3 Linux安装及学习 安装虚拟机 之前在win7系统下通过EasyBCD安装过Ubuntu虚拟机,这次阅读<基于VirtualBox虚拟机安装Ubuntu图文教程>又学习到了一 ...
- 20165211 预备作业3 Linux安装与学习
20165211 预备作业3 Linux安装与学习 1. Linux安装 涉及软件:VirtualBox,Ubuntu 参考教程:基于VirtualBox安装Ubuntu图文教程 安装过程的问题 在安 ...
- 20165227朱越 预备作业3 Linux安装及学习
预备作业3 Linux安装及学习 Linux的安装 虚拟机的安装远没有想象中的那样容易,下载还没有出现什么问题,当我安装的时候,第一个问题出现在创建虚拟机时选择安装的虚拟机版本和类型的时候的错误 当时 ...
- 20165333 预备作业3 Linux安装及学习
预备作业3 Linux安装及学习 Linux系统安装 在老师的教程帮助下成功的完成了虚拟机的安装,但安装过程中也遇到了一些问题.在下载ubuntu时,总是下载失败,在求助同学后,在中文版官网的网址,才 ...
随机推荐
- Atitit.网页爬虫的架构总结
Atitit.网页爬虫的架构总结 1. 总数的结构..(接口方法) 1 2. 获得页数 1 3. 跳页处理(接口方法) 2 4. 单个的页面处理(接口方法) 2 4.1. 获得页面url 3 4.2. ...
- docker 不同机器上容器互相通信
环境说明: 1.系统:centos7 2.docker:Docker version 1.3.2 3.docker启动参数:OPTIONS=--selinux-enabled=false -H fd: ...
- 推荐一个入门最佳Git教程
这是我最近发现的一个针对入门Git教程,浅显易懂,点到为止,很适合初学者及使用Git的爱好者,学完该教程应付开发工作绰绰有余. http://www.liaoxuefeng.com/wiki/0013 ...
- Selenium - 设置元素等待
一.sleep () 休眠方法 --time 固定等待 在开发自动化框架过程中,最忌讳使用Python自带模块的time的sleep方法进行等待,虽然可以自定义等待时间,但当网络条件良好时, 依旧 ...
- 关于HashMap初始化容量问题
使用阿里云代码规范插件扫描后出现以下提示: hashmap should set a size when initalizing,即hashmap应该在初始化时设置一个大小 在网上搜到一篇讲解(htt ...
- MongoDB随笔
创建用户 db.createUser({user: "abc",pwd: "abc123",roles: [ { role: "readWrite&q ...
- CentOS6.5+nginx+mysql+php(laravel)服务器环境搭建
公司准备迭代会员中心项目,要上laravel框架,替代以前的Ecshop框架,PHP工程师将部分功能页面代码提交,自己也准备着手搭建一个测试环境将项目跑起来: 一. 环境依赖安装设置 关闭防火墙 [r ...
- oracle中空值null的判断和转换:NVL的用法
1.NULL空值概念 数据库里有一个很重要的概念:空值即NULL.有时表中,更确切的说是某些字段值,可能会出现空值, 这是因为这个数据不知道是什么值或根本就不存在. 2.NULL空值判断 空值不等同于 ...
- exit会结束一个进程
#include <stdio.h> #include <unistd.h> #include <sys/types.h> #include<stdlib.h ...
- QQ会员活动运营平台架构设计实践——高效自动化运营
QQ会员活动运营平台(AMS),是QQ会员增值运营业务的重要载体之一,承担海量活动运营的Web系统.在过去四年的时间里,AMS日请求量从200-500万的阶段,一直增长到日请求3-5亿,最高CGI日请 ...