20165228 预备作业3 Linux安装及学习
(一)安装虚拟机
根据娄老师给的Ubuntu版本和安装教程,我曾遇到如下问题:
Q1:首先遇到的问题是没有开启虚拟化
- 解决方法:在重启电脑时进入BIOS>Configuratio > Intel Virtual Technology > Enabled;然后按F10保存BIOS设置并重启
Q2:可能是我的电脑兼容性不太好,安装娄老师给的Ubuntu版本安装后重启提示intel_rapl:no valid rapl domains found in packge0,启动后出现提示错误的窗口并且一直闪 - 解决方法:通过搜索提示内容,我没能解决这个问题。通过尝试在Ubuntu官网下载Ubuntu16.04.3版本然后重新安装后可以正常运行
(二)学习Linux
以下是我在学习Linux命令使用时的记录
- 实验一 Linux系统简介
在这一节中让我印象深刻的是Linux系统与Windows系统之间的不同
开源与封闭
应用丰富程度
上手难易度
用途
稳定性与安全性
Windows的应用生态圈更加广阔,并且上手容易,并且对于游戏娱乐和专业软件的支持等有着绝对的优势。
Linux作为一个开源的系统,由于免费,所以软件支持相对逊色一些,但它的稳定性和安全性是Windows不能比拟的,因此很多处理数据的服务器都是运着Linux系统,同时它的高度定制性也是一大优点,我们常用的Android就是以Linux为内核的操作系统。 - 实验二基本概念和操作
重要的快捷键:
Tab:补全命令、目录和参数
Ctrl+d:键盘输入结束或退出终端
Ctrl+s:暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z:将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a:将光标移至输入行头,相当于Home键
Ctrl+e:将光标移至输入行末,相当于End键
Ctrl+k:删除从光标所在位置到行末
Alt+Backspace: 向前删除一个单词
Shift+PgUp: 将终端显示向上滚动
Shift+PgDn: 将终端显示向下滚动
方向上键:恢复曾经输出过的命令
通配符:主要有星号(*)和问号(?),可通过不全的文件名来找出该文件。类似于Windows里的搜索功能,将拥有相同部分文件名的文件筛选出来
命令行中获取帮助:
$ man < command_name>
$ man 数字 ls来获取相关区段的说明
创建一个名为 file 的文件:
$ touch file
进入一个目录:
$ cd /etc/
查看当前所在目录:
$ pwd
作业:
$ sudo apt-get update
$ sudo apt-get install toilet
$ sudo apt-get update
$ sudo apt-get install figlet
- 实验三用户及文件权限管理
查看用户:
$ who am i 或 who mom likes
Q3:为什么who am i输成whoami依然有效2️⃣,who mom likes去掉空格后无法识别命令
创建用户:
$ su <user>
查看 /etc/group 文件
$ cat /etc/group | sort
修改文件权限:r(读)w(写)x(执行)对应三位二进制数,可使用chmod xxx file来对文件名为file的三组权限(拥有者,所属用户组,其他用户)进行权限分配。
作业:
首先创建用户loutest:
$ sudo adduser loutest
然后将loutest用户添加进sudo用户组:
sudo usermod -G sudo loutest
定位到/opt/目录之下:
$ cd /opt/
创建文件forloutest:
$ sudo touch forloutest
验证文件是否创建成功:
$ ls -l
修改权限:
$ sudo chmod 764 forloutest
以此来对文件拥有者赋予其读、写与执行权限,与拥有者同用户组的loutest赋予其读写权限,赋予其他用户只读权限。
Q4:我在敲命令的时候总会漏掉sudo,然后导致命令无法完成。所以是否要养成在命令前加sudo权限的习惯?
- 实验四Linux目录结构及文件基本操作
进入上一级目录:
$ cd ..
进入home目录:
$ cd ~
获取当前路径:
$ pwd
新建名为mydir目录:
$ mkdir mydir
复制文件名为File的文件到/opt/:
$ cp file /home/shiyanlou
删除文件:
$ rm file
强制删除:
$ rm -f file
移动文件:mv 源目录文件 目的目录
重命名文件:mv 旧的文件名 新的文件名
查看文件:cat(正序打印)、tac(倒序打印到输出)、nl(添加行号打印)、head(查看头几行)、 tail(查看尾几行)
作业:
创建homework目录:
$ mkdir homework
验证是否创建成功:
$ ls -l
在目录下建立文件:
$ cd homework
$ touch {1..10}.txt
验证:
$ ls -l
在目录下删除文件:
$ rm {1..5}.txt
验证:
$ ls -l
linux的日志文件保存在/var/log目录之下
- 实验五:环境变量与文件查找
变量名:英文字母、数字、下划线,不能由数字开头
创建一个名为a的变量:
$ declare a
赋值名为a的变量:
a=shiyanlou
读取名为a的变量的值:
$ echo $a
私有用户自定义变量:只在当前shell中有效
变量修改:
${变量名#匹配字串}:从头向后开始匹配,删除符合匹配字串的最短数据
${变量名##匹配字串}:从头向后开始匹配,删除符合匹配字串的最长数据
${变量名%匹配字串}:从尾向前开始匹配,删除符合匹配字串的最短数据
${变量名%%匹配字串} :从尾向前开始匹配,删除符合匹配字串的最长数据
${变量名/旧的字串/新的字串}:将符合旧字串的第一个字串替换为新的字串
${变量名//旧的字串/新的字串}:将符合旧字串的全部字串替换为新的字串
删除名为a的变量:
$ unset a
搜索文件:
1.whereis 简单快速
查找以a开头的文件:
$ whereis a
2.locate 快而全
查找指定目录以a开头的文件:
$ locate /etc/a
查找指定目录下指定类型jpg的文件:
$ locate /etc/\*.jpg
3.find 精而细
可以通过文件类型、文件名和文件属性进行查找
基本命令格式:
$ find [path] [option] [action]
作业:
找出 /etc/ 目录下的所有以 .list 结尾的文件
locate /etc/\*.list
- 实验六文件打包和解压缩
参数:
-r参数表示递归打包包含子目录的全部内容
-q参数表示为安静模式,即不向屏幕输出信息
-o表示输出文件,需在其后紧跟打包输出文件名
-e表示创建加密压缩包
zip解压:
将压缩包解压在当前目录:
$ unzip shiyanlou.zip
使用安静模式,将文件解压到指定目录:
$ unzip -q shiyanlou.zip -d ziptest
不通过解压查看压缩包内容:
$ unzip -q shiyanlou.zip -d ziptest
zip:
打包 :(目录请加 -r 参数)
$ zip something.zip something
解包:
$ unzip something.zip
指定路径:-d 参数
tar:
打包:
$ tar -zcvf something.tar something
解包:
$ tar -zxvf something.tar
指定路径:-C 参数
作业
创建名为test的文件:
$ sudo touch test
使用zip压缩该文件:
$ zip -r -1 -o test.zip test
解压该文件到指定目录:
$ unzip -q test.zip -d /home/shiyanlou
使用tar压缩该文件:
$ tar -cf test.tar test
解压该文件到指定目录:
$ tar -xf test.tar -C /home/shiyanlou
- 实验七文件系统操作与磁盘管理
查看磁盘容量:
$ df
查看目录容量:
$ du
作业:
$ du -a | sort -n -r | head -n 10
实验八Linux下的帮助命令
内建命令:Shell程序的一部分,包含一些简单的Linux系统命令,随系统启动而加载并存在于内存中。解析内部命令Shell不需要创建子程序,执行速度比外部命令速度快。比如:history、cd、exit 等等
外部命令:Linux系统中实用程序部分,功能强大且包含的程序量大,需要时才启动,不包含在Shell程序中,但命令执行过程是由Shell程序控制。比如:ls、vi
区分命令种类:type